/* ══════════════════════════════════════════════════════════════
   TOKENS & VARIABLES
   ══════════════════════════════════════════════════════════════ */

:root, [data-theme="light"] {
  --bg:#f0efff;--surface:#f8f7ff;--surface-2:#ffffff;--surface-off:#eceaff;
  --border:#cdc8f5;--divider:#dedad8;--text:#16142e;--text-muted:#6360a0;
  --text-faint:#b0aed8;--primary:#6366f1;--primary-hover:#4f46e5;--primary-bg:#eef2ff;
  --accent:#0891b2;--accent-bg:#ecfeff;
  --success:#059669;--success-bg:#d1fae5;--error:#dc2626;--error-bg:#fee2e2;
  --warning:#d97706;--warning-bg:#fef3c7;--info:#2563eb;--info-bg:#dbeafe;
  --shadow-sm:0 1px 2px rgba(99,102,241,.08);--shadow-md:0 4px 16px rgba(99,102,241,.12);
  --sidebar-w:220px;--topbar-h:52px;--radius:8px;--radius-sm:5px;--radius-lg:12px;
}

[data-theme="dark"] {
  --bg:#0c0b16;--surface:#111028;--surface-2:#171530;--surface-off:#1d1b38;
  --border:#2e2b50;--divider:#201e3a;--text:#dddcf8;--text-muted:#7c79b8;
  --text-faint:#3c3960;--primary:#818cf8;--primary-hover:#6366f1;--primary-bg:#1e1b3e;
  --accent:#22d3ee;--accent-bg:#0d2a36;
  --success:#34d399;--success-bg:#052e20;--error:#f87171;--error-bg:#2e1010;
  --warning:#fbbf24;--warning-bg:#2e1e00;--info:#60a5fa;--info-bg:#0f1e40;
  --shadow-sm:0 1px 3px rgba(0,0,0,.4);--shadow-md:0 4px 20px rgba(0,0,0,.5);
}

@media(prefers-color-scheme:dark){
  :root:not([data-theme]){
    --bg:#0c0b16;--surface:#111028;--surface-2:#171530;--surface-off:#1d1b38;
    --border:#2e2b50;--divider:#201e3a;--text:#dddcf8;--text-muted:#7c79b8;
    --text-faint:#3c3960;--primary:#818cf8;--primary-hover:#6366f1;--primary-bg:#1e1b3e;
    --accent:#22d3ee;--accent-bg:#0d2a36;
    --success:#34d399;--success-bg:#052e20;--error:#f87171;--error-bg:#2e1010;
    --warning:#fbbf24;--warning-bg:#2e1e00;--info:#60a5fa;--info-bg:#0f1e40;
    --shadow-sm:0 1px 3px rgba(0,0,0,.4);--shadow-md:0 4px 20px rgba(0,0,0,.5);
  }
}

/* ══════════════════════════════════════════════════════════════
   RESET & BASE
   ══════════════════════════════════════════════════════════════ */

*,*::before,*::after{box-sizing:border-box;margin:0;padding:0;}
html,body{height:100%;overflow:hidden;}
body{font-family:'Inter',system-ui,sans-serif;font-size:14px;line-height:1.5;color:var(--text);background:var(--bg);-webkit-font-smoothing:antialiased;}
img,svg{display:block;}
button{cursor:pointer;background:none;border:none;font:inherit;color:inherit;}
input,select,textarea{font:inherit;color:inherit;}
:focus-visible{outline:2px solid var(--primary);outline-offset:2px;border-radius:var(--radius-sm);}
.mono{font-family:'JetBrains Mono',monospace;font-variant-numeric:tabular-nums lining-nums;}
.text-muted{color:var(--text-muted);}
::selection{background:color-mix(in oklch,var(--primary) 25%,transparent);}

/* Theme transitions */
*{transition:background-color .15s,border-color .15s,color .05s;}
button,a,input,select{transition:none;}

/* Scrollbar */
::-webkit-scrollbar{width:5px;height:5px;}
::-webkit-scrollbar-track{background:transparent;}
::-webkit-scrollbar-thumb{background:var(--border);border-radius:99px;}
::-webkit-scrollbar-thumb:hover{background:var(--text-faint);}

/* Fix clavier mobile */
@supports (-webkit-touch-callout: none) {
  body { height: -webkit-fill-available; }
  .main-content { -webkit-overflow-scrolling: touch; }
}

input, textarea, select {
  font-size: 16px !important;
}