/* ============================================================================
   POLARIS DESIGN SYSTEM — the single source of truth for how everything looks.
   Every page/app links this file. Edit a token here → it changes everywhere.
   Served at /theme.css by both the prototype server (:8765) and the platform (:8010).
   ============================================================================ */
@import url('https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=Fraunces:opsz,wght@9..144,500;9..144,600&family=JetBrains+Mono:wght@500;700&display=swap');

:root{
  /* --- default (light-navy "Pro") palette --- */
  --bg:#0a1424; --bg2:#0e1b30; --bg3:#0c1830;
  --panel:rgba(255,255,255,.038); --panel2:rgba(255,255,255,.06);
  --brd:rgba(255,255,255,.08); --brd2:rgba(255,255,255,.15);
  --ink:#e9eef6; --ink2:#c3cfe0; --muted:#8294ab; --faint:#5b6c84;
  --gold:#cda64f; --gold-soft:rgba(205,166,79,.14); --gold-line:rgba(205,166,79,.38);
  --green:#46b98a; --green-soft:rgba(70,185,138,.13);
  --red:#e0654f; --red-soft:rgba(224,101,79,.13);
  --amber:#d99b3a; --amber-soft:rgba(217,155,58,.13);
  --blue:#5b9bd5; --blue-soft:rgba(91,155,213,.13);
  --r:16px; --serif:'Fraunces','Iowan Old Style',Palatino,Georgia,serif;
  --sans:'Inter',system-ui,-apple-system,Segoe UI,sans-serif;
  --mono:'JetBrains Mono',ui-monospace,Menlo,monospace;
  --shadow:0 18px 50px -20px rgba(0,0,0,.7); --accent:var(--gold);
  --tab:64px;
}
/* --- "Command" palette (deep teal — the default look for Polaris apps) --- */
body[data-mode="command"], body.polaris-theme{
  --bg:#04070e; --bg2:#06101d; --bg3:#050d18;
  --panel:rgba(56,232,208,.045); --panel2:rgba(56,232,208,.08);
  --brd:rgba(56,232,208,.17); --brd2:rgba(56,232,208,.34);
  --ink:#e6fbf7; --ink2:#aee7df; --muted:#5fa49b; --faint:#3c6c66;
  --accent:#38e8d0; --gold:#38e8d0; --gold-soft:rgba(56,232,208,.1); --gold-line:rgba(56,232,208,.45);
  --green:#46b98a; --red:#e0654f; --amber:#d99b3a; --blue:#5b9bd5;
  --shadow:0 0 40px -8px rgba(56,232,208,.25);
}

*{box-sizing:border-box;margin:0;padding:0}
html,body{height:100%}
body{
  font-family:var(--sans); color:var(--ink); -webkit-font-smoothing:antialiased;
  background:
    radial-gradient(1500px 1000px at 88% -25%, rgba(205,166,79,.035), transparent 55%),
    radial-gradient(900px 600px at -5% 110%, rgba(91,155,213,.03), transparent 55%),
    linear-gradient(160deg,var(--bg),var(--bg2) 55%,var(--bg3));
  background-attachment:fixed;
}
body[data-mode="command"], body.polaris-theme{background:
  radial-gradient(1500px 1000px at 90% -28%, rgba(56,232,208,.045), transparent 52%),
  radial-gradient(900px 600px at -8% 112%, rgba(56,232,208,.03), transparent 52%),
  linear-gradient(160deg,var(--bg),var(--bg2) 55%,var(--bg3)); background-attachment:fixed;}

/* ---------- shared component library (use these classes on any page) ---------- */
.t-h1{font-size:22px;font-weight:700;letter-spacing:.2px}
.t-sub{color:var(--muted);font-size:13.5px}
.t-mono{font-family:var(--mono)}
.t-serif{font-family:var(--serif)}

.t-btn{font:inherit;font-weight:600;border-radius:11px;border:1px solid var(--brd2);
  padding:9px 15px;cursor:pointer;background:var(--panel2);color:var(--ink);transition:.15s}
.t-btn:hover{border-color:var(--accent);color:#fff}
.t-btn.primary{background:var(--accent);color:#04070e;border-color:var(--accent)}
.t-btn.primary:hover{filter:brightness(1.08)}
.t-btn.ghost{background:transparent}

.t-field{width:100%;font:inherit;color:var(--ink);background:var(--panel);
  border:1px solid var(--brd2);border-radius:11px;padding:11px 13px}
.t-field:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--gold-soft)}
.t-label{font-size:11px;letter-spacing:.5px;text-transform:uppercase;color:var(--muted);display:block;margin:12px 0 5px}

