/* ============================================================
   ABIA-IA — Styles de l'application (login + dashboard)
   Mêmes tokens que l'onboarding
   ============================================================ */
:root{
  --void:#03060D;--base:#06090F;--raised:#0C1219;--overlay:#111B27;--input:#0D1520;
  --accent:#38BDF8;--accent-dim:rgba(56,189,248,.10);--accent-glow:rgba(56,189,248,.22);--accent-border:rgba(56,189,248,.18);
  --green:#34D399;--amber:#FBBF24;--red:#F87171;--violet:#A78BFA;
  --t1:#EEF2FF;--t2:#8094B4;--t3:#5A6F8C;--t4:#1E2D40;
  --b0:rgba(255,255,255,.06);--b1:rgba(56,189,248,.14);
  --f-display:"DM Serif Display",serif;--f-sans:"Inter",system-ui,sans-serif;--f-mono:"JetBrains Mono",monospace;
}
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{font-size:16px;-webkit-font-smoothing:antialiased}
body{font-family:var(--f-sans);background:var(--void);color:var(--t1);min-height:100vh;line-height:1.5}
a{color:inherit;text-decoration:none}
button{cursor:pointer;border:none;background:none;font-family:inherit;color:inherit}
:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
[hidden]{display:none!important}

/* ── BOUTONS ── */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:.45rem;padding:10px 18px;border-radius:8px;font-size:.85rem;font-weight:600;transition:all 150ms;white-space:nowrap}
.btn-primary{background:var(--accent);color:#03060D}
.btn-primary:hover{background:#5ECFFC;box-shadow:0 0 22px var(--accent-glow)}
.btn-ghost{border:1px solid var(--b0);color:var(--t2)}
.btn-ghost:hover{border-color:var(--b1);color:var(--t1)}
.btn-danger{background:rgba(248,113,113,.12);color:var(--red);border:1px solid rgba(248,113,113,.25)}
.btn-danger:hover{background:rgba(248,113,113,.2)}
.btn-success{background:rgba(52,211,153,.12);color:var(--green);border:1px solid rgba(52,211,153,.25)}
.btn-success:hover{background:rgba(52,211,153,.2)}
.btn-sm{padding:6px 12px;font-size:.78rem}
.btn[disabled]{opacity:.45;pointer-events:none}

/* ── FORMULAIRES ── */
.field{display:flex;flex-direction:column;gap:.35rem}
.label{font-size:.75rem;font-weight:500;color:var(--t2)}
.input{background:var(--input);border:1px solid var(--b0);border-radius:8px;padding:10px 13px;font-size:.875rem;color:var(--t1);outline:none;font-family:inherit;width:100%;transition:border-color 150ms}
.input:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-dim)}
.input::placeholder{color:var(--t3)}
textarea.input{resize:vertical;min-height:80px;line-height:1.6}
select.input{appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%238094B4' stroke-width='1.5' fill='none'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 12px center;padding-right:32px}
.form-error{font-size:.8rem;color:var(--red);background:rgba(248,113,113,.08);border:1px solid rgba(248,113,113,.2);border-radius:8px;padding:.6rem .8rem}
.form-ok{font-size:.8rem;color:var(--green);background:rgba(52,211,153,.08);border:1px solid rgba(52,211,153,.2);border-radius:8px;padding:.6rem .8rem}

/* ── ÉLÉMENTS ── */
.logo{font-family:var(--f-display);font-size:1.15rem;display:flex;align-items:center;gap:.45rem}
.logo-dot{width:7px;height:7px;border-radius:50%;background:var(--accent);box-shadow:0 0 10px var(--accent)}
.mono{font-family:var(--f-mono)}
.muted{color:var(--t2)}
.tag{display:inline-flex;align-items:center;gap:.3rem;font-family:var(--f-mono);font-size:.62rem;letter-spacing:.04em;padding:2px 8px;border-radius:99px;white-space:nowrap;background:var(--accent-dim);color:var(--accent)}
.tag-green{background:rgba(52,211,153,.1);color:var(--green)}
.tag-amber{background:rgba(251,191,36,.1);color:var(--amber)}
.tag-red{background:rgba(248,113,113,.1);color:var(--red)}
.tag-grey{background:var(--b0);color:var(--t2)}
.dot{width:6px;height:6px;border-radius:50%;background:currentColor;flex-shrink:0}
.dot.pulse{animation:blink 1.4s ease-in-out infinite}
@keyframes blink{0%,100%{opacity:1}50%{opacity:.2}}
.card{background:var(--raised);border:1px solid var(--b0);border-radius:12px}
.empty{text-align:center;color:var(--t3);font-size:.85rem;padding:2.5rem 1rem}
.spinner{width:16px;height:16px;border-radius:50%;border:2px solid var(--b1);border-top-color:var(--accent);animation:spin .8s linear infinite;display:inline-block}
@keyframes spin{to{transform:rotate(360deg)}}

/* ── TOAST ── */
#toasts{position:fixed;bottom:1.25rem;right:1.25rem;z-index:1000;pointer-events:none;display:flex;flex-direction:column;gap:.5rem;max-width:min(360px,calc(100vw - 2.5rem))}
.toast{background:var(--overlay);border:1px solid var(--b1);border-radius:10px;padding:.75rem 1rem;font-size:.85rem;box-shadow:0 12px 40px rgba(0,0,0,.45);animation:toast-in .25s ease}
.toast.err{border-color:rgba(248,113,113,.35)}
.toast.ok{border-color:rgba(52,211,153,.35)}
@keyframes toast-in{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}

/* ── BANDEAU DÉMO ── */
.demo-band{background:rgba(251,191,36,.1);border-bottom:1px solid rgba(251,191,36,.25);color:var(--amber);font-size:.75rem;text-align:center;padding:.45rem 1rem;font-family:var(--f-mono)}
