/* Sentinel Console — dark enterprise-cinematic theme (brief §5) */
:root{
  /* surfaces */
  --bg:#0a0c12; --surface:#10131d; --surface-2:#161a28; --surface-3:#1c2132;
  --grid-dot:#1c2030; --line:#222739; --line-strong:#2c3247;
  /* brand + semantic */
  --brand:#7c6cff; --brand-2:#9a8dff; --brand-weak:#1c1b3a; --brand-ink:#b9b1ff;
  --ok:#34d399; --ok-weak:#0f2a23; --ok-ink:#6ee7b7;
  --bad:#f87171; --bad-weak:#2a1518; --bad-ink:#fca5a5;
  --warn:#fbbf24; --warn-weak:#2a2110; --warn-ink:#fcd34d;
  /* text */
  --ink:#e8eaf2; --muted:#9aa2bd; --faint:#5c6480;
  /* radii / shadow */
  --r-sm:8px; --r-md:12px; --r-lg:18px; --r-pill:999px;
  --sh-sm:0 1px 2px rgba(0,0,0,.4);
  --sh-base:0 2px 8px rgba(0,0,0,.35), 0 12px 40px rgba(0,0,0,.32);
  --sh-lg:0 20px 60px rgba(0,0,0,.55);
  --glow-brand:0 0 0 1px rgba(124,108,255,.4), 0 0 28px rgba(124,108,255,.28);
  --mono:'Geist Mono',ui-monospace,SFMono-Regular,Menlo,monospace;
  --sans:'Inter',-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;
  --d-fast:120ms; --d-base:220ms; --d-slow:420ms;
  --ease:cubic-bezier(.22,1,.36,1);
}
[data-theme="light"]{
  --bg:#f5f6fb; --surface:#ffffff; --surface-2:#f2f4f9; --surface-3:#e9ecf4;
  --grid-dot:#d9deec; --line:#e7e9f1; --line-strong:#d4d9e6;
  --brand:#6d5efc; --brand-2:#8a7dff; --brand-weak:#ecebff; --brand-ink:#5a4fe0;
  --ok:#1f9d57; --ok-weak:#e7f5ec; --ok-ink:#127a42;
  --bad:#e5484d; --bad-weak:#fdecec; --bad-ink:#c33339;
  --warn:#c5780a; --warn-weak:#fbf1dd; --warn-ink:#8f5705;
  --ink:#15171f; --muted:#596072; --faint:#969db0;
  --sh-sm:0 1px 2px rgba(20,22,40,.06);
  --sh-base:0 1px 2px rgba(20,22,40,.05), 0 10px 30px rgba(20,22,40,.09);
  --sh-lg:0 20px 50px rgba(20,22,40,.16);
  --glow-brand:0 0 0 1px rgba(109,94,252,.22), 0 0 16px rgba(109,94,252,.16);
}
*{box-sizing:border-box}
html,body{margin:0;padding:0;height:100%}
body{
  background:
    radial-gradient(1100px 620px at 82% -12%, color-mix(in srgb, var(--brand) 13%, transparent), transparent 68%),
    radial-gradient(820px 520px at -8% 112%, color-mix(in srgb, var(--brand) 8%, transparent), transparent 70%),
    var(--bg);
  color:var(--ink); font-family:var(--sans);
  font-size:15px; line-height:1.5; -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility; overflow:hidden;
}
[data-theme="light"] body{
  background:
    radial-gradient(1100px 620px at 84% -14%, color-mix(in srgb, var(--brand) 7%, transparent), transparent 66%),
    var(--bg);
}
#root{height:100%}
button{font-family:inherit; cursor:pointer}
:focus-visible{outline:2px solid var(--brand); outline-offset:2px; border-radius:4px}
a{color:inherit; text-decoration:none}
::selection{background:color-mix(in srgb, var(--brand) 32%, transparent); color:var(--ink)}

.mono{font-family:var(--mono)}
.tabular{font-variant-numeric:tabular-nums}
.t-micro{font-size:10.5px; font-weight:650; letter-spacing:.06em; text-transform:uppercase}

::-webkit-scrollbar{width:9px;height:9px}
::-webkit-scrollbar-thumb{background:var(--line-strong);border-radius:999px;border:2.5px solid transparent;background-clip:content-box}
::-webkit-scrollbar-thumb:hover{background:var(--faint);background-clip:content-box}
::-webkit-scrollbar-track{background:transparent}
*{scrollbar-width:thin;scrollbar-color:var(--line-strong) transparent}

@keyframes spin{to{transform:rotate(360deg)}}
@keyframes pulse-soft{0%,100%{opacity:1}50%{opacity:.4}}
@keyframes flicker{0%,100%{opacity:1;filter:brightness(1)}20%{opacity:.55;filter:brightness(1.4)}40%{opacity:.9}55%{opacity:.4;filter:brightness(1.6)}70%{opacity:1}85%{opacity:.7;filter:brightness(1.3)}}
@keyframes ev-in{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
@keyframes msg-in{from{transform:translateY(9px)}to{transform:none}}
@keyframes dash-flow{to{stroke-dashoffset:-28}}
@keyframes dash-flow-rev{to{stroke-dashoffset:28}}
@keyframes shake{10%,90%{transform:translateX(-1px)}30%,70%{transform:translateX(2px)}50%{transform:translateX(-2px)}}
@keyframes ring-glow{0%{filter:drop-shadow(0 0 0 rgba(52,211,153,0))}100%{filter:drop-shadow(0 0 10px rgba(52,211,153,.5))}}
@keyframes caret{0%,49%{opacity:1}50%,100%{opacity:0}}
@keyframes count-pop{0%{transform:scale(1)}40%{transform:scale(1.14)}100%{transform:scale(1)}}
@keyframes glow-pop{0%{box-shadow:0 0 0 0 rgba(124,108,255,.5)}100%{box-shadow:0 0 0 16px rgba(124,108,255,0)}}
@keyframes thinking-dot{0%,80%,100%{opacity:.25;transform:translateY(0)}40%{opacity:1;transform:translateY(-3px)}}
@keyframes sheen{0%{background-position:-220% 0}100%{background-position:220% 0}}
@keyframes pendulum{0%{transform:rotate(-13deg)}50%{transform:rotate(13deg)}100%{transform:rotate(-13deg)}}
@keyframes spark-pulse{0%,100%{opacity:1;transform:scale(1)}50%{opacity:.78;transform:scale(1.06)}}
@keyframes node-in{from{opacity:0;transform:translateY(12px) scale(.9)}60%{opacity:1}to{opacity:1;transform:none}}

@media (prefers-reduced-motion: reduce){
  *,*::before,*::after{animation-duration:.001ms !important;animation-iteration-count:1 !important;transition-duration:.001ms !important}
}
