/* Boussole Projets — compléments au socle (éditeur de devis, fiche projet, planning, terrain) */
.que-tel{display:none}
@media(min-width:761px){.que-tel{display:none!important}}
@media(max-width:760px){.que-large{display:none}.que-tel{display:block}}
.deux-btn{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.deux-btn .btn{width:100%;padding:0 10px}
@media(max-width:420px){.deux-btn{grid-template-columns:1fr}}
.ligne .av svg{width:18px;height:18px}
.carte>.t .lien{margin-left:auto}

/* ---------- Éditeur de devis ---------- */
.dv-titre{font-size:16px}
.dv-grille{display:grid;grid-template-columns:minmax(0,1fr);gap:0 14px;align-items:start}
.dv-cote{max-width:460px;margin-left:auto;width:100%}
@media(min-width:1600px){.dv-grille{grid-template-columns:minmax(0,1fr) 320px}.dv-cote{position:sticky;top:12px;max-width:none}}
.dv-form .form{grid-template-columns:repeat(4,minmax(0,1fr))}.dv-form .form>label:not(.full){grid-column:span 1}.dv-form .form>.full{grid-column:1/-1}
@media(max-width:1000px){.dv-form .form{grid-template-columns:1fr 1fr}}@media(max-width:560px){.dv-form .form{grid-template-columns:1fr}}
.dv-totaux .montants td{padding:6px 16px}
.dv-marge{border-top:1px solid var(--trait);margin-top:6px;padding:10px 16px 14px;font-size:13px;display:flex;flex-direction:column;gap:6px}
.dv-marge>div:not(.petit){display:flex;justify-content:space-between;gap:10px}
.dv-marge span{color:var(--gris)}
.dv-entetes,.dv-l{display:grid;grid-template-columns:30px minmax(0,1fr) 64px 60px 84px 54px 74px 92px 30px 34px;gap:6px;align-items:center;padding:0 12px}
.dv-entetes{font-size:11px;font-weight:800;letter-spacing:.05em;text-transform:uppercase;color:var(--gris);padding-bottom:6px}
.dv-entetes .d,.dv-l .d{text-align:right}
.dv-l{padding-top:6px;padding-bottom:6px;border-top:1px solid var(--trait2)}
.dv-l .inp{height:36px;padding:0 8px;font-size:13.5px;width:100%}
.dv-l textarea.inp{height:auto;margin-top:4px;font-size:12.5px;padding:6px 8px}
.dv-l .ib{width:32px;height:32px}
.dv-l.opt{background:#FAFBFD}
.dv-l.opt .dv-tot{color:var(--gris);font-style:italic}
.dv-pos .ib{box-shadow:none;background:none;color:var(--gris2)}
.dv-tot{font-size:13.5px;white-space:nowrap}
.dv-opt{display:flex;align-items:center;gap:5px;font-size:12px;font-weight:700;color:var(--gris)}
.dv-opt input{width:16px;height:16px;accent-color:var(--acc)}
.dv-opt span{display:none}
@media(max-width:900px){.dv-opt span{display:inline}}
.dv-sec{grid-template-columns:34px minmax(0,1fr) 120px 34px;background:var(--acc-f)}
.dv-sec .inp{font-weight:800;background:#fff}
.dv-sec-tot{text-align:right;font-weight:800;color:var(--acc-d);font-size:13.5px}
.dv-ajouts{display:flex;gap:8px;flex-wrap:wrap;padding:12px 16px 16px;border-top:1px solid var(--trait2)}
@media(max-width:900px){
  .dv-entetes{display:none}
  .dv-l{grid-template-columns:repeat(4,minmax(0,1fr)) 34px;grid-template-areas:"lib lib lib lib pos" "qte un pu tva x" "rem tot tot opt opt";padding:10px 12px;row-gap:6px}
  .dv-l>.dv-pos{grid-area:pos}.dv-l>.dv-lib{grid-area:lib}.dv-l>[data-k=qte]{grid-area:qte}.dv-l>[data-k=unite]{grid-area:un}.dv-l>[data-k=pu]{grid-area:pu}.dv-l>[data-k=tva]{grid-area:tva}.dv-l>[data-k=remise]{grid-area:rem}.dv-l>.dv-tot{grid-area:tot;align-self:center}.dv-l>.dv-opt{grid-area:opt;justify-self:end}.dv-l>.ib{grid-area:x}
  .dv-sec{grid-template-columns:34px minmax(0,1fr) 34px;grid-template-areas:none}.dv-sec .dv-sec-tot{display:none}
}
.dv-recap tr.sec td{font-weight:800;background:var(--fond);font-size:12.5px;text-transform:uppercase;letter-spacing:.04em;color:var(--gris)}
.dv-recap tr.mut td{color:var(--gris2)}
.cat-liste{max-height:52vh;overflow-y:auto;border:1px solid var(--trait);border-radius:10px}
.grp-cat{font-size:11px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--gris);padding:10px 12px 4px;background:#FBFCFE;position:sticky;top:0}
.cat-item{display:flex;justify-content:space-between;gap:12px;width:100%;text-align:left;padding:10px 12px;border-top:1px solid var(--trait2);font-size:13.5px}
.cat-item b{white-space:nowrap;color:var(--acc-d)}
.cat-item:hover{background:var(--fond)}
.cat-item.ajoute{background:var(--vert-f)}
.sig-img{max-width:260px;width:100%;border:1px solid var(--trait);border-radius:10px;background:#fff;margin-bottom:8px}
.sup-l{display:grid;grid-template-columns:1fr 1fr;gap:10px}

/* ---------- Projets ---------- */
.pj-av{display:flex;align-items:center;gap:8px;min-width:120px}
.pj-av span{font-size:12px;font-weight:800;color:var(--gris);min-width:34px;text-align:right}
.pj-av.mini{min-width:110px;max-width:140px}
.pj-cartes{display:flex;flex-direction:column;gap:8px}
.pj-carte{display:block;width:100%;text-align:left;background:var(--surface);border-radius:12px;box-shadow:var(--ombre);padding:12px 14px}
.pj-carte .l1{display:flex;align-items:center;gap:8px;justify-content:space-between}
.pj-carte .l1 b{font-size:14.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pj-carte .l2{font-size:12.5px;color:var(--gris);margin-top:2px}
.pj-carte .l3{display:flex;align-items:center;gap:8px;margin-top:8px;font-size:12.5px}
.pj-carte .l3 span{flex:1.3;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pj-carte .l3 b{font-size:12px}
.prog.rouge i{background:var(--rouge)}
.pj-entete{padding:16px}
.pj-e1{display:flex;align-items:center;gap:12px}
.pj-e1 .co{flex:1;min-width:0}
.pj-e1 h2{font-size:19px;font-weight:800}
.pj-e1 .mut{font-size:13px;margin-top:2px}
.pj-ic{width:44px;height:44px;border-radius:12px;background:var(--acc-f);color:var(--acc-d);display:flex;align-items:center;justify-content:center;flex-shrink:0}
.pj-ic svg{width:22px;height:22px}
.pj-statut{max-width:150px}
.pj-e2{display:flex;align-items:center;gap:16px;flex-wrap:wrap;margin-top:12px;font-size:13px;color:var(--gris)}
.pj-e2>span{display:inline-flex;align-items:center;gap:6px}
.pj-e2 svg{width:16px;height:16px}
.pj-e2-av{flex:1;min-width:160px;max-width:300px}
.pj-e2-av b{color:var(--ink);font-size:12.5px}
@media(max-width:600px){.pj-e1{flex-wrap:wrap}.pj-statut{max-width:none;width:100%}.pj-e2{gap:10px}}
.pj-ong{margin-bottom:12px}
.pj-ong .onglets{max-width:100%}
.etapes-mini{padding:0 16px 10px;display:flex;flex-direction:column;gap:0}
.etapes-mini>div{display:flex;align-items:center;gap:10px;padding:6px 0;font-size:13.5px;color:var(--gris);position:relative}
.etapes-mini .pt{width:20px;height:20px;border-radius:50%;border:2px solid var(--trait);display:flex;align-items:center;justify-content:center;flex-shrink:0;background:#fff}
.etapes-mini .pt svg{width:12px;height:12px}
.etapes-mini .fait{color:var(--ink)}
.etapes-mini .fait .pt{background:var(--vert);border-color:var(--vert);color:#fff}
.etapes-mini .cours{color:var(--ink);font-weight:800}
.etapes-mini .cours .pt{border-color:var(--acc)}
.etapes-mini>div>span:nth-child(2){flex:1}
.note-saisie{display:flex;flex-direction:column;gap:6px}
.note-saisie>div{display:flex;justify-content:space-between;align-items:center;gap:8px;flex-wrap:wrap}
.coche-mini{display:inline-flex;align-items:center;gap:6px;font-size:12.5px;font-weight:600;color:var(--gris)}
.coche-mini input{width:16px;height:16px;accent-color:var(--acc)}
.note{padding:9px 16px;border-top:1px solid var(--trait2);font-size:13.5px}
.note.pub{border-left:3px solid var(--acc)}
.rent{padding:0 16px 12px;display:flex;flex-direction:column;gap:7px;font-size:13.5px}
.rent>div:not(.prog){display:flex;justify-content:space-between;gap:10px}
.rent span{color:var(--gris)}
.rent .tot{border-top:1px solid var(--trait);padding-top:8px;font-size:14.5px}
.coche-rond{width:30px;height:30px;border-radius:50%;border:2px solid var(--trait);display:flex;align-items:center;justify-content:center;flex-shrink:0;color:#fff}
.coche-rond.on{background:var(--vert);border-color:var(--vert)}
.coche-rond svg{width:15px;height:15px}
.etape.fait .p{color:var(--gris)}
.pieces{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:12px}
.piece{background:var(--surface);border-radius:12px;box-shadow:var(--ombre);overflow:hidden;display:flex;flex-direction:column}
.vignette{display:block;aspect-ratio:4/3;background:#EEF1F6 center/cover no-repeat}
.vignette.doc{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;color:var(--gris);font-weight:800;font-size:12px}
.vignette.doc svg{width:32px;height:32px}
.pi-b{padding:8px 10px 10px}
.pi-b .p{font-weight:700;font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pi-b .s{font-size:11.5px;color:var(--gris)}
.pi-a{display:flex;justify-content:space-between;margin-top:8px}
.pi-a .ib{width:33px;height:33px}
.metres{padding:0 16px}
.metre{display:grid;grid-template-columns:minmax(0,1fr) 100px 70px 38px;gap:6px;padding:4px 0}
.metre .d{text-align:right}

/* ---------- Planning ---------- */
.nav-sem{display:flex;align-items:center;gap:8px}
.nav-sem b{min-width:150px;text-align:center;font-size:14px}
.pl-carte{max-height:none}
.pl-grille{border-collapse:collapse;width:100%;min-width:980px;table-layout:fixed;font-size:12.5px}
.pl-grille th{font-size:11.5px;font-weight:800;color:var(--gris);text-transform:uppercase;letter-spacing:.04em;padding:9px 6px;border-bottom:1px solid var(--trait);background:#FBFCFE;text-align:left}
.pl-grille th.auj{color:var(--acc-d)}
.pl-grille td{border-bottom:1px solid var(--trait2);border-left:1px solid var(--trait2);vertical-align:top;padding:4px;height:56px}
.pl-grille td.auj{background:#F7FAFD}
.pl-grille td.we{background:#FBFBFC}
.pl-grille .pl-qui{width:170px;border-left:0}
.pl-grille td.pl-qui{display:flex;gap:8px;align-items:flex-start;padding:8px 10px;height:auto;border-left:0}
.pl-grille td.pl-qui .puce{margin-top:5px}
.pl-grille td.pl-qui .co{min-width:0}
.ell{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pl-it{display:block;width:100%;text-align:left;border-radius:7px;padding:4px 6px;margin-bottom:3px;background:var(--acc-f);border-left:3px solid var(--acc);line-height:1.25}
.pl-it b{display:block;font-size:11.5px;color:var(--acc-d)}
.pl-it span{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:12px}
.pl-it i{font-style:normal;font-size:11px;color:var(--vert);font-weight:700}
.pl-it.ct{background:#E9F5EF;border-left-color:#2E8B62}
.pl-it.ct b{color:#1E6B49}
.pl-it.fait{opacity:.62}
.pl-it.annule{opacity:.45;text-decoration:line-through;background:#F1F2F5;border-left-color:var(--gris2)}
.pl-it.conflit{box-shadow:inset 0 0 0 1.5px var(--rouge)}
.pl-legende{display:flex;gap:16px;flex-wrap:wrap;margin:-4px 0 10px}
.pl-legende span{display:inline-flex;align-items:center;gap:6px}
.pl-legende i{width:12px;height:12px;border-radius:3px;display:inline-block}
.lg-p{background:var(--acc-f);border-left:3px solid var(--acc)}.lg-c{background:#E9F5EF;border-left:3px solid #2E8B62}.lg-f{background:var(--acc-f);opacity:.55}
.pl-jour{background:var(--surface);border-radius:12px;box-shadow:var(--ombre);margin-bottom:10px;overflow:hidden}
.pl-jour.auj{box-shadow:var(--ombre),inset 0 0 0 1.5px var(--acc)}
.pl-jt{display:flex;justify-content:space-between;padding:10px 14px;font-weight:800;font-size:13.5px;background:#FBFCFE;border-bottom:1px solid var(--trait2)}
.pl-jt span{color:var(--gris)}
.pl-ligne{display:flex;gap:12px;align-items:center;width:100%;text-align:left;padding:10px 14px;border-top:1px solid var(--trait2)}
.pl-ligne:first-of-type{border-top:0}
.pl-ligne .h{font-weight:800;font-size:13px;min-width:44px;line-height:1.3}
.pl-ligne .co{flex:1;min-width:0;display:flex;flex-direction:column}
.pl-ligne .co b{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pl-ligne .co span{font-size:12.5px;color:var(--gris);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pl-ligne.fait{opacity:.65}.pl-ligne.annule{opacity:.45;text-decoration:line-through}
.pl-ligne.conflit{box-shadow:inset 3px 0 0 var(--rouge)}
.pl-rien{padding:10px 14px;color:var(--gris2);font-size:13px}
.pl-coches{display:flex;flex-wrap:wrap;gap:8px 14px}

/* ---------- Ma journée ---------- */
.it-liste{display:flex;flex-direction:column;gap:10px;margin-bottom:14px}
.it-carte{background:var(--surface);border-radius:14px;box-shadow:var(--ombre);overflow:hidden}
.it-carte.encours{box-shadow:var(--ombre),inset 4px 0 0 var(--ambre)}
.it-carte.fait{opacity:.75}
.it-haut{display:flex;gap:14px;align-items:flex-start;width:100%;text-align:left;padding:14px 16px}
.it-h{font-size:20px;font-weight:800;line-height:1.1;min-width:58px;display:flex;flex-direction:column}
.it-h small{font-size:12.5px;color:var(--gris);font-weight:700}
.it-haut .co{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px;font-size:13.5px}
.it-haut .co b{font-size:15.5px}
.it-act{display:flex;gap:8px;padding:0 16px 14px;flex-wrap:wrap}
.it-act .btn{flex:1;min-width:96px;height:46px}
@media(max-width:520px){.it-act .btn{min-width:calc(50% - 4px)}}

/* ---------- Événements, production, temps ---------- */
.ev-carte{display:flex;align-items:center;gap:14px;padding:12px 14px}
.ev-carte .co{flex:1;min-width:0}
.ev-carte .badges{display:flex;gap:6px;flex-wrap:wrap;margin-top:6px}
.ev-date{width:56px;flex-shrink:0;text-align:center;border-radius:12px;background:var(--acc-f);color:var(--acc-d);padding:6px 0;display:flex;flex-direction:column;line-height:1.1}
.ev-date b{font-size:20px}
.ev-date span{font-size:12px;font-weight:800;text-transform:uppercase}
.ev-date small{font-size:11px}
.ev-act{display:flex;gap:6px;flex-shrink:0}
@media(max-width:600px){.ev-carte{flex-wrap:wrap}.ev-act{width:100%}.ev-act .btn{flex:1}}
.tp-grille td,.tp-grille th{padding:8px 8px}
.tp-grille th.auj{color:var(--acc-d)}
.tp-h{width:72px;text-align:right;height:36px}
.tp-ph{height:36px;max-width:170px}

/* ---------- Relances ---------- */
.ligne.rl .av{background:var(--ambre-f);color:var(--ambre)}
.ligne.rl.rouge .av{background:var(--rouge-f);color:var(--rouge)}
.ligne.rl .p{white-space:normal}
.ligne.rl .s{white-space:normal}
.rl-b{display:flex;gap:6px;align-items:center;flex-shrink:0}
@media(max-width:520px){.ligne.rl{flex-wrap:wrap}.ligne.rl .rl-b{width:100%;justify-content:flex-end}}
.kpi .l{line-height:1.3}
.alerte-bandeau.signes>div{display:flex;flex-direction:column;gap:3px}
.alerte-bandeau.signes a{text-decoration:none;font-weight:600}
@media(max-width:860px){.entete>div:nth-child(2){flex:1;min-width:0}.entete .esp{display:none}.entete .sous{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.entete h1{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}}

.que-mobile{display:none}
.dv-barre{display:none}
@media(max-width:860px){.que-mobile{display:inline}
  .dv-barre{display:flex;align-items:center;gap:10px;position:fixed;left:0;right:0;bottom:calc(58px + env(safe-area-inset-bottom));background:var(--surface);border-top:1px solid var(--trait);padding:8px 16px;z-index:39;box-shadow:0 -4px 14px rgba(13,23,48,.06)}
  .dv-barre>div{flex:1;display:flex;flex-direction:column;line-height:1.25}.dv-barre b{font-size:16px}.dv-barre span{font-size:12px;color:var(--gris)}
  .dv-grille{padding-bottom:60px}}