.t-card{background:var(--panel);border:1px solid var(--brd);border-radius:14px;
  padding:15px 17px;box-shadow:var(--shadow)}

.t-pill{font-size:11px;font-weight:700;padding:2px 10px;border-radius:20px;color:#04070e;display:inline-block}
.t-pill.high{background:var(--amber)} .t-pill.crit{background:var(--red);color:#fff}
.t-pill.med{background:var(--blue)} .t-pill.low{background:var(--muted);color:#fff}
.t-tag{font-size:11px;color:var(--accent);border:1px solid var(--accent);border-radius:10px;padding:0 6px;margin-left:6px}

/* nav rail */
.t-rail{background:rgba(4,7,14,.5);border-right:1px solid var(--brd);backdrop-filter:blur(8px)}
.t-nav{display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:10px;color:var(--ink2);cursor:pointer;font-size:14px;font-weight:500}
.t-nav:hover{background:var(--panel2);color:var(--ink)}
.t-nav.on{background:var(--accent);color:#04070e}

/* chat bubbles */
.t-msg{max-width:80%;padding:10px 14px;border-radius:14px;font-size:14.5px;white-space:pre-wrap;line-height:1.5}
.t-msg.u{align-self:flex-end;background:var(--accent);color:#04070e;font-weight:500}
.t-msg.p{align-self:flex-start;background:var(--panel2);border:1px solid var(--brd)}
.t-who{font-size:10px;text-transform:uppercase;letter-spacing:.6px;color:var(--muted);margin-bottom:2px}

/* tables */
.t-table{width:100%;border-collapse:collapse}
.t-table td,.t-table th{text-align:left;padding:9px 6px;border-bottom:1px solid var(--brd);font-size:13.5px}
.t-table th{font-size:11px;text-transform:uppercase;letter-spacing:.4px;color:var(--muted)}

.t-compass{width:30px;height:30px}

/* ---------- signature "command center" treatments (the Polaris look) ---------- */
body.polaris-theme::after, body[data-mode="command"]::after{content:"";position:fixed;inset:0;pointer-events:none;z-index:9;
  background:repeating-linear-gradient(to bottom,rgba(56,232,208,.022) 0 1px,transparent 1px 3px);mix-blend-mode:screen;opacity:.55}
::-webkit-scrollbar{width:9px;height:9px}
::-webkit-scrollbar-thumb{background:var(--brd2);border-radius:8px;border:2px solid transparent;background-clip:content-box}
::selection{background:var(--gold-soft)}
h1{font-family:var(--serif);font-weight:500;letter-spacing:.3px}
body.polaris-theme h1, body[data-mode="command"] h1{text-shadow:0 0 24px rgba(56,232,208,.28)}
.t-wm{font-family:var(--serif);font-weight:600;font-size:23px;letter-spacing:.5px;line-height:1}
.t-kicker{font-size:9px;letter-spacing:2.2px;color:var(--muted);text-transform:uppercase}
.compass .ring{animation:t-spin 26s linear infinite;transform-origin:center}
@keyframes t-spin{to{transform:rotate(360deg)}}

/* stat cards with glowing numbers */
.t-stat{background:var(--panel);border:1px solid var(--brd);border-radius:15px;padding:16px 17px;backdrop-filter:blur(8px)}
.t-stat .k{font-size:11px;text-transform:uppercase;letter-spacing:.6px;color:var(--muted);display:flex;gap:7px;align-items:center}
.t-stat .v{font-family:var(--mono);font-weight:700;font-size:40px;line-height:1.1;margin:8px 0 3px}
body.polaris-theme .t-stat .v, body[data-mode="command"] .t-stat .v{text-shadow:0 0 18px var(--accent)}
.t-stat .s{font-size:12px;color:var(--muted)}
/* alert banner */
.t-banner{border:1px solid var(--red);background:var(--red-soft);border-radius:15px;padding:15px 18px;display:flex;align-items:center;gap:14px}
.t-banner.gold{border-color:var(--gold-line);background:var(--gold-soft)}
/* quick-action chip */
.t-chip{border:1px solid var(--brd);background:var(--panel);border-radius:12px;padding:12px 13px;font-size:13px;color:var(--ink2);cursor:pointer;display:flex;align-items:center;gap:9px;transition:.15s}
.t-chip:hover{border-color:var(--gold-line);color:var(--ink)}
/* section heading (serif) */
.t-sec{font-family:var(--serif);font-weight:500;font-size:22px;margin:26px 0 12px}
/* follow-up / list row */
.t-listrow{border:1px solid var(--brd);border-radius:13px;padding:13px 15px;margin-bottom:10px;display:flex;align-items:center;gap:12px}
.t-listrow.over{border-color:var(--red);background:var(--red-soft)}
.t-dot{width:9px;height:9px;border-radius:50%;background:var(--accent);flex:none}
.t-dot.over{background:var(--red);box-shadow:0 0 10px var(--red)}

/* ===== Polaris orb — a living AI presence: glowing sphere, tilted orbital rings,
   moving satellites, a rotating aura and breathing halo. Scales with width/height. ===== */
.polaris-orb{position:relative;width:46px;height:46px;flex:none;transform:translateZ(0)}
.polaris-orb>*{position:absolute;border-radius:50%}
.polaris-orb .halo{inset:-22%;background:radial-gradient(circle,rgba(56,232,208,.45),transparent 60%);filter:blur(3px);animation:orb-breathe 3.6s ease-in-out infinite}
.polaris-orb .aura{inset:0;background:conic-gradient(from 0deg,transparent,rgba(56,232,208,.4),transparent 38%,rgba(91,155,213,.32),transparent 72%,rgba(205,166,79,.28),transparent);animation:orb-spin 7s linear infinite;opacity:.9}
.polaris-orb .core{inset:34%;background:radial-gradient(circle at 38% 32%,#f2fffd,var(--accent) 52%,#0d7a70 100%);box-shadow:0 0 14px var(--accent),0 0 30px -6px var(--accent);animation:orb-breathe 2.6s ease-in-out infinite;z-index:2}
.polaris-orb .tilt{inset:7%;border:1px solid rgba(56,232,208,.5)}
.polaris-orb .t1{transform:rotate(4deg) scaleY(.4)}
.polaris-orb .t2{transform:rotate(64deg) scaleY(.4);border-color:rgba(91,155,213,.45)}
.polaris-orb .t3{transform:rotate(-58deg) scaleY(.4);border-color:rgba(205,166,79,.4)}
.polaris-orb .orbit{position:absolute;inset:-1px}
.polaris-orb .t1 .orbit{animation:orb-spin 3.4s linear infinite}
.polaris-orb .t2 .orbit{animation:orb-spin 5s linear infinite reverse}
.polaris-orb .t3 .orbit{animation:orb-spin 6.4s linear infinite}
.polaris-orb .sat{position:absolute;top:-9%;left:50%;width:16%;height:16%;margin-left:-8%;background:var(--accent);box-shadow:0 0 9px var(--accent)}
.polaris-orb .t2 .sat{background:var(--blue);box-shadow:0 0 8px var(--blue)}
.polaris-orb .t3 .sat{background:var(--gold);box-shadow:0 0 8px var(--gold);width:12%;height:12%}
@keyframes orb-breathe{0%,100%{transform:scale(1);opacity:1}50%{transform:scale(1.14);opacity:.82}}
@keyframes orb-spin{to{transform:rotate(360deg)}}
/* floating presence — put Polaris everywhere */
.polaris-fab{position:fixed;bottom:22px;right:22px;z-index:60;cursor:pointer;filter:drop-shadow(0 0 12px rgba(56,232,208,.4))}
/* mic button, pulsing while listening */
.t-mic{display:grid;place-items:center;width:40px;height:40px;border-radius:11px;border:1px solid var(--brd2);background:var(--panel2);color:var(--ink2);cursor:pointer;flex:none}
.t-mic:hover{border-color:var(--accent);color:var(--ink)}
.t-mic.live{background:var(--red);color:#fff;border-color:var(--red);animation:mic-pulse 1.1s infinite}
@keyframes mic-pulse{0%{box-shadow:0 0 0 0 rgba(224,101,79,.5)}70%{box-shadow:0 0 0 12px rgba(224,101,79,0)}100%{box-shadow:0 0 0 0 rgba(224,101,79,0)}}
