/* Cockpit Agora Sushi : feuille de style
   Parti pris : papier de riz, encre sumi, indigo pour agir, vermillon pour alerter. */
/* Polices Google Fonts (licence OFL), embarquées pour marcher sans connexion */
@font-face{font-family:"M PLUS 1p";font-style:normal;font-weight:400;font-display:swap;src:url(polices/m-plus-1p-latin-400-normal.woff2) format("woff2")}
@font-face{font-family:"M PLUS 1p";font-style:normal;font-weight:500;font-display:swap;src:url(polices/m-plus-1p-latin-500-normal.woff2) format("woff2")}
@font-face{font-family:"M PLUS 1p";font-style:normal;font-weight:700;font-display:swap;src:url(polices/m-plus-1p-latin-700-normal.woff2) format("woff2")}
@font-face{font-family:"Shippori Mincho B1";font-style:normal;font-weight:500;font-display:swap;src:url(polices/shippori-mincho-b1-latin-500-normal.woff2) format("woff2")}
@font-face{font-family:"Shippori Mincho B1";font-style:normal;font-weight:600;font-display:swap;src:url(polices/shippori-mincho-b1-latin-600-normal.woff2) format("woff2")}
@font-face{font-family:"Shippori Mincho B1";font-style:normal;font-weight:700;font-display:swap;src:url(polices/shippori-mincho-b1-latin-700-normal.woff2) format("woff2")}
:root{
  --papier:#F3F3EF; --papier2:#EAEAE4; --surface:#FFFFFF;
  --encre:#1B1C20; --gris:#5E6066; --gris2:#8A8C91;
  --trait:#E1E1DA; --trait-fort:#C6C6BD;
  --ai:#263A8C; --ai-fonce:#1C2C6E; --ai-pale:#E9ECF6;
  --shu:#B23A26; --shu-pale:#F8E9E5;
  --matcha:#3D6B38; --matcha-pale:#E7EFE4;
  --ambre:#B57A0C; --ambre-texte:#83580A; --ambre-pale:#F7EEDA;
  --titre:"Shippori Mincho B1","Hiragino Mincho ProN","Yu Mincho",Georgia,serif;
  --texte:"M PLUS 1p",system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;
  --rayon:6px;
  color-scheme:light;
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--papier);color:var(--encre);font:400 15px/1.55 var(--texte);font-feature-settings:"kern"}
button,input,select,textarea{font:inherit;color:inherit}
a{color:var(--ai)}
:focus-visible{outline:2px solid var(--ai);outline-offset:2px;border-radius:3px}
.num,table{font-variant-numeric:tabular-nums lining-nums}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
svg.ic{width:20px;height:20px;flex:none;fill:none;stroke:currentColor;stroke-width:1.75;stroke-linecap:round;stroke-linejoin:round}

