/* Climatech+ — compléments au design du prototype : connexion, onglets, contact, photos guidées, synchro. */
.sr{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
.subtle{color:var(--muted);font-size:13px}
#confirmText{white-space:pre-line}
select{border:1px solid var(--line);background:var(--surface);color:var(--ink);border-radius:10px;padding:10px 12px;font:inherit;font-size:14px;max-width:100%}
.field select{background:var(--sunk);padding:14px;border-radius:12px;font-size:16px;width:100%}

/* en-tête */
header .wrap.progress{grid-template-columns:repeat(6,minmax(0,1fr))!important;gap:6px}
#menuBtn{font-size:20px;min-width:44px;justify-content:center}
.sync{display:inline-flex;align-items:center;gap:5px;font:650 11px var(--f-body);padding:6px 10px;border-radius:999px;white-space:nowrap;background:rgba(255,255,255,.12);color:var(--navy-ink)}
.sync svg.i{width:15px;height:15px}
.sync.ok{color:#8fe0b5}
.sync.wait{background:#f0c87933;color:#ffd98a}
.sync.off{background:#f08a8033;color:#ffb3aa}
.sync.wait svg{animation:spin 1.4s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}
@media(min-width:1250px){.sync{background:var(--sunk);color:var(--ink)}.sync.ok{color:var(--ok)}.sync.wait{color:#916721}.sync.off{color:var(--danger)}}

/* connexion */
.login-card{max-width:400px;margin:6vh auto 0;background:var(--surface);border:1px solid var(--line);border-radius:22px;padding:30px 24px;display:flex;flex-direction:column;align-items:center;gap:8px;text-align:center;box-shadow:var(--shadow-md)}
.login-card h2{font-size:28px}
.login-form{width:100%;text-align:left;margin-top:12px}
body[data-view=login] .fab{display:none}

/* liste */
.intro-actions{display:flex;gap:10px;flex-wrap:wrap;justify-content:flex-end}
.intro-actions .btn.ghost{box-shadow:none!important}
.summary{grid-template-columns:repeat(3,1fr)!important}
.summary .stat{text-align:left;cursor:pointer;font:inherit;color:inherit;display:block}
.summary .stat.hl{color:var(--navy-ink)}
.tabs{display:flex;gap:6px;overflow-x:auto;scrollbar-width:none;margin-bottom:-4px}
.tabs::-webkit-scrollbar{display:none}
.tabs button{flex:none;border:1px solid var(--line);background:var(--surface);color:var(--ink);border-radius:999px;padding:8px 15px;font:650 13px var(--f-body);cursor:pointer;min-height:40px}
.tabs button[aria-selected=true]{background:var(--navy);color:#fff;border-color:var(--navy)}
:root[data-theme=dark] .tabs button[aria-selected=true]{background:var(--accent);color:var(--accent-ink);border-color:var(--accent)}
.list-tools{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap}
.card .side span{display:inline-flex;align-items:center;gap:4px}
.card .side svg.i{width:14px;height:14px}
.pend{background:#fff2d9;color:#916721;border-radius:999px;padding:2px 8px;font-weight:650}
.status-badge[data-status="Nouveau contact"]{background:#efe7fb;color:#6a3fb0}
.status-badge[data-status="Visite planifiée"]{background:#e3f1fa;color:#0a6c9e}
.status-badge[data-status="Signé"]{background:#e5f4ec;color:#287151}
.status-badge[data-status="Perdu"]{background:#f1f1f1;color:#777}
:root[data-theme=dark] .status-badge[data-status="Nouveau contact"]{background:#2e2246;color:#cdb6f5}
:root[data-theme=dark] .status-badge[data-status="Visite planifiée"]{background:#13324a;color:#8fd0f5}
:root[data-theme=dark] .status-badge[data-status="Signé"]{background:#173b2b;color:#8fd8b0}
:root[data-theme=dark] .status-badge[data-status="Perdu"]{background:#2a2f33;color:#9aa5ab}
@media(max-width:700px){
  .page-intro{flex-direction:column;align-items:stretch}
  .intro-actions{justify-content:stretch}
  .intro-actions .top-new{display:flex!important;flex:1;font-size:13px;padding:11px 10px;background:var(--surface);color:var(--accent);border:1.5px solid var(--accent);box-shadow:none!important}
  body[data-role=admin] .intro-actions #newContactTop,body[data-role=commercial] .intro-actions #newVisitTop{display:none!important}
  .summary{grid-template-columns:1fr 1fr!important}
}
/* le bouton « Nouveau contact / Nouveau client » reste visible aussi sur ordinateur */

/* formulaires */
.demande{display:flex;gap:12px;align-items:flex-start;background:var(--accent-soft);border:1px solid color-mix(in srgb,var(--accent) 30%,transparent);border-radius:16px;padding:14px 16px}
.demande svg.i{color:var(--accent);margin-top:2px}
.demande b{display:block;font-size:14px}
.demande span{display:block;font-size:14px;white-space:pre-wrap;margin-top:4px}
.places{grid-template-columns:1fr 1fr}
.kw .opt-btn.sugg:not([aria-pressed=true]){border-color:var(--ok);box-shadow:inset 0 0 0 1px var(--ok)}
#kwHint{font-size:12px}

/* photos guidées */
.photo-slots{display:flex;flex-direction:column;gap:8px}
.photo-slots:empty{display:none}
.pslot{border:1.5px dashed color-mix(in srgb,var(--accent) 45%,var(--line));border-radius:14px;background:var(--sunk);overflow:hidden}
.pslot.done{border-style:solid;border-color:color-mix(in srgb,var(--ok) 45%,var(--line))}
.pslot-main{display:flex;align-items:center;gap:12px;width:100%;border:0;background:none;color:inherit;padding:12px;cursor:pointer;text-align:left;font:inherit}
.pslot-ico{width:42px;height:42px;flex:none;border-radius:12px;display:grid;place-items:center;background:var(--accent);color:#fff}
.pslot.done .pslot-ico{background:var(--ok)}
.pslot-txt{flex:1;min-width:0}
.pslot-txt b{display:block;font-size:15px;font-weight:650}
.pslot-txt span{font-size:12px;color:var(--muted)}
.pslot.req:not(.done) .pslot-txt span{color:var(--danger);font-weight:600}
.pslot-go{flex:none;font:700 13px var(--f-body);color:var(--accent)}
.thumbs{display:flex;gap:8px;overflow-x:auto;padding:0 12px 12px}
.gal .thumbs{padding:0}
.thumb{position:relative;flex:none;width:84px;height:84px;padding:0;border:0;border-radius:10px;overflow:hidden;background:var(--line);cursor:zoom-in}
.thumb img{width:100%;height:100%;object-fit:cover;display:block}
.thumb i{position:absolute;inset:auto 0 0;background:#000a;color:#fff;font:600 10px var(--f-body);padding:2px;text-align:center;font-style:normal}
.pcheck-head{font-size:14px;color:var(--muted)}
.pcheck-head b{font:700 22px var(--f-display);color:var(--ink)}
.bar{height:8px;border-radius:4px;background:var(--line);margin-top:8px;overflow:hidden}
.bar i{display:block;height:100%;background:var(--ok);border-radius:4px;transition:width .3s}
.pcheck{display:flex;flex-direction:column}
.pc{display:flex;align-items:center;gap:10px;border:0;border-top:1px solid var(--line);background:none;color:var(--ink);padding:12px 2px;text-align:left;font:inherit;font-size:14px;cursor:pointer}
.pc span{flex:1}
.pc em{font-style:normal;font-size:12px;color:var(--muted)}
.pc svg.i{color:var(--muted)}
.pc.done svg.i{color:var(--ok)}
.pc.miss svg.i,.pc.miss em{color:var(--danger);font-weight:650}
.ok-line{display:flex;align-items:center;gap:8px;color:var(--ok);font-weight:650;margin:0}

/* feuille de prise de vue */
dialog.sheet{width:min(520px,100vw);max-width:100vw;max-height:94vh;margin:auto auto 0;border-radius:22px 22px 0 0;padding:0;border:0;overflow:auto}
@media(min-width:701px){dialog.sheet{margin:auto;border-radius:22px}}
.sheet-body{display:flex;flex-direction:column;gap:12px;padding:22px 20px calc(20px + env(safe-area-inset-bottom,0px))}
.sheet-body h2{font-size:24px}
.shot-art{background:var(--sunk);border-radius:16px;padding:10px;color:var(--ink)}
.shot-art svg{display:block;width:100%;height:auto;max-height:min(220px,24vh)}
.shot-tips{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}
.shot-tips li{display:flex;gap:10px;align-items:flex-start;font-size:15px}
.shot-tips svg.i{color:var(--ok);width:20px;height:20px;margin-top:1px}
.shot-preview img{display:block;width:100%;max-height:50vh;object-fit:contain;border-radius:14px;background:#000}
.sheet-actions{display:flex;flex-direction:column;gap:8px}
.sheet-actions .btn{padding:14px}
#menuDialog .sheet-body{gap:10px}
#menuDialog p{margin:0 0 6px}

/* visionneuse */
dialog.lightbox{max-width:min(960px,96vw);padding:12px;background:#0b141a;color:#fff;border:0}
dialog.lightbox img{display:block;max-width:100%;max-height:75vh;margin:0 auto;border-radius:10px}
dialog.lightbox p{color:#cfe0e8;margin:10px 0}
.danger-mini{background:var(--danger)!important}

/* détail */
.hero-sub{font-size:14px;opacity:.8;margin-top:4px}
.status-row{display:flex;align-items:center;gap:12px;justify-content:space-between}
.status-row select{flex:1;max-width:260px;font-weight:650}
.warn-box{display:flex;gap:12px;align-items:flex-start;background:color-mix(in srgb,var(--danger) 9%,var(--surface));border:1px solid color-mix(in srgb,var(--danger) 35%,var(--line));border-radius:14px;padding:12px 14px}
.warn-box svg.i{color:var(--danger)}
.warn-box b{display:block;font-size:14px;color:var(--danger)}
.warn-box span{font-size:13px;color:var(--muted)}
.dsec dl{margin:0}
.gal{padding:12px 16px;border-top:1px solid var(--line);display:flex;flex-direction:column;gap:8px}
.gal p{margin:0}
.print-heading{display:none}

/* équipe */
.ucard{display:flex;align-items:center;gap:12px;background:var(--surface);border:1px solid var(--line);border-radius:16px;padding:12px;flex-wrap:wrap}
.ucard.off{opacity:.55}
.ucard .avatar{background:var(--brand)}
.ucard .body{flex:1;min-width:160px}
.ucard .body b{display:block}
.ucard .body span{font-size:13px;color:var(--muted)}
.uact{display:flex;gap:6px}

@media print{
  .status-row,.warn-box,#delVisit,.thumb i{display:none!important}
  .gal .thumbs{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;overflow:visible}
  .thumb{width:100%;height:auto;aspect-ratio:4/3}
  .gal{break-inside:avoid}
}

/* rôles et circuit */
.seg:has(> :nth-child(3)){grid-template-columns:repeat(3,1fr)}
.tabs button small{font:700 11px var(--f-mono);opacity:.7;margin-left:3px}
.summary:has(> :only-child){grid-template-columns:1fr!important}
.pipe{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:4px;counter-reset:s}
.pipe li{font:700 10px var(--f-body);letter-spacing:.06em;text-transform:uppercase;color:var(--muted);text-align:center;padding-top:9px;position:relative}
.pipe li::before{content:"";position:absolute;inset:0 0 auto;height:5px;border-radius:3px;background:var(--line)}
.pipe li.done::before{background:var(--ok)} .pipe li.done{color:var(--ok)}
.pipe li.cur::before{background:var(--accent)} .pipe li.cur{color:var(--accent)}
.pipe.refused{display:block;background:#f1f1f1;color:#666;border-radius:12px;padding:10px 14px;font-weight:650;font-size:13px}
.dsec.flow{border-color:color-mix(in srgb,var(--accent) 40%,var(--line))}
.flow-body{display:flex;flex-direction:column;gap:12px;padding:6px 16px 16px}
.flow-body p{margin:0}
.two{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.flow-body .actions .btn{padding:13px 8px}
.uact select{padding:8px;font-size:13px}
.status-badge[data-status="RDV planifié"]{background:#e3f1fa;color:#0a6c9e}
.status-badge[data-status="Accepté"]{background:#e5f4ec;color:#287151}
.status-badge[data-status="Installation planifiée"]{background:#e0f2ef;color:#16705f}
.status-badge[data-status="Terminé"]{background:#1f8a55;color:#fff}
.status-badge[data-status="Refusé"]{background:#f1f1f1;color:#777}
:root[data-theme=dark] .status-badge[data-status="RDV planifié"]{background:#13324a;color:#8fd0f5}
:root[data-theme=dark] .status-badge[data-status="Accepté"],:root[data-theme=dark] .status-badge[data-status="Installation planifiée"]{background:#173b2b;color:#8fd8b0}
@media print{.pipe,.flow-body .btn,.flow-body .actions{display:none!important}}
.intro-actions .top-new[hidden]{display:none!important}

/* gérant / bureau */
.seg:has(> :nth-child(4)){grid-template-columns:1fr 1fr}

/* annotation */
dialog.annot{max-width:min(980px,98vw);width:98vw;padding:12px;display:none;flex-direction:column;gap:10px}
dialog.annot[open]{display:flex}
.annot-bar{display:flex;gap:6px;flex-wrap:wrap}
.annot-bar [aria-pressed=true]{background:var(--accent);color:#fff;border-color:var(--accent)}
#annotCanvas{width:100%;height:auto;max-height:62vh;object-fit:contain;touch-action:none;border-radius:10px;background:#000;cursor:crosshair}
dialog.annot p{margin:0}

/* dossier copropriété */
.ds-pick{display:grid;grid-template-columns:repeat(auto-fill,minmax(130px,1fr));gap:8px}
.ds-ph{position:relative;display:flex;flex-direction:column;gap:4px;font-size:12px;color:var(--muted);text-transform:none!important;letter-spacing:0!important;font-weight:500!important;cursor:pointer}
.ds-ph img{width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:10px;border:3px solid transparent}
.ds-ph input{position:absolute;top:8px;left:8px;width:22px;height:22px;accent-color:var(--accent)}
.ds-ph input:checked+img{border-color:var(--accent)}
.ds-ph input:not(:checked)+img{opacity:.45}
.doc{background:#fff;color:#172c38;border:1px solid var(--line);border-radius:14px;padding:28px;font-size:14px;line-height:1.5;box-shadow:var(--shadow-md)}
.doc-head{display:flex;justify-content:space-between;gap:20px;border-bottom:3px solid #087eac;padding-bottom:16px;margin-bottom:8px;flex-wrap:wrap}
.doc-head span{display:block;font-size:12px;color:#5d7282}
.doc-co{font:700 18px var(--f-display);display:block;margin-bottom:4px}
.doc-title{text-align:right}
.doc-title h1{font:700 26px var(--f-display);color:#087eac;margin:0}
.doc section{margin-top:18px;break-inside:avoid}
.doc h2{font:700 15px var(--f-display);text-transform:uppercase;letter-spacing:.06em;color:#087eac;border-bottom:1px solid #d8e2ea;padding-bottom:4px;margin:0 0 8px}
.doc p{margin:0 0 6px}
.doc .pre{white-space:pre-line}
.doc table{width:100%;border-collapse:collapse}
.doc th,.doc td{text-align:left;padding:6px 8px;border-bottom:1px solid #eef2f5;vertical-align:top}
.doc table:not(.grid) th{width:34%;color:#5d7282;font-weight:600}
.doc .grid thead th{background:#eef5fa;color:#173341}
.doc .grid .tot td{font-weight:700;background:#f5f8fb}
.doc-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.doc-grid figure{margin:0;break-inside:avoid}
.doc-grid img{width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:6px;border:1px solid #d8e2ea;display:block}
.doc-grid figcaption{font-size:12px;color:#5d7282;margin-top:4px}
.doc-foot{margin-top:24px;padding-top:10px;border-top:1px solid #d8e2ea;font-size:11px;color:#5d7282}
@media(max-width:560px){.doc{padding:16px}.doc-title{text-align:left}.doc-grid{grid-template-columns:1fr}}
@media print{
  body[data-view=dossier] .doc-editor{display:none!important}
  body[data-view=dossier] .doc{border:0;box-shadow:none;padding:0;border-radius:0;font-size:11.5px}
  body[data-view=dossier] main .wrap{padding:0!important;max-width:none}
  .doc-grid img{print-color-adjust:exact;-webkit-print-color-adjust:exact}
}

/* agenda et e-mails */
.busy{display:flex;gap:10px;align-items:flex-start;background:var(--sunk);border:1px solid var(--line);border-radius:12px;padding:10px 12px;font-size:13px}
.busy svg.i{color:var(--accent);width:18px;height:18px}
.ds-actions{display:flex;flex-direction:column;gap:8px}
.ds-actions a.btn{text-decoration:none}
.ucal{display:flex!important;align-items:center;gap:6px;margin-top:4px;flex-wrap:wrap}
.ucal svg.i{width:15px;height:15px}
.linkish{border:0;background:none;color:var(--accent);font:650 12px var(--f-body);padding:4px 2px;min-height:0;cursor:pointer;text-decoration:underline}
.integ{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px;font-size:13px;color:var(--muted)}
.integ li{display:flex;gap:8px;align-items:flex-start}
.integ li.on{color:var(--ok);font-weight:600}
.integ li.share{background:var(--accent-soft);color:var(--ink);border-radius:10px;padding:10px 12px;display:block;line-height:1.5}
.integ svg.i{width:17px;height:17px}

/* suggestions d'adresses */
.inp{position:relative}
.addr-sugg{position:absolute;left:0;right:0;top:calc(100% + 4px);z-index:30;background:var(--surface);border:1px solid var(--line);border-radius:12px;box-shadow:var(--shadow-md);overflow:hidden}
.addr-sugg button{display:flex;align-items:center;gap:10px;width:100%;border:0;border-top:1px solid var(--line);background:none;color:var(--ink);text-align:left;padding:11px 12px;font:inherit;cursor:pointer;min-height:48px}
.addr-sugg button:first-child{border-top:0}
.addr-sugg button[aria-selected=true],.addr-sugg button:hover{background:var(--accent-soft)}
.addr-sugg svg.i{position:static!important;transform:none!important;color:var(--accent);width:18px;height:18px}
.addr-sugg span{display:flex;flex-direction:column;min-width:0}
.addr-sugg b{font-weight:600;font-size:15px}
.addr-sugg small{color:var(--muted);font-size:12px}

.pw{position:relative}.pw input{padding-right:84px!important}.pw .linkish{position:absolute;right:10px;top:50%;transform:translateY(-50%)}

/* parcours étape par étape */
.wiz-head{display:flex;flex-direction:column;gap:4px}
.wiz-count{font:700 12px var(--f-body);letter-spacing:.12em;text-transform:uppercase;color:var(--accent)}
.wiz-head h2{font-size:30px;letter-spacing:-.03em}
.wiz-head p{margin:0;font-size:16px;color:var(--ink)}
.wiz-head #draftState{font-size:12px;color:var(--muted)}
#vForm .sec-head{display:none}
#vForm .room-nav{display:none}
header .wrap.progress{grid-template-columns:repeat(5,minmax(0,1fr))!important}
.progress button.cur{color:#fff} .progress button.cur i{background:#fff}
@media(min-width:1250px){.progress button.cur{color:var(--ink)}.progress button.cur i{background:var(--accent)}}
.fab-row{display:flex;gap:10px}
.fab-row #prevBtn{flex:0 0 32%}
.fab-row #mainBtn{flex:1}
.next-box{background:var(--accent-soft);border:1.5px solid color-mix(in srgb,var(--accent) 40%,transparent);border-radius:16px;padding:14px 16px;display:flex;flex-direction:column;gap:6px}
.next-box b{font:700 19px var(--f-display)}
.next-box p{margin:0;font-size:15px}
.todo{margin:4px 0 0;padding:0;list-style:none;counter-reset:t;display:flex;flex-direction:column;gap:8px}
.todo li{counter-increment:t;display:flex;gap:10px;align-items:flex-start;font-size:15px}
.todo li::before{content:counter(t);flex:none;width:24px;height:24px;border-radius:50%;background:var(--accent);color:#fff;display:grid;place-items:center;font:700 12px var(--f-body)}
.todo li.ok::before{content:none}
.todo li.ok{color:var(--muted);text-decoration:line-through}
.todo li.ok svg.i{flex:none;width:24px;height:24px;color:var(--ok)}

.next-box.warn{background:#fff4e0;border-color:#f0b860}
:root[data-theme=dark] .next-box.warn{background:#3b3220;border-color:#8a6a2a}

/* liste de matériel à chiffrer */
.dsec.mat{border:1.5px solid color-mix(in srgb,var(--accent) 45%,var(--line))}
.mat-sub{margin:0;padding:0 16px 8px;color:var(--muted);font-size:14px}
.mat-list{list-style:none;margin:0;padding:0}
.mat-list li{display:flex;gap:14px;align-items:baseline;padding:11px 16px;border-top:1px solid var(--line)}
.mat-list .q{flex:0 0 52px;font:700 17px var(--f-mono);color:var(--accent);text-align:right;white-space:nowrap}
.mat-list .w{display:flex;flex-direction:column;min-width:0}
.mat-list .w b{font-size:16px;font-weight:650}
.mat-list .w small{color:var(--muted);font-size:13px}
.mat-holes{display:flex;gap:10px;margin:0 16px 12px;padding:10px 12px;border-radius:12px;background:#fff4e0;font-size:13px}
.mat-holes svg.i{flex:none;width:18px;height:18px;color:#a8741a}
:root[data-theme=dark] .mat-holes{background:#3b3220}
.mat-note{margin:0;padding:10px 16px;border-top:1px solid var(--line);font-size:14px;white-space:pre-wrap}
.mat-actions{padding:10px 16px 14px;border-top:1px solid var(--line)}
.todo.small li{font-size:14px}
.big-num{font:700 22px var(--f-mono)!important}
@media print{.mat-actions{display:none}}

/* calcul du devis */
.dv-empty{background:var(--sunk);border:1.5px dashed var(--line);border-radius:14px;padding:14px;display:flex;flex-direction:column;gap:10px}
.dv-empty p{margin:0;font-size:14px}
.dv-warn{margin:0 0 6px;padding:8px 12px;border-radius:10px;background:#fff4e0;font-size:13px}
:root[data-theme=dark] .dv-warn{background:#3b3220}
.dv-cat h4{margin:12px 0 4px;font:700 12px var(--f-body);letter-spacing:.1em;text-transform:uppercase;color:var(--accent)}
.dl{border-top:1px solid var(--line);padding:10px 0;display:flex;flex-direction:column;gap:6px}
.dl.off{opacity:.45}
.dl-head{display:flex;gap:10px;align-items:flex-start;cursor:pointer;text-transform:none!important;letter-spacing:0!important;font-weight:400!important;color:var(--ink)!important;font-size:15px!important}
.dl-head input{width:22px;height:22px;margin:1px 0 0;accent-color:var(--accent);flex:none}
.dl-head span{display:flex;flex-direction:column}
.dl-head b{font-weight:600}
.dl-head small{color:var(--muted);font-size:12px}
.dl-calc{display:flex;align-items:center;gap:6px;padding-left:32px;flex-wrap:wrap}
.dl-calc input{width:74px;padding:8px!important;font:600 15px var(--f-mono)!important;border:1px solid var(--line);border-radius:9px;background:var(--sunk);color:var(--ink);text-align:right}
.dl-calc .u,.dl-calc .x{color:var(--muted);font-size:13px}
.dl-tot{margin-left:auto;font:700 15px var(--f-mono)}
.dl-del{border:0;background:none;color:var(--muted);font-size:20px;min-height:32px;padding:0 6px;cursor:pointer}
.dv-add{display:flex;flex-direction:column;gap:6px;margin-top:10px}
.dv-add select{width:100%}
.dv-tot{margin-top:12px;border-radius:14px;background:var(--navy);color:#fff;padding:12px 16px;display:flex;flex-direction:column;gap:6px}
.dv-tot div{display:flex;justify-content:space-between;align-items:center;gap:10px}
.dv-tot span{font-size:14px;opacity:.85;display:flex;align-items:center;gap:6px}
.dv-tot b{font:700 16px var(--f-mono)}
.dv-tot .ttc b{font-size:24px}
.dv-tot select{padding:4px 6px;font-size:13px;background:#ffffff1a;color:#fff;border-color:#ffffff40}
.dv-tot select option{color:#000}
.dv-q{margin:4px 0 0;font-weight:650}
/* tarifs */
.tf-cat{gap:8px}
.tf-cat h3{font-size:17px}
.tf{display:flex;flex-direction:column;gap:6px;border-top:1px solid var(--line);padding-top:8px}
.tf input{border:1px solid var(--line);background:var(--sunk);color:var(--ink);border-radius:10px;padding:10px;font:inherit}
.tf-p{display:flex;align-items:center;gap:6px}
.tf-p input{width:110px;font:600 15px var(--f-mono);text-align:right}
.tf-p span{color:var(--muted);font-size:13px}
@media(min-width:701px){.tf{flex-direction:row;align-items:center}.tf>input{flex:1}}
@media print{.dv-add,.dl-del,.dv-empty{display:none!important}}

/* attribution */
.dsec.assign{border:1.5px solid color-mix(in srgb,var(--navy) 30%,var(--line))}
.dsec.assign select{width:100%}
.summary:has(> :nth-child(4)){grid-template-columns:repeat(2,1fr)!important}
@media(min-width:701px){.summary:has(> :nth-child(4)){grid-template-columns:repeat(4,1fr)!important}}

/* ===== code couleur par étape ===== */
:root{--ph-contact:#7a4cd0;--ph-visite:#0b7fc4;--ph-devis:#df7408;--ph-pose:#18945a;--ph-fini:#5d6a73;--ph-refus:#c23b34;--ph-all:#16324a}
:root[data-theme=dark]{--ph-contact:#a78bfa;--ph-visite:#4fb3ef;--ph-devis:#f5a04a;--ph-pose:#4cc98a;--ph-fini:#9aa7b0;--ph-refus:#f07a72;--ph-all:#cfe3ef}
[data-phase=contact]{--ph:var(--ph-contact)}[data-phase=visite]{--ph:var(--ph-visite)}[data-phase=devis]{--ph:var(--ph-devis)}
[data-phase=pose]{--ph:var(--ph-pose)}[data-phase=fini]{--ph:var(--ph-fini)}[data-phase=refus]{--ph:var(--ph-refus)}[data-phase=all]{--ph:var(--ph-all)}
.status-badge[data-phase]{background:color-mix(in srgb,var(--ph) 14%,var(--surface))!important;color:var(--ph)!important;white-space:nowrap}

/* barre des étapes (bureau) */
.phasebar{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:8px}
.phasebar button{position:relative;display:flex;flex-direction:column;align-items:flex-start;gap:2px;text-align:left;cursor:pointer;font:inherit;color:var(--ink);background:var(--surface);border:1.5px solid color-mix(in srgb,var(--ph) 25%,var(--line));border-top:5px solid var(--ph);border-radius:14px;padding:10px 12px;min-width:0}
.phasebar .pb-ico{position:absolute;right:10px;top:10px;color:var(--ph);display:flex}.phasebar .pb-ico .i{width:18px;height:18px}
.phasebar .pb-l{font:750 12px var(--f-body);color:var(--ph);letter-spacing:.02em}
.phasebar b{font-size:28px;line-height:1.1;font-weight:700;letter-spacing:-.03em}
.phasebar small{font-size:11px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}
.phasebar button[aria-pressed=true]{background:var(--ph);border-color:var(--ph);color:#fff}
.phasebar button[aria-pressed=true] .pb-l,.phasebar button[aria-pressed=true] .pb-ico,.phasebar button[aria-pressed=true] small{color:#fff}
:root[data-theme=dark] .phasebar button[aria-pressed=true]{color:#0d1d27}:root[data-theme=dark] .phasebar button[aria-pressed=true] :is(.pb-l,.pb-ico,small){color:#0d1d27}
@media(max-width:700px){.phasebar{grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}.phasebar button{padding:8px 9px}.phasebar b{font-size:22px}.phasebar .pb-ico{display:none}.phasebar small{font-size:10px}}

/* carte client */
.list:has(.fcard){display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:10px}
.fcard{display:flex;flex-direction:column;gap:4px;width:100%;text-align:left;cursor:pointer;font:inherit;color:var(--ink);background:var(--surface);border:1px solid var(--line);border-left:6px solid var(--ph);border-radius:12px;padding:11px 13px;box-shadow:var(--shadow-sm);transition:border-color .15s,transform .15s}
.fcard:hover{border-color:var(--ph);transform:translateY(-1px)}
.fc-top{display:flex;align-items:center;justify-content:space-between;gap:8px}
.fc-name{font-size:15px;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}
.fc-addr{font-size:12px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.fc-next{font-size:13px;font-weight:700;color:var(--ph);margin-top:2px}
.fc-next.todo{align-self:flex-start;background:var(--ph);color:#fff;border-radius:7px;padding:3px 9px}
:root[data-theme=dark] .fc-next.todo{color:#0d1d27}
.fc-next.warn{align-self:flex-start;background:#fff1d6;color:#8a5a00;border-radius:7px;padding:3px 9px}
.fc-foot{display:flex;flex-wrap:wrap;gap:4px 12px;font-size:11.5px;color:var(--muted)}
.fc-foot span{display:inline-flex;align-items:center;gap:4px}.fc-foot .i{width:13px;height:13px}
.fc-foot .num{font-weight:700;color:var(--ink)}

/* tableau en colonnes */
.board{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;align-items:start}
.board .col{background:color-mix(in srgb,var(--ph) 6%,var(--bg,transparent));border-radius:14px;padding:8px;min-width:0}
.board .col-head{display:flex;justify-content:space-between;align-items:center;width:100%;border:0;cursor:pointer;background:var(--ph);color:#fff;border-radius:10px;padding:9px 12px;font:750 13px var(--f-body);margin-bottom:8px}
:root[data-theme=dark] .board .col-head{color:#0d1d27}
.board .col-head b{background:#ffffff33;border-radius:999px;padding:1px 9px}
.board .list{display:flex!important;flex-direction:column;gap:8px}
.board .fcard{padding:10px 11px}
.col-empty{list-style:none;color:var(--muted);font-size:12px;text-align:center;padding:10px}
@media(max-width:1000px){.board{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:620px){.board{grid-template-columns:1fr}}
body[data-role=admin] .list-tools,body[data-role=bureau] .list-tools{margin-top:0}

/* fiche bureau : onglets colorés */
.steps{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px}
.steps button{display:flex;flex-direction:column;align-items:center;gap:2px;cursor:pointer;font:inherit;color:var(--muted);background:var(--surface);border:1.5px solid var(--line);border-bottom:5px solid var(--line);border-radius:12px;padding:9px 4px 8px;min-width:0}
.steps .st-n{display:grid;place-items:center;width:24px;height:24px;border-radius:50%;font:750 12px var(--f-body);background:var(--sunk);color:var(--muted)}
.steps .st-n .i{width:14px;height:14px}
.steps b{font-size:13px;color:var(--ink)}
.steps small{font-size:10.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}
.steps button.done{border-bottom-color:color-mix(in srgb,var(--ph) 55%,var(--line))}
.steps button.done .st-n{background:color-mix(in srgb,var(--ph) 18%,var(--surface));color:var(--ph)}
.steps button.cur{border-bottom-color:var(--ph)}
.steps button.cur .st-n{background:var(--ph);color:#fff}
.steps button[aria-selected=true]{background:var(--ph);border-color:var(--ph);color:#fff}
.steps button[aria-selected=true] b,.steps button[aria-selected=true] small{color:#fff}
.steps button[aria-selected=true] .st-n{background:#fff;color:var(--ph)}
:root[data-theme=dark] .steps button[aria-selected=true] :is(b,small){color:#0d1d27}
.pane{display:flex;flex-direction:column;gap:inherit;border-top:4px solid var(--ph);padding-top:14px;gap:16px}
.pane .dsec.flow,.pane .dsec.assign{border-color:color-mix(in srgb,var(--ph) 35%,var(--line))}
.pane-later{border:1.5px dashed color-mix(in srgb,var(--ph) 40%,var(--line));color:var(--muted);border-radius:12px;padding:16px;font-size:13px;text-align:center}
@media print{.steps,.phasebar{display:none!important}.pane{border:0;padding:0}}
.nb-wrap:empty{display:none}
.nb-wrap .next-box:not(.warn){background:color-mix(in srgb,var(--ph) 9%,var(--surface));border-color:color-mix(in srgb,var(--ph) 40%,var(--line))}
.nb-wrap .next-box:not(.warn) .eyebrow{color:var(--ph)}

/* ===== vous êtes en mode… ===== */
[data-role=admin]{--rl:#16324a}[data-role=bureau]{--rl:#0b7fc4}[data-role=commercial]{--rl:#7a4cd0}[data-role=tech]{--rl:#18945a}
:root[data-theme=dark] [data-role=admin]{--rl:#9cc7e0}
#whoami{display:flex;flex-direction:column;gap:10px}
.whoami{display:flex;gap:14px;align-items:center;background:var(--surface);border:1.5px solid color-mix(in srgb,var(--rl) 35%,var(--line));border-left:7px solid var(--rl);border-radius:14px;padding:14px 16px}
.whoami .wa-ico{flex:none;display:grid;place-items:center;width:44px;height:44px;border-radius:12px;background:var(--rl);color:#fff}
.whoami .wa-ico .i{width:24px;height:24px}
.whoami small{display:block;font:750 10px var(--f-body);letter-spacing:.12em;color:var(--muted)}
.whoami b{display:block;font-size:20px;color:var(--rl);letter-spacing:-.02em;margin:2px 0}
.whoami p{margin:0;font-size:13px;color:var(--muted)}
.team-strip .legend{display:block;margin-bottom:6px}
.ts-list{display:flex;gap:8px;overflow-x:auto;scrollbar-width:none;padding-bottom:2px}
.ts-list::-webkit-scrollbar{display:none}
.ts-list button{flex:none;display:flex;align-items:center;gap:9px;text-align:left;cursor:pointer;font:inherit;color:var(--ink);background:var(--surface);border:1.5px solid var(--line);border-top:4px solid var(--rl);border-radius:12px;padding:8px 12px 8px 9px}
.ts-list button:hover{border-color:var(--rl)}
.ts-list .avatar{width:32px;height:32px;font-size:12px;border-radius:9px;background:var(--rl);color:#fff;display:grid;place-items:center}
.ts-list b{display:block;font-size:13px}.ts-list small{display:block;font-size:11px;color:var(--muted);white-space:nowrap}
.viewas{background:#ffd76a;color:#3d2c00;position:relative;z-index:5}
.viewas .wrap{display:flex;align-items:center;justify-content:space-between;gap:10px;padding-block:8px!important;font-size:13px}
.viewas span{display:inline-flex;align-items:center;gap:6px}.viewas .i{width:16px;height:16px}
.viewas .mini{min-height:34px;padding:6px 12px;background:#3d2c00;color:#fff;flex:none}
/* frise des 5 étapes sur la carte */
.strip{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:3px;margin-top:4px}
.strip i{font-style:normal;font-size:10.5px;font-weight:650;text-align:center;padding:3px 2px;border-radius:5px;background:var(--sunk);color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.strip i.done{background:color-mix(in srgb,var(--ok,#1f8a55) 16%,var(--surface));color:var(--ok,#1f8a55)}
.strip i.cur{background:var(--ph);color:#fff}
.strip i.no{background:color-mix(in srgb,var(--ph-refus) 15%,var(--surface));color:var(--ph-refus)}
:root[data-theme=dark] .strip i.cur{color:#0d1d27}
/* historique de la fiche */
.hist{background:var(--surface);border:1.5px solid color-mix(in srgb,var(--ph) 35%,var(--line));border-radius:16px;padding:14px 16px}
.hist-head .eyebrow{color:var(--ph)}
.hist-head b{display:block;font-size:18px;margin:3px 0 10px;letter-spacing:-.02em}
.hist ol{list-style:none;margin:0;padding:0;display:flex;flex-direction:column}
.hist li{display:flex;gap:12px;position:relative;padding-bottom:12px}
.hist li:last-child{padding-bottom:0}
.hist li:not(:last-child)::before{content:"";position:absolute;left:13px;top:28px;bottom:2px;width:2px;background:var(--line)}
.hist li.done:not(:last-child)::before{background:color-mix(in srgb,var(--ok,#1f8a55) 45%,var(--line))}
.h-dot{flex:none;display:grid;place-items:center;width:28px;height:28px;border-radius:50%;background:var(--sunk);color:var(--muted);font:750 12px var(--f-body);border:2px solid var(--line)}
.h-dot .i{width:15px;height:15px}
.hist li.done .h-dot{background:var(--ok,#1f8a55);border-color:var(--ok,#1f8a55);color:#fff}
.hist li.cur .h-dot{background:var(--ph);border-color:var(--ph);color:#fff}
.hist li.no .h-dot{background:var(--ph-refus);border-color:var(--ph-refus);color:#fff}
.hist li b{display:block;font-size:14px}
.hist li:not(.done):not(.cur):not(.no) b{color:var(--muted);font-weight:600}
.hist li small{display:block;font-size:12.5px;color:var(--muted);margin-top:1px}
.hist li.cur b{color:var(--ph)}
.hist li em{display:block;font-style:normal;font-size:13px;font-weight:650;margin-top:5px;background:color-mix(in srgb,var(--ph) 10%,var(--surface));border-radius:8px;padding:7px 10px}
#agendaDialog .btn{text-decoration:none;text-align:center;display:flex;justify-content:center}
@media print{.hist,.viewas,#whoami{display:none!important}}

/* ===== visite : accès, mesures ===== */
.acces-box{display:flex;flex-direction:column;gap:12px;background:var(--sunk);border:1px solid var(--line);border-radius:12px;padding:14px}
.acces-box>.legend{color:var(--accent)}
.two{display:grid;grid-template-columns:1fr 1fr;gap:10px}
@media(max-width:420px){.two{grid-template-columns:1fr}}
/* fiche technique visuelle */
.vsheet h4{display:flex;align-items:center;gap:7px;font-size:13px;letter-spacing:.02em;margin:16px 0 8px;color:var(--ink)}
.vsheet h4 .i{width:16px;height:16px;color:var(--accent)}
.vs-chips{display:flex;flex-wrap:wrap;gap:6px}
.vs-chip{display:inline-flex;flex-direction:column;background:var(--sunk);border:1px solid var(--line);border-radius:9px;padding:5px 10px;font-size:13px;font-weight:650}
.vs-chip small{font-size:9.5px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}
.vs-room{display:grid;grid-template-columns:120px minmax(0,1fr);gap:12px;padding:10px 0;border-top:1px solid var(--line)}
.vs-room:first-of-type{border-top:0}
.vs-cover{width:120px;height:90px;border-radius:10px;overflow:hidden;border:1px solid var(--line);padding:0;cursor:pointer;background:var(--sunk)}
.vs-cover img{width:100%;height:100%;object-fit:cover;display:block}
.vs-cover.empty{display:grid;place-items:center;align-content:center;gap:2px;color:var(--muted);cursor:default}
.vs-cover.empty small{font-size:10px}
.vs-body{display:flex;flex-direction:column;gap:3px;min-width:0;font-size:13px}
.vs-body b{font-size:15px}
.vs-body span{display:flex;align-items:center;gap:5px;color:var(--muted)}.vs-body .i{width:14px;height:14px;flex:none}
.vs-body .vs-unit{color:var(--ink);font-weight:600}
.vs-meas{font-weight:650;color:var(--accent)!important}
.vs-body .thumbs{margin-top:4px}
@media(max-width:420px){.vs-room{grid-template-columns:96px minmax(0,1fr)}.vs-cover{width:96px;height:76px}}
/* fiche d'intervention technicien */
.intervention .row dd b{font-size:15px}
.intervention .consignes{white-space:pre-wrap;background:#fff6d8;color:#5a4300;border-radius:8px;padding:8px 10px;font-weight:600}
:root[data-theme=dark] .intervention .consignes{background:#3a3010;color:#ffe4a0}
.stock h3{display:flex;align-items:center;gap:8px}
.stock-n{margin-left:auto;font-size:12px;background:var(--sunk);border-radius:999px;padding:2px 10px;color:var(--muted)}
.stock-list{list-style:none;margin:0;padding:0 16px}
.stock-list li{border-top:1px solid var(--line)}
.stock-list li:first-child{border-top:0}
.stock-list label{display:grid;grid-template-columns:26px 58px minmax(0,1fr);align-items:center;gap:8px;padding:10px 0;cursor:pointer}
.stock-list input{width:22px;height:22px;accent-color:var(--ok,#1f8a55)}
.stock-list .q{font-weight:750;font-variant-numeric:tabular-nums}
.stock-list .w b{display:block;font-size:14px}.stock-list .w small{display:block;font-size:12px;color:var(--muted)}
.stock-list label:has(input:checked) .w b{text-decoration:line-through;color:var(--muted)}
.stock .subtle{padding:0 16px 14px}
/* dossier : photomontage */
.montage-box{display:flex;flex-direction:column;gap:10px;border:1.5px dashed var(--accent);border-radius:12px;padding:14px;background:color-mix(in srgb,var(--accent) 6%,var(--surface))}
.montage-box .legend{color:var(--accent)}
.ds-up{cursor:pointer;justify-content:center}
.ds-ph{position:relative}
.ds-ph .ds-dl{display:block;font-size:11px;font-weight:700;color:var(--accent);text-decoration:none;padding:2px 0 4px}
.ds-ph.montage{outline:2px solid var(--accent);border-radius:10px}
#lbDl{text-decoration:none}
.vsheet{padding-bottom:14px}
.vsheet>:not(h3){margin-left:16px;margin-right:16px}
.vs-room{border-top:1px solid var(--line)}

/* fourchette de prix */
.estim{display:flex;gap:12px;align-items:flex-start;background:color-mix(in srgb,var(--ph-devis,#df7408) 9%,var(--surface));border:1.5px solid color-mix(in srgb,var(--ph-devis,#df7408) 40%,var(--line));border-radius:14px;padding:14px 16px}
.estim>.i{flex:none;width:24px;height:24px;color:var(--ph-devis,#df7408);margin-top:2px}
.estim .eyebrow{color:var(--ph-devis,#df7408)}
.estim b{display:block;font-size:20px;margin:3px 0;letter-spacing:-.02em}
.estim p{margin:0;font-size:13px;color:var(--muted)}

#progress.progress{grid-template-columns:repeat(6,minmax(0,1fr))!important;gap:5px}
#progress button{font-size:9px;letter-spacing:.02em}

.whoami .wa-new{margin-left:auto;flex:none;width:auto;white-space:nowrap}
@media(max-width:700px){.whoami .wa-new{display:none}}

/* ===== tarifs ===== */
.tf-tools{display:flex;flex-wrap:wrap;gap:8px}.tf-tools .btn{width:auto;flex:1 1 200px}
.tf-cat h3 small{font-size:12px;color:var(--muted);font-weight:600}
.tf{display:flex;flex-direction:column;gap:6px}
.tf-main{display:grid;grid-template-columns:minmax(0,1fr) 120px;gap:6px}
.tf-ref{font-size:13px!important;color:var(--muted)}
.tf-catsel{max-width:150px;font-size:12px!important}
.tf-maj{font-size:11px;color:var(--muted)}
.tf-bar{position:sticky;bottom:12px;z-index:3}
.tf-bar.dirty .btn{box-shadow:0 6px 24px #102f4030;background:var(--ok,#1f8a55)}
.tf-import{border:1.5px solid var(--accent)}
.tf-import textarea{width:100%;font:13px ui-monospace,monospace;border:1px solid var(--line);border-radius:10px;padding:10px;background:var(--surface);color:var(--ink)}
.tf-map{display:flex;flex-wrap:wrap;gap:8px}
.tf-map label{display:flex;flex-direction:column;gap:3px;min-width:120px;flex:1}
.tf-map small{font-size:11px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.tf-sum{display:flex;flex-wrap:wrap;gap:6px}
.tf-sum span{font-size:12px;font-weight:700;border-radius:999px;padding:4px 10px}
.tf-sum .new,.tf-prev .new b{background:#e3f4ea;color:#1f7a4a}.tf-sum .up,.tf-prev .up b{background:#fff0dc;color:#9a5a00}.tf-sum .skip{background:var(--sunk);color:var(--muted)}
.tf-prev{max-height:320px;overflow:auto;border:1px solid var(--line);border-radius:10px}
.tf-prev>div{display:flex;justify-content:space-between;gap:10px;align-items:center;padding:7px 10px;border-top:1px solid var(--line);font-size:13px}
.tf-prev>div:first-child{border-top:0}
.tf-prev small{color:var(--muted)}
.tf-prev b{flex:none;font-size:12px;border-radius:6px;padding:2px 8px;white-space:nowrap}
.tf-prev .same,.tf-prev .skip{color:var(--muted)}
@media(max-width:600px){.tf-main{grid-template-columns:1fr}.tf-catsel{max-width:110px}}
#tfPanel:not(:empty)~.tf-bar{display:none}

/* corrections et options de devis */
.edit-bar{display:flex;flex-direction:column;gap:6px;background:var(--sunk);border:1px dashed var(--line);border-radius:12px;padding:12px}
.room-del{margin-left:auto;color:var(--danger,#c0392b)!important;font-size:12px}
.dv-opts{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:4px}
.dv-opts button{display:flex;flex-direction:column;align-items:flex-start;gap:1px;cursor:pointer;font:inherit;color:var(--ink);background:var(--surface);border:1.5px solid var(--line);border-radius:10px;padding:8px 12px}
.dv-opts button small{font-size:11.5px;color:var(--muted)}
.dv-opts button[aria-pressed=true]{border-color:var(--ph-devis,#df7408);background:color-mix(in srgb,var(--ph-devis,#df7408) 10%,var(--surface))}
.dv-opts .dv-opt-add{border-style:dashed;color:var(--accent);font-weight:650;justify-content:center}
.dv-opt-tools{display:flex;gap:14px;margin-bottom:6px}
.dv-choose{display:flex;flex-direction:column;gap:8px}

/* étapes sautées */
.hist li.skip .h-dot{background:var(--sunk);border-style:dashed}
.hist li.skip b{color:var(--muted)!important;font-weight:600}
.strip i.skip{background:transparent;border:1px dashed var(--line);color:var(--muted)}
.inter-free{margin:0;font-size:13px;font-weight:600;background:color-mix(in srgb,var(--ph-pose,#18945a) 10%,var(--surface));border-radius:10px;padding:10px 12px}

/* identité et accès */
.three{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.acces-box .acc-appart,.acces-box .acc-maison{display:none;flex-direction:column;gap:10px}
.acces-box[data-log=Appartement] .acc-appart,.acces-box[data-log="Local pro"] .acc-appart,.acces-box[data-log=Maison] .acc-maison{display:flex}
.acces-box .field{gap:4px}
@media(max-width:420px){.three{grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}}

/* ===== affichage : liste / jour / semaine / mois ===== */
.viewmode{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:4px;background:var(--sunk);border:1px solid var(--line);border-radius:12px;padding:4px}
.viewmode button{border:0;background:transparent;color:var(--muted);font:700 13px var(--f-body);padding:9px 4px;border-radius:9px;cursor:pointer}
.viewmode button[aria-selected=true]{background:var(--surface);color:var(--ink);box-shadow:0 1px 4px #0f243318}
.date-filter{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.date-filter input{min-height:40px;padding:6px 8px;border:1px solid var(--line);border-radius:9px;background:var(--surface);color:var(--ink);font:inherit;font-size:14px}
.date-filter .legend{margin-right:2px}
[data-k=visite]{--ev:var(--ph-visite)}[data-k=pose]{--ev:var(--ph-pose)}[data-k=depannage]{--ev:#d9480f}[data-k=entretien]{--ev:#7a4cd0}[data-k=autre]{--ev:#5d6a73}
.cal-nav{display:flex;align-items:center;gap:6px}
.cal-nav .hbtn{min-width:42px;font-size:20px;background:var(--surface);color:var(--ink);border:1px solid var(--line)}
.cal-pick{margin-left:auto;min-height:40px;padding:6px 8px;border:1px solid var(--line);border-radius:9px;background:var(--surface);color:var(--ink);font:inherit}
.cal-title{display:flex;align-items:baseline;justify-content:space-between;gap:10px;margin:12px 0 6px}
.cal-title h3{font-size:20px;text-transform:capitalize;letter-spacing:-.02em}
.cal-title span{font-size:12px;color:var(--muted);font-weight:650}
.cal-legend{display:flex;gap:12px;flex-wrap:wrap;margin-bottom:10px}
.cal-legend i{font-style:normal;font-size:11px;font-weight:650;color:var(--muted);display:inline-flex;align-items:center;gap:5px}
.cal-legend i::before{content:"";width:10px;height:10px;border-radius:3px;background:var(--ev)}
.cev{display:flex;gap:10px;align-items:stretch;width:100%;text-align:left;cursor:pointer;font:inherit;color:var(--ink);background:var(--surface);border:1px solid var(--line);border-left:5px solid var(--ev);border-radius:10px;padding:9px 11px}
.cev:hover{border-color:var(--ev)}
.cev.done{opacity:.6}
.cev-t{flex:none;font-weight:800;font-variant-numeric:tabular-nums;color:var(--ev);min-width:42px}
.cev-b{display:flex;flex-direction:column;min-width:0}
.cev-b b{font-size:14px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cev-b small{font-size:12px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cday{display:flex;flex-direction:column;gap:8px}
.cal-empty{border:1.5px dashed var(--line);border-radius:12px;padding:24px;text-align:center;color:var(--muted)}
.cweek{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:6px}
.cw-day{display:flex;flex-direction:column;gap:5px;background:var(--sunk);border-radius:10px;padding:6px;min-height:120px;min-width:0}
.cw-day.today{outline:2px solid var(--accent)}
.cw-h{display:flex;align-items:baseline;gap:5px;border:0;background:none;cursor:pointer;color:var(--ink);font:inherit;padding:2px 2px 4px;text-transform:capitalize}
.cw-h span{font-size:11px;color:var(--muted);font-weight:700}.cw-h b{font-size:16px}
.cw-h em{margin-left:auto;font-style:normal;font-size:11px;font-weight:800;background:var(--accent);color:#fff;border-radius:999px;padding:0 7px}
.cw-day .cev{padding:6px 7px;gap:6px;border-left-width:4px}
.cw-day .cev-t{min-width:0;font-size:12px}.cw-day .cev-b b{font-size:12px}
.cmonth .cm-head,.cm-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:4px}
.cm-head span{font-size:11px;font-weight:700;color:var(--muted);text-align:center;text-transform:uppercase}
.cm-day{display:flex;flex-direction:column;gap:2px;align-items:stretch;min-height:92px;min-width:0;padding:5px;border:1px solid var(--line);border-radius:9px;background:var(--surface);cursor:pointer;font:inherit;color:var(--ink);text-align:left}
.cm-day.out{opacity:.45}.cm-day.today{outline:2px solid var(--accent)}
.cm-day b{font-size:13px}
.cm-day i{font-style:normal;font-size:10.5px;font-weight:650;background:color-mix(in srgb,var(--ev) 14%,var(--surface));color:var(--ev);border-radius:4px;padding:1px 4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cm-day i.done{opacity:.55}
.cm-day small{font-size:10.5px;color:var(--muted);font-weight:700}
.cal-unplanned{margin-top:12px;width:100%;border:1.5px dashed var(--ph-contact);background:color-mix(in srgb,var(--ph-contact) 7%,var(--surface));color:var(--ph-contact);font:700 13px var(--f-body);border-radius:12px;padding:12px;cursor:pointer}
@media(max-width:800px){
  .cweek{grid-template-columns:1fr}
  .cw-day{min-height:0}.cw-day.empty .cw-h{opacity:.6}
  .cw-day .cev{padding:8px 10px}.cw-day .cev-b b{font-size:13px}
  .cm-day{min-height:58px;padding:3px}
  .cm-day i{font-size:0;height:6px;padding:0;border-radius:3px;background:var(--ev)}
  .cal-pick{max-width:150px}
}

/* ===== présentation : liste / carrés / colonnes ===== */
.list-tools{flex-wrap:wrap}
.layout-pick{display:flex;gap:3px;background:var(--sunk);border:1px solid var(--line);border-radius:10px;padding:3px}
.layout-pick button{display:inline-flex;align-items:center;gap:5px;border:0;background:transparent;color:var(--muted);font:700 12px var(--f-body);padding:6px 10px;border-radius:7px;cursor:pointer}
.layout-pick button span{font-size:14px}
.layout-pick button[aria-pressed=true]{background:var(--surface);color:var(--ink);box-shadow:0 1px 4px #0f243318}
.list.rows{display:flex!important;flex-direction:column;gap:6px}
.frow{list-style:none;background:var(--surface);border:1px solid var(--line);border-left:5px solid var(--ph);border-radius:10px;overflow:hidden}
.fr-line{display:flex;align-items:center;gap:10px;width:100%;text-align:left;border:0;background:none;cursor:pointer;font:inherit;color:var(--ink);padding:9px 10px 9px 12px}
.fr-main{display:flex;flex-direction:column;min-width:0;flex:1}
.fr-main b{font-size:14.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.fr-main small{font-size:12px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.fr-main small.todo{color:var(--ph);font-weight:700}
.fr-main small.warn{color:#9a6400;font-weight:700}
.fr-side{display:flex;flex-direction:column;align-items:flex-end;gap:3px;flex:none}
.fr-side small{font-size:11px;color:var(--muted);font-weight:650;text-transform:capitalize}
.fr-side .status-badge{font-size:10px;padding:3px 7px}
.fr-chev{flex:none;color:var(--muted);font-size:18px;transition:transform .15s}
.frow.open .fr-chev{transform:rotate(90deg)}
.frow.open{border-color:var(--ph)}
.fr-more{display:flex;flex-direction:column;gap:5px;padding:2px 12px 12px;border-top:1px dashed var(--line)}
.fr-more .fc-addr{margin-top:8px}
.fr-act{display:flex;gap:8px;margin-top:6px}
.fr-act .mini{flex:1;text-decoration:none}
.board .list.rows{gap:6px}
.board .frow .fr-side small{display:none}
@media(max-width:700px){.list-tools{gap:8px}.layout-pick{order:-1;width:100%}.layout-pick button{flex:1;justify-content:center}}
.fr-more .fc-next{display:none}

/* avant / après */
.ds-mk{display:block;width:100%;margin-top:4px;border:1.5px dashed var(--accent);background:color-mix(in srgb,var(--accent) 7%,var(--surface));color:var(--accent);font:700 11.5px var(--f-body);border-radius:8px;padding:6px 4px;cursor:pointer}
.doc-pair{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:14px;break-inside:avoid}
.doc-pair figure{margin:0}
.doc-pair img{width:100%;aspect-ratio:4/3;object-fit:cover;border:1px solid #d8e2ea;border-radius:6px}
.doc-pair figcaption{font-size:12px;color:#5d7282;margin-top:4px}
.doc-pair figure:last-child img{outline:2px solid #087eac}

#pompeNbWrap{display:flex;flex-direction:column;gap:8px}#pompeNbWrap[hidden]{display:none}

/* couleurs */
.opts.colors .opt-btn{display:inline-flex;align-items:center;gap:7px}
.sw{display:inline-block;width:16px;height:16px;border-radius:50%;border:1px solid #0003;flex:none}
#cacheColorWrap{display:flex;flex-direction:column;gap:6px;margin-top:10px}#cacheColorWrap[hidden]{display:none}
.legend small{text-transform:none;letter-spacing:0;font-weight:500;color:var(--muted)}

/* bande de photos sur la fiche */
.pstrip h3 .linkish{margin-left:auto;font-size:13px}
.ps-row{display:flex;gap:8px;overflow-x:auto;padding:0 16px 14px;scroll-snap-type:x mandatory}
.ps-item{flex:none;width:150px;scroll-snap-align:start;display:flex;flex-direction:column;gap:4px;border:0;background:none;padding:0;cursor:pointer;text-align:left;font:inherit;color:var(--ink)}
.ps-item img{width:150px;height:112px;object-fit:cover;border-radius:10px;border:1px solid var(--line);display:block}
.ps-item span{font-size:11.5px;color:var(--muted);line-height:1.3;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
@media(min-width:900px){.ps-row{flex-wrap:wrap;overflow:visible}}

/* groupes extérieurs */
.ge-config{background:var(--sunk);border:1px solid var(--line);border-radius:12px;padding:12px}
.ge-config[hidden]{display:none}
#o-geconf{flex-direction:column;align-items:stretch}#o-geconf .opt-btn{text-align:left}
.ge-row{display:flex;flex-direction:column;gap:4px;padding:8px 0;border-top:1px solid var(--line)}
.ge-row>span{font-weight:700;font-size:13px}
.ge-sum{margin:6px 0 0;font-size:13px;font-weight:650;color:var(--accent)}
.ge-sum:empty{display:none}

.goul-autre{width:120px;min-height:44px;border:1.5px dashed var(--line);border-radius:10px;padding:8px 10px;font:inherit;background:var(--surface);color:var(--ink)}

/* emplacement par groupe */
.ge-spots{display:flex;flex-direction:column;gap:10px;background:var(--sunk);border:1px solid var(--line);border-radius:12px;padding:12px;margin-bottom:12px}
.ge-spot{display:flex;flex-direction:column;gap:6px;padding-top:8px;border-top:1px solid var(--line)}
.ge-spot b{font-size:13px}
.ge-spot input{min-height:40px;border:1px solid var(--line);border-radius:9px;padding:8px 10px;font:inherit;background:var(--surface);color:var(--ink)}
.vs-ge{display:flex;flex-direction:column;gap:3px;padding:8px 0;border-top:1px solid var(--line);font-size:13px}
.vs-ge span{display:flex;align-items:center;gap:5px;color:var(--muted)}.vs-ge .i{width:14px;height:14px}

.dv-sync{display:flex;gap:10px;align-items:flex-start;background:#fff4dc;border:1.5px solid #f0c060;border-radius:12px;padding:12px;color:#5a4300}
.dv-sync>.i{flex:none;width:20px;height:20px;margin-top:2px}
.dv-sync>div{display:flex;flex-direction:column;gap:6px}.dv-sync span{font-size:13px}
.dv-sync .btn{width:auto;align-self:flex-start}
:root[data-theme=dark] .dv-sync{background:#3a3010;color:#ffe4a0;border-color:#7a6220}

/* calendrier de sélection de dates */
.date-filter{position:relative}
.date-btn{display:inline-flex;align-items:center;gap:8px;min-height:42px;padding:8px 14px;border:1px solid var(--line);border-radius:10px;background:var(--surface);color:var(--ink);font:600 14px var(--f-body);cursor:pointer}
.date-btn .i{width:18px;height:18px;color:var(--accent)}
.date-btn.on{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 9%,var(--surface));color:var(--accent)}
.dpick{position:absolute;top:calc(100% + 6px);left:0;z-index:20;width:min(330px,calc(100vw - 32px));background:var(--surface);border:1px solid var(--line);border-radius:14px;box-shadow:0 10px 40px #0f243330;padding:12px}
.dp-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}
.dp-head b{text-transform:capitalize;font-size:15px}
.dp-head button{border:1px solid var(--line);background:var(--surface);color:var(--ink);border-radius:8px;width:36px;height:34px;font-size:18px;cursor:pointer}
.dp-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:2px}
.dp-grid span{text-align:center;font-size:11px;font-weight:700;color:var(--muted);padding:4px 0}
.dp-grid button{height:38px;border:0;background:none;color:var(--ink);font:600 14px var(--f-body);border-radius:8px;cursor:pointer}
.dp-grid button:hover{background:var(--sunk)}
.dp-grid button.out{color:var(--muted);opacity:.5}
.dp-grid button.today{box-shadow:inset 0 0 0 1.5px var(--accent)}
.dp-grid button.in{background:color-mix(in srgb,var(--accent) 15%,var(--surface));border-radius:0}
.dp-grid button.start,.dp-grid button.end{background:var(--accent);color:#fff}
.dp-hint{margin:8px 0;font-size:12px;color:var(--muted)}
.dp-quick{display:flex;flex-wrap:wrap;gap:6px}
.dp-quick button{border:1px solid var(--line);background:var(--surface);color:var(--ink);border-radius:8px;padding:6px 10px;font:600 12px var(--f-body);cursor:pointer}
.dp-quick .ok{margin-left:auto;background:var(--accent);color:#fff;border-color:var(--accent);padding:6px 16px}
