
/* Bignona City — l'affiche occupe tout l'écran ; le formulaire s'ouvre en panneaux "soirée" bleu nuit, éclairés d'or comme les appliques de la villa. */
:root{
  color-scheme:dark;
  --night:#0a1430; --night-2:#111d40; --night-3:#18275a;
  --panel:rgba(14,25,56,.86); --glass:rgba(10,20,46,.62);
  --ink:#f5efe4; --muted:#aab4cb; --faint:#7c88a6;
  --gold:#f2b75b; --gold-d:#d9952c; --gold-soft:rgba(242,183,91,.16);
  --red:#e0352a;
  --line:rgba(245,239,228,.13); --line-2:rgba(245,239,228,.24);
  --ok:#52c98d; --ok-bg:rgba(82,201,141,.14); --warn:#f2b75b; --bad:#f07466; --bad-bg:rgba(240,116,102,.14);
  --gA:#52c98d; --gB:#5cc3d6; --gC:#f2b75b; --gD:#f07466; --gI:#8a94ad;
  --display:"Marcellus","Cormorant Garamond",Georgia,serif;
  --sans:"Hanken Grotesk",system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;
  --hero:url("hero.jpg");
  --r:16px;
}
*{box-sizing:border-box}
html,body{height:100%}
body{margin:0;background:var(--night);color:var(--ink);font-family:var(--sans);font-size:16px;line-height:1.5;-webkit-font-smoothing:antialiased;overflow:hidden}
h1,h2,h3,h4{font-family:var(--display);font-weight:400;letter-spacing:.005em;text-wrap:balance;margin:0}
button,input,select,textarea{font:inherit;color:inherit}
:focus-visible{outline:3px solid var(--gold);outline-offset:2px}
.num{font-variant-numeric:tabular-nums}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}

