/* Polices hébergées sur le serveur (licence SIL Open Font License) : aucune
   requête vers Google, pas d'adresse IP de l'équipe transmise à un tiers. */
@font-face{font-family:'Jost';font-style:normal;font-weight:400 500;font-display:swap;src:url(/static/jost.woff2) format('woff2')}
@font-face{font-family:'Marcellus';font-style:normal;font-weight:400;font-display:swap;src:url(/static/marcellus.woff2) format('woff2')}
:root{
  --fond:#F2ECEB; --surface:#FFFFFF; --surface-2:#F4EEEE; --ink:#2B1519; --ink-2:#7A6468; --line:#E6DADB;
  --bordeaux:#6C091B; --bordeaux-2:#4F0613; --or:#FFDB85; --or-2:#E9C46A;
  --accent:#6C091B; --bar:#DCCDCE; --bar-hi:#6C091B; --drink:#B08A3E;
  --good:#2F6B4F; --warn:#9C6410; --bad:#C0341D;
  color-scheme:light;
}
@media (prefers-color-scheme: dark){
  :root:not([data-theme="light"]){
    --fond:#170A0D; --surface:#241216; --surface-2:#30191E; --ink:#F4EAE7; --ink-2:#B9A3A6; --line:#3D2429;
    --accent:#FFDB85; --bar:#4A3035; --bar-hi:#FFDB85; --drink:#C9A55C;
    --good:#78C39C; --warn:#E8B04E; --bad:#FF8A70; color-scheme:dark;
  }
}
:root[data-theme="dark"]{
  --fond:#170A0D; --surface:#241216; --surface-2:#30191E; --ink:#F4EAE7; --ink-2:#B9A3A6; --line:#3D2429;
  --accent:#FFDB85; --bar:#4A3035; --bar-hi:#FFDB85; --drink:#C9A55C;
  --good:#78C39C; --warn:#E8B04E; --bad:#FF8A70; color-scheme:dark;
}
*{box-sizing:border-box}
html,body{margin:0}
body{background:var(--fond);color:var(--ink);font-family:"Jost",system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif;font-size:15.5px;line-height:1.45;-webkit-font-smoothing:antialiased;font-variant-numeric:tabular-nums lining-nums}
.serif{font-family:"Marcellus","Cormorant Garamond",Georgia,"Times New Roman",serif;font-weight:400}
:focus-visible{outline:2px solid var(--accent);outline-offset:2px}

