/* Inter (police variable, hébergée ici : pas d'appel à Google, RGPD), licence OFL dans fonts/Inter-LICENSE.txt */
@font-face{font-family:'Inter';font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/fonts/inter-latin-wght-normal.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:'Inter';font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/fonts/inter-latin-ext-wght-normal.woff2) format('woff2');unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}

/* AMR CTA — écran de centrale : sombre, dense, lisible à deux mètres. */
:root{--fond:#070b16;--fond2:#0a1020;--panel:#0e1526;--panel2:#141d33;--bord:#1c2740;--bord2:#2a3858;--texte:#e7ecf5;--texte2:#c9d3e6;--dim:#8e9bb5;
  --orange:#ff792e;--orange-txt:#161000;--rouge:#e5484d;--rouge-fond:#a81e26;--rouge-txt:#ff9ba0;--vert:#2fb171;--vert-fond:#0f3b27;--vert-txt:#7fe0ad;--ambre:#f5a524;--ambre-txt:#ffcf7a;--bleu:#4c8dff}
*{margin:0;padding:0;box-sizing:border-box}
html{font-size:16px}
body{font-family:'Inter',system-ui,-apple-system,'Segoe UI',sans-serif;-webkit-font-smoothing:antialiased;background:var(--fond);color:var(--texte);min-height:100vh;font-size:14px;line-height:1.4;padding-bottom:40px}
button{font-family:inherit;cursor:pointer;border:0;background:none;color:inherit;font-size:inherit}
input,textarea,select{font-family:inherit;font-size:14px;color:inherit}
a{color:#ffb380;text-decoration:none}a:hover{color:#fff}
h1{font-size:22px;font-weight:700;letter-spacing:-.3px}
code{font-family:ui-monospace,'Cascadia Mono',Consolas,'Liberation Mono',monospace;font-size:12px;background:var(--panel2);padding:1px 5px;border-radius:4px}
.mono{font-family:ui-monospace,'Cascadia Mono',Consolas,'Liberation Mono',monospace;font-variant-numeric:tabular-nums}
.lbl{font-size:11px;letter-spacing:.09em;text-transform:uppercase;color:var(--dim);font-weight:600}
.dim{color:var(--dim)}.petit{font-size:12px}.rouge{color:var(--rouge-txt)}.spacer{flex:1}
.sep{height:1px;background:var(--bord);margin:10px 0}
.vsep{width:1px;height:22px;background:var(--bord2);margin:0 4px}
.sous{color:var(--dim);margin:6px 0 14px;max-width:760px}

/* en-tête */
.top{display:flex;align-items:center;gap:14px;padding:0 16px;height:50px;border-bottom:1px solid var(--bord);background:var(--fond2);flex-wrap:wrap;position:sticky;top:0;z-index:20}
.marque{font-weight:700;letter-spacing:.14em;font-size:13px;color:var(--texte);display:flex;align-items:center;gap:8px}
.logo{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:6px;background:var(--orange);color:var(--orange-txt);font-weight:700;font-size:11px;letter-spacing:0}
.logo.navy{background:#0d2948;color:#fff}
.lien3cx{display:flex;align-items:center;gap:6px;font-size:12px;color:var(--dim)}
.dot{width:9px;height:9px;border-radius:50%;display:inline-block;background:#3a465f;flex:none}
.dot.ok{background:var(--vert)}.dot.ko{background:var(--rouge)}.dot.attente{background:var(--ambre)}
.tabs{display:flex;gap:6px;flex-wrap:wrap}
.tabs a{border-radius:999px;padding:5px 12px;font-weight:600;font-size:12.5px;background:var(--panel);border:1px solid var(--bord);color:var(--texte2);white-space:nowrap}
.tabs a.on{background:var(--texte);color:var(--fond);border-color:var(--texte)}
.tabs a b{margin-left:6px;background:var(--rouge);color:#fff;border-radius:999px;padding:0 7px;font-size:11px}
.presents{display:flex;gap:6px;flex-wrap:wrap}
.presents span{display:inline-flex;align-items:center;gap:6px;font-size:12px;background:var(--panel);border:1px solid var(--bord);border-radius:999px;padding:3px 9px;white-space:nowrap}
.qui{margin-left:auto;display:flex;align-items:center;gap:10px}
.horloge{font-size:15px;font-weight:600}
.moi{display:flex;flex-direction:column;line-height:1.1}
.moi b{font-size:12.5px}.moi small{font-size:11px;color:var(--dim)}
.sortir{font-size:12px;color:var(--dim);text-decoration:underline}
.page{padding:12px 16px 0;max-width:1400px;margin:0 auto}
.page.large{max-width:none}
.flash{border-radius:8px;padding:10px 14px;font-weight:600;margin-bottom:12px;border:1px solid}
.flash-ok{background:var(--vert-fond);color:var(--vert-txt);border-color:var(--vert)}
.flash-err{background:#3a171a;color:var(--rouge-txt);border-color:var(--rouge)}
.flash-info{background:#3d2d10;color:var(--ambre-txt);border-color:var(--ambre)}
.pied{text-align:center;font-size:11px;color:var(--dim);margin-top:24px}
.toast{position:fixed;left:50%;bottom:22px;transform:translateX(-50%) translateY(20px);background:var(--texte);color:var(--fond);padding:10px 16px;border-radius:8px;font-weight:600;opacity:0;pointer-events:none;transition:.2s;z-index:50}
.toast.on{opacity:1;transform:translateX(-50%)}

/* boutons, puces, champs */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;border-radius:6px;padding:9px 13px;font-weight:600;font-size:13px;background:var(--panel2);color:var(--texte);border:1px solid var(--bord2);white-space:nowrap;min-height:40px;transition:background .1s}
.btn:hover{background:#1c2845;color:#fff}
.btn-accent{background:var(--orange);color:var(--orange-txt);border-color:var(--orange)}.btn-accent:hover{background:#ff8f52;color:var(--orange-txt)}
.btn-ghost{background:transparent}
.btn-s{min-height:32px;padding:4px 10px;font-size:12px}
.btn small{font-size:11px;font-weight:500;color:var(--dim)}.btn-accent small{color:#4a2400}
.btn:disabled{opacity:.45;cursor:default}
.chips{display:flex;gap:6px;flex-wrap:wrap;align-items:center}
.chips.petits .chip{min-height:30px;padding:4px 10px;font-size:12px}
.chip{display:inline-flex;align-items:center;gap:6px;font-weight:600;font-size:12.5px;padding:7px 11px;border-radius:999px;border:1px solid var(--bord2);background:var(--fond2);color:var(--texte2);min-height:34px}
.chip input{accent-color:var(--orange)}
.chip.on{background:var(--orange);color:var(--orange-txt);border-color:var(--orange)}
.chip.chip-rouge.on{background:var(--rouge);border-color:var(--rouge);color:#fff}
.chip:disabled{cursor:default}
.field{background:var(--fond);border:1px solid var(--bord2);border-radius:6px;padding:9px 11px;color:var(--texte);width:100%}
.field.grand{font-size:15px;padding:11px 12px}
.field.petit{font-size:12px;padding:6px 8px}
.field:focus{outline:2px solid var(--orange);outline-offset:1px}
.field[readonly]{color:var(--texte2);background:var(--fond2)}
textarea.field{resize:vertical;min-height:60px}
select.field{appearance:auto;background:var(--fond2)}
.form{display:flex;flex-direction:column;gap:10px}
.form label{display:flex;flex-direction:column;gap:4px;font-size:12px;color:var(--dim);font-weight:600}
.form label.case,.case{flex-direction:row;align-items:center;gap:8px;color:var(--texte2)}
.tag{font-size:11px;font-weight:700;letter-spacing:.06em;padding:3px 7px;border-radius:4px;text-transform:uppercase;white-space:nowrap;background:var(--panel2);color:var(--texte2)}
.tag-vert{background:#143526;color:var(--vert-txt)}.tag-rouge{background:#3a171a;color:var(--rouge-txt)}.tag-ambre{background:#3d2d10;color:var(--ambre-txt)}
.tag a{color:inherit;text-decoration:underline}

/* panneaux et grilles */
.panel{background:var(--panel);border:1px solid var(--bord);border-radius:8px;padding:12px}
.panel+.panel{margin-top:12px}
.entete{display:flex;align-items:center;gap:10px;margin-bottom:8px}
.entete .lbl{flex:none}
.entete-page{display:flex;align-items:center;gap:16px;flex-wrap:wrap;margin-bottom:12px}
.filtres{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin-left:auto}
.filtres .field{width:auto;min-width:200px}
.grille-appels{display:grid;grid-template-columns:320px minmax(0,1fr) 300px;gap:12px}
.grille-fiche{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:12px}
.grille-2{display:grid;grid-template-columns:minmax(0,1fr) 380px;gap:12px;align-items:start}
.grille-cl{display:grid;grid-template-columns:repeat(auto-fill,minmax(420px,1fr));gap:12px;align-items:start}
.col-droite{display:flex;flex-direction:column;gap:12px}
.col-droite .panel+.panel{margin-top:0}
.liste{display:flex;flex-direction:column;gap:8px}
.liste.compact{gap:4px}
.raccourcis{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}
.tableau{padding:0;overflow-x:auto}
table{border-collapse:collapse;width:100%}
th{text-align:left;font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--dim);font-weight:600;padding:10px 12px;border-bottom:1px solid var(--bord);white-space:nowrap}
td{padding:9px 12px;border-bottom:1px solid #121a2e;vertical-align:top}
tr.clic{cursor:pointer}tr.clic:hover td{background:var(--fond2)}
tr.ligne-manque td{background:#1c1016}
td .field{min-width:120px}
.actions{white-space:nowrap}
.stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px;text-align:center}
.stats b{display:block;font-size:20px;font-weight:600}.stats small{font-size:11px;color:var(--dim)}
.stats3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;margin-bottom:8px}
.stats3 div{background:var(--fond2);border:1px solid var(--bord);border-radius:6px;padding:6px 8px}
.stats3 b{display:block;font-size:17px}.stats3 small{font-size:11px;color:var(--dim)}
.stats4{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:12px}
.stats4 b{display:block;font-size:26px;font-weight:600;margin-top:4px}.stats4 small{display:block;font-size:12px;color:var(--dim)}
.ligne-h{display:grid;grid-template-columns:110px minmax(0,1fr) auto;gap:8px;font-size:12.5px;color:var(--texte2);padding:4px 0;border-bottom:1px solid #121a2e}
.ligne-h:hover{color:#fff}

/* bandeau d'appel */
.bandeau{margin-bottom:12px;display:flex;flex-direction:column;gap:8px}
.appel-b{border-radius:10px;padding:12px 16px;display:flex;align-items:center;gap:18px;flex-wrap:wrap;border:1px solid}
.appel-b.sonne{background:var(--rouge-fond);border-color:#ff5a62;color:#fff;animation:pulse 1.1s ease-out infinite}
.appel-b.en_ligne{background:var(--vert-fond);border-color:var(--vert)}
.appel-b .num{font-size:28px;font-weight:600}
.appel-b .l1{font-size:11px;letter-spacing:.09em;text-transform:uppercase;font-weight:600;opacity:.85}
.appel-b .nom{font-size:17px;font-weight:600}
.appel-b .sub{font-size:12px;opacity:.85}
.appel-b .bloc{display:flex;flex-direction:column;gap:2px;min-width:200px}
.appel-b .bloc.grand{flex:1 1 240px}
.appel-b .timer{font-size:22px;font-weight:600}
.appel-b .qui-b{display:flex;align-items:center;gap:10px;background:rgba(0,0,0,.25);border:1px solid rgba(255,255,255,.25);border-radius:8px;padding:6px 12px}
.appel-b .av{width:32px;height:32px;border-radius:50%;background:var(--vert);color:#06301c;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:12px}
.appel-b .act{display:flex;gap:8px;align-items:center}
@keyframes pulse{0%{box-shadow:0 0 0 0 rgba(229,72,77,.6)}100%{box-shadow:0 0 0 16px rgba(229,72,77,0)}}
@media (prefers-reduced-motion:reduce){.appel-b.sonne{animation:none}}

/* cartes d'appel dans la file */
.card{background:var(--fond2);border:1px solid var(--bord);border-radius:6px;padding:10px 12px;border-left:3px solid var(--bord2);display:block;color:inherit}
.card:hover{border-color:var(--bord2);color:inherit}
.card.sonne{border-left-color:var(--rouge)}.card.en_ligne{border-left-color:var(--vert)}.card.manque{border-left-color:var(--rouge)}.card.ouverte{border-left-color:var(--ambre)}
.card .l{display:flex;justify-content:space-between;align-items:center;gap:8px}
.card .num{font-size:15px;font-weight:600;margin-top:6px}
.card .nom{font-weight:600;font-size:13px}
.card .sub{font-size:12px;color:var(--dim);margin-top:2px}
.card .btn{margin-top:8px;width:100%}

/* fiche */
.col-fiche{display:flex;flex-direction:column;gap:12px}
.col-fiche .entete .numero{font-size:16px;font-weight:600}
.fiche-form{display:flex;flex-direction:column;gap:14px}
.etape{display:grid;grid-template-columns:32px minmax(0,1fr);gap:10px}
.etape .num{width:32px;height:32px;border-radius:6px;background:var(--panel2);border:1px solid var(--bord2);font-weight:700;display:flex;align-items:center;justify-content:center}
.etape .num.accent{background:var(--orange);border-color:var(--orange);color:var(--orange-txt)}
.etape .corps{display:flex;flex-direction:column;gap:6px;min-width:0}
.ligne{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.ligne.entre{justify-content:space-between}
.ligne .field{flex:1 1 220px;width:auto}
.tags{display:flex;gap:6px;flex-wrap:wrap;font-size:12px;color:var(--dim)}
.questions{display:flex;flex-direction:column;gap:6px}
.q{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;align-items:center;padding:7px 10px;border:1px solid var(--bord);border-radius:6px;background:var(--fond2)}
.q.done{border-color:#1f4a35}.q.alerte{border-color:var(--ambre);background:#1d170b}
.q .qt b{display:block;font-size:13px;font-weight:600}.q .qt small{display:block;font-size:12px;color:var(--dim)}
.ans{display:flex;gap:6px}
.ans button{font-size:12px;font-weight:600;padding:6px 10px;border-radius:5px;border:1px solid var(--bord2);background:var(--panel2);color:var(--texte2);min-height:32px;min-width:44px}
.ans button.on{background:var(--vert);border-color:var(--vert);color:#06301c}
.ans button.warn{background:var(--ambre);border-color:var(--ambre);color:#2a1a00}
.ans button:disabled{cursor:default}
.decisions{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:8px}
.decisions .btn{flex-direction:column;gap:1px;min-height:52px;padding:8px}
.decision-detail{display:flex;flex-direction:column;gap:8px;background:var(--fond2);border:1px solid var(--bord2);border-radius:8px;padding:12px;margin-top:8px}
.decision-faite{background:var(--vert-fond);border:1px solid var(--vert);border-radius:8px;padding:10px 14px;display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.chrono{display:flex;flex-direction:column;gap:6px;font-size:12.5px}
.chrono .c{display:grid;grid-template-columns:62px minmax(0,1fr);gap:8px;align-items:start}
.chrono .c small{display:block;color:var(--dim);font-size:11px}
.chrono .c.decroche span:last-child,.chrono .c.decision span:last-child{color:var(--vert-txt)}
.chrono .c.manque span:last-child{color:var(--rouge-txt)}
.photos{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;margin-top:8px}
.photos img{width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:6px;border:1px solid var(--bord2)}

/* auth / service */
.carte-auth{max-width:440px;margin:50px auto;background:var(--panel);border:1px solid var(--bord);border-radius:12px;padding:28px 30px;display:flex;flex-direction:column;gap:14px}
.carte-auth.large{max-width:640px;margin-top:24px}
.marque-auth{display:flex;align-items:center;gap:10px;font-weight:700;letter-spacing:.14em;font-size:14px}
.aide{font-size:12px;color:var(--dim)}
.postes{display:flex;flex-direction:column;gap:8px}
.poste{display:flex;align-items:center;gap:12px;padding:10px 12px;border:1px solid var(--bord2);border-radius:8px;background:var(--fond2);cursor:pointer;min-height:52px;color:var(--texte)}
.poste:has(input:checked){border-color:var(--orange);background:#1b1410}
.poste.occupe{opacity:.7}
.poste input{accent-color:var(--orange)}
.poste .num{font-weight:600;min-width:36px}
.poste .lib{display:flex;flex-direction:column;font-weight:600}.poste .lib small{font-weight:400;font-size:12px;color:var(--dim)}

/* page publique (appelant) */
body.public{background:#f4f5f8;color:#141a2a;font-size:16px}
.pub{max-width:440px;margin:0 auto;padding:28px 20px;display:flex;flex-direction:column;gap:14px;min-height:100vh}
.pub-marque{display:flex;align-items:center;gap:10px;line-height:1.15}.pub-marque small{display:block;font-size:12px;color:#5b667d}
.pub-carte{background:#fff;border:1px solid #d7dbe4;border-radius:14px;padding:16px;display:flex;flex-direction:column;gap:6px}
.pub-carte b{font-size:17px}.pub-carte p{color:#5b667d;font-size:14px}
.pub-carte .lbl{color:#5b667d}
.pub-btn{display:flex;align-items:center;gap:12px;font:inherit;font-weight:600;border-radius:12px;padding:14px;border:1px solid #d7dbe4;background:#fff;color:#141a2a;min-height:60px;text-align:left;cursor:pointer;width:100%}
.pub-btn.accent{background:var(--orange);border-color:var(--orange);color:var(--orange-txt)}
.pub-btn span{display:flex;flex-direction:column}.pub-btn small{font-size:12px;font-weight:500;opacity:.8}
.pub-btn:disabled{opacity:.6}
#etat-liste .ok{color:#166534;font-weight:600}#etat-liste .ko{color:#9f1239}
.pub-pied{margin-top:auto;font-size:12px;color:#5b667d;line-height:1.45}

/* mobile */
@media (max-width:1100px){.grille-appels{grid-template-columns:300px minmax(0,1fr)}.grille-appels .col-droite{grid-column:1/-1}}
@media (max-width:900px){.grille-fiche,.grille-2{grid-template-columns:1fr}.stats4{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:760px){
  html{font-size:16px}body{font-size:15px}
  .top{height:auto;padding:8px 12px;gap:8px}.presents{display:none}.horloge{display:none}.moi small{display:none}
  .page{padding:10px 12px 0}
  .grille-appels{grid-template-columns:1fr}
  .appel-b .num{font-size:24px}.appel-b .bloc{min-width:0}
  .etape{grid-template-columns:1fr}.etape .num{display:none}
  .q{grid-template-columns:1fr}
  .decisions{grid-template-columns:repeat(2,minmax(0,1fr))}
  .filtres{margin-left:0}.filtres .field{min-width:0;flex:1}
  .carte-auth{margin:16px auto;padding:20px}
}
