/* Search · code53 — reprend le style de l'admin TrAIcell (traicell.code53.click/admin) :
   barre du haut bleu nuit, menu latéral par sections, cartes blanches, accent orange. Polices système. */
:root{--bg:#f6f5f1;--card:#fff;--soft:#f1efe9;--ink:#0e1525;--ink2:#3c4257;--mute:#5f6680;--line:#e3e2dc;
  --acc:#cf4510;--acc-hi:#f26207;--acc-soft:#fff1e8;--acc-ink:#a33a0a;--red:#c8281c;--red-soft:#fdecea;--ok:#15803d;--ok-soft:#e7f6ec;
  --warn:#a15c07;--warn-soft:#fdf3e1;--blue:#3346a8;--blue-soft:#eef1ff;--night:#0e1525;--night-ink:#c2c8d6;
  --sans:ui-sans-serif,-apple-system,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;--mono:ui-monospace,"SF Mono","Cascadia Mono",Consolas,monospace}
*{box-sizing:border-box;margin:0}
body{font:14px/1.55 var(--sans);color:var(--ink);background:var(--bg);-webkit-font-smoothing:antialiased}
button,input,select,textarea{font:inherit;color:inherit}
a{color:inherit}
[hidden]{display:none!important}
:focus-visible{outline:2px solid var(--acc);outline-offset:2px}
::selection{background:var(--acc-soft)}
svg.i{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;flex:none}

