/* =====================================================================================================
   ERP GARKUA v2 — styles (modules, fiches, tableaux de bord, Mon espace, pilotage, borne, notifications)
   S'appuie sur les jetons de l'interface existante (--green, --line, --card, --bg, --muted, --ink).
   ===================================================================================================== */
.erp-hero{display:flex;gap:16px;align-items:center;flex-wrap:wrap;background:linear-gradient(120deg,color-mix(in srgb,var(--mc) 10%,#fff),#fff 70%);border:1px solid var(--line);border-left:5px solid var(--mc);border-radius:14px;padding:16px 18px;margin:16px 0 12px}
.erp-hero h2{font-size:21px;font-weight:800;margin:0 0 4px}
.erp-hero p{margin:0;color:var(--muted);font-size:13px;max-width:780px}
.erp-hero-txt{flex:1;min-width:230px}
.erp-hero-ic{width:48px;height:48px;border-radius:12px;background:var(--mc);color:#fff;display:grid;place-items:center;flex:0 0 auto}
.erp-hero-ic .ic{width:26px;height:26px}
.erp-hero-act{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.erp-ctx{display:inline-flex;align-items:center;gap:6px;background:var(--card);border:1px solid var(--line);border-radius:10px;padding:4px 4px 4px 10px;color:var(--muted)}
.erp-ctx select{border:none;background:transparent;font:inherit;font-weight:700;color:var(--ink);padding:6px 4px;max-width:340px}
.erp-ctx .ic{width:16px;height:16px}
.erp-live{display:inline-block;width:8px;height:8px;border-radius:50%;background:#16a34a;margin-left:6px;vertical-align:1px;box-shadow:0 0 0 3px rgba(22,163,74,.18);animation:erpPulse 2.4s infinite}
.erp-live.stale{background:#dc2626;box-shadow:0 0 0 3px rgba(220,38,38,.18);animation:none}
@keyframes erpPulse{0%,100%{box-shadow:0 0 0 3px rgba(22,163,74,.18)}50%{box-shadow:0 0 0 6px rgba(22,163,74,.06)}}
@media (prefers-reduced-motion:reduce){.erp-live{animation:none}}

.erp-tabs{display:flex;gap:6px;overflow-x:auto;padding:2px 0 10px;scrollbar-width:thin}
.erp-tab{display:inline-flex;align-items:center;gap:6px;white-space:nowrap;border:1px solid var(--line);background:var(--card);color:var(--ink);padding:8px 12px;border-radius:999px;font-weight:600;font-size:13px;cursor:pointer}
.erp-tab .ic{width:15px;height:15px}
.erp-tab em{font-style:normal;font-size:11px;background:var(--bg);border-radius:10px;padding:1px 7px;color:var(--muted)}
.erp-tab.on{background:var(--green-d);color:#fff;border-color:var(--green-d)}
.erp-tab.on em{background:rgba(255,255,255,.2);color:#fff}
.erp-dot{display:inline-block;min-width:18px;height:18px;padding:0 5px;border-radius:9px;background:#dc2626;color:#fff;font-size:10.5px;line-height:18px;text-align:center;font-weight:800}
.erp-kpis{grid-template-columns:repeat(auto-fit,minmax(140px,1fr));margin:6px 0 12px}
.erp-kpis .kpi .n{font-size:22px}
.erp-toolbar{flex-wrap:wrap;gap:8px;align-items:center;margin:8px 0 10px}
.erp-q{width:100%}
.erp-seg{display:inline-flex;border:1px solid var(--line);border-radius:9px;overflow:hidden;background:var(--card)}
.erp-seg button{border:none;background:transparent;padding:7px 11px;font-weight:600;font-size:12.5px;color:var(--muted);cursor:pointer;display:inline-flex;gap:5px;align-items:center}
.erp-seg button.on{background:var(--green-l);color:var(--green-d)}
.erp-more{position:relative}
.erp-menu{display:none;position:absolute;right:0;top:calc(100% + 4px);z-index:40;background:var(--card);border:1px solid var(--line);border-radius:10px;box-shadow:0 12px 30px rgba(0,0,0,.14);padding:4px;min-width:220px}
.erp-more.open .erp-menu{display:block}
.erp-menu button,.erp-menu label{display:flex;gap:8px;align-items:center;width:100%;border:none;background:transparent;padding:9px 10px;border-radius:7px;font:inherit;font-size:13px;cursor:pointer;color:var(--ink);text-align:left}
.erp-menu button:hover,.erp-menu label:hover{background:var(--bg)}
.erp-ref{font-family:ui-monospace,Consolas,monospace;font-size:11.5px;color:var(--muted);white-space:nowrap}
.erp-sub{font-size:11.5px;white-space:normal;max-width:440px}
.erp-num{font-variant-numeric:tabular-nums;white-space:nowrap}
.erp-late{color:#dc2626;font-weight:700}
.erp-soon{color:#b45309;font-weight:700}
.erp-foot{font-size:12px;margin-top:6px}
.erp-help{font-size:11.5px;color:var(--muted)}
table.erp-tbl td{white-space:normal;vertical-align:top}
table.erp-tbl .erp-sev{width:5px;padding:0}
.erp-bar{display:inline-block;width:64px;height:6px;background:var(--bg);border-radius:6px;overflow:hidden;margin-right:6px;vertical-align:middle}
.erp-bar.big{display:block;width:100%;height:8px;margin:5px 0 3px}
.erp-bar i{display:block;height:100%;border-radius:6px}
.erp-alerts{background:#fffbeb;border:1px solid #fde68a;border-radius:10px;padding:8px 12px;margin:0 0 10px}
.erp-alerts summary{cursor:pointer;display:flex;gap:8px;align-items:center;flex-wrap:wrap;font-size:13px}
.erp-alerts>div{margin-top:8px;max-height:280px;overflow:auto}
.erp-al{display:flex;gap:8px;align-items:center;flex-wrap:wrap;width:100%;text-align:left;border:none;background:transparent;padding:7px 6px;border-radius:8px;cursor:pointer;font-size:13px;color:var(--ink);font-family:inherit}
.erp-al:hover{background:var(--bg)}
.erp-al>i{width:8px;height:8px;border-radius:50%;flex:0 0 auto}
.erp-al-r{margin-left:auto;text-align:right;font-size:12px}

/* vues : Kanban, calendrier, Gantt */
.erp-kanban{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(230px,1fr);gap:10px;overflow-x:auto;padding-bottom:6px}
.erp-kcol{background:var(--bg);border:1px solid var(--line);border-radius:12px;padding:8px;min-height:160px;transition:background .15s}
.erp-kcol.over{background:var(--green-l)}
.erp-khead{display:flex;gap:8px;align-items:baseline;border-top:4px solid;border-radius:4px;padding:8px 4px 10px;font-size:13px}
.erp-khead em{font-style:normal;font-size:11px;color:var(--muted);font-weight:700}
.erp-kcard{background:var(--card);border:1px solid var(--line);border-radius:10px;padding:9px 10px;margin-bottom:8px;cursor:grab;font-size:13px;box-shadow:var(--shadow)}
.erp-kcard:hover{border-color:var(--green)}
.erp-kal{font-size:11.5px;margin-top:5px;display:flex;gap:4px;align-items:center}
.erp-kal .ic{width:13px;height:13px}
.erp-kempty{text-align:center;padding:14px 0}
.erp-calbar{display:flex;align-items:center;gap:10px;margin-bottom:8px}
.erp-calbar b{min-width:150px;text-align:center;text-transform:capitalize}
.erp-cal{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:4px}
.erp-cal-h{font-size:11px;font-weight:700;color:var(--muted);text-align:center;padding:4px 0}
.erp-cal-d{background:var(--card);border:1px solid var(--line);border-radius:8px;min-height:92px;padding:4px;display:flex;flex-direction:column;gap:3px;overflow:hidden}
.erp-cal-d.out{background:transparent;border-color:transparent}
.erp-cal-d.we{background:var(--bg)}
.erp-cal-d.today{border-color:var(--green);box-shadow:inset 0 0 0 1px var(--green)}
.erp-cal-n{font-size:11px;font-weight:700;color:var(--muted)}
.erp-cal-ev{border:none;border-left:3px solid var(--ec);background:color-mix(in srgb,var(--ec) 14%,#fff);color:var(--ink);border-radius:5px;font-size:11px;text-align:left;padding:2px 5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;cursor:pointer;font-family:inherit}
.erp-cal-more{font-size:10.5px}
.erp-gantt{border:1px solid var(--line);border-radius:12px;background:var(--card);overflow-x:auto}
.erp-g-head,.erp-g-row{display:grid;grid-template-columns:minmax(200px,34%) 1fr;min-width:760px}
.erp-g-head{border-bottom:1px solid var(--line);font-size:11px;color:var(--muted);font-weight:700}
.erp-g-head .erp-g-lbl{padding:8px 10px}
.erp-g-row{border-bottom:1px solid var(--line);cursor:pointer}
.erp-g-row:hover{background:var(--bg)}
.erp-g-lbl{padding:8px 10px;font-size:12.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.erp-g-track{position:relative;min-height:34px}
.erp-g-head .erp-g-track span{position:absolute;top:8px;white-space:nowrap;transform:translateX(2px)}
.erp-g-bar{position:absolute;top:8px;height:18px;border-radius:6px;background:color-mix(in srgb,var(--gc) 22%,#fff);border:1px solid var(--gc);overflow:hidden}
.erp-g-bar b{display:block;height:100%;background:var(--gc);opacity:.85}
.erp-g-bar span{position:absolute;left:6px;top:0;font-size:10.5px;line-height:16px;font-weight:700;color:#111}
.erp-g-today{position:absolute;top:0;bottom:0;width:2px;background:#dc2626;opacity:.6;z-index:2}

/* fiche */
.erp-modal{max-width:880px}
#erpMBody{max-height:80vh;overflow:auto}
.erp-modal .form-grid>.field{min-width:0}
.erp-modal .field input,.erp-modal .field select{width:100%;min-width:0;max-width:100%}
.erp-hpill{background:rgba(255,255,255,.22)!important;border:1px solid rgba(255,255,255,.5)}
.erp-steps{display:flex;align-items:center;flex-wrap:wrap;gap:4px;margin:0 0 12px}
.erp-steps>i{width:14px;height:2px;background:var(--line)}
.erp-step{display:inline-flex;gap:4px;align-items:center;font-size:11.5px;font-weight:700;padding:4px 9px;border-radius:999px;border:1px solid var(--line);color:var(--muted);background:var(--card)}
.erp-step .ic{width:12px;height:12px}
.erp-step.done{color:var(--sc);border-color:var(--sc)}
.erp-step.cur{background:var(--sc);border-color:var(--sc);color:#fff}
.erp-wfbar{display:flex;gap:8px;flex-wrap:wrap;align-items:center;background:#f0fdf4;border:1px solid #bbf7d0;border-radius:10px;padding:10px;margin-bottom:12px}
.erp-wf-q{display:flex;gap:6px;align-items:center;font-size:13px;color:var(--green-d)}
#erpWfNote{flex:1;min-width:200px;padding:9px 11px;border:1px solid var(--line);border-radius:9px;font:inherit;font-size:13px;background:#fff}
.erp-hint{background:#eff6ff;border:1px solid #bfdbfe;color:#1e3a8a;border-radius:10px;padding:9px 12px;font-size:13px;margin-bottom:12px;line-height:1.5}
.erp-ro-note,.erp-stale{display:flex;gap:8px;align-items:center;background:var(--bg);border:1px dashed var(--line);border-radius:10px;padding:8px 12px;font-size:13px;color:var(--muted);margin-bottom:10px}
.erp-stale{background:#fffbeb;border-color:#fde68a;color:#92400e}
.erp-sec{font-size:12px;font-weight:800;color:var(--green-d);text-transform:uppercase;letter-spacing:.06em;border-bottom:1px solid var(--line);padding-bottom:4px;margin-top:6px}
.erp-calc{background:var(--green-l)!important;color:var(--green-d);font-weight:700;border-style:dashed!important}
.erp-ro{background:var(--bg)!important;color:var(--muted)}
.erp-trf label{color:var(--green-d)}
.erp-trf input,.erp-trf select,.erp-trf textarea{border-color:var(--green)!important;box-shadow:0 0 0 2px var(--green-l)}
.erp-auto{text-transform:none;letter-spacing:0;font-weight:600;color:var(--green);font-size:10.5px;display:inline-flex;gap:2px;align-items:center}
.erp-auto .ic{width:11px;height:11px}
.erp-auto-btn{border-color:var(--green)!important}
.erp-savebar{flex-wrap:wrap}
.erp-malerts{margin-top:14px;display:flex;flex-direction:column;gap:4px;font-size:13px;font-weight:600}
.erp-malerts .ic{width:14px;height:14px;vertical-align:-2px}
.erp-hist{margin:6px 0 0 18px;padding:0;font-size:12.5px}
.erp-hist li{margin-bottom:6px}
.erp-histbox summary{cursor:pointer;list-style:none}
.erp-mini{background:var(--bg);border-radius:10px;padding:8px 12px;font-size:13px;margin-bottom:12px;display:flex;gap:6px;align-items:center;flex-wrap:wrap}
.erp-gps{display:flex;gap:10px;align-items:center;flex-wrap:wrap;font-size:13px}
.erp-gps .ic{width:14px;height:14px;vertical-align:-2px}
.erp-lieu{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
.erp-lieu select,.erp-lieu input{padding:9px 11px;border:1px solid var(--line);border-radius:9px;font-size:13.5px;background:#fff;font-family:inherit;min-width:0}
.erp-files{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:6px}
.erp-file{position:relative;border:1px solid var(--line);border-radius:8px;overflow:hidden;background:var(--card);font-size:12px}
.erp-file img{display:block;width:96px;height:72px;object-fit:cover}
.erp-file a{display:flex;gap:4px;align-items:center;padding:6px 8px;color:var(--ink);text-decoration:none}
.erp-file-x{position:absolute;top:2px;right:2px;border:none;background:rgba(0,0,0,.55);color:#fff;border-radius:6px;width:22px;height:22px;display:grid;place-items:center;cursor:pointer}
.erp-file-x .ic{width:13px;height:13px}
.erp-up{cursor:pointer;margin-right:8px}
.erp-checkin{border:1px solid var(--line);border-radius:12px;padding:10px 12px;margin-bottom:12px;background:var(--card)}
.erp-checkin-h{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-bottom:6px}
.erp-checkin-act{display:flex;gap:8px;flex-wrap:wrap;margin-top:8px}
.erp-checkin-act input{flex:1;min-width:200px;padding:9px 11px;border:1px solid var(--line);border-radius:9px;font:inherit;font-size:13px}

/* tableaux de bord */
.erp-kgrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(132px,1fr));gap:10px;margin:12px 0 16px}
.erp-kpi{text-align:left;font-family:inherit}
button.erp-kpi{cursor:pointer}
button.erp-kpi:hover{border-color:var(--green)}
.erp-kpi .n{font-size:21px;line-height:1.15}
.erp-kpi .l{font-size:11px}
.erp-grid2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin-bottom:14px}
.erp-panel{margin:0}
.erp-panel .ph{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.erp-panel .pb{max-height:460px;overflow:auto}
.erp-empty{padding:14px 4px;font-size:13px}
.erp-chart{position:relative;height:250px}
.erp-map{height:300px;border-radius:10px;z-index:0}
.erp-inbox{display:flex;gap:6px;align-items:center;border-bottom:1px solid var(--line)}
.erp-inbox .erp-al{flex:1;min-width:0}
.erp-seed{border:1px dashed var(--green);background:var(--green-l);margin-bottom:14px}
.erp-seed .pb{display:flex;gap:14px;align-items:center;flex-wrap:wrap}
.erp-seed .pb>.ic{width:30px;height:30px;color:var(--green)}
.erp-projhead{display:flex;gap:16px;align-items:center;justify-content:space-between;flex-wrap:wrap;background:var(--card);border:1px solid var(--line);border-radius:14px;padding:14px 18px;margin-bottom:4px}
.erp-projhead h3{margin:2px 0 4px;font-size:19px}
.erp-gauges{display:flex;gap:10px;flex-wrap:wrap}
.erp-gauge{display:flex;flex-direction:column;align-items:center;justify-content:center;min-width:104px;padding:8px 12px;border-radius:12px;background:var(--bg);border-top:3px solid var(--gc,var(--green))}
.erp-gauge b{font-size:20px;font-variant-numeric:tabular-nums}
.erp-gauge span{font-size:11px;color:var(--muted);text-transform:uppercase;letter-spacing:.04em;margin-top:2px}
.erp-ind{padding:6px 0;border-bottom:1px solid var(--line)}
.erp-ind-t{font-size:13px;font-weight:600}
.erp-ind-v{font-size:12px}
.erp-feed{display:flex;gap:10px;align-items:center;width:100%;border:none;border-bottom:1px solid var(--line);background:transparent;padding:8px 4px;text-align:left;cursor:pointer;font:inherit;font-size:13px;color:var(--ink)}
.erp-feed:hover{background:var(--bg)}
.erp-feed img{width:52px;height:40px;object-fit:cover;border-radius:6px;flex:0 0 auto}
.erp-feed-ic{width:52px;height:40px;border-radius:6px;background:var(--bg);display:grid;place-items:center;flex:0 0 auto;color:var(--muted)}
.erp-feed-dot{width:10px;height:10px;border-radius:50%;flex:0 0 auto}
.erp-feed.fresh{animation:erpFresh 2.5s ease-out}
@keyframes erpFresh{from{background:#dcfce7}to{background:transparent}}
@media (prefers-reduced-motion:reduce){.erp-feed.fresh{animation:none;background:#f0fdf4}}
.erp-unit{margin-bottom:10px}
.erp-unit-h{font-size:12px;font-weight:800;color:var(--muted);text-transform:uppercase;letter-spacing:.05em;margin-bottom:5px}
.erp-chips{display:flex;flex-wrap:wrap;gap:6px}
.erp-chip-ag{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--line);border-left:4px solid var(--cc);background:var(--card);border-radius:8px;padding:5px 8px;font:inherit;font-size:12.5px;cursor:pointer;color:var(--ink)}
.erp-chip-ag i{width:8px;height:8px;border-radius:50%;background:var(--cc)}
.erp-chip-ag small{color:var(--muted);font-size:11px}
.erp-disp{display:grid;grid-template-columns:150px 1fr;gap:10px;align-items:center;border-left:4px solid var(--dc);background:var(--bg);border-radius:8px;padding:6px 10px;margin-bottom:6px;font-size:12.5px}
.erp-disp-v{border:none;background:transparent;text-align:left;cursor:pointer;font:inherit;color:var(--ink);display:flex;flex-direction:column}
.erp-disp-v small{color:var(--muted);font-size:11px}
.erp-quick{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 14px}
.erp-chipsbar{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:6px}
.erp-chip{border:1px solid var(--line);background:var(--card);border-radius:999px;padding:4px 10px;font-size:11.5px;cursor:pointer;font-weight:600;color:var(--muted);font-family:inherit}
.erp-chip.on{background:var(--green-d);border-color:var(--green-d);color:#fff}
.erp-mods{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:12px;margin-top:14px}
.erp-mod{border-top:4px solid var(--mc)}
.erp-mod-h{display:flex;gap:8px;align-items:center;color:var(--mc);margin-bottom:8px;font-size:14.5px;border:none;background:transparent;cursor:pointer;padding:0;font-family:inherit}
.erp-mod-l button{display:flex;width:100%;gap:7px;align-items:center;border:none;background:transparent;padding:6px 4px;border-radius:7px;cursor:pointer;font-size:13px;color:var(--ink);text-align:left;font-family:inherit}
.erp-mod-l button:hover{background:var(--bg)}
.erp-mod-l button em{margin-left:auto;font-style:normal;font-weight:700;color:var(--muted);font-size:12px}
.erp-mod-l .ic{width:15px;height:15px;color:var(--muted)}
.erp-search{position:relative;flex:1 1 320px;max-width:460px}
.erp-search input{width:100%;padding:10px 12px;border:1px solid var(--line);border-radius:10px;font-size:13.5px;background:#fff}
.erp-sres{position:absolute;z-index:50;left:0;right:0;top:calc(100% + 4px);background:var(--card);border:1px solid var(--line);border-radius:10px;box-shadow:0 12px 30px rgba(0,0,0,.15);max-height:360px;overflow:auto;padding:4px}

/* Mon espace */
.esp-hero{display:flex;gap:18px;align-items:center;flex-wrap:wrap;background:linear-gradient(120deg,#e8f3ed,#fff 60%);border:1px solid var(--line);border-radius:16px;padding:18px 20px;margin:16px 0 14px}
.esp-av{width:58px;height:58px;border-radius:50%;background:var(--green-d);color:#fff;display:grid;place-items:center;font-weight:800;font-size:20px;flex:0 0 auto}
.esp-id{flex:1;min-width:220px}
.esp-id h2{margin:2px 0 3px;font-size:22px}
.esp-pt{display:flex;flex-direction:column;gap:8px;min-width:280px;flex:1 1 320px;background:var(--card);border:1px solid var(--line);border-radius:12px;padding:12px}
.esp-pt-s{display:flex;gap:10px;align-items:center}
.esp-pt-s i{width:12px;height:12px;border-radius:50%;background:var(--cc);box-shadow:0 0 0 4px color-mix(in srgb,var(--cc) 20%,transparent)}
.esp-pt-s small{display:block;color:var(--muted);font-size:11.5px}
.esp-pt-b{display:flex;gap:8px;flex-wrap:wrap}
.esp-pt-b .btn{flex:1 1 140px;justify-content:center}
.esp-pt-n{font-size:11.5px}
.esp-quick{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px;margin-bottom:14px}
.esp-q{display:flex;flex-direction:column;align-items:flex-start;gap:8px;border:1px solid var(--line);background:var(--card);border-radius:12px;padding:12px;cursor:pointer;font:inherit;font-size:13px;font-weight:600;color:var(--ink);text-align:left}
.esp-q:hover{border-color:var(--green);background:var(--green-l)}
.esp-q .ic{width:22px;height:22px;color:var(--green-d)}
.esp-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin-bottom:10px}
.esp-stats div{background:var(--bg);border-radius:10px;padding:8px;text-align:center}
.esp-stats b{display:block;font-size:20px}
.esp-stats span{font-size:11px;color:var(--muted)}
.esp-cal{display:grid;grid-template-columns:repeat(7,1fr);gap:3px;font-size:11px;text-align:center}
.esp-cal b{color:var(--muted)}
.esp-cal span{padding:5px 0;border-radius:6px;background:var(--bg)}
.esp-cal span.on{background:color-mix(in srgb,var(--cc) 22%,#fff);border:1px solid var(--cc)}
.esp-cal span.td{outline:2px solid var(--green)}
.esp-pw{display:flex;gap:8px;flex-wrap:wrap}
.esp-pw input{flex:1 1 180px;padding:9px 11px;border:1px solid var(--line);border-radius:9px;font:inherit;font-size:13px}

/* Pilotage */
.pil-dot{display:inline-block;width:9px;height:9px;border-radius:50%;margin-right:6px}
.pil-bar{position:relative;display:inline-block;width:110px;height:8px;background:var(--bg);border-radius:6px;vertical-align:middle;margin-right:6px}
.pil-bar i{display:block;height:100%;background:#0f766e;border-radius:6px}
.pil-bar b{position:absolute;top:-3px;width:2px;height:14px;background:#111;opacity:.55}
.pil-tbl tbody tr{cursor:pointer}

/* Borne de pointage */
.borne{background:var(--card);border:1px solid var(--line);border-radius:18px;padding:18px;margin:16px 0}
.borne:fullscreen{display:flex;flex-direction:column;justify-content:center;padding:4vh 4vw}
.borne-top{display:flex;justify-content:space-between;gap:10px;flex-wrap:wrap;margin-bottom:12px}
.borne-main{display:flex;gap:28px;align-items:center;flex-wrap:wrap}
.borne-qr{text-align:center}
.borne-qr img{width:min(420px,80vw);height:auto;aspect-ratio:1;background:#fff;border:10px solid #fff;border-radius:14px;box-shadow:0 10px 30px rgba(0,0,0,.12)}
.borne-cd{font-size:12px;color:var(--muted);margin-top:6px}
.borne-txt{flex:1;min-width:260px}
.borne-txt h2{font-size:26px;margin:4px 0 10px}
.borne-txt ol{font-size:15px;line-height:1.7;padding-left:20px}
.borne-live{margin-top:12px}
.borne-live>div{display:flex;flex-wrap:wrap;gap:6px;margin-top:6px}
.borne-p{border-left:4px solid var(--cc);background:var(--bg);border-radius:8px;padding:5px 8px;font-size:13px}
.borne-p small{color:var(--muted)}

/* Notifications */
.erp-bellw{position:relative;display:inline-flex;margin-right:8px}
.erp-bell{position:relative;width:38px;height:38px;border-radius:10px;border:1px solid var(--line);background:var(--card);display:grid;place-items:center;cursor:pointer;color:var(--ink)}
.erp-bell .ic{width:18px;height:18px}
.erp-bell b{position:absolute;top:-6px;right:-6px;min-width:18px;height:18px;border-radius:9px;background:#dc2626;color:#fff;font-size:10.5px;line-height:18px;padding:0 4px;font-weight:800}
.erp-bellm{position:absolute;right:0;top:calc(100% + 8px);width:min(440px,92vw);max-height:70vh;overflow:auto;background:var(--card);border:1px solid var(--line);border-radius:12px;box-shadow:0 16px 40px rgba(0,0,0,.18);z-index:3500;padding:8px}
.erp-bell-h{display:flex;justify-content:space-between;align-items:center;gap:8px;flex-wrap:wrap;padding:4px 4px 8px;border-bottom:1px solid var(--line)}
.erp-bell-s{font-size:11px;font-weight:800;color:var(--muted);text-transform:uppercase;letter-spacing:.05em;margin:10px 4px 2px}

@media (max-width:980px){ .erp-grid2{grid-template-columns:1fr} .erp-hero h2{font-size:18px} }
@media (max-width:640px){
  .erp-kanban{grid-auto-columns:82%}
  .erp-toolbar .fsel{flex:1 1 45%}
  .erp-hero{padding:12px}
  .erp-lieu{grid-template-columns:1fr}
  .erp-cal-d{min-height:64px}
  .erp-cal-ev{font-size:10px}
  .esp-stats{grid-template-columns:repeat(2,minmax(0,1fr))}
  .erp-disp{grid-template-columns:1fr}
  .erp-ctx select{max-width:220px}
}

/* =====================================================================================================
   v3 — Historique détaillé, champs confidentiels, bénéficiaires, rapports & publication, centre de données
   ===================================================================================================== */
.erp-diff{list-style:none;margin:5px 0 2px;padding:6px 8px;background:var(--bg);border-radius:8px;font-size:12px;display:grid;gap:2px}
.erp-diff li{line-height:1.45;word-break:break-word}
.erp-diff-k{font-weight:700;color:var(--ink-2,#33453d);margin-right:4px}
.erp-diff-a{color:var(--muted);margin:0 3px}
.erp-conf{color:var(--muted)!important;font-style:italic;background:repeating-linear-gradient(135deg,var(--bg),var(--bg) 6px,var(--card) 6px,var(--card) 12px)!important}

/* Bénéficiaires : composition, doublons, score */
.bf-mem{border:1px solid var(--line);border-radius:10px;padding:8px;background:var(--card-2,#fbfdfc)}
.bf-mt{width:100%;border-collapse:collapse;font-size:13px;min-width:620px}
.bf-mt th{font-size:11px;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);text-align:left;padding:4px 5px;border-bottom:1px solid var(--line)}
.bf-mt td{padding:4px 5px;border-bottom:1px solid var(--line-2,#eef3f0);vertical-align:middle}
.bf-mt input,.bf-mt select{width:100%;min-width:0;font:inherit;font-size:13px;padding:6px 7px;border:1px solid var(--line);border-radius:7px;background:var(--card)}
.bf-mt .bf-age{width:64px}
.bf-mt td.bf-n{color:var(--muted);font-variant-numeric:tabular-nums;width:22px}
.bf-part{display:flex;gap:6px;align-items:center;flex-wrap:wrap}
.bf-hd{background:#fef3c7!important;border-color:#f59e0b!important;color:#92400e!important}
.bf-chk{display:inline-flex;gap:6px;align-items:center;font-size:12.5px;cursor:pointer}
.bf-chk input{width:auto}
.bf-wgrow td{background:#fffbeb}
.bf-wg{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:6px 10px}
.bf-wg label{display:grid;gap:3px;font-size:12px;font-weight:600;color:var(--ink-2,#33453d)}
.bf-mem-f{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-top:8px;font-size:12.5px}
.bf-dedup{font-size:13px;display:grid;gap:5px;padding:8px 10px;border:1px dashed var(--line);border-radius:9px;background:var(--card-2,#fbfdfc)}
.bf-dd{display:flex;gap:6px;align-items:center;flex-wrap:wrap}
.bf-extra{display:grid;grid-template-columns:auto minmax(0,1fr) minmax(0,1.2fr);gap:14px;align-items:start;border:1px solid var(--line);border-radius:12px;padding:12px;margin:0 0 12px;background:var(--card-2,#fbfdfc)}
.bf-score{width:92px;height:92px;border-radius:50%;border:7px solid var(--sc);display:grid;place-content:center;text-align:center}
.bf-score b{font-size:26px;font-family:var(--font-display);line-height:1}
.bf-score span{font-size:9.5px;color:var(--muted);max-width:70px;line-height:1.2}
.bf-det{display:grid;gap:5px;font-size:12px}
.bf-det>div{display:grid;grid-template-columns:130px 1fr 42px;gap:6px;align-items:center}
.bf-det i{height:7px;background:var(--bg);border-radius:6px;overflow:hidden;display:block}
.bf-det em{display:block;height:100%;background:#b45309;border-radius:6px}
.bf-det b{text-align:right;font-variant-numeric:tabular-nums}
.bf-hist{display:grid;gap:2px;font-size:13px;max-height:200px;overflow:auto}
.bf-actions{display:flex;gap:8px;flex-wrap:wrap;margin:4px 0 12px}
.bf-note{margin:-4px 0 12px;display:flex;gap:6px;align-items:flex-start}
.bf-note .ic{width:15px;height:15px;flex:0 0 auto;margin-top:1px}
.bf-funnel{display:grid;gap:8px}
.bf-fr{display:grid;grid-template-columns:150px 1fr 70px 46px;gap:8px;align-items:center;font-size:13px}
.bf-fr i{height:14px;background:var(--bg);border-radius:7px;overflow:hidden;display:block}
.bf-fr em{display:block;height:100%;border-radius:7px}
.bf-fr b{text-align:right;font-variant-numeric:tabular-nums}
.bf-fr small{color:var(--muted);text-align:right}
.bf-wait{margin-top:10px;padding:8px 10px;border-radius:9px;background:#eff6ff;display:flex;gap:8px;align-items:center;flex-wrap:wrap;font-size:13px}

/* Mode distribution (scan) */
.bf-scanbox{max-width:760px}
.bf-scan{padding:14px;display:grid;gap:10px}
.bf-scan-d{display:flex;gap:8px;align-items:center;border:1px solid var(--line);border-radius:10px;padding:4px 4px 4px 10px}
.bf-scan-d select{flex:1;border:none;background:transparent;font:inherit;font-weight:700;padding:8px 4px;min-width:0}
.bf-scan-stats{font-size:13px;color:var(--ink-2,#33453d)}
.bf-prog{height:8px;background:var(--bg);border-radius:6px;overflow:hidden;margin-bottom:5px}
.bf-prog i{display:block;height:100%;background:#b45309;border-radius:6px}
.bf-cam{position:relative;background:#0b1510;border-radius:14px;overflow:hidden;aspect-ratio:4/3;max-height:52vh}
.bf-cam video{width:100%;height:100%;object-fit:cover;display:block}
.bf-cam-guide{position:absolute;inset:18% 26%;border:3px solid rgba(255,255,255,.85);border-radius:16px;box-shadow:0 0 0 999px rgba(0,0,0,.28)}
.bf-cam-msg{position:absolute;left:0;right:0;bottom:10px;text-align:center;color:#fff;font-weight:700;font-size:14px;text-shadow:0 1px 3px rgba(0,0,0,.6)}
.bf-manual{display:flex;gap:8px}
.bf-manual input{flex:1;min-width:0;font:inherit;font-size:15px;padding:10px 12px;border:1px solid var(--line);border-radius:10px;text-transform:uppercase;letter-spacing:.04em}
.bf-card{display:flex;gap:12px;align-items:flex-start;border-radius:12px;padding:12px 14px;border:1px solid var(--line);font-size:14px}
.bf-card>.ic{width:28px;height:28px;flex:0 0 auto}
.bf-card.ok{background:#f0fdf4;border-color:#86efac}.bf-card.ok>.ic{color:#16a34a}
.bf-card.warn{background:#fffbeb;border-color:#fcd34d}.bf-card.warn>.ic{color:#d97706}
.bf-card.bad{background:#fef2f2;border-color:#fca5a5}.bf-card.bad>.ic{color:#dc2626}
.bf-card-h{display:flex;gap:8px;align-items:center;flex-wrap:wrap;font-size:16px}
.bf-card-a{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px}
.bf-card input{width:100%;margin-top:8px;font:inherit;padding:8px 10px;border:1px solid var(--line);border-radius:8px}
.bf-scan-log{font-size:12.5px}
.bf-scan-log>div{display:grid;gap:3px;margin-top:6px;max-height:190px;overflow:auto}
.bf-log{display:grid;grid-template-columns:48px 112px minmax(0,1fr) auto;gap:8px;padding:5px 8px;border-radius:8px;background:var(--bg)}
.bf-log.ko{background:#fef2f2}
.bf-log em{font-style:normal;font-weight:700}

/* Rapports : studio et document */
.rp-ctl .pb{display:grid;gap:12px}
.rp-types{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
.rp-type{display:grid;grid-template-columns:auto 1fr;grid-template-rows:auto auto;column-gap:10px;text-align:left;border:1px solid var(--line);background:var(--card);border-radius:12px;padding:10px 12px;cursor:pointer;font-family:inherit;color:var(--ink)}
.rp-type .ic{grid-row:span 2;width:22px;height:22px;color:#4338ca;align-self:center}
.rp-type b{font-size:13.5px}
.rp-type span{font-size:11.5px;color:var(--muted)}
.rp-type.on{border-color:#4338ca;background:#eef2ff;box-shadow:inset 0 0 0 1px #4338ca}
.rp-opts{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.rp-opts label{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--line);border-radius:10px;padding:3px 4px 3px 10px;color:var(--muted)}
.rp-opts select{border:none;background:transparent;font:inherit;font-weight:700;color:var(--ink);padding:6px 4px;max-width:320px}
.rp-opts input[type=date]{font:inherit;font-weight:700;color:var(--ink);border:1px solid var(--line);border-radius:9px;padding:6px 8px;background:var(--card)}
.rp-paper{background:#fff;border:1px solid var(--line);border-radius:14px;box-shadow:0 10px 30px rgba(16,40,28,.07);margin:12px auto 30px;max-width:1040px;overflow:hidden}
.rp-cover{display:flex;gap:18px;align-items:center;background:linear-gradient(120deg,#13583a,#1a7a4c 60%,#2f9466);color:#fff;padding:24px 28px}
.rp-cover img{width:64px;height:64px;border-radius:12px;background:#fff;object-fit:contain;padding:4px;flex:0 0 auto}
.rp-cover h1{font-size:25px;line-height:1.2;margin:4px 0 6px;color:#fff;text-wrap:balance}
.rp-org{font-size:12px;opacity:.85;letter-spacing:.02em}
.rp-sub{font-size:14.5px;font-weight:600;opacity:.95}
.rp-meta{font-size:12px;opacity:.8;margin-top:6px}
.rp-sec{padding:18px 28px 8px;border-top:1px solid var(--line-2,#eef3f0)}
.rp-sec h2{display:flex;gap:10px;align-items:center;font-size:18px;color:#13583a;margin:0 0 12px}
.rp-sec h2 span{display:inline-grid;place-items:center;width:28px;height:28px;border-radius:8px;background:#e8f3ed;color:#13583a;font-size:14px;flex:0 0 auto}
.rp-sec h4{font-size:13.5px;margin:14px 0 6px;color:#1f4d3d}
.rp-sec p{margin:0 0 8px;font-size:14px;line-height:1.6;max-width:78ch}
.rp-intro{color:var(--muted)}
.rp-note{font-size:11.5px!important;color:var(--muted);font-style:italic;margin-top:4px!important}
.rp-p{margin:0 0 8px}
.rp-p[class*=rp-l-]{border-left:4px solid;padding:6px 0 4px 12px;border-radius:2px}
.rp-l-crit{border-color:#dc2626!important}.rp-l-warn{border-color:#d97706!important}.rp-l-ok{border-color:#16a34a!important}.rp-l-info{border-color:#2563eb!important}
.rp-ins{list-style:none;margin:6px 0 10px;padding:0;display:grid;gap:6px}
.rp-ins li{border-left:4px solid;background:var(--bg);border-radius:0 8px 8px 0;padding:7px 10px;font-size:13.5px;line-height:1.5}
.rp-ins li b{display:inline-block;font-size:10.5px;text-transform:uppercase;letter-spacing:.05em;margin-right:8px}
.rp-ins li.rp-l-crit b{color:#dc2626}.rp-ins li.rp-l-warn b{color:#b45309}.rp-ins li.rp-l-ok b{color:#15803d}.rp-ins li.rp-l-info b{color:#1d4ed8}
.rp-kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:8px;margin:4px 0 10px}
.rp-kpi{border:1px solid var(--line);border-radius:12px;padding:12px;background:var(--card-2,#fbfdfc)}
.rp-kpi .v{font-family:var(--font-display);font-size:24px;font-weight:800;color:#13583a;line-height:1.1;font-variant-numeric:tabular-nums}
.rp-kpi .l{font-size:12.5px;font-weight:700;margin-top:3px}
.rp-kpi .s{font-size:11.5px;color:var(--muted)}
.rp-kpi .d{display:inline-flex;gap:3px;align-items:center;font-size:11.5px;font-weight:700;margin-top:5px;padding:2px 7px;border-radius:10px}
.rp-kpi .d .ic{width:13px;height:13px}
.rp-kpi .d.good{background:#dcfce7;color:#15803d}.rp-kpi .d.bad{background:#fee2e2;color:#b91c1c}.rp-kpi .d.rp-flat{background:var(--bg);color:var(--muted)}
.rp-tw{overflow-x:auto;margin:4px 0 8px}
.rp-t{width:100%;border-collapse:collapse;font-size:13px}
.rp-t th{background:#13583a;color:#fff;text-align:left;padding:7px 8px;font-size:12px;white-space:nowrap}
.rp-t td{padding:6px 8px;border-bottom:1px solid var(--line-2,#eef3f0);vertical-align:top}
.rp-t tbody tr:nth-child(even) td{background:#f8faf9}
.rp-t.kv td:first-child{font-weight:700;width:30%;color:#1f4d3d}
.rp-tag{display:inline-block;padding:2px 8px;border-radius:10px;font-size:11.5px;font-weight:700;color:var(--tc);background:color-mix(in srgb,var(--tc) 12%,#fff);white-space:nowrap}
.rp-bars{display:grid;gap:7px;margin:6px 0}
.rp-bar{display:grid;grid-template-columns:minmax(120px,38%) 1fr 52px;gap:10px;align-items:center;font-size:12.5px}
.rp-bar i{position:relative;height:10px;background:var(--bg);border-radius:6px;display:block}
.rp-bar em{display:block;height:100%;border-radius:6px}
.rp-bar i b{position:absolute;top:-3px;width:2px;height:16px;background:#1f2937;border-radius:1px}
.rp-bar strong{text-align:right;font-variant-numeric:tabular-nums}
.rp-chart{margin:8px 0 12px}
.rp-cv{position:relative;width:100%}
.rp-list{margin:4px 0 10px;padding-left:20px;font-size:13.5px;line-height:1.6}
.rp-list li{margin:2px 0}
.rp-story{display:grid;grid-template-columns:minmax(0,220px) 1fr;gap:16px;border:1px solid var(--line);border-radius:12px;padding:14px;margin:8px 0;background:#fcfcff}
.rp-story.noimg{grid-template-columns:1fr}
.rp-story img{width:100%;border-radius:10px;object-fit:cover;aspect-ratio:4/3;max-width:100%}
.rp-story h4{color:#4338ca!important;margin-top:0!important}
.rp-story blockquote{margin:8px 0 0;padding:8px 12px;border-left:4px solid #4338ca;background:#eef2ff;font-style:italic;border-radius:0 8px 8px 0}
.rp-foot{padding:14px 28px 20px;font-size:11.5px;color:var(--muted);border-top:1px solid var(--line-2,#eef3f0)}
.rp-link{display:flex;gap:6px;flex-wrap:wrap;align-items:center}
.rp-link input{flex:1;min-width:220px;font:inherit;font-size:12.5px;padding:8px 10px;border:1px solid var(--line);border-radius:8px;background:var(--bg)}
.rp-link.off input{text-decoration:line-through;color:var(--muted)}
.rp-secs{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:6px 12px;padding:8px 10px;border:1px solid var(--line);border-radius:10px;max-height:240px;overflow:auto}
.rp-pil .pb{display:grid;gap:8px}
.rp-pil-i{margin:0;font-size:14px;line-height:1.55}
.rp-pil-r{font-size:13px;padding:8px 10px;background:#eef2ff;border-radius:9px}

/* Centre de données */
.dc-tbl td{font-size:12.5px}
.dc-tbl .erp-diff{max-width:520px}
.dc-global{display:flex;gap:14px;align-items:center;flex-wrap:wrap;border:1px solid var(--line);border-left:6px solid var(--gc);border-radius:14px;padding:14px 18px;margin:4px 0 12px;background:var(--card)}
.dc-global b{font-family:var(--font-display);font-size:44px;color:var(--gc);line-height:1}
.dc-global span{font-size:12.5px;font-weight:700;color:var(--ink-2,#33453d)}
.dc-global p{flex:1;min-width:240px;margin:0;font-size:13px}
.dc-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:12px}
.dc-grid .panel{margin:0}

@media (max-width:980px){ .rp-types{grid-template-columns:1fr} .bf-extra{grid-template-columns:auto 1fr} .bf-hist{grid-column:1/-1} }
@media (max-width:640px){
  .rp-sec,.rp-cover,.rp-foot{padding-left:16px;padding-right:16px}
  .rp-cover{flex-direction:column;align-items:flex-start}
  .rp-cover h1{font-size:20px}
  .rp-bar{grid-template-columns:1fr 52px}.rp-bar i{grid-column:1/-1;grid-row:2}
  .rp-story{grid-template-columns:1fr}
  .bf-fr{grid-template-columns:110px 1fr 56px}.bf-fr small{display:none}
  .bf-det>div{grid-template-columns:100px 1fr 38px}
  .bf-extra{grid-template-columns:1fr}
  .bf-log{grid-template-columns:44px 1fr auto}.bf-log span:nth-child(3){display:none}
  .bf-cam-guide{inset:14% 14%}
}
@media print{
  header.top,.erp-hero,.erp-tabs,.rp-ctl,.tbar,#kpis{display:none!important}
  .rp-paper{box-shadow:none;border:none;margin:0;max-width:none}
  .rp-sec h2{break-after:avoid}.rp-kpi,.rp-story,.rp-t tr{break-inside:avoid}
}

/* mobile : les fenêtres et le studio de rapports ne dépassent jamais la largeur de l’écran */
.modal>.modal-box{min-width:0}
.rp-ctl .pb>*{min-width:0}
.rp-type{min-width:0}
.rp-opts label{max-width:100%;min-width:0}
.rp-opts select{max-width:100%;min-width:0;flex:1}

/* =====================================================================================================
   Application mobile : barre d'onglets, menu, feuilles, invitation à installer, pointage automatique,
   ergonomie tactile et registres affichés en fiches sur téléphone
   ===================================================================================================== */
.mb-nav{display:none}
.mb-title{display:none}
.login-remember{display:flex;gap:9px;align-items:center;font-size:13px;color:var(--muted);margin:12px 0 2px;cursor:pointer;user-select:none}
.login-remember input{width:18px;height:18px;accent-color:var(--green);margin:0}

/* feuilles (menu complet, aide à l'installation) */
.mb-sheet-bg{position:fixed;inset:0;z-index:4200;background:rgba(10,25,18,.45);display:none;align-items:flex-end;justify-content:center}
.mb-sheet-bg.open{display:flex;animation:mbFade .18s ease}
.mb-sheet{background:var(--card);width:min(560px,100%);max-height:88vh;border-radius:18px 18px 0 0;display:flex;flex-direction:column;box-shadow:0 -10px 40px rgba(0,0,0,.25);padding-bottom:env(safe-area-inset-bottom);animation:mbUp .22s ease}
@media (min-width:761px){ .mb-sheet-bg{align-items:center} .mb-sheet{border-radius:18px;max-height:84vh} }
.mb-sheet-h{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:14px 16px;border-bottom:1px solid var(--line)}
.mb-sheet-b{overflow:auto;padding:10px 16px 18px;-webkit-overflow-scrolling:touch;overscroll-behavior:contain}
.mb-x{width:40px;height:40px;border-radius:12px;border:1px solid var(--line);background:var(--card);display:grid;place-items:center;cursor:pointer;color:var(--ink);flex:0 0 auto}
.mb-x .ic{width:18px;height:18px}
html.mb-lock{overflow:hidden}   /* sur html seulement : sur body, l'en-tête collant suivrait le contenu */
@keyframes mbUp{from{transform:translateY(26px);opacity:.6}to{transform:none;opacity:1}}
@keyframes mbFade{from{opacity:0}to{opacity:1}}
@media (prefers-reduced-motion:reduce){ .mb-sheet-bg.open,.mb-sheet{animation:none} .mb-banner{transition:none} }
.mb-me{display:flex;gap:10px;align-items:center;min-width:0}
.mb-me .avatar{width:42px;height:42px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-family:var(--font-display);font-weight:800;font-size:15px;color:#fff;background:linear-gradient(135deg,var(--green),var(--green-d));flex:0 0 auto}
.mb-me>div{display:grid;min-width:0}
.mb-me small{color:var(--muted);font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.mb-ds{font-size:11px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);margin:14px 2px 7px}
.mb-dg{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.mb-di{display:flex;gap:10px;align-items:center;text-align:left;border:1px solid var(--line);background:var(--card-2,#fbfdfc);border-radius:12px;padding:11px 12px;min-height:54px;font:inherit;font-size:13.5px;font-weight:600;color:var(--ink);cursor:pointer;-webkit-tap-highlight-color:transparent}
.mb-di svg{width:20px;height:20px;flex:0 0 auto;stroke:var(--green-d);fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.mb-di span{min-width:0;overflow-wrap:anywhere}
.mb-di.on{border-color:var(--green);background:var(--green-l);color:var(--green-d)}
.mb-dl{display:grid;gap:2px}
.mb-dl button{display:flex;gap:12px;align-items:center;border:none;background:transparent;padding:12px 6px;border-radius:10px;font:inherit;font-size:14.5px;color:var(--ink);cursor:pointer;text-align:left;min-height:48px}
.mb-dl button:active{background:var(--bg)}
.mb-dl button .ic{width:20px;height:20px;color:var(--green-d);flex:0 0 auto}
.mb-dl button.danger,.mb-dl button.danger .ic{color:#b91c1c}
.mb-foot{font-size:11.5px;color:var(--muted);text-align:center;margin-top:14px}

/* invitation à installer, mise à jour disponible */
.mb-banner{position:fixed;left:12px;right:12px;bottom:calc(16px + env(safe-area-inset-bottom));z-index:4100;display:flex;gap:12px;align-items:center;flex-wrap:wrap;background:var(--card);border:1px solid var(--line);border-radius:16px;padding:12px 14px;box-shadow:0 16px 40px rgba(16,40,28,.22);transform:translateY(160%);transition:transform .3s ease;max-width:640px;margin:0 auto}
.mb-banner.on{transform:none}
.mb-banner img{width:48px;height:48px;border-radius:12px;border:1px solid var(--line);flex:0 0 auto}
.mb-banner-t{flex:1;min-width:180px;display:grid;gap:2px}
.mb-banner-t span{font-size:12.5px;color:var(--muted)}
.mb-banner-a{display:flex;gap:8px;flex-wrap:wrap}
.mb-upd{position:fixed;top:calc(10px + env(safe-area-inset-top));left:50%;transform:translateX(-50%);z-index:4300;display:flex;gap:10px;align-items:center;background:var(--green-d);color:#fff;border-radius:12px;padding:10px 12px;box-shadow:0 12px 30px rgba(0,0,0,.25);font-size:13.5px;max-width:calc(100vw - 24px)}
.mb-upd .ic{width:18px;height:18px}
.mb-upd .btn{background:#fff;color:var(--green-d);border-color:#fff}
.mb-app-hero{display:flex;gap:12px;align-items:center;margin:4px 0 12px}
.mb-app-hero img{width:56px;height:56px;border-radius:14px;border:1px solid var(--line)}
.mb-app-hero div{display:grid}
.mb-app-hero span{font-size:13px;color:var(--muted)}
.mb-steps{padding-left:22px;line-height:1.75;font-size:14.5px;margin:6px 0}
.mb-steps .ic{width:17px;height:17px;vertical-align:-3px;color:var(--green-d)}
.mb-qr{display:grid;justify-items:center;gap:6px;margin:10px 0}
.mb-qr img{width:200px;height:200px;border:8px solid #fff;border-radius:12px;box-shadow:0 6px 20px rgba(0,0,0,.12)}
.mb-qr span{font-size:12px;color:var(--muted);word-break:break-all;text-align:center}

/* Mon espace : pointage automatique, application et notifications */
.mb-auto{display:flex;gap:10px;align-items:center;flex-wrap:wrap;border-radius:12px;padding:10px 12px;margin:10px 0;background:var(--bg);border:1px solid var(--line)}
.mb-auto>.ic{width:22px;height:22px;flex:0 0 auto}
.mb-auto>div{flex:1;min-width:190px;display:grid;gap:1px}
.mb-auto small{color:var(--muted);font-size:12px}
.mb-auto.in{background:#f0fdf4;border-color:#86efac}.mb-auto.in>.ic{color:#16a34a}
.mb-auto.out>.ic{color:#2563eb}
.mb-auto.warn{background:#fffbeb;border-color:#fcd34d}.mb-auto.warn>.ic{color:#d97706}
.mb-auto.off>.ic{color:var(--muted)}
.mb-regul{display:flex;gap:8px;align-items:center;flex-wrap:wrap;border-radius:12px;padding:10px 12px;margin:0 0 10px;background:#fef2f2;border:1px solid #fca5a5;font-size:13px}
.mb-regul>.ic{color:#dc2626;width:20px;height:20px}
.mb-regul>div{flex:1 1 80%}
.mb-regul input{font:inherit;padding:8px 10px;border:1px solid var(--line);border-radius:9px;background:var(--card);min-width:0}
.mb-regul input[type=time]{width:120px}
.mb-regul input:not([type]){flex:1;min-width:150px}
.mb-app{display:grid;gap:2px}
.mb-app-row{display:flex;gap:12px;align-items:center;flex-wrap:wrap;padding:10px 2px;border-bottom:1px solid var(--line-2,#eef3f0)}
.mb-app-row>div{flex:1;min-width:160px;display:grid;gap:1px}
.mb-app-row small{color:var(--muted);font-size:12px}
.mb-app-ic{width:38px;height:38px;border-radius:10px;background:var(--green-l);display:grid;place-items:center;flex:0 0 auto}
.mb-app-ic .ic{width:20px;height:20px;color:var(--green-d)}
.mb-prefs{display:grid;gap:7px;padding:8px 2px 10px 50px;font-size:13px}
.mb-prefs .muted{font-size:11.5px}
.mb-dev{font-size:13px}
.mb-dev summary{cursor:pointer;padding:12px 2px;font-weight:600;font-size:14px;display:flex;gap:8px;align-items:center;list-style:none}
.mb-dev summary::-webkit-details-marker{display:none}
.mb-dev summary::after{content:'';margin:0 6px 0 auto;width:7px;height:7px;border-right:2px solid var(--muted);border-bottom:2px solid var(--muted);transform:rotate(45deg);transition:transform .2s}
.mb-dev[open] summary::after{transform:rotate(-135deg)}
#mbDevices{padding:0 2px 8px}
.mb-dev summary .ic{width:18px;height:18px;color:var(--green-d)}
.mb-devr{display:flex;gap:10px;align-items:center;justify-content:space-between;padding:9px 2px;border-top:1px dashed var(--line)}
.mb-devr small{display:block;color:var(--muted);font-size:11.5px}

/* menus déroulants des derniers groupes de l'en-tête : alignés à droite, sinon (même fermés, car seulement
   transparents) ils dépassent du bord de l'écran et créent un défilement horizontal */
.hnav #navgroupErp .ng-menu,.hnav #navgroupAdmin .ng-menu{left:auto;right:0}

/* bouton de compte : la règle générique des boutons d'en-tête (38 px) couperait l'avatar et la flèche */
@media (max-width:768px){
  .top .hnav .userchip{width:auto;flex:0 0 auto}
  /* fenêtre sans boutons d'action dans l'en-tête : titre et croix de fermeture sur la même ligne */
  .modal-head:not(:has(.btn)){flex-wrap:nowrap}
  .modal-head:not(:has(.btn)) h2{flex:1 1 auto;min-width:0}
  /* fenêtre plein écran : la zone de saisie occupe toute la hauteur (barre d'actions en bas de l'écran) */
  .modal-box:has(>.tabpane){display:flex;flex-direction:column;height:100vh;height:100dvh}
  .modal-box:has(>.tabpane)>*{flex:0 0 auto}
  .modal-box:has(>.tabpane)>.tabpane{flex:1 1 auto;min-height:0;max-height:none!important;overflow:auto;overscroll-behavior:contain;padding-bottom:0}
  .modal-box:has(>.tabpane)>.tabpane>:last-child:not(.erp-savebar){margin-bottom:calc(16px + env(safe-area-inset-bottom))}
}

/* =========================================== téléphone (≤ 760 px) =========================================== */
@media (max-width:760px){
  html.mb-has-nav body{padding-bottom:calc(68px + env(safe-area-inset-bottom))}
  .mb-nav{display:grid;grid-auto-flow:column;grid-auto-columns:1fr;position:fixed;left:0;right:0;bottom:0;z-index:4000;background:rgba(255,255,255,.97);-webkit-backdrop-filter:saturate(1.4) blur(10px);backdrop-filter:saturate(1.4) blur(10px);border-top:1px solid var(--line);padding:4px 6px calc(4px + env(safe-area-inset-bottom));box-shadow:0 -4px 18px rgba(16,40,28,.08)}
  .mb-nav button{position:relative;display:grid;justify-items:center;align-content:center;gap:3px;border:none;background:transparent;color:var(--muted);font:inherit;font-size:11px;font-weight:650;padding:6px 2px;border-radius:12px;min-height:56px;cursor:pointer;-webkit-tap-highlight-color:transparent;touch-action:manipulation}
  .mb-nav button .ic{width:23px;height:23px}
  .mb-nav button:active{background:var(--bg)}
  .mb-nav button.on{color:var(--green-d)}
  .mb-nav button.on::before{content:"";position:absolute;top:1px;width:34px;height:3px;border-radius:3px;background:var(--green)}
  .mb-badge{position:absolute;top:3px;left:calc(50% + 5px);min-width:18px;height:18px;border-radius:9px;background:#dc2626;color:#fff;font-size:10.5px;line-height:18px;padding:0 5px;font-weight:800}
  .mb-dot{position:absolute;top:9px;left:calc(50% + 8px);width:9px;height:9px;border-radius:50%;background:#d97706;box-shadow:0 0 0 2px #fff}
  /* fenêtre (fiche, formulaire) ouverte : elle occupe l'écran, la barre du bas s'efface */
  body:has(.modal.open) .mb-nav{display:none}
  html.mb-has-nav body:has(.modal.open){padding-bottom:0}
  /* en-tête compact : la navigation passe dans la barre du bas et le menu complet */
  html.mb-has-nav .top .wrap{flex-wrap:nowrap;padding:8px 12px;gap:10px;min-height:56px}
  html.mb-has-nav .top .spacer{display:block;flex:1}
  html.mb-has-nav .top .hnav .navgroup,html.mb-has-nav .top .hnav>button[data-page],html.mb-has-nav .top .hnav .tools{display:none!important}
  html.mb-has-nav .top .hnav{flex:0 0 auto;width:auto;order:0;margin:0;padding:0;overflow:visible}
  html.mb-has-nav .top .logo{width:38px;height:38px}
  html.mb-has-nav .top .hnav .userchip{width:auto;padding:0 4px;margin-left:0}
  html.mb-has-nav .top .hnav .userchip .chev{display:none}
  html.mb-has-nav .brand{min-width:0}
  html.mb-has-nav .brand h1{font-size:15px}
  html.mb-has-nav .mb-title{display:block;font-size:12.5px;font-weight:700;color:var(--green-d);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:58vw;margin-top:1px}
  html.mb-has-nav header.top{padding-top:env(safe-area-inset-top)}
  html.mb-has-nav .toast-host{bottom:calc(84px + env(safe-area-inset-bottom))}
  html.mb-has-nav .mb-banner{bottom:calc(80px + env(safe-area-inset-bottom))}
  /* notifications : feuille au-dessus de la barre du bas */
  html.mb-has-nav .erp-bellm{position:fixed!important;left:8px!important;right:8px!important;top:auto!important;bottom:calc(76px + env(safe-area-inset-bottom))!important;width:auto!important;max-height:70vh!important;border-radius:16px!important;z-index:4150!important}
  /* saisie confortable, sans zoom automatique à la sélection d'un champ (iPhone) */
  input:not([type=checkbox]):not([type=radio]),select,textarea{font-size:16px!important}
  .btn{min-height:42px;touch-action:manipulation}
  .btn.xs{min-height:36px}
  button,a{-webkit-tap-highlight-color:rgba(26,122,76,.12)}
  /* registres : chaque fiche devient une carte lisible (libellé / valeur) */
  table.erp-tbl thead{display:none}
  table.erp-tbl,table.erp-tbl tbody,table.erp-tbl tr,table.erp-tbl td{display:block;width:100%}
  table.erp-tbl tr{position:relative;border:1px solid var(--line);border-radius:12px;margin:0 0 10px;padding:10px 12px 8px 16px;background:var(--card);box-shadow:var(--shadow)}
  table.erp-tbl td{display:flex;justify-content:space-between;align-items:baseline;gap:12px;border:0!important;padding:3px 0!important;text-align:right;white-space:normal;background:transparent!important;min-height:0}
  table.erp-tbl td::before{content:attr(data-l);flex:0 0 38%;text-align:left;font-size:11.5px;font-weight:600;color:var(--muted)}
  table.erp-tbl td.erp-tt{display:block;text-align:left;font-size:14.5px;padding:0 0 5px!important}
  table.erp-tbl td.erp-tt::before,table.erp-tbl td.erp-sev::before{content:none}
  table.erp-tbl td.erp-sev{position:absolute;left:0;top:0;bottom:0;width:5px!important;padding:0!important;border-radius:12px 0 0 12px}
  .cockpit-wrap:has(>table.erp-tbl){overflow:visible;border:0;background:transparent;box-shadow:none;padding:0}
  /* fenêtres (fiches) : barre d'actions toujours visible en bas */
  .erp-savebar{position:sticky;bottom:0;z-index:3;background:var(--bg);margin:0 -14px;padding:10px 14px calc(10px + env(safe-area-inset-bottom));border-top:1px solid var(--line)}
  .erp-savebar .btn{flex:1 1 auto}
  /* vue d'ensemble : grilles sans débordement */
  .ov-cols{grid-template-columns:minmax(0,1fr)!important}
  .ov-cols>*,.dash-grid>*,.grid>*,.two>*{min-width:0}
  .erp-hero{margin:12px 0 10px}
  .erp-tabs{margin:0 -12px;padding:2px 12px 10px}
}
/* application installée : respect des zones système (encoche, barre d'état) */
html.is-standalone header.top{padding-top:env(safe-area-inset-top)}

/* ================================ ÉCHANGES : actualités, messagerie, guichet ================================ */
.linklike{background:none;border:0;padding:0;margin:0;color:var(--green-d);font:inherit;cursor:pointer;text-align:left}
.linklike:hover{text-decoration:underline}
/* fichiers privés (champs de fiche) */
.pf{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:6px}
.pf-chip{display:flex;align-items:center;gap:8px;border:1px solid var(--line);border-radius:10px;padding:5px 8px;background:var(--card);max-width:100%;min-width:0}
.pf-thumb img{width:44px;height:44px;object-fit:cover;border-radius:7px;display:block}
.pf-name{display:flex;align-items:center;gap:6px;min-width:0;color:var(--ink);text-decoration:none;font-size:13px}
.pf-name span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:220px}
.pf-name small{color:var(--muted);font-size:11px;white-space:nowrap}
.pf-name .ic{width:16px;height:16px;color:var(--green-d);flex:0 0 auto}
.pf-wait{font-size:12.5px;color:var(--muted);display:flex;align-items:center;gap:6px}
.pf-wait .ic{width:15px;height:15px;animation:gkspin 1s linear infinite}
@keyframes gkspin{to{transform:rotate(360deg)}}
/* fil des actualités */
.com-ackbar{display:flex;align-items:center;gap:12px;flex-wrap:wrap;border:1px solid #fcd34d;background:#fffbeb;border-radius:14px;padding:10px 14px;margin:0 0 12px}
.com-ackbar>.ic{color:#d97706;width:22px;height:22px;flex:0 0 auto}
.com-ackbar>div{flex:1;min-width:180px;display:grid}
.com-ackbar span{font-size:12.5px;color:var(--muted)}
.com-drafts{display:flex;flex-wrap:wrap;gap:6px 12px;align-items:center;font-size:13px;color:var(--muted);margin:0 0 12px}
.com-drafts .ic{width:15px;height:15px}
.com-tools{display:flex;gap:10px;flex-wrap:wrap;align-items:center;margin:0 0 14px}
.com-tools .search-wrap{flex:1;min-width:200px}
.com-tools .search-wrap input{width:100%}
.com-chips{display:flex;gap:6px;flex-wrap:wrap}
.com-chips button{border:1px solid var(--line);background:var(--card);border-radius:999px;padding:6px 12px;font:inherit;font-size:12.5px;font-weight:600;color:var(--ink-2);cursor:pointer}
.com-chips button.on{background:#7c3aed;border-color:#7c3aed;color:#fff}
.com-feed{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:14px;align-items:start}
.com-card{background:var(--card);border:1px solid var(--line);border-radius:16px;overflow:hidden;cursor:pointer;box-shadow:var(--shadow);transition:transform .15s,box-shadow .15s;display:flex;flex-direction:column;min-width:0}
.com-card:hover{transform:translateY(-2px);box-shadow:0 14px 34px rgba(16,40,28,.12)}
.com-card:focus-visible{outline:3px solid #c4b5fd;outline-offset:2px}
.com-card.unread{border-color:#c4b5fd}
.com-card.pinned{border-top:4px solid #7c3aed}
.com-cover{aspect-ratio:16/9;background:#f1f5f9;overflow:hidden}
.com-cover img{width:100%;height:100%;object-fit:cover;display:block}
.com-cbody{padding:12px 14px;display:grid;gap:6px}
.com-cbody h3{margin:0;font-size:16px;line-height:1.3;color:var(--ink)}
.com-cbody p{margin:0;font-size:13.5px;color:var(--ink-2);line-height:1.45;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.com-meta{display:flex;gap:6px;align-items:center;flex-wrap:wrap}
.com-type{display:inline-flex;align-items:center;gap:5px;font-size:11.5px;font-weight:700;color:var(--tc);background:color-mix(in srgb,var(--tc) 12%,#fff);border-radius:999px;padding:3px 9px}
.com-type .ic{width:13px;height:13px}
.com-new{font-size:10.5px;font-weight:800;color:#fff;background:#7c3aed;border-radius:999px;padding:2px 8px;text-transform:uppercase;letter-spacing:.04em}
.com-urg,.com-imp{font-size:10.5px;font-weight:800;border-radius:999px;padding:2px 8px;text-transform:uppercase;letter-spacing:.04em;color:#fff;background:#dc2626}
.com-imp{background:#d97706}
.com-pin .ic{width:14px;height:14px;color:#7c3aed}
.com-foot{display:flex;gap:6px 12px;flex-wrap:wrap;align-items:center;font-size:12px;color:var(--muted);margin-top:2px}
.com-stats{margin-left:auto;display:inline-flex;align-items:center;gap:4px}
.com-stats .ic,.com-ack .ic{width:14px;height:14px}
.com-ack{display:inline-flex;align-items:center;gap:4px;font-weight:700}
.com-ack.need{color:#d97706}
.com-ack.ok{color:var(--green-d)}
/* lecteur de publication */
.com-reader{max-width:760px}
.com-rbody{padding-bottom:12px}
.com-rcover{width:calc(100% + 40px);margin:-18px -20px 14px;max-height:340px;object-fit:cover;display:block}
.com-rmeta{display:flex;gap:6px 12px;flex-wrap:wrap;align-items:center;font-size:12.5px;color:var(--muted)}
.com-rtitle{font-size:24px;line-height:1.25;margin:8px 0 6px;color:var(--ink);text-wrap:balance}
.com-rchapo{font-size:16px;font-weight:600;color:var(--ink-2);line-height:1.5;margin:0 0 12px}
.com-rtext{font-size:15px;line-height:1.65;color:var(--ink);max-width:68ch}
.com-rtext p{margin:0 0 12px}
.com-rtext ul,.com-rtext ol{margin:0 0 12px;padding-left:22px}
.com-rtext li{margin:3px 0}
.com-rtext h4{font-size:16px;margin:16px 0 6px}
.com-rtext a{color:var(--green-d);word-break:break-word}
.com-rfiles{margin:16px 0 4px;display:grid;gap:8px}
.com-ackbox{display:flex;gap:12px;align-items:center;flex-wrap:wrap;margin:16px 0 4px;border:1px solid #fcd34d;background:#fffbeb;border-radius:14px;padding:12px 14px}
.com-ackbox>div{flex:1;min-width:200px;display:grid;gap:2px}
.com-ackbox span{font-size:12.5px;color:var(--muted)}
.com-ackbox .ic{width:18px;height:18px;vertical-align:-3px;color:#d97706}
.com-ackbox.ok{border-color:#86efac;background:#f0fdf4;color:var(--green-d);font-weight:600}
.com-ackbox.ok .ic{color:#16a34a}
.com-react{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin:16px 0 0;padding-top:12px;border-top:1px solid var(--line)}
.com-react button{border:1px solid var(--line);background:var(--card);border-radius:999px;padding:6px 12px;font-size:15px;cursor:pointer;min-height:38px}
.com-react button span{font-size:12.5px;font-weight:700;color:var(--muted);margin-left:2px}
.com-react button.on{border-color:#7c3aed;background:#f5f3ff}
.com-react .muted{margin-left:auto;display:inline-flex;gap:4px;align-items:center;font-size:12.5px}
.com-react .muted .ic{width:14px;height:14px}
/* statistiques de lecture */
.com-stbox{max-width:900px}
.com-stk{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px;margin:4px 0 14px}
.com-stk>div{position:relative;border:1px solid var(--line);border-radius:14px;padding:12px 14px 16px;background:var(--card);display:grid;gap:2px;overflow:hidden}
.com-stk b{font-size:22px;color:var(--ink)}
.com-stk span{font-size:12px;color:var(--muted)}
.com-stk i{position:absolute;left:0;bottom:0;height:5px;width:var(--p);background:#7c3aed;border-radius:0 3px 3px 0}
.com-sttools{margin-bottom:10px}
/* aperçu des actualités dans Mon espace */
.com-mini{display:flex;gap:10px;align-items:flex-start;width:100%;text-align:left;border:0;background:none;padding:8px 4px;border-bottom:1px dashed var(--line);cursor:pointer;font:inherit;color:var(--ink)}
.com-mini:last-of-type{border-bottom:0}
.com-mini>span:last-child{display:grid;min-width:0}
.com-mini b{font-size:13.5px}
.com-mini small{color:var(--muted);font-size:12px}
.com-mini.unread b::after{content:"";display:inline-block;width:8px;height:8px;border-radius:50%;background:#7c3aed;margin-left:6px;vertical-align:1px}
.com-mini .com-type{padding:6px}
.com-chatbtn{margin-right:8px}
/* documents du personnel */
.doc-row{align-items:center;flex-wrap:wrap}
.doc-t{flex:1;min-width:180px;display:grid}
.doc-t small{color:var(--muted);font-size:12px}
.doc-a{display:flex;gap:6px;flex-wrap:wrap}
.rhb{display:grid;gap:8px}
.rhb-row{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.2fr) auto;gap:8px;align-items:center;border:1px solid var(--line);border-radius:10px;padding:6px 8px}
.rhb-row>span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:13px}
.rhb-row small{color:var(--muted)}
.rhb-miss{border-color:#f59e0b!important;background:#fffbeb}
/* guichet des demandes */
.svc-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:12px;margin:0 0 16px}
.svc-card{display:grid;gap:4px;text-align:left;border:1px solid var(--line);background:var(--card);border-radius:16px;padding:14px;cursor:pointer;font:inherit;color:var(--ink);box-shadow:var(--shadow);transition:transform .15s,border-color .15s}
.svc-card:hover:not(:disabled){transform:translateY(-2px);border-color:#7dd3fc}
.svc-card:disabled{opacity:.55;cursor:not-allowed}
.svc-card b{font-size:15px}
.svc-card small{color:var(--muted);font-size:12.5px;line-height:1.4}
.svc-ic{width:42px;height:42px;border-radius:12px;background:#e0f2fe;display:grid;place-items:center;margin-bottom:4px}
.svc-ic .ic{width:22px;height:22px;color:#0369a1}
.svc-recv .pb{display:grid;gap:12px}
.svc-recv .pb>.btn{justify-self:start}
.svc-row{align-items:center;flex-wrap:wrap}
.svc-row .erp-line{flex:1;min-width:200px;display:grid;gap:2px}
.svc-row .erp-line small{color:var(--muted);font-size:12px}
.svc-acts{display:flex;gap:6px;flex-wrap:wrap;align-items:center}
.svc-stars{display:inline-flex;gap:2px}
.svc-stars button{border:0;background:none;padding:2px;cursor:pointer;color:#cbd5e1}
.svc-stars button .ic{width:20px;height:20px}
.svc-stars:hover button{color:#f59e0b}
.svc-stars button:hover~button{color:#cbd5e1}
.svc-stars.big button .ic{width:34px;height:34px}
.svc-stars.big button.on{color:#f59e0b}
.svc-stars.big:hover button{color:#cbd5e1}
.svc-sheet .mb-dl button span{display:grid}
.svc-sheet .mb-dl button small{display:block;font-size:11.5px;color:var(--muted);font-weight:500}
/* messagerie */
.chat-app{display:grid;grid-template-columns:minmax(260px,330px) minmax(0,1fr);height:calc(100vh - 150px);min-height:480px;border:1px solid var(--line);border-radius:18px;overflow:hidden;background:var(--card);box-shadow:var(--shadow);margin-top:6px}
.chat-side{display:flex;flex-direction:column;border-right:1px solid var(--line);min-height:0;background:var(--card)}
.chat-sh{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:12px 14px 8px}
.chat-sh h2{margin:0;font-size:17px;display:flex;align-items:center;gap:8px}
.chat-sh h2 .ic{width:20px;height:20px;color:var(--green-d)}
.chat-search{padding:0 12px 8px}
.chat-search input{width:100%;border:1px solid var(--line);border-radius:10px;padding:9px 11px;font:inherit;background:var(--bg)}
.chat-list{flex:1;overflow:auto;overscroll-behavior:contain}
.chat-note{padding:8px 14px;font-size:11.5px;border-top:1px solid var(--line);display:flex;gap:6px;align-items:center}
.chat-note .ic{width:14px;height:14px;flex:0 0 auto}
.chat-item{display:flex;gap:10px;align-items:center;width:100%;border:0;background:none;padding:10px 14px;cursor:pointer;text-align:left;font:inherit;color:var(--ink);border-bottom:1px solid #f1f5f4}
.chat-item:hover{background:#f7faf8}
.chat-item.on{background:var(--green-l)}
.chat-it{flex:1;min-width:0;display:grid;gap:1px}
.chat-it b{font-size:14px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.chat-it small{font-size:12.5px;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.chat-item.unread .chat-it b,.chat-item.unread .chat-it small{color:var(--ink);font-weight:700}
.chat-ir{display:grid;justify-items:end;gap:4px;flex:0 0 auto}
.chat-ir small{font-size:11px;color:var(--muted)}
.chat-ir em{font-style:normal;min-width:20px;height:20px;border-radius:10px;background:var(--green);color:#fff;font-size:11px;font-weight:800;display:grid;place-items:center;padding:0 5px}
.chat-ir .ic{width:14px;height:14px;color:var(--muted)}
.chat-av{width:42px;height:42px;border-radius:50%;flex:0 0 auto;display:grid;place-items:center;font-weight:800;font-size:14px;color:#fff;background:linear-gradient(135deg,var(--green),var(--green-d));position:relative}
.chat-av.grp{background:linear-gradient(135deg,#0ea5e9,#0369a1)}
.chat-av.grp .ic{width:20px;height:20px}
.chat-av.online::after{content:"";position:absolute;right:0;bottom:0;width:11px;height:11px;border-radius:50%;background:#22c55e;box-shadow:0 0 0 2px #fff}
.chat-main{display:flex;flex-direction:column;min-width:0;min-height:0;background:#f4f7f5}
.chat-placeholder{margin:auto;text-align:center;max-width:360px;padding:30px;color:var(--muted);display:grid;gap:8px;justify-items:center}
.chat-placeholder .ic{width:48px;height:48px;color:#94a3b8}
.chat-placeholder h3{margin:0;color:var(--ink)}
.chat-head{display:flex;align-items:center;gap:10px;padding:10px 14px;background:var(--card);border-bottom:1px solid var(--line)}
.chat-ht{flex:1;min-width:0;display:grid}
.chat-ht b{font-size:15px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.chat-ht small{font-size:12px;color:var(--muted)}
.chat-on{color:#16a34a;font-weight:700;font-size:12px}
.chat-back,.chat-hb{width:40px;height:40px;border-radius:12px;border:1px solid var(--line);background:var(--card);display:grid;place-items:center;cursor:pointer;color:var(--ink);flex:0 0 auto}
.chat-back{display:none}
.chat-back .ic,.chat-hb .ic{width:19px;height:19px}
.chat-msgs{flex:1;overflow:auto;overscroll-behavior:contain;padding:12px 14px 8px;display:flex;flex-direction:column;gap:2px}
.chat-day{text-align:center;margin:10px 0 6px}
.chat-day span{font-size:11.5px;font-weight:700;color:var(--muted);background:#e6ece8;border-radius:999px;padding:3px 10px;text-transform:capitalize}
.chat-sys{align-self:center;font-size:12px;color:var(--muted);background:#eef2f0;border-radius:10px;padding:4px 10px;margin:4px 0;text-align:center;max-width:90%}
.chat-row{display:flex;flex-direction:column;align-items:flex-start;max-width:100%}
.chat-row.mine{align-items:flex-end}
.chat-row.first{margin-top:6px}
.chat-who{font-size:11.5px;font-weight:700;color:#0369a1;margin:0 0 2px 10px}
.chat-bub{position:relative;max-width:min(78%,560px);background:var(--card);border:1px solid #e3e9e5;border-radius:16px;padding:7px 10px 5px;box-shadow:0 1px 1px rgba(0,0,0,.04);cursor:pointer;min-width:0}
.chat-row.mine .chat-bub{background:#dcf5e6;border-color:#bfe8cf}
.chat-row.first:not(.mine) .chat-bub{border-top-left-radius:6px}
.chat-row.first.mine .chat-bub{border-top-right-radius:6px}
.chat-text{font-size:14.5px;line-height:1.45;overflow-wrap:anywhere;color:var(--ink)}
.chat-text a{color:#0369a1}
.chat-time{display:flex;gap:3px;align-items:center;justify-content:flex-end;font-size:10.5px;color:var(--muted);margin-top:2px}
.chat-tick .ic{width:15px;height:15px;color:#94a3b8}
.chat-tick.seen .ic{color:#0ea5e9}
.chat-quote{border-left:3px solid var(--green);background:rgba(0,0,0,.04);border-radius:8px;padding:4px 8px;margin:0 0 5px;display:grid;font-size:12.5px}
.chat-quote b{color:var(--green-d);font-size:12px}
.chat-quote span{color:var(--muted);overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}
.chat-imgw{display:block;margin:-2px -4px 4px}
.chat-img{max-width:100%;width:280px;max-height:320px;object-fit:cover;border-radius:12px;display:block}
.chat-audio{width:260px;max-width:100%;display:block;margin:2px 0}
.chat-video{width:280px;max-width:100%;border-radius:12px;display:block}
.chat-file{display:flex;gap:8px;align-items:center;text-decoration:none;color:var(--ink);background:rgba(0,0,0,.04);border-radius:10px;padding:8px 10px;margin:0 0 3px;min-width:0}
.chat-file .ic{width:22px;height:22px;color:var(--green-d);flex:0 0 auto}
.chat-file span{display:grid;min-width:0}
.chat-file b{font-size:13px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.chat-file small{font-size:11px;color:var(--muted)}
.chat-del{font-size:13px;color:var(--muted)}
.chat-del .ic{width:13px;height:13px;vertical-align:-2px}
.chat-older{align-self:center;border:1px solid var(--line);background:var(--card);border-radius:999px;padding:5px 12px;font:inherit;font-size:12.5px;cursor:pointer;margin:4px 0 8px}
.chat-empty{margin:auto;text-align:center;color:var(--muted);display:grid;gap:8px;justify-items:center;padding:24px}
.chat-empty .ic{width:34px;height:34px;color:#cbd5e1}
.chat-empty p{margin:0}
.chat-reply{display:flex;gap:10px;align-items:center;padding:8px 12px;background:var(--card);border-top:1px solid var(--line)}
.chat-reply>.ic{width:18px;height:18px;color:var(--green-d)}
.chat-reply>div{flex:1;min-width:0;display:grid;font-size:12.5px}
.chat-reply span{color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.chat-reply button{border:0;background:none;cursor:pointer;color:var(--muted)}
.chat-comp{display:flex;gap:8px;align-items:flex-end;padding:8px 10px;background:var(--card);border-top:1px solid var(--line)}
.chat-att{width:42px;height:42px;border-radius:50%;display:grid;place-items:center;cursor:pointer;color:var(--muted);flex:0 0 auto}
.chat-att:hover{background:var(--bg);color:var(--green-d)}
.chat-att .ic{width:21px;height:21px}
#chatInput{flex:1;min-width:0;resize:none;border:1px solid var(--line);border-radius:21px;padding:10px 14px;font:inherit;font-size:15px;line-height:1.35;max-height:140px;background:var(--bg);outline:none}
#chatInput:focus{border-color:var(--green);background:#fff}
.chat-send{width:44px;height:44px;border-radius:50%;border:0;background:linear-gradient(135deg,var(--green),var(--green-d));color:#fff;display:grid;place-items:center;cursor:pointer;flex:0 0 auto}
.chat-send:disabled{opacity:.6}
.chat-send .ic{width:19px;height:19px}
.chat-inactive{padding:12px 14px;background:#fef2f2;color:#b91c1c;font-size:13px;display:flex;gap:8px;align-items:center;border-top:1px solid #fecaca}
.chat-inactive .ic{width:16px;height:16px}
.chat-menu{position:fixed;z-index:5200;background:var(--card);border:1px solid var(--line);border-radius:12px;box-shadow:0 16px 40px rgba(0,0,0,.18);padding:4px;display:grid;min-width:150px}
.chat-menu button{display:flex;gap:8px;align-items:center;border:0;background:none;padding:9px 12px;border-radius:8px;font:inherit;font-size:14px;cursor:pointer;color:var(--ink);text-align:left}
.chat-menu button:hover{background:var(--bg)}
.chat-menu button.danger{color:#dc2626}
.chat-menu .ic{width:16px;height:16px}
.chat-sheet .mb-sheet-b{padding-top:6px}
.chat-pick-top{display:grid;gap:8px;margin:0 0 8px}
.chat-pick-top input{width:100%}
.chat-gmode{display:flex;gap:8px;align-items:center;font-size:13.5px;font-weight:600}
.chat-gbar{display:flex;gap:8px;align-items:center;margin:0 0 8px;flex-wrap:wrap}
.chat-gbar input{flex:1;min-width:160px}
.chat-people{display:grid}
.chat-person{display:flex;gap:10px;align-items:center;width:100%;border:0;background:none;padding:8px 4px;border-bottom:1px solid #f1f5f4;text-align:left;font:inherit;color:var(--ink);cursor:pointer}
.chat-person:hover,.chat-person.on{background:#f7faf8}
.chat-person .chat-av{width:38px;height:38px;font-size:13px}
.chat-ck{width:24px;height:24px;border-radius:50%;border:2px solid var(--line);display:grid;place-items:center;flex:0 0 auto}
.chat-person.on .chat-ck{background:var(--green);border-color:var(--green);color:#fff}
.chat-ck .ic{width:14px;height:14px}
@media (max-width:760px){
  .com-feed{grid-template-columns:minmax(0,1fr)}
  .com-rtitle{font-size:21px}
  .com-rcover{width:calc(100% + 28px);margin:-14px -14px 12px}
  .svc-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
  .svc-card{padding:12px}
  .svc-card small{display:none}
  .rhb-row{grid-template-columns:minmax(0,1fr) auto}
  .rhb-row select{grid-column:1/-1;grid-row:2}
  /* messagerie : liste en plein écran ; la conversation s'ouvre par-dessus, avec son propre en-tête */
  .chat-app{grid-template-columns:minmax(0,1fr);height:auto;min-height:0;border:0;border-radius:0;box-shadow:none;background:transparent;margin:0 -12px}
  .chat-side{border-right:0;background:transparent}
  .chat-sh{padding:6px 12px 8px}
  .chat-list{overflow:visible}
  .chat-item{background:var(--card)}
  .chat-main{display:none}
  .chat-app.has-thread .chat-main{display:flex;position:fixed;inset:0;z-index:3900;background:#f4f7f5;padding-top:env(safe-area-inset-top)}
  .chat-back{display:grid}
  .chat-comp{padding-bottom:calc(8px + env(safe-area-inset-bottom))}
  .chat-bub{max-width:86%}
  html.chat-open .mb-nav,html.chat-open .mb-banner{display:none!important}
  html.chat-open{overflow:hidden}
  html.mb-has-nav .top .com-chatbtn{display:none!important}
  html.mb-has-nav .top .erp-bellw{margin-right:2px}
  html.mb-has-nav .top .erp-bell{width:40px;height:40px;border:0;background:transparent}
}
.svc-auto{display:flex;gap:12px;align-items:center;flex-wrap:wrap;border:1px solid var(--line);background:var(--card);border-radius:14px;padding:10px 14px;margin:0 0 12px}
.svc-auto.on{border-color:#86efac;background:#f0fdf4}
.svc-auto>.ic{width:22px;height:22px;color:#d97706;flex:0 0 auto}
.svc-auto.on>.ic{color:#16a34a}
.svc-auto>div{flex:1;min-width:200px;display:grid;gap:2px}
.svc-auto span{font-size:12.5px;color:var(--muted)}
.modal-box>.erp-savebar{margin:0}
.com-tools input{border:1px solid var(--line);border-radius:12px;padding:10px 12px;font:inherit;background:var(--card)}
/* en-tête d'ordinateur trop chargé (comFitHeader) : libellés secondaires masqués, info-bulles conservées */
header.top.hn-compact .brand p{display:none}
header.top.hn-compact .hnav>button[data-page] span:not(.alert-badge){display:none}
header.top.hn-compact .hnav>button[data-page]{padding-left:10px;padding-right:10px}
header.top.hn-compact .hnav .userchip .who{display:none}
header.top.hn-compact2 .hnav .navgroup>.ng-toggle span.ng-label{display:none}
header.top.hn-compact2 .hnav .navgroup>.ng-toggle{padding:0 9px}
header.top.hn-compact2 .hnav .navgroup .ng-badge{right:6px}
.chat-gmode{justify-content:flex-start;cursor:pointer}
.chat-gmode input{width:18px!important;height:18px;flex:0 0 auto;margin:0;accent-color:var(--green)}
.chat-pick-top input.fsel,.chat-gbar input.fsel,.svc-sheet .fsel,#svcRate textarea,#svcTr .fsel{border:1px solid var(--line);border-radius:12px;padding:10px 12px;font:inherit;background:var(--card);width:100%}
/* messages vocaux */
.chat-mic{width:42px;height:42px;border-radius:50%;border:0;background:none;display:grid;place-items:center;cursor:pointer;color:var(--muted);flex:0 0 auto}
.chat-mic:hover{background:var(--bg);color:var(--green-d)}
.chat-mic .ic{width:21px;height:21px}
.chat-comp{position:relative}
.chat-rec{position:absolute;inset:0;display:flex;align-items:center;gap:10px;padding:8px 12px;background:var(--card);z-index:2}
.chat-rec[hidden]{display:none}
.chat-rec>span:nth-child(2){flex:1;font-size:14px;color:var(--ink)}
.chat-recdot{width:12px;height:12px;border-radius:50%;background:#dc2626;animation:gkblink 1s ease-in-out infinite}
@keyframes gkblink{50%{opacity:.25}}
.chat-voice{display:flex;align-items:center;gap:6px}
.chat-voice>.ic{width:18px;height:18px;color:var(--green-d);flex:0 0 auto}
@media (max-width:760px){ .chat-rec{padding-bottom:calc(8px + env(safe-area-inset-bottom))} }
