/* Fonts are loaded via <link> in app.html <head> — using @import here
   serialises CSS fetch → @import resolve → font CSS fetch → font files,
   stalling first paint by several hundred ms on cold loads. */

/* ════════════════════════════════════════════════════════════
   DESIGN TOKENS — Aurora Mission Control (dark)
   ════════════════════════════════════════════════════════════ */
:root{
  /* Jarvis Brand — brighter on dark */
  --gold:#FFCC4D;
  --gold-d:#FFB527;
  --gold-b:rgba(255,204,77,.10);
  --gold-glow:rgba(255,204,77,.32);
  --gold-strong:rgba(255,204,77,.46);
  --slate:#9097B0;
  --slate-b:rgba(144,151,176,.10);
  --slate-d:rgba(144,151,176,.25);

  /* Surfaces — deep blue-black with subtle warmth */
  --bg:#080910;
  --s1:#11131f;
  --s2:#181a28;
  --s3:#232639;
  --card:#11131f;

  /* Glassy tints for layered surfaces */
  --tint-1:rgba(255,255,255,.03);
  --tint-2:rgba(255,255,255,.06);

  /* Borders */
  --b:rgba(255,255,255,.06);
  --b2:rgba(255,255,255,.12);
  --b3:rgba(255,255,255,.20);

  /* Typography */
  --text:#f0f1f8;
  --text-soft:#c8cbdb;
  --mu:#686d87;
  --mu2:#9ea1b8;

  /* Brand tokens (map to gold) */
  --brand:var(--gold);
  --brand-b:var(--gold-b);
  --brand-d:var(--gold-glow);
  --brand-grad:linear-gradient(135deg,#FFCC4D 0%,#FF9F1C 100%);
  --brand-grad-soft:linear-gradient(135deg,rgba(255,204,77,.18) 0%,rgba(255,159,28,.10) 100%);

  /* Semantic — neon-bright on dark */
  --g:#22d385;
  --gb:rgba(34,211,133,.12);
  --gd:rgba(34,211,133,.32);
  --am:#FFB527;
  --ab:rgba(255,181,39,.12);
  --ad:rgba(255,181,39,.32);
  --re:#ff5566;
  --rb:rgba(255,85,102,.12);
  --rd:rgba(255,85,102,.32);
  --p2:#9b7cff;
  --p3:#6388ff;
  --p4:#ff8c4d;

  /* Elevation — deeper shadows + inset highlights for dark */
  --sh-1:0 1px 2px rgba(0,0,0,.45), 0 1px 1px rgba(0,0,0,.25);
  --sh-2:0 6px 20px -2px rgba(0,0,0,.55), 0 3px 8px -1px rgba(0,0,0,.35);
  --sh-3:0 24px 60px -14px rgba(0,0,0,.65), 0 10px 20px -6px rgba(0,0,0,.45);
  --sh-glow:0 0 0 4px var(--gold-glow), 0 0 26px var(--gold-glow);
  --sh-inset:inset 0 1px 0 rgba(255,255,255,.06);

  /* Typography */
  --font-ui:'Geist','Plus Jakarta Sans',-apple-system,system-ui,sans-serif;
  --font-mono:'JetBrains Mono',monospace;

  /* Motion */
  --ease:cubic-bezier(.32,.72,0,1);
  --ease-out:cubic-bezier(.16,1,.3,1);
  --dur:200ms;

  --sb:240px;
}

/* ════════════════════════════════════════════════════════════
   LIGHT MODE OVERRIDES  (html.light)
   ════════════════════════════════════════════════════════════ */
html.light{
  --bg:#f2f3f7;
  --s1:#ffffff;
  --s2:#f7f8fb;
  --s3:#eceef4;
  --card:#ffffff;
  --tint-1:rgba(0,0,0,.02);
  --tint-2:rgba(0,0,0,.04);
  --b:rgba(0,0,0,.07);
  --b2:rgba(0,0,0,.12);
  --b3:rgba(0,0,0,.20);
  --text:#0f1018;
  --text-soft:#3a3e54;
  --mu:#6b7280;
  --mu2:#9ca3af;
  --gold:#C07E00;
  --gold-d:#A06800;
  --gold-b:rgba(192,126,0,.10);
  --gold-glow:rgba(192,126,0,.28);
  --gold-strong:rgba(192,126,0,.40);
  --brand:var(--gold);
  --brand-b:var(--gold-b);
  --brand-d:var(--gold-glow);
  --brand-grad:linear-gradient(135deg,#C07E00 0%,#A06800 100%);
  --brand-grad-soft:linear-gradient(135deg,rgba(192,126,0,.12) 0%,rgba(160,104,0,.07) 100%);
  --g:#16a34a;
  --gb:rgba(22,163,74,.08);
  --gd:rgba(22,163,74,.25);
  --am:#d97706;
  --ab:rgba(217,119,6,.08);
  --ad:rgba(217,119,6,.25);
  --re:#dc2626;
  --rb:rgba(220,38,38,.08);
  --rd:rgba(220,38,38,.25);
  --p2:#7c3aed;
  --p3:#2563eb;
  --p4:#ea580c;
  --sh-1:0 1px 3px rgba(0,0,0,.08), 0 1px 2px rgba(0,0,0,.05);
  --sh-2:0 4px 16px rgba(0,0,0,.10), 0 2px 6px rgba(0,0,0,.06);
  --sh-3:0 16px 48px rgba(0,0,0,.14), 0 6px 16px rgba(0,0,0,.08);
  --sh-glow:0 0 0 4px var(--gold-glow), 0 0 20px var(--gold-glow);
  --sh-inset:inset 0 1px 0 rgba(0,0,0,.04);
}

/* Aurora blobs — tone down in light mode */
html.light body::before{opacity:.35;}
html.light body::after{background-image:radial-gradient(rgba(0,0,0,.04) 1px,transparent 1px);}

/* Topbar glass — lighter in light mode */
html.light #topbar{background:rgba(242,243,247,.80);}

/* ── STAT VALUE: gradient text is invisible on light bg — override to solid ── */
html.light .stv{background:none;-webkit-background-clip:unset;background-clip:unset;-webkit-text-fill-color:var(--text);color:var(--text);font-weight:800;}
html.light .stv.cb{-webkit-text-fill-color:#b45309;color:#b45309;}
html.light .stv.cg{-webkit-text-fill-color:#15803d;color:#15803d;}
html.light .stv.ca{-webkit-text-fill-color:#d97706;color:#d97706;}
html.light .stv.cr{-webkit-text-fill-color:#dc2626;color:#dc2626;}

/* Stat tile hover glow — lighter in light mode */
html.light .stile:hover{box-shadow:var(--sh-2),0 0 0 1px rgba(180,83,9,.18);transform:translateY(-2px);}
html.light .stile::after{background:radial-gradient(120% 80% at 100% 0%,rgba(180,83,9,.07),transparent 60%);}
html.light .stile::before{background:linear-gradient(90deg,transparent,rgba(180,83,9,.20),transparent);}

/* Sidebar — white bg for cleaner contrast in light mode */
html.light #sb{background:var(--s1);border-right-color:var(--b2);}

/* Sidebar brand — same gold gradient as dark mode */
html.light .sb-brand{background:linear-gradient(135deg,#FFCC4D 0%,#FF9F1C 100%);}

/* Sidebar active item — gold border visible on white bg */
html.light .sb-item.on{border-color:rgba(192,126,0,.30);box-shadow:0 0 0 1px rgba(192,126,0,.20),0 2px 10px rgba(192,126,0,.12);}

/* Cards + stat tiles — punchier shadows in light mode */
html.light .card{box-shadow:0 2px 12px rgba(0,0,0,.08),0 1px 4px rgba(0,0,0,.05);}
html.light .card:hover{box-shadow:0 8px 28px rgba(0,0,0,.12),0 3px 8px rgba(0,0,0,.06);}
html.light .stile{box-shadow:0 2px 12px rgba(0,0,0,.08),0 1px 4px rgba(0,0,0,.05);}
html.light .stile:hover{box-shadow:0 8px 28px rgba(0,0,0,.12),0 3px 8px rgba(0,0,0,.06),0 0 0 1px rgba(180,83,9,.18);transform:translateY(-3px);}

/* View hero — boost visibility in light mode (low-opacity rgba on white = invisible) */
html.light .view-hero{background:linear-gradient(135deg,rgba(255,204,77,.20) 0%,rgba(155,124,255,.14) 60%,rgba(99,136,255,.10) 100%),var(--s1);border-color:rgba(192,126,0,.28);box-shadow:0 4px 24px rgba(0,0,0,.09),0 1px 4px rgba(0,0,0,.05),inset 0 1px 0 rgba(255,255,255,.80);}
html.light .view-hero::before{opacity:.55;}
html.light .view-hero::after{opacity:.30;}

/* Mode bar — white glass instead of dark navy in light mode */
html.light .mode-bar{background:rgba(255,255,255,.85);border-color:var(--b2);box-shadow:var(--sh-1);}
html.light .mb-off{color:var(--mu);}
html.light .mb-off:hover{background:var(--s3);color:var(--text);}

/* Brand button — use proper amber in light mode (was dark brown) */
html.light .btn-brand{background:linear-gradient(135deg,#f59e0b 0%,#d97706 100%);color:#1a0a00;border-color:transparent;}
html.light .btn-brand:hover{filter:brightness(1.06);}

/* Welcome banner — warmer, more visible in light mode */
html.light .dash-welcome{background:linear-gradient(135deg,rgba(251,191,36,.18) 0%,rgba(245,158,11,.10) 100%);border-color:rgba(245,158,11,.40);}

/* Admin banner border accent — adjust for light */
html.light .admin-welcome{border-left-color:#d97706;}

/* Card header gradient — lighten for light mode */
html.light .card-h{background:rgba(0,0,0,.02);}

/* Standard dot grid label text */
html.light .stl{color:var(--mu2);}
html.light .stile-icon{opacity:.50;}

/* Theme toggle button */
#theme-btn{display:flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:8px;border:1px solid var(--b2);background:var(--s2);cursor:pointer;font-size:15px;line-height:1;transition:background .15s,border-color .15s;flex-shrink:0;}
#theme-btn:hover{background:var(--s3);border-color:var(--b3);}

/* ════════════════════════════════════════════════════════════
   BASE
   ════════════════════════════════════════════════════════════ */
*{box-sizing:border-box;margin:0;padding:0;}
html,body{height:100%;font-family:var(--font-ui);font-size:14px;line-height:1.45;background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;letter-spacing:-.005em;}

/* Aurora — slow-drifting neon blobs against the deep navy bg */
body::before{content:'';position:fixed;inset:-10%;pointer-events:none;z-index:0;background:
  radial-gradient(50% 40% at 85% -5%,rgba(255,204,77,.28),transparent 60%),
  radial-gradient(45% 40% at 5% 100%,rgba(155,124,255,.24),transparent 60%),
  radial-gradient(38% 36% at 120% 55%,rgba(99,136,255,.18),transparent 60%),
  radial-gradient(40% 35% at -10% 40%,rgba(34,211,133,.10),transparent 65%);
  filter:blur(2px);animation:aurora 36s ease-in-out infinite alternate;}
body::after{content:'';position:fixed;inset:0;pointer-events:none;z-index:0;background-image:radial-gradient(rgba(255,255,255,.025) 1px,transparent 1px);background-size:38px 38px;mask-image:linear-gradient(180deg,#000 0%,transparent 80%);-webkit-mask-image:linear-gradient(180deg,#000 0%,transparent 80%);}
@keyframes aurora{
  0%  {background-position: 0% 0%,   0% 0%,   0% 0%;}
  50% {background-position: 4% -3%,  -2% 4%,  -3% -2%;}
  100%{background-position: -3% 2%,  3% -2%,  2% 3%;}
}

/* ════════════════════════════════════════════════════════════
   AUTH SCREENS
   ════════════════════════════════════════════════════════════ */
#auth-screen{position:fixed;inset:0;z-index:100;background:var(--bg);display:flex;align-items:center;justify-content:center;padding:24px;}
.auth-card{background:var(--s1);border:1px solid var(--b);border-radius:20px;padding:40px 44px;width:100%;max-width:460px;position:relative;z-index:1;box-shadow:var(--sh-3);}
.auth-logo{display:flex;align-items:center;margin-bottom:28px;background:var(--brand-grad);padding:11px 18px;border-radius:12px;width:fit-content;box-shadow:var(--sh-1);}
.auth-logo-img{height:38px;width:auto;display:block;}
.auth-logo-name{display:none;}
.auth-logo-sub{font-family:'JetBrains Mono',monospace;font-size:9px;color:var(--mu2);margin-top:1px;}
.auth-title{font-size:28px;font-weight:800;color:var(--text);margin-bottom:6px;letter-spacing:-.025em;line-height:1.12;}
.auth-sub{font-size:14px;color:var(--mu2);margin-bottom:26px;line-height:1.55;}
.auth-form{display:flex;flex-direction:column;gap:14px;}
.form-field{display:flex;flex-direction:column;gap:6px;}
.form-field label{font-family:'JetBrains Mono',monospace;font-size:9px;letter-spacing:.1em;text-transform:uppercase;color:var(--mu2);font-weight:600;}
.form-field input,.form-field select{background:var(--s1);border:1px solid var(--b2);border-radius:10px;padding:11px 13px;color:var(--text);font-family:inherit;font-size:14px;outline:none;transition:border-color var(--dur) var(--ease),box-shadow var(--dur) var(--ease);}
.form-field input:focus,.form-field select:focus{border-color:var(--gold);box-shadow:var(--sh-glow);}
.form-field input::placeholder{color:var(--mu);}
.form-row{display:grid;grid-template-columns:1fr 1fr;gap:12px;}
.auth-btn{width:100%;padding:13px 18px;background:var(--brand-grad);border:none;border-radius:11px;color:#15151c;font-family:inherit;font-size:14px;font-weight:700;cursor:pointer;transition:transform var(--dur) var(--ease),box-shadow var(--dur) var(--ease),filter var(--dur) var(--ease);margin-top:6px;box-shadow:var(--sh-2);letter-spacing:-.005em;}
.auth-btn:hover{transform:translateY(-1px);box-shadow:var(--sh-3);filter:brightness(1.04);}
.auth-btn:active{transform:translateY(0);box-shadow:var(--sh-1);}
.auth-btn:disabled{opacity:.55;cursor:default;transform:none;filter:none;box-shadow:none;}
.auth-switch{text-align:center;margin-top:20px;font-size:13px;color:var(--mu2);}
.auth-switch a{color:var(--gold-d);cursor:pointer;text-decoration:none;font-weight:600;}
.auth-switch a:hover{text-decoration:underline;}
.auth-error{background:var(--rb);border:1px solid var(--rd);border-radius:10px;padding:11px 13px;color:var(--re);font-size:13px;display:none;}
.auth-error.show{display:block;}
.plan-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-bottom:4px;}
.plan-card{border:1.5px solid var(--b2);border-radius:12px;padding:13px;cursor:pointer;transition:all var(--dur) var(--ease);text-align:center;background:var(--s1);}
.plan-card:hover{border-color:var(--brand-d);transform:translateY(-2px);box-shadow:var(--sh-2);}
.plan-card.sel{border-color:var(--gold);background:var(--brand-grad-soft);box-shadow:var(--sh-glow);}
.plan-card .pn{font-family:inherit;font-size:13px;font-weight:700;color:var(--text);margin-bottom:4px;letter-spacing:-.005em;}
.plan-card .pp{font-family:'JetBrains Mono',monospace;font-size:10px;color:var(--mu2);}

/* ════════════════════════════════════════════════════════════
   APP SHELL
   ════════════════════════════════════════════════════════════ */
#app{display:none;height:100%;flex-direction:row;}
#app.show{display:flex;}

/* Sidebar */
#sb{width:var(--sb);flex-shrink:0;background:var(--bg);border-right:1px solid var(--b);display:flex;flex-direction:column;z-index:20;overflow-y:auto;position:relative;}
.sb-brand{padding:20px 20px;background:var(--brand-grad);display:flex;align-items:center;gap:12px;box-shadow:0 4px 24px rgba(255,159,28,.40);}
.sb-brand-img{height:34px;width:auto;display:block;}
.sb-brand-name{display:none;}
.sb-brand-sub{font-family:'JetBrains Mono',monospace;font-size:8px;color:rgba(0,0,0,.55);margin-top:2px;}
.sb-sec{font-family:'JetBrains Mono',monospace;font-size:8px;letter-spacing:.18em;text-transform:uppercase;color:var(--mu);padding:14px 18px 6px;font-weight:600;}
.sb-item{display:flex;align-items:center;gap:10px;padding:10px 12px;margin:2px 8px;border-radius:11px;cursor:pointer;transition:all var(--dur) var(--ease);border:1px solid transparent;position:relative;color:var(--text-soft);}
.sb-item:hover{background:var(--s2);color:var(--text);border-color:var(--b);}
.sb-item.on{background:var(--brand-grad-soft);color:var(--gold-d);border-color:var(--gold-glow);box-shadow:0 0 0 1px var(--gold-glow),0 2px 12px rgba(255,159,28,.18);}
.sb-item.on::before{content:'';position:absolute;left:-8px;top:50%;transform:translateY(-50%);width:3px;height:22px;background:var(--brand-grad);border-radius:3px;box-shadow:0 0 16px var(--gold-strong);}
.sb-item.on .sb-ic,.sb-item.on .sb-lb{color:var(--gold-d);}
.sb-ic{font-size:15px;width:22px;text-align:center;flex-shrink:0;}
.sb-lb{font-size:13px;font-weight:600;flex:1;letter-spacing:-.005em;}
.sb-bg{font-family:'JetBrains Mono',monospace;font-size:8px;padding:2px 7px;border-radius:100px;border:1px solid;flex-shrink:0;font-weight:600;}
.sb-user{margin-top:auto;padding:14px 18px;border-top:1px solid var(--b);background:var(--s1);}
.sb-user-email{font-family:'JetBrains Mono',monospace;font-size:10px;color:var(--mu2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.sb-user-role{font-family:'JetBrains Mono',monospace;font-size:9px;padding:2px 8px;border-radius:100px;margin-top:5px;display:inline-block;font-weight:600;letter-spacing:.02em;}

/* Main + topbar */
#main{flex:1;display:flex;flex-direction:column;overflow:hidden;position:relative;z-index:1;}
#topbar{display:flex;align-items:center;justify-content:space-between;padding:14px 28px;border-bottom:1px solid var(--b);background:rgba(8,9,16,.65);backdrop-filter:saturate(160%) blur(22px);-webkit-backdrop-filter:saturate(160%) blur(22px);flex-shrink:0;gap:12px;flex-wrap:wrap;}
.tb-title{font-size:19px;font-weight:800;color:var(--text);letter-spacing:-.025em;}
.tb-sub{font-family:'JetBrains Mono',monospace;font-size:10px;color:var(--mu2);margin-top:2px;letter-spacing:.01em;}
#content{flex:1;overflow-y:auto;padding:26px 30px 44px;}

/* Views */
.view{display:none;animation:fadeUp .3s var(--ease-out) both;}.view.on{display:block;}
@keyframes fadeUp{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}

/* ════════════════════════════════════════════════════════════
   SHARED COMPONENTS
   ════════════════════════════════════════════════════════════ */
.card{background:var(--card);border:1px solid var(--b);border-radius:20px;overflow:hidden;margin-bottom:20px;transition:transform var(--dur) var(--ease),box-shadow var(--dur) var(--ease),border-color var(--dur) var(--ease);box-shadow:var(--sh-1),var(--sh-inset);}
.card:hover{border-color:var(--b2);box-shadow:var(--sh-2),var(--sh-inset);}
.card-h{display:flex;align-items:center;justify-content:space-between;padding:16px 22px;border-bottom:1px solid var(--b);background:linear-gradient(180deg,var(--tint-2),transparent);}
.card-t{font-family:'JetBrains Mono',monospace;font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:var(--mu2);font-weight:700;}
.card-b{padding:22px;}
.sg{display:grid;gap:12px;margin-bottom:18px;}
.sg2{grid-template-columns:repeat(2,1fr);}.sg3{grid-template-columns:repeat(3,1fr);}.sg4{grid-template-columns:repeat(4,1fr);}.sg5{grid-template-columns:repeat(5,1fr);}
.stile{background:linear-gradient(180deg,var(--s1) 0%,var(--s2) 100%);border:1px solid var(--b);border-radius:20px;padding:22px 24px;transition:transform var(--dur) var(--ease),box-shadow var(--dur) var(--ease),border-color var(--dur) var(--ease);box-shadow:var(--sh-1),var(--sh-inset);position:relative;overflow:hidden;}
.stile::before{content:'';position:absolute;top:0;left:0;right:0;height:2px;background:linear-gradient(90deg,transparent,var(--gold-glow),transparent);opacity:0;transition:opacity var(--dur) var(--ease);}
.stile::after{content:'';position:absolute;inset:-1px;border-radius:inherit;background:radial-gradient(120% 80% at 100% 0%,rgba(255,204,77,.18),transparent 60%);opacity:0;transition:opacity var(--dur) var(--ease);pointer-events:none;}
.stile:hover{transform:translateY(-3px);box-shadow:var(--sh-3),var(--sh-inset),0 0 0 1px var(--gold-glow);border-color:transparent;}
.stile:hover::before,.stile:hover::after{opacity:1;}
.stv{font-family:var(--font-ui);font-size:38px;font-weight:800;margin-bottom:6px;color:var(--text);letter-spacing:-.04em;line-height:1.0;background:linear-gradient(180deg,#ffffff 0%,#a8acc1 100%);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;}
.stl{font-family:'JetBrains Mono',monospace;font-size:9px;letter-spacing:.12em;text-transform:uppercase;color:var(--mu2);font-weight:700;}
.std{font-family:'JetBrains Mono',monospace;font-size:9.5px;margin-top:5px;display:inline-flex;align-items:center;gap:4px;}
.btn{display:inline-flex;align-items:center;gap:6px;font-family:'JetBrains Mono',monospace;font-size:11px;font-weight:600;padding:8px 14px;border-radius:9px;border:1px solid;cursor:pointer;transition:transform var(--dur) var(--ease),box-shadow var(--dur) var(--ease),background var(--dur) var(--ease),border-color var(--dur) var(--ease),filter var(--dur) var(--ease);letter-spacing:.005em;outline:none;}
.btn:hover{transform:translateY(-1px);box-shadow:var(--sh-2);}
.btn:active{transform:translateY(0);box-shadow:var(--sh-1);}
.btn:focus-visible{box-shadow:var(--sh-glow);}
.btn:disabled{opacity:.5;cursor:default;transform:none;box-shadow:none;}
.btn-brand{background:var(--brand-grad);border-color:transparent;color:#15151c;box-shadow:var(--sh-1);}
.btn-brand:hover{filter:brightness(1.05);}
.btn-g{background:var(--gb);border-color:var(--gd);color:var(--g);}
.btn-g:hover{background:rgba(15,161,78,.14);}
.btn-a{background:var(--ab);border-color:var(--ad);color:var(--am);}
.btn-a:hover{background:rgba(224,147,26,.14);}
.btn-r{background:var(--rb);border-color:var(--rd);color:var(--re);}
.btn-r:hover{background:rgba(221,54,54,.14);}
.btn-ghost{background:transparent;border-color:var(--b2);color:var(--mu2);}
.btn-ghost:hover{background:var(--s2);color:var(--text);border-color:var(--b3);}
.btn-full{width:100%;justify-content:center;padding:11px;}
.badge{display:inline-flex;align-items:center;gap:4px;font-family:'JetBrains Mono',monospace;font-size:9px;padding:3px 9px;border-radius:100px;border:1px solid;white-space:nowrap;font-weight:600;letter-spacing:.02em;}
.mn{font-family:'JetBrains Mono',monospace;}

/* Tables */
.tbl{width:100%;border-collapse:collapse;}
.tbl th{font-family:'JetBrains Mono',monospace;font-size:9px;letter-spacing:.11em;text-transform:uppercase;color:var(--mu);padding:11px 14px;border-bottom:1px solid var(--b2);text-align:left;white-space:nowrap;font-weight:600;}
.tbl td{padding:13px 14px;border-bottom:1px solid var(--b);font-size:13px;vertical-align:middle;}
.tbl tr:last-child td{border-bottom:none;}
.tbl tbody tr{transition:background var(--dur) var(--ease);}
.tbl tbody tr:hover{background:var(--brand-grad-soft);cursor:pointer;}

/* Status & plan badges */
.st-active{color:var(--g);border-color:var(--gd);background:var(--gb);}
.st-trial{color:var(--am);border-color:var(--ad);background:var(--ab);}
.st-suspended{color:var(--re);border-color:var(--rd);background:var(--rb);}
.st-cancelled{color:var(--mu2);border-color:var(--b);background:var(--s2);}
.pl-starter{color:var(--mu2);border-color:var(--b);background:var(--s2);}
.pl-growth{color:var(--p2);border-color:rgba(115,91,234,.24);background:rgba(115,91,234,.08);}
.pl-enterprise{color:var(--gold-d);border-color:var(--gold-glow);background:var(--brand-grad-soft);}

/* Filter bar */
.filter-bar{display:flex;gap:10px;margin-bottom:16px;flex-wrap:wrap;align-items:center;}
.filter-inp{background:var(--s1);border:1px solid var(--b2);border-radius:9px;padding:9px 13px;color:var(--text);font-family:inherit;font-size:13px;outline:none;transition:border-color var(--dur) var(--ease),box-shadow var(--dur) var(--ease);}
.filter-inp:focus{border-color:var(--gold);box-shadow:var(--sh-glow);}
.filter-inp::placeholder{color:var(--mu);}
.filter-sel{background:var(--s1);border:1px solid var(--b2);border-radius:9px;padding:9px 13px;color:var(--text);font-family:'JetBrains Mono',monospace;font-size:11px;outline:none;cursor:pointer;transition:border-color var(--dur) var(--ease);}
.filter-sel:focus{border-color:var(--gold);}

/* Pagination */
.pagination{display:flex;align-items:center;gap:7px;margin-top:14px;justify-content:flex-end;}
.pg-btn{background:var(--s1);border:1px solid var(--b2);border-radius:7px;padding:5px 12px;font-family:'JetBrains Mono',monospace;font-size:10px;color:var(--mu2);cursor:pointer;transition:all var(--dur) var(--ease);}
.pg-btn:hover{border-color:var(--gold);color:var(--gold-d);box-shadow:var(--sh-1);}
.pg-btn.cur{border-color:var(--gold);color:var(--gold-d);background:var(--brand-grad-soft);}

/* Modal */
.modal-overlay{position:fixed;inset:0;background:rgba(0,0,0,.62);z-index:200;display:none;align-items:center;justify-content:center;padding:24px;backdrop-filter:blur(14px) saturate(140%);-webkit-backdrop-filter:blur(14px) saturate(140%);}
.modal-overlay.open{display:flex;animation:overlayIn .25s var(--ease-out) both;}
@keyframes overlayIn{from{opacity:0}to{opacity:1}}
.modal{background:var(--s1);border:1px solid var(--b2);border-radius:26px;width:100%;max-width:680px;max-height:88vh;overflow-y:auto;animation:modalIn .3s var(--ease-out) both;box-shadow:var(--sh-3),var(--sh-inset);}
@keyframes modalIn{from{opacity:0;transform:translateY(14px) scale(.97)}to{opacity:1;transform:translateY(0) scale(1)}}
.modal-h{display:flex;align-items:center;justify-content:space-between;padding:20px 24px;border-bottom:1px solid var(--b);background:linear-gradient(180deg,var(--tint-2),transparent);}
.modal-title{font-size:17px;font-weight:700;color:var(--text);letter-spacing:-.018em;}
.modal-close{background:var(--s2);border:1px solid var(--b2);color:var(--mu2);width:32px;height:32px;border-radius:8px;cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:15px;transition:all var(--dur) var(--ease);}
.modal-close:hover{color:var(--text);background:var(--s3);border-color:var(--b3);}
.modal-body{padding:22px 24px;}
.modal-row{display:flex;justify-content:space-between;padding:10px 0;border-bottom:1px solid var(--b);}
.modal-row:last-child{border-bottom:none;}
.modal-key{font-family:'JetBrains Mono',monospace;font-size:10px;color:var(--mu2);font-weight:600;}
.modal-val{font-size:13px;font-weight:500;color:var(--text);text-align:right;}

/* Dot — pulsing core with concentric halo rings */
.dot{width:8px;height:8px;border-radius:50%;display:inline-block;flex-shrink:0;position:relative;background:currentColor;box-shadow:0 0 0 0 currentColor;animation:pulse-core 2s ease-in-out infinite;}
.dot::before,.dot::after{content:'';position:absolute;inset:0;border-radius:50%;border:1.5px solid currentColor;opacity:.5;animation:pulse-ring 2s ease-out infinite;}
.dot::after{animation-delay:.6s;}
.dg{color:var(--g);}.da{color:var(--am);animation-duration:1s;}.dr{color:var(--re);}
.da::before,.da::after{animation-duration:1s;}
@keyframes pulse-core{0%,100%{opacity:1;box-shadow:0 0 8px 0 currentColor;}50%{opacity:.7;box-shadow:0 0 12px 1px currentColor;}}
@keyframes pulse-ring{0%{transform:scale(1);opacity:.5;}100%{transform:scale(2.4);opacity:0;}}
@keyframes pulse{0%,100%{opacity:1}50%{opacity:.35}}

/* Progress */
.pbar{height:4px;background:var(--s3);border-radius:4px;overflow:hidden;}
.pfill{height:100%;border-radius:4px;transition:width .9s var(--ease-out);background:var(--brand-grad);box-shadow:0 0 14px var(--gold-strong);}

/* Colour utilities */
.cg{color:var(--g);}.ca{color:var(--am);}.cr{color:var(--re);}.cb{color:var(--gold-d);}

/* Premium utilities */
.gradient-text{background:var(--brand-grad);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;color:transparent;}
.glass{background:rgba(24,26,40,.55);backdrop-filter:blur(18px) saturate(180%);-webkit-backdrop-filter:blur(18px) saturate(180%);border:1px solid rgba(255,255,255,.08);}
.elevated{box-shadow:var(--sh-2);}
.elevated-hi{box-shadow:var(--sh-3);}
code{font-family:'JetBrains Mono',monospace;font-size:.92em;background:var(--s2);padding:1px 6px;border-radius:5px;border:1px solid var(--b);}

/* Hero view banner — gradient strip + title block, drop above a view */
.view-hero{position:relative;margin:-6px -4px 22px;padding:26px 28px 22px;border-radius:20px;background:linear-gradient(135deg,rgba(255,204,77,.10) 0%,rgba(155,124,255,.10) 60%,rgba(99,136,255,.08) 100%),var(--s1);border:1px solid var(--b);box-shadow:var(--sh-2),var(--sh-inset);overflow:hidden;}
.view-hero::before{content:'';position:absolute;top:-50%;right:-15%;width:65%;height:180%;background:radial-gradient(circle at center,var(--gold-strong),transparent 60%);opacity:.8;filter:blur(50px);pointer-events:none;}
.view-hero::after{content:'';position:absolute;left:-15%;bottom:-60%;width:55%;height:170%;background:radial-gradient(circle at center,rgba(155,124,255,.40),transparent 60%);opacity:.65;filter:blur(46px);pointer-events:none;}
.view-hero > *{position:relative;z-index:1;}
.view-hero-title{font-size:28px;font-weight:800;color:var(--text);letter-spacing:-.032em;line-height:1.12;display:flex;align-items:center;gap:12px;}
.view-hero-sub{font-size:13px;color:var(--mu2);margin-top:4px;line-height:1.5;}
.view-hero-row{display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap;}

/* Live ticker indicator — pulsing dot + text label */
.live-tag{display:inline-flex;align-items:center;gap:7px;font-family:'JetBrains Mono',monospace;font-size:9.5px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;padding:5px 10px;border-radius:100px;background:rgba(15,161,78,.10);border:1px solid var(--gd);color:var(--g);}
.live-tag .dot{width:7px;height:7px;}

/* Sparkline placeholder */
.spark{width:64px;height:18px;display:inline-block;vertical-align:middle;}

/* Trend pill */
.trend{display:inline-flex;align-items:center;gap:3px;font-family:'JetBrains Mono',monospace;font-size:9.5px;font-weight:700;padding:2px 7px;border-radius:100px;letter-spacing:.02em;}
.trend.up{color:var(--g);background:var(--gb);}
.trend.dn{color:var(--re);background:var(--rb);}
.trend.flat{color:var(--mu2);background:var(--s2);}

/* Toast */
#toast{position:fixed;bottom:24px;right:24px;z-index:999;display:flex;flex-direction:column;gap:9px;}
.toast-item{background:var(--s1);border:1px solid var(--b2);border-radius:12px;padding:13px 17px;font-size:13px;animation:slideIn .3s var(--ease-out) both;display:flex;align-items:center;gap:9px;box-shadow:var(--sh-3);min-width:280px;}
.toast-item.ok{border-left:3px solid var(--g);}
.toast-item.err{border-left:3px solid var(--re);}
.toast-item.info{border-left:3px solid var(--gold);}
@keyframes slideIn{from{opacity:0;transform:translateX(24px)}to{opacity:1;transform:translateX(0)}}

/* Scrollbars */
::-webkit-scrollbar{width:7px;height:7px;}
::-webkit-scrollbar-thumb{background:rgba(15,15,23,.13);border-radius:7px;}
::-webkit-scrollbar-thumb:hover{background:rgba(15,15,23,.22);}

/* Mobile sidebar overlay + hamburger */
#sb-overlay{display:none;position:fixed;inset:0;background:rgba(0,0,0,.55);z-index:49;backdrop-filter:blur(2px);-webkit-backdrop-filter:blur(2px);transition:opacity .25s;}
#sb-overlay.show{display:block;}
#menu-btn{display:none;align-items:center;justify-content:center;width:36px;height:36px;background:var(--s2);border:1px solid var(--b2);border-radius:8px;cursor:pointer;flex-shrink:0;color:var(--text);font-size:18px;line-height:1;transition:background .12s;padding:0;}
#menu-btn:hover{background:var(--s3);}

/* Responsive */
@media(max-width:900px){
  #sb{position:fixed;left:0;top:0;bottom:0;transform:translateX(-100%);z-index:50;transition:transform .3s var(--ease-out);}
  #sb.mo{transform:translateX(0);}
  #main{width:100%;}
  #menu-btn{display:flex;}
  .sg4,.sg5{grid-template-columns:repeat(2,1fr);}
  #content{padding:20px;}
}

/* ════════════════════════════════════════════════════════════
   FEATURE-SPECIFIC COMPONENTS
   (Phase 1 setup, connectors, agent rows, runbooks, toggles)
   ════════════════════════════════════════════════════════════ */

/* Phase 1 — step indicator */
.step-wrap{display:flex;align-items:center;margin-bottom:22px;}
.snd{display:flex;flex-direction:column;align-items:center;gap:6px;cursor:pointer;flex:0;}
.sc{width:36px;height:36px;border-radius:50%;border:1.5px solid var(--b2);display:flex;align-items:center;justify-content:center;font-family:'JetBrains Mono',monospace;font-size:12px;font-weight:700;color:var(--mu2);background:var(--s1);transition:all var(--dur) var(--ease);flex-shrink:0;box-shadow:var(--sh-1);}
.snd:hover .sc{border-color:var(--brand-d);box-shadow:var(--sh-2);}
.snd.ac .sc{border-color:var(--brand);color:var(--gold-d);background:var(--brand-grad-soft);box-shadow:var(--sh-glow);}
.snd.dn .sc{border-color:var(--g);color:var(--g);background:var(--gb);}
.sn-lb{font-family:'JetBrains Mono',monospace;font-size:9px;letter-spacing:.1em;text-transform:uppercase;color:var(--mu2);text-align:center;white-space:nowrap;font-weight:600;}
.snd.ac .sn-lb{color:var(--gold-d);}
.snd.dn .sn-lb{color:var(--g);}
.sl{flex:1;height:1.5px;background:var(--b2);min-width:18px;margin-bottom:18px;border-radius:2px;transition:background var(--dur) var(--ease);}
.sl.dn{background:var(--g);}
.p1p{display:none;animation:fadeUp .3s var(--ease-out) both;}
.p1p.on{display:block;}

/* Connectors */
.ccon{background:var(--card);border:1px solid var(--b);border-radius:13px;margin-bottom:12px;overflow:hidden;transition:all var(--dur) var(--ease);box-shadow:var(--sh-1);}
.ccon:hover{border-color:var(--b2);box-shadow:var(--sh-2);transform:translateY(-1px);}
.ccon-h{display:flex;align-items:center;justify-content:space-between;padding:13px 16px;border-bottom:1px solid var(--b);background:linear-gradient(180deg,rgba(255,255,255,.5),rgba(245,246,249,.4));}
.cdot{width:7px;height:7px;border-radius:50%;background:var(--mu);}
.cdot.ok{background:var(--g);animation:pulse 2s infinite;box-shadow:0 0 10px var(--g);}
.cdot.er{background:var(--re);box-shadow:0 0 10px var(--re);}
.cdot.bu{background:var(--am);animation:pulse .7s infinite;box-shadow:0 0 10px var(--am);}

/* KPI tiles */
.kgd{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:11px;}
.ktl{background:var(--card);border:1px solid var(--b);border-radius:11px;padding:14px 16px;transition:all var(--dur) var(--ease);box-shadow:var(--sh-1);}
.ktl:hover{box-shadow:var(--sh-2);border-color:var(--b2);transform:translateY(-1px);}
.kv{font-family:'JetBrains Mono',monospace;font-size:22px;font-weight:600;color:var(--text);letter-spacing:-.02em;}

/* Checklists */
.chkr{display:flex;align-items:center;gap:10px;background:var(--card);border:1px solid var(--b);border-radius:9px;padding:10px 13px;margin-bottom:6px;transition:all var(--dur) var(--ease);box-shadow:var(--sh-1);}
.chkr:hover{border-color:var(--b2);}
.chkb{width:18px;height:18px;border-radius:5px;border:1.5px solid var(--b2);display:flex;align-items:center;justify-content:center;flex-shrink:0;cursor:pointer;transition:all var(--dur) var(--ease);background:var(--s1);}
.chkb:hover{border-color:var(--brand-d);}
.chkb.on{background:var(--brand-grad);border-color:var(--brand);box-shadow:var(--sh-glow);}
.chkb.on::after{content:'✓';color:#15151c;font-size:11px;font-weight:800;}

/* Agent rows (Phase 2) */
.agr{display:grid;grid-template-columns:1fr 60px 120px 90px;gap:9px;align-items:center;background:var(--card);border:1px solid var(--b);border-radius:11px;padding:11px 14px;margin-bottom:7px;cursor:pointer;transition:all var(--dur) var(--ease);position:relative;box-shadow:var(--sh-1);}
.agr:hover{border-color:var(--b2);box-shadow:var(--sh-2);transform:translateY(-1px);}
.agr.on{box-shadow:var(--sh-2);border-color:var(--b2);}
.agr-nm{font-size:13px;font-weight:700;letter-spacing:-.005em;color:var(--text);}
.agr-ds{font-family:'JetBrains Mono',monospace;font-size:10px;color:var(--mu2);margin-top:3px;}
.thr-in{width:60px;background:var(--s2);border:1px solid var(--b2);border-radius:8px;padding:6px 9px;font-family:'JetBrains Mono',monospace;font-size:11px;color:var(--text);outline:none;transition:all var(--dur) var(--ease);text-align:center;font-weight:600;}
.thr-in:focus{border-color:var(--p2);box-shadow:0 0 0 3px rgba(115,91,234,.16);}
.ast{display:inline-flex;align-items:center;gap:4px;font-family:'JetBrains Mono',monospace;font-size:9px;padding:3px 9px;border-radius:100px;border:1px solid;text-align:center;white-space:nowrap;font-weight:600;letter-spacing:.03em;}

/* Toggle switch */
.tgl{position:relative;width:34px;height:20px;cursor:pointer;flex-shrink:0;}
.tgl input{opacity:0;width:0;height:0;position:absolute;}
.tgl-tr{position:absolute;inset:0;border-radius:11px;background:var(--mu);transition:background var(--dur) var(--ease),box-shadow var(--dur) var(--ease);}
.tgl input:checked+.tgl-tr{background:var(--p2);box-shadow:0 0 14px rgba(115,91,234,.4);}
.tgl-th{position:absolute;top:2px;left:2px;width:16px;height:16px;border-radius:50%;background:#fff;transition:transform .26s var(--ease-out);pointer-events:none;box-shadow:var(--sh-1);}
.tgl input:checked~.tgl-th{transform:translateX(14px);}

/* Model cards (Phase 3) */
.mc{background:var(--card);border:1px solid var(--b);border-radius:11px;padding:15px;box-shadow:var(--sh-1);}
.mc-nm{font-family:'JetBrains Mono',monospace;font-size:11px;font-weight:700;margin-bottom:6px;letter-spacing:-.005em;color:var(--text);}
.mc-me{font-size:12px;color:var(--mu2);margin-bottom:11px;line-height:1.55;}

/* Runbooks (Phase 4) */
.rb-card{background:var(--card);border:1px solid var(--b);border-radius:14px;margin-bottom:12px;overflow:hidden;transition:all var(--dur) var(--ease);box-shadow:var(--sh-1);}
.rb-card:hover{border-color:var(--b2);box-shadow:var(--sh-2);transform:translateY(-2px);}
.rb-top{display:grid;grid-template-columns:auto 1fr auto auto;gap:14px;align-items:center;padding:16px 18px;cursor:pointer;}
.rb-ic{display:inline-flex;align-items:center;justify-content:center;width:42px;height:42px;border-radius:11px;background:var(--brand-grad-soft);border:1px solid var(--gold-glow);font-size:20px;flex-shrink:0;box-shadow:var(--sh-1);}
.rb-card:hover .rb-ic{box-shadow:var(--sh-2),0 0 14px var(--gold-strong);}
.rb-nm{font-size:14.5px;font-weight:700;letter-spacing:-.015em;color:var(--text);line-height:1.25;}
.rb-ds{font-size:11.5px;color:var(--mu2);margin-top:3px;line-height:1.4;}
.rb-tr{font-family:'JetBrains Mono',monospace;font-size:9.5px;padding:5px 10px;border-radius:8px;border:1px solid;white-space:nowrap;font-weight:600;letter-spacing:.01em;}
.rb-steps{padding:6px 16px 15px;display:none;border-top:1px solid var(--b);background:linear-gradient(180deg,rgba(245,246,249,.4),var(--s2));}
.rb-steps.op{display:block;}
.rb-step{display:flex;align-items:flex-start;gap:9px;padding:8px 11px;border-radius:8px;margin-bottom:5px;border:1px solid var(--b);background:var(--card);transition:all var(--dur) var(--ease);}
.rb-step:hover{border-color:var(--b2);}
.rb-step.rs{border-color:rgba(232,101,28,.28);background:rgba(232,101,28,.07);}
.rb-step.ds{border-color:var(--gd);background:var(--gb);}
.rb-sn{font-family:'JetBrains Mono',monospace;font-size:10px;color:var(--mu);min-width:16px;margin-top:1px;font-weight:600;}
.rb-st{font-size:12px;flex:1;line-height:1.55;color:var(--text-soft);}
.rb-tg{font-family:'JetBrains Mono',monospace;font-size:8px;padding:2px 7px;border-radius:5px;font-weight:600;letter-spacing:.05em;text-transform:uppercase;}
.tag-auto{background:rgba(232,101,28,.08);color:var(--p4);border:1px solid rgba(232,101,28,.26);}
.tag-human{background:rgba(75,109,240,.08);color:var(--p3);border:1px solid rgba(75,109,240,.26);}
.tag-check{background:var(--gb);color:var(--g);border:1px solid var(--gd);}
.rb-ft{display:flex;align-items:center;gap:7px;padding:10px 16px;border-top:1px solid var(--b);background:rgba(255,255,255,.4);}

/* Approval items (Phase 4) */
.appr-it{background:var(--card);border:1px solid var(--ad);border-left:3px solid var(--am);border-radius:10px;padding:12px 14px;margin-bottom:8px;box-shadow:var(--sh-1);transition:all var(--dur) var(--ease);}
.appr-it:hover{box-shadow:var(--sh-2);}
.appr-ti{font-size:13px;font-weight:700;color:var(--am);margin-bottom:4px;letter-spacing:-.005em;}
.appr-ds{font-size:12px;color:var(--mu2);margin-bottom:9px;line-height:1.55;}

/* Mode toggle buttons (Phase 4) */
.mode-bar{display:flex;gap:4px;background:rgba(24,26,40,.60);backdrop-filter:blur(14px) saturate(160%);-webkit-backdrop-filter:blur(14px) saturate(160%);border:1px solid var(--b2);border-radius:10px;padding:4px;box-shadow:var(--sh-1);}
.mb-btn{font-family:'JetBrains Mono',monospace;font-size:10px;padding:7px 13px;border-radius:8px;border:none;cursor:pointer;transition:all var(--dur) var(--ease);font-weight:700;letter-spacing:.02em;}
.mb-btn:hover{transform:translateY(-1px);}
.mb-sh{background:var(--brand-grad-soft);color:var(--gold-d);box-shadow:var(--sh-1);}
.mb-fl{background:rgba(232,101,28,.12);color:var(--p4);}
.mb-off{background:transparent;color:var(--mu2);}
.mb-off:hover{background:var(--s2);color:var(--text);}

/* Gate items */
.gate-it{display:flex;align-items:center;gap:10px;padding:10px 13px;background:var(--s2);border:1px solid var(--b);border-radius:9px;margin-bottom:7px;transition:all var(--dur) var(--ease);}
.gate-it.ok{border-color:var(--gd);background:var(--gb);}

/* Status dots (shared with main block) */
.dok{background:var(--g);color:var(--g);}

/* Feed items */
.fi-item{background:var(--card);border:1px solid var(--b);border-left:3px solid;border-radius:10px;padding:10px 13px;animation:fadeUp .3s var(--ease-out) both;box-shadow:var(--sh-1);}
.fi-msg{font-size:12px;line-height:1.5;}

/* ── ADMIN WELCOME BANNER ── */
.admin-welcome{position:relative;background:var(--s1);border:1px solid var(--b);border-left:3px solid var(--brand);border-radius:12px;padding:16px 20px;margin-bottom:13px;display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;box-shadow:var(--sh-1);}
.admin-welcome-label{font-family:'JetBrains Mono',monospace;font-size:9px;text-transform:uppercase;letter-spacing:.12em;color:var(--mu2);margin-bottom:4px;}
.admin-welcome-title{font-size:20px;font-weight:800;color:var(--text);letter-spacing:-.02em;}
.admin-kpi-chip{display:inline-flex;align-items:center;gap:5px;font-family:'JetBrains Mono',monospace;font-size:11px;font-weight:600;padding:5px 10px;border-radius:7px;border:1px solid;}
.kchip-gold{color:var(--gold);background:var(--gold-b);border-color:var(--gold-glow);}
.kchip-green{color:var(--g);background:var(--gb);border-color:var(--gd);}
.kchip-muted{color:var(--mu2);background:var(--tint-1);border-color:var(--b);}

/* ── TENANT WELCOME BANNER ── */
.dash-welcome{background:var(--brand-grad-soft);border:1px solid var(--gold-glow);border-radius:12px;padding:14px 18px;margin-bottom:13px;display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;box-shadow:var(--sh-1);}
.dw-sub{font-family:'JetBrains Mono',monospace;font-size:9px;color:var(--mu2);text-transform:uppercase;letter-spacing:.10em;margin-bottom:3px;}
.dw-name{font-size:17px;font-weight:800;color:var(--text);letter-spacing:-.018em;}
.dw-chips{display:flex;flex-wrap:wrap;gap:6px;}
.dw-chip{font-family:'JetBrains Mono',monospace;font-size:10px;font-weight:600;padding:3px 9px;border-radius:20px;border:1px solid;white-space:nowrap;}

/* ── STAT TILE ACCENTS ── */
.stile-top-gold{border-top:2px solid var(--gold);}
.stile-top-g{border-top:2px solid var(--g);}
.stile-top-p3{border-top:2px solid var(--p3);}
.stile-top-re{border-top:2px solid var(--re);}
.stile-top-p2{border-top:2px solid var(--p2);}
.stile-top-p4{border-top:2px solid var(--p4);}
.stile-icon-row{display:flex;align-items:center;justify-content:space-between;margin-bottom:5px;}
.stile-icon{font-size:15px;opacity:.65;line-height:1;}

/* ── PLAN DISTRIBUTION ── */
.plan-bar-row{display:flex;align-items:center;gap:10px;padding:9px 0;border-bottom:1px solid var(--b);}
.plan-bar-track{flex:1;height:6px;background:var(--s3);border-radius:3px;overflow:hidden;}
.plan-bar-fill{height:100%;border-radius:3px;transition:width .7s var(--ease-out);}

/* ── ADMIN ACTION GRID ── */
.action-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px;}
.action-card{background:var(--s2);border:1px solid var(--b);border-radius:10px;padding:12px;cursor:pointer;transition:background .15s,border-color .15s,transform .15s var(--ease-out);display:flex;flex-direction:column;align-items:flex-start;gap:3px;text-align:left;}
.action-card:hover{background:var(--s3);border-color:var(--b2);transform:translateY(-1px);box-shadow:var(--sh-2);}
.action-card-icon{font-size:20px;line-height:1;margin-bottom:2px;}
.action-card-label{font-size:12px;font-weight:700;color:var(--text);}
.action-card-sub{font-family:'JetBrains Mono',monospace;font-size:9px;color:var(--mu2);}

/* ── PHASE ROW (tenant dashboard) ── */
.phase-row{display:flex;align-items:center;gap:12px;padding:11px 0;border-bottom:1px solid var(--b);cursor:pointer;transition:background .12s;border-radius:8px;padding-left:4px;padding-right:4px;}
.phase-row:hover{background:var(--tint-2);}
.phase-icon-bubble{width:34px;height:34px;border-radius:9px;display:flex;align-items:center;justify-content:center;font-size:16px;flex-shrink:0;border:1px solid;}
.phase-pct-pill{font-family:'JetBrains Mono',monospace;font-size:10px;font-weight:700;padding:2px 7px;border-radius:20px;border:1px solid;white-space:nowrap;flex-shrink:0;}