/* Barre du haut */
.top{background:var(--night);color:var(--night-ink);position:sticky;top:0;z-index:30}
.top .in{max-width:1320px;margin:0 auto;padding:0 20px;height:58px;display:flex;align-items:center;gap:14px}
.logo{display:flex;align-items:center;gap:10px;font-weight:700;color:#fff;text-decoration:none;font-size:16px;white-space:nowrap;min-width:0}
.logo small{color:#8e96ab;font-weight:500;overflow:hidden;text-overflow:ellipsis}
.mark{width:30px;height:30px;border-radius:9px;background:var(--acc);display:grid;place-items:center;flex:none;color:#fff}
.sp{flex:1}
.top a.lk,.top button.lk{color:var(--night-ink);background:none;border:0;padding:7px 10px;border-radius:8px;cursor:pointer;font-weight:600;text-decoration:none;white-space:nowrap;display:inline-flex;align-items:center;gap:7px}
.top .lk:hover{background:#ffffff14;color:#fff}
.top .who{font-size:12.5px;color:#8e96ab;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:260px}
.top form{display:contents}
.burger{display:none;background:none;border:0;color:#fff;padding:6px;border-radius:8px;cursor:pointer}

/* Mise en page */
.shell{max-width:1320px;margin:0 auto;padding:22px 20px 60px;display:grid;grid-template-columns:232px minmax(0,1fr);gap:24px;align-items:start}
.side{position:sticky;top:80px;display:flex;flex-direction:column;gap:2px;background:var(--card);border:1px solid var(--line);border-radius:14px;padding:10px}
.side .sg{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--mute);padding:12px 10px 4px}
.side .sg:first-child{padding-top:4px}
.side a{display:flex;align-items:center;gap:10px;width:100%;text-align:left;padding:9px 10px;border:0;border-radius:8px;background:none;font-weight:600;font-size:13.5px;color:var(--ink2);text-decoration:none;cursor:pointer;white-space:nowrap}
.side a:hover{background:var(--soft);color:var(--ink)}
.side a.on{background:var(--acc-soft);color:var(--acc-ink);box-shadow:inset 0 0 0 1px #cf451033}
.side .n{margin-left:auto;background:var(--acc);color:#fff;border-radius:99px;font-size:11px;padding:0 7px;line-height:18px}
.side .n.g{background:var(--soft);color:var(--mute)}
.scrim{display:none}
.main{min-width:0}
.solo{max-width:1320px;margin:0 auto;padding:22px 20px 60px}
.head{display:flex;align-items:flex-end;justify-content:space-between;gap:14px;flex-wrap:wrap;margin-bottom:18px}
.head h1{font-size:25px;letter-spacing:-.03em;line-height:1.2}
.head p{color:var(--mute);margin-top:2px;max-width:780px}
.card{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:20px;min-width:0}
.card h2{font-size:16px;letter-spacing:-.01em;margin-bottom:12px;display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.card h2 small{font-weight:500;color:var(--mute);font-size:12.5px;margin-left:auto}
.card h3{font-size:13.5px;margin:14px 0 6px;color:var(--ink2)}
.card p+p{margin-top:8px}
.card ul,.card ol{padding-left:18px;display:grid;gap:4px}
.grid{display:grid;gap:16px}
.g2{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
.g3{grid-template-columns:minmax(0,2fr) minmax(0,1fr)}
.g3x{grid-template-columns:repeat(3,minmax(0,1fr))}
.full{grid-column:1/-1}
.mt{margin-top:16px}

/* Boutons et champs */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:7px;padding:9px 15px;border-radius:9px;border:1px solid var(--line);background:var(--card);font-weight:600;cursor:pointer;white-space:nowrap;text-decoration:none}
.btn:hover{border-color:#c9c7bf}
.btn:disabled{opacity:.55;cursor:default}
.btn.acc{background:var(--acc);border-color:var(--acc);color:#fff}
.btn.acc:hover{background:var(--acc-ink)}
.btn.dark{background:var(--ink);border-color:var(--ink);color:#fff}
.btn.sm{padding:6px 11px;font-size:13px}
.btn.danger{color:var(--red)}
input,select,textarea{padding:9px 11px;border:1px solid var(--line);border-radius:9px;background:#fff;width:100%;min-width:0}
input[type=checkbox]{width:16px;height:16px;accent-color:var(--acc);padding:0;flex:none}
input[type=file]{padding:7px}
label.f{display:grid;gap:5px;font-weight:600;font-size:13px}
label.f small{font-weight:400;color:var(--mute)}
label.c{display:flex;gap:9px;align-items:center;font-size:13.5px;padding:4px 0}
.form{display:grid;gap:14px}
.fr{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:14px}
.checks{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:2px 16px;border:1px solid var(--line);border-radius:12px;padding:10px 14px}
.checks .sg{grid-column:1/-1;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--mute);padding-bottom:4px}
form.inline{display:inline-flex;gap:6px;align-items:center}
.muted{color:var(--mute)}
.small{font-size:12.5px}
.empty{color:var(--mute);padding:26px;text-align:center}

/* Messages */
.note{background:var(--acc-soft);border:1px solid #f4c9ae;border-radius:12px;padding:12px 14px;margin-bottom:14px;color:var(--acc-ink)}
.msg{border-radius:12px;padding:12px 14px;margin-bottom:14px;border:1px solid}
.msg.ok{background:var(--ok-soft);color:var(--ok);border-color:#bfe3cb}
.msg.err{background:var(--red-soft);color:var(--red);border-color:#f3c3be}
.note a,.msg a{font-weight:700}

/* Indicateurs */
.kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1px;background:var(--line);border:1px solid var(--line);border-radius:14px;overflow:hidden;margin-bottom:16px}
.kpis.k2{grid-template-columns:repeat(2,minmax(0,1fr))}
.kpi{background:var(--card);padding:14px 16px;min-width:0}
.kpi b{display:block;font-size:24px;letter-spacing:-.03em;font-variant-numeric:tabular-nums;line-height:1.25}
.kpi span{color:var(--mute);font-size:12.5px}
.kpi em{font-style:normal;font-size:12px;color:var(--mute);display:block}
.bar{flex:1;height:8px;background:var(--soft);border-radius:99px;overflow:hidden}
.bar i{display:block;height:100%;width:0;background:var(--acc);border-radius:99px;transition:width .4s}

/* Tuiles d'action */
.tile{display:grid;gap:6px;text-decoration:none;transition:border-color .15s}
.tile:hover{border-color:#c9c7bf}
.tile .ic{width:34px;height:34px;border-radius:9px;background:var(--acc-soft);color:var(--acc);display:grid;place-items:center}
.tile b{font-size:15px}
.tile span{color:var(--mute);font-size:13px}

/* Pastilles */
.pill{display:inline-flex;align-items:center;gap:5px;border-radius:99px;padding:1px 9px;font-size:12px;font-weight:600;white-space:nowrap}
.p-off{background:var(--soft);color:var(--mute)}
.p-new{background:var(--acc-soft);color:var(--acc-ink)}
.p-warn{background:var(--warn-soft);color:var(--warn)}
.p-blue{background:var(--blue-soft);color:var(--blue)}
.p-ok{background:var(--ok-soft);color:var(--ok)}
.p-err{background:var(--red-soft);color:var(--red)}

/* Tableaux */
.tw{overflow-x:auto}
.tbl{width:100%;border-collapse:collapse;font-size:13.5px}
.tbl th{text-align:left;font-size:12px;color:var(--mute);font-weight:600;padding:8px 10px;border-bottom:1px solid var(--line);white-space:nowrap}
.tbl td{padding:10px;border-bottom:1px solid var(--line);vertical-align:top}
.tbl tr:last-child td{border-bottom:0}
.tbl td a{color:var(--acc-ink);font-weight:600;text-decoration:none}
.tbl td a:hover{text-decoration:underline}
.tbl td input{max-width:200px;padding:6px 9px}
.num{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}
.lst{display:grid}
.lst a,.lst div{display:flex;justify-content:space-between;gap:10px;padding:9px 0;border-top:1px solid var(--line);text-decoration:none}
.lst>:first-child{border-top:0}
.lst b{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}

/* Journal et blocs explicatifs */
.log{background:var(--night);color:var(--night-ink);border-radius:14px;padding:16px 18px}
.log h2{color:#fff;font-size:16px;letter-spacing:-.01em;margin-bottom:10px}
.log pre{white-space:pre-wrap;font:12.5px/1.6 var(--mono);max-height:340px;overflow:auto}
.step{border-left:3px solid var(--acc);padding:6px 0 6px 12px;margin-top:10px}
.step b{display:block}
.step.ok{border-color:var(--ok)}.step.warn{border-color:#e6a15c}.step.off{border-color:var(--line)}

/* Connexion */
.login{max-width:420px;margin:70px auto;padding:30px}
.login h1{font-size:24px;margin-bottom:6px}
.login form{display:grid;gap:12px;margin-top:18px}

@media (max-width:1100px){.kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.g3,.g3x{grid-template-columns:minmax(0,1fr)}}
@media (max-width:1024px){.shell{grid-template-columns:200px minmax(0,1fr);gap:18px;padding:18px 16px 60px}.g2{grid-template-columns:minmax(0,1fr)}}
@media (max-width:767px){
  .burger{display:grid}
  .shell{grid-template-columns:minmax(0,1fr);padding:16px 16px 60px}
  .side{position:fixed;top:0;left:0;bottom:0;width:260px;z-index:50;border-radius:0;border:0;transform:translateX(-102%);transition:transform .2s;overflow:auto;padding:16px 10px}
  body.menu-on .side{transform:none;box-shadow:8px 0 30px #0e152540}
  body.menu-on .scrim{display:block;position:fixed;inset:0;background:#0e152566;z-index:40}
  .logo small,.top .who,.top .lk span{display:none}
  .head h1{font-size:22px}
  .tbl.cards thead{display:none}
  .tbl.cards tr{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:4px 10px;padding:12px 0;border-bottom:1px solid var(--line)}
  .tbl.cards td{border:0;padding:2px 0}
  .tbl.cards td.wide{grid-column:1/-1}
  .tbl.cards td.num{text-align:left}
}
@media (prefers-reduced-motion:reduce){*{transition:none!important}}
