/* Atelier – feuille de style (relance du déploiement du 09/11) */
/* Atelier Ambiance Bain – barre d'onglets en haut, une vue à la fois, grosses cibles tactiles */
:root{
  --bg:#F2F1EC; --surface:#FFFFFF; --ink:#1B1D1F; --muted:#585C62; --line:#D4D2CB;
  --bar:#1B1D1F; --bar-ink:#FFFFFF; --bar-soft:#34383D;
  --accent:#C2410C; --accent-ink:#FFFFFF; --accent-soft:#FFF1E8; --accent-text:#9A3412;
  --info:#1E3A8A; --info-soft:#DBE6FB; --ok:#166534; --ok-soft:#DCFCE7;
  --sans:'IBM Plex Sans',system-ui,-apple-system,'Segoe UI',sans-serif;
  --mono:'IBM Plex Mono',ui-monospace,Menlo,Consolas,monospace;
  color-scheme:light;
}
@media (prefers-color-scheme:dark){:root{
  --bg:#151618; --surface:#202226; --ink:#ECEDEE; --muted:#A3A7AD; --line:#3A3D42;
  --bar:#0C0D0E; --bar-soft:#2C2F33;
  --accent:#E0611F; --accent-soft:#3A2214; --accent-text:#FDBA8C;
  --info:#BFD3FB; --info-soft:#1F2D4A; --ok:#86EFAC; --ok-soft:#173222; color-scheme:dark}}
*{box-sizing:border-box}
html,body{margin:0}
body{background:var(--bg);color:var(--ink);font-family:var(--sans);font-size:16px;line-height:1.4}
button,input,select{font:inherit;color:inherit}
button{cursor:pointer}
[hidden]{display:none!important}
:focus-visible{outline:3px solid var(--accent);outline-offset:2px}
.mono{font-family:var(--mono);font-variant-numeric:tabular-nums}
.muted{color:var(--muted)}
.label{font-size:13px;font-weight:600;letter-spacing:.07em;text-transform:uppercase;color:var(--muted)}
.wrap{padding-left:max(16px,env(safe-area-inset-left,0px));padding-right:max(16px,env(safe-area-inset-right,0px))}

header.top{background:var(--bar);color:var(--bar-ink);padding-block:10px}
.in{max-width:1440px;margin:0 auto}
.top .in{display:flex;flex-wrap:wrap;align-items:center;gap:10px 20px}
.brand{display:flex;flex-direction:column}
.hublogo{width:40px;height:40px;border-radius:9px;flex:none;box-shadow:0 0 0 1px rgba(255,255,255,.18)}
.login-hub{display:flex;align-items:center;gap:14px;margin-bottom:6px}
.login-hub img{border-radius:14px}
.login-hub b{display:block;font-size:24px}
.login-hub span{font-size:14px}
.brand b{font-size:20px}
.brand span{font-size:12px;letter-spacing:.1em;color:#C9CCD1}
/* Écrans d'un module : onglets soulignés sous la barre noire */
.subtabs{background:var(--bg);border-bottom:2px solid var(--line)}
nav.tabs{display:flex;gap:4px;align-items:stretch;overflow-x:auto;scrollbar-width:none}
nav.tabs button{min-height:52px;padding:0 16px;border:none;border-bottom:3px solid transparent;margin-bottom:-2px;background:none;color:var(--muted);font-weight:500;font-size:16px;white-space:nowrap;border-radius:0}
nav.tabs button:hover{color:var(--ink)}
nav.tabs button[aria-selected="true"]{color:var(--ink);font-weight:700;border-bottom-color:var(--accent)}
.who{margin-left:auto;font-size:13px;color:#C9CCD1;display:flex;gap:8px;align-items:center}
.who button{background:none;border:1px solid #5C6066;color:#fff;border-radius:6px;padding:4px 10px;font-size:13px}
.count{display:inline-block;min-width:22px;padding:0 6px;margin-left:6px;border-radius:11px;background:var(--accent);color:#fff;font-size:13px;font-weight:700;text-align:center}
.demo{background:var(--accent-soft);color:var(--accent-text);font-size:14px;padding-block:8px}
.demo .in{display:flex;flex-wrap:wrap;gap:8px 16px;justify-content:space-between;align-items:center}
.demo button{background:none;border:1px solid currentColor;border-radius:6px;padding:4px 10px;color:inherit;font-size:13px}

main{padding-block:20px 40px}
.grid2{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,440px),1fr));gap:20px;align-items:start}
.card{background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:18px;display:flex;flex-direction:column;gap:14px;min-width:0}
.row{display:flex;flex-wrap:wrap;gap:10px;align-items:center}
.field{display:flex;flex-direction:column;gap:6px;min-width:0}
.field label{font-size:14px;font-weight:500}
input[type=text],input[type=number],input[type=email],input[type=password],select{height:52px;border-radius:8px;border:1px solid var(--line);background:var(--surface);padding:0 12px;font-size:17px;width:100%}
.dims{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.btn{min-height:52px;padding:0 18px;border-radius:10px;border:1px solid var(--line);background:var(--surface);font-weight:600}
.btn.primary{background:var(--accent);border-color:var(--accent);color:var(--accent-ink);font-size:19px;min-height:68px}
.btn.dark{background:var(--ink);border-color:var(--ink);color:var(--bg)}
.btn.ghost{background:transparent}
.btn:disabled{opacity:.45;cursor:not-allowed}
.chips{display:flex;flex-wrap:wrap;gap:8px}
.chip{min-height:44px;padding:0 14px;border-radius:22px;border:1px dashed var(--muted);background:transparent;font-family:var(--mono);font-size:15px}
.causes{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.causes button{min-height:58px;border-radius:10px;border:1px solid var(--line);background:var(--surface);text-align:left;padding:0 14px;font-weight:500}
.causes button[aria-pressed="true"]{background:var(--ink);color:var(--bg);border-color:var(--ink);font-weight:700}
.stepper{display:flex;align-items:center;gap:10px}
.stepper button{width:52px;height:52px;border-radius:8px;border:1px solid var(--line);background:var(--bg);font-size:24px}
.stepper output{font-size:24px;font-weight:700;min-width:28px;text-align:center}
.toggle{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:60px;border-radius:10px;border:2px solid var(--accent);background:var(--accent-soft);color:var(--accent-text);padding:0 16px;font-weight:700;width:100%}
.sw{width:54px;height:30px;border-radius:15px;background:var(--line);position:relative;flex-shrink:0;transition:background .15s}
.sw::after{content:"";position:absolute;top:3px;left:3px;width:24px;height:24px;border-radius:12px;background:#fff;transition:left .15s}
.toggle[aria-pressed="true"] .sw{background:var(--accent)}
.toggle[aria-pressed="true"] .sw::after{left:27px}
.piece{border:1px solid var(--line);border-radius:10px;padding:14px;display:flex;flex-direction:column;gap:8px;background:var(--bg)}
.piece .name{font-size:26px;font-weight:700}
.piece .dim{font-size:22px;font-weight:600}
.kv{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px 18px}
.kv div{display:flex;flex-direction:column}
.kv span:first-child{font-size:13px;color:var(--muted)}
.kv span:last-child{font-weight:600}
.col{font-size:15px;padding:4px 10px;border-radius:6px;border:2px solid var(--ink);background:var(--surface)}
.col b{font-size:22px}
.chants{display:grid;grid-template-columns:auto auto auto;justify-content:center;grid-template-areas:". t ." "l p r" ". b .";gap:4px 6px;align-items:center;justify-items:center;margin:2px 0}
.chants .top{grid-area:t}.chants .bottom{grid-area:b}.chants .left{grid-area:l;writing-mode:vertical-rl;transform:rotate(180deg)}.chants .right{grid-area:r;writing-mode:vertical-rl}
.ch{font-family:var(--mono);font-size:14px;color:var(--muted);white-space:nowrap}
.ch.on{color:var(--accent-text);font-weight:700;text-decoration:underline;text-underline-offset:3px}
.plan{grid-area:p;position:relative;border:1px dashed var(--muted);background:var(--surface);display:block}
.plan.bt{border-top:5px solid var(--accent)}.plan.bb{border-bottom:5px solid var(--accent)}.plan.bl{border-left:5px solid var(--accent)}.plan.br{border-right:5px solid var(--accent)}
.plan .d{position:absolute;font-size:13px;color:var(--muted)}
.plan .d1{top:4px;left:50%;transform:translateX(-50%)}
.plan .d2{left:6px;top:50%;transform:translateY(-50%)}
.chants.sm{justify-content:start;margin:6px 0 0;gap:2px 3px}
.chants.sm .ch{font-size:11px}.chants.sm .plan .d{display:none}
.chants.sm .plan.bt{border-top-width:4px}.chants.sm .plan.bb{border-bottom-width:4px}.chants.sm .plan.bl{border-left-width:4px}.chants.sm .plan.br{border-right-width:4px}
.bcwrap{display:flex;flex-direction:column;align-items:center;gap:2px;background:#fff;color:#000;border-radius:6px;padding:8px 10px 4px;align-self:flex-start;width:min(100%,320px)}
.bcwrap .bc{width:100%;height:60px;display:block}
.bcwrap span{font-size:15px;letter-spacing:.15em}
.bcwrap.sm{width:min(100%,260px);padding:6px 8px 2px;margin-top:6px}.bcwrap.sm .bc{height:44px}.bcwrap.sm span{font-size:12px}
.etq{container-type:inline-size;position:relative;width:100%;max-width:560px;aspect-ratio:1.6;background:#fff;color:#000;border-radius:8px;border:1px solid #bbb;font-family:Arial,Helvetica,sans-serif;overflow:hidden}
.etq>*{position:absolute;white-space:nowrap;font-size:3.9cqw;line-height:1}
.etq b{font-weight:700}
.e-meuble{left:8%;top:3%}
.e-ch{text-decoration:underline;text-underline-offset:.15em}
.e-c1{left:50%;top:3%;transform:translateX(-50%)}
.e-c2{left:50%;bottom:3%;transform:translateX(-50%) rotate(180deg)}
.e-c3{right:2.5%;top:60%;transform:translate(50%,-50%) rotate(90deg);transform-origin:center}
.e-c4{left:2.5%;top:60%;transform:translate(-50%,-50%) rotate(-90deg);transform-origin:center}
.e-bc{left:8%;top:10%;width:48%;height:19%}
.e-bc .bc{width:100%;height:100%;display:block}
.e-no{left:8%;width:48%;top:33%;text-align:center}
.e-cde{left:63%;top:10%;display:grid;grid-template-columns:auto auto;gap:1.6cqw 1.2cqw;align-items:baseline}
.e-cde b{font-size:5cqw}
.e-l{left:8%}
.e-v{left:20%}
.overlay{position:fixed;inset:0;background:rgba(0,0,0,.55);display:flex;align-items:center;justify-content:center;padding:16px;z-index:30}
.dlg{width:min(100%,560px);max-height:100%;overflow:auto}
.etqimg{width:100%;height:auto;border:1px solid var(--line);border-radius:6px;background:#fff;image-rendering:pixelated}
.home h1{font-size:26px;margin:4px 0}
.tiles{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,250px),1fr));gap:16px;margin-top:18px}
.tile{background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:20px;min-height:150px;display:flex;flex-direction:column;gap:8px;position:relative;text-align:left;font:inherit;color:inherit}
.tile:not(:disabled):hover{border-color:var(--accent)}
.tile b{font-size:21px}.tile .ic{font-size:30px;line-height:1}
.tile .tag{position:absolute;top:14px;right:14px;font-size:12px;font-weight:700;padding:3px 8px;border-radius:6px}
.tile.soon{opacity:.55;border-style:dashed;cursor:default}
.tag.n{background:var(--accent);color:#fff}.tag.al{background:#dc2626;color:#fff}.tag.s{background:var(--line);color:var(--ink)}
.crumb-btn{background:none;border:none;color:#C9CCD1;font-size:13px;letter-spacing:.06em;padding:0;cursor:pointer;text-decoration:underline;text-underline-offset:3px}
nav.tabs .home-btn{display:none}
.qcote{gap:10px}
.qmask{font-size:30px!important;height:64px!important;letter-spacing:.08em;max-width:320px}
.plan2d{min-height:260px;border:2px dashed var(--line);border-radius:10px;display:flex;align-items:center;justify-content:center;text-align:center;color:var(--muted);background:var(--bg);padding:16px}
.mchants{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.empty{border:2px dashed var(--line);border-radius:10px;padding:22px;text-align:center;color:var(--muted)}
.err{color:var(--accent-text);font-weight:600}

.group{display:flex;flex-direction:column;gap:8px;margin-bottom:14px}
.group h3{margin:6px 0 0;font-size:20px;display:flex;flex-wrap:wrap;align-items:baseline;gap:10px}
.item{background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:12px 14px;display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1.3fr) minmax(0,1.3fr) auto;gap:12px;align-items:center}
.item.urgent{border:2px solid var(--accent)}
.badge{display:inline-block;font-size:12px;font-weight:700;letter-spacing:.06em;padding:3px 8px;border-radius:6px;background:var(--accent);color:var(--accent-ink);margin-bottom:4px}
.match{border-radius:8px;padding:8px 12px;background:var(--info-soft);color:var(--info)}
.match.none{background:var(--bg);color:var(--muted)}
.actions{display:flex;flex-direction:column;gap:6px}
.actions .btn{min-height:48px;font-size:15px}
@media (max-width:820px){.item{grid-template-columns:1fr}.actions{flex-direction:row;flex-wrap:wrap}}

table{width:100%;border-collapse:collapse;font-size:15px}
th{text-align:left;font-size:12px;letter-spacing:.07em;text-transform:uppercase;color:var(--muted);padding:8px;border-bottom:2px solid var(--line)}
td{padding:10px 8px;border-bottom:1px solid var(--line)}
.scroll{overflow-x:auto}
.sleep{font-size:12px;font-weight:700;padding:3px 8px;border-radius:6px;border:1px solid var(--accent);color:var(--accent-text);background:var(--accent-soft);white-space:nowrap}
.loc{border-radius:10px;padding:12px 14px;background:var(--info-soft);color:var(--info);display:flex;flex-wrap:wrap;gap:10px;align-items:center;justify-content:space-between}
.loc b{font-size:20px}
.loc select{width:auto;height:44px;background:var(--surface)}
.seg{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.seg button{min-height:52px;border-radius:8px;border:1px solid var(--line);background:var(--surface);font-weight:500}
.seg button[aria-pressed="true"]{background:var(--ink);color:var(--bg);border-color:var(--ink);font-weight:700}

.kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,200px),1fr));gap:12px}
.kpi{background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:14px}
.kpi b{display:block;font-size:28px;font-variant-numeric:tabular-nums}
.bars{display:flex;flex-direction:column;gap:8px}
.bar{display:grid;grid-template-columns:minmax(0,170px) minmax(0,1fr) 70px;gap:10px;align-items:center;font-size:15px}
.bar .track{height:18px;border-radius:4px;background:var(--bg);overflow:hidden}
.bar .fill{display:block;height:100%;background:var(--accent)}
.bar .v{text-align:right;font-variant-numeric:tabular-nums;font-weight:600}
.login{max-width:440px;margin:40px auto}
.toast{position:fixed;left:50%;bottom:calc(20px + env(safe-area-inset-bottom,0px));transform:translateX(-50%);background:var(--ok-soft);color:var(--ok);border:1px solid var(--ok);border-radius:10px;padding:12px 18px;font-weight:700;z-index:20;max-width:calc(100% - 32px)}
.toast.bad{background:var(--accent-soft);color:var(--accent-text);border-color:var(--accent)}
@media (prefers-reduced-motion:reduce){*{transition:none!important}}
/* Poste quincaillerie : plans en grand, quincaillerie à droite */
.qbar{display:flex;align-items:center;gap:20px;flex-wrap:wrap;margin-bottom:12px}
.qbar .qmask{width:210px;font-size:28px;padding:6px 12px;margin:0}
.qinfo{display:flex;gap:22px;align-items:baseline;flex-wrap:wrap;margin-left:auto;font-size:16px}
.qref{font-size:24px}
.qlay{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:14px;align-items:stretch;height:calc(100vh - 240px);min-height:520px}
.qplans{display:flex;flex-direction:column;gap:10px;min-height:0}
.qseg{display:flex;gap:8px}
.qseg button{flex:1;min-height:52px;border-radius:10px;border:2px solid var(--line);background:var(--surface);font-weight:600;font-size:17px}
.qseg button.on{background:var(--ink);color:var(--bg);border-color:var(--ink)}
.qseg button:disabled{opacity:.45}
.qseg .all{flex:0 0 auto;padding:0 18px}
.qduo{display:grid;grid-template-columns:1fr 1fr;gap:10px;flex:1;min-height:0}
.qduo.un{grid-template-columns:1fr}
.qp{background:var(--surface);border:1px solid var(--line);border-radius:12px;display:flex;flex-direction:column;min-height:0}
.qp h3{margin:0;padding:10px 14px;font-size:16px;display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--line)}
.qpdf{flex:1;display:flex;align-items:center;justify-content:center;text-align:center;color:var(--muted);padding:16px;margin:10px;border:2px dashed var(--line);border-radius:10px;background:var(--bg)}
.qpdf{position:relative}
.qpdf img{position:absolute;inset:6px;width:calc(100% - 12px);height:calc(100% - 12px);object-fit:contain;background:#fff;border-radius:6px}
.qpdf img ~ span{visibility:hidden}
.qquinc{gap:10px;overflow:auto}
.bacs{display:grid;grid-template-columns:repeat(3,1fr);gap:6px}
.bac{border:1px solid var(--line);border-radius:8px;padding:6px 2px;font-size:12px;text-align:center;background:var(--surface);color:var(--muted);min-height:54px;display:flex;flex-direction:column;justify-content:center}
.bac.on{background:#FDE68A;border:2px solid #D97706;color:#1c1917;font-weight:700}
.bac .q{display:block;font-size:20px}
.qlst div{display:flex;justify-content:space-between;gap:8px;padding:7px 8px;background:#FEF3C7;color:#1c1917;border-radius:6px;margin-bottom:4px;font-size:14px}
.qok{margin-top:auto;background:#15803d;color:#fff;border-color:#15803d;min-height:54px;font-size:17px}
.qdlg{width:min(100%,780px)}
tr.on td{background:#FEF3C7;color:#1c1917}
tr.clic{cursor:pointer}
@media (max-width:1000px){.qlay{grid-template-columns:1fr;height:auto}.qpdf{min-height:55vh}}

/* Charge & personnel */
.ch-top{display:flex;justify-content:space-between;align-items:flex-end;gap:14px;flex-wrap:wrap;margin-bottom:12px}
.ch-kpis{display:flex;gap:8px;flex-wrap:wrap}
.ch-kpi{background:var(--surface);border:1px solid var(--line);border-radius:10px;padding:6px 12px;display:flex;flex-direction:column;min-width:120px}
.ch-kpi .label{font-size:11px}.ch-kpi b{font-size:20px;font-variant-numeric:tabular-nums;line-height:1.2}.ch-kpi .muted{font-size:12px}
.ch-hpp{max-width:170px}.ch-hpp input{height:42px}
.ch-tab th,.ch-tab td{padding-top:6px;padding-bottom:6px}
.ch-vues{display:flex;gap:8px;flex-wrap:wrap;margin:12px 0}
.chip.on{background:var(--ink);color:var(--bg);border-style:solid;border-color:var(--ink)}
.ch-tag{display:inline-block;padding:4px 10px;border-radius:14px;font-weight:600;font-size:14px;white-space:nowrap}
.ch-tag.ok{background:#DCFCE7;color:#14532d}.ch-tag.trop{background:#FFEDD5;color:#7c2d12}.ch-tag.manque{background:#FEE2E2;color:#7f1d1d}
.ch-tab input.ch-in{width:96px;height:36px;min-height:0;padding:2px 8px;margin:0;display:inline-block;vertical-align:middle}
.ch-svg{width:100%;height:auto;margin:8px 0}
.ch-svg .bar-r{fill:var(--ink)}.ch-svg .bar-f{fill:var(--accent);opacity:.55}
.ch-svg text{fill:var(--ink);font-size:13px}.ch-svg .t-s{font-weight:700}.ch-svg .t-p{fill:var(--muted);font-size:12px}
.ch-form{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:10px}
.chdlg{width:min(100%,1100px)}
/* Charge par poste */
.cp-tabs{display:flex;gap:8px;flex-wrap:wrap;margin-top:6px}
.cp-r{display:grid;grid-template-columns:190px 1fr 100px 170px;gap:12px;align-items:center;padding:2px 0;border-bottom:1px solid var(--line)}
.cp-n b{display:block}.cp-n span{font-size:12px;color:var(--muted)}
.cp-track{position:relative;height:22px}
.cp-cap{position:absolute;top:0;bottom:0;left:0;border:2px dashed var(--muted);border-radius:6px}
.cp-bar{position:absolute;top:4px;bottom:4px;left:0;border-radius:4px;display:flex;align-items:center;justify-content:flex-end;padding-right:6px}
.cp-bar i{font-style:normal;font-size:12px;font-weight:700;color:#111}
.cp-bar.ok{background:#4ade80}.cp-bar.warn{background:#fbbf24}.cp-bar.bad{background:#f87171}
.cp-v b{font-size:16px}.cp-v span{display:block;font-size:12px;color:var(--muted)}
b.cp-ok{color:#16a34a}b.cp-warn{color:#d97706}b.cp-bad,.cp-bad{color:#dc2626}
.cp-r .ch-tag{text-align:center}
.cp-leg{display:flex;gap:16px;flex-wrap:wrap;font-size:13px;color:var(--muted);margin-top:10px}
.cp-leg i{display:inline-block;width:14px;height:10px;border-radius:2px;margin-right:5px;vertical-align:middle}
.cp-leg i.cp-ok{background:#4ade80}.cp-leg i.cp-warn{background:#fbbf24}.cp-leg i.cp-bad{background:#f87171}.cp-leg i.cp-pt{border:2px dashed var(--muted)}
.cp-heat td{padding:6px 10px}.cp-heat td.c{text-align:center;font-weight:700}
.cp-heat td.ok{background:#DCFCE7;color:#14532d}.cp-heat td.warn{background:#FEF3C7;color:#78350f}.cp-heat td.bad{background:#FEE2E2;color:#7f1d1d}
.cp-heat th small{font-weight:400}
.cp-tot td{border-top:2px solid var(--line)}
.cp-calib{padding:10px 14px;border-radius:10px;margin:10px 0;font-size:14px}
.cp-calib.ok{background:#DCFCE7;color:#14532d}.cp-calib.warn{background:#FEF3C7;color:#78350f}
@media (max-width:800px){.cp-r{grid-template-columns:1fr 1fr}}
/* Opérations */
.op-bar{display:flex;gap:10px;flex-wrap:wrap;align-items:center;margin-bottom:10px}
.op-bar input[type=search]{flex:1;min-width:240px;height:44px}
.op-sel{height:40px!important;width:auto!important;padding:0 8px!important;font-size:15px!important}
.op-chk{display:flex;gap:6px;align-items:center;font-size:14px;white-space:nowrap}
.op-chk input{width:18px;height:18px}
.op-seg{display:flex;border:1px solid var(--line);border-radius:8px;overflow:hidden;background:var(--surface)}
.op-seg button{border:none;background:transparent;color:var(--ink);font:inherit;font-size:14px;padding:0 14px;min-height:42px;cursor:pointer}
.op-seg button+button{border-left:1px solid var(--line)}.op-seg button.on{background:var(--ink);color:var(--bg);font-weight:600}
table.op-l{width:100%;border-collapse:collapse;table-layout:fixed;min-width:980px}
.op-l th{font-size:12px;color:var(--muted);font-weight:600;text-align:left;padding:6px 8px;border-bottom:1px solid var(--line)}
.op-l td{padding:4px 8px;border-bottom:1px solid var(--line);vertical-align:middle;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:14px}
.op-l tr.op-g td{background:var(--bg);border-bottom:none;padding:14px 0 4px}
.op-tg{display:flex;align-items:center;gap:10px;background:var(--surface);border:1px solid var(--line);border-radius:10px;padding:8px 12px;width:100%;text-align:left;font:inherit;color:var(--ink);cursor:pointer}
.op-tg i{width:5px;height:20px;border-radius:3px;flex:none}.op-tg b{font-size:15px}.op-tg .muted{font-size:13px}
.op-tg .cv,.op-cv{width:20px;flex:none;color:var(--muted);font-size:13px;text-align:center}
button.op-cv{background:none;border:none;padding:0;cursor:pointer;min-height:28px}
.op-al{background:#dc2626;color:#fff;border-radius:5px;font-size:12px;font-weight:600;padding:2px 7px}
.op-l tr.op-p td{background:var(--surface);font-weight:500}
.op-nm{display:flex;align-items:center;gap:6px;min-width:0}
.op-tx{background:none;border:none;padding:0;font:600 15px var(--sans);color:var(--ink);cursor:pointer;text-align:left;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}
.op-ed{background:none;border:1px solid transparent;border-radius:6px;color:var(--muted);cursor:pointer;padding:2px 6px;flex:none}.op-ed:hover{border-color:var(--line);color:var(--ink)}
.op-dot{display:inline-block;width:9px;height:9px;border-radius:50%;margin-right:7px}
.op-sel.op-pill{height:30px!important;min-width:0;width:100%!important;border:none!important;border-radius:6px;font-weight:600;font-size:13px!important;text-align:center}
.op-d{height:32px!important;width:100%!important;font-size:14px!important;padding:0 6px!important;background:transparent!important;border:1px solid transparent!important;color:var(--ink)}
.op-d:hover,.op-d:focus{border-color:var(--line)!important}
.op-d.ret{color:#dc2626!important;font-weight:700}
.op-in{height:30px!important;width:100%!important;min-width:0;flex:1;font-size:14px!important;padding:0 6px!important;background:transparent!important;border:1px solid transparent!important;border-radius:6px;color:var(--ink)}
.op-in:hover,.op-in:focus{border-color:var(--line)!important;background:var(--surface)!important}
.op-in.b{font-weight:700}
.op-sq{width:15px;height:15px;border-radius:4px;border:2px solid var(--muted);flex:none}
.op-t.hit td{background:var(--accent-soft)}
.op-mini{background:none;border:1px solid var(--line);border-radius:6px;color:var(--muted);cursor:pointer;min-height:26px;padding:0 8px;font-size:13px;flex:none}
.op-mini:hover{color:var(--ink);border-color:var(--ink)}.op-mini.x:hover{color:#dc2626;border-color:#dc2626}
.op-add td{border-bottom:none!important;padding:2px 8px!important}
.op-lnk{background:none;border:none;color:var(--muted);cursor:pointer;font-size:13px;padding:4px 0}.op-lnk:hover{color:var(--accent)}
.op-av{display:flex;align-items:center;gap:8px;font-size:12px;color:var(--muted)}
.op-av div{flex:1;max-width:90px;height:7px;border-radius:4px;background:var(--line);overflow:hidden}.op-av i{display:block;height:100%;background:#22c55e}
/* Gantt */
.gantt{display:grid;grid-template-columns:minmax(220px,340px) 1fr;border:1px solid var(--line);border-radius:12px;overflow:hidden;background:var(--surface)}
.gcol{border-right:1px solid var(--line);min-width:0}
.gscroll{overflow-x:auto;position:relative}
.gin{position:relative}
.gl,.gt{height:34px;border-bottom:1px solid var(--line);box-sizing:border-box}
.gl{display:flex;align-items:center;gap:6px;padding:0 8px;min-width:0;font-size:13px}
.gl.head,.gt.head{height:30px;background:var(--bg);font-size:12px;color:var(--muted)}
.gl.g,.gt.g{height:42px;background:var(--bg)}
.gl.g .op-tg{padding:5px 8px;border-radius:8px}.gl.g .op-tg b{font-size:14px}
.gl.p{font-weight:600}.gl.p .op-tx{font-size:14px}
.gl .gw{margin-left:auto;color:var(--muted);font-size:12px;font-weight:400;flex:none;padding-left:6px}
.op-tx2{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}.op-tx2.b{font-weight:700}
.gt{position:relative}
.gh{position:absolute;top:0;height:30px;line-height:30px;padding-left:4px;font-size:12px;white-space:nowrap}
.gv{position:absolute;top:30px;bottom:0;width:1px;background:var(--line);opacity:.6;pointer-events:none}.gv.f{opacity:1;background:var(--muted)}
.gnow{position:absolute;top:0;bottom:0;width:2px;background:var(--accent);z-index:3;pointer-events:none}
.gnow span{position:absolute;top:2px;left:4px;font-size:11px;font-weight:700;color:var(--accent);white-space:nowrap}
.gb{position:absolute;top:8px;height:18px;border-radius:5px;overflow:hidden;font-size:11px;font-weight:700;display:flex;align-items:center;z-index:2;cursor:pointer}
.gb span{position:relative;padding-left:6px;white-space:nowrap}
.gb i{position:absolute;left:0;top:0;bottom:0;background:rgba(0,0,0,.28)}
.gb.t{top:11px;height:12px;cursor:grab;touch-action:none}.gb.t.parent{height:8px;top:13px;border-radius:2px}
.gb.drag{cursor:grabbing;opacity:.8;box-shadow:0 0 0 2px var(--ink)}
.gb.ret{box-shadow:inset 0 0 0 2px #dc2626}
.gd{position:absolute;top:10px;width:12px;height:12px;transform:rotate(45deg);background:#fff;border:2px solid #1c1917;z-index:4;pointer-events:none}
.gd.ret{background:#f87171}
.gnd{position:absolute;left:8px;top:9px;font-size:11px;color:var(--muted)}
.op-x{min-height:36px;padding:0 10px}
.op-dlg .row .op-titre{flex:1;width:auto!important}
/* Pannes machines */
.ar-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:12px;margin-bottom:22px}
.ar-m{display:flex;flex-direction:column;gap:4px;align-items:flex-start;text-align:left;padding:16px 18px;border-radius:14px;border:2px solid var(--line);background:var(--surface);color:var(--ink);font:inherit;cursor:pointer;min-height:130px}
.ar-m b{font-size:22px}.ar-m .ar-st{font-weight:700;font-size:16px}
.ar-m.on{border-color:#16a34a}.ar-m.on .ar-st{color:#16a34a}
.ar-m.off{background:#dc2626;border-color:#dc2626;color:#fff}.ar-m.off .ar-d{font-size:20px;font-weight:700}
.ar-head{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;margin:6px 0 10px}.ar-head h2{margin:0;font-size:20px}
.ar-r{display:grid;grid-template-columns:minmax(120px,190px) 1fr 80px 80px;gap:10px;align-items:center;padding:5px 0}
.ar-tr{height:14px;background:var(--line);border-radius:4px;overflow:hidden}.ar-tr div{height:100%;background:#dc2626}
.ar-dlg{width:min(100%,760px);gap:14px}
.ar-causes{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:8px}
.ar-c{display:flex;gap:10px;align-items:center;padding:14px;border-radius:10px;border:2px solid var(--line);background:var(--surface);color:var(--ink);font:600 16px inherit;text-align:left;cursor:pointer;min-height:60px}
.ar-c span{font-size:24px}.ar-c.on{border-color:#dc2626;background:#fee2e2;color:#7f1d1d}
.ar-go{background:#dc2626;color:#fff;border-color:#dc2626;min-height:64px;font-size:20px}.ar-go:disabled{opacity:.4}
.ar-ok{background:#16a34a;color:#fff;border-color:#16a34a;min-height:72px;font-size:22px}
.ar-dlg label{display:flex;flex-direction:column;gap:6px;font-size:14px;color:var(--muted)}.ar-dlg label input,.ar-dlg label select{width:100%;height:48px;font-size:17px;color:var(--ink)}

/* Polyvalence & affectations */
.pv-tabs{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:14px}
.pv-bar{display:flex;gap:12px;align-items:center;flex-wrap:wrap;margin-bottom:14px}
.pv-bar .ch-kpis{flex:1}
.pv-date{display:flex;flex-direction:column;font-size:12px;color:var(--muted);gap:4px}.pv-date input{height:44px;font-size:16px;padding:0 8px;border:1px solid var(--line);border-radius:8px;background:var(--surface);color:var(--ink)}
.pv-lay{display:grid;grid-template-columns:220px 1fr;gap:12px;align-items:start}
@media (max-width:760px){.pv-lay{grid-template-columns:1fr}}
.pv-abs{display:flex;flex-direction:column;gap:2px;padding:12px}
.pv-ck{display:flex;gap:10px;align-items:center;min-height:36px;font-size:15px;cursor:pointer}.pv-ck input{width:20px;height:20px}
.pv-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:10px}
.pv-card{background:var(--surface);border:2px solid var(--line);border-radius:12px;padding:10px;display:flex;flex-direction:column;gap:6px;min-height:120px}
.pv-card>b{font-size:16px}.pv-card>.muted{font-size:12px;margin-top:-4px}
.pv-card.nc{border-color:#dc2626}
.pv-p{display:flex;flex-direction:column;align-items:flex-start;text-align:left;padding:8px 10px;border-radius:8px;border:1px solid var(--line);background:var(--bg);color:var(--ink);font:500 15px var(--sans);min-height:40px;cursor:pointer}
.pv-p small{font-size:12px;font-weight:400;opacity:.9}
.pv-p.d{background:#1e40af;border-color:#1e40af;color:#fff}
.pv-p.f{background:#f59e0b;border-color:#f59e0b;color:#1c1917}
.pv-p.z{background:#dc2626;border-color:#dc2626;color:#fff}
.pv-vide{background:#fee2e2;color:#991b1b;border-radius:8px;padding:8px 10px;font-weight:600;font-size:14px}
.cp-leg i.pv-l0{background:var(--bg);border:1px solid var(--line)}.cp-leg i.pv-ld{background:#1e40af}.cp-leg i.pv-lf,.cp-leg i.pv-l1{background:#fbbf24}.cp-leg i.pv-lz,.cp-leg i.pv-lnc{background:#dc2626}
.cp-leg i.pv-l2{background:#4ade80}.cp-leg i.pv-l3{background:#15803d}.cp-leg i.pv-lh{border:2px solid var(--ink)}
.pv-m{border-collapse:collapse;font-size:14px;width:auto!important}
.pv-m th.pv-nm{text-transform:none;letter-spacing:0}
.pv-m th,.pv-m td{border:1px solid var(--line);padding:0}
.pv-m th.pv-nm,.pv-m td.pv-nm{padding:6px 8px;text-align:left;white-space:nowrap}
.pv-m th.rot{height:140px;width:32px;vertical-align:bottom;padding:6px 0}
.pv-m th.rot span{writing-mode:vertical-rl;transform:rotate(180deg);white-space:nowrap;font-weight:500;font-size:13px}
.pv-c{width:32px;min-width:32px;height:32px;text-align:center;font-weight:700;font-variant-numeric:tabular-nums}
td.pv-c[data-pvc]{cursor:pointer}td.pv-c[data-pvc]:hover{outline:2px solid var(--accent);outline-offset:-2px}
.pv-c.n0{color:var(--muted);font-weight:400}.pv-c.n1{background:#fbbf24;color:#1c1917}.pv-c.n2{background:#4ade80;color:#052e16}.pv-c.n3{background:#15803d;color:#fff}
.pv-c.hab{box-shadow:inset 0 0 0 3px var(--ink)}
.pv-c.tot{background:var(--surface)}
.pv-c.crit{background:#991b1b;color:#fff}.pv-c.frag{background:#fde68a;color:#78350f}.pv-c.okk{color:#16a34a}
.pv-sum td{font-weight:700;padding:6px 8px}
.pv-off td{opacity:.45}
.pv-lnk{background:none;border:none;padding:0;font:600 14px var(--sans);color:var(--ink);text-decoration:underline dotted;cursor:pointer}
.pv-dlg{width:min(100%,760px);display:flex;flex-direction:column;gap:12px}
.pv-dlg label{display:flex;flex-direction:column;gap:6px;font-size:14px;color:var(--muted)}.pv-dlg .op-chk{flex-direction:row}
.pv-dlg label input:not([type=checkbox]),.pv-dlg label select{height:46px;font-size:16px;color:var(--ink)}
.pv-choix{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:8px}
.pv-o{display:flex;flex-direction:column;align-items:flex-start;padding:10px;border-radius:10px;border:2px solid var(--line);background:var(--surface);color:var(--ink);font:inherit;cursor:pointer;min-height:58px;text-align:left}
.pv-o small{font-size:12px;color:var(--muted)}
.pv-o.n3{border-color:#15803d}.pv-o.n2{border-color:#4ade80}.pv-o.n1{border-color:#fbbf24}.pv-o.n0{opacity:.6}
.pv-o.on{background:var(--ink);color:var(--bg)}.pv-o.on small{color:var(--bg)}

/* Accueil par rubriques (chefs et direction) */
.rubs{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,520px),1fr));gap:18px;margin-top:18px}
.rub{background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:14px 16px}
.rub-h{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap;padding-bottom:8px}
.rub-h h2{margin:0;font-size:14px;letter-spacing:.08em;text-transform:uppercase}
.rub-h .muted{font-size:13px}
.tiles.sm{display:flex;flex-direction:column;gap:8px;margin-top:0}
.tiles.sm .tile{min-height:0;padding:10px 14px;display:grid;grid-template-columns:34px 1fr auto;grid-template-rows:auto auto;column-gap:12px;row-gap:0;align-items:center;background:var(--bg);border-radius:10px}
.tiles.sm .tile .ic{grid-column:1;grid-row:1 / span 2;font-size:26px}
.tiles.sm .tile b{grid-column:2;font-size:17px}
.tiles.sm .tile .muted{grid-column:2;font-size:13px;line-height:1.3}
.tiles.sm .tile .tag{position:static;grid-column:3;grid-row:1 / span 2;font-size:12px}
.rub-soon{margin-top:16px;display:flex;gap:14px;align-items:center;flex-wrap:wrap;color:var(--muted);font-size:14px}
.gl .op-tg{min-width:0}.gl .op-tg b{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}
.op-bar .btn{min-height:42px;font-size:14px;padding:0 14px}
.op-gh{display:flex;gap:6px;align-items:stretch}.op-gh .op-tg{flex:1;min-width:0}
.op-gm{flex:none;background:var(--surface);border:1px solid var(--line);border-radius:10px;color:var(--ink);font-size:18px;font-weight:700;padding:0 14px;cursor:pointer;min-height:36px}
.op-gm:hover{border-color:var(--accent)}
.gl.g .op-gm{border-radius:8px;padding:0 10px;min-height:30px}
.op-arc{background:var(--line);color:var(--ink);border-radius:5px;font-size:12px;padding:2px 7px}
.op-gdlg{width:min(100%,560px);display:flex;flex-direction:column;gap:12px}
.op-gdlg label{display:flex;flex-direction:column;gap:6px;font-size:14px;color:var(--muted)}
.op-gdlg label input{height:46px;font-size:17px;color:var(--ink);border:1px solid var(--line);border-radius:8px;background:var(--surface);padding:0 12px;text-transform:uppercase}
.op-pal{display:flex;gap:8px;flex-wrap:wrap}.op-pal button{width:36px;height:36px;border-radius:8px;border:2px solid transparent;cursor:pointer}.op-pal button.on{border-color:var(--ink);box-shadow:0 0 0 2px var(--bg) inset}
.op-x:disabled{opacity:.4;cursor:not-allowed}
/* Bouton Accueil */
.homebtn{display:flex;align-items:center;gap:8px;min-height:52px;padding:0 18px;border:none;border-radius:10px;background:#FFFFFF;color:#1B1D1F;font:inherit;font-size:16px;font-weight:700;cursor:pointer}
.homebtn span{font-size:20px;line-height:1}
.homebtn:hover{background:#E6E5E0}
.hsep{width:1px;align-self:stretch;margin:6px 0;background:#3A3D42}
@media (max-width:600px){.hsep{display:none}}
/* Sélecteur de site (menu déroulant) */
.sitepick{position:relative}
#sitebtn{display:flex;align-items:center;gap:10px;min-height:52px;padding:4px 14px;border:1px solid #5C6066;border-radius:10px;background:transparent;color:#fff;font:inherit;font-size:16px;cursor:pointer;text-align:left}
#sitebtn:hover{border-color:#9AA0A6}
#sitebtn small{display:block;font-size:11px;letter-spacing:.1em;color:#A3A7AD;line-height:1.1}
img.drap{width:22px;height:15px;object-fit:cover;border-radius:2px;vertical-align:-2px;box-shadow:0 0 0 1px rgba(0,0,0,.15);flex:none}img.drap.logo{width:20px;height:20px;border-radius:5px;object-fit:contain;box-shadow:none}#sitebtn .car{font-size:12px;opacity:.8}
.sitemenu{position:absolute;top:calc(100% + 6px);left:0;z-index:40;min-width:260px;background:var(--surface);color:var(--ink);border:1px solid var(--line);border-radius:10px;box-shadow:0 10px 28px rgba(0,0,0,.22);padding:6px;display:flex;flex-direction:column}
.sitemenu button{display:flex;align-items:center;gap:10px;min-height:48px;padding:0 12px;border:none;border-radius:8px;background:none;color:var(--ink);font:inherit;font-size:16px;text-align:left;cursor:pointer}
.sitemenu button:hover{background:var(--bg)}
.sitemenu button.on{background:var(--bg);font-weight:700}
.sitemenu .ok{margin-left:auto;color:var(--accent)}
.rg-t td{padding:4px 6px}
/* Envois Tunisie → France */
.ev-camions{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:12px}
.ev-cam{display:flex;flex-direction:column;align-items:flex-start;gap:2px;padding:8px 12px;border-radius:10px;border:2px solid var(--line);background:var(--surface);color:var(--ink);font:inherit;cursor:pointer;text-align:left}
.ev-cam b{font-size:15px}.ev-cam span{font-size:12px;color:var(--muted)}.ev-cam i{font-style:normal;font-weight:700}.ev-cam i.ko{color:#dc2626}.ev-cam i.ok{color:#16a34a}
.ev-cam.on{border-color:var(--accent);background:var(--accent-soft)}
.ev-scan{flex:1;height:52px!important;font-size:18px!important;border:2px solid var(--accent)!important;border-radius:8px;padding:0 12px;background:var(--surface);color:var(--ink)}
.ev-t td{vertical-align:middle}
.ev-cde td{background:var(--bg);padding-top:12px!important}
.ev-ok{background:#16a34a;color:#fff;border-radius:5px;font-size:12px;font-weight:600;padding:2px 7px}
.ev-manq td{background:rgba(220,38,38,.06)}
.ev-ck{width:30px;height:30px;border-radius:6px;border:2px solid var(--muted);background:transparent;color:#fff;font-weight:700;cursor:pointer}
.ev-ck.on{background:#16a34a;border-color:#16a34a}
.ev-qte{display:flex;align-items:center;gap:8px}.ev-qte b{min-width:22px;text-align:center;font-size:16px}
.ev-t .op-sel{min-width:170px}
.ev-txt{width:100%;font-family:var(--mono);font-size:13px;border:1px solid var(--line);border-radius:8px;background:var(--surface);color:var(--ink);padding:8px}
/* Rappel machine en panne */
.rp-ov{z-index:60;background:rgba(127,29,29,.6)}
.rp-dlg{width:min(100%,620px);background:#dc2626!important;border-color:#dc2626!important;color:#fff;display:flex;flex-direction:column;gap:14px}
.rp-m{display:flex;gap:14px;align-items:center;font-size:22px;line-height:1.3}.rp-m b{font-size:26px}.rp-ic{font-size:44px}
.rp-m span{display:block;font-size:15px;opacity:.9;margin-top:4px}
.rp-b{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.rp-b .btn{min-height:64px;font-size:18px;font-weight:700;border:none}
.rp-oui{background:#fff!important;color:#7f1d1d!important}.rp-non{background:#16a34a!important;color:#fff!important}
.rp-dlg hr{border:none;border-top:1px solid rgba(255,255,255,.4);width:100%;margin:0}
/* Tableau de bord groupe (Direction générale) */
.dg{margin:4px 0 10px}
.dg-hd{display:flex;flex-wrap:wrap;align-items:baseline;gap:8px 14px;margin-bottom:12px}
.dg-hd b{font-size:20px}.dg-btns{margin-left:auto;display:flex;flex-wrap:wrap;gap:6px}.dg-btns .btn{min-height:38px;font-size:14px;padding:0 12px}
.dg-al{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:12px}
.dg-al span{border-radius:999px;padding:5px 12px;font-weight:600;font-size:14px;border:1px solid}
.dg-al .r{background:#FDECEC;color:#991B1B;border-color:#F5B5B5}
.dg-al .o{background:#FEF3C7;color:#92400E;border-color:#F2D58A}
.dg-al .g{background:var(--ok-soft);color:var(--ok);border-color:transparent}
.dg-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
.dg-site{background:var(--surface);border:1px solid var(--line);border-radius:14px;overflow:hidden;display:flex;flex-direction:column}
.dg-h{font:inherit;font-size:17px;font-weight:700;color:inherit;background:none;border:none;border-bottom:1px solid var(--line);margin:0;padding:10px 14px;display:flex;justify-content:space-between;align-items:baseline;gap:8px;text-align:left;cursor:pointer;width:100%}
.dg-h:hover{color:var(--accent)}
.dg-h small{font-size:13px;color:var(--muted);font-weight:400}
.dg-k{display:grid;grid-template-columns:24px minmax(0,1fr) auto;gap:10px;align-items:center;padding:7px 14px;border:none;border-top:1px solid var(--line);background:none;color:inherit;font:inherit;text-align:left;width:100%;cursor:pointer}
.dg-h+.dg-k{border-top:none}
.dg-k:not(:disabled):hover{background:var(--bg)}.dg-k:disabled{cursor:default}
.dg-i{font-size:20px}.dg-t{font-size:15px;min-width:0}.dg-t small{display:block;color:var(--muted);font-size:13px;overflow-wrap:anywhere}
.dg-v{font-size:20px;font-weight:700;font-variant-numeric:tabular-nums;text-align:right;white-space:nowrap}
.dg-v.r{color:#dc2626}.dg-v.g{color:var(--ok)}.dg-v.o{color:#B45309}
.dg-v.na{font-size:13px;font-weight:500;color:var(--muted);border:1px dashed var(--line);border-radius:6px;padding:3px 8px}
.dg-row2{display:grid;grid-template-columns:1.4fr 1fr;gap:16px;margin-top:12px}
.dg-card{padding:12px 16px}
.dg-big{display:flex;gap:28px;margin:6px 0}.dg-big b{font-size:24px;display:block}.dg-big b.r{color:#dc2626}.dg-big span{color:var(--muted);font-size:13px}
.dg-pl{display:grid;grid-template-columns:10px minmax(0,1fr) auto;gap:10px;align-items:center;padding:6px 0;border:none;border-top:1px solid var(--line);background:none;color:inherit;font:inherit;font-size:15px;text-align:left;width:100%;cursor:pointer}
.dg-pl:hover{color:var(--accent)}
.dg-dot{width:10px;height:10px;border-radius:3px}
.dg-tag{font-size:12px;font-weight:700;padding:3px 8px;border-radius:6px;white-space:nowrap}.dg-tag.r{background:#dc2626;color:#fff}.dg-tag.o{background:#FEF3C7;color:#92400E}
@media (max-width:900px){.dg-grid,.dg-row2{grid-template-columns:1fr}}
.home:has(.dg) h1{font-size:20px;margin:0 0 4px}
.dg-ch{display:flex;flex-wrap:wrap;align-items:baseline;gap:6px 18px;margin-bottom:4px;font-size:14px;color:var(--muted)}
.dg-ch b{font-size:20px;color:var(--ink)}.dg-ch b.r{color:#dc2626}
.dg-pl,.dg-k,.dg-h{min-height:0}
.dg-top{display:flex;flex-wrap:wrap;align-items:center;gap:8px 12px;margin-bottom:12px}
.dg-top .dg-al{margin:0}.dg-top .dg-btns{margin-left:auto}
.dg-t small{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
main:has(.dg){padding-bottom:12px}
@media (max-width:900px){.dg-t small{white-space:normal}}
/* Plan de charge */
.ch-planb{min-height:38px;font-size:14px;padding:0 12px;white-space:nowrap}
.ch-planb.ok{border-color:var(--ok);color:var(--ok)}
.ch-plan{width:min(100%,820px)}
.ch-cov{display:flex;flex-wrap:wrap;align-items:baseline;gap:6px 10px;padding:10px 0;border-bottom:1px solid var(--line);color:var(--muted);font-size:14px}
.ch-cov b{font-size:20px}.ch-cov b.ok{color:var(--ok)}.ch-cov b.ko{color:#B45309}
.ch-pl{display:grid;grid-template-columns:34px minmax(0,1fr) auto;gap:12px;align-items:center;padding:10px 0;border-bottom:1px solid var(--line)}
.ch-pl.off>div:nth-child(2){opacity:.6}
.ch-pl b{font-size:16px}.ch-pl small{display:block;color:var(--muted);font-size:13px;margin-top:2px}
.ch-ck{width:30px;height:30px;min-height:0;border-radius:7px;border:2px solid var(--line);background:none;color:#fff;font-weight:700;cursor:pointer;padding:0}
.ch-ck.on{background:var(--accent);border-color:var(--accent)}
.ch-pm{display:flex;align-items:center;gap:6px;white-space:nowrap}
.ch-pm .btn{min-height:36px;width:36px;padding:0;font-size:18px}
.ch-pm b{min-width:92px;text-align:center}
@media (max-width:600px){.ch-pl{grid-template-columns:34px minmax(0,1fr)}.ch-pm{grid-column:2}}
/* Indicateurs */
.home-hd{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px}.home-adm{display:flex;gap:6px}.home-adm .btn{min-height:38px;font-size:14px;padding:0 12px}
.ind-top{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;margin-bottom:12px}
.ind-kp{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-bottom:14px}
.ind-k{display:flex;flex-direction:column;gap:2px;text-align:left;font:inherit;color:inherit;background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:12px 14px;cursor:pointer;min-height:0}
.ind-k:not(:disabled):hover{border-color:var(--accent)}
.ind-k b{font-size:28px;font-variant-numeric:tabular-nums}.ind-k small{color:var(--muted);font-size:13px}
.ind-k b.r{color:#dc2626}.ind-k b.o{color:#B45309}.ind-k b.g{color:var(--ok)}
.ind-k.soon{border-style:dashed;opacity:.7;cursor:default}.ind-k.soon b{font-size:18px;color:var(--muted)}
.ind-s{padding:12px 16px;margin-bottom:14px}
.ind-sh{display:flex;justify-content:space-between;align-items:center;margin-bottom:6px}
.lnk{background:none;border:none;color:var(--accent);font:inherit;font-weight:600;font-size:14px;cursor:pointer;min-height:0;padding:0}
.ind-r{display:flex;justify-content:space-between;gap:10px;padding:6px 0;border-top:1px solid var(--line);font-size:15px}
.ind-g2{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.ind-bars{position:relative;display:flex;align-items:flex-end;gap:4px;height:150px;padding-bottom:18px;margin-top:6px}
.ind-bars div{flex:1;height:100%;display:flex;flex-direction:column;justify-content:flex-end;align-items:center;position:relative}
.ind-bars i{display:block;width:100%;border-radius:3px 3px 0 0;background:#3b82f6}
.ind-bars i.g{background:#16a34a}.ind-bars i.o{background:#d97706}.ind-bars i.r{background:#dc2626}
.ind-bars span{position:absolute;bottom:-18px;font-size:11px;color:var(--muted)}
.ind-bars em{position:absolute;left:0;right:0;border-top:1px dashed var(--ok);font-size:11px;font-style:normal;color:var(--ok);text-align:right;margin-bottom:18px}
.ind-bars em.b{border-color:#d97706;color:#d97706}
@media (max-width:700px){.ind-g2{grid-template-columns:1fr}}
.ind-s{gap:0}
.ind-kp.k4{grid-template-columns:repeat(4,minmax(0,1fr))}
@media (max-width:800px){.ind-kp{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:480px){.ind-kp{grid-template-columns:1fr}}
@media (max-width:800px){.ind-kp.k4{grid-template-columns:repeat(2,minmax(0,1fr))}}
/* Moules (Ma Prod) */
.mo-kp{grid-template-columns:repeat(5,minmax(0,1fr))}
.mo-bar1{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;margin-bottom:12px}
.mo-act{display:flex;gap:8px}
.mo-filt{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-bottom:10px}
.mo-filt input{flex:1;min-width:220px;height:46px}.mo-filt select{height:46px}
.mo-tab{width:100%}.mo-tab td{vertical-align:middle}
.mo-bar{display:inline-block;width:120px;height:10px;border-radius:5px;background:var(--line);overflow:hidden;vertical-align:middle}
.mo-bar i{display:block;height:100%}.mo-bar i.g{background:#16a34a}.mo-bar i.o{background:#d97706}.mo-bar i.r{background:#dc2626}
.mo-st{display:inline-block;border-radius:999px;padding:3px 10px;font-size:12px;font-weight:700;white-space:nowrap}
.mo-st.g{background:var(--ok-soft);color:var(--ok)}.mo-st.o{background:#FEF3C7;color:#92400E}.mo-st.r{background:#FDECEC;color:#991B1B}.mo-st.k{background:#1B1D1F;color:#fff}.mo-st.x{background:var(--line);color:var(--ink)}
.mo-r{color:#dc2626;font-weight:600}
.mo-row{display:grid;grid-template-columns:minmax(0,1.4fr) 180px 110px minmax(0,1fr) 90px;gap:10px;align-items:center;width:100%;text-align:left;font:inherit;color:inherit;background:none;border:none;border-top:1px solid var(--line);padding:8px 0;cursor:pointer;min-height:0}
.mo-row:hover b{color:var(--accent)}
.mo-f{display:flex;flex-direction:column;gap:4px;font-size:14px;font-weight:500}
.mo-f input,.mo-f select{height:46px;font-size:16px;border:1px solid var(--line);border-radius:8px;padding:0 10px;background:var(--surface);color:var(--ink)}
.mo-g2{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.mo-sum{display:flex;flex-wrap:wrap;gap:6px 18px;padding:8px 0;border-bottom:1px solid var(--line);font-size:14px}
.mo-rep{display:flex;flex-direction:column;gap:8px;border:1px solid var(--line);border-radius:10px;padding:12px}
.mo-hist{display:flex;flex-direction:column;max-height:200px;overflow:auto}
.mo-hist div{display:grid;grid-template-columns:70px minmax(0,1fr) auto;gap:8px;padding:5px 0;border-top:1px solid var(--line);font-size:14px}
@media (max-width:900px){.mo-kp{grid-template-columns:repeat(2,minmax(0,1fr))}.mo-row{grid-template-columns:1fr 1fr}}
@media (max-width:600px){.mo-g2{grid-template-columns:1fr}}
.mo-row>span:nth-child(2){white-space:nowrap}.mo-row .mo-bar{width:110px}
.ind-r b.g{color:var(--ok)}.ind-r b.o{color:#B45309}.ind-r b.r{color:#dc2626}
/* Charge moules / demandes */
.mo-ch td,.mo-ch th{text-align:center}.mo-ch td:first-child,.mo-ch th:first-child{text-align:left}
.mo-c{border-radius:6px}.mo-c.g{background:var(--ok-soft)}.mo-c.o{background:#FEF3C7}.mo-c.r{background:#FDECEC}
.mo-c small{color:var(--muted)}
.mo-cc{text-align:left!important;font-size:14px;min-width:200px}
.mo-g{color:var(--ok);font-weight:600}
.mo-sm{min-height:32px;padding:0 10px;font-size:13px}
.mo-att{display:flex;flex-wrap:wrap;justify-content:space-between;gap:8px;align-items:center;padding:8px 0;border-top:1px solid var(--line)}
.mo-att select{height:40px}
.mo-dem{margin-bottom:10px;gap:10px}.mo-dem.att{border-color:#F2D58A}
.mo-dem select{height:40px}
.mo-wait{background:#FEF3C7;color:#92400E;border-radius:8px;padding:8px 12px;font-size:14px;margin:0}
#mo-imp{width:100%;font-family:var(--mono);font-size:14px;border:1px solid var(--line);border-radius:8px;padding:10px;background:var(--surface);color:var(--ink)}
a.btn{text-decoration:none;color:inherit;display:inline-flex;align-items:center;justify-content:center}
a.btn.primary{color:var(--accent-ink)}
.mo-dem select{width:auto;min-width:200px}
.mo-tot td{border-bottom:2px solid var(--line);background:var(--bg)}
/* Maintenance machines */
.mt-dlg{width:min(100%,720px)}
.mt-sem{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-bottom:6px}
.mt-sem .ind-k{cursor:default}.mt-sem .ind-k b{font-size:22px}
@media (max-width:700px){.mt-sem{grid-template-columns:repeat(2,minmax(0,1fr))}}
.mt-ca{display:grid;gap:6px}
.mt-ca label{display:grid;grid-template-columns:1fr 110px auto;gap:8px;align-items:center;margin:0}
.mt-ca input{height:40px}
.mt-tot{background:var(--accent-soft);border-radius:10px;padding:10px 12px;margin-top:10px;font-size:15px}
.mt-tot b{font-size:18px}.mt-tot small{color:var(--muted)}
.mt-prop{background:#FFF7ED;border:1px dashed #F59E0B;border-radius:12px;padding:10px 12px;margin-top:10px;font-size:14px}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]) .mt-prop{background:#2A2112}}
.mt-dlg label{display:flex;flex-direction:column;gap:6px;font-size:14px;color:var(--muted)}
.mt-dlg label input:not([type=checkbox]),.mt-dlg label select{width:100%;height:48px;font-size:16px;color:var(--ink);border:1px solid var(--line);border-radius:8px;background:var(--surface);padding:0 12px}
.mt-dlg label.row{flex-direction:row}
.mo-st.b{background:var(--info-soft);color:var(--info)}
.dg-mt{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;margin:4px 0 6px}
.dg-mtb{display:flex;flex-direction:column;align-items:flex-start;gap:0;text-align:left;font:inherit;color:inherit;background:var(--bg);border:1px solid var(--line);border-radius:8px;padding:5px 8px;cursor:pointer;min-height:0;line-height:1.25}
.dg-mtb b{font-size:12px}.dg-mtb span{font-size:15px;font-weight:700;font-variant-numeric:tabular-nums}.dg-mtb small{font-size:11px;color:var(--muted)}.dg-mtb small.r{color:#dc2626}
/* Achats groupe */
.ach-hd{display:flex;flex-wrap:wrap;gap:8px 16px;align-items:center;justify-content:space-between;margin-bottom:10px}
.ach-maj{font-size:13px}
.ach-filt{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin:4px 0 12px}
.ach-base{display:flex;gap:6px;align-items:center;font-size:14px;color:var(--muted)}
.ach-base select,.ach-mini{height:36px;border:1px solid var(--line);border-radius:8px;background:var(--surface);color:var(--ink);padding:0 8px;font-size:14px}
.ach-warn{background:#FFF7ED;border:1px solid #F59E0B;border-radius:10px;padding:8px 12px;font-size:14px}
.ach-big{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,2fr);gap:14px;margin-bottom:14px}
@media (max-width:900px){.ach-big{grid-template-columns:1fr}}
.ach-n{font-size:40px;font-weight:800;line-height:1.05;margin-top:6px;font-variant-numeric:tabular-nums}.ach-n small{font-size:18px;color:var(--muted);font-weight:600}
.ach-phr{font-size:14px;margin:6px 0 0}
.ach-k3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-top:10px}
.ach-k3>div{border:1px solid var(--line);border-radius:10px;padding:6px 10px}.ach-k3 b{display:block;font-size:18px}.ach-k3 small{color:var(--muted);font-size:12px}
.ach-tm{display:flex;flex-wrap:wrap;gap:4px;background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:8px;min-height:250px;align-content:stretch}
.ach-tm button{min-height:74px;border:0;border-radius:6px;color:#fff;text-align:left;padding:8px 10px;font:inherit;cursor:pointer;display:flex;flex-direction:column;justify-content:flex-start;gap:2px;overflow:hidden}
.ach-tm button b{font-size:13px;text-transform:uppercase;letter-spacing:.02em}.ach-tm button small{font-size:12px;opacity:.92}
.ach-tm .r1{background:#B91C1C}.ach-tm .r2{background:#EF4444}.ach-tm .n0{background:#9CA3AF}.ach-tm .v1{background:#22C55E}.ach-tm .v2{background:#15803D}
.up{color:#dc2626;font-weight:700}.dn{color:#15803D;font-weight:700}
.ach-row{font-size:14px}
.ach-side{grid-template-columns:minmax(0,2fr) minmax(0,1fr)}
.ach-crumb{display:flex;flex-wrap:wrap;gap:6px;align-items:center;font-size:16px;margin-bottom:10px}
.ach-crumb input{margin-left:auto;min-width:260px;height:40px;border:1px solid var(--line);border-radius:8px;padding:0 12px;background:var(--surface);color:var(--ink);font-size:15px}
.lnk{background:none;border:0;padding:0;color:var(--accent);font:inherit;cursor:pointer;text-decoration:underline;min-height:0}
.ach-tab td,.ach-tab th{white-space:nowrap}.ach-tab td small{white-space:normal}
.ach-ref{background:var(--accent-soft);font-weight:700}
.ach-abc{font-size:11px;font-weight:700;border-radius:4px;padding:0 5px;margin-left:4px}.ach-abc.A{background:#1B1D1F;color:#fff}.ach-abc.B{background:#E5E7EB;color:#374151}.ach-abc.C{background:#F3F4F6;color:#9CA3AF}
.ach-sp{display:block}
.ach-file{cursor:pointer}
.ach-map{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:8px}
.ach-map label{display:flex;flex-direction:column;gap:4px;font-size:13px;color:var(--muted)}
.ach-map select{height:40px;border:1px solid var(--line);border-radius:8px;background:var(--surface);color:var(--ink);padding:0 8px;font-size:14px}
.ach-sum{font-size:15px;margin:10px 0}
.ach-side{display:grid;gap:14px;align-items:start}
@media (max-width:900px){.ach-side{grid-template-columns:1fr}}
select.ach-mini{width:auto;display:inline-block;height:30px;margin:0 4px}

/* Taille d'affichage (A− / A+) et impression toujours à 100 % */
.taille{display:inline-flex;align-items:center;gap:2px;margin-right:6px}
.taille button{min-width:34px;font-weight:700}
.taille span{min-width:46px;text-align:center;font-size:12px;color:#A3A7AD}
@media (max-width:600px){.taille span{display:none}}
@media print{html{zoom:1!important}}
.ach-cum td{background:var(--soft,rgba(127,127,127,.08))}
.ach-mvbar{gap:10px;margin:6px 0 10px;flex-wrap:wrap;align-items:center}.ach-mvbar label{display:flex;gap:6px;align-items:center}
.ach-rep{color:#ea580c;font-weight:600}.ach-rep small{font-weight:400}span.ach-rep{font-size:12px;margin-left:4px}
.ach-dec{width:100%;font-size:12.5px;margin-top:6px;border-collapse:collapse}.ach-dec td{padding:2px 0;color:var(--muted,#888)}.ach-dec td:last-child{text-align:right;font-weight:600;color:inherit}
.ach-big>div:last-child{display:flex;flex-direction:column}.ach-big>div:last-child>.ach-tm{flex:1}

.ach-note{font-size:12.5px;margin-top:6px;cursor:help}
.ach-big .ach-tm{max-height:420px;min-height:200px}
.ach-b4{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.ach-b4 .card{padding:10px 14px}.ach-b4 b{display:block;font-size:30px;font-weight:800;margin:2px 0}.ach-b4 small{font-size:12.5px;color:var(--muted);line-height:1.45;display:block}.ach-b4 small b{display:inline;font-size:inherit;margin:0}
.ach-taux{font-size:13px;margin:8px 0 12px}.ach-taux input{width:80px;padding:3px 6px;font:inherit}
.ach-b2{display:grid;grid-template-columns:1.25fr 1fr;gap:12px;margin-bottom:12px}.ach-b3{display:grid;grid-template-columns:1fr 1fr .8fr;gap:12px}
@media (max-width:900px){.ach-b4,.ach-b2,.ach-b3{grid-template-columns:1fr}}
.ach-svg{width:100%;height:auto;display:block}.ach-svg text{font-size:11px;fill:var(--muted,#888)}.ach-svg text.fin{font-size:13px;font-weight:800;fill:currentColor}.ach-svg line.g{stroke:var(--line,#eee)}
.ach-leg{display:flex;flex-wrap:wrap;gap:12px;font-size:12px;color:var(--muted)}.ach-leg i{display:inline-block;width:20px;height:3px;vertical-align:middle;margin-right:5px}.ach-leg i.pt{background:repeating-linear-gradient(90deg,currentColor 0 4px,transparent 4px 7px)}
.ach-bf{width:100%;border-collapse:collapse;font-size:13px}.ach-bf td{padding:4px 4px}.ach-bf td:first-child{white-space:nowrap;max-width:150px;overflow:hidden;text-overflow:ellipsis}.ach-bfz{position:relative;height:14px;width:190px}.ach-bfz span{position:absolute;top:2px;height:10px;border-radius:2px}.ach-bfz span.r{background:#dc2626}.ach-bfz span.v{background:#16a34a}.ach-bfz i{position:absolute;top:-2px;width:3px;height:18px;background:#2563eb}
.ach-codir{border:2px solid currentColor}.ach-cl{display:flex;justify-content:space-between;gap:8px;padding:5px 0;border-bottom:1px solid var(--line);font-size:14px}.ach-cl i{display:inline-block;width:10px;height:10px;border-radius:50%;margin-right:6px}.ach-cl i.v{background:#16a34a}.ach-cl i.o{background:#ea580c}.ach-cl i.r{background:#dc2626}
.ach-b3.deux{grid-template-columns:1fr 1fr}
.pv-ro{font-size:9px;font-weight:800;margin-left:1px;padding:0 2px;border-radius:3px;vertical-align:super}.pv-ro.rT{background:#1d4ed8;color:#fff}.pv-ro.rS{background:#7c3aed;color:#fff}.pv-ro.rO{background:#9ca3af;color:#111}
.pv-t td.pv-nm{white-space:normal;min-width:240px;max-width:340px}

.mentions{font-size:11px;color:var(--muted);text-align:center;padding:10px 0 14px;opacity:.8}
@media print{.mentions{display:none}}
/* ---------- Pavé Projets : familles, validation, tableau, quoi de neuf, fil ---------- */
.op-fams{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin:0 0 10px}
.op-fam{border:1px solid var(--line);background:var(--surface);color:var(--ink);border-radius:99px;padding:7px 14px;font:inherit;font-size:14px;cursor:pointer;min-height:38px}
.op-fam.on{outline:2px solid var(--ink);outline-offset:1px;font-weight:600}
.fam,.op-fam.fam-op,.op-fam.fam-pr,.op-fam.fam-sg{border-color:transparent}
.fam{display:inline-block;border-radius:99px;padding:2px 9px;font-size:12px;white-space:nowrap;margin-left:6px;font-weight:500}
.fam-op{background:#DBE6FB;color:#1E3A8A}.fam-pr{background:#FFF1E8;color:#9A3412}.fam-sg{background:#CCFBF1;color:#115E59}
@media (prefers-color-scheme:dark){.fam-op{background:#1F2D4A;color:#BFD3FB}.fam-pr{background:#3A2214;color:#FDBA8C}.fam-sg{background:#123B36;color:#99F6E4}}
.op-badge{background:var(--accent);color:#fff;border-radius:99px;padding:1px 7px;font-size:12px;font-weight:700;margin-left:4px}
.urg{display:inline-block;border:none;border-radius:6px;padding:3px 9px;font:inherit;font-size:13px;font-weight:600;white-space:nowrap}
button.urg{min-height:40px;padding:0 12px;cursor:pointer}
.u-urgent{background:#dc2626;color:#fff}.u-semaine{background:#F97316;color:#fff}.u-mois{background:#DBE6FB;color:#1E3A8A}.u-possible{background:#ECEAE4;color:#3F4247}
.u-av{background:#FEF3C7;color:#92400E}.u-rf{background:#ECEAE4;color:#585C62;text-decoration:line-through}.u-ur{background:transparent;padding:0}
.op-lieu{display:block;color:var(--muted);font-size:12px}
.op-conf{margin-left:6px}
tr.op-p.av td{opacity:.75}
.op-fl{border:none;background:none;color:var(--muted);font:inherit;font-size:13px;cursor:pointer;padding:4px 0;white-space:nowrap}.op-fl.nv{color:var(--accent-text);font-weight:700}
.op-val{padding:14px 16px;margin-bottom:12px;border-color:#F59E0B;display:flex;flex-direction:column;gap:10px}
.op-valh{display:flex;gap:10px;align-items:baseline;flex-wrap:wrap}
.op-valr{display:flex;gap:10px;align-items:center;flex-wrap:wrap;border-top:1px solid var(--line);padding-top:10px}
.op-valn{flex:1 1 280px;display:flex;flex-direction:column;gap:2px;text-align:left;border:none;background:none;color:inherit;font:inherit;cursor:pointer;min-width:0}
.op-valb{display:flex;gap:6px;flex-wrap:wrap;align-items:center}
.op-chk{display:flex!important;flex-direction:row!important;gap:10px;align-items:flex-start;min-height:44px;font-size:15px}
.op-chk input{width:22px;height:22px;flex:none;margin-top:2px}
.op-chk.dng{background:#FEF2F2;color:#991B1B;border-radius:8px;padding:10px}
@media (prefers-color-scheme:dark){.op-chk.dng{background:#3B1414;color:#FCA5A5}}
.op-ro{display:flex;align-items:center;min-height:44px}
.r{color:#b91c1c}.g{color:var(--ok)}
/* Vue tableau */
.kb{display:grid;grid-template-columns:repeat(4,minmax(240px,1fr));gap:12px;align-items:start;overflow-x:auto;padding-bottom:6px}
.kb-col{background:var(--bar-soft);background:color-mix(in srgb,var(--line) 45%,var(--bg));border-radius:12px;padding:10px;display:flex;flex-direction:column;gap:8px;min-height:120px}
.kb-col.over{outline:2px dashed var(--accent);outline-offset:-2px}
.kb-h{display:flex;align-items:center;gap:8px}.kb-h i{width:10px;height:10px;border-radius:5px;display:inline-block}
.kb-afaire{background:#8A8E94}.kb-cours{background:#1E3A8A}.kb-attente{background:#C2410C}.kb-fait{background:#166534}
.kb-card{background:var(--surface);border:1px solid var(--line);border-radius:10px;padding:10px 12px;display:flex;flex-direction:column;gap:6px;cursor:grab}
.kb-card.drag{opacity:.4}
.kb-t{border:none;background:none;color:inherit;font:inherit;font-weight:600;text-align:left;padding:0;cursor:pointer;line-height:1.3}
.kb-m{display:flex;flex-wrap:wrap;gap:6px;align-items:center;font-size:13px}.kb-m .fam{margin-left:0}
.kb-f{display:flex;gap:8px;align-items:center;font-size:13px;flex-wrap:wrap}.kb-f span:first-child{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.kb-nv{color:var(--accent-text);font-weight:700}.kb-plus,.kb-vide{font-size:13px;padding:4px}
/* Quoi de neuf */
.nf-k{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px;margin-bottom:12px}
.nf-k .card{padding:12px 16px;display:flex;flex-direction:column;gap:2px}.nf-k b{font-size:28px}.nf-k small{color:var(--muted)}
.nf-g{display:flex;flex-wrap:wrap;gap:12px;align-items:flex-start}
.nf-feed{flex:999 1 560px;min-width:0;padding:12px 16px}.nf-ret{flex:1 1 300px;min-width:0;padding:12px 16px;display:flex;flex-direction:column;gap:6px}
.nf-r{display:flex;gap:12px;align-items:flex-start;width:100%;border:none;border-top:1px solid var(--line);background:none;color:inherit;font:inherit;text-align:left;padding:10px 0;cursor:pointer}
.nf-q{flex:none;width:86px;font-size:13px;color:var(--muted);padding-top:2px}
.nf-t{flex:none;border-radius:6px;padding:2px 8px;font-size:12px;font-weight:600}
.nf-at{background:var(--accent);color:#fff}.nf-com{background:#DBE6FB;color:#1E3A8A}.nf-new{background:#CCFBF1;color:#115E59}.nf-val{background:#DCFCE7;color:#166534}.nf-ref{background:#ECEAE4;color:#3F4247}
.nf-x{display:flex;flex-direction:column;gap:2px;min-width:0;font-size:14px}
.nf-rr{display:flex;justify-content:space-between;gap:8px;border:none;background:none;color:inherit;font:inherit;font-size:14px;text-align:left;padding:4px 0;cursor:pointer}
/* Fil de commentaires */
.op-fil{display:flex;flex-direction:column;gap:8px;border-top:1px solid var(--line);padding-top:12px;margin-top:4px}
.op-com{background:color-mix(in srgb,var(--line) 30%,var(--surface));border-radius:10px;padding:8px 10px}
.op-com.nv{background:var(--accent-soft)}
.op-com>div{display:flex;gap:8px;align-items:center;font-size:13px}.op-com>div .op-mini{margin-left:auto}
.op-com p{margin:4px 0 0;font-size:15px;line-height:1.45;overflow-wrap:anywhere}
.op-comin{display:flex;flex-direction:column;gap:4px}.op-comin textarea{font:inherit;border:1px solid var(--line);border-radius:8px;padding:10px;resize:vertical;background:var(--surface);color:var(--ink)}
.op-dlg textarea{font:inherit;border:1px solid var(--line);border-radius:8px;padding:10px;background:var(--surface);color:var(--ink)}
/* Demandes (comptes sans rôle chef) */
.op-demh{display:flex;flex-direction:row;gap:16px;align-items:center;flex-wrap:wrap;padding:16px;margin-bottom:12px}.op-demh>div{flex:1 1 300px}.op-demh p{margin:4px 0 0}
.op-big{min-height:56px;font-size:17px;padding:0 22px}
.op-dt{font-size:13px;letter-spacing:.07em;text-transform:uppercase;color:var(--muted);margin:16px 0 6px}
.op-drow{display:flex;gap:12px;align-items:center;width:100%;background:var(--surface);border:1px solid var(--line);border-radius:10px;padding:12px 14px;margin-bottom:8px;color:inherit;font:inherit;text-align:left;cursor:pointer;flex-wrap:wrap}
.op-dn{flex:1 1 260px;display:flex;flex-direction:column;gap:2px;min-width:0}
.op-st{border-radius:6px;padding:3px 9px;font-size:13px;font-weight:600}
.st-g{background:#FEF3C7;color:#92400E}.st-r{background:#ECEAE4;color:#585C62}.st-ok{background:#DCFCE7;color:#166534}.st-b{background:#DBE6FB;color:#1E3A8A}.st-o{background:#F3E8FF;color:#6B21A8}
.op-dlg{display:flex;flex-direction:column;gap:12px;max-height:calc(var(--vh,100vh) - 32px);overflow-y:auto}
.op-champs{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:10px 12px}
.op-champs>label,.op-dlg>label:not(.op-chk),.op-note,.op-gdlg>label{display:flex;flex-direction:column;gap:4px;font-size:13px;color:var(--muted)}
.op-champs>label>input:not([type=checkbox]),.op-champs>label>select,.op-note>input,.op-dlg>label>input:not([type=checkbox]),.op-dlg>label>select,.op-gdlg>label>input{min-height:44px;width:100%;color:var(--ink);font-size:15px}
.op-champs>label.op-chk{align-self:end;color:var(--ink)}
.nf-rr b{white-space:nowrap}
.op-chk>span{flex:1;min-width:0}
.op-chk{white-space:normal}
.op-dlg>*{flex-shrink:0}
.op-dlg select{min-height:44px;width:100%}
/* Barre du pavé Projets, allégée */
.op-top{display:flex;align-items:flex-end;justify-content:space-between;gap:12px;border-bottom:2px solid var(--line);margin-bottom:12px;flex-wrap:wrap}
.op-tabs{display:flex;gap:2px;overflow-x:auto;scrollbar-width:none}
.op-tabs button{border:none;background:none;color:var(--muted);font:inherit;font-size:16px;font-weight:500;padding:10px 14px;min-height:46px;border-bottom:3px solid transparent;margin-bottom:-2px;cursor:pointer;white-space:nowrap}
.op-tabs button.on{color:var(--ink);font-weight:700;border-bottom-color:var(--accent)}
.op-new{position:relative;margin-bottom:6px}
.op-new summary{list-style:none;cursor:pointer;min-height:42px;display:inline-flex;align-items:center}.op-new summary::-webkit-details-marker{display:none}
.op-newm{position:absolute;right:0;top:calc(100% + 6px);z-index:20;background:var(--surface);border:1px solid var(--line);border-radius:10px;box-shadow:0 8px 24px rgba(0,0,0,.18);padding:6px;display:flex;flex-direction:column;min-width:250px}
.op-newm button{border:none;background:none;color:var(--ink);font:inherit;font-size:15px;text-align:left;padding:10px 12px;border-radius:8px;cursor:pointer;min-height:44px}.op-newm button:hover{background:var(--accent-soft)}
.op-filt{display:flex;flex-wrap:wrap;gap:10px;align-items:center;justify-content:space-between;margin-bottom:12px}
.op-filt .op-fams{margin:0}
.op-fam{padding:5px 12px;min-height:34px;font-size:13px}.op-fam span{opacity:.7;margin-left:2px}
.op-fr{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.op-fr input[type=search]{height:38px;width:200px;border:1px solid var(--line);border-radius:8px;padding:0 10px;background:var(--surface);color:var(--ink);font:inherit;font-size:14px}
.op-fr .op-sel{height:38px;font-size:14px}
.op-ico{width:38px;height:38px;border:1px solid var(--line);border-radius:8px;background:var(--surface);color:var(--ink);font-size:18px;cursor:pointer}
.op-new summary.btn{min-height:40px;height:40px;padding:0 16px;font-size:15px}
.op-quand{display:flex;gap:12px;align-items:flex-end;flex-wrap:wrap}
.op-quand>label:first-child{display:flex;flex-direction:column;gap:4px;font-size:13px;color:var(--muted);flex:1 1 180px}
.op-quand input[type=date]{min-height:44px;font-size:15px;color:var(--ink)}
.op-tot{border:1px solid var(--line);border-radius:8px;padding:0 14px;align-items:center!important;font-weight:600}
/* Fiche projet (refaite) : 2 colonnes, pied fixe, rien ne défile sur ordinateur */
.fp{width:min(100%,1100px);max-height:calc(var(--vh,100vh) - 32px);display:flex;flex-direction:column;padding:0!important;overflow:hidden;gap:0}
.fp-tete{display:flex;gap:10px;align-items:center;padding:14px 20px;border-bottom:1px solid var(--line)}
.fp-tete .fam{margin-left:0;flex:none}
.fp-titre{flex:1;min-width:0;font:700 20px var(--sans);min-height:44px;border:1px solid transparent;background:transparent;color:var(--ink);padding:0 8px;border-radius:8px}
.fp-titre:hover,.fp-titre:focus{border-color:var(--line);background:var(--surface)}
.fp-corps{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(0,1fr);flex:1;min-height:0}
.fp-gauche{padding:16px 20px;overflow-y:auto;display:flex;flex-direction:column;gap:14px}
.fp-droite{padding:12px 20px 16px;border-left:1px solid var(--line);overflow-y:auto;background:color-mix(in srgb,var(--line) 18%,var(--surface))}
.fp-droite .op-fil{border-top:none;margin:0;padding-top:4px}
.fp-g{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;align-items:end}
.fp-c{display:flex;flex-direction:column;gap:5px;min-width:0;margin:0}
.fp-c>span{font-size:12px;color:var(--muted);font-weight:600;letter-spacing:.04em;text-transform:uppercase}
.fp-c input,.fp-c select,.fp-c textarea{height:44px;min-height:44px;width:100%;box-sizing:border-box;font:inherit;font-size:15px;border:1px solid var(--line);border-radius:8px;padding:0 10px;background:var(--surface);color:var(--ink);margin:0}
.fp-c select.op-pill{font-weight:600}
.fp-c textarea{height:auto;padding:8px 10px;resize:vertical}
.fp-ro{height:44px;display:flex;align-items:center}
.fp-chk{display:flex;gap:10px;align-items:center;min-height:44px;font-size:15px;color:var(--ink);cursor:pointer}
.fp-chk input{width:22px;height:22px;flex:none;margin:0}
.fp-g .fp-chk{flex-direction:row;align-self:end;height:44px}
.fp-info{margin:0;font-size:14px;color:var(--muted)}
.fp-val{display:flex;gap:6px;flex-wrap:wrap;align-items:center;background:#FEF3C7;color:#92400E;border-radius:10px;padding:10px 12px}
.fp-val>span{font-weight:700;margin-right:4px}.fp-val .btn{height:40px;min-height:40px}
.fp-pied{display:flex;gap:10px;align-items:center;padding:12px 20px;border-top:1px solid var(--line);flex-wrap:wrap}
.fp-pied .btn{height:44px;min-height:44px;padding:0 18px;font-size:15px;display:inline-flex;align-items:center}
.fp-sp{flex:1}.fp-aide{font-size:13px}
.fp-rouge{background:#dc2626!important;color:#fff!important;border-color:#dc2626!important;font-weight:600}
.fp-sup{background:#FEF2F2;color:#991B1B}
@media (prefers-color-scheme:dark){.fp-sup{background:#3B1414;color:#FCA5A5}.fp-val{background:#3A2E0A;color:#FCD34D}}
@media (max-width:860px){.fp-corps{grid-template-columns:1fr;overflow-y:auto}.fp-gauche,.fp-droite{overflow:visible}.fp-droite{border-left:none;border-top:1px solid var(--line)}.fp-g{grid-template-columns:repeat(2,minmax(0,1fr))}.fp-aide{display:none}}
.fp-chk>span{text-transform:none!important;font-size:15px!important;color:var(--ink)!important;font-weight:500!important;letter-spacing:0!important}
.op-fil .btn{height:44px;min-height:44px;padding:0 20px;font-size:15px}
.fp-val .urg{min-height:40px;height:40px;padding:0 12px}
@media (max-width:860px){.fp-tete .fam{display:none}.fp-titre{font-size:17px}}
.fp-val{gap:5px}.fp-val .urg,.fp-val .btn{font-size:13px;padding:0 10px}
.fp-l3{grid-column:1/-1}
.fp-titre-ro{display:flex;align-items:center}
.fp-titre-ro:hover{border-color:transparent;background:transparent}
.fp-dng{background:#FEF2F2;border-radius:8px;padding:0 10px}.fp-dng>span{color:#991B1B!important}
@media (prefers-color-scheme:dark){.fp-dng{background:#3B1414}.fp-dng>span{color:#FCA5A5!important}}
.fp-aidebox{display:flex;flex-direction:column;gap:8px;font-size:14px;line-height:1.45}.fp-aidebox p{margin:0}
@media (max-width:860px){.fp-l3{grid-column:1/-1}}
/* Support du Hub */
.sup-txt{white-space:pre-line;border:1px solid var(--line);border-radius:8px;padding:10px 12px;background:var(--surface);font-size:15px;line-height:1.45;color:var(--ink)}
.sup-h{display:flex;justify-content:space-between;align-items:center;gap:8px;margin-bottom:8px}.sup-h select{height:36px;font-size:14px}
.sup-r{display:flex;gap:10px;align-items:center;width:100%;text-align:left;border:1px solid var(--line);background:var(--surface);color:inherit;font:inherit;border-radius:10px;padding:10px 12px;margin-bottom:8px;cursor:pointer}
.sup-r.on{outline:2px solid var(--accent);outline-offset:-1px}
.sup-rt{flex:1;display:flex;flex-direction:column;gap:2px;min-width:0;font-size:14px}
.sup-dlg{width:min(100%,760px)}.sup-corps{grid-template-columns:1fr}
.sup-ok{padding:18px 4px;display:flex;flex-direction:column;gap:6px;font-size:16px}.sup-ok p{margin:0}
.sup-page{display:flex;flex-wrap:wrap;gap:14px;align-items:flex-start}
.sup-l{flex:1 1 380px;min-width:0;padding:14px 16px}.sup-d{flex:999 1 520px;min-width:0;padding:16px 18px}
.sup-d .btn{height:44px;min-height:44px;padding:0 20px;font-size:15px}
#whoname{color:#fff;font-weight:600;margin-right:6px}
.dg-achh{display:flex;justify-content:space-between;gap:10px;width:100%;border:none;background:none;color:inherit;font:inherit;padding:0 0 8px;cursor:pointer;text-align:left}
.dg-ag{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.dg-ak{display:flex;flex-direction:column;gap:2px;border:1px solid var(--line);border-radius:10px;padding:10px 12px}
.dg-ak b{font-size:24px;font-variant-numeric:tabular-nums}.dg-ak b.r{color:#dc2626}.dg-ak b.g{color:var(--ok)}.dg-ak small{color:var(--muted);font-size:12px}
.dg-acorps{display:grid;grid-template-columns:minmax(200px,0.8fr) minmax(0,2fr);gap:14px;align-items:start}
.dg-acorps .dg-ag{grid-template-columns:1fr;gap:8px}
.dg-acorps .dg-ak{padding:8px 12px}.dg-acorps .dg-ak b{font-size:21px}
.dg-agr{display:flex;flex-direction:column;gap:6px;min-width:0}
@media (max-width:900px){.dg-acorps{grid-template-columns:1fr}}
.dg-acorps{align-items:stretch}
.dg-agr{justify-content:space-between}
.dg-ag2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-top:4px}
.dg-ag2 .dg-ak{padding:8px 12px}.dg-ag2 .dg-ak b{font-size:21px}
/* Photos des projets et des demandes d'intervention */
.op-phs{display:flex;flex-direction:column;gap:6px}
.op-phl{display:flex;flex-wrap:wrap;gap:8px}
.op-ph{position:relative;display:inline-flex}
.op-phb{width:72px;height:72px;padding:0;border:1px solid var(--line);border-radius:10px;overflow:hidden;background:var(--bg);cursor:zoom-in;display:inline-flex;align-items:center;justify-content:center}
.op-phb img{width:100%;height:100%;object-fit:cover;display:block}
.op-phv{cursor:default;color:var(--muted);font-size:20px}
.op-phx{position:absolute;top:-6px;right:-6px;min-width:22px;height:22px;padding:0 6px;border-radius:99px;border:1px solid var(--line);background:var(--card);color:var(--ink);font-size:12px;line-height:20px;cursor:pointer}
.op-phx.on{background:#dc2626;border-color:#dc2626;color:#fff}
.op-phadd{width:72px;height:72px;border:1.5px dashed var(--line);border-radius:10px;display:inline-flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;cursor:pointer;color:var(--muted)}
.op-phadd:hover{border-color:var(--accent);color:var(--ink)}
.op-phadd span{font-size:22px;line-height:1}.op-phadd small{font-size:12px}
.op-phadd input,.dem-phl input{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}
.dem-phl{flex-direction:row!important;align-items:center;gap:12px;position:relative;cursor:pointer}
.dem-phl .btn{pointer-events:none}
.op-voir{z-index:1000;background:rgba(0,0,0,.85)}
.op-voirb{border:none;background:none;padding:0;cursor:zoom-out;max-width:94vw;max-height:92vh;display:flex}
.op-voirb img{max-width:94vw;max-height:92vh;object-fit:contain;border-radius:8px}
.dem-phl>span.btn{text-transform:none;font-size:15px;font-weight:600;color:var(--ink);letter-spacing:0}.dem-phl small{font-size:13px}
.dem-phl .btn{white-space:nowrap;flex:none}
.op-l .op-resp,.op-l #op-autre{width:100%!important;min-width:0!important;max-width:100%;box-sizing:border-box;text-overflow:ellipsis}
.op-phmax{align-self:center;font-size:12px}
.rg-conf{white-space:nowrap;font-size:13px}.op-mini.x.on{background:#dc2626;border-color:#dc2626;color:#fff}
.rg-t input[data-rgr]{border:1px solid var(--line)!important;border-radius:8px;padding:6px 10px;max-width:420px}
#whoname{border:none!important;padding:4px 6px!important;font-size:inherit!important;cursor:pointer}
#whoname:hover{text-decoration:underline}
.mdp-dlg{max-width:440px;width:100%}
.mdp-corps{display:flex;flex-direction:column;gap:14px;padding:18px 22px}
.mdp-corps input:not([type=checkbox]){height:44px}
@media (max-width:860px){.op-newm{right:auto;left:0;max-width:calc(100vw - 32px)}}
@media (pointer:coarse){#whoname{cursor:default}#whoname:hover{text-decoration:none}}
.overlay{height:var(--vh,100vh);bottom:auto}
@media (max-width:860px){.overlay{padding:8px}.fp{max-height:calc(var(--vh,100vh) - 16px)}.fp-pied{padding:10px 14px}}
@media (max-width:860px){.fp-pied{flex-wrap:nowrap;gap:8px}.fp-pied .fp-sp,.fp-pied .fp-aide{display:none}.fp-pied .btn{flex:1 1 auto;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;padding:0 10px;font-size:15px}.fp-pied.fp-sup{flex-wrap:wrap}.fp-pied.fp-sup b{flex-basis:100%}}
a.op-mini{display:inline-flex;align-items:center;text-decoration:none;vertical-align:middle}
/* Nouvelle demande d'intervention pas encore ouverte : fond rouge translucide */
.op-l tr.op-p.neuf td,.kb-card.neuf,.op-valr.neuf,.op-drow.neuf{background:linear-gradient(rgba(220,38,38,.16),rgba(220,38,38,.16)),var(--surface)!important}
.op-l tr.op-p.neuf td:first-child{box-shadow:inset 4px 0 0 #dc2626}
tr.op-p.av.neuf td{opacity:1}
/* iPhone : le champ date de Safari ne doit pas déborder de sa case */
@media (pointer:coarse){input[type=date]{-webkit-appearance:none;appearance:none;min-width:0;max-width:100%}input[type=date]::-webkit-date-and-time-value{text-align:left}}
/* Fiche d'une demande d'intervention : la demande / la décision / le suivi */
.iv-dem{background:var(--bg);border:1px solid var(--line);border-radius:12px;padding:14px 16px;display:flex;flex-direction:column;gap:12px}
.iv-h{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.iv-h .label{margin-right:auto}
.iv-dng{background:#dc2626;color:#fff;border-radius:6px;padding:3px 10px;font-weight:700;font-size:13px}
.iv-fs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.iv-f>span{display:block;font-size:12px;color:var(--muted);font-weight:600;letter-spacing:.04em;text-transform:uppercase;margin-bottom:3px}
.iv-f b{display:block;font-size:18px;line-height:1.25;overflow-wrap:anywhere}.iv-f small{display:block;color:var(--muted);font-size:13px;margin-top:2px}
.iv-r{color:#dc2626}
.iv-note{margin:0;padding:10px 14px;border-left:4px solid var(--accent);background:var(--surface);border-radius:0 8px 8px 0;font-size:16px;line-height:1.45}
.iv-dec{display:flex;flex-direction:column;gap:10px;background:#FEF3C7;color:#92400E;border-radius:12px;padding:12px 14px}
.iv-dec>b{font-size:16px}.iv-decb{display:flex;gap:6px;flex-wrap:wrap}.iv-decb .urg{min-height:42px;height:42px;padding:0 14px;font-size:14px}.iv-decb .btn{height:42px;min-height:42px}
.iv-refus{margin:0;background:#FEE2E2;color:#991B1B;border-radius:10px;padding:10px 14px;font-weight:600}
.iv-suivi{display:flex;flex-direction:column;gap:10px}
.iv-g{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;align-items:end}
.iv-g .op-sel.op-pill{height:44px!important;font-size:15px!important}
.iv-plus{border-top:1px solid var(--line);padding-top:10px}
.iv-plus summary{cursor:pointer;color:var(--muted);font-weight:600;font-size:14px;min-height:32px;display:flex;align-items:center}
.iv-plus[open]{display:flex;flex-direction:column;gap:12px}
@media (prefers-color-scheme:dark){.iv-dec{background:#3A2E0A;color:#FCD34D}.iv-refus{background:#3B1414;color:#FCA5A5}}
@media (max-width:860px){.iv-fs{grid-template-columns:1fr 1fr}.iv-g{grid-template-columns:1fr 1fr}}
/* Valeurs choisies plus visibles que les intitulés dans les fiches */
.fp-c select,.fp-c input:not([type=checkbox]){font-weight:600}
.iv-g .op-sel.op-pill{text-align:left;padding:0 26px 0 10px!important}
/* Fiche d'un projet classique : en un coup d'œil / de quoi s'agit-il / étapes */
.fc-coup{background:var(--bg);border:1px solid var(--line);border-radius:12px;padding:14px 16px;display:flex;flex-direction:column;gap:12px}
.fc-h{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.fc-h .label{margin-right:auto}
.fc-ts{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}
.fc-t{background:var(--surface);border:1px solid var(--line);border-radius:10px;padding:10px 12px;display:flex;flex-direction:column;gap:6px;min-width:0;cursor:pointer;margin:0}
.fc-t>span{font-size:12px;font-weight:600;letter-spacing:.05em;color:var(--muted);text-transform:uppercase}
.fc-t small{font-size:13px;color:var(--muted)}
.fc-t select,.fc-t input{width:100%!important;min-width:0!important;font-size:17px!important;font-weight:700!important;height:42px!important}
.fc-t select.op-resp,.fc-t input[type=date]{border:none!important;background:transparent!important;padding:0 4px!important;color:var(--ink)}
.fc-t .op-sel.op-pill{text-align:left;padding:0 26px 0 10px!important}
.fc-ret{color:#dc2626!important;font-weight:700}
.fc-av{display:flex;align-items:center;gap:10px}.fc-av>div{flex:1;height:10px;border-radius:5px;background:var(--line);overflow:hidden}.fc-av i{display:block;height:100%;background:#55d38a;border-radius:5px}.fc-av b{font-size:14px}
.fc-desc{display:flex;flex-direction:column;gap:6px;margin:0}.fc-desc textarea{font-size:16px;line-height:1.45;font-weight:400!important}
.fc-et{display:flex;flex-direction:column;gap:2px}
.fc-e{display:grid;grid-template-columns:24px minmax(0,1fr) auto 64px;gap:10px;align-items:center;padding:4px 0;border-top:1px solid var(--line)}
.fc-e input[type=checkbox]{width:20px;height:20px;accent-color:#15803d}
.fc-e .op-in{font-weight:500}.fc-e.ok .op-in{text-decoration:line-through;color:var(--muted)}
.fc-e>span{font-size:13px;white-space:nowrap}.fc-e>span:last-child{text-align:right}
@media (max-width:860px){.fc-ts{grid-template-columns:1fr 1fr}.fc-e{grid-template-columns:24px minmax(0,1fr) 56px}.fc-e>span:nth-of-type(1){display:none}}
.fc-t input[type=date]{font-size:15px!important;padding:0 2px!important}.fc-desc textarea{font-family:inherit}
.fc-t input[type=date]::-webkit-calendar-picker-indicator{margin:0;padding:0;width:14px}.fc-t input[type=date]{letter-spacing:-.2px}
