:root{
  /* Charte SYNDIC 26 : cyan #35C0ED, noir, fond #F5F5F5. Police système Apple (SF Pro), Inter ailleurs */
  --bg:#f5f5f5; --surface:#ffffff; --line:#dcdfe1; --fg:#111111; --muted:#5e666b;
  --brand:#35c0ed; --brand-ink:#000000;
  --accent:#1c7c9c; --accent-fg:#000000; --accent-soft:#e3f5fc; --side:#ffffff; --side-fg:#111111; --side-muted:#6b7378; --side-hover:#f0f9fd;
  --late:#c0261d; --late-soft:#fbe9e7; --due:#8a5a00; --due-soft:#fdf1d6; --ok:#1d6b43; --ok-soft:#e2f3ea;
  --display:-apple-system,BlinkMacSystemFont,"SF Pro Display","Inter","Segoe UI",system-ui,sans-serif;
  --body:-apple-system,BlinkMacSystemFont,"SF Pro Text","Inter","Segoe UI",system-ui,sans-serif;
  --mono:ui-monospace,"SF Mono",SFMono-Regular,Menlo,Consolas,monospace;
}
@media (prefers-color-scheme: dark){ :root{
  --bg:#0d0f10; --surface:#171a1c; --line:#2b3033; --fg:#f2f4f5; --muted:#9aa3a8;
  --accent:#35c0ed; --accent-soft:#12303b; --side:#14181a; --side-fg:#f2f4f5; --side-muted:#8a9398; --side-hover:#1b2a30;
  --late:#ff8a80; --late-soft:#3a1c1a; --due:#f2c261; --due-soft:#33290f; --ok:#7dd3a4; --ok-soft:#153024;
  color-scheme:dark } }
*{box-sizing:border-box}
[hidden]{display:none!important}
html,body{height:100%}
body{margin:0;background:var(--bg);color:var(--fg);font-family:var(--body);font-size:15px;line-height:1.47;letter-spacing:-.01em;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}
h1{font-family:var(--display);font-weight:700;font-size:28px;letter-spacing:-.025em;line-height:1.15;margin:0;text-wrap:balance}
h2{font-family:var(--display);font-weight:600;font-size:19px;letter-spacing:-.02em;margin:0 0 14px}
.small{font-size:13px;color:var(--muted);overflow-wrap:anywhere}
.brand{display:flex;align-items:center;gap:10px}
.brand img{height:34px;width:auto;display:block}
.ver{font-family:var(--mono);font-size:11px;font-weight:400;opacity:.6;align-self:flex-end}
button{font:inherit;cursor:pointer;border-radius:6px;border:1px solid var(--line);background:var(--surface);color:var(--fg);padding:8px 14px}
button.primary{background:var(--brand);border-color:var(--brand);color:var(--brand-ink);font-weight:600}
button.primary:hover{filter:brightness(.95)}
button.small-btn{padding:5px 10px;font-size:13px}
button:disabled{opacity:.5;cursor:not-allowed}
:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.msg{font-size:13px;color:var(--late);min-height:1em} .msg.ok{color:var(--ok)}

.login{min-height:100%;display:grid;place-items:center;padding:24px 16px}
.login-card{background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:32px;max-width:400px;width:100%;display:flex;flex-direction:column;gap:14px}
.login-logo img{height:44px;width:auto;display:block}
.login-card{border-top:4px solid var(--brand)}
.login-card p{margin:0;color:var(--muted)}