/* ---------- accueil : l'affiche plein écran ---------- */
.landing{position:fixed;inset:0;overflow:hidden;background:var(--night)}
.backdrop{position:absolute;inset:-60px;background:var(--hero) center/cover no-repeat;filter:blur(30px) brightness(.62) saturate(1.1);transform:scale(1.05)}
.stage{position:absolute;top:0;bottom:0;left:50%;height:100%;aspect-ratio:1122/1402;transform:translateX(-50%);background:var(--hero) 0 0/100% 100% no-repeat;box-shadow:0 0 80px rgba(0,0,0,.45)}
.start{position:absolute;left:16px;right:16px;bottom:22%;z-index:3;display:grid;grid-template-columns:minmax(0,1fr);gap:8px}
.start form{--bh:64px;display:flex;align-items:center;gap:8px;height:var(--bh);padding:7px;border-radius:999px;background:linear-gradient(180deg,rgba(16,28,62,.93),rgba(8,16,40,.95));border:1px solid rgba(242,183,91,.55);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);box-shadow:0 22px 50px rgba(0,0,0,.45),inset 0 1px 0 rgba(255,255,255,.1)}
.start input{flex:1 1 0;width:0;min-width:0;height:100%;background:transparent;border:0;padding:0 6px 0 18px;font-size:17px;color:var(--ink);outline:none}
.start input::placeholder{color:#cdd3e2}
.start .go{position:relative;flex:none;height:100%;border:0;border-radius:999px;padding:0 24px;background:linear-gradient(180deg,#ffd27e,var(--gold) 55%,var(--gold-d));color:#1d1406;font-weight:800;font-size:16.5px;cursor:pointer;white-space:nowrap;box-shadow:inset 0 1px 0 rgba(255,255,255,.6),0 6px 16px rgba(217,149,44,.35);transition:filter .15s}
.start .go:hover{filter:brightness(1.06)}
.key{position:absolute;left:50%;top:calc(100% - 13px);width:var(--kw,62px);height:auto;max-width:none;margin-left:calc(var(--kw,62px) / -2);transform-origin:52% 3px;filter:drop-shadow(0 0 1px rgba(0,0,0,.6)) drop-shadow(0 0 4px rgba(255,255,255,.25)) drop-shadow(0 12px 10px rgba(0,0,0,.5));animation:swing 3.4s ease-in-out infinite;pointer-events:none}
.start .go:hover .key,.start .go:focus-visible .key{animation:jingle .9s ease-in-out}
[hidden]{display:none!important}
@keyframes swing{0%,100%{transform:rotate(7deg)}50%{transform:rotate(-7deg)}}
@keyframes jingle{0%{transform:rotate(0)}20%{transform:rotate(16deg)}45%{transform:rotate(-12deg)}70%{transform:rotate(7deg)}100%{transform:rotate(0)}}
@media (prefers-reduced-motion:reduce){.key{animation:none;transform:rotate(3deg)}}
.start .hint{margin:0;padding:0 118px 0 14px;font-size:12.5px;color:#f3ead9;text-shadow:0 1px 6px rgba(0,0,0,.85);font-weight:600;letter-spacing:.01em}
.logo-ov{position:absolute;z-index:2;top:0;right:0;pointer-events:none;}
.logo-ov img{position:absolute;display:block;height:auto}
.burger{position:fixed;z-index:38;top:calc(14px + env(safe-area-inset-top,0px));left:calc(14px + env(safe-area-inset-left,0px));width:48px;height:48px;border-radius:50%;border:1px solid rgba(255,255,255,.28);background:rgba(10,20,46,.55);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);display:grid;place-items:center;cursor:pointer;box-shadow:0 8px 24px rgba(0,0,0,.3)}
.burger span{display:block;width:20px;height:2px;background:var(--ink);border-radius:2px;box-shadow:0 -6px 0 var(--ink),0 6px 0 var(--ink)}

/* ---------- menu latéral ---------- */
.scrim{position:fixed;inset:0;z-index:40;background:rgba(3,8,22,.55);opacity:0;pointer-events:none;transition:opacity .25s}
.scrim.on{opacity:1;pointer-events:auto}
.drawer{position:fixed;z-index:41;top:0;bottom:0;left:0;width:min(330px,86vw);background:var(--night-2);border-right:1px solid var(--line);transform:translateX(-102%);transition:transform .28s cubic-bezier(.2,.8,.2,1);display:flex;flex-direction:column;padding:calc(18px + env(safe-area-inset-top,0px)) 0 calc(18px + env(safe-area-inset-bottom,0px)) env(safe-area-inset-left,0px)}
.drawer.on{transform:none}
@media (prefers-reduced-motion:reduce){.drawer,.scrim{transition:none}}
.drawer .brand{padding:6px 22px 18px;border-bottom:1px solid var(--line)}
.wordmark{font-family:var(--display);font-size:25px;letter-spacing:.06em;line-height:1}
.wordmark i{font-style:normal;color:var(--red)}
.brand small{display:block;margin-top:6px;color:var(--muted);font-size:12px;letter-spacing:.24em;text-transform:uppercase}
.drawer nav{display:grid;padding:10px 10px;gap:2px}
.drawer nav button{display:flex;align-items:center;gap:12px;width:100%;text-align:left;border:0;background:transparent;padding:12px 12px;border-radius:12px;cursor:pointer;font-weight:600;font-size:15.5px}
.drawer nav button:hover,.drawer nav button[aria-current="true"]{background:rgba(255,255,255,.06)}
.drawer nav button svg{width:20px;height:20px;flex:none;stroke:var(--gold);fill:none;stroke-width:1.7}
.drawer nav hr{border:0;border-top:1px solid var(--line);margin:8px 6px}
.drawer nav .adm{color:var(--gold)}
.drawer .foot{margin-top:auto;padding:14px 22px 0;color:var(--faint);font-size:12.5px;border-top:1px solid var(--line)}

/* ---------- panneaux plein écran ---------- */
.sheet{position:fixed;inset:0;z-index:30;overflow-y:auto;overflow-x:hidden;background:var(--night);-webkit-overflow-scrolling:touch}
.sheet:before{content:"";position:fixed;inset:-60px;background:var(--hero) center 30%/cover;filter:blur(36px) brightness(.32) saturate(1.2);z-index:-1;pointer-events:none}
.sheet-top{position:sticky;top:0;z-index:5;display:flex;align-items:center;gap:12px;padding:calc(12px + env(safe-area-inset-top,0px)) max(16px,env(safe-area-inset-right,0px)) 12px calc(74px + env(safe-area-inset-left,0px));background:linear-gradient(var(--night) 60%,rgba(10,20,48,0));min-height:72px}
.sheet-top h2{font-size:21px;flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.x{border:1px solid var(--line-2);background:rgba(255,255,255,.04);border-radius:999px;padding:8px 14px;cursor:pointer;font-weight:600;font-size:14px;white-space:nowrap}
.wrap{width:100%;max-width:680px;margin:0 auto;padding-left:max(16px,env(safe-area-inset-left,0px));padding-right:max(16px,env(safe-area-inset-right,0px));padding-block:8px calc(48px + env(safe-area-inset-bottom,0px))}
.wrap.wide{max-width:1280px}

/* ---------- boutons & champs ---------- */
.btn{text-decoration:none;border:0;border-radius:999px;padding:13px 22px;font-weight:800;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:8px;line-height:1.2;transition:background .15s,transform .15s}
.btn:disabled{opacity:.55;cursor:wait}
.btn-gold{background:var(--gold);color:#1d1406}.btn-gold:hover{background:#ffc874}
.btn-line{background:transparent;color:var(--ink);border:1px solid var(--line-2)}.btn-line:hover{background:rgba(255,255,255,.05)}
.btn-sm{padding:8px 14px;font-size:14px}
label.f{display:grid;gap:6px;font-weight:600;font-size:14.5px;color:#e3dccf}
label.f small{font-weight:500;color:var(--muted);font-size:13px;margin-top:-4px}
label.f .req{color:var(--gold);font-weight:800}
.in,select.in,textarea.in{width:100%;background:rgba(255,255,255,.05);border:1px solid var(--line-2);border-radius:12px;padding:13px 14px;font-size:16px;color:var(--ink);outline:none;transition:border-color .15s,background .15s}
.in:focus{border-color:var(--gold);background:rgba(255,255,255,.08)}
select.in option{background:var(--night-2);color:var(--ink)}
textarea.in{min-height:96px;resize:vertical}
.money{position:relative}.money .in{padding-right:64px}.money:after{content:"FCFA";position:absolute;right:14px;top:50%;transform:translateY(-50%);font-size:13px;font-weight:700;color:var(--muted);pointer-events:none}
.money.pm:after{content:"FCFA/mois"}
.in.bad{border-color:var(--bad)}
.err{color:var(--bad);font-size:13.5px;font-weight:600;margin:0}
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.grid3{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}
@media (max-width:560px){.grid2,.grid3{grid-template-columns:1fr}}

/* ---------- questionnaire ---------- */
.progress{position:sticky;top:72px;z-index:4;height:4px;background:rgba(255,255,255,.08);margin:0 0 4px}
.progress i{display:block;height:100%;width:0;background:linear-gradient(90deg,var(--gold-d),var(--gold));transition:width .35s}
.q{display:grid;gap:22px;padding-top:18px;animation:rise .35s ease both}
@keyframes rise{from{opacity:.0;transform:translateY(10px)}to{opacity:1;transform:none}}
@media (prefers-reduced-motion:reduce){.q{animation:none}}
.chap{font-size:12px;font-weight:800;letter-spacing:.16em;text-transform:uppercase;color:var(--gold)}
.q h3{font-size:clamp(26px,5.4vw,36px);line-height:1.12;margin-top:6px}
.q .help{margin:8px 0 0;color:var(--muted);max-width:60ch}
.fields{display:grid;gap:16px}
.choices{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:10px}
.choices.two{grid-template-columns:repeat(auto-fill,minmax(140px,1fr))}
.choice{position:relative;display:flex;flex-direction:column;gap:2px;text-align:left;padding:14px 16px;border-radius:14px;border:1px solid var(--line-2);background:rgba(255,255,255,.04);cursor:pointer;transition:border-color .15s,background .15s}
.choice:hover{background:rgba(255,255,255,.07)}
.choice[aria-checked="true"]{border-color:var(--gold);background:var(--gold-soft);box-shadow:inset 0 0 0 1px var(--gold)}
.choice b{font-weight:700;font-size:15.5px}
.choice span{font-size:13px;color:var(--muted)}
.villas{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}
@media (max-width:560px){.villas{grid-template-columns:1fr}}
.villa-c{padding:16px}
.villa-c .vt{display:flex;justify-content:space-between;align-items:baseline;gap:8px}
.villa-c .vt b{font-family:var(--display);font-size:24px;font-weight:400}
.villa-c .vp{font-weight:800}
.badge{display:inline-flex;align-items:center;gap:6px;width:fit-content;margin-top:6px;padding:3px 9px;border-radius:999px;font-size:12px;font-weight:700}
.badge.ok{background:var(--ok-bg);color:var(--ok)}.badge.no{background:var(--bad-bg);color:var(--bad)}
.insight{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:1px;border-radius:14px;overflow:hidden;background:var(--line);border:1px solid var(--line)}
.insight div{background:var(--night-2);padding:12px 14px}
.insight dt{font-size:12px;color:var(--muted);font-weight:600}
.insight dd{margin:2px 0 0;font-weight:800;font-size:18px;font-variant-numeric:tabular-nums}
.note{font-size:13px;color:var(--muted);margin:0}
.nav-q{display:flex;gap:10px;justify-content:space-between;align-items:center;margin-top:6px}
.nav-q .btn-gold{min-width:150px}
.checks{display:grid;gap:8px}
.check{display:flex;gap:12px;align-items:flex-start;padding:13px 14px;border-radius:12px;border:1px solid var(--line-2);background:rgba(255,255,255,.04);cursor:pointer}
.check input{width:20px;height:20px;margin:1px 0 0;accent-color:var(--gold);flex:none}
.check span{font-size:15px}.check small{display:block;color:var(--muted);font-size:13px}
.recap{display:grid;gap:0;border:1px solid var(--line);border-radius:14px;overflow:hidden}
.recap div{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.2fr);gap:12px;padding:10px 14px;border-top:1px solid var(--line);font-size:14.5px}
.recap div:first-child{border-top:0}
.recap dt{color:var(--muted)}.recap dd{margin:0;font-weight:600;overflow-wrap:anywhere}
.done{text-align:center;display:grid;gap:16px;justify-items:center;padding-top:30px}
.code{font-family:var(--sans);font-weight:800;font-size:clamp(28px,8vw,44px);letter-spacing:.08em;padding:14px 22px;border-radius:16px;border:1px dashed var(--gold);background:var(--gold-soft);color:var(--gold)}
.alert{padding:12px 14px;border-radius:12px;font-size:14.5px;font-weight:600}
.alert.bad{background:var(--bad-bg);color:#ffd2cc}.alert.ok{background:var(--ok-bg);color:#c9f4dd}.alert.info{background:rgba(255,255,255,.06);color:var(--ink)}
.hp{position:absolute;left:-9999px;width:1px;height:1px;opacity:0}

/* ---------- villas & simulateur ---------- */
.lead{color:var(--muted);font-size:17px;margin:8px 0 0;max-width:60ch}
.terms{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--line);border-radius:14px;overflow:hidden;margin:20px 0}
.terms div{background:var(--night-2);padding:14px}
.terms b{display:block;font-family:var(--display);font-size:26px;font-weight:400;color:var(--gold)}
.terms span{font-size:13px;color:var(--muted)}
@media (max-width:560px){.terms{grid-template-columns:1fr 1fr}}
.vtable{width:100%;border-collapse:collapse;font-size:15px}
.vtable th,.vtable td{padding:12px 10px;border-bottom:1px solid var(--line);text-align:left;vertical-align:top}
.vtable th{font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);font-weight:700}
.vtable td.r,.vtable th.r{text-align:right;font-variant-numeric:tabular-nums}
.vtable td b{font-family:var(--display);font-weight:400;font-size:20px}
.scroll-x{overflow-x:auto;-webkit-overflow-scrolling:touch}
.sim{margin-top:28px;padding:20px;border-radius:18px;background:var(--panel);border:1px solid var(--line)}
.seg{display:flex;gap:6px;flex-wrap:wrap}
.seg button{flex:1;min-width:64px;border:1px solid var(--line-2);background:transparent;border-radius:12px;padding:10px 6px;font-weight:800;cursor:pointer}
.seg button[aria-pressed="true"]{background:var(--gold);color:#1d1406;border-color:var(--gold)}
.range{display:grid;gap:6px;margin-top:16px}
.range label{display:flex;justify-content:space-between;font-weight:700;font-size:14px}
.range input{width:100%;accent-color:var(--gold)}
.contact{display:grid;gap:10px;margin-top:20px}
.contact div{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:14px 16px;border-radius:14px;background:var(--panel);border:1px solid var(--line);flex-wrap:wrap}
.contact span{color:var(--muted);font-size:13.5px}
.contact b{font-size:17px;user-select:all}

/* ---------- administration ---------- */
.auth{max-width:420px;margin:30px auto 0;padding:24px;border-radius:20px;background:var(--panel);border:1px solid var(--line);display:grid;gap:16px}
.auth h3{font-size:26px}
.qr{background:#fff;border-radius:12px;padding:10px;width:200px;height:200px;margin:0 auto}
.qr img{width:100%;height:100%}
.secret{font-family:ui-monospace,Menlo,monospace;font-size:13px;word-break:break-all;background:rgba(255,255,255,.06);padding:8px 10px;border-radius:8px;user-select:all}
.steps2{display:grid;gap:10px}
.steps2>.st{display:grid;grid-template-columns:28px 1fr;gap:10px;align-items:start;font-size:14.5px}
.steps2>.st b{display:grid;place-items:center;width:26px;height:26px;border-radius:50%;background:var(--gold);color:#1d1406;font-size:13px}
.steps2 .secret{font-size:17px;letter-spacing:.06em;text-align:center;padding:12px}
.qrbox summary{cursor:pointer;color:var(--muted);font-size:14px}
.qrbox .qr{margin-top:10px}
.otp{letter-spacing:.5em;text-align:center;font-size:24px;font-weight:800}
.abar{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:8px 0 18px}
.tabs{display:flex;gap:4px;padding:4px;border-radius:999px;background:rgba(255,255,255,.06)}
.tabs button{border:0;background:transparent;padding:8px 16px;border-radius:999px;font-weight:700;cursor:pointer;font-size:14.5px}
.tabs button[aria-selected="true"]{background:var(--gold);color:#1d1406}
.who{margin-left:auto;font-size:13px;color:var(--muted);display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1px;background:var(--line);border:1px solid var(--line);border-radius:16px;overflow:hidden}
.kpis div{background:var(--night-2);padding:16px}
.kpis b{display:block;font-size:30px;font-weight:800;font-variant-numeric:tabular-nums;line-height:1.1}
.kpis span{font-size:13px;color:var(--muted)}
@media (max-width:760px){.kpis{grid-template-columns:repeat(2,minmax(0,1fr))}}
.panels{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin-top:14px}
@media (max-width:860px){.panels{grid-template-columns:1fr}}
.card{background:var(--panel);border:1px solid var(--line);border-radius:16px;padding:18px;min-width:0}
.card h4{font-family:var(--sans);font-weight:800;font-size:13px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);margin-bottom:12px}
.card.span2{grid-column:1/-1}
.bars{display:grid;gap:8px}
.bar{display:grid;grid-template-columns:minmax(90px,38%) 1fr 44px;gap:10px;align-items:center;font-size:14px}
.bar .lab{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.bar .tr{height:12px;border-radius:6px;background:rgba(255,255,255,.06);overflow:hidden}
.bar .tr i{display:block;height:100%;border-radius:6px;background:var(--gold)}
.bar .n{text-align:right;font-weight:800;font-variant-numeric:tabular-nums}
.chart svg{width:100%;height:auto;display:block}
.filters{display:grid;grid-template-columns:2fr repeat(5,1fr);gap:8px;margin-bottom:10px}
.filters .in{padding:10px 12px;font-size:14.5px}
@media (max-width:980px){.filters{grid-template-columns:1fr 1fr}}
.tools{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-bottom:10px;font-size:14px;color:var(--muted)}
.tools .grow{margin-left:auto}
.tbl{width:100%;border-collapse:collapse;font-size:14px;min-width:980px}
.tbl th,.tbl td{padding:10px 10px;border-bottom:1px solid var(--line);text-align:left;white-space:nowrap}
.tbl th{font-size:11.5px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);font-weight:700;position:sticky;top:0;background:var(--night-2);cursor:pointer;user-select:none}
.tbl th[data-sort]:hover{color:var(--ink)}
.tbl th.on{color:var(--gold)}
.tbl td.r,.tbl th.r{text-align:right;font-variant-numeric:tabular-nums}
.tbl tbody tr{cursor:pointer}.tbl tbody tr:hover td{background:rgba(255,255,255,.035)}
.tbl input{accent-color:var(--gold);width:17px;height:17px}
.tblbox{border:1px solid var(--line);border-radius:14px;overflow:auto;max-height:68vh;background:var(--night-2)}
.grade{display:inline-grid;place-items:center;min-width:30px;height:26px;padding:0 7px;border-radius:8px;font-weight:800;font-size:13px;color:#08112a}
.g-A{background:var(--gA)}.g-B{background:var(--gB)}.g-C{background:var(--gC)}.g-D{background:var(--gD)}.g-INCOMPLET,.g-x{background:var(--gI)}
.pill{display:inline-block;padding:3px 9px;border-radius:999px;font-size:12px;font-weight:700;background:rgba(255,255,255,.08)}
.pill.s-VALIDATED,.pill.s-PREQUALIFIED,.pill.s-SHORTLISTED{background:var(--ok-bg);color:var(--ok)}
.pill.s-REJECTED{background:var(--bad-bg);color:var(--bad)}
.pill.s-NEW{background:var(--gold-soft);color:var(--gold)}
.flag{color:var(--bad);font-weight:800}
.pager{display:flex;gap:8px;justify-content:flex-end;align-items:center;margin-top:10px;font-size:14px;color:var(--muted)}
.side{position:fixed;z-index:39;top:0;right:0;bottom:0;width:min(640px,100vw);background:var(--night-2);border-left:1px solid var(--line);overflow-y:auto;box-shadow:-20px 0 60px rgba(0,0,0,.4);padding:calc(16px + env(safe-area-inset-top,0px)) max(16px,env(safe-area-inset-right,0px)) calc(30px + env(safe-area-inset-bottom,0px)) 20px}
.side-head{display:flex;gap:12px;align-items:flex-start;margin-bottom:14px}
.side-head h3{font-size:26px;flex:1}
.sheetbank{display:grid;gap:14px}
.sec h5{margin:0 0 6px;font-size:12px;letter-spacing:.12em;text-transform:uppercase;color:var(--gold);font-weight:800}
.kv{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.3fr);gap:0;border:1px solid var(--line);border-radius:12px;overflow:hidden;font-size:14px}
.kv dt,.kv dd{margin:0;padding:8px 12px;border-top:1px solid var(--line)}
.kv dt{color:var(--muted)}.kv dd{font-weight:600;overflow-wrap:anywhere;font-variant-numeric:tabular-nums}
.kv dt:nth-child(1),.kv dd:nth-child(2){border-top:0}
.scorebar{display:grid;grid-template-columns:repeat(5,1fr);gap:6px}
.scorebar div{background:rgba(255,255,255,.05);border-radius:10px;padding:8px 10px}
.scorebar b{display:block;font-size:18px;font-variant-numeric:tabular-nums}
.scorebar span{font-size:11.5px;color:var(--muted)}
@media (max-width:520px){.scorebar{grid-template-columns:repeat(3,1fr)}}
.toast{position:fixed;z-index:60;left:50%;bottom:calc(20px + env(safe-area-inset-bottom,0px));transform:translateX(-50%);background:var(--ink);color:var(--night);padding:11px 18px;border-radius:999px;font-weight:700;font-size:14.5px;box-shadow:0 10px 30px rgba(0,0,0,.4);max-width:calc(100vw - 32px)}

/* ---------- administration v3 ---------- */
.abar{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.tabs{overflow-x:auto;max-width:100%;scrollbar-width:none}
.tabs button{white-space:nowrap}
.who{gap:8px}
.filters{grid-template-columns:repeat(auto-fill,minmax(160px,1fr))}
.dfl{display:grid;gap:4px;font-size:12px;color:var(--muted);font-weight:600}
.dfl .in{padding:8px 10px}
.tbl tbody tr.sel td{background:rgba(242,183,91,.08)}
.cards{display:none;gap:8px}
.dcard{display:grid;grid-template-columns:34px minmax(0,1fr);gap:6px;align-items:start;padding:12px;border-radius:14px;background:var(--panel);border:1px solid var(--line);cursor:pointer}
.dcard.sel{border-color:var(--gold);background:var(--gold-soft)}
.dcard .ck{display:grid;place-items:center;padding-top:2px}
.dcard .ck input{width:20px;height:20px;accent-color:var(--gold)}
.dc-top{display:flex;justify-content:space-between;gap:8px;align-items:center}
.dc-top b{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.dc-sub{font-size:12.5px;color:var(--muted);margin-top:2px}
.dc-meta{display:flex;flex-wrap:wrap;gap:6px 12px;align-items:center;margin-top:8px;font-size:13px;color:#d9d2c4}
@media (max-width:760px){.tblbox{display:none}.cards{display:grid}}
.bulkbar{position:sticky;bottom:calc(10px + env(safe-area-inset-bottom,0px));z-index:6;margin-top:12px;display:flex;flex-wrap:wrap;gap:8px;align-items:center;padding:10px 12px;border-radius:16px;background:var(--night-3);border:1px solid var(--gold);box-shadow:0 14px 34px rgba(0,0,0,.45)}
.bulkbar b{margin-right:auto}
.x:disabled{opacity:.45;cursor:not-allowed}
.x.danger{color:#ffb4aa;border-color:rgba(240,116,102,.45)}
.side-top{position:sticky;top:calc(-16px - env(safe-area-inset-top,0px));z-index:3;display:flex;justify-content:space-between;gap:8px;flex-wrap:wrap;align-items:center;margin:-16px -20px 14px;padding:12px 20px;background:var(--night-2);border-bottom:1px solid var(--line)}
.side-acts{display:flex;gap:6px;flex-wrap:wrap}
.gradeline{display:flex;gap:12px;align-items:center;flex-wrap:wrap}
.gradeline>span:nth-child(2){flex:1;min-width:160px}
.grade.big{height:38px;min-width:48px;font-size:18px}
.decbox{padding:14px;border-radius:14px;background:rgba(255,255,255,.04);border:1px solid var(--line);display:grid;gap:12px}
.decbox h5{margin:0}
.decide{display:flex;flex-wrap:wrap;gap:6px}
.dbtn{border:1px solid var(--line-2);background:transparent;color:var(--ink);border-radius:999px;padding:9px 14px;font-weight:700;cursor:pointer;font-size:14px}
.dbtn[aria-pressed="true"]{color:#08112a;border-color:transparent}
.dbtn.d-ok[aria-pressed="true"]{background:var(--ok)}.dbtn.d-bad[aria-pressed="true"]{background:var(--bad)}.dbtn.d-warn[aria-pressed="true"]{background:var(--gold)}.dbtn.d-info[aria-pressed="true"]{background:#9fb3d9}
.dbtn.d-ok{border-color:rgba(82,201,141,.5)}.dbtn.d-bad{border-color:rgba(240,116,102,.5)}
.pill.s-VALIDATED{background:var(--ok-bg);color:var(--ok)}
.pill.s-REJECTED{background:var(--bad-bg);color:var(--bad)}
.pill.s-INCOMPLETE{background:rgba(242,183,91,.16);color:var(--gold)}
.modal{position:fixed;inset:0;z-index:50;background:rgba(3,8,22,.6);display:grid;place-items:center;padding:calc(16px + env(safe-area-inset-top,0px)) max(16px,env(safe-area-inset-right,0px)) calc(16px + env(safe-area-inset-bottom,0px)) max(16px,env(safe-area-inset-left,0px))}
.modal-card{width:min(560px,100%);max-height:100%;overflow-y:auto;background:var(--night-2);border:1px solid var(--line-2);border-radius:20px;padding:18px 20px 22px;box-shadow:0 30px 80px rgba(0,0,0,.5);display:grid;gap:12px}
.modal-head{display:flex;justify-content:space-between;align-items:center;gap:12px}
.modal-head h3{font-size:22px}
#modalB{display:grid;gap:12px}
.stack{display:grid;gap:12px}
.sharegrid{display:grid;gap:8px}
.sharegrid .btn{width:100%;text-decoration:none}
.tempbox{display:grid;gap:8px;padding:12px;border-radius:12px;background:var(--ok-bg)}
.tempbox .secret{font-size:18px;text-align:center}
.acl{display:grid;gap:8px}
.acl-row{display:grid;grid-template-columns:minmax(0,1fr) 170px;gap:8px 12px;align-items:center;padding:12px;border-radius:12px;background:rgba(255,255,255,.04);border:1px solid var(--line)}
.acl-who{display:grid;gap:2px;min-width:0}.acl-who b{overflow-wrap:anywhere}
.acl-acts{grid-column:1/-1;display:flex;flex-wrap:wrap;gap:6px}
.acl-acts:empty{display:none}
@media (max-width:560px){.acl-row{grid-template-columns:1fr}}
.formbar{display:grid;gap:10px;margin-bottom:12px}
.formacts{display:flex;flex-wrap:wrap;gap:8px}
.qlist{display:grid;gap:6px}
.qchap{margin:14px 0 2px;font-size:12px;letter-spacing:.12em;text-transform:uppercase;color:var(--gold);font-weight:800;font-family:var(--sans)}
.qrow{display:grid;grid-template-columns:30px minmax(0,1fr) auto;gap:10px;align-items:center;padding:10px 12px;border-radius:12px;background:var(--panel);border:1px solid var(--line)}
.qrow.custom{border-color:rgba(242,183,91,.45)}
.qn{color:var(--muted);font-size:13px;text-align:right}
.qt b{display:block;font-weight:600;overflow-wrap:anywhere}
.qt div{display:flex;flex-wrap:wrap;gap:4px;margin-top:4px}
.qa{display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end}
@media (max-width:560px){.qrow{grid-template-columns:24px minmax(0,1fr)}.qa{grid-column:2;justify-content:flex-start}}
.qb{font-size:11px;font-weight:700;padding:2px 8px;border-radius:999px;background:rgba(255,255,255,.08);color:var(--muted)}
.qb.lock{background:rgba(159,179,217,.16);color:#c3d1ee}.qb.off{background:var(--bad-bg);color:var(--bad)}.qb.mod{background:var(--gold-soft);color:var(--gold)}.qb.add{background:var(--ok-bg);color:var(--ok)}
.fe{border:1px solid var(--line);border-radius:12px;padding:10px 12px;display:grid;gap:8px;margin:0;min-width:0}
.fe legend{padding:0 6px;font-size:13px;font-weight:700;color:var(--gold)}
.optlist{display:grid;gap:6px}
.optlist .in{padding:9px 12px;font-size:15px}
#printArea{display:none}
@media print{
  @page{size:A4;margin:12mm}
  html,body{height:auto!important;overflow:visible!important;background:#fff!important;color:#111!important}
  body>*:not(#printArea){display:none!important}
  #printArea{display:block!important;font:10pt/1.35 "Hanken Grotesk",Arial,sans-serif;color:#111}
  .pp{break-after:page;page-break-after:always}
  .pp:last-child{break-after:auto;page-break-after:auto}
  .pp-h{display:flex;align-items:center;gap:14px;border-bottom:2px solid #a87018;padding-bottom:8px;margin-bottom:12px}
  .pp-h img{height:52px;width:auto}
  .pp-t{flex:1;display:grid}.pp-t b{color:#0a1430;font-size:12pt;letter-spacing:.04em}.pp-t span{color:#555}
  .pp-c{display:grid;text-align:right}.pp-c b{font-size:12pt}.pp-c span{color:#555;font-size:9pt}
  .pp-id{display:grid;grid-template-columns:1fr auto auto;gap:12px;align-items:center;margin-bottom:10px}
  .pp-id h1{font-family:Georgia,serif;font-size:18pt;margin:0;color:#111}
  .pp-id p{margin:2px 0 0;color:#333}
  .pp-g{width:46px;height:46px;border-radius:8px;display:grid;place-items:center;font-weight:800;font-size:18pt;color:#fff;-webkit-print-color-adjust:exact;print-color-adjust:exact}
  .pp-g.g-A{background:#2ea069}.pp-g.g-B{background:#248ca8}.pp-g.g-C{background:#ce8c1e}.pp-g.g-D{background:#cc4c40}.pp-g.g-INCOMPLET,.pp-g.g-x{background:#8a94ad;font-size:10pt}
  .pp-s{display:grid;text-align:right}.pp-s small{color:#666;font-size:8pt;max-width:240px}
  .pp h2{font-size:9pt;letter-spacing:.1em;text-transform:uppercase;color:#a87018;border-bottom:1px solid #e4dac6;margin:12px 0 4px;padding-bottom:2px;break-after:avoid}
  .pp table{width:100%;border-collapse:collapse}
  .pp tr{break-inside:avoid}
  .pp th{width:36%;text-align:left;font-weight:500;color:#555;padding:3px 8px 3px 0;vertical-align:top}
  .pp td{padding:3px 0;font-weight:600;color:#111;vertical-align:top}
  .pp footer{margin-top:14px;padding-top:6px;border-top:1px solid #ddd;font-size:8pt;color:#666}
}

.fq1{margin-bottom:8px}
.fmore{margin-bottom:10px}
.fmore summary{cursor:pointer;color:var(--muted);font-size:14px;font-weight:600;padding:6px 2px;list-style:none}
.fmore summary::-webkit-details-marker{display:none}
.fmore summary:before{content:"▸ ";color:var(--gold)}
.fmore[open] summary:before{content:"▾ "}
.fmore .filters{margin:6px 0 0}
@media (max-width:620px){.tabs{flex-wrap:wrap;border-radius:18px}.tabs button{flex:1 1 auto}}

.voicebtn{position:fixed;z-index:38;bottom:calc(18px + env(safe-area-inset-bottom,0px));left:50%;transform:translateX(-50%);white-space:nowrap;display:inline-flex;align-items:center;gap:8px;padding:12px 20px 12px 16px;font-size:15.5px!important;border-radius:999px;border:1px solid rgba(242,183,91,.7);background:rgba(10,20,46,.78);color:var(--ink);font-weight:800;font-size:14.5px;cursor:pointer;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);box-shadow:0 8px 24px rgba(0,0,0,.3)}
.voicebtn svg,.vbtn svg,.mic svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;flex:none}
.voicebtn svg path:first-child,.vbtn svg path:first-child{fill:currentColor}
.voicebtn.away{display:none}
.voicebtn[aria-pressed="true"]{background:var(--gold);color:#1d1406;border-color:var(--gold)}
.vbtn{display:inline-flex;align-items:center;gap:6px}
.vbtn.on{background:var(--gold);color:#1d1406;border-color:var(--gold)}
.vauto{font-size:12.5px;padding:8px 10px}
.vauto[aria-pressed="true"]{border-color:var(--gold);color:var(--gold)}
@media (max-width:420px){.vbtn span{display:none}.vbtn{padding:8px 10px}.sheet-top h2{font-size:18px}}
.lrow{display:flex;justify-content:space-between;align-items:center;gap:8px}
.mic{display:inline-flex;align-items:center;gap:4px;border:1px solid var(--line-2);background:rgba(255,255,255,.05);color:var(--ink);border-radius:999px;padding:4px 10px 4px 8px;font-size:12.5px;font-weight:700;cursor:pointer;flex:none}
.mic svg{width:16px;height:16px}
.mic.rec{background:var(--bad);border-color:var(--bad);color:#fff;animation:pulse 1.2s ease-in-out infinite}
@keyframes pulse{50%{opacity:.6}}
.speaking{outline:3px solid var(--gold)!important;outline-offset:3px;border-radius:12px;box-shadow:0 0 0 6px rgba(242,183,91,.18)}
@media (prefers-reduced-motion:reduce){.mic.rec{animation:none}}
.cond{display:contents}.cond[hidden]{display:none}
.lbtns{display:inline-flex;gap:6px;flex-wrap:wrap;justify-content:flex-end}
.fxb{font-size:12px;padding:4px 10px}
.fxp{border:1px solid rgba(242,183,91,.45);background:rgba(242,183,91,.07);border-radius:16px;padding:14px;display:grid;gap:10px}
.fxrow{display:grid;grid-template-columns:1fr 1fr;gap:10px}
@media (max-width:520px){.fxrow{grid-template-columns:1fr}}
.fxout{margin:0;font-size:16px}.fxout b{color:var(--gold,#f2b75b)}
.fxbtns{display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.fu h5{margin-bottom:8px}
.fu-prog{display:flex;align-items:center;gap:10px;margin:4px 0 12px}.fu-prog span{font-size:13px;opacity:.75;white-space:nowrap}
.fu-bar{flex:1;height:8px;border-radius:99px;background:rgba(255,255,255,.1);overflow:hidden}.fu-bar i{display:block;height:100%;background:linear-gradient(90deg,#f2b75b,#e9a23b);border-radius:99px}
.fu-now{border:1px solid rgba(242,183,91,.55);background:rgba(242,183,91,.08);border-radius:14px;padding:12px 14px;margin-bottom:12px}
.fu-now-h{display:flex;flex-direction:column;gap:2px}.fu-now-h b{font-size:16px}.fu-now p{margin:6px 0 10px;font-size:14px;line-height:1.45}
.fu-acts{display:flex;flex-wrap:wrap;gap:8px}
.fu-rel{display:grid;grid-template-columns:160px 1fr auto;gap:8px;align-items:end;margin-bottom:10px}.fu-rel .f{margin:0}
.fu-rel.late input[type=date]{border-color:#e7804f}.fu-late{grid-column:1/-1;color:#f0a070;margin:0}
@media (max-width:620px){.fu-rel{grid-template-columns:1fr}}
.fu-list{list-style:none;margin:6px 0 0;padding:0}
.fu-ph{font-size:11.5px;letter-spacing:.12em;text-transform:uppercase;color:#f2b75b;font-weight:800;margin:12px 0 4px}
.fu-step{display:flex;align-items:flex-start;gap:6px;padding:7px 8px;border-radius:10px}
.fu-step.cur{background:rgba(242,183,91,.1);outline:1px solid rgba(242,183,91,.35)}
.fu-step.s-na b{text-decoration:line-through;opacity:.6}
.fu-ck{display:flex;gap:10px;align-items:flex-start;flex:1;cursor:pointer}.fu-ck input{width:20px;height:20px;margin-top:1px;accent-color:#f2b75b;flex:none}
.fu-ck span{display:flex;flex-direction:column;gap:1px}.fu-ck small{font-size:12px;opacity:.7}.fu-note{font-style:italic}
.fu-more{padding:2px 10px}
.fu-docs ul{list-style:none;margin:2px 0 6px 36px;padding:0;display:grid;gap:4px}.fu-docs .fu-ck span{font-size:13.5px}
.fu-msgs{margin-top:12px;font-size:13px}
.pill.stg{background:rgba(120,160,255,.14);color:#cfe0ff}.pill.stg-bank{background:rgba(80,200,200,.14);color:#bff0ee}.pill.stg-end{background:rgba(90,200,120,.16);color:#c8f5d4}
.flag.rel{cursor:help}
.x.due[aria-pressed=true]{background:rgba(231,128,79,.25);border-color:#e7804f}
.tsteps{list-style:none;margin:12px 0 0;padding:0;display:grid;gap:6px;counter-reset:t}
.tsteps li{counter-increment:t;display:flex;gap:10px;align-items:center;font-size:14.5px;opacity:.55}
.tsteps li::before{content:counter(t);width:24px;height:24px;border-radius:50%;display:grid;place-items:center;border:1px solid currentColor;font-size:12px;font-weight:800;flex:none}
.tsteps li.ok{opacity:.85}.tsteps li.ok::before{content:'✓';background:#2ea069;border-color:#2ea069;color:#fff}
.tsteps li.now{opacity:1;font-weight:700}.tsteps li.now::before{background:#f2b75b;border-color:#f2b75b;color:#0a1430}
.stk{display:flex;flex-direction:column;align-items:flex-start;gap:4px}
.voicepick{position:fixed;z-index:39;left:50%;transform:translateX(-50%);bottom:calc(78px + env(safe-area-inset-bottom,0px));display:flex;gap:10px;padding:10px;border-radius:20px;background:rgba(10,20,46,.92);border:1px solid rgba(242,183,91,.6);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)}
.voicepick[hidden]{display:none}
.voicepick button{min-width:120px;padding:14px 18px;border-radius:14px;border:1px solid rgba(242,183,91,.7);background:transparent;color:#fff;font:800 17px/1 inherit;cursor:pointer}
.voicepick button:first-child{background:#f2b75b;color:#1d1406}
#qLang[aria-pressed=true]{background:rgba(242,183,91,.2);border-color:#f2b75b}
.fu-head{display:flex;justify-content:space-between;align-items:baseline;gap:10px;flex-wrap:wrap}.fu-head span{font-size:13px;opacity:.75}
.road{margin:6px 0 14px;padding:14px 12px 6px;border-radius:16px;background:linear-gradient(180deg,rgba(255,255,255,.04),rgba(255,255,255,.02));border:1px solid rgba(255,255,255,.08)}
.road-lane{position:relative;height:46px;margin:0 30px 0 6px}
.road-strip{position:absolute;left:0;right:0;bottom:4px;height:14px;border-radius:8px;background:#2a3142;box-shadow:inset 0 1px 0 rgba(255,255,255,.08);overflow:hidden}
.road-strip::after{content:'';position:absolute;left:6px;right:6px;top:6px;height:2px;background:repeating-linear-gradient(90deg,rgba(255,255,255,.55) 0 12px,transparent 12px 24px)}
.road-fill{position:absolute;left:0;top:0;bottom:0;background:linear-gradient(90deg,rgba(46,160,105,.55),rgba(242,183,91,.75));transition:width .8s ease}
.road-car{position:absolute;bottom:10px;width:58px;height:31px;transform:translateX(-50%);transition:left .9s cubic-bezier(.3,.7,.2,1);filter:drop-shadow(0 4px 6px rgba(0,0,0,.45));z-index:2}
.road-car svg{width:100%;height:100%;display:block;animation:bump 1.2s ease-in-out infinite}
.road-car.arrived svg{animation:none}
@keyframes bump{0%,100%{transform:translateY(0)}50%{transform:translateY(-1.5px)}}
@media (prefers-reduced-motion:reduce){.road-car,.road-fill{transition:none}.road-car svg{animation:none}}
.road-home{position:absolute;right:-30px;bottom:2px;width:30px;height:30px}.road-home svg{width:100%;height:100%}
.road-ph{list-style:none;margin:8px 0 0;padding:0;display:grid;gap:4px}
.road-ph button{width:100%;display:flex;flex-direction:column;align-items:center;gap:3px;padding:6px 2px;border-radius:12px;border:1px solid transparent;background:none;color:inherit;font:inherit;cursor:pointer}
.road-ph li.sel button{border-color:rgba(242,183,91,.6);background:rgba(242,183,91,.1)}
.road-ph .dot{width:26px;height:26px;border-radius:50%;display:grid;place-items:center;font-size:12.5px;font-weight:800;border:1.5px solid rgba(255,255,255,.35)}
.road-ph .ph-ok .dot{background:#2ea069;border-color:#2ea069;color:#fff}
.road-ph .ph-now .dot{background:#f2b75b;border-color:#f2b75b;color:#1d1406;box-shadow:0 0 0 4px rgba(242,183,91,.22)}
.road-ph .ph-skip{opacity:.45}
.road-ph .lbl{font-size:12.5px;font-weight:800;text-align:center;line-height:1.15}
.road-ph small{font-size:11px;opacity:.65}
@media (max-width:420px){.road-ph .lbl{font-size:10.5px}.road-lane{margin-right:26px}}
.ph-box{border:1px solid rgba(255,255,255,.1);border-radius:14px;padding:10px 10px 6px;margin-bottom:12px}
.ph-title{display:flex;justify-content:space-between;align-items:baseline;padding:2px 6px 6px;border-bottom:1px solid rgba(255,255,255,.08);margin-bottom:4px}.ph-title b{color:#f2b75b;letter-spacing:.04em}.ph-title span{font-size:12.5px;opacity:.7}
.ph-box .fu-list{position:relative}
.ph-box .fu-step{position:relative}
.road-house{position:absolute;bottom:20px;width:26px;height:26px;transform:translateX(-50%);opacity:.9;z-index:1}.road-house svg{width:100%;height:100%}
@media (max-width:420px){.road-ph .lbl{font-size:9.5px;letter-spacing:-.01em}}
.pill.stg-apv{background:rgba(190,140,255,.16);color:#e6d4ff}
/* --- admin épuré --- */
.abrand{display:flex;align-items:center;gap:12px;font-size:20px!important}
.logo-chip{display:inline-grid;place-items:center;background:#fff;border-radius:10px;padding:5px 9px;height:38px}
.logo-chip img{height:28px;width:auto;display:block}
.abrand-t{display:flex;flex-direction:column;line-height:1.05}.abrand-t small{font:600 11.5px/1.2 'Hanken Grotesk',system-ui,sans-serif;opacity:.6;letter-spacing:.02em;margin-top:3px}
.abar{margin:4px 0 16px!important;gap:12px!important}
.tabs{background:rgba(255,255,255,.05)!important}
.tabs button{font-size:14px!important;padding:8px 14px!important;color:inherit}
.who{margin-left:auto}
.acct{display:flex;align-items:center;gap:10px;background:transparent;border:1px solid rgba(255,255,255,.12);border-radius:999px;padding:4px 14px 4px 4px;color:inherit;cursor:pointer;font:inherit}
.acct .av{width:32px;height:32px;border-radius:50%;display:grid;place-items:center;background:rgba(242,183,91,.18);color:#f2b75b;font-weight:800}
.acct-t{display:flex;flex-direction:column;text-align:left;line-height:1.15}.acct-t b{font-size:13px}.acct-t small{font-size:11.5px;opacity:.6;max-width:180px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
@media (max-width:620px){.acct-t{display:none}.acct{padding:4px}.who{order:-1;margin-left:auto}.abar{flex-wrap:nowrap!important}.tabs{flex:1;min-width:0}}
.eseg{display:flex;gap:6px;overflow-x:auto;scrollbar-width:none;margin:0 0 12px;padding-bottom:2px}
.eseg::-webkit-scrollbar{display:none}
.eseg button{flex:none;display:inline-flex;align-items:center;gap:8px;padding:9px 14px;border-radius:12px;border:1px solid rgba(255,255,255,.1);background:rgba(255,255,255,.03);color:inherit;font:600 14px/1 inherit;cursor:pointer}
.eseg button b{font-weight:800;font-size:12.5px;padding:3px 7px;border-radius:999px;background:rgba(255,255,255,.08);min-width:22px;text-align:center}
.eseg button b:empty{display:none}
.eseg button[aria-selected=true]{background:#f4efe6;color:#0a1430;border-color:#f4efe6}
.eseg button[aria-selected=true] b{background:rgba(10,20,48,.1)}
.eseg .seg-rel b:not(:empty){background:rgba(231,128,79,.22);color:#f3a77d}
.lbar{display:grid;grid-template-columns:1fr 220px auto;gap:8px;margin-bottom:10px}
.srch{position:relative}.srch svg{position:absolute;left:12px;top:50%;transform:translateY(-50%);width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:2;opacity:.5}
.srch .in{padding-left:38px;width:100%}
.lbar .in{padding:10px 12px;font-size:14.5px}
.fbtn{white-space:nowrap}
@media (max-width:620px){.lbar{grid-template-columns:1fr auto}.lbar .srch{grid-column:1/-1}}
#fPanel{margin-bottom:10px}
.tools{font-size:13.5px}
.tools .x{font-size:13px;padding:6px 10px}
.tbl{min-width:760px!important;font-size:14.5px!important}
.tbl th,.tbl td{padding:12px 12px!important;vertical-align:middle}
.tbl th{font-size:11px!important}
.tbl td.ckc,.tbl th.ckc{width:36px}
.cl{display:flex;flex-direction:column;gap:3px}.cl small{font-size:12.5px;opacity:.6}
.muted{opacity:.6}
.etat{display:inline-flex;align-items:center;gap:7px;font-weight:700;font-size:13.5px}
.etat i{width:8px;height:8px;border-radius:50%;background:currentColor;flex:none}
.e-nouveau{color:#f2b75b}.e-cours{color:#e9edf5}.e-pause{color:#9aa3b5}.e-pause i{background:transparent;border:2px solid currentColor;width:6px;height:6px}.e-ferme{color:#7c8496}
.reltag{display:inline-block;margin-left:8px;font-size:11.5px;font-weight:700;color:#f3a77d;opacity:1}
.cl small .reltag{opacity:1}
.gmini{display:inline-grid;place-items:center;min-width:24px;height:22px;padding:0 6px;border-radius:6px;border:1px solid rgba(255,255,255,.25);font-weight:800;font-size:12.5px}
.tbl tr.r-nouveau td:nth-child(2){box-shadow:inset 3px 0 0 #f2b75b}
.tbl tr.r-ferme td{opacity:.6}
.dcard{grid-template-columns:30px minmax(0,1fr)!important;padding:14px 14px 14px 10px!important;border-radius:16px!important;gap:4px!important}
.dcard.r-nouveau{box-shadow:inset 3px 0 0 #f2b75b}
.dcard.r-ferme{opacity:.6}
.dc-top b{font-size:16px}
.dc-time{font-size:12.5px;white-space:nowrap}
.dc-st{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-top:6px;font-size:13.5px}
.dc-sub{margin-top:6px!important;font-size:13px!important;opacity:.75;color:inherit!important}
.cards{gap:10px!important}
.eseg{flex-wrap:nowrap}
.lbar .srch .in{padding-left:40px}
#v-admin:before{display:none}
#v-admin{background:radial-gradient(1200px 500px at 80% -10%,rgba(242,183,91,.07),transparent 60%),linear-gradient(180deg,#0c1631,#091024)}
#v-admin .sheet-top{background:linear-gradient(#0c1631 70%,rgba(12,22,49,0))}
.tabs{flex-wrap:nowrap!important}
@media (max-width:620px){#selPage{display:none}}
/* === Thème admin clair IMMOSEN (blanc, rouge, bleu nuit) === */
html.admin-only{color-scheme:light;
  --night:#f6f5f2;--night-2:#ffffff;--night-3:#f1f2f5;--panel:#ffffff;--glass:rgba(255,255,255,.92);
  --ink:#0d1b45;--muted:#5d6579;--faint:#8b93a5;
  --gold:#e3241b;--gold-d:#c21c14;--gold-soft:rgba(227,36,27,.07);--red:#e3241b;
  --line:rgba(13,27,69,.09);--line-2:rgba(13,27,69,.16);
  --ok:#17804f;--ok-bg:#e8f5ee;--warn:#b26a00;--bad:#c4271d;--bad-bg:#fdecea;
  --gA:#17804f;--gB:#1f6fae;--gC:#b26a00;--gD:#c4271d;--gI:#8b93a5}
html.admin-only body{background:#f6f5f2;color:var(--ink)}
html.admin-only #v-admin{background:#f6f5f2!important}
html.admin-only #v-admin .sheet-top{background:rgba(246,245,242,.94)!important;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border-bottom:1px solid var(--line)}
html.admin-only .abrand{color:var(--ink)}
html.admin-only .logo-chip{background:transparent;padding:0}
html.admin-only .logo-chip img{height:34px}
html.admin-only .abrand-t small{color:var(--muted);opacity:1}
html.admin-only .x{background:#fff;border-color:var(--line-2);color:var(--ink)}
html.admin-only .x:hover{background:#f3f4f7}
html.admin-only .btn-gold{background:var(--red);color:#fff}html.admin-only .btn-gold:hover{background:var(--gold-d)}
html.admin-only .btn-line{background:#fff;color:var(--ink)}html.admin-only .btn-line:hover{background:#f3f4f7}
html.admin-only .in,html.admin-only select.in,html.admin-only textarea.in{background:#fff;border-color:var(--line-2);color:var(--ink)}
html.admin-only .in:focus{border-color:var(--red);box-shadow:0 0 0 3px rgba(227,36,27,.12)}
html.admin-only select.in option{background:#fff;color:var(--ink)}
html.admin-only .tabs{background:#ebecef!important}
html.admin-only .tabs button{color:var(--muted)}
html.admin-only .tabs button[aria-selected="true"]{background:#fff;color:var(--ink);box-shadow:0 1px 3px rgba(13,27,69,.12)}
html.admin-only .acct{background:#fff;border-color:var(--line-2)}
html.admin-only .acct .av{background:var(--red);color:#fff}
html.admin-only .eseg button{background:#fff;border-color:var(--line-2);color:var(--ink)}
html.admin-only .eseg button b{background:#f0f1f4;color:var(--muted)}
html.admin-only .eseg button[aria-selected=true]{background:var(--ink);border-color:var(--ink);color:#fff}
html.admin-only .eseg button[aria-selected=true] b{background:rgba(255,255,255,.18);color:#fff}
html.admin-only .eseg .seg-rel b:not(:empty){background:#fdecea;color:var(--red)}
html.admin-only .tblbox{background:#fff;border-color:var(--line);box-shadow:0 1px 2px rgba(13,27,69,.04)}
html.admin-only .tbl th{background:#fafafb;color:var(--muted)}
html.admin-only .tbl th.on{color:var(--red)}
html.admin-only .tbl tbody tr:hover td{background:#fafafa}
html.admin-only .tbl tbody tr.sel td{background:#fff4f3}
html.admin-only .tbl input,html.admin-only .dcard .ck input,html.admin-only .fu-ck input{accent-color:var(--red)}
html.admin-only .dcard{background:#fff;border-color:var(--line);box-shadow:0 1px 2px rgba(13,27,69,.05)}
html.admin-only .dcard.sel{background:#fff4f3;border-color:rgba(227,36,27,.4)}
html.admin-only .e-nouveau{color:#1f63b8}html.admin-only .e-cours{color:#17804f}html.admin-only .e-pause{color:#b26a00}html.admin-only .e-ferme{color:#c4271d}
html.admin-only .tbl tr.r-nouveau td:nth-child(2),html.admin-only .dcard.r-nouveau{box-shadow:inset 3px 0 0 #1f63b8}
html.admin-only .tbl tr.r-ferme td{opacity:.8}html.admin-only .dcard.r-ferme{opacity:.85}
html.admin-only .e-pause i{background:currentColor;border:0;width:8px;height:8px}
html.admin-only .eseg [data-etat] i{display:inline-block;width:8px;height:8px;border-radius:50%;margin-right:-2px}
html.admin-only .eseg [data-etat=nouveau] i{background:#1f63b8}html.admin-only .eseg [data-etat=cours] i{background:#17804f}html.admin-only .eseg [data-etat=pause] i{background:#b26a00}html.admin-only .eseg [data-etat=ferme] i{background:#c4271d}
html.admin-only .reltag{color:var(--ink);background:#eef0f5;padding:2px 7px;border-radius:6px}
html.admin-only .gmini{border-color:var(--line-2);color:var(--ink)}
html.admin-only .muted{color:var(--muted);opacity:1}
html.admin-only .cl small{color:var(--muted);opacity:1}
html.admin-only .side{background:#fff;box-shadow:-20px 0 60px rgba(13,27,69,.18)}
html.admin-only .side-top{background:rgba(255,255,255,.95)!important;border-bottom:1px solid var(--line)}
html.admin-only .modal{background:rgba(13,27,69,.35)}
html.admin-only .modal-card{background:#fff;box-shadow:0 30px 80px rgba(13,27,69,.25)}
html.admin-only .toast{background:var(--ink);color:#fff}
html.admin-only .check,html.admin-only .acl-row,html.admin-only .scorebar div{background:#f7f8fa}
html.admin-only .alert.bad{color:var(--bad)}html.admin-only .alert.ok{color:var(--ok)}html.admin-only .alert.info{background:#f1f3f7;color:var(--ink)}
html.admin-only .kpis,html.admin-only .insight{background:var(--line)}
html.admin-only .kpis div,html.admin-only .insight div{background:#fff}
html.admin-only .card{background:#fff;box-shadow:0 1px 2px rgba(13,27,69,.04)}
html.admin-only .bar .tr{background:#eef0f4}
html.admin-only .bar .tr i{background:var(--ink)}
html.admin-only .bulkbar{background:var(--ink);color:#fff;border-color:var(--ink)}
html.admin-only .bulkbar .x,html.admin-only .bulkbar .btn-line{background:transparent;color:#fff;border-color:rgba(255,255,255,.35)}
html.admin-only .pill{background:#f0f1f4;color:var(--ink)}
html.admin-only .pill.s-VALIDATED,html.admin-only .pill.s-PREQUALIFIED,html.admin-only .pill.s-SHORTLISTED{background:var(--ok-bg);color:var(--ok)}
html.admin-only .pill.s-REJECTED{background:var(--bad-bg);color:var(--bad)}
html.admin-only .pill.s-NEW,html.admin-only .pill.s-INCOMPLETE{background:#fff1f0;color:var(--red)}
html.admin-only .pill.stg,html.admin-only .pill.stg-bank,html.admin-only .pill.stg-end,html.admin-only .pill.stg-apv{background:#f0f1f4;color:var(--ink)}
html.admin-only .dbtn{background:#fff}
html.admin-only .dbtn[aria-pressed="true"]{color:#fff}
html.admin-only .dbtn.d-info[aria-pressed="true"]{background:var(--ink)}
html.admin-only .qrow{background:#fff}
html.admin-only .qb{background:#f0f1f4}
html.admin-only .qb.lock{background:#eef1f8;color:#3b4f7a}
html.admin-only .grade{color:#fff}
html.admin-only .fu-bar{background:#eef0f4}
html.admin-only .fu-now{background:#fff6f5;border-color:rgba(227,36,27,.35)}
html.admin-only .fu-step.cur{background:#fff6f5;outline-color:rgba(227,36,27,.3)}
html.admin-only .ph-box{border-color:var(--line)}
html.admin-only .ph-title{border-bottom-color:var(--line)}
html.admin-only .ph-title b{color:var(--red)}
html.admin-only .road{background:#fafafb;border-color:var(--line)}
html.admin-only .road-strip{background:#d9dce3;box-shadow:none}
html.admin-only .road-strip::after{background:repeating-linear-gradient(90deg,#fff 0 12px,transparent 12px 24px)}
html.admin-only .road-fill{background:linear-gradient(90deg,rgba(13,27,69,.55),rgba(227,36,27,.75))}
html.admin-only .road-ph .dot{border-color:#c5cad5;color:var(--muted)}
html.admin-only .road-ph .ph-ok .dot{background:var(--ink);border-color:var(--ink);color:#fff}
html.admin-only .road-ph .ph-now .dot{background:var(--red);border-color:var(--red);color:#fff;box-shadow:0 0 0 4px rgba(227,36,27,.15)}
html.admin-only .road-ph li.sel button{border-color:rgba(227,36,27,.4);background:#fff}
html.admin-only .road-house path,html.admin-only .road-home path{stroke:var(--red)}
html.admin-only .road-house rect{fill:var(--red)}
html.admin-only .flag{color:var(--red)}
html.admin-only .fmore summary:before{color:var(--red)}
html.admin-only .carbody{fill:#e3241b;stroke:#0d1b45}
html.admin-only .road-car{filter:drop-shadow(0 3px 4px rgba(13,27,69,.25))}
.pbar{display:flex;margin:2px 0 12px}
.projsel{display:inline-flex;align-items:center;gap:10px;padding:6px 6px 6px 14px;border-radius:14px;background:#fff;border:1px solid var(--line-2);box-shadow:0 1px 2px rgba(13,27,69,.05);max-width:100%}
.projsel span{font-size:11.5px;font-weight:800;letter-spacing:.1em;text-transform:uppercase;color:var(--red)}
.projsel select{border:0;background:transparent;font:700 16px/1.2 inherit;color:var(--ink);padding:8px 28px 8px 4px;cursor:pointer;max-width:70vw}
.projsel select:focus{outline:2px solid rgba(227,36,27,.25);border-radius:8px}
.pjt{font-weight:700;color:var(--ink)}
.plist{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:12px}
.pcard{background:#fff;border:1px solid var(--line);border-radius:16px;padding:16px;display:grid;gap:12px;box-shadow:0 1px 2px rgba(13,27,69,.04)}
.pc-h{display:flex;justify-content:space-between;gap:10px;align-items:flex-start}.pc-h b{font-size:16.5px}.pc-h small{display:block;color:var(--muted);font-size:12.5px;margin-top:3px}
.pc-h .etat{font-size:12.5px;white-space:nowrap}
.pc-n{display:flex;gap:16px;flex-wrap:wrap;font-size:13.5px;color:var(--muted)}.pc-n b{color:var(--ink);font-size:16px}
.warnt{color:#b26a00;font-weight:700}
.pc-link{display:grid;grid-template-columns:1fr auto;gap:8px}.pc-link .in{font-size:13px;padding:8px 10px}
.pc-a{display:flex;gap:8px;flex-wrap:wrap}
.grid3{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}
.enr-row{display:grid;grid-template-columns:1fr auto;gap:8px}
.dc-agent{margin-top:4px;font-size:12.5px;color:var(--muted)}.dc-agent b{color:var(--ink)}
.addf{display:grid;grid-template-columns:1.2fr 1.4fr 1fr auto;gap:10px;align-items:end}
@media (max-width:760px){.addf{grid-template-columns:1fr}}
.acl-row.susp{opacity:.75}
.lbar{grid-template-columns:1fr 200px 190px auto!important}
@media (max-width:760px){.lbar{grid-template-columns:1fr 1fr auto!important}.lbar .srch{grid-column:1/-1}}
/* === ERP : départements === */
.dsw{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px;margin:2px 0 12px}
.dsw button{position:relative;display:flex;align-items:center;gap:10px;text-align:left;padding:10px 12px;border-radius:14px;border:1px solid var(--line-2);background:#fff;color:var(--ink);cursor:pointer;font:inherit;box-shadow:0 1px 2px rgba(13,27,69,.05);min-width:0}
.dsw svg{flex:none;width:30px;height:30px;padding:6px;border-radius:9px;background:#f1f2f5;fill:none;stroke:var(--ink);stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.dsw span{min-width:0}.dsw b{display:block;font-size:14.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.dsw small{display:block;font-size:12px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.dsw em{position:absolute;top:8px;right:10px;font-style:normal;font-size:11.5px;font-weight:800;background:#1f63b8;color:#fff;border-radius:999px;padding:2px 7px}
.dsw button[aria-selected=true]{background:var(--ink);border-color:var(--ink);color:#fff}
.dsw button[aria-selected=true] svg{background:var(--red);stroke:#fff}
.dsw button[aria-selected=true] small{color:rgba(255,255,255,.7)}
@media (max-width:620px){.dsw{gap:6px}.dsw button{flex-direction:column;align-items:flex-start;gap:6px;padding:9px}.dsw small{display:none}.dsw b{font-size:13px}.dsw svg{width:26px;height:26px;padding:5px}}
.e-exclu{color:#7a1f8a}html.admin-only .e-exclu{color:#7a1f8a}
html.admin-only .eseg [data-etat=exclu] i{background:#7a1f8a}
html.admin-only .tbl tr.r-exclu td,html.admin-only .dcard.r-exclu{opacity:.8}
.late{color:var(--red)!important}.kpis div.late b{color:var(--red)}
.reltag.late{background:#fdecea!important;color:var(--red)!important}
html.admin-only #ecards .dcard{grid-template-columns:minmax(0,1fr)!important;padding:14px!important}
.qc{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}.qc .x{text-decoration:none;font-size:13px}
.leasebox{display:flex;justify-content:space-between;gap:10px;align-items:flex-start;padding:12px;border-radius:12px;background:#f7f8fa;margin-bottom:10px}.leasebox b{display:block}.leasebox small{color:var(--muted);font-size:12.5px}
.minilist{display:grid;gap:6px;margin:8px 0}.minilist .x{text-align:left}
.fu-acts{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}
.mini3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-bottom:10px}.mini3 div{background:#f7f8fa;border-radius:12px;padding:10px}.mini3 b{display:block;font-size:15px;font-variant-numeric:tabular-nums}.mini3 span{font-size:12px;color:var(--muted)}.mini3 .late b{color:var(--red)}
.plines{list-style:none;margin:0 0 10px;padding:0;display:grid;gap:6px}
.plines li{display:flex;align-items:center;gap:10px;padding:10px 12px;border:1px solid var(--line);border-radius:12px;background:#fff}
.plines li>div{flex:1;min-width:0}.plines li b{display:block;font-size:14px}.plines li small{display:block;color:var(--muted);font-size:12.5px;margin-top:2px}
.plines li .num{font-weight:800;white-space:nowrap}
.plines li.ok{background:#f3faf6;border-color:rgba(23,128,79,.2)}.plines li.ok .num{color:var(--ok)}
.plines li.late{background:#fff6f5;border-color:rgba(227,36,27,.3)}.plines li.late .num{color:var(--red)}
.paybar{height:10px;border-radius:99px;background:#eef0f4;overflow:hidden;margin:6px 0}.paybar i{display:block;height:100%;background:linear-gradient(90deg,#0d1b45,#e3241b);border-radius:99px}
.pill.st-libre,.pill.st-disponible,.pill.st-fait,.pill.st-actif,.pill.st-solde{background:var(--ok-bg)!important;color:var(--ok)!important}
.pill.st-loue,.pill.st-vendu,.pill.st-en_cours{background:#e9eefb!important;color:#1f4fa8!important}
.pill.st-travaux,.pill.st-reserve,.pill.st-preavis,.pill.st-a_faire,.pill.st-normale{background:#fff4e0!important;color:#9a5b00!important}
.pill.st-urgente,.pill.st-bloque,.pill.st-indisponible,.pill.st-annule{background:var(--bad-bg)!important;color:var(--bad)!important}
.pill.st-termine,.pill.st-basse{background:#f0f1f4!important;color:var(--muted)!important}
.agrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:12px}
.acard{background:#fff;border:1px solid var(--line);border-radius:16px;padding:14px;display:grid;gap:10px;box-shadow:0 1px 2px rgba(13,27,69,.04);border-top:3px solid #d9dce3}
.acard.st-libre{border-top-color:#17804f}.acard.st-loue{border-top-color:#1f4fa8}.acard.st-travaux,.acard.st-reserve{border-top-color:#b26a00}.acard.st-indisponible{border-top-color:#c4271d}
.ac-h{display:flex;justify-content:space-between;gap:8px;align-items:flex-start}.ac-h b{font-size:16px}.ac-h small{display:block;color:var(--muted);font-size:12.5px}
.ac-r{display:flex;gap:12px;flex-wrap:wrap;font-size:13.5px;color:var(--muted)}.ac-r b{color:var(--ink)}
.ac-t{font-size:13.5px}.ac-f{display:flex;gap:6px;align-items:center;flex-wrap:wrap}.ac-f .grow{flex:1}
.lnk{background:none;border:0;padding:0;font:inherit;color:#1f4fa8;cursor:pointer;text-align:left}.lnk:hover{text-decoration:underline}.lnk b{color:inherit}
.kpis.k3{grid-template-columns:repeat(4,minmax(0,1fr))}@media (max-width:760px){.kpis.k3{grid-template-columns:repeat(2,minmax(0,1fr))}}
.kpis b{font-size:clamp(18px,2.6vw,28px)!important}
.tbl td.acts{white-space:nowrap}.tbl td.acts .x{margin-left:4px}
.tbl tr.r-late td{background:#fffafa}
.vday{margin-bottom:14px}.vday h5{text-transform:capitalize;font-size:14px;margin:0 0 8px;color:var(--ink)}
.rooms{display:grid;gap:10px}.room{display:grid;gap:6px;padding:10px;border:1px solid var(--line);border-radius:12px}.room b{font-size:14px}.room .decide{margin:0}
.tgt{min-width:110px}.tgt b{font-size:14px}.tgt small{color:var(--muted)}.tg-b{display:block;height:6px;border-radius:99px;background:#eef0f4;margin-top:5px;overflow:hidden}.tg-b i{display:block;height:100%;background:#1f4fa8;border-radius:99px}.tg-b i.full{background:var(--ok)}.tg-b i.low{background:#e3241b}
.mycards{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:12px}.mycards .card b{font-size:22px}
.msgwrap{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(0,1fr);gap:14px;align-items:start}@media (max-width:900px){.msgwrap{grid-template-columns:1fr}}
.msgwrap .card{display:grid;gap:12px}.chan{margin:0}.fgroup{display:grid;gap:10px;padding:12px;border-radius:12px;background:#f7f8fa}.chk3{display:flex;gap:8px;flex-wrap:wrap}.chk3 .check{background:#fff!important;padding:8px 12px}
.aslist{max-height:55vh;overflow:auto}
.lg{display:inline-block;width:10px;height:10px;border-radius:3px;margin:0 4px 0 10px;vertical-align:-1px}
.tblbox.rt{display:block}
.lbar.erp{display:flex!important;flex-wrap:wrap;gap:8px;align-items:end}.lbar.erp .srch{flex:1 1 320px}.lbar.erp>select,.lbar.erp>.dfl{flex:0 1 210px;min-width:0}.lbar.erp>.btn{flex:none;width:auto;padding-inline:18px}
.card.chart svg{max-height:260px;width:100%}
@media (max-width:760px){.lbar.erp>select,.lbar.erp>.dfl{flex:1 1 40%}.lbar.erp>.btn{flex:1 1 100%}.dsw b{white-space:normal;line-height:1.15}.tblbox.rt .tbl{min-width:0!important;width:100%}.tblbox.rt tr{width:100%;box-sizing:border-box}}
@media (max-width:760px){
 .tblbox.rt{display:block!important;border:0;background:transparent!important;box-shadow:none!important;max-height:none;overflow:visible}
 .tblbox.rt table,.tblbox.rt tbody{display:block;width:100%}.tblbox.rt thead{display:none}
 .tblbox.rt tr{display:grid;grid-template-columns:1fr 1fr;gap:6px 12px;background:#fff;border:1px solid var(--line);border-radius:14px;padding:12px;margin-bottom:8px}
 .tblbox.rt td{display:block;padding:0!important;border:0!important;text-align:left!important;background:transparent!important;min-width:0}
 .tblbox.rt td[data-l]::before{content:attr(data-l);display:block;font-size:11px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--faint);margin-bottom:2px}
 .tblbox.rt td:first-child,.tblbox.rt td.acts{grid-column:1/-1}.tblbox.rt td.acts::before,.tblbox.rt td:empty{display:none}
 .tblbox.rt tr.r-late{border-color:rgba(227,36,27,.35)}
 .mini3 b{font-size:13.5px}
}
/* v27 : photos des départements, Ma journée, statut Teams */
.dsw.dphoto{gap:10px!important}
.dsw.dphoto .dcardp{position:relative;display:block;height:140px;padding:0!important;border-radius:18px!important;overflow:hidden;border:0!important;background:#0d1b45!important;box-shadow:0 10px 24px -14px rgba(13,27,69,.6)!important;cursor:pointer;color:#fff}
.dsw.dphoto .dimg{position:absolute;inset:0;background-size:cover;background-position:center;transition:transform .35s}
.dsw.dphoto .dcardp:hover .dimg{transform:scale(1.05)}
.dsw.dphoto .dcardp::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,0,0,0) 40%,rgba(0,0,0,.35))}
.dsw.dphoto .dlab{position:absolute;left:0;bottom:0;z-index:1;display:flex;align-items:center;gap:8px;max-width:92%;padding:8px 12px 8px 10px;border-top-right-radius:14px;color:#fff;text-align:left}
.dsw.dphoto .dlab b{font-size:14px;line-height:1.12;font-weight:800;white-space:normal!important;color:#fff}
.dsw.dphoto .dlab svg{flex:none;width:24px!important;height:24px!important;padding:0!important;background:none!important;fill:none!important;stroke:#fff!important;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;border-radius:0!important}
.l-construction{background:#0d2b4e}.l-terrains{background:#1e5a34}.l-patrimoine{background:#a5621c}.l-location{background:#0d2b4e}.l-demarches{background:#a4441d}
.dsw.dphoto .dcardp[aria-selected=true]{box-shadow:0 0 0 3px #fff,0 0 0 6px #e3241b,0 14px 28px -12px rgba(13,27,69,.7)!important}
.dsw.dphoto .dcardp[aria-selected=false] .dimg{filter:saturate(.75) brightness(.92)}
.dsw.dphoto .dsel{position:absolute;top:8px;left:8px;z-index:2;width:26px;height:26px;border-radius:50%;background:#e3241b;color:#fff;font-style:normal;font-weight:800;display:grid;place-items:center;box-shadow:0 2px 6px rgba(0,0,0,.35)}
.dsw.dphoto em{z-index:2;top:8px!important;right:8px!important;box-shadow:0 2px 6px rgba(0,0,0,.35)!important}
@media (max-width:760px){.dsw.dphoto .dcardp{flex:0 0 168px;height:104px}.dsw.dphoto .dlab b{font-size:12.5px}}
.myday{margin:0 0 12px;padding:12px 14px;border-radius:18px;background:#fff;border:1px solid rgba(13,27,69,.1);box-shadow:0 10px 24px -20px rgba(13,27,69,.5);border-left:5px solid #1f63b8}
.myday.late{border-left-color:#e3241b}
.md-h{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.md-t b{display:block;font-size:17px;color:#0d1b45}.md-t small{color:var(--muted);text-transform:capitalize}
.md-c{display:flex;gap:6px;flex-wrap:wrap;flex:1}.ag-c.a{background:#eef0f5;color:#0d1b45}
.md-a{display:flex;gap:6px;align-items:center;margin-left:auto}
.btn.prog{font-size:14px;padding:10px 16px}
.mdlist{list-style:none;margin:10px 0 0;padding:0;display:grid;gap:6px}
.mdlist li{display:grid;grid-template-columns:132px 28px minmax(0,1fr) auto;gap:10px;align-items:center;padding:8px 10px;border-radius:12px;background:#f7f8fb}
.mdlist li.w-aujourdhui{background:#fff8ec}.mdlist li.w-retard{background:#fff1f0}
.md-w{font-weight:800;font-size:13px;color:#0d1b45}.w-retard .md-w{color:#c4271d}.w-aujourdhui .md-w{color:#9a5b00}
.md-k{font-size:18px;text-align:center}.md-b{min-width:0}.md-b b{display:block;font-size:14px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.md-b small{font-size:12px;color:var(--muted)}
.md-x{display:flex;gap:6px}.md-more{margin-top:8px}.md-empty{margin:10px 0 0;color:var(--muted);font-size:14px}
@media (max-width:760px){.mdlist li{grid-template-columns:auto minmax(0,1fr);grid-template-areas:"w w" "k b" "x x"}.md-w{grid-area:w}.md-k{grid-area:k}.md-b{grid-area:b}.md-x{grid-area:x;justify-content:flex-end}.md-a{margin-left:0;width:100%}.md-a .prog{flex:1}}
.pchoose{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}@media (max-width:560px){.pchoose{grid-template-columns:1fr}}
.pchoose button{display:grid;grid-template-columns:auto 1fr;grid-template-rows:auto auto;column-gap:12px;text-align:left;padding:14px;border-radius:16px;border:1px solid var(--line-2);background:#fff;font:inherit;color:var(--ink);cursor:pointer;box-shadow:0 8px 18px -16px rgba(13,27,69,.6)}
.pchoose button:hover{border-color:#e3241b;background:#fffafa}.pchoose span{grid-row:1/3;font-size:28px;align-self:center}.pchoose b{font-size:15px}.pchoose small{color:var(--muted);font-size:12.5px}
.rdvline{margin-top:3px;font-size:12px;color:#1f4fa8;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:360px}.rdvline.today{color:#9a5b00;font-weight:600}.rdvline b{font-weight:800}
.dcard .rdvline{white-space:normal;max-width:none}
.nfhead{margin-bottom:12px}.sharegrid.two{grid-template-columns:1fr 1fr}@media (max-width:560px){.sharegrid.two{grid-template-columns:1fr}}
#topMeWrap{margin-left:auto;margin-right:8px}
.topme{position:relative;display:flex;align-items:center;gap:8px}
.mebtn{display:flex;align-items:center;gap:8px;border:1px solid var(--line-2);background:#fff;border-radius:999px;padding:4px 12px 4px 4px;font:inherit;color:var(--ink);cursor:pointer;box-shadow:0 1px 2px rgba(13,27,69,.06)}
.meav{position:relative;flex:none;width:34px;height:34px;border-radius:50%;display:grid;place-items:center;font-weight:800;color:#fff;background:linear-gradient(145deg,#2a3f7a,#0b1636)}.meav.sm{width:30px;height:30px;font-size:13px}
.pdot{position:absolute;right:-2px;bottom:-2px;width:12px;height:12px;border-radius:50%;border:2px solid #fff;background:#9aa3b5;display:block}
.pdot.d-bureau.on{background:#22a35a}.pdot.d-terrain.on{background:#1f63b8}.pdot.d-off{background:#9aa3b5}.pdot.d-malade{background:#c4271d}.pdot.d-vacances{background:#e3a008}.pdot.d-bureau:not(.on),.pdot.d-terrain:not(.on){background:#c9ced9}
.mp-st .pdot{position:static;display:inline-block;margin-right:6px;vertical-align:-1px;border:0}
.met b{display:block;font-size:13.5px;line-height:1.1}.met small{font-size:11.5px;color:var(--muted)}
@media (max-width:620px){.met{display:none}.mebtn{padding:3px}}
.mepop{position:absolute;right:0;top:calc(100% + 8px);z-index:60;width:320px;max-width:calc(100vw - 24px);max-height:75vh;overflow:auto;background:#fff;border:1px solid var(--line-2);border-radius:16px;box-shadow:0 24px 50px -18px rgba(13,27,69,.5);padding:12px}
.mp-h b{display:block}.mp-h small{color:var(--muted)}
.mp-st{display:grid;gap:4px;margin:10px 0;padding:8px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.mp-st button{text-align:left;border:0;background:transparent;padding:8px 10px;border-radius:10px;font:600 14px/1.2 var(--sans);color:var(--ink);cursor:pointer}.mp-st button:hover{background:#f3f5fa}.mp-st button.on{background:#eef2fb}
.mp-c b{font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}.mp-c ul{list-style:none;margin:6px 0 0;padding:0;display:grid;gap:6px}.mp-c li{display:flex;align-items:center;gap:10px}.mp-c li>div{flex:1;min-width:0}.mp-c li b{display:block;font-size:13.5px;text-transform:none;letter-spacing:0;color:var(--ink)}.mp-c li small{font-size:12px;color:var(--muted)}.onl{color:#22a35a;font-weight:700}
.mp-f{display:flex;gap:6px;justify-content:space-between;margin-top:10px;padding-top:10px;border-top:1px solid var(--line)}
.call-lob{margin:0 12px 6px;padding:8px 12px;border-radius:12px;background:rgba(31,99,184,.25);color:#fff;font-size:13.5px}
.lob-r{display:flex;align-items:center;gap:10px;margin-top:6px;flex-wrap:wrap}.lob-r>div{flex:1;min-width:120px}.lob-r small{display:block;opacity:.75;font-size:12px}
.call-lob .x{background:rgba(255,255,255,.12);color:#fff;border-color:transparent}
.mv-lob{border:2px solid #1f63b8;background:#eef4ff;border-radius:14px;padding:10px 12px;margin:10px 0}.mv-lob .lob-r small{color:var(--muted)}
/* v34 : invité externe */
.pchoose .pc-guest{border-color:#1f63b8;background:#f3f7ff}
.inv-h small{display:block;color:var(--muted);font-size:12.5px}
.inv-send{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:8px}.inv-send .x{grid-column:1/-1}
@media (max-width:480px){.inv-send{grid-template-columns:1fr}}
.inv-wa{background:#25d366!important;color:#fff!important;border-color:#25d366!important;text-align:center}
.inv-send .btn{text-align:center;text-decoration:none}
.inv-ok{margin:4px 0;color:#1b8a4b;font-weight:700;font-size:13.5px}
.inv-msg summary{cursor:pointer;color:#1f4fa8;font-size:13px;margin-top:8px}
.mm-opts button[disabled]{opacity:.45;cursor:not-allowed}
/* v32 : départements, Ma journée, réunions, IA */
#mtgF .grid3 .in{min-width:0;width:100%}@media (max-width:560px){#mtgF .grid3{grid-template-columns:1fr 1fr!important}#mtgF .grid3>:first-child{grid-column:1/-1}}.modal-card .in{min-width:0}
.wcol .cchip-w{flex-direction:column}.wcol .joinx{align-self:stretch}
.dsw.dphoto .dcardp[aria-selected=true]{box-shadow:0 0 0 3px #fff,0 0 0 6px #22a35a,0 14px 28px -12px rgba(13,27,69,.7)!important}
.dsw.dphoto .dsel{background:#22a35a!important}
.dsw.dphoto{scroll-snap-type:x proximity}.dsw.dphoto .dcardp{scroll-snap-align:center}
@media (hover:none){.dsw.dphoto .dcardp:hover .dimg{transform:none}}
.myday{border-radius:0 18px 18px 0!important}
.mmode .mm-opts{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:6px}
.mm-opts button{display:grid;grid-template-columns:auto 1fr;column-gap:10px;text-align:left;border:2px solid var(--line-2);background:#fff;border-radius:14px;padding:10px 12px;cursor:pointer;font:inherit;color:var(--ink)}
.mm-opts button span{grid-row:1/3;font-size:24px;align-self:center}.mm-opts button small{color:var(--muted);font-size:12px}
.mm-opts button[aria-checked=true]{border-color:#22a35a;background:#f0faf3}
@media (max-width:560px){.mmode .mm-opts{grid-template-columns:1fr}}
.grow3{display:grid;grid-template-columns:1.2fr 1fr 1fr;gap:6px;margin-top:6px}@media (max-width:560px){.grow3{grid-template-columns:1fr}}
.invc{border:1px solid var(--line);border-radius:14px;padding:12px;margin:10px 0;background:#fff}.invc.bad{border-color:#e3241b}
.inv-k{display:flex;align-items:center;gap:10px;margin:6px 0}.inv-k span{font-size:12px;color:var(--muted)}.inv-k code{font-size:22px;font-weight:900;letter-spacing:.2em;background:#f3f5fa;padding:4px 10px;border-radius:8px}
.invc textarea{font-size:12.5px}
.pill-phys{display:inline-block;background:#eef2fb;border-radius:999px;padding:4px 12px;font-weight:700;font-size:13px;margin:8px 0}
.cchip-w{display:flex;gap:6px;align-items:stretch}.cchip-w .cchip{flex:1;min-width:0}.joinx{white-space:nowrap;align-self:center;background:#1f63b8!important;color:#fff!important;border-color:#1f63b8!important}
.call-rec{margin:0 12px 6px;padding:6px 12px;border-radius:10px;background:rgba(227,36,27,.2);color:#ffd2cf;font-size:13px;display:flex;align-items:center;gap:8px}.call-rec .x{margin-left:auto}
.tl-cap{position:absolute;left:8px;right:8px;bottom:42px;z-index:3;background:rgba(0,0,0,.72);color:#fff;font-size:15px;line-height:1.35;padding:6px 10px;border-radius:10px;text-align:center}
.tile.tr-on em::after{content:" · 🌐";}
.minutes .mn-acts{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:10px}.minutes .mn-acts .in{flex:1;min-width:160px}
.mn-sum{border:1px solid #cfe3d6;background:#f4fbf6;border-radius:14px;padding:12px;margin-bottom:10px}.mn-sh{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.mn-sh small{color:var(--muted);flex:1}
.mn-body{margin-top:8px;font-size:14.5px;line-height:1.5}.mn-body ul{margin:4px 0 8px;padding-left:20px}.mn-body h5,.mn-body h6{margin:10px 0 4px}
.mn-vh{display:flex;align-items:center;justify-content:space-between;margin:12px 0 6px}
.mn-v{max-height:46vh;overflow:auto;border:1px solid var(--line);border-radius:12px;padding:8px 10px;background:#fff}
.mn-v p{margin:0 0 8px;font-size:14px}.mn-v time{color:var(--muted);font-size:12px;margin-right:6px}.mn-v b{margin-right:6px;color:#1f4fa8}
.dmenu button.on{border-color:#22a35a;background:#f0faf3}
/* v31 : avatars, calendrier, Teams */
.meav.has-img,.tl-av.has-img{background-size:cover!important;background-position:center!important;color:transparent!important}
.meav.lg{width:52px;height:52px;font-size:22px}.meav.xl{width:96px;height:96px;font-size:40px}
.meav.grp{background:#e8ecf6;color:#0d1b45}
.pform .pf-av{display:flex;gap:16px;align-items:center}.pform .pf-av>div{display:flex;flex-direction:column;gap:6px;align-items:flex-start}.pform label.btn{cursor:pointer}
.mp-h{display:flex;gap:12px;align-items:center}.mp-h>div{display:flex;flex-direction:column;align-items:flex-start;min-width:0}
.mp-me{position:relative;border:0;background:none;padding:0;cursor:pointer;border-radius:50%}.mp-me i{position:absolute;right:-4px;bottom:-4px;font-style:normal;font-size:13px;background:#fff;border-radius:50%;width:24px;height:24px;display:grid;place-items:center;box-shadow:0 1px 4px rgba(0,0,0,.25)}
.mp-h .lnk{font-size:12.5px;margin-top:2px;text-align:left}
.smsg{display:block;font-style:italic;font-size:12px;color:#4a5578;margin-top:1px}
.mp-c .on-h,.mp-c .off-h{display:flex;align-items:center;gap:6px;margin:8px 0 2px}.mp-c .on-h .pdot,.mp-c .off-h .pdot{position:static;border:0}
.mp-c ul.offl li{opacity:.72}.mp-c li.none{display:block!important;color:var(--muted);font-size:13px;border:0}
/* badge rendez-vous dans les listes */
.rdvline{display:inline-block!important;vertical-align:middle;max-width:100%;margin-top:6px!important;padding:4px 11px 4px 4px;border-radius:999px;background:#e3241b;color:#fff!important;font-size:12.5px!important;font-weight:600;box-shadow:0 4px 10px -4px rgba(227,36,27,.6);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.rdvline b{color:#fff}.rdvline .muted{color:rgba(255,255,255,.8)!important}
.dcard .rdvline{white-space:nowrap!important}html.in-call .toast{bottom:calc(120px + env(safe-area-inset-bottom,0px))}.rdvline .rdvb-l{display:inline-block;margin-right:6px;background:#fff;color:#e3241b;font-weight:900;font-size:11px;letter-spacing:.04em;border-radius:999px;padding:2px 7px}
.rdvline.today{animation:rdvp 1.6s infinite}
@keyframes rdvp{0%,100%{box-shadow:0 0 0 0 rgba(227,36,27,.55)}50%{box-shadow:0 0 0 6px rgba(227,36,27,0)}}
/* calendrier */
.calhead2{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:12px}
.calmode{display:inline-flex;background:#e9ecf3;border-radius:999px;padding:3px}.calmode button{border:0;background:none;padding:7px 14px;border-radius:999px;font:700 13.5px var(--sans);color:#4a5578;cursor:pointer}.calmode button[aria-selected=true]{background:#fff;color:#0d1b45;box-shadow:0 1px 3px rgba(13,27,69,.15)}
.calnav{display:inline-flex;gap:4px}.calnav .x{min-width:38px}
.caltitle{margin:0;font-size:19px;text-transform:capitalize;font-family:var(--sans)}
.mgrid{background:#fff;border:1px solid var(--line);border-radius:16px;overflow:hidden}
.mg-h{display:grid;grid-template-columns:repeat(7,1fr);background:#f6f7fa;border-bottom:1px solid var(--line)}.mg-h span{padding:8px;font-size:12px;font-weight:800;color:var(--muted);text-align:center;text-transform:uppercase}
.mg-b{display:grid;grid-template-columns:repeat(7,1fr)}
.mcell{min-height:104px;border-right:1px solid #eef0f4;border-bottom:1px solid #eef0f4;padding:6px;cursor:pointer;position:relative;display:flex;flex-direction:column;gap:3px;min-width:0}
.mcell:nth-child(7n){border-right:0}.mcell:hover{background:#fafbfd}
.mcell>b{font-size:13px;width:26px;height:26px;display:grid;place-items:center;border-radius:50%}
.mcell.out{background:#fbfbfc}.mcell.out>b{color:#b6bccb}
.mcell.today>b{background:#e3241b;color:#fff}
.mcell.sel{box-shadow:inset 0 0 0 2px #1f63b8}
.mcell.abs{background:repeating-linear-gradient(135deg,#fff,#fff 8px,#fff7e6 8px,#fff7e6 16px)}
.mc-pr{position:absolute;top:6px;right:6px;font-style:normal;font-size:13px}
.mc-ev{display:flex;flex-direction:column;gap:2px;min-width:0}
.mev{display:block;font-size:11.5px;line-height:1.25;padding:2px 5px;border-radius:5px;background:#eef2fb;color:#0d1b45;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.mev i{font-style:normal;font-weight:800}.mev.m{background:#e7e2fb;color:#3a2a8a}.mev.k-visite{background:#e3f4ea;color:#14633a}.mev.k-relance{background:#fff2dc;color:#8a5a00}.mev.k-rdv,.mev.k-rappel{background:#fde7e6;color:#9b1e16}
.mcell .more{font-size:11px;color:var(--muted);font-weight:700}
.mdots{display:none;gap:3px;justify-content:center}.mdots i{width:6px;height:6px;border-radius:50%;background:#1f63b8}.mdots i.m{background:#6b4fd8}.mdots i.k-visite{background:#22a35a}.mdots i.k-relance{background:#e3a008}.mdots i.k-rdv,.mdots i.k-rappel{background:#e3241b}
.mday{margin-top:12px}.mday h4{text-transform:capitalize}
@media (max-width:700px){.mcell{min-height:58px;padding:4px 2px;align-items:center}.mc-ev{display:none}.mdots{display:flex}.mcell>b{font-size:12.5px}.mg-h span{padding:6px 0;font-size:10.5px}.mc-pr{top:2px;right:2px;font-size:10px}}
.cchip{display:flex;gap:10px;width:100%;text-align:left;border:1px solid var(--line);background:#fff;border-left:4px solid #1f63b8;border-radius:10px;padding:8px 10px;margin:6px 0;cursor:pointer;font:inherit;color:var(--ink)}
.cchip i{font-style:normal;font-weight:800;font-size:13px;min-width:46px;color:#0d1b45}.cchip span{min-width:0}.cchip small{display:block;font-size:12px;color:var(--muted)}
.cchip.m{border-left-color:#6b4fd8}.cchip.k-visite{border-left-color:#22a35a}.cchip.k-relance{border-left-color:#e3a008}.cchip.k-rdv,.cchip.k-rappel{border-left-color:#e3241b}.cchip.s-demande{border-style:dashed;border-left-style:solid}
.wgrid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:8px}
.wcol{background:#fff;border:1px solid var(--line);border-radius:14px;padding:8px;min-height:180px}.wcol.today{border-color:#e3241b;box-shadow:0 0 0 1px #e3241b}
.wc-h{display:flex;align-items:baseline;gap:6px;border:0;background:none;padding:0 0 6px;cursor:pointer;font:inherit;color:var(--ink);flex-wrap:wrap}.wc-h span{text-transform:capitalize;color:var(--muted);font-size:13px}.wc-h b{font-size:20px}
.wcol .cchip{flex-direction:column;gap:2px;padding:6px 8px}.wcol .cchip i{min-width:0}
.wc-none{color:#c3c8d3;text-align:center;margin:20px 0}
@media (max-width:900px){.wgrid{grid-template-columns:1fr}.wcol{min-height:0;display:flex;flex-direction:column}.wcol.empty{padding:6px 10px}.wcol.empty .wc-h{padding:0}.wcol.empty .wc-none{display:none}.wcol .cchip{flex-direction:row}}
.dview{padding:12px}.dv-all{margin-bottom:8px}
.dv-h{display:grid;grid-template-columns:44px 1fr;gap:10px;border-top:1px solid #eef0f4;min-height:46px;padding:4px 0}.dv-h>span{font-size:12px;color:var(--muted);font-weight:700;padding-top:4px}
.dv-h.now{background:linear-gradient(90deg,rgba(227,36,27,.06),transparent)}.dv-h.now>span{color:#e3241b}
.teamnow .meav{flex:none}
/* appel */
.cb .emo{display:grid;place-items:center;width:52px;height:52px;border-radius:50%;background:rgba(255,255,255,.14);font-size:22px}
.cb.on .emo{background:#e3a008}
.call-reacts{display:flex;justify-content:center;gap:8px;padding:6px}.call-reacts[hidden]{display:none}.call-reacts button{font-size:26px;background:rgba(255,255,255,.12);border:0;border-radius:14px;padding:6px 10px;cursor:pointer}
.tile.speaking{box-shadow:inset 0 0 0 3px #22a35a}
.tl-ic{position:absolute;right:10px;bottom:10px;z-index:2;display:flex;gap:4px}
.tile.muted .tl-ic::before{content:"🔇";background:rgba(0,0,0,.5);border-radius:999px;padding:2px 6px;font-size:13px}
.tile.hand .tl-ic::after{content:"✋";background:#e3a008;border-radius:999px;padding:2px 6px;font-size:13px;animation:rdvp 1.2s infinite}
.freact{position:absolute;left:50%;bottom:20%;z-index:3;font-size:46px;animation:freact 2.6s ease-out forwards;pointer-events:none}
@keyframes freact{0%{transform:translate(-50%,0) scale(.6);opacity:0}15%{opacity:1;transform:translate(-50%,-10px) scale(1.1)}100%{transform:translate(-50%,-140px) scale(1);opacity:0}}
.tile.scr video{object-fit:contain;background:#000}
.call-grid.present{grid-template-columns:repeat(auto-fill,minmax(150px,1fr))!important;grid-template-rows:1fr 120px;grid-auto-rows:120px}
.call-grid.present .tile.scr{grid-column:1/-1;order:-1}
.call-grid.present .tile:not(.scr) .tl-av{width:48px;height:48px;font-size:20px}
@media (max-width:700px){.call-grid.present{grid-template-rows:1fr 96px;grid-auto-rows:96px;grid-template-columns:repeat(auto-fill,minmax(110px,1fr))!important}.call-bar{gap:6px}.cb svg,.cb .emo{width:46px;height:46px}.cb span{font-size:10.5px}}
html.in-call .chatov{z-index:165}html.in-call .chat-in{width:min(420px,100%);grid-template-columns:1fr}html.in-call .chatov .chat-l{display:none}html.in-call .chatov .chat-r{display:flex!important}html.in-call .chback{display:grid!important}html.in-call .chatov{left:auto;width:min(420px,100%);background:none}
/* discussions */
.onstrip{display:flex;gap:10px;overflow-x:auto;padding:4px 6px 10px;scrollbar-width:none}.onstrip::-webkit-scrollbar{display:none}
.onstrip button{border:0;background:none;display:flex;flex-direction:column;align-items:center;gap:3px;cursor:pointer;padding:0;flex:none;width:56px}.onstrip .meav{width:44px;height:44px}.onstrip small{font-size:11.5px;color:var(--ink);max-width:56px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.chi.arch{opacity:.7}
.charch{margin:10px 4px 0;border-top:1px solid var(--line);padding-top:6px}.charch summary{cursor:pointer;font-weight:800;font-size:13px;color:#4a5578;padding:6px 6px;list-style:none}.charch summary small{display:block;font-weight:500;color:var(--muted)}
.charb{margin:0;padding:8px 14px;background:#fff7e6;color:#7a5200;font-size:13px;border-bottom:1px solid #f1d38c}
.chr-rep,.chr-men{background:#fff;border-top:1px solid var(--line);padding:8px 12px;display:flex;gap:8px;align-items:center}.chr-rep[hidden],.chr-men[hidden]{display:none}
.chr-rep>div{flex:1;min-width:0;border-left:3px solid #1f63b8;padding-left:8px}.chr-rep b{display:block;font-size:12.5px;color:#1f4fa8}.chr-rep small{display:block;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.chr-men{flex-wrap:wrap}.chr-men button{display:flex;align-items:center;gap:6px;border:1px solid var(--line-2);background:#fff;border-radius:999px;padding:3px 10px 3px 3px;cursor:pointer;font:600 13px var(--sans)}.chr-men .meav{width:26px;height:26px;font-size:11px}
.chq{display:block;width:100%;text-align:left;border:0;border-left:3px solid #1f63b8;background:rgba(31,99,184,.07);border-radius:6px;padding:4px 8px;margin-bottom:4px;font:13px var(--sans);color:#4a5578;cursor:pointer;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.chq b{display:block;color:#1f4fa8;font-size:12px}
.msg{position:relative}
.msg .rxs{display:flex;gap:4px;flex-wrap:wrap;margin-top:4px}.rx{border:1px solid var(--line-2);background:#fff;border-radius:999px;padding:1px 7px;font-size:12.5px;cursor:pointer}.rx.me{border-color:#1f63b8;background:#eaf1ff}
.macts{display:none;position:absolute;top:-34px;right:0;z-index:3;background:#fff;border:1px solid var(--line-2);border-radius:999px;padding:3px;box-shadow:0 6px 16px -6px rgba(13,27,69,.35);gap:2px;white-space:nowrap}
.msg:not(.mine) .macts{right:auto;left:0}
.macts button{border:0;background:none;font-size:17px;padding:3px 5px;cursor:pointer;border-radius:8px}.macts button:hover{background:#f1f3f8}
@media (hover:hover){.msg:hover .macts{display:flex}}
.msg.acts .macts{display:flex}
.men{color:#1f4fa8;font-weight:700}.men.me{background:#fff2c4;border-radius:4px;padding:0 3px}
.msg.flash{animation:flash 1.5s}@keyframes flash{0%,60%{box-shadow:0 0 0 3px #e3a008}100%{box-shadow:none}}
/* v30 : Mes documents */
.modal{z-index:170!important}.toast{z-index:260!important}
#aDocs svg{fill:none;stroke:currentColor;stroke-width:1.8;stroke-linejoin:round}
@media (max-width:420px){.topme{gap:5px}.topme .bell{width:38px;height:38px}}
.docsov{position:fixed;inset:0;z-index:118;background:rgba(7,13,32,.45);display:flex;justify-content:flex-end}
.docsov[hidden]{display:none}
.docs-in{position:relative;width:min(860px,100%);height:100%;background:#f5f6f9;display:flex;flex-direction:column;box-shadow:-20px 0 60px -20px rgba(0,0,0,.4);padding-top:env(safe-area-inset-top,0px)}
.docs-h{display:flex;align-items:center;gap:10px;padding:14px 16px 6px}.docs-t{flex:1;min-width:0}.docs-t b{display:block;font-size:20px}.docs-t small{color:var(--muted)}
.docs-q{padding:0 16px 8px}.qbar{height:8px;border-radius:99px;background:#e3e7ef;overflow:hidden}.qbar i{display:block;height:100%;background:#22a35a;border-radius:99px}.qbar i.mid{background:#e3a008}.qbar i.hi{background:#e3241b}.docs-q small{font-size:12px;color:var(--muted)}
.docs-bar{display:flex;gap:8px;flex-wrap:wrap;align-items:center;padding:0 16px 8px}.docs-bar .in{flex:1 1 200px;min-width:0}.docs-bar label.btn{cursor:pointer}.docs-bar .x.on{background:#0d1b45;color:#fff}
.docs-crumbs{display:flex;gap:6px;align-items:center;flex-wrap:wrap;padding:4px 16px 8px;font-size:14px}.docs-crumbs span{color:var(--muted)}
.docs-l{flex:1;overflow:auto;padding:0 12px calc(16px + env(safe-area-inset-bottom,0px));display:flex;flex-direction:column;gap:6px}
.drow{display:flex;align-items:center;gap:12px;background:#fff;border:1px solid var(--line);border-radius:14px;padding:9px 10px;cursor:pointer}
.drow:hover{border-color:#c9d3e8}.drow.fold .dnm b{color:#0d1b45}
.dic{flex:none;width:44px;height:44px;border-radius:10px;display:grid;place-items:center;font-size:24px;background:#f1f3f8;overflow:hidden}
.dth{width:100%;height:100%;background:#e3e7ef center/cover no-repeat}
.dnm{flex:1;min-width:0}.dnm b{display:block;font-size:14.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.dnm small{display:block;font-size:12px;color:var(--muted)}
.dmore{font-size:18px;line-height:1;padding:6px 12px}
.dempty{margin:40px auto;text-align:center;max-width:380px}
.docs-drop{position:absolute;inset:12px;border:3px dashed #1f63b8;border-radius:20px;background:rgba(31,99,184,.08);display:grid;place-items:center;font-size:20px;font-weight:800;color:#1f63b8;pointer-events:none}
.dmenu{display:grid;gap:6px}.dmenu button{text-align:left;border:1px solid var(--line);background:#fff;border-radius:12px;padding:12px 14px;font:600 15px var(--sans);color:var(--ink);cursor:pointer}.dmenu button:hover{background:#f3f5fa}.dmenu button.del{color:#c4271d}.dmenu button[disabled]{opacity:.45;cursor:not-allowed}
/* v29 : disponibilité, discussions, appels, photos, manuel */
.pdot.a-disponible{background:#22a35a}.pdot.a-occupe{background:#d9363e}.pdot.a-ne_pas_deranger{background:#b3261e;box-shadow:inset 0 0 0 3px #b3261e,inset 0 -1px 0 4px #fff}.pdot.a-absent{background:#e3a008}.pdot.a-hors{background:#c3c8d3}
.pdot.a-ne_pas_deranger{background:linear-gradient(#b3261e,#b3261e) padding-box;position:absolute}
.pdot.a-ne_pas_deranger::after{content:"";position:absolute;left:2px;right:2px;top:50%;height:2px;margin-top:-1px;background:#fff;border-radius:2px}
.av-disponible{color:#1b8a4b;font-weight:700}.av-occupe,.av-ne_pas_deranger{color:#c4271d;font-weight:700}.av-absent{color:#a8730a;font-weight:700}.av-hors{color:var(--muted)}
.mp-l{margin:10px 2px 2px;font-size:11.5px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);font-weight:700}
.mp-st .pdot{position:relative!important;display:inline-block;right:auto;bottom:auto;margin-right:8px;vertical-align:-1px;border:0}
.mp-loc{grid-template-columns:1fr 1fr}
.mp-c li{display:grid!important;grid-template-columns:30px 1fr;column-gap:10px!important;row-gap:4px!important;align-items:center;padding:6px 0;border-bottom:1px solid #f0f2f6}.mp-c li .meav{grid-row:1/3;align-self:start}.mp-act{grid-column:2;display:flex;gap:6px}.mpi{width:30px!important;height:30px!important}.mpi{flex:none;width:32px;height:32px;border-radius:50%;border:1px solid var(--line-2);background:#fff;display:grid;place-items:center;cursor:pointer;padding:0;font-size:14px}
.mpi svg,.cbtn svg{width:16px;height:16px;fill:#0d1b45}.mpi:hover{background:#f3f5fa}
.mepop{width:360px!important}
.mp-f{flex-wrap:wrap}
.topme .bell svg{fill:none;stroke:currentColor;stroke-width:1.8}
#aChat svg{fill:none;stroke:currentColor;stroke-width:1.8;stroke-linejoin:round}
.x.xs{padding:2px 7px;font-size:12px;min-height:0}
/* galerie */
.galsec .fu-head{display:flex;align-items:center;gap:10px;justify-content:space-between}
.gal-add{cursor:pointer}
.gal{display:grid;grid-template-columns:repeat(auto-fill,minmax(92px,1fr));gap:8px}
.gal>.note{grid-column:1/-1}
.gth{position:relative;aspect-ratio:1;border:0;padding:0;border-radius:12px;overflow:hidden;background:#eef0f5;cursor:pointer}
.gth span{position:absolute;inset:0;background-size:cover;background-position:center;opacity:0;transition:opacity .3s}.gth span.ld{opacity:1}
.gth.pdf{display:grid;place-items:center;align-content:center;gap:2px;background:#fff3f2;border:1px solid #f3c6c2;color:#a4241b;padding:6px}.gth.pdf small{font-size:11px;color:#6b2a24;word-break:break-all}
.viewer .vw-img{display:grid;place-items:center;min-height:200px;background:#0b1636;border-radius:14px;overflow:hidden}
.viewer .vw-img img{max-width:100%;max-height:70vh;display:block}
.vw-nav{display:flex;align-items:center;justify-content:space-between;gap:8px;margin:10px 0}
/* biens du client */
.cabgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:10px}
.cabc{border:1px solid var(--line);border-radius:14px;overflow:hidden;background:#fff}
.cab-img{position:relative;height:120px;background:#eef0f5 center/cover no-repeat;display:grid;place-items:center;font-size:34px}
.cab-img em{position:absolute;left:8px;top:8px;font-style:normal;font-size:11.5px;font-weight:800;background:rgba(13,27,69,.85);color:#fff;border-radius:999px;padding:3px 9px}
.cab-b{padding:10px}.cab-b b{display:block;font-size:14px}.cab-b small{display:block;color:var(--muted);font-size:12px;margin-top:2px}
.cab-a{display:flex;gap:6px;margin-top:8px;flex-wrap:wrap}
.atnew{margin-top:6px;border:1px dashed var(--line-2);border-radius:12px;padding:10px}.atnew summary{cursor:pointer;font-weight:700}.atnew[open] summary{margin-bottom:10px}
/* manuel */
.man-h{display:grid;grid-template-columns:1fr minmax(220px,340px);gap:12px;align-items:end;margin-bottom:12px}
.man-h h3{margin:0 0 4px;font-size:20px}.man-add{grid-column:1/-1;display:flex;gap:8px;flex-wrap:wrap}
@media (max-width:700px){.man-h{grid-template-columns:1fr}}
.man-note{background:#fff8e6;border:1px solid #f1d38c;border-radius:14px;padding:12px 14px;margin-bottom:10px}.man-note p{margin:6px 0}
.man-t{margin:18px 0 8px;font-size:15px;font-family:var(--sans)}.man-h h3{font-family:var(--sans)}
.man-list{display:grid;gap:8px}
.man-p{background:#fff;border:1px solid var(--line);border-radius:14px;padding:0 14px}
.man-p summary{cursor:pointer;padding:14px 0;display:flex;flex-direction:column;gap:2px;list-style:none}.man-p summary::-webkit-details-marker{display:none}
.man-p summary b{font-size:15px}.man-p summary small{color:var(--muted)}
.man-p summary::after{content:"▾";position:absolute;right:28px;color:var(--muted)}
.man-p{position:relative}.man-p[open]{padding-bottom:14px;box-shadow:0 10px 24px -20px rgba(13,27,69,.5)}
.man-p h6{margin:12px 0 6px;font-size:12px;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}
.man-p ol,.man-p ul{margin:0;padding-left:20px;display:grid;gap:4px}.man-docs li::marker{content:"☐  "}
.man-b{background:#f7f8fb;border-radius:10px;padding:10px}
.man-c{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:10px}
.mcard{background:#fff;border:1px solid var(--line);border-radius:14px;padding:12px;display:flex;flex-direction:column;gap:4px}
.mcard small{color:var(--muted)}.mcard a{color:#1f4fa8;text-decoration:none;font-weight:600;word-break:break-word}.mcard .x{align-self:flex-start;margin-top:6px}
/* réunion en ligne */
.onl-chk span small{display:block;color:var(--muted);font-size:12px}
.joinbtn{width:100%;margin:10px 0;font-size:16px}
/* sonnerie */
.ringov{position:fixed;inset:0;z-index:200;background:rgba(7,13,32,.72);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);display:grid;place-items:center;padding:16px}
.ringcard{width:min(360px,100%);background:linear-gradient(160deg,#13245a,#0b1636);color:#fff;border-radius:26px;padding:28px 20px 22px;text-align:center;box-shadow:0 30px 80px -20px rgba(0,0,0,.6)}
.ring-av{width:96px;height:96px;margin:0 auto 14px;border-radius:50%;display:grid;place-items:center;background:#2a3f7a;font-size:38px;font-weight:800;position:relative}
.ring-av::before,.ring-av::after{content:"";position:absolute;inset:-8px;border-radius:50%;border:2px solid rgba(255,255,255,.35);animation:ringp 1.6s infinite}
.ring-av::after{animation-delay:.8s}
@keyframes ringp{from{transform:scale(.9);opacity:1}to{transform:scale(1.35);opacity:0}}
.ringcard b{display:block;font-size:20px}.ringcard small{display:block;opacity:.75;margin-top:4px}
.ring-b{display:flex;justify-content:center;gap:18px;margin-top:22px}
.rb{border:0;background:none;color:#fff;display:flex;flex-direction:column;align-items:center;gap:6px;cursor:pointer;font:600 12.5px var(--sans)}
.rb svg{width:58px;height:58px;padding:16px;border-radius:50%;fill:#fff;box-sizing:border-box}
.rb.no svg{background:#e3241b}.rb.au svg{background:#22a35a}.rb.vi svg{background:#1f63b8}
/* appel */
html.in-call,html.in-chat{overflow:hidden}
.callov{position:fixed;inset:0;z-index:150;background:#070d20;color:#fff;display:flex;flex-direction:column}
.call-top{display:flex;justify-content:space-between;align-items:center;padding:calc(12px + env(safe-area-inset-top,0px)) 16px 10px}
.call-top b{display:block;font-size:16px}.call-top small{opacity:.7}.call-time{font-variant-numeric:tabular-nums;opacity:.8}
.call-grid{flex:1;display:grid;gap:8px;padding:8px;grid-template-columns:1fr;grid-auto-rows:1fr;min-height:0}
.call-grid[data-n="2"]{grid-template-columns:1fr 1fr}.call-grid[data-n="3"],.call-grid[data-n="4"]{grid-template-columns:1fr 1fr}
.call-grid[data-n="5"],.call-grid[data-n="6"],.call-grid[data-n="7"],.call-grid[data-n="8"],.call-grid[data-n="9"]{grid-template-columns:1fr 1fr 1fr}
@media (max-width:700px){.call-grid[data-n="2"]{grid-template-columns:1fr}.call-grid[data-n="5"],.call-grid[data-n="6"],.call-grid[data-n="7"],.call-grid[data-n="8"],.call-grid[data-n="9"]{grid-template-columns:1fr 1fr}}
.tile{position:relative;background:#141d3b;border-radius:16px;overflow:hidden;min-height:0;display:grid;place-items:center}
.tile video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;background:#141d3b}
.tile.me video{transform:scaleX(-1)}
.tile .tl-av{display:none;width:84px;height:84px;border-radius:50%;background:#2a3f7a;font-size:34px;font-weight:800;place-items:center;position:relative;z-index:1}
.tile.novid video{opacity:0}.tile.novid .tl-av{display:grid}
.tile em{position:absolute;left:10px;bottom:10px;z-index:2;font-style:normal;font-size:13px;font-weight:700;background:rgba(0,0,0,.45);padding:3px 9px;border-radius:999px}
.tile.waiting::after{content:"Connexion…";position:absolute;top:10px;right:10px;font-size:12px;background:rgba(255,255,255,.15);padding:3px 8px;border-radius:999px;z-index:2}
.call-grid[data-n="2"] .tile.me{order:2}
.call-warn{margin:0 12px 8px;padding:8px 12px;border-radius:10px;background:rgba(227,160,8,.18);color:#ffe2a3;font-size:13px}
.call-bar{display:flex;justify-content:center;gap:12px;padding:12px 12px calc(14px + env(safe-area-inset-bottom,0px));flex-wrap:wrap}
.cb{border:0;background:none;color:#fff;display:flex;flex-direction:column;align-items:center;gap:4px;font:600 11.5px var(--sans);cursor:pointer}
.cb svg{width:52px;height:52px;padding:14px;border-radius:50%;background:rgba(255,255,255,.14);fill:#fff;box-sizing:border-box}
.cb.off svg{background:#fff;fill:#0b1636}.cb.on svg{background:#1f63b8}.cb.end svg{background:#e3241b}
/* discussions */
.chatov{position:fixed;inset:0;z-index:120;background:rgba(7,13,32,.45);display:grid;place-items:stretch}
.chatov[hidden]{display:none}
.chat-in{margin:0 0 0 auto;width:min(980px,100%);height:100%;background:#f5f6f9;display:grid;grid-template-columns:320px 1fr;box-shadow:-20px 0 60px -20px rgba(0,0,0,.4)}
.chat-l{background:#fff;border-right:1px solid var(--line);display:flex;flex-direction:column;min-height:0;padding-top:env(safe-area-inset-top,0px)}
.chl-h{display:flex;align-items:center;gap:8px;padding:14px 12px 8px}.chl-h b{flex:1;font-size:18px}
.chat-l>.in{margin:0 12px 8px;width:auto}
#chList{overflow:auto;flex:1;padding:0 6px 12px}
.chi{width:100%;display:flex;align-items:center;gap:10px;border:0;background:none;padding:9px 8px;border-radius:12px;text-align:left;cursor:pointer;font:inherit;color:var(--ink)}
.chi:hover{background:#f3f5fa}.chi.on{background:#eef2fb}
.chi-t{flex:1;min-width:0}.chi-t b{display:block;font-size:14px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.chi-t small{display:block;font-size:12.5px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.chi.unread .chi-t b,.chi.unread .chi-t small{color:var(--ink);font-weight:800}
.chi-m{display:flex;flex-direction:column;align-items:flex-end;gap:4px}.chi-m small{font-size:11px;color:var(--muted)}.chi-m em{font-style:normal;background:#e3241b;color:#fff;font-size:11px;font-weight:800;border-radius:999px;padding:1px 7px}
.chl-sep{margin:12px 10px 4px;font-size:11.5px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);font-weight:700}
.chat-r{display:flex;flex-direction:column;min-height:0;min-width:0}
.ch-empty{margin:auto;max-width:360px;text-align:center;padding:20px}
.chr-h{display:flex;align-items:center;gap:10px;padding:calc(10px + env(safe-area-inset-top,0px)) 12px 10px;background:#fff;border-bottom:1px solid var(--line)}
.chr-t{flex:1;min-width:0}.chr-t b{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.chr-t small{color:var(--muted);font-size:12px}
.cbtn{width:38px;height:38px;border-radius:50%;border:1px solid var(--line-2);background:#fff;display:grid;place-items:center;cursor:pointer;padding:0;flex:none;font-size:16px}
.cbtn svg{width:18px;height:18px}
.chback{display:none}
.chr-m{flex:1;overflow:auto;padding:14px 14px 6px;display:flex;flex-direction:column;gap:4px}
.chday{align-self:center;font-size:12px;color:var(--muted);background:#e9ecf3;border-radius:999px;padding:2px 10px;margin:8px 0}
.chsys{align-self:center;font-size:12.5px;color:var(--muted);margin:4px 0;text-align:center}
.msg{max-width:78%;align-self:flex-start;background:#fff;border:1px solid var(--line);border-radius:16px 16px 16px 4px;padding:7px 11px;box-shadow:0 1px 1px rgba(13,27,69,.04)}
.msg.mine{align-self:flex-end;background:#e3ecff;border-color:#cbd9f7;border-radius:16px 16px 4px 16px}
.msg p{margin:0;white-space:pre-wrap;word-break:break-word;font-size:14.5px}.msg a{color:#1f4fa8}
.msg .mn{display:block;font-weight:800;font-size:12px;color:#1f4fa8;margin-bottom:2px}
.msg .mt{display:block;text-align:right;font-size:11px;color:var(--muted);margin-top:2px}
.msg.pend{opacity:.6}.msg.fail{border-color:#e3241b}
.chimg{display:block;width:220px;max-width:100%;aspect-ratio:4/3;border:0;padding:0;border-radius:12px;overflow:hidden;background:#eef0f5;position:relative;cursor:pointer;margin-bottom:4px}
.chimg span{position:absolute;inset:0;background-size:cover;background-position:center}
.chpdf,.chlink{display:block;width:100%;text-align:left;border:1px solid var(--line-2);background:#fff;border-radius:10px;padding:8px 10px;cursor:pointer;font:600 13.5px var(--sans);color:var(--ink);margin-bottom:4px}
.chlink small{display:block;font-weight:500;color:#1f4fa8;font-size:12px}
.chr-dos{background:#fff;border-top:1px solid var(--line);padding:8px 12px}.chd{display:flex;gap:8px}.chd .in{flex:1}#chDr{display:flex;flex-wrap:wrap;gap:6px;margin-top:6px}
.chr-f{display:flex;align-items:flex-end;gap:8px;padding:10px 12px calc(10px + env(safe-area-inset-bottom,0px));background:#fff;border-top:1px solid var(--line)}
.chr-f textarea{flex:1;resize:none;min-height:42px;max-height:140px;line-height:1.35}
.chr-f .btn{flex:none;width:46px;height:42px;padding:0;font-size:18px}
@media (max-width:760px){
  .chat-in{grid-template-columns:1fr;width:100%}
  .chatov.thread .chat-l{display:none}.chatov:not(.thread) .chat-r{display:none}
  .chback{display:grid}
  .msg{max-width:88%}
}
#aMain{min-height:100vh;min-height:100dvh}
#v-admin .abar .who{display:none!important}
/* réunions et présence */
.attlist .pres{white-space:normal}
@media (max-width:620px){.abar{flex-wrap:wrap!important}.who{width:100%;justify-content:flex-end;order:-1}.tabs{flex:1 1 100%!important}}
.who{gap:8px!important}
.prespill{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--line-2);background:#fff;border-radius:999px;padding:7px 12px;font:700 13px/1 var(--sans);color:var(--ink);cursor:pointer;box-shadow:0 1px 2px rgba(13,27,69,.06)}
.prespill.p-terrain{background:#eef6ff;border-color:#bcd6f5}.prespill.p-vacances{background:#fff7e0;border-color:#f1d48a}.prespill.p-malade{background:#fdecea;border-color:#f3b3ad}.prespill.p-off{background:#f0f1f4}
.bell{position:relative;width:40px;height:40px;border-radius:50%;border:1px solid var(--line-2);background:#fff;display:grid;place-items:center;cursor:pointer;box-shadow:0 1px 2px rgba(13,27,69,.06)}.bell svg{width:20px;height:20px;fill:none;stroke:#0d1b45;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.bell b{position:absolute;top:-5px;right:-5px;min-width:19px;height:19px;padding:0 5px;border-radius:999px;background:#e3241b;color:#fff;font-size:11px;display:grid;place-items:center;box-shadow:0 0 0 2px #fff}
@media (max-width:620px){.prespill span{display:none}}
.pres{display:inline-block;font-size:12px;font-weight:700;padding:2px 8px;border-radius:999px;background:#e8f5ee;color:#17804f;white-space:nowrap}.pres.p-terrain{background:#e9f1fc;color:#1f63b8}.pres.p-off{background:#f0f1f4;color:#5d6579}.pres.p-malade{background:#fdecea;color:#c4271d}.pres.p-vacances{background:#fff4dc;color:#9a5b00}
.presgrid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px}@media (max-width:560px){.presgrid{grid-template-columns:repeat(2,minmax(0,1fr))}}
.presopt{display:flex;flex-direction:column;align-items:center;gap:4px;padding:12px 6px;border-radius:14px;border:1px solid var(--line-2);background:#fff;font:700 13px/1.2 var(--sans);color:var(--ink);cursor:pointer}.presopt span{font-size:24px}.presopt[aria-pressed=true]{border:2px solid #0d1b45;background:#f3f5fa}
.absbar{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:0 0 10px;padding:10px 14px;border-radius:16px;background:#fff7e0;border:2px solid #e9b949;color:#5b3c00}.absbar span{flex:1;min-width:220px}
.nflist{list-style:none;margin:0;padding:0;display:grid;gap:8px}.nflist li{padding:10px 12px;border:1px solid var(--line);border-radius:12px;cursor:pointer;background:#fff}.nflist li.unread{border-left:4px solid #e3241b;background:#fffafa}.nflist li p{margin:4px 0;font-size:13.5px;white-space:pre-wrap}.nflist small{color:var(--muted)}
.nflist li.k-absence{border-left-color:#e9b949}
.attlist{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:6px;max-height:260px;overflow:auto}.attlist .check{background:#fff!important}.attlist small{display:block;font-size:11.5px;color:var(--muted)}
.doschip{display:flex;align-items:center;gap:10px;flex-wrap:wrap;justify-content:space-between;padding:10px 12px;border-radius:12px;background:#f3f5fa;border:1px dashed rgba(13,27,69,.25);margin:8px 0}
.mtg-h{display:flex;align-items:center;gap:10px;margin-bottom:8px}.mst{font-size:12px;font-weight:800;padding:3px 9px;border-radius:999px;background:#f0f1f4}.mst.s-confirme{background:#e8f5ee;color:#17804f}.mst.s-demande{background:#fff4dc;color:#9a5b00}.mst.s-refuse,.mst.s-annule{background:#fdecea;color:#c4271d}
.calhead{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:12px}.calhead .grow{flex:1}.calt{font-size:16px}
.card.pend{border:2px solid #e9b949!important;margin-bottom:12px}
.calgrid{display:grid;grid-template-columns:minmax(0,2fr) minmax(0,1fr);gap:14px;align-items:start}@media (max-width:900px){.calgrid{grid-template-columns:1fr}}
.cday{padding:10px 0;border-top:1px solid var(--line)}.cday:first-of-type{border-top:0}.cday.today .cd-h b{color:#e3241b}.cday.empty{opacity:.7}
.cd-h{display:flex;align-items:center;gap:8px;margin-bottom:6px}.cd-h b{text-transform:capitalize;font-size:14px}
.cev{display:flex;gap:10px;align-items:flex-start;width:100%;text-align:left;margin:4px 0;padding:8px 10px;border-radius:12px;border:1px solid var(--line);background:#fff;font:inherit;color:var(--ink);cursor:pointer;border-left:4px solid #1f63b8}
.cev i{font-style:normal;font-weight:800;font-size:13px;min-width:44px;color:#0d1b45}.cev b{display:block;font-size:13.5px}.cev small{display:block;font-size:12px;color:var(--muted)}
.cev.m{border-left-color:#0d1b45;background:#f6f8fc}.cev.m.s-demande{border-left-color:#e9b949;background:#fffaf0}.cev.m.s-refuse{opacity:.6}.cev.k-visite{border-left-color:#17804f}.cev.k-rappel{border-left-color:#e3241b}.cev.k-relance{border-left-color:#b26a00}
.teamnow{list-style:none;margin:0;padding:0;display:grid;gap:8px}.teamnow li{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.teamnow li>div{flex:1;min-width:120px}.teamnow b{display:block;font-size:14px}.teamnow small{color:var(--muted);font-size:12px}
.av2{width:34px;height:34px;border-radius:50%;display:grid;place-items:center;background:linear-gradient(145deg,#2a3f7a,#0b1636);color:#fff;font-weight:800}
.mtgbtn{align-self:center}
/* agenda et rappels */
.plines li{flex-wrap:wrap}.plines li>div{flex:1 1 220px}a.x{text-decoration:none;display:inline-flex;align-items:center}
.agbar{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:0 0 10px;padding:10px 12px;border-radius:14px;background:#fff;border:1px solid var(--line-2)}
.agbar.late{border:2px solid #e3241b;background:#fff6f5}.agbar.today{border:2px solid #b26a00;background:#fffaf0}.agbar.soon{border-color:#1f63b8;background:#f3f7fd}.agbar.calm{color:var(--muted);font-size:14px}
.agbar .grow{flex:1}.ag-c{font-size:13px;font-weight:800;padding:4px 10px;border-radius:999px}.ag-c.r{background:#e3241b;color:#fff}.ag-c.t{background:#b26a00;color:#fff}.ag-c.d{background:#1f63b8;color:#fff}
.agh{margin:14px 0 6px;font-size:14px}.agh.retard{color:#c4271d}.agh.aujourdhui{color:#b26a00}.agh.demain{color:#1f63b8}
.dchips i{font-style:normal;display:inline-block;background:#eef0f5;border-radius:6px;padding:1px 7px;margin:2px 4px 2px 0;font-size:12px;color:var(--ink)}
.addmeta{display:grid;gap:8px;margin-top:12px;padding:12px;border-radius:12px;background:#f7f8fa}
.notst{display:grid;gap:6px;margin-top:14px;padding:12px;border-radius:12px;background:#f7f8fa}.notst span{font-size:13.5px}.notst .ok{color:var(--ok)}.notst .no{color:#b26a00}.notst small{color:var(--muted)}
/* notes et validations */
.critbar{margin:10px 0 4px;padding:12px 14px;border-radius:14px;background:#fdecea;border:2px solid #e3241b;color:#9f1710;animation:critIn .35s ease}
.critbar b{display:block;font-size:15px;letter-spacing:.02em;text-transform:uppercase;color:#c4271d}.critbar p{margin:6px 0 0;font-weight:600;color:#7d120c}.critbar small{display:block;font-weight:500;color:#a8433c;font-size:12px}
@keyframes critIn{from{transform:scale(.98);opacity:0}to{transform:none;opacity:1}}
.reltag.crit{background:#c4271d!important;color:#fff!important}
.nadd{display:grid;gap:8px;margin-bottom:12px}.nadd-a{display:flex;gap:10px;align-items:center;flex-wrap:wrap;justify-content:space-between}
.check.crit span{color:#c4271d;font-weight:700}.check.crit input{accent-color:#c4271d}
.nlist{list-style:none;margin:0;padding:0;display:grid;gap:8px}.nlist li{border:1px solid var(--line);border-radius:12px;padding:10px 12px;background:#fff}
.nlist li.crit{border:2px solid #e3241b;background:#fff6f5}.nlist li.old{background:#f7f8fa}
.n-h{display:flex;gap:8px;align-items:baseline;flex-wrap:wrap}.n-h span{font-size:12px;color:var(--muted)}.n-h em{font-style:normal;font-size:11px;font-weight:800;text-transform:uppercase;background:#c4271d;color:#fff;border-radius:6px;padding:2px 6px}
.nlist p{margin:6px 0 0;white-space:pre-wrap}.n-v{margin-top:6px;font-size:12.5px;color:var(--muted)}.n-v p{border-left:3px solid var(--line-2);padding-left:8px}.n-v small{display:block}
.n-a{display:flex;gap:8px;align-items:center;margin-top:8px}
.x.xdel{color:#c4271d!important;border-color:rgba(196,39,29,.35)!important}
.sec.dz{border-top:1px dashed rgba(196,39,29,.35);padding-top:14px}
.reqbadge{position:absolute;top:-6px;right:-6px;min-width:20px;height:20px;padding:0 6px;border-radius:999px;background:#e3241b;color:#fff;font-size:12px;font-weight:800;display:grid;place-items:center}
#aAcct{position:relative}
.reqbar{width:100%;margin:0 0 10px;padding:10px 14px;border-radius:12px;border:1px solid rgba(227,36,27,.4);background:#fff6f5;color:#9f1710;font:700 14px/1.3 inherit;text-align:left;cursor:pointer}
.rqlist{list-style:none;margin:10px 0;padding:0;display:grid;gap:10px}.rqlist li{border:1px solid var(--line);border-radius:12px;padding:12px;display:grid;gap:6px}.rqlist li.pret{border-color:rgba(23,128,79,.45);background:#f3faf6}
.rq-h{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.rq-h small{color:var(--muted)}
.rq-ap{display:flex;gap:6px;flex-wrap:wrap}.rq-ap span{font-size:12.5px;padding:3px 8px;border-radius:999px;background:#f0f1f4}.rq-ap .ok{background:var(--ok-bg);color:var(--ok)}.rq-ap .no{background:var(--bad-bg);color:var(--bad)}
.rq-a{display:flex;gap:8px;flex-wrap:wrap;align-items:center}.rq-a .check{padding:6px 10px}
.rqdone{margin-top:12px}
@media (max-width:1100px){.dsw small{display:none}}
@media (max-width:760px){.dsw{display:flex!important;overflow-x:auto;scrollbar-width:none;margin-inline:-16px;padding:0 16px 2px}.dsw::-webkit-scrollbar{display:none}.dsw button{flex:0 0 132px}}

/* ===== PGPI : finition visuelle ===== */
.sr{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
html.admin-only body,html.admin-only #v-admin{background:radial-gradient(1200px 500px at 85% -10%,rgba(227,36,27,.06),transparent 60%),radial-gradient(900px 500px at -10% 10%,rgba(13,27,69,.06),transparent 60%),#f5f6f9!important}
html.admin-only #v-admin .sheet-top{background:rgba(255,255,255,.86)!important;box-shadow:0 1px 0 rgba(13,27,69,.06),0 8px 24px -18px rgba(13,27,69,.35)}
.pgpi{font:800 22px/1 var(--sans);letter-spacing:.14em;color:#0d1b45;background:linear-gradient(90deg,#0d1b45,#e3241b);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}
html.admin-only .abrand-t small{font-size:11.5px;letter-spacing:.03em;margin-top:4px}
html.admin-only .logo-chip{padding-right:12px;border-right:1px solid var(--line-2)}
/* départements */
.dsw{gap:10px!important;margin:4px 0 14px!important}
.dsw button{padding:12px 14px!important;border-radius:18px!important;border:1px solid rgba(13,27,69,.08)!important;background:#fff!important;box-shadow:0 1px 2px rgba(13,27,69,.05),0 10px 24px -18px rgba(13,27,69,.45)!important;transition:transform .15s,box-shadow .15s,background .2s}
.dsw button:hover{transform:translateY(-2px);box-shadow:0 2px 4px rgba(13,27,69,.06),0 16px 30px -18px rgba(13,27,69,.55)!important}
.dsw .ico{flex:none;width:50px;height:50px;border-radius:15px;display:grid;place-items:center;box-shadow:inset 0 1px 0 rgba(255,255,255,.3),0 6px 14px -6px rgba(13,27,69,.55)}
.dsw .ico svg{width:40px!important;height:40px!important;padding:0!important;background:none!important;stroke:none!important;border-radius:0!important}
.ico-construction{background:linear-gradient(145deg,#f04a3f,#b5130c)}.ico-terrains{background:linear-gradient(145deg,#3f9b67,#1d6a40)}.ico-patrimoine{background:linear-gradient(145deg,#2a3f7a,#0b1636)}.ico-location{background:linear-gradient(145deg,#3a86e0,#164d95)}.ico-demarches{background:linear-gradient(145deg,#c89a2e,#8a5d06)}
.dsw button[aria-selected=true]{background:linear-gradient(140deg,#13245a,#0b1636)!important;border-color:#0b1636!important;color:#fff;box-shadow:0 14px 30px -14px rgba(11,22,54,.75)!important}
.dsw button[aria-selected=true] .ico{box-shadow:0 0 0 3px rgba(255,255,255,.9),0 8px 18px -6px rgba(0,0,0,.5)}
.dsw button[aria-selected=true] svg{background:none!important}
.dsw b{white-space:normal!important;line-height:1.2}
.dsw em{top:-7px!important;right:-5px!important;box-shadow:0 0 0 3px #f5f6f9;background:#e3241b!important}
/* projets */
.pjbar{display:flex;align-items:center;gap:14px;margin:0 0 14px;padding:10px 12px;border-radius:18px;background:#fff;border:1px solid rgba(13,27,69,.08);box-shadow:0 10px 24px -20px rgba(13,27,69,.5)}
.pj-l{flex:none;display:flex;flex-direction:column;padding:0 6px 0 4px;border-right:1px solid var(--line);margin-right:2px;min-width:150px}.pj-l b{font-size:12px;letter-spacing:.12em;text-transform:uppercase;color:#e3241b}.pj-l small{font-size:12px;color:var(--muted)}
.pjchips{display:flex;gap:8px;overflow-x:auto;scrollbar-width:none;padding:2px}.pjchips::-webkit-scrollbar{display:none}
.pjchips button{flex:none;position:relative;display:grid;grid-template-columns:auto auto;grid-template-rows:auto auto;column-gap:10px;align-items:center;text-align:left;padding:9px 14px;border-radius:14px;border:1px solid var(--line-2);background:#f8f9fb;color:var(--ink);font:inherit;cursor:pointer;transition:background .15s,border-color .15s}
.pjchips button:hover{background:#fff;border-color:rgba(13,27,69,.3)}
.pj-n{font-weight:800;font-size:14.5px;grid-column:1}.pjchips small{grid-column:1;font-size:11.5px;color:var(--muted)}.pjchips b{grid-column:2;grid-row:1/3;font-size:13px;min-width:28px;text-align:center;padding:4px 8px;border-radius:999px;background:#eef0f5}
.pjchips em{position:absolute;top:-8px;right:-6px;font-style:normal;font-size:10.5px;font-weight:800;background:#1f63b8;color:#fff;border-radius:999px;padding:2px 7px;box-shadow:0 0 0 2px #fff}
.pjchips button[aria-selected=true]{background:#e3241b;border-color:#e3241b;color:#fff;box-shadow:0 8px 18px -10px rgba(227,36,27,.8)}.pjchips button[aria-selected=true] small{color:rgba(255,255,255,.85)}.pjchips button[aria-selected=true] b{background:rgba(255,255,255,.22);color:#fff}
.pjbar.big .pjchips button{padding:12px 18px}.pjbar.big .pj-n{font-size:16px}
@media (max-width:760px){.pjbar{flex-direction:column;align-items:stretch;gap:8px}.pj-l{border-right:0;border-bottom:1px solid var(--line);padding:0 0 8px;flex-direction:row;align-items:baseline;gap:8px}}
/* onglets, cartes, boutons */
html.admin-only .tabs{background:#fff!important;border:1px solid rgba(13,27,69,.08);box-shadow:0 6px 18px -16px rgba(13,27,69,.5);padding:5px}
html.admin-only .tabs button{color:var(--muted);transition:color .15s,background .15s}
html.admin-only .tabs button:hover{color:var(--ink)}
html.admin-only .tabs button[aria-selected=true]{background:#0d1b45!important;color:#fff!important;box-shadow:0 6px 14px -8px rgba(13,27,69,.8)!important}
html.admin-only .btn-gold{background:linear-gradient(180deg,#ee3328,#cf1c13)!important;box-shadow:0 1px 0 rgba(255,255,255,.25) inset,0 8px 18px -10px rgba(227,36,27,.9);color:#fff!important}
html.admin-only .btn-gold:hover{filter:brightness(1.05);transform:translateY(-1px)}
html.admin-only .x{border-radius:10px;box-shadow:0 1px 2px rgba(13,27,69,.06)}
html.admin-only .card,html.admin-only .tblbox,html.admin-only .acard,html.admin-only .pcard{border-radius:18px!important;border:1px solid rgba(13,27,69,.07)!important;box-shadow:0 1px 2px rgba(13,27,69,.04),0 14px 30px -24px rgba(13,27,69,.45)!important}
html.admin-only .kpis{border-radius:18px!important;box-shadow:0 14px 30px -24px rgba(13,27,69,.45)}
html.admin-only .kpis div{position:relative}
html.admin-only .kpis div::before{content:"";position:absolute;left:16px;top:0;width:28px;height:3px;border-radius:0 0 3px 3px;background:#e3241b}
html.admin-only .tbl th{position:sticky;top:0;z-index:1;font-size:11.5px;letter-spacing:.08em}
html.admin-only .tbl tbody tr{transition:background .12s}
html.admin-only .dcard{border-radius:18px!important;box-shadow:0 1px 2px rgba(13,27,69,.04),0 12px 26px -22px rgba(13,27,69,.5)!important}
html.admin-only .eseg button{border-radius:999px;box-shadow:0 1px 2px rgba(13,27,69,.05)}
html.admin-only .side{border-radius:22px 0 0 22px}
html.admin-only .modal-card{border-radius:22px}
html.admin-only .acct{box-shadow:0 1px 2px rgba(13,27,69,.06)}
html.admin-only .acct .av{background:linear-gradient(145deg,#f04a3f,#b5130c)}
.agbar{border-radius:16px!important;box-shadow:0 10px 24px -20px rgba(13,27,69,.5)}
/* bouton rappel */
.btn-rem{display:flex;align-items:center;gap:12px;width:100%;max-width:440px;padding:10px 14px 10px 10px;border-radius:16px;border:1px solid rgba(13,27,69,.12);background:linear-gradient(180deg,#fff,#f6f7fa);color:var(--ink);font:inherit;text-align:left;cursor:pointer;box-shadow:0 1px 0 #fff inset,0 10px 22px -16px rgba(13,27,69,.6);transition:transform .15s,box-shadow .15s}
.btn-rem:hover{transform:translateY(-1px);box-shadow:0 1px 0 #fff inset,0 16px 28px -16px rgba(13,27,69,.65)}
.btn-rem:active{transform:translateY(0)}
.btn-rem .cal{position:relative;flex:none;width:48px;height:52px;border-radius:10px;background:#fff;box-shadow:0 0 0 1px rgba(13,27,69,.14),0 4px 10px -4px rgba(13,27,69,.45);overflow:visible;display:flex;flex-direction:column;align-items:center}
.btn-rem .cal i{display:block;width:100%;font:800 9.5px/1 var(--sans);font-style:normal;letter-spacing:.08em;text-align:center;color:#fff;background:linear-gradient(180deg,#ee3328,#c21c14);padding:5px 0 4px;border-radius:10px 10px 0 0}
.btn-rem .cal b{font:800 21px/1.25 var(--sans);color:#0d1b45}
.btn-rem .cal svg{position:absolute;right:-8px;bottom:-7px;width:22px;height:22px;filter:drop-shadow(0 2px 3px rgba(13,27,69,.35))}
.btn-rem .rt{flex:1;min-width:0}.btn-rem .rt b{display:block;font-size:15px}.btn-rem .rt small{display:block;font-size:12px;color:var(--muted)}
.btn-rem .plus{flex:none;width:32px;height:32px;border-radius:50%;display:grid;place-items:center;font:700 22px/1 var(--sans);color:#fff;background:linear-gradient(180deg,#ee3328,#c21c14);box-shadow:0 6px 12px -6px rgba(227,36,27,.9)}
#remBox .fu-head{flex-wrap:wrap;gap:10px}
#remBox .btn-rem,#remBox .btn-rem span{opacity:1!important}#remBox .btn-rem .rt b{color:#0d1b45!important;font-weight:800}#remBox .btn-rem .rt small{color:#5d6579!important;font-weight:500}#remBox .btn-rem .cal i{color:#fff!important}#remBox .btn-rem .cal b{color:#0d1b45!important}#remBox .btn-rem .plus{color:#fff!important}
.pjchips{padding-top:9px!important}
html.admin-only label.f{color:var(--ink)}
html.admin-only .check{color:var(--ink)}
html.admin-only h3,html.admin-only h4,html.admin-only h5{color:inherit}
html.admin-only .card h4{color:var(--muted)}
.pubu{display:grid;grid-template-columns:1fr auto;gap:10px;align-items:end;margin:0 0 16px;padding:14px;border:1px solid var(--line,#dfe3ec);border-radius:12px;background:var(--card,#fff)}.pubu .f{margin:0}.pubu #pubErr{grid-column:1/-1}.pubu small{font-weight:400;color:#69728a}@media(max-width:620px){.pubu{grid-template-columns:1fr}}.nourl{display:block;margin:8px 0;font-size:13px;line-height:1.45}
.turnb{display:block}.turnb .tb-h{display:flex;flex-wrap:wrap;gap:6px 12px;align-items:baseline;margin-bottom:4px}.turnb .tb-h small.ok{color:#127a3e;font-weight:700}.turnb .tb-h small.bad{color:#b4231a;font-weight:700}.turnb .stack{margin:8px 0}.turnb .btn{margin-top:6px}.cb.dim{opacity:.55}

@media (max-width:760px){.filters .in,.in,select.in{font-size:16px}}
.agent{position:fixed;z-index:38;top:calc(20px + env(safe-area-inset-top,0px));right:calc(14px + env(safe-area-inset-right,0px));padding:7px 12px;border-radius:999px;background:rgba(10,20,46,.6);border:1px solid rgba(242,183,91,.5);font-size:12.5px;font-weight:700;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)}

.admin-only .landing,.admin-only .burger,.admin-only .voicebtn,.admin-only .drawer,.admin-only .scrim,.admin-only #v-admin .sheet-top .x[data-go="home"]{display:none!important}
.admin-only #v-admin .sheet-top{padding-left:max(16px,env(safe-area-inset-left,0px))}
