/* INVYTI — système visuel. Marque : vert impérial + champagne + ivoire. Thèmes invité : data-theme sur <html>. */
:root{
  --ink:#121716; --ink-2:#2B3331; --muted:#6F7A76; --line:rgba(18,23,22,.12);
  --ivory:#F6F2EA; --paper:#FFFDF9;
  --brand:#1F5A47; --brand-2:#143D30; --champ:#D4B978; --champ-2:#B08F45; --champ-3:#EBD9A7;
  --ok:#2E7D4F; --warn:#B7791F; --bad:#B23A3A; --wa:#25D366;
  --display:'Marcellus',Georgia,serif; --script:'Cormorant Garamond',Georgia,serif; --body:'Figtree',system-ui,sans-serif;
  --r:14px;
}
/* Thèmes de la page invité (choisis par l'organisateur) */
[data-theme="emeraude"]{--t-bg:#F6F2EA;--t-paper:#FFFDF9;--t-ink:#121716;--t-dark:#143D30;--t-accent:#D4B978;--t-accent-2:#B08F45;--t-accent-3:#EBD9A7;--t-seal:#8C2F39}
[data-theme="noir-or"]{--t-bg:#F5F0E6;--t-paper:#FFFCF5;--t-ink:#0E0B07;--t-dark:#0E0B07;--t-accent:#C9A24A;--t-accent-2:#8A6A1F;--t-accent-3:#E8D08A;--t-seal:#7A1F2B}
[data-theme="bordeaux"]{--t-bg:#F7F0EE;--t-paper:#FFFBFA;--t-ink:#241417;--t-dark:#4A1420;--t-accent:#D9B07A;--t-accent-2:#A67B3E;--t-accent-3:#EFD8B0;--t-seal:#B08F45}
[data-theme="nuit"]{--t-bg:#EEF1F5;--t-paper:#FAFBFD;--t-ink:#0F1622;--t-dark:#0F1F3A;--t-accent:#C8B282;--t-accent-2:#98804E;--t-accent-3:#E6D8B3;--t-seal:#8C2F39}
[data-theme="blush"]{--t-bg:#FAF2EF;--t-paper:#FFFBF9;--t-ink:#2A1E1E;--t-dark:#5A3A3F;--t-accent:#C99A8A;--t-accent-2:#9E6E60;--t-accent-3:#EBCBC0;--t-seal:#1F5A47}
*{box-sizing:border-box;margin:0;padding:0}
html{-webkit-text-size-adjust:100%}
body{font-family:var(--body);background:var(--ivory);color:var(--ink);line-height:1.55;font-weight:400;min-height:100dvh}
h1,h2,h3{font-family:var(--display);font-weight:400;line-height:1.1;letter-spacing:.02em}
button{font:inherit;cursor:pointer;border:0;background:none;color:inherit}
input,select,textarea{font:inherit;color:inherit}
a{color:var(--brand)}
:focus-visible{outline:2px solid var(--champ-2);outline-offset:3px}
.hidden{display:none!important}
.eyebrow{font-size:.68rem;letter-spacing:.3em;text-transform:uppercase;color:var(--champ-2);font-weight:600}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;padding:.85rem 1.4rem;border-radius:999px;background:var(--ink);color:var(--ivory);font-weight:500;letter-spacing:.02em;transition:transform .15s,opacity .15s;min-height:48px;text-decoration:none}
.btn:active{transform:scale(.98)}.btn[disabled]{opacity:.5;cursor:default}
.btn.brand{background:var(--brand);color:#fff}
.btn.gold{background:linear-gradient(135deg,var(--champ-3),var(--champ) 50%,var(--champ-2));color:var(--ink)}
.btn.ghost{background:transparent;border:1px solid currentColor;color:var(--ink)}
.btn.sm{padding:.5rem .9rem;min-height:36px;font-size:.85rem}
.btn.wa{background:var(--wa);color:#fff}
.btn.danger{background:var(--bad);color:#fff}
.chip{display:inline-block;padding:.2rem .6rem;border-radius:999px;font-size:.72rem;letter-spacing:.05em;font-weight:600;background:var(--ivory);border:1px solid var(--line)}
.chip.ok{background:#E6F2EA;color:var(--ok);border-color:transparent}.chip.warn{background:#FBF0DC;color:var(--warn);border-color:transparent}.chip.bad{background:#F9E3E3;color:var(--bad);border-color:transparent}.chip.brand{background:#E3EEE9;color:var(--brand);border-color:transparent}
.toast{position:fixed;left:50%;bottom:1.5rem;transform:translateX(-50%);background:var(--ink);color:var(--ivory);padding:.8rem 1.2rem;border-radius:12px;font-size:.9rem;z-index:99;box-shadow:0 10px 30px rgba(0,0,0,.25);max-width:92vw}
.note{font-size:.85rem;color:var(--ink-2);padding:.8rem 1rem;background:#FBF6E8;border-left:3px solid var(--champ);border-radius:6px;margin:.6rem 0}
.note.bad{background:#FBECEC;border-color:var(--bad)}.note.ok{background:#E9F4EE;border-color:var(--ok)}
.field{margin:.8rem 0}.field label,.lbl{display:block;font-size:.7rem;letter-spacing:.16em;text-transform:uppercase;color:var(--muted);margin-bottom:.35rem;font-weight:600}
.field textarea,.field input,.field select,.search{width:100%;border:1px solid var(--line);border-radius:10px;padding:.8rem;background:#fff;min-height:48px}
.field textarea{min-height:100px;resize:vertical}
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:.8rem}@media(max-width:560px){.grid2{grid-template-columns:1fr}}
.card{background:var(--paper);border:1px solid var(--line);border-radius:16px;padding:1.4rem;box-shadow:0 8px 30px rgba(18,23,22,.05)}
.actions{display:flex;flex-wrap:wrap;gap:.6rem}
.mono{font-family:ui-monospace,Menlo,monospace;font-size:.8rem;word-break:break-all}

/* Outils (scanner, admin) */
.tool{max-width:960px;margin:0 auto;padding:1rem;min-height:100dvh}
.tool header{display:flex;align-items:center;justify-content:space-between;padding:.4rem 0 1rem;border-bottom:1px solid var(--line);margin-bottom:1rem;gap:1rem;flex-wrap:wrap}
.tool header h1{font-size:1.4rem}
.logo{font-family:var(--display);letter-spacing:.35em;font-size:.95rem;color:var(--brand)}
.logo b{color:var(--champ-2);font-weight:400}
.status{font-size:.72rem;letter-spacing:.1em;text-transform:uppercase;display:flex;gap:.6rem;align-items:center}
.dot{width:9px;height:9px;border-radius:50%;background:var(--ok);display:inline-block}.dot.off{background:var(--bad)}
.gate{max-width:400px;margin:10vh auto;text-align:center}.gate input{width:100%;padding:.9rem;border:1px solid var(--line);border-radius:12px;margin:.5rem 0;background:#fff;min-height:48px}
.stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(105px,1fr));gap:.6rem;margin:1rem 0}
.stats div{background:var(--paper);border:1px solid var(--line);border-radius:12px;padding:.8rem .4rem;text-align:center}
.stats b{display:block;font-family:var(--display);font-size:1.9rem;line-height:1}.stats small{font-size:.65rem;letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}
.tabs{display:flex;gap:.3rem;overflow-x:auto;margin:.6rem 0 1rem;padding-bottom:.3rem}
.tabs button{padding:.55rem .9rem;border-radius:999px;border:1px solid var(--line);background:var(--paper);font-size:.85rem;white-space:nowrap}
.tabs button.on{background:var(--brand);color:#fff;border-color:var(--brand)}
table{width:100%;border-collapse:collapse;font-size:.85rem;background:var(--paper)}
th,td{padding:.6rem .5rem;border-bottom:1px solid var(--line);text-align:left;vertical-align:top}th{font-size:.66rem;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);font-weight:600}
.tscroll{overflow-x:auto;border:1px solid var(--line);border-radius:12px}
.list{display:grid;gap:.5rem}.list .it{background:var(--paper);border:1px solid var(--line);border-radius:12px;padding:.8rem;display:flex;justify-content:space-between;align-items:center;gap:.6rem;flex-wrap:wrap}
.result{border-radius:16px;padding:1.4rem;margin:1rem 0;color:#fff;text-align:center;min-height:140px;display:grid;place-items:center;transition:background .2s}
.result.ok{background:var(--ok)}.result.warn{background:var(--warn)}.result.bad{background:var(--bad)}.result.idle{background:var(--ink-2)}
.result h2{font-size:1.6rem;color:#fff}.result p{opacity:.92}.result .big{font-size:2.5rem;font-family:var(--script);font-style:italic;font-weight:600;line-height:1.05}
#reader{border-radius:16px;overflow:hidden;background:#000;min-height:240px}
@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}