.app{min-height:100%;display:grid;grid-template-columns:232px minmax(0,1fr)}
.side{background:var(--side);color:var(--side-fg);border-right:1px solid var(--line);padding:22px 14px;display:flex;flex-direction:column;gap:22px;position:sticky;top:0;height:100vh}
.side .brand{padding-inline:8px}
nav{display:flex;flex-direction:column;gap:2px;flex:1}
nav a{color:var(--side-fg);text-decoration:none;padding:9px 12px;border-radius:8px;font-weight:500;display:flex;justify-content:space-between;align-items:center;gap:8px}
nav a:hover{background:var(--side-hover)}
nav a[aria-current="page"]{background:var(--accent-soft);color:var(--side-fg);font-weight:600;box-shadow:inset 3px 0 0 var(--brand)}
.nav-label{font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--side-muted);padding:16px 10px 4px}
.soon{color:var(--side-muted);padding:6px 10px;font-size:14px}
.count{background:var(--late);color:#fff;font-size:11px;font-weight:600;border-radius:999px;padding:1px 7px;font-variant-numeric:tabular-nums}
.me{border-top:1px solid var(--line);padding:14px 8px 0;display:flex;flex-direction:column;gap:4px}
.me-name{font-weight:600}
.me .small{color:var(--side-muted)}
.me button{align-self:flex-start;margin-top:8px;background:transparent;color:var(--side-fg);border-color:var(--line)}
.me button:hover{border-color:var(--brand)}
main{padding:28px clamp(16px,3vw,36px) 64px;min-width:0}
#view{max-width:1800px;display:flex;flex-direction:column;gap:20px}
.banner{background:var(--due-soft);color:var(--due);border-radius:8px;padding:10px 14px;font-size:13px;margin-bottom:20px;max-width:1800px}

.head{display:flex;flex-wrap:wrap;gap:12px 24px;align-items:flex-end;justify-content:space-between}
.stats{display:flex;flex-wrap:wrap;gap:8px}
.stat{background:var(--surface);border:1px solid var(--line);border-radius:8px;padding:8px 14px;min-width:104px}
.stat b{display:block;font-family:var(--display);font-size:24px;line-height:1.1;font-variant-numeric:tabular-nums}
.stat span{font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}
.stat.late b{color:var(--late)} .stat.due b{color:var(--due)}
button.stat.bulle{font:inherit;color:inherit;text-align:left;cursor:pointer} button.stat.bulle:hover{border-color:var(--accent)}
button.stat.bulle.actif{border-color:var(--accent);box-shadow:inset 0 0 0 1px var(--accent);background:var(--accent-soft)}
.panel{background:var(--surface);border:1px solid var(--line);border-radius:10px;padding:18px}
form .grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:12px 16px}
label{display:flex;flex-direction:column;gap:4px;font-size:12px;font-weight:600;color:var(--muted);min-width:0}
input,select{font:inherit;font-weight:400;color:var(--fg);background:var(--bg);border:1px solid var(--line);border-radius:6px;padding:8px 10px;width:100%;min-width:0}
.wide{grid-column:1/-1}
.actions{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin-top:16px}
.bar{display:flex;flex-wrap:wrap;gap:10px;align-items:center;justify-content:space-between}
.tabs{display:flex;gap:4px;background:var(--accent-soft);padding:4px;border-radius:8px}
.tabs button{border:0;background:transparent;padding:6px 14px;font-weight:500}
.tabs button[aria-selected="true"]{background:var(--surface);color:var(--fg);font-weight:600;box-shadow:0 1px 2px rgba(0,0,0,.12)}
.bar input{max-width:280px}
.bar input[type=search]{flex:1 1 280px;max-width:640px;min-width:220px}
.bar.bar-empilee{flex-direction:column;align-items:stretch} .bar.bar-empilee .tabs{align-self:flex-start;max-width:100%} .bar.bar-empilee input[type=search]{flex:0 0 auto;width:100%;max-width:640px} .bar label.qui{display:flex;align-items:center;gap:8px;white-space:nowrap} .bar label.qui select{width:auto;min-width:150px}
.list{display:flex;flex-direction:column;gap:8px}
.row{background:var(--surface);border:1px solid var(--line);border-left:4px solid var(--line);border-radius:8px;padding:12px 14px;display:grid;grid-template-columns:minmax(0,1.5fr) minmax(0,1.3fr) minmax(0,1fr) auto;gap:8px 18px;align-items:center}
.row.late{border-left-color:var(--late)} .row.due{border-left-color:var(--due)} .row.done{border-left-color:var(--ok)}
.row>div{min-width:0}
.imm{font-weight:600;overflow-wrap:anywhere}
.tag{display:inline-flex;align-items:center;gap:7px;margin-top:5px;padding:3px 10px 3px 8px;border:1px solid var(--brand);border-radius:12px 4px 4px 12px;font-family:var(--mono);font-size:12px;max-width:100%;overflow-wrap:anywhere}
.tag::before{content:"";flex:none;width:7px;height:7px;border-radius:50%;border:1.5px solid var(--brand)}
.who{font-weight:500;overflow-wrap:anywhere}
.tel{font-family:var(--mono);font-size:12.5px;user-select:all}
.dates{font-family:var(--mono);font-size:12.5px;font-variant-numeric:tabular-nums;color:var(--muted)}
.pill{display:inline-block;font-size:12px;font-weight:600;border-radius:999px;padding:2px 10px;margin-bottom:4px;background:var(--accent-soft);color:var(--accent)}
.pill.late{background:var(--late-soft);color:var(--late)} .pill.due{background:var(--due-soft);color:var(--due)} .pill.done{background:var(--ok-soft);color:var(--ok)}
.ret{grid-column:1/-1;display:flex;flex-wrap:wrap;gap:10px;align-items:flex-end;border-top:1px dashed var(--line);padding-top:12px}
.ret label{flex:1 1 160px}
.empty{border:1px dashed var(--line);border-radius:10px;padding:32px 20px;text-align:center;color:var(--muted)}
.empty strong{display:block;color:var(--fg);font-family:var(--display);font-size:18px;margin-bottom:4px}
.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px}
.card{background:var(--surface);border:1px solid var(--line);border-radius:10px;padding:16px;text-decoration:none;color:var(--fg);display:block}
.card:hover{border-color:var(--brand)}
.card b{font-family:var(--display);font-size:17px;display:block;margin-bottom:4px}
.tablewrap{overflow-x:auto;background:var(--surface);border:1px solid var(--line);border-radius:10px}
table{border-collapse:collapse;width:100%;font-size:14px}
th,td{text-align:left;padding:9px 12px;border-bottom:1px solid var(--line);white-space:nowrap}
td:first-child{white-space:normal;min-width:200px;font-weight:500}
th{font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);font-weight:600}
td.num,th.num{text-align:right;font-variant-numeric:tabular-nums;font-family:var(--mono);font-size:13px}
tr:last-child td{border-bottom:0}

