/* Premium admin workspace: the same design language as staff.bubblespin.in.
   Loaded last, so it only restyles; every admin feature keeps working as before. */
:root{
  --p-bg:#F3F6FA;--p-surface:#fff;--p-line:#E6ECF4;--p-ink:#0B1F3A;--p-muted:#5D6D84;
  --p-brand:#1E9AD6;--p-brand-ink:#0B5E92;--p-brand-soft:#E5F4FC;--p-side:248px;
  --p-shadow:0 1px 2px rgba(11,31,58,.05),0 8px 24px rgba(11,31,58,.06);
  font-family:"Segoe UI Variable Text","Segoe UI",Inter,system-ui,-apple-system,Roboto,sans-serif;color:var(--p-ink);
}
body{background:var(--p-bg);color:var(--p-ink);font-size:14px}

/* Signed out: centred card on a soft brand background */
body:not(.bs-in){min-height:100vh;background:radial-gradient(900px 500px at 85% -10%,rgba(41,171,226,.18),transparent 60%),radial-gradient(700px 420px at -10% 110%,rgba(95,211,180,.14),transparent 60%),var(--p-bg)}
body:not(.bs-in)>header{justify-content:center;border:0!important;background:transparent!important;padding-top:56px!important;min-height:0!important}
body:not(.bs-in)>header>img{width:96px!important;height:auto!important}
body:not(.bs-in)>header>div{display:none}
body:not(.bs-in) #admin-login{max-width:420px!important;margin:24px auto 60px!important;padding:32px!important;border-radius:16px!important;border:1px solid var(--p-line);box-shadow:var(--p-shadow)}
#admin-login .pill{background:var(--p-brand-soft);color:var(--p-brand-ink);border-radius:99px;letter-spacing:.8px}
#admin-login h2{font-size:24px;letter-spacing:-.3px;margin:14px 0 4px}
#admin-login input{border-radius:10px;padding:11px 12px;background:#fff}
#admin-login .primary{width:100%;border-radius:10px;padding:12px}

/* Signed in: fixed sidebar, sticky top bar, wide content */
body.bs-in>header{position:sticky;top:0;z-index:20;margin-left:var(--p-side)!important;min-height:60px!important;padding:8px 28px!important;background:rgba(255,255,255,.88)!important;backdrop-filter:blur(8px);border-bottom:1px solid var(--p-line)!important}
body.bs-in>header>img{display:none}
body.bs-in>header>div .eyebrow{color:var(--p-muted);letter-spacing:1.2px}
body.bs-in>header>div>strong{font-size:15px!important;margin:2px 0 0}
#admin-connected{display:flex;align-items:center;gap:8px}
#admin-connected[hidden]{display:none!important}
#admin-connected label{color:var(--p-muted);font-weight:600}
#admin-connected select{border-radius:9px!important;background:#fff;border-color:var(--p-line)}
#admin-connected button{border-radius:9px!important;border-color:var(--p-line)}
body.bs-in>main{margin-left:var(--p-side)!important;padding:0 32px!important}

