
  :root{--z-menu:90;--z-menu-backdrop:89;--c-brand:var(--teal,#0E7C6B);--c-green:#1f9d55;--c-amber:#E8A33D;--c-red:#e8505b;--c-teal:var(--teal,#0E7C6B);--z-sticky:10;--z-fab:20;--z-notify:30;--z-overlay:40;--z-toast:50;--z-lightbox:60;--z-tooltip:70;--z-toastbar:80;--z-critical:500;
    --teal:#e83c35;--teal-d:#c0281f;--teal-2:#ec564f;--teal-l:#fbe4e2;--teal-xl:#fdf1f0;
    --accent:#F2A65A;--accent-d:#E08A3C;--bg:#F5F1EF;--card:#FFFFFF;--ink:#15231F;--ink-soft:#33453F;
    --muted:#6B7E7A;--line:#E0E8E6;--line-2:#EDF2F1;--green:#15A34A;--green-d:#0E7A37;--red:#DC2626;
    --amber:#D97706;--amber-l:#FEF4E6;--red-l:#FDECEC;--green-l:#E7F6EC;
    --r-s:10px;--r-m:14px;--r-l:20px;--r-xl:26px;
    --sh-s:0 1px 2px rgba(16,40,36,.06);
    --sh-m:0 1px 2px rgba(45,30,26,.05),0 6px 18px rgba(45,30,26,.05);
    --sh-l:0 3px 9px rgba(45,30,26,.07),0 16px 36px rgba(45,30,26,.07);
    --ease:cubic-bezier(.4,0,.2,1);
  }
  *{box-sizing:border-box}
  html{-webkit-text-size-adjust:100%}
  body{margin:0;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
    background:radial-gradient(1200px 520px at 50% -220px,#FBF6F3,var(--bg));color:var(--ink);
    -webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;min-height:100vh}
  ::selection{background:var(--teal-l)}
  button{font-family:inherit}
  .topbar{position:sticky;top:0;z-index:var(--z-notify);background:linear-gradient(120deg,var(--teal-d),var(--teal) 60%,var(--teal-2));
    color:#fff;padding:11px 16px;display:flex;align-items:center;gap:10px;flex-wrap:wrap;
    box-shadow:0 2px 14px rgba(10,60,50,.28);backdrop-filter:saturate(1.2)}
  .brand{font-weight:800;letter-spacing:.2px;display:flex;align-items:center;gap:9px;font-size:16px}
  .brand small{font-weight:500;opacity:.85;font-size:12px}
  .status{font-size:11px;font-weight:600;background:rgba(255,255,255,.16);padding:4px 10px;border-radius:99px;display:inline-flex;align-items:center;gap:5px;transition:.3s}
  .right{margin-left:auto;display:flex;align-items:center;gap:8px}
  select.lang{border:0;border-radius:9px;padding:8px 9px;font-size:13px;font-weight:600;background:rgba(255,255,255,.94);color:var(--teal-d);cursor:pointer;box-shadow:var(--sh-s);transition:.2s}
  select.lang:hover{background:#fff}
  .btn-out{background:rgba(255,255,255,.16);color:#fff;border:0;border-radius:9px;padding:8px 12px;font-weight:600;font-size:12px;cursor:pointer;transition:.2s}
  .btn-out:hover{background:rgba(255,255,255,.28)}
  .wrap{max-width:1120px;margin:0 auto;padding:18px 16px 28px;animation:fade .4s var(--ease)}
  @keyframes fade{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}
  .phone{max-width:468px;margin:18px auto;background:var(--card);border-radius:var(--r-xl);box-shadow:var(--sh-l);overflow:hidden;border:1px solid var(--line);animation:fade .4s var(--ease)}
  .phead{background:linear-gradient(135deg,var(--teal),var(--teal-d));color:#fff;padding:20px 20px 18px;position:relative;overflow:hidden}
  .phead:after{content:"";position:absolute;right:-40px;top:-40px;width:140px;height:140px;background:radial-gradient(circle,rgba(255,255,255,.13),transparent 70%);pointer-events:none}
  .phead h2{margin:0;font-size:20px;font-weight:800;letter-spacing:.2px}
  .phead p{margin:5px 0 0;opacity:.92;font-size:13px}
  .pbody{padding:16px}
  .login-grid{display:grid;gap:10px}
  .ouv-pick{display:flex;align-items:center;gap:13px;width:100%;text-align:left;background:var(--card);border:1px solid var(--line);border-radius:var(--r-m);padding:13px;cursor:pointer;font-size:15px;font-weight:650;color:var(--ink);transition:.16s var(--ease);box-shadow:var(--sh-s)}
  .ouv-pick:hover{border-color:var(--teal);background:var(--teal-xl);transform:translateY(-1px);box-shadow:var(--sh-m)}
  .ouv-pick:active{transform:translateY(0)}
  .ava{width:44px;height:44px;border-radius:50%;display:grid;place-items:center;color:#fff;font-weight:800;font-size:15px;flex:none;box-shadow:inset 0 0 0 2px rgba(255,255,255,.25)}
  .progress{background:linear-gradient(135deg,var(--teal-xl),var(--teal-l));border:1px solid var(--line-2);border-radius:var(--r-m);padding:14px 16px;margin-bottom:14px}
  .progress .big{font-size:24px;font-weight:850;color:var(--teal-d);letter-spacing:-.5px}
  .bar{height:10px;background:#fff;border-radius:99px;overflow:hidden;margin-top:9px;border:1px solid var(--line)}
  .bar>i{display:block;height:100%;background:linear-gradient(90deg,var(--teal),var(--accent));border-radius:99px;transition:width .6s var(--ease)}
  .day-h{font-size:12px;text-transform:uppercase;letter-spacing:.7px;color:var(--muted);font-weight:750;margin:16px 4px 9px;display:flex;align-items:center;gap:8px}
  .day-h:before{content:"";width:6px;height:6px;border-radius:50%;background:var(--accent)}
  .presta{border:1px solid var(--line);border-radius:var(--r-m);padding:13px;margin-bottom:10px;background:#fff;transition:.18s var(--ease);box-shadow:var(--sh-s)}
  .presta:hover{box-shadow:var(--sh-m)}
  .presta.confirmee{border-color:#BFE8CD;background:linear-gradient(0deg,var(--green-l),#fff)}
  .presta.absente{border-color:#F4C9C9;background:linear-gradient(0deg,var(--red-l),#fff)}
  .presta .row1{display:flex;justify-content:space-between;align-items:flex-start;gap:8px}
  .presta .cl{font-weight:750;font-size:16px}
  .presta .meta{color:var(--muted);font-size:13px;margin-top:3px}
  .pill{font-size:11px;font-weight:750;padding:5px 10px;border-radius:99px;white-space:nowrap;letter-spacing:.2px}
  .pill.att{background:#EEF2F2;color:var(--muted)}
  .pill.ok{background:var(--green);color:#fff;box-shadow:0 2px 8px rgba(21,163,74,.3)}
  .pill.abs{background:var(--red);color:#fff}
  .pact{display:flex;gap:8px;margin-top:11px}
  .btn{border:0;border-radius:var(--r-s);padding:11px 13px;font-weight:750;cursor:pointer;font-size:13px;transition:.16s var(--ease);-webkit-tap-highlight-color:transparent}
  .btn:active{transform:scale(.97)}
  .btn.main{background:linear-gradient(135deg,var(--teal),var(--teal-d));color:#fff;flex:1;box-shadow:0 3px 10px rgba(14,124,107,.28)}
  .btn.main:hover{filter:brightness(1.06)}
  .btn.ghost{background:#fff;border:1px solid var(--line);color:var(--ink-soft)}
  .btn.ghost:hover{border-color:var(--teal);color:var(--teal-d);background:var(--teal-xl)}
  .btn.block{width:100%;margin-top:8px}
  .btn:disabled{opacity:.6;cursor:wait}
  .btn:focus-visible,.ouv-pick:focus-visible,select:focus-visible,input:focus-visible,textarea:focus-visible{outline:3px solid rgba(14,124,107,.32);outline-offset:1px}
  .kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(168px,1fr));gap:13px;margin-bottom:18px}
  .kpi{background:var(--card);border:1px solid var(--line);border-radius:var(--r-l);padding:16px 18px;box-shadow:var(--sh-m);position:relative;overflow:hidden;transition:.2s var(--ease)}
  .kpi:hover{transform:translateY(-2px);box-shadow:var(--sh-l)}
  .kpi:before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;background:linear-gradient(var(--teal),var(--accent))}
  .kpi .lab{font-size:12px;color:var(--muted);font-weight:650;text-transform:uppercase;letter-spacing:.5px}
  .kpi .val{font-size:30px;font-weight:850;margin-top:5px;color:var(--teal-d);letter-spacing:-.8px}
  .kpi .sub{font-size:12px;color:var(--muted);margin-top:3px}
  .cols{display:grid;grid-template-columns:1.6fr 1fr;gap:16px}
  @media(max-width:860px){.cols{grid-template-columns:1fr}}
  .panel{background:var(--card);border:1px solid var(--line);border-radius:var(--r-l);box-shadow:var(--sh-m);overflow:hidden;margin-bottom:16px}
  .panel h3{margin:0;padding:15px 18px;font-size:15px;font-weight:750;border-bottom:1px solid var(--line-2);display:flex;align-items:center;gap:8px;justify-content:space-between}
  .panel>h3{cursor:pointer;user-select:none;transition:background .15s}.panel>h3:hover{background:var(--line-2)}.chev{display:inline-block;flex:none;font-size:11px;color:var(--muted);transition:transform .2s var(--ease);margin-right:6px;opacity:.7}.panel.collapsed>h3{border-bottom:0}.panel.collapsed>h3 .chev{transform:rotate(-90deg)}.panel.collapsed>*:not(h3){display:none!important}
  .panel .pad{padding:8px 18px 16px}
  table{width:100%;border-collapse:collapse}
  th,td{text-align:left;padding:11px 18px;font-size:13px;border-bottom:1px solid var(--line-2)}
  th{font-size:11px;text-transform:uppercase;letter-spacing:.5px;color:var(--muted);font-weight:700;background:var(--teal-xl)}
  tbody tr{transition:.12s}tbody tr:hover{background:var(--teal-xl)}
  tr:last-child td{border-bottom:0}
  .tag{display:inline-block;font-size:11px;font-weight:750;padding:3px 9px;border-radius:99px}
  .tag.g{background:var(--green-l);color:var(--green-d)}
  .tag.a{background:var(--amber-l);color:var(--amber)}
  .minibar{height:8px;background:var(--bg);border-radius:99px;overflow:hidden;min-width:84px;margin-top:6px}
  .minibar>i{display:block;height:100%;border-radius:99px;background:linear-gradient(90deg,var(--teal),var(--accent));transition:width .6s var(--ease)}
  .badge-elec{font-size:11px;font-weight:700;background:var(--teal-l);color:var(--teal-d);padding:3px 9px;border-radius:99px;letter-spacing:.2px}
  .alert{display:flex;gap:11px;padding:12px 18px;border-bottom:1px solid var(--line-2);font-size:13px;align-items:flex-start}
  .alert:last-child{border-bottom:0}
  .dot{width:9px;height:9px;border-radius:50%;flex:none;margin-top:5px;box-shadow:0 0 0 4px rgba(0,0,0,.04)}
  .dot.r{background:var(--red)}.dot.a{background:var(--amber)}.dot.g{background:var(--green)}
  .alert .t{font-weight:700}.alert .s{color:var(--muted);font-size:12px;margin-top:1px}
  .modal-bg{position:fixed;inset:0;background:rgba(10,28,24,.55);display:none;place-items:center;z-index:var(--z-overlay);padding:16px;backdrop-filter:blur(3px);animation:fade .2s}
  .modal-bg.show{display:grid}
  .modal{background:#fff;border-radius:var(--r-l);max-width:392px;width:100%;padding:20px;max-height:90vh;max-height:90dvh;overflow-y:auto;overflow-x:hidden;-webkit-overflow-scrolling:touch;box-shadow:var(--sh-l);animation:pop .26s var(--ease)}
  @keyframes pop{from{opacity:0;transform:translateY(16px) scale(.97)}to{opacity:1;transform:none}}
  .modal h4{margin:0 0 4px;font-size:17px}.modal p{margin:0 0 12px;color:var(--muted);font-size:13px}
  .modal label{font-size:12px;font-weight:700;color:var(--ink-soft);display:block;margin:11px 0 5px}
  .modal textarea,.modal select,.modal input{width:100%;border:1px solid var(--line);border-radius:var(--r-s);padding:11px;font-size:14px;font-family:inherit;background:#fff;transition:.15s}
  .modal textarea:focus,.modal select:focus,.modal input:focus{border-color:var(--teal)}
  .modal .ph{border:1.5px dashed var(--line);border-radius:var(--r-s);padding:15px;text-align:center;color:var(--muted);font-size:13px;cursor:pointer;transition:.15s}
  .modal .ph:hover{border-color:var(--accent);color:var(--accent-d)}
  .mact{display:flex;gap:8px;margin-top:16px}
  .pinhead{text-align:center}
  .pinhead .ava{margin:0 auto}
  .pdots{display:flex;gap:14px;justify-content:center;margin:18px 0 6px}
  .pdot{width:15px;height:15px;border-radius:50%;border:2px solid var(--line);transition:.18s var(--ease)}
  .pdot.on{background:var(--teal);border-color:var(--teal);transform:scale(1.12);box-shadow:0 2px 8px rgba(14,124,107,.4)}
  .pinerr{color:var(--red);font-size:12px;text-align:center;min-height:18px;font-weight:600}
  .keypad{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:8px 0 4px}
  .kkey{background:var(--teal-xl);border:1px solid var(--line-2);border-radius:var(--r-m);padding:16px 0;font-size:22px;font-weight:750;color:var(--ink);cursor:pointer;transition:.12s var(--ease)}
  .kkey:hover{background:var(--teal-l)}.kkey:active{transform:scale(.94);background:var(--teal);color:#fff}
  .skel{height:64px;border-radius:var(--r-m);margin-bottom:10px;background:linear-gradient(100deg,#EEF2F1 30%,#F7FAF9 50%,#EEF2F1 70%);background-size:200% 100%;animation:shim 1.3s infinite}
  .kpi-skel{height:90px}
  @keyframes shim{from{background-position:200% 0}to{background-position:-200% 0}}
  .toasts{position:fixed;left:0;right:0;bottom:22px;z-index:var(--z-toastbar);display:flex;flex-direction:column;align-items:center;gap:8px;pointer-events:none;padding:0 12px}
  .toast{background:var(--ink);color:#fff;padding:12px 18px;border-radius:99px;font-size:13px;font-weight:650;box-shadow:var(--sh-l);opacity:0;transform:translateY(14px);transition:.3s var(--ease);max-width:92vw}
  .toast.show{opacity:1;transform:none}
  .toast.ok{background:linear-gradient(135deg,var(--green),var(--green-d))}
  .toast.err{background:linear-gradient(135deg,#E23B3B,var(--red))}
  .errbox{text-align:center;padding:26px 18px;color:var(--muted)}
  .errbox .eic{font-size:30px;margin-bottom:6px}
  .errbox p{margin:0 0 14px;font-size:14px}
  .empty{text-align:center;color:var(--muted);padding:28px 14px;font-size:14px}
  .empty .eic{font-size:30px;margin-bottom:8px;opacity:.7}
  .pin-in{letter-spacing:8px;text-align:center;font-size:22px!important}
  .hidden{display:none!important}
  .center{max-width:540px;margin:48px auto;background:#fff;border:1px solid var(--line);border-radius:var(--r-l);padding:28px;box-shadow:var(--sh-m)}
  .center h2{margin-top:0}
  .center code{background:var(--teal-l);padding:3px 7px;border-radius:6px;font-size:13px;color:var(--teal-d)}
  .foot{text-align:center;color:var(--muted);font-size:12px;margin:20px 0 4px;line-height:1.7}

  @media(max-width:520px){
   .phone{max-width:100%;margin:0;border-radius:0;border-left:0;border-right:0;box-shadow:none}
   .wrap{padding:12px 10px 26px}
   .kpis{grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:9px}
   .kpi{padding:13px 14px}.kpi .val{font-size:24px}
   .topbar{padding:9px 11px;gap:8px}.brand{font-size:14px}
   th,td{padding:8px 10px;font-size:13px}
   .modal{padding:16px}
  }
  @media(min-width:1280px){.wrap{max-width:1200px}}
.u-inp1{width:100%;box-sizing:border-box;border:1.5px solid #ddd;border-radius:10px;padding:10px;font-size:14px;}.u-inp2{width:100%;border:1px solid var(--line);border-radius:9px;padding:9px;margin:4px 0 12px}.u-inp3{width:100%;border:1px solid var(--line);border-radius:9px;padding:9px;background:#fff}.u-fx-between{display:flex;justify-content:space-between;align-items:center}.u-fx-gap8{display:flex;gap:8px}.u-err-box{padding:18px;text-align:center;color:#c0392b}.u-fx-gap8-wrap{display:flex;gap:8px;flex-wrap:wrap}.u-hint-txt{margin:0 0 12px;color:#555;font-size:13px;line-height:1.5}.u-fx-gap8-center{display:flex;gap:8px;align-items:center}.u-muted-12{font-size:12px;color:var(--muted)}.u-muted-11{font-size:11px;color:var(--muted)}/* v50 polish */button,.btn{transition:transform .08s ease,box-shadow .12s ease}button:active,.btn:active{transform:scale(.97)}:focus-visible{outline:2px solid var(--c-brand,#0E7C6B);outline-offset:2px}/* ===== v51 design layer — brief de marque Assista & Vie ===== */.btn,.btn-out,.phead button{min-height:44px}input[type=text],input[type=password],input[type=email],input[type=tel],input[type=number],input[type=date],input[type=time],input[type=search],select,textarea{min-height:44px}.btn:disabled,button:disabled{opacity:.5;cursor:not-allowed;filter:saturate(.6)}.btn.danger{background:var(--c-red,#e8505b);color:#fff}.pill,.tag{min-height:22px;display:inline-flex;align-items:center}html[data-theme='assista-v80']{--teal:#B01627;--teal-d:#8E1220;--teal-2:#C42433;--teal-l:#F7E3E5;--teal-xl:#FCF4F5;--red:#C0392B;--amber:#B8791C;--green:#1F8F4E;--green-d:#136A38;--bg:#F7F5F3;--card:#FFFFFF;--line:#E9E6E2;--line-2:#F2EFEC;--muted:#5F6B67;--ink:#1E1B19;--r-s:12px;--r-m:14px;--r-l:18px}html[data-theme='assista-v80'] body{font-size:15.5px;line-height:1.5;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}html[data-theme='assista-v80'] .btn{border-radius:12px;font-weight:700}html[data-theme='assista-v80'] .card,html[data-theme='assista-v80'] .panel,html[data-theme='assista-v80'] .box{box-shadow:0 2px 10px rgba(0,0,0,.05);border-radius:16px}html[data-theme='assista-v80'] h1,html[data-theme='assista-v80'] h2,html[data-theme='assista-v80'] h3,html[data-theme='assista-v80'] h4{letter-spacing:-.01em}html[data-v3="on"] .pill,html[data-v3="on"] .tag,html[data-v3="on"] .badge-elec,html[data-v3="on"] .status,html[data-v3="on"] .u-muted-11{font-size:12px}html[data-v3="on"] .kpi .val{color:var(--ink)}/* Titres papier (v151) — scanner et panneau gérante */
.avPap{position:fixed;inset:0;z-index:99990;background:var(--bg,#fbf1df);color:var(--ink,#1c2321);display:flex;flex-direction:column;font:15px/1.45 system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;overscroll-behavior:contain}
.avPap *{box-sizing:border-box}
.avPapHead{display:flex;align-items:center;gap:10px;padding:max(10px,env(safe-area-inset-top)) 14px 10px;background:var(--teal,#e83c35);color:#fff}
.avPapHead h3{margin:0;font-size:17px;flex:1;line-height:1.25}
.avPapHead small{display:block;font-weight:400;opacity:.9;font-size:12.5px}
.avPapX{border:0;background:rgba(255,255,255,.18);color:#fff;font-size:20px;width:38px;height:38px;border-radius:50%;cursor:pointer}
.avPapCam{position:relative;background:#000;flex:0 0 auto;height:min(46vh,340px)}
.avPapCam video{width:100%;height:100%;object-fit:cover;display:block}
.avPapCadre{position:absolute;left:8%;right:8%;top:30%;height:40%;border:3px solid rgba(255,255,255,.85);border-radius:12px;box-shadow:0 0 0 2000px rgba(0,0,0,.35);pointer-events:none}
.avPapCadre::after{content:"";position:absolute;left:6px;right:6px;top:50%;height:2px;background:rgba(232,60,53,.9);animation:avPapLigne 1.6s ease-in-out infinite alternate}
@keyframes avPapLigne{from{transform:translateY(-38px)}to{transform:translateY(38px)}}
.avPapCamKo{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;color:#fff;padding:20px;text-align:center;font-size:14px}
.avPapLampe{position:absolute;right:10px;bottom:10px;border:0;border-radius:20px;padding:7px 12px;background:rgba(255,255,255,.2);color:#fff;font-size:13px;cursor:pointer}
.avPapCorps{flex:1;overflow:auto;padding:12px 14px calc(14px + env(safe-area-inset-bottom))}
.avPapCompteur{display:flex;align-items:baseline;gap:8px;font-size:15px;margin:2px 0 10px}
.avPapCompteur b{font-size:30px;line-height:1;color:var(--teal-d,#c0281f)}
.avPapCompteur.ok b{color:#1f7a4d}
.avPapListe{list-style:none;margin:0 0 12px;padding:0;display:flex;flex-direction:column;gap:6px}
.avPapListe li{display:flex;align-items:center;gap:8px;padding:8px 10px;border-radius:10px;background:#fff;border:1px solid #e6e0d4;font-variant-numeric:tabular-nums;font-size:13.5px}
.avPapListe li.ko{border-color:#e9a7a2;background:#fdecec}
.avPapListe li.att{border-style:dashed;color:#6b6b6b}
.avPapListe .num{flex:1;word-break:break-all;letter-spacing:.3px}
.avPapSaisie{display:flex;gap:8px;margin:6px 0 12px}
.avPapSaisie input{flex:1;font-size:17px;padding:10px 12px;border:1px solid #cfc7b8;border-radius:10px;background:#fff;letter-spacing:1px}
.avPapBtn{border:0;border-radius:12px;padding:13px 16px;font-size:15.5px;font-weight:700;cursor:pointer;background:var(--teal,#e83c35);color:#fff}
.avPapBtn.sec{background:#fff;color:var(--ink,#1c2321);border:1px solid #cfc7b8;font-weight:600}
.avPapBtn.ok{background:#1f7a4d}
.avPapBtn[disabled]{opacity:.5;cursor:default}
.avPapActions{display:flex;flex-direction:column;gap:8px}
.avPapNote{font-size:13px;color:#6b6b6b;margin:0 0 8px}
.avPapAlerte{background:#fff4e0;border:1px solid #f0c98a;color:#8a5a00;border-radius:10px;padding:9px 11px;font-size:13.5px;margin:0 0 10px}
.avPapCarte{display:inline-flex;align-items:center;gap:6px;margin:6px 0 0;padding:7px 11px;border-radius:20px;border:1px solid #cfe3d6;background:#eef7f1;color:#1f7a3d;font-weight:700;font-size:13px;cursor:pointer}
/* panneau gérante */
.avPapGer .avPapCorps{max-width:980px;margin:0 auto;width:100%}
.avPapOutils{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin:0 0 14px}
.avPapOutils input,.avPapOutils select{padding:8px 10px;border:1px solid #cfc7b8;border-radius:9px;background:#fff;font-size:14px}
.avPapT{width:100%;border-collapse:collapse;font-size:13.5px;background:#fff;border-radius:10px;overflow:hidden;margin:0 0 16px}
.avPapT th,.avPapT td{padding:8px 9px;border-bottom:1px solid #eee7da;text-align:left;vertical-align:top}
.avPapT th{background:#f6efe1;font-size:12px;text-transform:uppercase;letter-spacing:.03em;color:#6b6b6b}
.avPapT td.n{text-align:right;font-variant-numeric:tabular-nums}
.avPapT tr.manque td{background:#fff7f6}
.avPapT tr.total td{font-weight:800;background:#faf6ee}
.avPapMini{border:0;border-radius:8px;padding:5px 9px;font-size:12.5px;cursor:pointer;background:#f1ece1;color:#333;margin:0 3px 3px 0}
.avPapMini.danger{background:#fdecec;color:#b3261e}
.avPapVide{padding:18px;text-align:center;color:#6b6b6b;background:#fff;border-radius:10px;border:1px dashed #d8d0c0;margin:0 0 16px}
.avPapBadge{display:inline-block;padding:2px 8px;border-radius:999px;font-size:11.5px;font-weight:700;background:#eef7f1;color:#1f7a3d}
.avPapBadge.non{background:#fff4e0;color:#8a5a00}
@media (min-width:760px){.avPap:not(.avPapGer){left:50%;transform:translateX(-50%);width:520px;top:20px;bottom:20px;border-radius:16px;box-shadow:0 20px 60px rgba(0,0,0,.35)}}

/* ── la liste des réglages, premier niveau ── */
#avSonPanel .avNavT{font-size:11px;letter-spacing:.09em;font-weight:800;color:#93a29f;
  margin:18px 0 2px;text-transform:uppercase}
#avSonPanel .avNavS{color:#7d8b89;font-size:12.25px;line-height:1.45;margin:0 0 9px}
#avSonPanel .avNavL{border:1px solid #e9edec;border-radius:12px;overflow:hidden;background:#fff}
#avSonPanel .avNavR{width:100%;display:flex;align-items:center;gap:11px;text-align:left;
  background:none;border:0;border-bottom:1px solid #f0f3f2;padding:11px;cursor:pointer;
  font-family:inherit;transition:background .12s}
#avSonPanel .avNavR:last-child{border-bottom:0}
#avSonPanel .avNavR:hover{background:#fafbfb}
#avSonPanel .avNavI{font-size:15.5px;flex:none;width:20px;text-align:center;line-height:1}
#avSonPanel .avNavX{flex:1;font-weight:650;color:#23201f;font-size:13.5px;min-width:0}
#avSonPanel .avNavV{color:#8a9a97;font-size:12.25px;flex:none;max-width:44%;
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
#avSonPanel .avNavC{color:#c7d0ce;font-size:17px;flex:none;line-height:1}
/* ── le tiroir, second niveau ── */
#avSonPanel .avNavBack{background:none;border:0;color:var(--teal-d,#0E7C6B);font-weight:700;
  font-size:13.5px;cursor:pointer;padding:2px 0 4px;font-family:inherit}
#avSonPanel .avNavH{font-size:16px;font-weight:800;color:#23201f;margin:0 0 12px}

/* ── 27/08 — LA FEUILLE DE RÉGLAGES ÉTAIT ILLISIBLE ────────────────────
   Trop grosse, mal rangée, et mon bloc débordait à droite. Tout est
   ramené ici à une seule échelle : des lignes fines séparées d'un trait,
   des titres de section discrets, et des cartes de couleur deux fois
   plus petites. Rien n'est masqué — c'est la même chose, en tenant. */

/* la feuille : centrée sur grand écran, tiroir en bas sur téléphone */
#avSonPanel{align-items:flex-end}
#avSonPanel>*{padding:16px 18px 22px!important}
@media(min-width:700px){
  #avSonPanel{align-items:center}
  #avSonPanel>*{max-width:560px!important;border-radius:18px!important;max-height:86vh!important}
}

/* titres de section — discrets, pas des pancartes */
#avSonPanel .avRassT,
#avSonPanel>*>div[style*="text-transform:uppercase"]{
  font-size:11px!important;letter-spacing:.09em!important;font-weight:800!important;
  color:#93a29f!important;margin:20px 0 2px!important;text-transform:uppercase}
#avSonPanel .avRassS{color:#7d8b89;font-size:12.25px;line-height:1.45;margin:0 0 8px}

/* les lignes de « L'entreprise » : un trait, pas une boîte */
#avSonPanel .avRassL{border:1px solid #e9edec;border-radius:12px;overflow:hidden;background:#fff}
#avSonPanel .avRassR{width:100%;display:flex;align-items:center;gap:11px;text-align:left;
  background:none;border:0;border-bottom:1px solid #f0f3f2;padding:9px 11px;cursor:pointer;
  font-family:inherit;transition:background .12s}
#avSonPanel .avRassR:last-child{border-bottom:0}
#avSonPanel .avRassR:hover{background:#fafbfb}
#avSonPanel .avRassI{font-size:15.5px;flex:none;width:20px;text-align:center;line-height:1}
#avSonPanel .avRassX{flex:1;min-width:0}
#avSonPanel .avRassN{display:block;font-weight:650;color:#23201f;font-size:13.25px;line-height:1.3}
#avSonPanel .avRassD{display:block;color:#8a9a97;font-size:11.75px;line-height:1.35;margin-top:1px;
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
#avSonPanel .avRassC{color:#c7d0ce;font-size:17px;flex:none;line-height:1}

/* les cartes de coloris et d'organisation : moitié moins hautes */
#avSonPanel [style*="grid-template-columns"]{gap:7px!important}
@media(min-width:520px){
  #avSonPanel [style*="minmax(168px"],#avSonPanel [style*="minmax(130px"]{
    grid-template-columns:repeat(auto-fit,minmax(150px,1fr))!important}
}
#avSonPanel label[style*="border"],
#avSonPanel [style*="border-radius:12px"][style*="padding"],
#avSonPanel [style*="border-radius:14px"][style*="padding"]{padding:9px 10px!important}
#avSonPanel h4,#avSonPanel h3{font-size:15px!important;margin:0 0 2px!important}

/* la barre de couleurs sous chaque coloris */
#avSonPanel [style*="height:18px"],#avSonPanel [style*="height:16px"],
#avSonPanel [style*="height:20px"]{height:9px!important;border-radius:4px!important}


/* les 19 mélodies : 19 × 61 px = 1 160 px à faire défiler. Réduites de moitié. */
#avSonPanel .avSonRow{padding:6px 10px!important;min-height:0!important;gap:8px!important}
#avSonPanel .avSonRow>*{font-size:13px!important}
#avSonPanel .avSonRow button{padding:4px 9px!important;font-size:12px!important;min-height:0!important}
#avSonPanel .avSonRow input[type="radio"]{width:16px;height:16px}
/* les cartes « Mon planning » : le texte suffit, la boîte peut maigrir */
#avSonPanel [style*="border-radius:12px"]{border-radius:10px!important}
/* le titre de la feuille */
#avSonPanel>*>div:first-child{margin-bottom:2px}
.avNomMarque{font-weight:800;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0;max-width:46vw}@media(max-width:420px){.avNomMarque{max-width:38vw;font-size:15px}}.topbar .brand{min-width:0}.panel table,table.av-t{max-width:100%}.panel{overflow-x:auto}table{max-width:100%}@media(max-width:560px){table{font-size:12px}}.av-act-card{display:none!important;}#avNPanel .avN-head{display:flex;align-items:center;justify-content:space-between;padding:15px 18px;background:linear-gradient(135deg,var(--teal,#0E7C6B),var(--teal-d,#0A5C50));color:#fff;font-weight:700;font-size:15px;}#avNPanel .avN-x{background:rgba(255,255,255,.16);border:none;color:#fff;width:30px;height:30px;border-radius:50%;cursor:pointer;font-size:13px;}#avNPanel .avN-body{padding:8px;}#avNPanel .avN-row{display:flex;align-items:center;gap:12px;padding:13px 12px;border-radius:12px;cursor:pointer;transition:background .12s;}#avNPanel .avN-row:hover{background:#fbf0f1;}#avNPanel .avN-ic{width:38px;height:38px;border-radius:11px;background:#fdeef0;display:flex;align-items:center;justify-content:center;font-size:18px;flex:none;}#avNPanel .avN-tx{flex:1;}#avNPanel .avN-t{font-size:14px;color:#23201f;font-weight:600;line-height:1.3;}#avNPanel .avN-ar{color:#d33a5a;opacity:.5;font-size:16px;transition:transform .12s;}#avNPanel .avN-row:hover .avN-ar{opacity:1;transform:translateX(2px);}#avNPanel .avN-empty{padding:32px 18px;text-align:center;color:#8a9;}#avNPanel .avN-eic{width:46px;height:46px;border-radius:50%;background:#eafaf0;color:#1f9d55;font-size:22px;display:flex;align-items:center;justify-content:center;margin:0 auto 10px;}/* v102 : GSM propre */html,body{overflow-x:hidden;max-width:100vw}.panel{max-width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}@media(max-width:560px){.u-fx-gap8,.u-fx-between{flex-wrap:wrap}.panel{padding:10px}.panel table{font-size:12px}#av-eye{top:118px;right:8px;opacity:.55}.kpi .val{font-size:26px}}
/* v144 - deux libelles de l ecran de connexion passaient sous le seuil de
   lisibilite (norme AA : 4,5 pour du texte courant) :
     #avGeranteBtn  gris  #8a8a8a sur blanc -> 3,45
     #avFixBtn      rouge #b0888a sur blanc -> 3,12
   Seule la couleur change : ni la taille, ni la position, ni le comportement. */
#avGeranteBtn{color:#5f5f5f !important}   /* 6,39 */
#avFixBtn{color:#7d4f52 !important}       /* 6,75 */

/* une LIGNE, pas un bloc : ~34 px au lieu de ~90 */
.avPg{padding:9px 12px!important;margin-bottom:9px!important}
.avPgL{width:100%;display:flex;align-items:baseline;gap:8px;background:none;border:0;padding:0;
  cursor:pointer;font-family:inherit;text-align:left;color:inherit}
.avPgP{font-size:11.5px;font-weight:800;text-transform:uppercase;letter-spacing:.05em;opacity:.72;flex:none}
.avPgH{flex:1;min-width:0;font-size:15px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.avPgH b{font-size:19px;font-weight:800}
.avPgS{opacity:.66;font-size:12.5px;font-weight:600}
.avPgC{flex:none;opacity:.6;font-size:13px;line-height:1}
.avPg .bar{margin-top:6px!important;height:5px!important}
/* le détail, replié par défaut */
.avPgT{margin-top:9px;padding-top:7px;border-top:1px solid rgba(255,255,255,.18)}
.avPgD{display:flex;align-items:baseline;gap:8px;padding:3.5px 0;font-size:12.5px;opacity:.78}
.avPgD.on{opacity:1;font-weight:700}
.avPgD>span:first-child{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.avPgD b{font-weight:800}
.avPgN{flex:none;font-size:11.5px;opacity:.72;min-width:34px;text-align:right}
@media(max-width:380px){.avPgP{display:none}.avPgH b{font-size:17px}}

/* ============================================================================
   BLOC ADDITIF v144 — av_ecran : ZONES SÛRES ET LISIBILITÉ
   ----------------------------------------------------------------------------
   Constat du 27/08/2026 : la page déclarait « viewport-fit=cover » — donc elle
   s'étend sous l'encoche et sous la barre d'accueil de l'iPhone — mais
   n'utilisait AUCUNE variable env(safe-area-inset-*). Mesuré à 390 px : le
   bouton ➕ était à 18 px du bas et le bandeau de notifications à 12 px, alors
   que la barre d'accueil de l'iPhone occupe environ 34 px. Ils tombaient donc
   dans une zone où le doigt déclenche le geste système au lieu du bouton.
   ============================================================================ */
:root{
  --av-bas:    env(safe-area-inset-bottom, 0px);
  --av-haut:   env(safe-area-inset-top,    0px);
  --av-gauche: env(safe-area-inset-left,   0px);
  --av-droite: env(safe-area-inset-right,  0px);
}
/* le bas de la page défilante doit lui aussi dégager la barre d'accueil,
   sinon la dernière ligne du tableau se lit à moitié */
body{ padding-bottom: 0; padding-bottom: var(--av-bas); }

/* la barre du haut est « sticky top:0 » : sous l'encoche sans ce complément */
.topbar{ padding-top: 9px; padding-top: calc(9px + var(--av-haut)); }

/* iOS agrandit la page tout seul quand un champ fait moins de 16 px.
   Comme la page autorise de nouveau le zoom à deux doigts (accessibilité),
   on met les champs à 16 px sur téléphone pour éviter ce zoom involontaire. */
@media (max-width: 820px){
  input, select, textarea { font-size: 16px; }
}