@media (max-width:820px){
  .app{grid-template-columns:1fr}
  .side{position:static;height:auto;gap:12px;padding:14px 16px}
  nav{flex-direction:row;flex-wrap:wrap}
  .nav-label,.soon{display:none}
  .me{flex-direction:row;flex-wrap:wrap;align-items:center;gap:8px 12px;padding-top:10px}
  .me button{margin-top:0}
  .row{grid-template-columns:1fr}
  .bar input{max-width:none;flex:1 1 100%}
}

/* Module clés : suivi des mails, photo */
.flash{border-radius:8px;padding:10px 14px;font-size:14px;background:var(--ok-soft);color:var(--ok)}
.flash.warn{background:var(--due-soft);color:var(--due)}
.mailinfo{font-size:12.5px;color:var(--muted);margin-top:4px}
.mailinfo.warn{color:var(--due)}
.acts{display:flex;flex-direction:column;gap:6px;align-items:stretch}
label.photo img{max-width:220px;max-height:160px;object-fit:cover;border-radius:8px;border:1px solid var(--line);margin-top:6px}
input[type=file]{padding:6px}
@media (max-width:820px){ .acts{flex-direction:row;flex-wrap:wrap} }
.ret.edit{display:block}
.ret.edit .grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:12px 16px}
.ret.edit .actions{margin-top:14px}
.row.arch{border-left-color:var(--muted);opacity:.8}
.pill.arch{background:var(--line);color:var(--muted)}
button.quiet{background:transparent;color:var(--muted)}
button.quiet:hover{color:var(--late);border-color:var(--late)}
button.danger{background:var(--late);border-color:var(--late);color:#fff;font-weight:600}
.ret.del label{flex:2 1 240px}

/* Photo du trousseau : appareil photo (mobile) ou QR code (ordinateur) */
.photo-bloc{display:flex;flex-direction:column;gap:8px}
.photo-bloc .lbl{font-size:12px;font-weight:600;color:var(--muted)}
.choix-photo{display:flex;flex-wrap:wrap;gap:10px 16px;align-items:center}
.choix-photo .fichier{flex-direction:row;align-items:center;gap:8px;font-weight:500}
.choix-photo .fichier input{width:auto;padding:4px;background:transparent;border:0}
.btn-photo{position:relative;display:inline-flex;align-items:center;justify-content:center;min-height:48px;padding:0 20px;border-radius:10px;background:var(--brand);color:var(--brand-ink);font-size:16px;font-weight:600;align-self:flex-start;cursor:pointer}
.btn-photo input{position:absolute;inset:0;opacity:0;cursor:pointer}
.qr-zone{display:flex;flex-wrap:wrap;gap:16px;align-items:center;background:var(--bg);border:1px dashed var(--line);border-radius:10px;padding:14px}
.qr-zone .small{flex:1 1 200px}
.qr{background:#fff;padding:8px;border-radius:8px;line-height:0}
.qr img,.qr canvas{display:block}
.photo-info{color:var(--ok)}
.apercu{max-width:240px;max-height:180px;object-fit:cover;border-radius:8px;border:1px solid var(--line)}

/* Composition du trousseau (clés, badges, télécommandes) et comparaison remise / retour par l'IA */
.compo{margin-top:4px}
.leger{font-weight:400;color:var(--muted)}
.inv-bloc{display:flex;flex-direction:column;gap:8px}
.inv-bloc .lbl{font-size:12px;font-weight:600;color:var(--muted)}
.inv-champs{display:grid;grid-template-columns:repeat(4,minmax(84px,120px)) minmax(200px,1fr);gap:10px 12px}
.inv-actions{display:flex;flex-wrap:wrap;gap:8px 12px;align-items:center}
.inv-actions .small.ok,.analyse.ok{color:var(--ok)}
.inv-actions .small.alerte{color:var(--due)}
.ret.retour{align-items:flex-start}
.ret .large,.ret .photo-bloc{flex:1 1 100%}
.analyse{display:flex;flex-direction:column;gap:3px;font-size:13.5px;border-radius:8px;padding:10px 12px;background:var(--bg);border:1px solid var(--line)}
.analyse.ok{background:var(--ok-soft);border-color:transparent}
.analyse.alerte{background:var(--due-soft);border-color:transparent;color:var(--due)}
.mailinfo.manque{color:var(--late);font-weight:600}
@media (max-width:720px){.inv-champs{grid-template-columns:repeat(2,1fr)}.inv-detail{grid-column:1/-1}}

/* Module Ressources humaines */
.rh,.cpt{display:flex;flex-direction:column;gap:20px}
.rh .grid,.cpt .grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:12px 16px;align-items:end}
.rh textarea{font:inherit;font-family:var(--mono);font-size:13px;line-height:1.5;color:var(--fg);background:var(--bg);border:1px solid var(--line);border-radius:6px;padding:10px;width:100%;resize:vertical}
.rh .sous,.cpt .sous{font-size:12px;font-weight:600;color:var(--accent);border-top:1px dashed var(--line);padding-top:12px;margin-top:4px}
.rh h2 .small,.cpt h2 .small{font-weight:400}
label.coche{flex-direction:row;align-items:center;gap:8px;font-weight:500;color:var(--fg);font-size:13px}
label.coche input{width:auto}
label.qui{flex-direction:row;align-items:center;gap:10px}
label.qui select{width:auto;min-width:200px}
.rh-row{grid-template-columns:minmax(0,1.5fr) minmax(0,1fr) minmax(0,1.5fr) auto}
.rh-row .acts{flex-direction:row;flex-wrap:wrap}
.mois-nav{display:flex;align-items:center;gap:10px}
.mois-nav strong{min-width:130px;text-align:center;text-transform:capitalize}
.legende{display:flex;flex-wrap:wrap;gap:6px 16px;font-size:12.5px;color:var(--muted)}
.legende span{display:inline-flex;align-items:center;gap:6px}
.legende i{width:14px;height:14px;border-radius:3px;border:1px solid var(--line);display:inline-block}
.c-abs{background:var(--brand)}
.c-att{background:repeating-linear-gradient(45deg,var(--due-soft),var(--due-soft) 4px,var(--surface) 4px,var(--surface) 8px)}
.c-we{background:var(--bg)}
table.plan{table-layout:fixed;min-width:860px}
table.plan th,table.plan td{padding:6px 2px;text-align:center;border-left:1px solid var(--line);font-size:11px;white-space:nowrap}
table.plan th{letter-spacing:0;line-height:1.3}
table.plan th:first-child,table.plan td:first-child{width:150px;min-width:150px;text-align:left;padding-left:12px;border-left:0;font-size:13.5px}
table.plan td.c-abs{color:#000;font-weight:600}
table.plan .auj{box-shadow:inset 0 0 0 2px var(--accent)}
td.wrap{white-space:normal;min-width:150px}
.frise{display:flex;flex-wrap:wrap;gap:6px}
.frise button{padding:4px 10px;font-size:12.5px;text-transform:capitalize;border-radius:999px}
.frise .f-validee{background:var(--ok-soft);color:var(--ok);border-color:transparent}
.frise .f-declaree{background:var(--accent-soft);color:var(--accent);border-color:transparent}
.frise .f-brouillon,.frise .f-manque{background:var(--due-soft);color:var(--due);border-color:transparent}
.frise .f-na{color:var(--muted)}
.frise .sel{box-shadow:0 0 0 2px var(--accent)}
.decl{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:6px 16px;margin:14px 0 10px}
.decl .jour{flex-direction:row;align-items:center;justify-content:space-between;gap:8px;font-weight:500;color:var(--fg);font-size:13px;padding:2px 0}
.decl .jour span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.decl .jour select{width:150px;flex:none;padding:5px 8px;font-size:13px}
.decl .jour b{font-weight:600;font-size:13px;text-align:right}
.decl .jour.off{color:var(--muted)}
.decl .jour.off b{font-weight:400}
.flash.ok{background:var(--ok-soft);color:var(--ok)}
button.small-btn.primary{background:var(--brand);border-color:var(--brand);color:var(--brand-ink);font-weight:600}
@media (max-width:820px){ .rh-row{grid-template-columns:1fr} }
/* Relevés de compteurs */
.cpt .grid{align-items:start}
.cpt .panel h2{margin-top:0}
.cpt .panel h2 + .grid{margin-bottom:18px}
.cpt td .pill{margin-bottom:2px}
.cpt label .small{font-weight:400}
.cpt .filtres{display:flex;flex-wrap:wrap;gap:10px 16px;align-items:center}
.cpt .filtres select{width:auto;min-width:150px}
.cpt .head .small-btn{margin-bottom:8px}
.cpt .acts-cpt{white-space:nowrap} .cpt .acts-cpt button{margin:2px 4px 2px 0}
.cpt .actions.haut{margin-top:0}
.cpt tr.rempl td{background:var(--accent-soft);font-size:13px}
.cpt tr.depose td{color:var(--muted)} .cpt tr.depose td b{font-weight:500}
.cpt .carte-saisie .encart{display:flex;flex-direction:column;gap:10px;border:1px solid var(--line);border-left:4px solid var(--accent);border-radius:10px;padding:12px}
.cpt .carte-saisie .outils-saisie{margin:0;flex-wrap:wrap}
.cpt .encart-ligne{display:flex;flex-wrap:wrap;gap:10px;align-items:flex-end;margin-top:6px} .cpt .encart-ligne label{min-width:150px}
.cpt .progress{height:8px;border-radius:999px;background:var(--line);overflow:hidden} .cpt .progress div{height:100%;background:var(--brand);border-radius:999px}
.cpt .saisie{display:flex;flex-direction:column;gap:12px}
.cpt .carte-saisie{display:flex;flex-direction:column;gap:12px;max-width:560px}
.cpt .carte-saisie h2{margin:0;font-size:22px} .cpt .carte-saisie .serie{font-family:var(--mono);font-size:15px}
.cpt .carte-saisie .proprio{font-weight:600;font-size:16px;margin-top:-6px}
.cpt .carte-saisie label.index input{font-size:28px;font-family:var(--mono);font-weight:600;padding:12px 14px;text-align:right}
.cpt label.photo{position:relative;flex-direction:row;align-items:center;justify-content:center;min-height:52px;border:1px dashed var(--brand);border-radius:10px;color:var(--fg);font-size:15px;cursor:pointer}
.cpt label.photo input{position:absolute;inset:0;opacity:0;cursor:pointer}
.cpt img.apercu{max-width:100%;max-height:320px;border-radius:10px;border:1px solid var(--line);margin-top:8px}
.cpt .carte-saisie .actions button.primary{flex:1 1 220px;min-height:48px;font-size:16px}
.cpt .valid{display:flex;flex-direction:column;gap:10px} .cpt .valid h2{margin:0}
.cpt .valid .info{display:flex;flex-direction:column;gap:2px} .cpt .valid .info b{font-family:var(--mono);font-size:18px}
.cpt .acces-corps{display:flex;flex-wrap:wrap;gap:18px;align-items:flex-start;margin-top:12px}
.cpt .acces .qr{background:#fff;padding:10px;border-radius:10px;border:1px solid var(--line);line-height:0}
.cpt .acces-infos{flex:1 1 280px;display:flex;flex-direction:column;gap:10px;min-width:0}
.cpt .code-acces{font-family:var(--mono);font-size:20px;letter-spacing:.06em}
.cpt .acces .actions{margin-top:0}
.cpt .campagne{display:flex;flex-direction:column;gap:12px} .cpt .campagne h2{margin:0} .cpt .campagne .actions{margin-top:0}
.cpt details summary{cursor:pointer;font-weight:600;font-size:14px;padding:6px 0} .cpt details .tablewrap{margin-top:8px}
.cpt .echanges{display:flex;flex-direction:column;gap:12px} .cpt .echanges h2{margin:0} .cpt .echanges .actions{margin-top:0}
.cpt .echanges .google-sheets{display:flex;flex-direction:column;gap:12px;border-top:1px solid var(--line);padding-top:12px}
.cpt label.fichier{position:relative;flex-direction:row;align-items:center;cursor:pointer;color:var(--fg);font-weight:500;border:1px solid var(--line);border-radius:6px;padding:5px 10px;font-size:13px;background:var(--surface)}
.cpt label.fichier input{position:absolute;inset:0;opacity:0;cursor:pointer;width:100%}
.cpt .parc{display:flex;flex-direction:column;gap:12px} .cpt .parc h2,.cpt .parc h3{margin:0} .cpt .parc .actions{margin-top:0}
.cpt .formk{border:1px dashed var(--line);border-radius:10px;padding:14px;display:flex;flex-direction:column;gap:12px}
.cpt tr.inactif td{opacity:.55}

/* ---------- module Travaux ---------- */
.trv{display:flex;flex-direction:column;gap:16px}
.trv .head h1{margin-top:10px}
.trv td.trv-titre,.trv td.trv-suite{white-space:normal;min-width:200px;max-width:340px}
.trv-faits{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:14px 24px;margin:0}
.trv-faits dt{font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);font-weight:600;margin-bottom:2px}
.trv-faits dd{margin:0;overflow-wrap:anywhere}
.trv-phase h2{margin-bottom:6px}
.trv-jalon{display:grid;grid-template-columns:96px minmax(0,1fr) auto;gap:6px 14px;align-items:center;padding:10px 0;border-top:1px solid var(--line)}
.trv-jalon .pill{margin-bottom:0}
.trv-jalon.sans_objet b{font-weight:500;color:var(--muted)}
.trv-saisie{grid-column:1/-1;display:flex;flex-wrap:wrap;gap:10px;align-items:flex-end;border-top:1px dashed var(--line);padding-top:12px;margin-top:6px}
.trv-saisie label{flex:0 1 200px}
.trv-saisie label:nth-of-type(2){flex:1 1 240px}
.trv-bandeau button{margin-left:8px}
.trv-lien{background:var(--accent-soft);border-radius:8px;padding:12px 14px;display:flex;flex-direction:column;gap:8px}
.trv-lien .lbl{font-size:12px;font-weight:600;color:var(--accent)}
.trv-lien input{font-family:var(--mono);font-size:12.5px;background:var(--surface)}
.trv-lien .actions{margin-top:0}
.trv textarea{font:inherit;font-size:14px;line-height:1.5;color:var(--fg);background:var(--bg);border:1px solid var(--line);border-radius:6px;padding:10px;width:100%;resize:vertical;font-weight:400}
.trv-mail{background:var(--accent-soft);border-radius:8px;padding:14px;display:flex;flex-direction:column;gap:10px;margin-top:6px}
.trv-mail .lbl{font-size:12px;font-weight:600;color:var(--accent)}
.trv-mail input,.trv-mail textarea{background:var(--surface)}
.trv-mail .actions{margin-top:0}
.trv-mail details{display:inline}
.trv-mails .trv-jalon{grid-template-columns:0 minmax(0,1fr) auto}
.trv tr.trv-retard td{background:var(--late-soft)}
/* Convention des listes : toute ligne qui a un bouton « Ouvrir » s'ouvre aussi d'un clic sur la ligne */
.ligne-cliquable{cursor:pointer}
tr.ligne-cliquable:hover td,.row.ligne-cliquable:hover{background:var(--side-hover)}
.trv tr.ligne-cliquable.trv-retard:hover td{background:var(--late-soft);filter:brightness(.97)}
.trv-frise{display:flex;flex-direction:column;border:1px solid var(--line);border-radius:8px;overflow:hidden}
.trv-frise-tete,.trv-frise-ligne{display:grid;grid-template-columns:minmax(150px,26%) minmax(0,1fr)}
.trv-frise-ligne{border-top:1px solid var(--line);min-height:44px}
.trv-frise-nom{padding:6px 10px;border-right:1px solid var(--line);min-width:0}
.trv-lien-dossier{all:unset;cursor:pointer;display:flex;flex-direction:column;min-width:0;width:100%}
.trv-lien-dossier b,.trv-lien-dossier span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:13px}
.trv-lien-dossier:hover b{color:var(--accent)}
.trv-lien-dossier:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.trv-piste{position:relative;min-height:28px}
.trv-frise-tete .trv-piste{height:28px;background:var(--bg)}
.trv-mois{position:absolute;top:0;bottom:0;font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);font-weight:600;padding:6px 6px 0;border-left:1px solid var(--line);white-space:nowrap;overflow:hidden}
.trv-piste>i{position:absolute;top:0;bottom:0;width:1px;background:var(--line)}
.trv-piste>i.ajd{width:2px;background:var(--late);z-index:1}
.trv-barre{position:absolute;top:11px;height:20px;border-radius:5px;min-width:6px}
.trv-barre.reel{background:var(--brand)}
.trv-barre.estime{background:repeating-linear-gradient(135deg,var(--accent-soft),var(--accent-soft) 5px,transparent 5px,transparent 9px);border:1.5px dashed var(--accent)}
.trv-barre.fini{background:var(--ok)}
.trv-barre.tard{background:var(--late)}
.trv-legende{font-size:12px;color:var(--muted);display:inline-flex;gap:6px;align-items:center;flex-wrap:wrap}
.trv-legende i{display:inline-block;width:18px;height:10px;border-radius:3px;margin-left:8px}
.trv-legende i.reel{background:var(--brand)} .trv-legende i.estime{border:1.5px dashed var(--accent);background:var(--accent-soft)} .trv-legende i.fini{background:var(--ok)} .trv-legende i.tard{background:var(--late)}
.trv-sans{display:flex;flex-wrap:wrap;gap:6px}
.trv-recep-form{display:flex;flex-direction:column;gap:6px}
.trv-reserve{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:8px 14px;border:1px solid var(--line);border-radius:8px;padding:10px 12px;margin-bottom:8px}
.trv-reserve>b{grid-column:1/-1;font-size:13px;color:var(--accent)}
.trv-reserve label:first-of-type{grid-column:1/-1}
.trv-signatures{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:14px}
.trv-zone-sig{display:flex;flex-direction:column;gap:6px;align-items:flex-start}
.trv-zone-sig .lbl{font-size:12px;font-weight:600;color:var(--muted)}
canvas.trv-sig{width:100%;max-width:520px;aspect-ratio:640/230;background:#fff;border:1.5px dashed var(--line);border-radius:8px;touch-action:none;cursor:crosshair}
.trv-coches{display:flex;flex-wrap:wrap;gap:8px 18px;flex:1 1 100%}
.trv-lobby td .trv-saisie{border-top:0;padding-top:0;margin-top:0}
.trv-lobby{display:flex;flex-direction:column;gap:12px}
.trv-lobby h2{margin:0}
.trv-lobby h2 .small{font-weight:400;margin-left:6px}
.trv-lobby .stat b{font-size:19px}
.trv-fiche-lobby{display:flex;flex-direction:column;gap:8px;border-top:1px solid var(--line);padding-top:12px}
.trv-lobby .tablewrap{border-radius:8px}
.trv-props{display:flex;flex-direction:column;gap:14px}
.trv-prop{display:flex;flex-direction:column;gap:12px}
.trv-prop h2{margin:2px 0}
.trv-prop .actions{margin-top:0}
.trv-prop.ecartee{opacity:.7}
.trv-prop-tete{display:flex;justify-content:space-between;gap:12px;align-items:flex-start}
.trv-deux{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,1fr);gap:14px;align-items:start}
.trv-extrait{background:var(--bg);border:1px solid var(--line);border-radius:8px;padding:12px 14px;max-height:520px;overflow:auto}
.trv-deux>.trv-extrait{background:var(--surface);border-radius:10px;max-height:80vh;position:sticky;top:12px}
.trv-extrait .lbl{font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);font-weight:600;margin-bottom:8px}
.trv-extrait pre{margin:0;font-family:var(--body);font-size:13px;line-height:1.5;white-space:pre-wrap;overflow-wrap:anywhere}
@media (max-width:1100px){
  .trv-deux{grid-template-columns:1fr}
  .trv-deux>.trv-extrait{position:static;max-height:420px}
}
@media (max-width:760px){
  .trv-jalon{grid-template-columns:1fr}
}

/* Accueil : résumé « À traiter » par collaborateur */
.acc{display:flex;flex-direction:column;gap:14px}
.acc h2{margin:0} .acc h2 .small{font-weight:400;margin-left:6px}
.acc-groupe h3{font-family:var(--display);font-size:15px;font-weight:600;margin:0 0 8px} .acc-groupe h3 a{color:inherit;text-decoration:none} .acc-groupe h3 a:hover{text-decoration:underline}
.acc-row{grid-template-columns:minmax(0,1fr) minmax(0,2fr) auto;cursor:pointer} .acc-row:hover{border-color:var(--brand)}
.acc-note{margin-top:6px}
@media (max-width:720px){ .acc-row{grid-template-columns:minmax(0,1fr)} }