/* ---------- Coquille ---------- */
.app{display:grid;grid-template-columns:236px 1fr;min-height:100vh}
.side{position:sticky;top:0;height:100vh;display:flex;flex-direction:column;border-right:1px solid var(--trait);padding:28px 16px 18px;background:var(--papier)}
.marque{display:flex;align-items:center;gap:12px;padding:0 10px 26px}
.sceau{width:38px;height:38px;flex:none}
.marque b{display:block;font:600 19px/1.1 var(--titre);letter-spacing:.01em}
.marque small{display:block;color:var(--gris);font-size:12.5px;margin-top:3px}
.nav{display:flex;flex-direction:column;gap:2px}
.nav a{display:flex;align-items:center;gap:12px;min-height:42px;padding:0 12px;border-radius:var(--rayon);color:var(--gris);text-decoration:none;font-weight:500;position:relative}
.nav a:hover{background:var(--papier2);color:var(--encre)}
.nav a.on{color:var(--encre);background:var(--surface);box-shadow:inset 0 0 0 1px var(--trait)}
.nav a.on::before{content:"";position:absolute;left:-16px;top:10px;bottom:10px;width:3px;background:var(--encre);border-radius:0 2px 2px 0}
.nav .compte{margin-left:auto;font-size:12px;min-width:20px;height:20px;padding:0 6px;border-radius:10px;display:grid;place-items:center;font-variant-numeric:tabular-nums}
.compte.alerte{background:var(--shu);color:#fff}
.compte.afaire{box-shadow:inset 0 0 0 1.5px var(--ambre);color:var(--ambre-texte)}
.nav .sep{height:1px;background:var(--trait);margin:10px 12px}
.side-pied{margin-top:auto;padding:14px 12px 0;color:var(--gris);font-size:12.5px;line-height:1.45}
.main{min-width:0;display:flex;flex-direction:column}
.page{width:100%;max-width:1160px;margin:0 auto;padding:44px 48px 40px;flex:1}
.pied{max-width:1160px;width:100%;margin:0 auto;padding:18px 48px 28px;color:var(--gris);font-size:12.5px;border-top:1px solid var(--trait);display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap}
.tabbar,.plus-sheet{display:none}

/* ---------- En-tête de page ---------- */
.tete{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;margin-bottom:10px;flex-wrap:wrap}
.tete .date{color:var(--gris);font-size:13.5px;margin:0 0 4px}
h1{font:600 30px/1.2 var(--titre);margin:0;letter-spacing:.005em}
.situation{font:500 21px/1.6 var(--titre);max-width:46em;margin:14px 0 36px;color:var(--encre)}
.situation b{font-weight:700}
.situation .a{color:var(--shu);font-weight:700}
h2{font:600 16.5px/1.3 var(--texte);margin:0}
h3{font:600 15px/1.3 var(--texte);margin:0}
.sous{color:var(--gris);font-size:13.5px}

/* ---------- Panneaux ---------- */
.panneau{background:var(--surface);border:1px solid var(--trait);border-radius:var(--rayon);padding:22px 24px;min-width:0}
.panneau+.panneau{margin-top:20px}
.ph{display:flex;align-items:baseline;justify-content:space-between;gap:12px 16px;margin-bottom:16px;flex-wrap:wrap}
.ph .sous{margin-top:2px}
.grille{display:grid;gap:20px}
.g2{grid-template-columns:1.35fr 1fr}
.g2e{grid-template-columns:1fr 1fr}
.pile>*+*{margin-top:20px}
.vide{padding:28px 8px;text-align:center;color:var(--gris)}
.vide p{margin:0 0 12px}

/* ---------- Boutons et champs ---------- */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:44px;padding:0 18px;border-radius:var(--rayon);border:1px solid var(--trait-fort);background:var(--surface);color:var(--encre);font-weight:600;cursor:pointer;text-decoration:none;white-space:nowrap;transition:background .15s,border-color .15s}
.btn:hover{border-color:var(--encre)}
.btn.principal{background:var(--ai);border-color:var(--ai);color:#fff}
.btn.principal:hover{background:var(--ai-fonce)}
.btn.encre{background:var(--encre);border-color:var(--encre);color:#fff}
.btn.discret{border-color:transparent;background:transparent;color:var(--gris);padding:0 12px}
.btn.discret:hover{color:var(--encre);background:var(--papier2)}
.btn.danger{color:var(--shu);border-color:#E5C6BF}
.btn.petit{min-height:36px;padding:0 12px;font-size:14px}
.btn svg.ic{width:18px;height:18px}
.actions{display:flex;gap:10px;flex-wrap:wrap;align-items:center}
label.champ{display:flex;flex-direction:column;gap:6px;font-size:13.5px;color:var(--gris);font-weight:500;min-width:0}
input[type=text],input[type=number],input[type=date],input[type=search],input:not([type]),select,textarea{min-height:44px;border:1px solid var(--trait-fort);border-radius:var(--rayon);background:var(--surface);padding:9px 12px;color:var(--encre);width:100%;min-width:0}
textarea{line-height:1.55;resize:vertical}
input:focus,select:focus,textarea:focus{outline:none;border-color:var(--ai);box-shadow:0 0 0 3px var(--ai-pale)}
select{appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' fill='none' stroke='%235E6066' stroke-width='1.75' stroke-linecap='round'%3E%3Cpath d='m7 10 5 5 5-5'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 8px center;background-size:20px;padding-right:36px}
.filtres{display:flex;gap:10px;flex-wrap:wrap;align-items:center;margin-bottom:16px}
.filtres>*{width:auto;flex:0 1 auto}
.filtres input[type=search]{flex:1 1 220px}
.seg{display:inline-flex;border:1px solid var(--trait-fort);border-radius:var(--rayon);overflow:hidden;background:var(--surface)}
.seg button{border:0;background:none;min-height:42px;padding:0 14px;cursor:pointer;color:var(--gris);font-weight:500}
.seg button+button{border-left:1px solid var(--trait)}
.seg button.on{background:var(--encre);color:#fff}

/* ---------- États (plein = fait, creux = prévu) ---------- */
.st{display:inline-flex;align-items:center;gap:7px;font-size:13.5px;font-weight:500;white-space:nowrap}
.st::before{content:"";width:9px;height:9px;border-radius:50%;flex:none}
.st.preparer::before,.st.apointer::before,.st.acontacter::before{box-shadow:inset 0 0 0 1.75px var(--ambre)}
.st.preparer,.st.apointer{color:var(--ambre-texte)}
.st.livree::before,.st.payee::before,.st.client::before,.st.encaissee::before{background:var(--matcha)}
.st.pointee::before{box-shadow:inset 0 0 0 1.75px var(--matcha)}
.st.facturee::before,.st.attente::before{background:var(--encre)}
.st.retard::before{background:var(--shu)}
.st.retard{color:var(--shu);font-weight:600}
.st.contacte::before{box-shadow:inset 0 0 0 1.75px var(--encre)}
.st.degustation::before{background:var(--ambre)}
.st.silence::before{background:var(--shu)}
.st.silence{color:var(--shu)}

/* ---------- Tableaux ---------- */
.tab-wrap{overflow-x:auto;margin:0 -4px}
table.t{width:100%;border-collapse:collapse}
.t th{font-weight:500;color:var(--gris);font-size:13px;text-align:left;padding:0 10px 10px;border-bottom:1px solid var(--trait);white-space:nowrap}
.t td{padding:13px 10px;border-bottom:1px solid var(--trait);vertical-align:middle}
.t tr:last-child td{border-bottom:0}
.t .r{text-align:right}
.t tbody tr.clic{cursor:pointer}
.t tbody tr.clic:hover td{background:#FAFAF7}
.t tr.retard td:first-child{box-shadow:inset 3px 0 0 var(--shu)}
.t tfoot td{border-top:1px solid var(--trait-fort);border-bottom:0;font-weight:600;padding-top:14px}
.t input[type=number]{width:96px;text-align:right;min-height:38px;padding:6px 10px}
.t .nom{font-weight:600}
.t .fin{color:var(--gris);font-size:13.5px}

/* ---------- Aujourd'hui : la tournée ---------- */
.tournee{list-style:none;margin:0;padding:0;position:relative}
.tournee::before{content:"";position:absolute;left:11px;top:22px;bottom:22px;width:1.5px;background:var(--trait-fort)}
.etape{display:grid;grid-template-columns:24px 1fr auto;gap:14px;align-items:center;padding:12px 0;position:relative}
.etape+.etape{border-top:1px solid var(--trait)}
.etape .pt{width:13px;height:13px;border-radius:50%;margin-left:5px;background:var(--surface);box-shadow:inset 0 0 0 2px var(--ambre);position:relative;z-index:1}
.etape.livree .pt{background:var(--matcha);box-shadow:0 0 0 3px var(--surface)}
.etape.absente .pt{background:var(--surface);box-shadow:inset 0 0 0 2px var(--trait-fort)}
.etape .qui{min-width:0}
.etape .qui b{display:block;font-weight:600}
.etape .qui span{color:var(--gris);font-size:13.5px}
.etape .droite{display:flex;align-items:center;gap:12px}
.atelier{color:var(--gris);font-size:13.5px;padding:2px 0 10px 38px}

/* Saisie rapide */
.saisie .lignes{display:grid;grid-template-columns:1fr 104px 92px;gap:8px 12px;align-items:center;margin:14px 0 6px}
.saisie .lignes .en{font-size:13px;color:var(--gris)}
.saisie .lignes .r{text-align:right}
.saisie .lignes input{text-align:right}
.saisie .total{display:flex;justify-content:space-between;align-items:baseline;border-top:1px solid var(--trait);padding-top:14px;margin-top:10px}
.saisie .total b{font:600 22px var(--titre)}
.pas{display:flex;align-items:center;border:1px solid var(--trait-fort);border-radius:var(--rayon);overflow:hidden;background:var(--surface)}
.pas button{width:34px;min-height:42px;border:0;background:none;cursor:pointer;color:var(--gris);font-size:18px}
.pas button:hover{background:var(--papier2);color:var(--encre)}
.pas input{border:0!important;box-shadow:none!important;min-height:42px;padding:0 2px;text-align:center!important;width:36px}

/* ---------- Magasins ---------- */
.mag-liste{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:20px}
.mag{background:var(--surface);border:1px solid var(--trait);border-radius:var(--rayon);padding:20px 22px;cursor:pointer;text-align:left;display:flex;flex-direction:column;gap:14px;transition:border-color .15s}
.mag:hover{border-color:var(--trait-fort)}
.mag.alerte{border-color:#E2B9B0;box-shadow:inset 3px 0 0 var(--shu)}
.mag .h{display:flex;justify-content:space-between;gap:10px;align-items:flex-start}
.mag .h b{font:600 18px/1.25 var(--titre);display:block}
.mag .h span{color:var(--gris);font-size:13.5px}
.mag .chiffres{display:flex;gap:28px}
.mag .chiffres div{display:flex;flex-direction:column}
.mag .chiffres small{color:var(--gris);font-size:13px}
.mag .chiffres strong{font:600 20px/1.3 var(--titre);font-variant-numeric:tabular-nums}
.mag .bas{display:flex;justify-content:space-between;align-items:center;gap:10px;color:var(--gris);font-size:13.5px;border-top:1px solid var(--trait);padding-top:12px}
.spark{width:100%;height:56px;display:block}

/* ---------- Graphiques ---------- */
.graph{width:100%;height:auto;display:block;overflow:visible}
.graph text{font:12px var(--texte);fill:var(--gris);font-variant-numeric:tabular-nums}
.legende{display:flex;flex-wrap:wrap;gap:8px 22px;font-size:13.5px;color:var(--gris);margin-top:10px}
.legende i{display:inline-block;width:12px;height:12px;border-radius:2px;vertical-align:-1px;margin-right:7px}
.legende i.ligne{height:2.5px;border-radius:0;width:18px;vertical-align:3px}
.legende i.tiret{height:0;border-top:2px dashed var(--shu);width:18px;vertical-align:3px;border-radius:0}

/* ---------- Marges ---------- */
.classement{list-style:none;margin:0;padding:0}
.classement li{display:grid;grid-template-columns:28px 1fr auto;gap:12px;align-items:center;padding:11px 0;border-bottom:1px solid var(--trait)}
.classement li:last-child{border-bottom:0}
.classement .rang{font:600 17px var(--titre);color:var(--gris)}
.classement .barre{height:6px;background:var(--papier2);border-radius:3px;margin-top:7px;overflow:hidden}
.classement .barre i{display:block;height:100%;background:var(--encre);border-radius:3px}

/* ---------- Objectif ---------- */
.regle{position:relative;margin:30px 0 8px}
.regle svg{width:100%;height:auto;display:block;overflow:visible}
.bento{display:grid;grid-template-columns:repeat(9,1fr);gap:8px;margin-top:6px}
.case{aspect-ratio:1.25;border-radius:4px;display:flex;flex-direction:column;justify-content:flex-end;padding:8px 9px;font-size:12px;line-height:1.25;min-width:0}
.case.pleine{background:var(--encre);color:#fff}
.case.creuse{box-shadow:inset 0 0 0 1.5px var(--encre);background:repeating-linear-gradient(135deg,transparent 0 6px,rgba(27,28,32,.06) 6px 7px);color:var(--encre)}
.case.libre{box-shadow:inset 0 0 0 1px var(--trait-fort);color:var(--gris2)}
.case span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.case b{font:600 14px var(--titre)}
.faits{display:grid;grid-template-columns:repeat(3,1fr);gap:0;border-top:1px solid var(--trait);margin-top:24px}
.faits>div{padding:16px 18px 4px 0}
.faits>div+div{border-left:1px solid var(--trait);padding-left:18px}
.faits small{color:var(--gris);font-size:13px;display:block}
.faits strong{font:600 22px/1.35 var(--titre);font-variant-numeric:tabular-nums}

/* ---------- Prospection ---------- */
.kanban{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;align-items:start}
.col{background:var(--papier2);border-radius:var(--rayon);padding:14px 12px 12px;min-height:180px}
.col>h3{display:flex;justify-content:space-between;align-items:center;padding:0 4px 12px;font-size:14.5px}
.col>h3 span{color:var(--gris);font-weight:500}
.carte{background:var(--surface);border:1px solid var(--trait);border-radius:var(--rayon);padding:14px;display:flex;flex-direction:column;gap:8px}
.carte+.carte{margin-top:10px}
.carte b{font-weight:600}
.carte .lieu{color:var(--gris);font-size:13.5px;margin-top:-6px}
.carte .prochaine{font-size:13.5px;display:flex;gap:8px;align-items:flex-start;border-top:1px solid var(--trait);padding-top:8px}
.carte .prochaine svg{width:16px;height:16px;margin-top:2px;color:var(--gris)}
.carte .prochaine.retard{color:var(--shu)}
.carte .prochaine.retard svg{color:var(--shu)}
.carte .bas{display:flex;gap:6px;justify-content:space-between;align-items:center}
.carte select{min-height:36px;padding:4px 30px 4px 10px;font-size:13.5px;width:auto}
.col .vide{padding:18px 4px;font-size:13.5px}
.mail{font:15px/1.6 var(--texte);min-height:320px}

/* ---------- Mentions Ablyos ---------- */
.ablyos{display:flex;gap:10px;align-items:flex-start;font-size:13.5px;color:var(--gris);border:1px dashed var(--trait-fort);border-radius:var(--rayon);padding:10px 12px;margin-top:14px;line-height:1.45}
.ablyos svg{width:18px;height:18px;flex:none;margin-top:1px}
.ablyos b{color:var(--encre);font-weight:600}

/* ---------- Assistant ---------- */
.badge{display:inline-flex;align-items:center;gap:7px;font-size:13px;font-weight:500;color:var(--gris);border:1px solid var(--trait-fort);border-radius:20px;padding:4px 11px;background:var(--surface)}
.badge::before{content:"";width:7px;height:7px;border-radius:50%;box-shadow:inset 0 0 0 1.5px var(--gris)}
.fil{display:flex;flex-direction:column;gap:18px;margin-bottom:20px}
.q{align-self:flex-end;background:var(--encre);color:#fff;padding:10px 16px;border-radius:14px 14px 4px 14px;max-width:80%}
.rep{max-width:44em}
.rep p{margin:0 0 10px;font:500 18px/1.6 var(--titre)}
.rep ul{margin:6px 0 0;padding:0;list-style:none}
.rep li{display:flex;justify-content:space-between;gap:16px;padding:8px 0;border-bottom:1px solid var(--trait);font-variant-numeric:tabular-nums}
.rep li:last-child{border-bottom:0}
.rep .lien{display:inline-block;margin-top:8px;font-weight:600;font-size:14px}
.suggestions{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 18px}
.suggestions button{border:1px solid var(--trait-fort);background:var(--surface);border-radius:20px;min-height:40px;padding:0 15px;cursor:pointer;color:var(--encre);font-size:14px}
.suggestions button:hover{border-color:var(--encre)}
.demande{display:flex;gap:10px}

/* ---------- Fenêtres ---------- */
.voile{position:fixed;inset:0;background:rgba(27,28,32,.32);z-index:50;display:flex;justify-content:flex-end;animation:fondu .16s ease-out}
.tiroir{background:var(--surface);width:min(620px,100%);height:100%;display:flex;flex-direction:column;box-shadow:-12px 0 40px rgba(27,28,32,.12);animation:glisse .2s ease-out}
.tiroir-h{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;padding:22px 24px 16px;border-bottom:1px solid var(--trait)}
.tiroir-h h2{font:600 22px/1.25 var(--titre)}
.tiroir-c{flex:1;overflow:auto;padding:20px 24px 28px}
.tiroir-p{padding:14px 24px;border-top:1px solid var(--trait);display:flex;gap:10px;flex-wrap:wrap;justify-content:space-between}
.voile.centre{justify-content:center;align-items:center;padding:16px}
.dialogue{background:var(--surface);border-radius:10px;padding:24px;width:min(440px,100%);box-shadow:0 18px 50px rgba(27,28,32,.2)}
.dialogue p{margin:0 0 20px;font:500 18px/1.5 var(--titre)}
.dialogue .actions{justify-content:flex-end}
.fiche-dl{display:grid;grid-template-columns:140px 1fr;gap:10px 16px;margin:0 0 20px}
.fiche-dl dt{color:var(--gris);font-size:13.5px}
.fiche-dl dd{margin:0}
.toast{position:fixed;left:50%;bottom:28px;transform:translateX(-50%);background:var(--encre);color:#fff;padding:11px 18px;border-radius:8px;z-index:80;font-weight:500;box-shadow:0 8px 24px rgba(27,28,32,.25);animation:monte .2s ease-out;display:flex;gap:14px;align-items:center}
.toast button{background:none;border:0;color:#fff;text-decoration:underline;cursor:pointer;font-weight:600}
@keyframes fondu{from{opacity:0}}
@keyframes glisse{from{transform:translateX(24px);opacity:.6}}
@keyframes monte{from{transform:translate(-50%,8px);opacity:0}}
@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}

/* ---------- Réglages ---------- */
.reglages{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px 20px}

/* ---------- Document A4 ---------- */
.doc-voile{position:fixed;inset:0;z-index:60;background:#D9D9D3;overflow:auto;padding:24px 16px 60px}
.doc-barre{position:sticky;top:0;display:flex;justify-content:center;gap:10px;margin:-8px auto 18px;z-index:2}
.a4{background:#fff;width:210mm;min-height:297mm;margin:0 auto;padding:18mm 18mm 16mm;box-shadow:0 4px 30px rgba(0,0,0,.12);display:flex;flex-direction:column;color:#111;font-size:12.5px}
.a4 .en-tete{display:flex;justify-content:space-between;gap:20px;border-bottom:1.5px solid #111;padding-bottom:14px}
.a4 h1{font-size:26px}
.a4 .coord{font-size:11.5px;color:#444;line-height:1.5}
.a4 .blocs{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin:20px 0}
.a4 .blocs small{color:#555;display:block;margin-bottom:3px}
.a4 table{width:100%;border-collapse:collapse;margin-top:6px}
.a4 th{text-align:left;font-weight:600;border-bottom:1px solid #111;padding:8px 6px;font-size:11.5px}
.a4 td{padding:9px 6px;border-bottom:1px solid #ddd}
.a4 .r{text-align:right}
.a4 .totaux{margin-left:auto;width:260px;margin-top:14px}
.a4 .totaux div{display:flex;justify-content:space-between;padding:4px 6px}
.a4 .totaux .g{border-top:1.5px solid #111;font-weight:700;font-size:14px;margin-top:4px;padding-top:8px}
.a4 .controle{display:grid;grid-template-columns:1fr 1fr 1fr;gap:14px;margin-top:28px}
.a4 .controle div{border:1px solid #bbb;border-radius:4px;padding:10px;min-height:70px;font-size:11.5px;color:#444}
.a4 .signes{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-top:18px}
.a4 .signes div{border-top:1px solid #111;padding-top:6px;min-height:80px;font-size:11.5px}
.a4 .mention{margin-top:auto;padding-top:16px;border-top:1px solid #ddd;font-size:10.5px;color:#666;display:flex;justify-content:space-between}

@media print{
  body.impression>*:not(.doc-voile){display:none!important}
  body.impression .doc-voile{position:static;background:none;padding:0;overflow:visible}
  body.impression .doc-barre{display:none}
  body.impression .a4{box-shadow:none;margin:0;width:auto;min-height:0;height:277mm;padding:0}
  @page{size:A4;margin:10mm}
}

/* ---------- Écrans moyens ---------- */
@media (max-width:1180px){
  .g2,.g2e{grid-template-columns:1fr}
  .kanban{grid-template-columns:repeat(2,minmax(0,1fr))}
}
/* ---------- Téléphone ---------- */
@media (max-width:820px){
  .app{grid-template-columns:1fr}
  .side{display:none}
  .page{padding:22px 16px 110px}
  .pied{padding:16px 16px 100px}
  h1{font-size:25px}
  .situation{font-size:18px;margin:10px 0 24px}
  .panneau{padding:18px 16px}
  .mobile-tete{display:flex!important}
  .tabbar{display:grid;grid-template-columns:repeat(5,1fr);position:fixed;left:0;right:0;bottom:0;z-index:40;background:var(--surface);border-top:1px solid var(--trait);padding:4px 4px calc(4px + env(safe-area-inset-bottom))}
  .tabbar a,.tabbar button{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;min-height:54px;color:var(--gris);text-decoration:none;font-size:11.5px;font-weight:500;border:0;background:none;cursor:pointer;position:relative}
  .tabbar a.on,.tabbar button.on{color:var(--encre)}
  .tabbar a.on::after{content:"";position:absolute;top:-4px;left:30%;right:30%;height:2px;background:var(--encre)}
  .tabbar .pastille{position:absolute;top:8px;right:calc(50% - 16px);width:8px;height:8px;border-radius:50%;background:var(--shu)}
  .plus-sheet.ouvert{display:block;position:fixed;left:0;right:0;bottom:0;z-index:45;background:var(--surface);border-radius:14px 14px 0 0;padding:14px 12px calc(76px + env(safe-area-inset-bottom));box-shadow:0 -10px 40px rgba(27,28,32,.18)}
  .plus-sheet a{display:flex;gap:14px;align-items:center;min-height:50px;padding:0 12px;color:var(--encre);text-decoration:none;font-weight:500;border-radius:var(--rayon)}
  .plus-sheet a.on{background:var(--papier2)}
  table.cartes thead{display:none}
  table.cartes,table.cartes tbody,table.cartes tr,table.cartes td{display:block;width:100%}
  table.cartes tr{border:1px solid var(--trait);border-radius:var(--rayon);padding:8px 12px;margin-bottom:10px;background:var(--surface)}
  table.cartes td{border:0;padding:6px 0;display:flex;justify-content:space-between;align-items:center;gap:14px;text-align:right}
  table.cartes td::before{content:attr(data-l);color:var(--gris);font-size:13px;text-align:left;font-weight:500}
  table.cartes td.nom{font-size:16px}
  table.cartes td.nom::before{display:none}
  table.cartes td.sans::before{display:none}
  table.cartes tr.retard{box-shadow:inset 3px 0 0 var(--shu)}
  table.cartes tr.retard td:first-child{box-shadow:none}
  table.cartes tfoot,table.cartes tfoot tr,table.cartes tfoot td{display:block}
  .tab-wrap{overflow:visible;margin:0}
  .mag-liste{grid-template-columns:1fr}
  .kanban{grid-template-columns:1fr}
  .col{min-height:0}
  .reglages{grid-template-columns:1fr}
  .faits{grid-template-columns:1fr}
  .faits>div+div{border-left:0;padding-left:0;border-top:1px solid var(--trait)}
  .bento{grid-template-columns:repeat(3,1fr)}
  .fiche-dl{grid-template-columns:1fr;gap:2px 0}
  .fiche-dl dd{margin-bottom:10px}
  .filtres>*{flex:1 1 140px}
  .saisie .lignes{grid-template-columns:1fr 112px 84px}
  .toast{bottom:84px;width:max-content;max-width:calc(100% - 32px)}
  .q{max-width:92%}
  .doc-voile{padding:12px 0 40px}
  .a4{transform-origin:top left;}
}
.mobile-tete{display:none;align-items:center;justify-content:space-between;padding:14px 16px 0}
.mobile-tete .marque{padding:0}

/* Ajustements */
.grille>.panneau+.panneau{margin-top:0}
.page:focus{outline:none}
.t td[data-l]{white-space:nowrap}
.case span{white-space:normal;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.case{aspect-ratio:auto;min-height:84px}
.mobile{display:none}
@media (max-width:820px){
  .bureau{display:none}.mobile{display:inline}
  .seg{display:flex;max-width:100%;overflow-x:auto;scrollbar-width:none}
  .seg button{flex:none;white-space:nowrap;padding:0 12px}
  .t input{width:104px!important;text-align:right}
  .t.limites td{display:block;width:auto!important;border:0;padding:4px 0}
  .t.limites tr{display:block;border-bottom:1px solid var(--trait);padding:8px 0}
  .graph text{font-size:11px}
  .tete .actions{width:100%}
}
@media (max-width:820px){table.cartes td.mc{display:none}}
.t input[inputmode=decimal]{width:96px;text-align:right}
.dl4{grid-template-columns:140px 1fr 140px 1fr}
.fart{grid-template-columns:2fr 1fr 1fr 1.3fr 1fr auto;gap:10px;align-items:end;margin-top:16px}
@media (max-width:1180px){.fart{grid-template-columns:1fr 1fr}.dl4{grid-template-columns:140px 1fr}}
@media (max-width:820px){.dl4{grid-template-columns:1fr}.fart{grid-template-columns:1fr}#tCat input,#tCat select{min-width:0!important;width:100%!important;max-width:200px}#tCat td.nom input{max-width:none}}
.puces{display:flex;gap:6px;flex-wrap:wrap}
.puce{border:1px solid var(--trait-fort);background:var(--surface);border-radius:var(--rayon);min-width:48px;min-height:52px;padding:4px 6px;cursor:pointer;display:flex;flex-direction:column;align-items:center;justify-content:center;font-size:12px;color:var(--gris);line-height:1.2}
.puce b{font:600 16px var(--titre);color:var(--encre)}
.puce.faite{background:var(--matcha-pale);border-color:#BFD3BA}
.puce.manque{border-color:var(--shu);border-width:1.5px}
.puce.sel{outline:2px solid var(--encre);outline-offset:1px}
.demarrage{list-style:none;margin:0;padding:0}
.demarrage li{display:flex;gap:12px;align-items:center;padding:10px 0;border-bottom:1px solid var(--trait)}
.demarrage li:last-child{border-bottom:0}
.demarrage li>span:nth-child(2){flex:1}
.demarrage li.fait>span:nth-child(2){color:var(--gris);text-decoration:line-through}
.case-d{width:22px;height:22px;border-radius:5px;border:1.5px solid var(--trait-fort);display:grid;place-items:center;flex:none}
.fait .case-d{background:var(--matcha);border-color:var(--matcha);color:#fff}
.case-d svg.ic{width:15px;height:15px}
#fJ td input{width:96px;text-align:right}
@media (max-width:820px){#fJ .grille,#fEch{grid-template-columns:1fr!important}}
input[type=range]{accent-color:var(--encre);width:100%;min-height:32px}
@media (max-width:820px){table.cartes td .st{white-space:normal;text-align:right}.panneau .t th,.panneau .t td{padding-left:6px;padding-right:6px}}
@media (max-width:820px){table.cartes td.nom{white-space:normal;flex-wrap:wrap}table.cartes td{flex-wrap:wrap}}