.shell aside{position:fixed!important;left:0;top:0;bottom:0;width:var(--p-side);z-index:25;display:flex!important;flex-direction:column;flex-wrap:nowrap!important;align-items:stretch!important;gap:2px!important;padding:18px 14px!important;overflow:auto;
  background:linear-gradient(180deg,#0B1F3A 0%,#0D2748 60%,#0F2D55 100%)!important;border:0!important}
.p-brand{display:flex;gap:10px;align-items:center;padding:2px 6px 18px}
.p-brand .mark{display:inline-grid;place-items:center;width:38px;height:38px;border-radius:11px;background:#fff;box-shadow:0 2px 8px rgba(0,0,0,.25);flex:none}
.p-brand .mark img{width:28px;height:28px;object-fit:contain}
.p-brand b{display:block;color:#fff;font-size:16.5px}
.p-brand small{display:block;color:#7FD0F5;font-size:11px;letter-spacing:1.4px;text-transform:uppercase;font-weight:700}
.p-group{color:#6F86A8;font-size:10.5px;letter-spacing:1.3px;text-transform:uppercase;font-weight:700;padding:14px 10px 6px}
.shell aside button{position:relative;display:flex!important;align-items:center;gap:10px;width:100%!important;padding:9px 10px!important;border:0!important;border-radius:9px!important;
  color:#C9D6E8!important;background:transparent!important;font-size:13.5px!important;font-weight:500!important;text-align:left;white-space:nowrap}
.shell aside button svg{flex:none;opacity:.75}
.shell aside button:hover{background:#13294A!important;color:#fff!important}
.shell aside button[aria-current=page]{background:linear-gradient(90deg,rgba(41,171,226,.22),rgba(41,171,226,.06))!important;color:#fff!important}
.shell aside button[aria-current=page]::before{content:"";position:absolute;left:-14px;top:8px;bottom:8px;width:3px;border-radius:0 3px 3px 0;background:#29ABE2}
.shell aside button[aria-current=page] svg{opacity:1;color:#7FD0F5}
.shell main{margin-left:var(--p-side)!important;width:auto!important;max-width:none!important;padding:22px 32px 56px!important}

/* Page header and surfaces */
.shell .top{border-bottom:0!important;padding-bottom:6px!important;margin-bottom:16px!important}
.shell .top .eyebrow{color:var(--p-brand-ink)}
.shell .top h1{font-size:24px!important;font-weight:750;letter-spacing:-.4px!important}
.shell .top .pill{background:var(--p-brand-soft)!important;color:var(--p-brand-ink)!important;border-radius:99px!important}
.shell .card,.shell details,.shell .admin-table-wrap,.shell .workspace-table,.shell .history-record,.desktop-summary,.shell .history-profile,.shell .history-metrics,.shell .history-card{
  border-radius:14px!important;border:1px solid var(--p-line)!important;box-shadow:var(--p-shadow)!important;background:#fff}
.shell .admin-table-wrap,.shell .workspace-table{overflow:auto}
.desktop-summary{overflow:hidden}
.desktop-summary>div{border-color:var(--p-line)!important}
.desktop-summary span{text-transform:uppercase;letter-spacing:.5px;font-size:11px!important;font-weight:600}
.desktop-summary strong{font-size:28px!important;letter-spacing:-.5px}
.shell th{background:#FAFBFD!important;font-size:11px!important;letter-spacing:.4px;text-transform:uppercase;color:var(--p-muted)!important}
.shell td{border-color:var(--p-line)}
.shell button{border-radius:9px!important;border-color:var(--p-line)}
.shell .primary,.shell button.primary{background:var(--p-brand)!important;border-color:var(--p-brand)!important;color:#fff!important}
.shell .primary:hover{background:var(--p-brand-ink)!important}
.shell input,.shell select,.shell textarea{border-radius:9px!important;border-color:var(--p-line)!important;background:#fff!important}
.shell .banner{border-radius:12px!important;background:var(--p-brand-soft)!important;color:var(--p-brand-ink)!important}
.shell .pill{border-radius:99px}
#admin-status:not(:empty){margin:12px 0 0!important;padding:10px 14px!important;border-radius:10px;background:#fff;border:1px solid var(--p-line)}
dialog{border-radius:16px!important;box-shadow:0 20px 60px rgba(11,31,58,.25)}

/* Express alerts now live in Operations; no banner or popup on every admin page */
.express-inbox,dialog.express-popup,#express-queue{display:none!important}

/* Operations: the staff workspace, full width */
#operations{margin:-22px -32px -56px}
#operations iframe{display:block;width:100%;height:calc(100vh - 60px);border:0;background:var(--p-bg)}
body.bs-ops .shell .top{display:none}

@media (max-width:900px){
  .shell aside{position:sticky!important;width:auto;bottom:auto;flex-direction:row;overflow-x:auto;padding:8px!important}
  .p-brand,.p-group{display:none}
  .shell aside button{width:auto!important}
  .shell aside button[aria-current=page]::before{display:none}
  body.bs-in>header,body.bs-in>main,.shell main{margin-left:0!important}
  body.bs-in>header{position:static;flex-wrap:wrap}
  .shell main{padding:16px!important}
  #operations{margin:-16px}
}

/* Tidy top bar: campus switch and actions on one line */
body.bs-in>header>div:not(#admin-connected){display:none}
body.bs-in #admin-connected{margin-left:0;width:100%;flex-wrap:nowrap}
body.bs-in #admin-connected label{display:none}
body.bs-in #admin-connected select{width:240px;max-width:40vw}
body.bs-in #admin-connected [data-online-open]{order:5;margin-left:auto}
body.bs-in #admin-connected #admin-refresh{order:6}
body.bs-in #admin-connected #admin-logout{order:7}
#launch [data-online-install]{margin:0 0 16px}

/* Bold wordmark */
.p-brand .mark{width:44px;height:44px;border-radius:13px}.p-brand .mark img{width:34px;height:34px}
.p-word b{display:block;font-size:19px!important;font-weight:850;letter-spacing:-.3px;color:#fff;line-height:1.05}
.p-word b i{font-style:normal;color:#4CC3F5}
.p-word small{display:block;color:#8EA3C2!important;font-size:10.5px!important;letter-spacing:1.6px;text-transform:uppercase;font-weight:700;margin-top:3px}

/* Light accent palette and charts */
body.bs-in{background:linear-gradient(180deg,#F5F8FC 0%,#F1F5FA 100%)}
.p-chip{display:inline-grid;place-items:center;width:36px;height:36px;border-radius:11px;font-style:normal;margin-bottom:10px}
.p-chip.lav{background:#EDE9FE;color:#6D28D9}.p-chip.sky{background:#E0F2FE;color:#0369A1}.p-chip.mint{background:#D1FAE5;color:#047857}.p-chip.amber{background:#FEF3C7;color:#B45309}
.p-charts{display:grid;grid-template-columns:1fr 1.2fr 1.2fr;gap:16px;margin:0 0 24px}
.p-charts .card{padding:18px!important;margin:0}
.p-charts h3{margin:0 0 12px;font-size:14.5px!important}
.p-donut{display:flex;align-items:center;gap:16px}
.p-donut svg{width:132px;height:132px;flex:none}
.p-donut ul{list-style:none;margin:0;padding:0;display:grid;gap:9px;flex:1;font-size:13px}
.p-donut li{display:flex;align-items:center;gap:8px}
.p-donut li i{width:10px;height:10px;border-radius:3px;flex:none}
.p-donut li span{flex:1;color:var(--p-muted)}
.p-donut-n{font-size:28px;font-weight:800;fill:var(--p-ink)}
.p-donut-l{font-size:11px;fill:var(--p-muted);text-transform:uppercase;letter-spacing:1px}
.p-columns{width:100%;height:auto;display:block}
.p-col-l{font-size:10.5px;fill:var(--p-muted)}
.p-big{font-size:24px;font-weight:800;letter-spacing:-.4px;margin:-4px 0 6px;color:#047857}
.p-chart-note{font-size:11.5px;color:var(--p-muted);margin:6px 0 0}
@media (max-width:1200px){.p-charts{grid-template-columns:1fr 1fr}.p-charts>:first-child{grid-column:1/-1}}
@media (max-width:900px){.p-charts{grid-template-columns:1fr}}

.p-columns{max-height:210px;margin:0 auto}