/* Bandeau de marque */
.band{background:var(--bordeaux);color:var(--or)}
.band .in{max-width:1180px;margin:0 auto;padding:14px 14px 16px}
.top{display:flex;align-items:center;gap:14px;flex-wrap:wrap}
.brand{display:flex;align-items:center;gap:12px}
.brand img{height:46px;width:auto;display:block}
.word{font-family:"Marcellus",Georgia,serif;font-size:17px;letter-spacing:.16em;text-transform:uppercase;line-height:1}
.word:after{content:"";display:block;width:28px;height:1.5px;background:var(--or);margin-top:9px;opacity:.9}
.tabs{display:flex;gap:2px;overflow-x:auto;margin-left:auto;scrollbar-width:none}
.tabs a{padding:8px 13px;border-radius:999px;color:#F3D9A0;opacity:.78;font-size:14.5px;white-space:nowrap;text-decoration:none}
.tabs a[aria-current="page"]{opacity:1;background:rgba(255,219,133,.14);color:var(--or)}
@media (max-width:720px){.tabs{margin-left:0;width:calc(100% + 28px);margin-inline:-14px;padding-inline:10px}}
.controls{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-top:14px}
.seg{display:inline-flex;background:var(--bordeaux-2);border-radius:999px;padding:3px}
.seg button{border:0;background:transparent;color:#F3D9A0;font:inherit;font-size:14.5px;padding:7px 15px;border-radius:999px;cursor:pointer}
.seg button[aria-pressed="true"]{background:var(--or);color:var(--bordeaux);font-weight:500}
.step{width:36px;height:36px;border-radius:999px;border:0;background:var(--bordeaux-2);color:var(--or);font-size:20px;line-height:1;cursor:pointer}
.step:disabled{opacity:.35;cursor:default}
.band :focus-visible{outline-color:var(--or)}
.sync{display:flex;align-items:center;gap:7px;color:#EBCBD0;font-size:13.5px;margin-left:auto}
.sync i{width:7px;height:7px;border-radius:50%;background:#8FD3AE;flex:none}
.sync.retard i{background:#F2C14E}
.sync.ko{color:#fff;font-weight:600}
.sync.ko i{background:#E5484D;box-shadow:0 0 0 3px rgba(229,72,77,.35)}
.banniere-ko{margin:14px 0 0;padding:14px 16px;border-radius:10px;background:#FDECEC;color:#8A1F1F;border:1px solid #F3B7B7;font-size:14.5px;line-height:1.45}
@media (max-width:560px){.sync{margin-left:0;width:100%}}

.wrap{max-width:1180px;margin:0 auto;padding:0 14px 48px}

/* Grilles */
.grid{display:grid;gap:14px;margin-top:14px}
@media (min-width:900px){
  .hero{grid-template-columns:390px minmax(0,1fr)}
  .duo{grid-template-columns:repeat(2,minmax(0,1fr))}
}
.stack{display:flex;flex-direction:column;gap:14px;min-width:0}
.panel{background:var(--surface);border-radius:14px;padding:16px 18px;min-width:0}
.panel h2{font-family:"Marcellus",Georgia,serif;font-weight:400;font-size:18px;margin:0;letter-spacing:.01em}
.panel .sub{color:var(--ink-2);font-size:13.5px;margin:2px 0 14px}

/* L'addition */
.ticket{position:relative;background:var(--surface);border-radius:0 0 0 0;padding:22px 20px 0;margin-bottom:10px;align-self:start;border-top:3px solid var(--or)}
.ticket::after{content:"";position:absolute;left:0;right:0;top:100%;height:10px;
  background:linear-gradient(135deg,var(--bordeaux) 25%,transparent 25%) -10px 0/20px 20px repeat-x,
             linear-gradient(225deg,var(--bordeaux) 25%,transparent 25%) -10px 0/20px 20px repeat-x}
.ticket h1{font-family:"Marcellus",Georgia,serif;font-weight:400;font-size:27px;line-height:1.15;margin:0;text-wrap:balance}
.ticket h1:after{content:"";display:block;width:28px;height:1.5px;background:var(--bordeaux);margin-top:10px}
.ticket .when{color:var(--ink-2);font-size:13.5px;margin:8px 0 12px}
.row{display:flex;align-items:baseline;gap:8px;padding:8px 0 0}
.row .lbl{white-space:nowrap}
.row .lbl small{color:var(--ink-2);font-size:13px;margin-left:5px}
.row .lead{flex:1;min-width:14px;border-bottom:1.5px dotted var(--line);transform:translateY(-4px)}
.row .val{font-weight:500;white-space:nowrap}
.note{margin:2px 0 4px;color:var(--ink-2);font-size:13px}
.note .d{font-weight:500}
.total{margin:16px -20px 0;padding:16px 20px;background:var(--bordeaux);color:var(--or)}
.total .l{display:flex;justify-content:space-between;align-items:baseline;gap:10px;flex-wrap:wrap}
.total .big{font-family:"Marcellus",Georgia,serif;font-size:36px;line-height:1.1}
.total small{color:#EBCBD0;font-size:13px}

/* À traiter */
.todo{list-style:none;margin:0;padding:0}
.todo li{display:flex;align-items:center;gap:12px;padding:10px 0;border-top:1px solid var(--line)}
.todo li:first-child{border-top:0;padding-top:0}
.todo .src{flex:none;width:34px;height:34px;border-radius:50%;display:grid;place-items:center;background:var(--surface-2);color:var(--accent);font-size:13px;font-weight:500}
.todo .t{flex:1;min-width:0}
.todo .t b{font-weight:500;display:block}
.todo .t span{color:var(--ink-2);font-size:13px}
.btn{flex:none;border:1px solid var(--bordeaux);background:transparent;color:var(--accent);font:inherit;font-size:13.5px;padding:6px 12px;border-radius:999px;cursor:pointer}
@media (prefers-color-scheme: dark){:root:not([data-theme="light"]) .btn{border-color:var(--or)}}

/* Ratios */
.ratios{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
.ratio .k{font-size:13.5px;color:var(--ink-2)}
.ratio .v{font-family:"Marcellus",Georgia,serif;font-size:clamp(22px,6vw,30px);line-height:1.15}
.gauge{position:relative;height:5px;border-radius:3px;background:var(--surface-2);margin:8px 0 6px}
.gauge i{position:absolute;left:0;top:0;bottom:0;border-radius:3px;background:currentColor}
.gauge em{position:absolute;top:-4px;bottom:-4px;width:2px;background:var(--ink)}
.ratio small{color:var(--ink-2);font-size:12.5px}
.good{color:var(--good)}.warn{color:var(--warn)}.bad{color:var(--bad)}

/* Graphiques */
.chart svg{display:block}
.b{fill:var(--bar)} .b.hi{fill:var(--bar-hi)}
.axis{fill:var(--ink-2);font-size:11px;font-family:inherit}
.vlab{fill:var(--ink);font-size:11px;font-weight:500;font-family:inherit}
.target{stroke:var(--ink);stroke-width:1;stroke-dasharray:3 4}

/* Catégories */
.mix{display:flex;height:8px;border-radius:4px;overflow:hidden;margin:0 0 6px}
.mix i:first-child{background:var(--bar-hi)} .mix i:last-child{background:var(--drink)}
.mixleg{font-size:13.5px;color:var(--ink-2);margin:0 0 14px}
.cats{list-style:none;margin:0;padding:0;display:grid;gap:10px}
.cats li{display:grid;grid-template-columns:minmax(0,128px) 1fr 76px;align-items:center;gap:10px;font-size:14.5px}
.cats span:first-child{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.track{height:8px;background:var(--surface-2);border-radius:4px;overflow:hidden}
.track i{display:block;height:100%;background:var(--bar-hi)}
.cats li.drink .track i{background:var(--drink)}
.cats b{text-align:right;font-weight:500}

/* Alertes */
.alerts{list-style:none;margin:0;padding:0}
.alerts li{display:grid;grid-template-columns:1fr auto;gap:1px 12px;padding:11px 0;border-top:1px solid var(--line)}
.alerts li:first-child{border-top:0;padding-top:0}
.alerts .n{font-weight:500}
.alerts .f{color:var(--ink-2);font-weight:400;font-size:13px}
.alerts .p{font-weight:500;text-align:right}
.alerts .info{grid-column:1/-1;color:var(--ink-2);font-size:13px}

/* Tableau produits */
.tbl{overflow-x:auto;margin:0 -18px;padding:0 18px}
table{width:100%;border-collapse:collapse;font-size:14.5px;min-width:600px}
th{font-weight:400;color:var(--ink-2);text-align:right;padding:0 8px 8px;border-bottom:1px solid var(--line);font-size:13px}
td{padding:10px 8px;text-align:right;border-bottom:1px solid var(--line)}
th:first-child,td:first-child{text-align:left;padding-left:0}
tr:last-child td{border-bottom:0}
.flag{display:inline-block;margin-left:6px;padding:1px 8px;border-radius:999px;font-size:12px;color:var(--bad);background:color-mix(in srgb,var(--bad) 12%,transparent)}
.foot{color:var(--ink-2);font-size:13px;margin:18px 2px 0}
/* Module Groupes */
.days{list-style:none;margin:0;padding:0;display:grid;gap:18px}
.dh{display:flex;justify-content:baseline;align-items:baseline;gap:10px;flex-wrap:wrap}
.dh b{font-family:"Marcellus",Georgia,serif;font-size:17px;font-weight:400}
.dh span{color:var(--ink-2);font-size:13px;margin-left:auto}
.cap{height:5px;border-radius:3px;background:var(--surface-2);margin:8px 0 10px;overflow:hidden}
.cap i{display:block;height:100%;background:var(--bar-hi)}
.ev{border-left:3px solid var(--bordeaux);padding:2px 0 2px 12px;margin:10px 0}
.ev.option{border-left-color:var(--warn)} .ev.proposition{border-left-color:var(--line)}
.ev-h{display:flex;gap:8px;align-items:baseline;flex-wrap:wrap}
.ev-h b{font-weight:500}
.ev-m{color:var(--ink-2);font-size:13.5px}
.ev-r{font-size:13.5px;color:var(--accent);margin-top:2px}
.tag{font-size:12px;padding:1px 9px;border-radius:999px;background:color-mix(in srgb,var(--bordeaux) 10%,transparent);color:var(--accent);margin-left:auto;white-space:nowrap}
.tag.option{background:color-mix(in srgb,var(--warn) 14%,transparent);color:var(--warn)}
.tag.proposition{background:var(--surface-2);color:var(--ink-2)}
.prod{list-style:none;margin:0;padding:0}
.prod li{display:flex;justify-content:space-between;gap:12px;padding:9px 0;border-top:1px solid var(--line);font-size:14.5px}
.prod li:first-child{border-top:0;padding-top:0}
.prod b{font-weight:500} .prod span{color:var(--ink-2);text-align:right;font-size:13.5px}
.warn-line{margin:14px 0 0;padding:12px 14px;border-radius:10px;background:var(--surface-2);color:var(--ink-2);font-size:13.5px}
.beo{display:grid;gap:22px}
@media (min-width:900px){.beo{grid-template-columns:repeat(2,minmax(0,1fr))}}
.beo h3{font-family:"Marcellus",Georgia,serif;font-weight:400;font-size:15px;margin:0 0 8px;color:var(--accent)}
.tl{list-style:none;margin:0;padding:0}
.tl li{display:grid;grid-template-columns:64px 1fr;gap:10px;padding:7px 0;border-top:1px solid var(--line);font-size:14.5px}
.tl li:first-child{border-top:0}
.tl b{font-weight:500;color:var(--ink-2)}
.kv{list-style:none;margin:0 0 18px;padding:0}
.kv li{display:grid;grid-template-columns:minmax(0,120px) 1fr;gap:10px;padding:7px 0;border-top:1px solid var(--line);font-size:14.5px}
.kv li:first-child{border-top:0}
.kv span{color:var(--ink-2)} .kv b{font-weight:500}
.kpis{display:grid;gap:16px;grid-template-columns:repeat(auto-fit,minmax(150px,1fr))}
.kpi .k{font-size:13.5px;color:var(--ink-2)}
.kpi .v{font-family:"Marcellus",Georgia,serif;font-size:26px;line-height:1.2;margin:2px 0 2px}
.kpi small{color:var(--ink-2);font-size:12.5px}
.kanban{display:grid;gap:14px;grid-template-columns:repeat(auto-fit,minmax(210px,1fr))}
.col h3{font-size:13.5px;font-weight:500;color:var(--ink-2);margin:0 0 10px}
.col h3 span{display:inline-block;margin-left:4px;padding:0 7px;border-radius:999px;background:var(--surface-2);font-size:12px}
.card{background:var(--surface-2);border-radius:10px;padding:11px 12px;margin-bottom:8px;display:grid;gap:2px}
.card b{font-weight:500;font-size:14.5px}
.card span{color:var(--ink-2);font-size:13px}
.card .m{color:var(--ink);font-size:14px}
.card .exp{color:var(--warn);font-size:12.5px}
.ref{display:block;color:var(--ink-2);font-size:12.5px}

/* Dossier client, CRM */
.linkbtn{border:0;background:transparent;color:var(--accent);font:inherit;font-size:13.5px;cursor:pointer;padding:0;text-decoration:underline;text-underline-offset:3px}
.card .linkbtn{justify-self:start;margin-top:4px}
dialog{border:0;border-radius:16px;padding:0;background:var(--surface);color:var(--ink);width:min(760px,94vw);max-height:88vh}
dialog::backdrop{background:rgba(30,6,12,.55)}
.dlg{padding:20px}
.dlg-h{display:flex;align-items:flex-start;gap:12px;margin-bottom:4px}
.dlg-h h2{font-family:"Marcellus",Georgia,serif;font-weight:400;font-size:22px;margin:0}
.dlg-h .x{margin-left:auto;border:0;background:var(--surface-2);color:var(--ink);width:32px;height:32px;border-radius:999px;font-size:17px;cursor:pointer;flex:none}
.dlg .sub{color:var(--ink-2);font-size:13.5px;margin:0 0 16px}
.dlg h3{font-family:"Marcellus",Georgia,serif;font-weight:400;font-size:15px;color:var(--accent);margin:18px 0 8px}
.mini{width:100%;min-width:0;border-collapse:collapse;font-size:14px}
.mini th{font-weight:400;color:var(--ink-2);font-size:12.5px;text-align:right;padding:0 6px 6px;border-bottom:1px solid var(--line)}
.mini td{padding:9px 6px;text-align:right;border-bottom:1px solid var(--line);vertical-align:top}
.mini th:first-child,.mini td:first-child{text-align:left;padding-left:0}
.mini tr:last-child td{border-bottom:0}
.chip{display:inline-block;padding:1px 9px;border-radius:999px;font-size:12px;white-space:nowrap}
.chip.ok{background:color-mix(in srgb,var(--good) 14%,transparent);color:var(--good)}
.chip.att{background:color-mix(in srgb,var(--warn) 15%,transparent);color:var(--warn)}
.chip.ret{background:color-mix(in srgb,var(--bad) 13%,transparent);color:var(--bad)}
.chip.neutre{background:var(--surface-2);color:var(--ink-2)}
.payline{display:flex;gap:8px;align-items:center;justify-content:flex-end;flex-wrap:wrap;margin-top:6px}
input,select,textarea{font:inherit;font-size:14px;color:var(--ink);background:var(--surface);border:1px solid var(--line);border-radius:8px;padding:7px 10px;width:100%}
input[type="date"]{width:auto}
.btn.plein{background:var(--bordeaux);border-color:var(--bordeaux);color:var(--or)}
.form{display:grid;gap:12px;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));margin-top:4px}
.form label{display:grid;gap:4px;font-size:13px;color:var(--ink-2)}
.form .full{grid-column:1/-1}
.clients{display:grid;gap:12px;grid-template-columns:repeat(auto-fit,minmax(240px,1fr))}
.cl{background:var(--surface-2);border-radius:12px;padding:14px;display:grid;gap:3px;align-content:start}
.cl b{font-weight:500;font-size:15px}
.cl span{color:var(--ink-2);font-size:13px}
.cl .val{color:var(--ink);font-size:14px;margin-top:4px}
.bar{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-bottom:14px}
.bar input{max-width:280px}
.aging{display:grid;gap:10px;margin-top:18px}
.aging .ab{display:flex;height:22px;border-radius:6px;overflow:hidden;background:var(--surface-2)}
.aging .ab i{display:block;height:100%}
.aging .leg{display:flex;flex-wrap:wrap;gap:14px;font-size:13px;color:var(--ink-2)}
.aging .leg span{display:flex;align-items:center;gap:6px}
.aging .leg em{width:10px;height:10px;border-radius:3px;display:inline-block}
.relances{list-style:none;margin:0;padding:0}
.relances li{display:flex;gap:12px;align-items:center;flex-wrap:wrap;padding:13px 0;border-top:1px solid var(--line)}
.relances li:first-child{border-top:0;padding-top:0}
.relances .t{flex:1;min-width:190px}
.relances .t b{font-weight:500;display:block}
.relances .t span{color:var(--ink-2);font-size:13px}
.relances .mt{font-size:15px;white-space:nowrap}
.niv{font-size:12px;padding:1px 9px;border-radius:999px;background:var(--surface-2);color:var(--ink-2);white-space:nowrap}
.niv.att{background:color-mix(in srgb,var(--warn) 15%,transparent);color:var(--warn)}
.niv.ret{background:color-mix(in srgb,var(--bad) 13%,transparent);color:var(--bad)}
.mail{background:var(--surface-2);border-radius:10px;padding:14px;white-space:pre-wrap;font-size:14px;line-height:1.5;max-height:42vh;overflow:auto}

.dlg{overflow:auto;max-height:88vh}
.mini td,.mini th{overflow-wrap:anywhere}
@media (max-width:620px){
  .mini thead{display:none}
  .mini tr{display:grid;gap:2px;padding:11px 0;border-bottom:1px solid var(--line)}
  .mini td{border:0;text-align:left;padding:0}
  .mini tr:last-child{border-bottom:0}
  .payline{justify-content:flex-start}
  dialog{width:96vw}
}
/* Objectifs et anomalies */
.obj{display:grid;gap:14px}
.ob{display:grid;gap:5px}
.ob-h{display:flex;justify-content:space-between;align-items:baseline;gap:10px;font-size:14px}
.ob-h b{font-weight:500}
.ob-h span{color:var(--ink-2);font-size:13px}
.jauge{position:relative;height:9px;border-radius:5px;background:var(--surface-2);overflow:hidden}
.jauge i{position:absolute;left:0;top:0;bottom:0;border-radius:5px;background:var(--bar-hi)}
.jauge i.ok{background:var(--good)} .jauge i.ko{background:var(--bad)}
.ob small{color:var(--ink-2);font-size:12.5px}
.anos{list-style:none;margin:0;padding:0}
.anos li{display:grid;grid-template-columns:auto 1fr;gap:3px 11px;padding:11px 0;border-top:1px solid var(--line)}
.anos li:first-child{border-top:0;padding-top:0}
.anos .pt{width:9px;height:9px;border-radius:50%;margin-top:6px}
.anos .pt.h{background:var(--bad)} .anos .pt.m{background:var(--warn)} .anos .pt.b{background:var(--ink-2)}
.anos b{font-weight:500}
.anos li>span:not(.pt){grid-column:2;color:var(--ink-2);font-size:13px}
/* Planning */
.pl{overflow-x:auto;margin:0 -18px;padding:0 18px}
.plg{min-width:980px;border-collapse:collapse;width:100%;font-size:13.5px}
.plg th{font-weight:400;color:var(--ink-2);text-align:left;padding:0 6px 10px;border-bottom:1px solid var(--line);font-size:12.5px;vertical-align:bottom}
.plg th b{display:block;color:var(--ink);font-size:14px;font-weight:500}
.plg th .cv{color:var(--accent)}
.plg td{padding:7px 6px;border-bottom:1px solid var(--line);vertical-align:top}
.plg td:first-child{white-space:nowrap}
.plg .who b{font-weight:500;display:block;font-size:14px}
.plg .who span{color:var(--ink-2);font-size:12.5px}
.sh{display:block;background:color-mix(in srgb,var(--bordeaux) 8%,transparent);border-left:2px solid var(--bordeaux);border-radius:0 6px 6px 0;padding:4px 7px;margin-bottom:4px;white-space:nowrap}
.sh.soir{background:color-mix(in srgb,var(--drink) 14%,transparent);border-left-color:var(--drink)}
.sh.off{background:var(--surface-2);border-left-color:var(--line);color:var(--ink-2)}
.tot{text-align:right;white-space:nowrap}
.tot b{font-weight:500} .tot span{display:block;color:var(--ink-2);font-size:12.5px}
.tot.over b{color:var(--warn)}
.legend{display:flex;gap:16px;flex-wrap:wrap;color:var(--ink-2);font-size:13px;margin-top:12px}
.legend em{display:inline-block;width:10px;height:10px;border-radius:3px;margin-right:6px}
.mine{display:grid;gap:10px}
.mine .d{display:grid;grid-template-columns:110px 1fr;gap:12px;align-items:center;padding:11px 0;border-top:1px solid var(--line)}
.mine .d:first-child{border-top:0}
.mine .d b{font-weight:500}
/* Hygiène */
.tasks{list-style:none;margin:0;padding:0}
.tasks li{display:flex;gap:12px;align-items:flex-start;padding:13px 0;border-top:1px solid var(--line)}
.tasks li:first-child{border-top:0;padding-top:0}
.tasks .t{flex:1;min-width:0}
.tasks .t b{font-weight:500;display:block}
.tasks .t span{color:var(--ink-2);font-size:13px}
.tasks .done b{color:var(--ink-2)}
.marks{display:flex;gap:6px;flex-wrap:wrap;margin-top:5px}
.mk{font-size:12px;padding:1px 9px;border-radius:999px;background:var(--surface-2);color:var(--ink-2)}
.mk.photo{background:color-mix(in srgb,var(--bordeaux) 10%,transparent);color:var(--accent)}
.mk.ok{background:color-mix(in srgb,var(--good) 14%,transparent);color:var(--good)}
.prog{height:8px;border-radius:4px;background:var(--surface-2);overflow:hidden;margin:4px 0 16px}
.prog i{display:block;height:100%;background:var(--good)}
.sign{color:var(--ink-2);font-size:13px;margin-top:14px;padding-top:12px;border-top:1px solid var(--line)}
.lab{background:var(--surface-2);border-radius:12px;padding:16px;max-width:320px;display:grid;gap:5px}
.lab .p{font-family:"Marcellus",Georgia,serif;font-size:19px}
.lab .l{display:flex;justify-content:space-between;gap:10px;font-size:13.5px}
.lab .l span{color:var(--ink-2)}
.lab .dlc{margin-top:6px;padding-top:8px;border-top:1px dashed var(--line);font-size:15px}
/* Connexion et rôles */
.login{display:grid;gap:16px}
@media(min-width:760px){.login{grid-template-columns:repeat(2,minmax(0,1fr))}}
.lg{background:var(--surface-2);border-radius:14px;padding:16px;display:grid;gap:10px;align-content:start}
.lg-h{font-family:"Marcellus",Georgia,serif;font-size:15px;color:var(--accent)}
.lg label{display:grid;gap:4px;font-size:13px;color:var(--ink-2)}
.wide{width:100%;justify-content:center}
.hint{color:var(--ink-2);font-size:12.5px;margin:2px 0 0}
.pin{display:flex;gap:10px;justify-content:center;margin:6px 0}
.pin span{width:13px;height:13px;border-radius:50%;background:var(--bordeaux);opacity:.25}
.pin span:nth-child(-n+2){opacity:1}
.pad{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}
.pad b{display:grid;place-items:center;height:44px;border-radius:10px;background:var(--surface);font-weight:400;font-size:17px}
.roles{display:flex;flex-wrap:wrap;gap:7px;margin-bottom:16px}
.rl{border:1px solid var(--line);background:transparent;color:var(--ink-2);font:inherit;font-size:13.5px;padding:6px 12px;border-radius:999px;cursor:pointer}
.rl.on{background:var(--bordeaux);border-color:var(--bordeaux);color:var(--or)}
.phone{background:var(--surface-2);border-radius:16px;padding:14px;display:grid;gap:8px}
.ph-h{font-family:"Marcellus",Georgia,serif;font-size:17px;display:flex;justify-content:space-between;align-items:baseline;gap:10px}
.ph-h span{font-family:"Jost",sans-serif;font-size:13px;color:var(--ink-2)}
.tile{background:var(--surface);border-radius:10px;padding:12px 14px;font-size:14.5px}
.hidden-list{color:var(--ink-2);font-size:13px;margin:14px 0 0}
.dot{font-size:15px}
.dot.full{color:var(--accent)} .dot.half{color:var(--warn)} .dot.none{color:var(--line)}
#matrix td,#matrix th{text-align:center}
#matrix td:first-child,#matrix th:first-child{text-align:left}
#matrix .on{background:color-mix(in srgb,var(--bordeaux) 6%,transparent)}
/* Application */
.flash{background:color-mix(in srgb,var(--good) 13%,transparent);color:var(--good);border-radius:10px;padding:11px 14px;margin:14px 0 0;font-size:14px}
.flash.err{background:color-mix(in srgb,var(--bad) 12%,transparent);color:var(--bad)}
.vide{color:var(--ink-2);font-size:14px;margin:6px 0}
form.inline{display:inline}
.btn[disabled]{opacity:.5;cursor:default}
.who-band{display:flex;align-items:center;gap:12px;color:#EBCBD0;font-size:13.5px;margin-left:auto;flex-wrap:wrap}
.who-band b{color:var(--or);font-weight:500}
.who-band a{color:#EBCBD0}
@media (max-width:720px){.who-band{margin-left:0;width:100%}}
.login-page{max-width:820px;margin:0 auto;padding:26px 14px 60px}
.login-logo{display:flex;align-items:center;gap:14px;justify-content:center;margin:6px 0 22px}
.login-logo img{height:64px}
.login-logo .word{font-family:"Marcellus",Georgia,serif;font-size:18px;letter-spacing:.16em;text-transform:uppercase;color:var(--accent)}
.comptes{list-style:none;margin:14px 0 0;padding:0;display:grid;gap:7px;font-size:13.5px;color:var(--ink-2)}
.comptes code{background:var(--surface-2);border-radius:5px;padding:1px 6px}

/* Navigation de période rendue côté serveur (liens plutôt que boutons) */
.seg a.segbtn{display:inline-block;padding:7px 15px;border-radius:999px;color:#F3D9A0;font:inherit;font-size:14.5px;text-decoration:none;white-space:nowrap}
.seg a.segbtn.on{background:var(--or);color:var(--bordeaux);font-weight:500}
a.step{display:inline-grid;place-items:center;text-decoration:none;color:var(--or)}
.controls+.controls{margin-top:8px}

/* Double authentification */
.etapes{margin:6px 0 14px 18px;padding:0;color:var(--ink-2);font-size:14px;line-height:1.55}
.etapes li{margin:6px 0}
.cle-totp{display:block;margin:8px 0;padding:10px 12px;border-radius:8px;background:var(--surface-2);color:var(--ink);font:500 17px/1.3 ui-monospace,Menlo,Consolas,monospace;letter-spacing:.06em;word-break:break-all;user-select:all}

/* Photos des checklists */
form.inline.photo{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
form.inline.photo label.btn{position:relative;overflow:hidden;cursor:pointer}
form.inline.photo input[type=file]{position:absolute;inset:0;opacity:0;cursor:pointer}
form.inline.photo label.btn:has(input:valid){background:var(--good);border-color:var(--good);color:#fff}
.vignette{width:64px;height:64px;object-fit:cover;border-radius:8px;border:1px solid var(--line);display:block}

/* Rapport d'installation */
.rapport{white-space:pre-wrap;font:13px/1.5 ui-monospace,Menlo,Consolas,monospace;background:var(--surface-2);padding:12px 14px;border-radius:8px;max-height:520px;overflow:auto;margin:0}
