:root{
  --bg:#F5F6F4;
  --panel:#FFFFFF;
  --panel-soft:#F8F9F7;
  --text:#202A33;
  --muted:#66717C;
  --soft:#8A949D;
  --line:#DCE1E4;
  --line-strong:#C8D0D5;
  --brand:#183B56;
  --accent:#2867A8;
  --accent-soft:#EAF1F7;
  --brass:#B98A45;
  --ok:#31735A;
  --ok-soft:#EDF6F1;
  --danger:#B4473D;
  --danger-soft:#FBF0EF;
  --warn:#A96F18;
  --warn-soft:#FBF5E9;
  --radius:10px;
  --radius-sm:7px;
  --shadow:0 8px 24px rgba(24,59,86,.08);
  --sidebar:286px;
}
*{box-sizing:border-box}
html{min-height:100%;background:var(--bg)}
body{margin:0;min-height:100%;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;background:var(--bg);color:var(--text);font-size:15px;line-height:1.5;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased}
a{color:inherit;text-decoration-thickness:.08em;text-underline-offset:.18em}
img,svg{max-width:100%}
.sr-only{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}

/* Brand */
.brand{display:inline-flex;align-items:center;gap:10px;text-decoration:none;color:var(--text);font-weight:600;letter-spacing:-.035em}
.brand-mark{width:34px;height:34px;border-radius:12px;display:inline-flex;align-items:center;justify-content:center;background:var(--brand);box-shadow:0 10px 24px rgba(17,24,39,.12);overflow:hidden;flex:none}
.brand-mark img{width:100%;height:100%;display:block}
.brand-text{font-size:20px}.brand-text span{color:var(--muted);font-weight:600}

/* Public header */
.topbar{min-height:68px;padding:0 28px;display:flex;align-items:center;justify-content:space-between;gap:18px;background:rgba(255,255,255,.86);border-bottom:1px solid var(--line);position:sticky;top:0;z-index:20;backdrop-filter:saturate(1.2) blur(10px)}
.public-nav{display:flex;gap:16px;align-items:center;flex-wrap:wrap}.public-nav a:not(.btn){text-decoration:none;color:#374151;font-weight:600;font-size:14px}
.language-switcher select{height:38px;border:1px solid var(--line);border-radius:999px;background:#fff;color:#374151;padding:0 34px 0 12px;font-weight:600;font-size:13px}

/* Logged app shell */
.app-shell{display:grid;grid-template-columns:var(--sidebar) minmax(0,1fr);min-height:100vh}
.sidebar{position:sticky;top:0;height:100vh;display:flex;flex-direction:column;gap:18px;padding:22px 16px;background:#fff;border-right:1px solid var(--line);overflow:auto}
.side-brand{padding:0 8px 12px;border-bottom:1px solid var(--line)}
.side-section{display:flex;flex-direction:column;gap:4px}.side-title{margin:0 0 6px;padding:0 10px;color:var(--soft);font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.12em}
.side-link{display:flex;align-items:center;gap:10px;min-height:40px;padding:9px 10px;border-radius:12px;color:#374151;text-decoration:none;font-weight:600;font-size:14px;transition:background .15s ease,color .15s ease,transform .15s ease}
.side-link:hover{background:#f3f4f6;color:var(--text)}.side-link.active{background:var(--accent-soft);color:#1d4ed8}.side-link.active .side-icon{background:#dbeafe;color:#1d4ed8}
.side-icon{width:24px;height:24px;border-radius:8px;display:inline-flex;align-items:center;justify-content:center;background:#f3f4f6;color:#6b7280;font-size:13px;font-weight:600;flex:none}.side-footer{margin-top:auto;display:flex;flex-direction:column;gap:10px;padding-top:12px;border-top:1px solid var(--line)}.sidebar-lang select{width:100%;border-radius:12px}.logout-link{color:#6b7280}.main-shell{min-width:0}.mobile-topbar{display:none}

/* Layout */
.container{width:100%;max-width:1180px;margin:0 auto;padding:34px 28px}.public-container{max-width:1120px;padding-top:54px}.app-container{padding-bottom:54px}
.page-head{display:flex;justify-content:space-between;align-items:flex-start;gap:20px;margin-bottom:22px}.page-head p{max-width:780px;margin-top:6px}.head-actions{display:flex;gap:10px;align-items:center;justify-content:flex-end;flex-wrap:wrap;flex:none}
.hero{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(320px,.9fr);gap:24px;align-items:center;padding:28px 0}.grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin-top:22px}.dash{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.row.three{grid-template-columns:repeat(3,minmax(0,1fr))}.row.four{grid-template-columns:repeat(4,minmax(0,1fr))}.mt{margin-top:20px}

/* Typography */
h1,h2,h3{color:var(--text);letter-spacing:-.045em;line-height:1.08}h1{font-size:clamp(32px,4vw,48px);margin:0 0 12px}h2{font-size:24px;margin:0 0 18px}h3{font-size:17px;margin:18px 0 10px}p{color:#374151;line-height:1.62}.muted{color:var(--muted);font-size:14px}.eyebrow{font-size:12px;text-transform:uppercase;letter-spacing:.14em;font-weight:600;color:var(--muted);margin:0 0 8px}

/* Cards */
.card,.feature,.stat{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow)}.card{padding:24px}.card.narrow{max-width:520px;margin:0 auto}.card.wide{width:100%;max-width:none}.feature{padding:18px}.feature p{margin-bottom:0}.table-card{overflow:auto;padding:0}.danger-card{border-color:#fecaca;background:#fffafa}

/* Stats */
.stats{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px;margin:0 0 22px}.stats.compact{grid-template-columns:repeat(4,minmax(0,1fr));margin:0}.stat{padding:17px}.stat span{display:block;font-size:30px;font-weight:600;letter-spacing:-.06em;line-height:1;margin-bottom:8px}.stat strong{display:block;font-size:14px}.stat em{display:block;color:var(--muted);font-size:12px;font-style:normal;margin-top:3px}

/* Lists */
.list{display:flex;flex-direction:column;gap:10px}.list-row{display:flex;align-items:center;justify-content:space-between;gap:14px;border:1px solid var(--line);border-radius:14px;padding:13px;background:#fff}.list-row p{margin:4px 0 0}.pill{display:inline-flex;align-items:center;border:1px solid var(--line);border-radius:999px;padding:6px 10px;font-size:12px;font-weight:600;color:#374151;background:#fff;white-space:nowrap}.mono{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12px;background:#f3f4f6;padding:4px 6px;border-radius:7px}

/* Forms */
label{display:block;font-weight:600;font-size:13px;margin:14px 0 6px;color:#374151}input[type=text],input[type=email],input[type=password],input[type=date],input[type=time],input[type=number],input[type=file],select,textarea{width:100%;border:1px solid var(--line-strong);border-radius:12px;padding:12px 13px;font-size:15px;background:#fff;color:var(--text);transition:border .12s ease,box-shadow .12s ease}textarea{resize:vertical;min-height:112px}input:focus,select:focus,textarea:focus{outline:0;border-color:#93c5fd;box-shadow:0 0 0 4px rgba(37,99,235,.12)}.check{display:flex;gap:10px;align-items:flex-start;margin:16px 0}.check input{margin-top:5px}

/* Buttons */
.btn,button{display:inline-flex;justify-content:center;align-items:center;gap:8px;border:1px solid var(--brand);background:var(--brand);color:#fff;border-radius:12px;padding:12px 16px;font-weight:600;text-decoration:none;cursor:pointer;font-size:14px;line-height:1.2;transition:transform .12s ease,background .12s ease,border .12s ease}.btn:hover,button:hover{transform:translateY(-1px)}.btn.secondary{background:#fff;color:var(--text);border-color:var(--line-strong)}.btn.secondary:hover{background:#f9fafb}.btn.small{padding:9px 12px;font-size:13px}.btn.full,button.full{width:100%;margin-top:14px}.link-button{background:transparent;color:#111827;padding:0;border:0;border-radius:0;font-size:14px;text-decoration:underline;box-shadow:none}.link-button:hover{transform:none}

/* Feedback */
.alert{padding:13px 15px;border-radius:14px;margin-bottom:18px;border:1px solid;font-weight:600}.alert.success{background:var(--ok-soft);color:var(--ok);border-color:#a7f3d0}.alert.error{background:var(--danger-soft);color:var(--danger);border-color:#fecaca}.alert.warning{background:var(--warn-soft);color:var(--warn);border-color:#fde68a}.errors{background:var(--danger-soft);border:1px solid #fecaca;border-radius:14px;padding:14px;margin-bottom:18px;color:var(--danger)}.errors ul{margin:0;padding-left:18px}

/* Tables */
table{width:100%;border-collapse:separate;border-spacing:0;min-width:760px;background:#fff}th,td{text-align:left;border-bottom:1px solid var(--line);padding:14px 15px;vertical-align:middle}th{font-size:11px;text-transform:uppercase;letter-spacing:.11em;color:var(--muted);background:#fafafa;font-weight:600}tr:last-child td{border-bottom:0}td.actions{display:flex;gap:12px;align-items:center;justify-content:flex-end}td.actions a{font-weight:600}.table-card select{min-width:150px}.table-card input[type=text]{min-width:160px}.table-card input[type=number]{min-width:110px}

/* Details / tabs / code */
.tabs{display:flex;gap:8px;margin-bottom:16px;flex-wrap:wrap}.tabs a{border:1px solid var(--line);border-radius:999px;padding:8px 12px;text-decoration:none;font-weight:600;background:#fff;color:#374151}.tabs a.active{background:var(--brand);color:#fff;border-color:var(--brand)}.details{display:grid;grid-template-columns:180px minmax(0,1fr);gap:10px 16px;margin:0}.details dt{font-weight:600;color:#374151}.details dd{margin:0;color:#111827}.doc-text{white-space:pre-wrap;background:#f9fafb;border:1px solid var(--line);border-radius:14px;padding:16px;line-height:1.55;color:#111827;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:13px;overflow:auto}.codebox{white-space:pre-wrap;background:#111827;color:#f9fafb;border-radius:14px;padding:14px;overflow:auto;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:13px;line-height:1.55}code{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;background:#f3f4f6;border:1px solid var(--line);border-radius:7px;padding:2px 5px}.is-muted{opacity:.62}.footer{text-align:center;color:var(--muted);font-size:13px;padding:30px}

@media(max-width:1100px){.app-shell{grid-template-columns:1fr}.sidebar{display:none}.mobile-topbar{display:flex;align-items:center;justify-content:space-between;gap:12px;position:sticky;top:0;z-index:20;background:rgba(255,255,255,.88);border-bottom:1px solid var(--line);padding:12px 16px;backdrop-filter:saturate(1.2) blur(10px)}.mobile-actions{display:flex;gap:8px;align-items:center}.stats{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:860px){.topbar{padding:12px 16px;align-items:center;flex-wrap:wrap}.public-nav{gap:10px}.hero,.grid,.dash,.row,.row.three,.row.four,.stats,.stats.compact{grid-template-columns:1fr}.page-head{display:block}.head-actions{margin-top:12px;justify-content:flex-start}.container{padding:24px 16px}.public-container{padding-top:34px}.card{padding:20px}td.actions{justify-content:flex-start}.details{grid-template-columns:1fr;gap:4px}h1{font-size:34px}.brand-text{font-size:18px}}
@media(max-width:560px){.mobile-actions .btn{display:none}.stats{grid-template-columns:1fr}.list-row{align-items:flex-start;flex-direction:column}.pill{white-space:normal}.language-switcher select{max-width:110px}.btn,button{width:100%}.head-actions .btn{width:100%}}

/* v18 — UI métier minimaliste */
.workflow{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:0 0 22px}.workflow-step{background:#fff;border:1px solid var(--line);border-radius:16px;padding:16px;display:flex;gap:12px;align-items:flex-start}.workflow-step.done{border-color:#bbf7d0;background:#f7fef9}.workflow-step.current{border-color:#bfdbfe;background:#f8fbff}.workflow-index{width:30px;height:30px;border-radius:10px;display:inline-flex;align-items:center;justify-content:center;background:#f3f4f6;color:#111827;font-weight:600;flex:none}.workflow-step.done .workflow-index{background:#dcfce7;color:#047857}.workflow-step.current .workflow-index{background:#dbeafe;color:#1d4ed8}.workflow-step strong{display:block;margin-bottom:3px}.workflow-step p{margin:0;color:var(--muted);font-size:13px;line-height:1.45}.record-hero{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(320px,.75fr);gap:18px;align-items:stretch;margin-bottom:20px}.record-card{background:linear-gradient(180deg,#fff,#fbfbfc);border:1px solid var(--line);border-radius:20px;box-shadow:var(--shadow);padding:26px}.record-card h1{margin-bottom:10px}.record-meta{display:flex;gap:8px;flex-wrap:wrap;margin-top:16px}.quick-panel{background:#fff;border:1px solid var(--line);border-radius:20px;box-shadow:var(--shadow);padding:20px}.quick-panel h2{font-size:18px;margin-bottom:12px}.quick-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.quick-tile{display:flex;flex-direction:column;gap:4px;border:1px solid var(--line);border-radius:14px;padding:13px;background:#fff;text-decoration:none;transition:transform .12s ease,border .12s ease,background .12s ease}.quick-tile:hover{transform:translateY(-1px);border-color:var(--line-strong);background:#fafafa}.quick-tile strong{font-size:14px}.quick-tile span{color:var(--muted);font-size:12px}.section-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:16px}.section-head h2{margin:0}.section-head p{margin:4px 0 0}.empty-state{border:1px dashed var(--line-strong);border-radius:16px;padding:22px;background:#fbfbfc;text-align:left}.empty-state strong{display:block;margin-bottom:5px}.empty-state p{margin:0 0 14px;color:var(--muted)}.badge{display:inline-flex;align-items:center;gap:6px;border-radius:999px;padding:6px 10px;font-size:12px;font-weight:600;border:1px solid var(--line);background:#fff;color:#374151;white-space:nowrap}.badge:before{content:"";width:7px;height:7px;border-radius:999px;background:#9ca3af}.badge.ok{background:var(--ok-soft);border-color:#bbf7d0;color:#047857}.badge.ok:before{background:#047857}.badge.warn{background:var(--warn-soft);border-color:#fde68a;color:#b45309}.badge.warn:before{background:#b45309}.badge.danger{background:var(--danger-soft);border-color:#fecaca;color:#b91c1c}.badge.danger:before{background:#b91c1c}.badge.info{background:var(--accent-soft);border-color:#bfdbfe;color:#1d4ed8}.badge.info:before{background:#2563eb}.metric-row{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.metric{border:1px solid var(--line);border-radius:14px;background:#fff;padding:14px}.metric span{display:block;font-size:22px;font-weight:600;letter-spacing:-.05em}.metric strong{display:block;font-size:12px;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);margin-top:5px}.timeline{position:relative;display:flex;flex-direction:column;gap:12px}.timeline-item{display:grid;grid-template-columns:28px minmax(0,1fr);gap:12px}.timeline-dot{width:14px;height:14px;border-radius:999px;background:#d1d5db;margin:5px auto 0;box-shadow:0 0 0 5px #f3f4f6}.timeline-body{border:1px solid var(--line);border-radius:14px;padding:13px;background:#fff}.timeline-body p{margin:4px 0 0}.soft-divider{height:1px;background:var(--line);margin:18px 0}.compact-actions{display:flex;gap:8px;flex-wrap:wrap}.compact-actions .btn{padding:9px 12px}.list-row.is-critical{border-color:#fecaca;background:#fffafa}.list-row.is-high{border-color:#fed7aa;background:#fffdf8}.list-row.is-soft{background:#fbfbfc}.two-one{display:grid;grid-template-columns:minmax(0,2fr) minmax(300px,1fr);gap:18px}.status-line{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-top:10px}.kbd{border:1px solid var(--line);border-bottom-color:var(--line-strong);border-radius:8px;background:#fff;padding:2px 7px;font-size:12px;font-weight:600;color:#374151}
@media(max-width:1100px){.workflow{grid-template-columns:repeat(2,minmax(0,1fr))}.record-hero,.two-one{grid-template-columns:1fr}.metric-row{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:640px){.workflow,.quick-grid,.metric-row{grid-template-columns:1fr}.section-head{display:block}.record-card,.quick-panel{padding:20px}}

/* v19 — navigation mobile accessible + formulaires plus propres */
.mobile-menu{position:relative;z-index:50}.mobile-menu>summary{list-style:none}.mobile-menu>summary::-webkit-details-marker{display:none}.mobile-menu-button{display:inline-flex;align-items:center;gap:9px;min-height:40px;border:1px solid var(--line-strong);background:#fff;color:#111827;border-radius:12px;padding:9px 12px;font-weight:600;font-size:13px;cursor:pointer;user-select:none;box-shadow:0 1px 2px rgba(16,18,20,.04)}.mobile-menu[open] .mobile-menu-button{background:var(--brand);border-color:var(--brand);color:#fff}.menu-lines{display:inline-flex;flex-direction:column;gap:3px;width:15px}.menu-lines span{display:block;height:2px;border-radius:999px;background:currentColor}.mobile-menu-panel{position:absolute;right:0;top:calc(100% + 10px);width:min(380px,calc(100vw - 24px));max-height:calc(100vh - 88px);overflow:auto;background:#fff;border:1px solid var(--line);border-radius:20px;box-shadow:0 24px 70px rgba(16,18,20,.18);padding:14px}.mobile-menu-panel .side-link{min-height:44px}.mobile-menu-head{display:flex;align-items:center;gap:10px;padding:6px 6px 14px;margin-bottom:12px;border-bottom:1px solid var(--line)}.mobile-menu-head strong{letter-spacing:-.035em;font-size:17px}.mobile-menu-head strong span{color:var(--muted)}.mobile-menu-section{padding:4px 0 12px}.mobile-menu-section+.mobile-menu-section{border-top:1px solid var(--line);padding-top:14px}.mobile-menu-footer{border-top:1px solid var(--line);padding-top:12px}.mobile-brand{min-width:0}.mobile-brand .brand-text{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.mobile-actions{position:relative}.form-stack{display:flex;flex-direction:column;gap:18px}.form-section{border:1px solid var(--line);border-radius:18px;background:#fff;padding:18px}.form-section.soft{background:#fbfbfc}.form-section-title{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;margin-bottom:14px;padding-bottom:12px;border-bottom:1px solid var(--line)}.form-section-title h2{font-size:17px;margin:0}.form-section-title p{margin:4px 0 0;color:var(--muted);font-size:13px}.field-help{margin:6px 0 0;color:var(--muted);font-size:12px;line-height:1.4}.form-actions{display:flex;gap:10px;align-items:center;justify-content:flex-end;margin-top:4px;padding-top:16px;border-top:1px solid var(--line)}.form-stack label:first-child{margin-top:0}.card.wide form:not(.form-stack){display:flex;flex-direction:column;gap:4px}.card.wide form:not(.form-stack) hr{border:0;border-top:1px solid var(--line);width:100%;margin:16px 0 6px}.card.wide form:not(.form-stack) h2{font-size:18px;margin:8px 0 0}input[required]+.field-help:before,select[required]+.field-help:before{content:"Obligatoire · ";font-weight:600;color:#374151}.mobile-bottom-space{height:calc(env(safe-area-inset-bottom,0px) + 6px)}
@media(max-width:1100px){.mobile-topbar{min-height:62px}.mobile-actions{gap:10px}.app-container{padding-top:22px}.mobile-menu-panel .side-title{padding-left:6px}.mobile-menu-panel .side-link.active{background:var(--accent-soft)}}
@media(max-width:720px){.form-section{padding:16px;border-radius:16px}.form-section-title{display:block}.form-actions{position:sticky;bottom:0;z-index:10;background:rgba(255,255,255,.94);backdrop-filter:saturate(1.2) blur(10px);margin:6px -16px -16px;padding:12px 16px;border-top:1px solid var(--line);border-radius:0 0 16px 16px}.form-actions .btn,.form-actions button{width:100%}.mobile-menu-panel{right:-2px}.mobile-lang select{max-width:84px}.mobile-menu-button span:last-child{display:none}.mobile-menu-button{padding:9px 11px}.brand-mark{width:30px;height:30px;border-radius:10px}.brand-text{font-size:17px}}
@media(max-width:420px){.mobile-topbar{padding:10px 12px}.mobile-actions{gap:6px}.mobile-menu-panel{width:calc(100vw - 16px);right:-4px}.mobile-lang select{max-width:72px;padding-left:10px;padding-right:24px}.mobile-brand .brand-text{max-width:150px}}


/* v20 — démarrage guidé + aide métier */
.onboarding-hero{display:flex;align-items:center;justify-content:space-between;gap:24px;background:linear-gradient(135deg,#fff,#f8fbff)}
.progress-ring{--progress:0;width:118px;height:118px;border-radius:999px;display:flex;align-items:center;justify-content:center;background:conic-gradient(var(--brand) calc(var(--progress)*1%),#e5e7eb 0);position:relative;flex:none}
.progress-ring:before{content:"";position:absolute;inset:10px;background:#fff;border-radius:inherit;box-shadow:inset 0 0 0 1px var(--line)}
.progress-ring span{position:relative;font-size:24px;font-weight:600;letter-spacing:-.055em;color:var(--text)}
.onboarding-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.onboarding-step{display:grid;grid-template-columns:44px minmax(0,1fr);gap:14px;background:#fff;border:1px solid var(--line);border-radius:18px;padding:18px;box-shadow:var(--shadow)}.onboarding-step.done{background:#f7fef9;border-color:#bbf7d0}.onboarding-step.todo{background:#fff}.onboarding-number{width:38px;height:38px;border-radius:13px;display:flex;align-items:center;justify-content:center;background:#f3f4f6;color:#111827;font-weight:600}.onboarding-step.done .onboarding-number{background:#dcfce7;color:#047857}.onboarding-step h2{font-size:18px;margin:0 0 6px}.onboarding-step p{margin:0 0 14px;color:var(--muted)}.warn-card{border-color:#fde68a;background:#fffdf4}.clean-list{margin:0;padding-left:18px}.clean-list li+li{margin-top:8px}.ordered-plan{display:grid;gap:12px;margin:0;padding:0;list-style:none}.ordered-plan li{display:grid;gap:3px;border:1px solid var(--line);border-radius:14px;padding:13px;background:#fff}.ordered-plan span{color:var(--muted);font-size:13px}.quick-grid.one-col{grid-template-columns:1fr}.help-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.help-flow{display:flex;gap:8px;flex-wrap:wrap;margin:10px 0 14px}.help-flow span{display:inline-flex;border:1px solid var(--line);border-radius:999px;background:#fff;padding:7px 10px;font-weight:600;font-size:13px}.glossary-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.glossary-item{border:1px solid var(--line);border-radius:14px;padding:14px;background:#fff}.glossary-item strong{display:block;margin-bottom:5px}.glossary-item p{margin:0;color:var(--muted);font-size:14px}.checklist-lite{display:grid;gap:10px}.checklist-lite label{display:flex;gap:10px;align-items:flex-start;border:1px solid var(--line);border-radius:12px;padding:12px;background:#fff;color:#374151;font-weight:600}.checklist-lite input{margin-top:4px}
@media(max-width:860px){.onboarding-hero{display:block}.progress-ring{margin-top:18px}.onboarding-grid,.help-grid,.glossary-grid{grid-template-columns:1fr}}
@media(max-width:560px){.progress-ring{width:104px;height:104px}.onboarding-step{grid-template-columns:1fr}.onboarding-number{width:34px;height:34px}}

/* v21 — recherche globale */
.global-search{display:grid;grid-template-columns:minmax(0,1fr) 40px;gap:8px;align-items:center}
.global-search input{height:42px;border-radius:13px;border:1px solid var(--line);background:#fff;padding:0 12px;font-size:14px;min-width:0;width:100%}
.global-search input:focus{outline:2px solid rgba(37,99,235,.15);border-color:#93c5fd}
.global-search button{height:42px;width:42px;padding:0;border-radius:13px;border:1px solid var(--line);background:#111827;color:#fff;font-weight:600;display:inline-flex;align-items:center;justify-content:center}
.sidebar-search{margin:14px 0 18px}.mobile-search{margin:12px 0 16px}.mobile-search button{width:42px}.search-page-card{padding:20px}.search-page-form{display:grid;gap:10px}.search-page-form label{font-weight:600;color:#111827}.search-input-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;align-items:center}.search-input-row input[type=search]{min-height:48px;font-size:16px}.form-help{margin:0;color:var(--muted);font-size:13px}.search-summary{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.search-results-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.search-group-card{padding:20px}.search-group-icon{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:10px;background:#f3f4f6;margin-right:8px;font-size:14px}.search-result-list{display:grid;gap:9px}.search-result-item{display:flex;justify-content:space-between;align-items:center;gap:12px;border:1px solid var(--line);border-radius:14px;padding:13px;background:#fff;text-decoration:none;transition:background .12s ease,border .12s ease,transform .12s ease}.search-result-item:hover{background:#fafafa;border-color:var(--line-strong);transform:translateY(-1px)}.search-result-main{min-width:0;display:grid;gap:3px}.search-result-main strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.search-result-main em{color:var(--muted);font-size:13px;font-style:normal;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
@media(max-width:900px){.search-results-grid{grid-template-columns:1fr}.search-input-row{grid-template-columns:1fr}.search-input-row .btn{width:100%}}
@media(max-width:560px){.sidebar-search{display:none}.mobile-search{display:grid}.global-search input{height:40px}.global-search button{height:40px}}

/* v22 — centre de priorités */
.priority-stats .stat-danger{border-color:#fecaca;background:#fffafa}.priority-stats .stat-warn{border-color:#fde68a;background:#fffdf4}
.priority-advice{display:flex;align-items:center;justify-content:space-between;gap:18px}.priority-advice h2{margin-bottom:6px}.priority-advice p{margin:0}.priority-list-card{overflow:hidden}.priority-feed{display:grid;gap:10px}.priority-feed.compact{margin-top:14px}.priority-item{display:grid;grid-template-columns:14px minmax(0,1fr) auto;gap:12px;align-items:center;border:1px solid var(--line);border-radius:15px;background:#fff;padding:14px;text-decoration:none;transition:transform .12s ease,border .12s ease,background .12s ease}.priority-item:hover{transform:translateY(-1px);border-color:var(--line-strong);background:#fbfbfc}.priority-item.danger{border-color:#fecaca;background:#fffafa}.priority-item.warn{border-color:#fde68a;background:#fffdf4}.priority-item.info{border-color:var(--line)}.priority-dot{width:10px;height:10px;border-radius:999px;background:#93c5fd}.priority-item.danger .priority-dot{background:#ef4444}.priority-item.warn .priority-dot{background:#f59e0b}.priority-main{min-width:0;display:grid;gap:4px}.priority-topline{display:flex;align-items:center;gap:10px;min-width:0}.priority-topline strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.priority-topline em{font-style:normal;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.11em;color:var(--muted);flex:none}.priority-meta{color:var(--muted);font-size:13px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.priority-date{display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--line);border-radius:999px;background:#fff;padding:7px 10px;color:#374151;font-size:12px;font-weight:600;white-space:nowrap}.priority-item.danger .priority-date{border-color:#fecaca;color:#b91c1c}.priority-item.warn .priority-date{border-color:#fde68a;color:#b45309}.priority-overview{background:linear-gradient(135deg,#fff,#fbfdff)}.priority-mini-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.priority-mini-stats span{border:1px solid var(--line);border-radius:14px;background:#fff;padding:11px 12px;color:var(--muted);font-size:13px}.priority-mini-stats strong{display:block;color:#111827;font-size:20px;line-height:1}.priority-mini-stats span.danger{border-color:#fecaca;background:#fffafa;color:#991b1b}.priority-mini-stats span.warn{border-color:#fde68a;background:#fffdf4;color:#92400e}
@media(max-width:900px){.priority-advice{display:block}.priority-advice .btn{margin-top:14px}.priority-mini-stats{grid-template-columns:repeat(2,minmax(0,1fr))}.priority-item{grid-template-columns:12px minmax(0,1fr)}.priority-date{grid-column:2;justify-self:start}.priority-topline{display:grid;gap:3px}.priority-topline strong{white-space:normal}.priority-meta{white-space:normal}}
@media(max-width:560px){.priority-mini-stats{grid-template-columns:1fr}.priority-stats{grid-template-columns:1fr}.priority-item{padding:13px}}

/* v23 — journal d'activité et traçabilité */
.activity-stats .stat-warn span { letter-spacing: -0.04em; }
.activity-filter-card .filter-grid {
    display: grid;
    grid-template-columns: minmax(220px, 1.4fr) minmax(220px, 1.2fr) minmax(220px, 1.2fr) repeat(2, minmax(150px, .8fr)) auto;
    gap: 14px;
    align-items: end;
}
.form-actions-inline {
    display: flex;
    gap: 10px;
    align-items: center;
    padding-bottom: 2px;
}
.activity-timeline {
    display: grid;
    gap: 12px;
}
.activity-item {
    position: relative;
    display: grid;
    grid-template-columns: 14px 1fr;
    gap: 14px;
    padding: 16px;
    border: 1px solid var(--line);
    border-radius: 18px;
    background: #fff;
}
.activity-item:hover {
    border-color: var(--line-strong);
    box-shadow: 0 10px 30px rgba(15, 23, 42, .05);
}
.activity-dot {
    width: 10px;
    height: 10px;
    margin-top: 7px;
    border-radius: 999px;
    background: var(--accent);
    box-shadow: 0 0 0 5px rgba(37, 99, 235, .10);
}
.activity-item.warning .activity-dot { background: var(--warn); box-shadow: 0 0 0 5px rgba(217, 119, 6, .12); }
.activity-item.danger .activity-dot { background: var(--danger); box-shadow: 0 0 0 5px rgba(220, 38, 38, .12); }
.activity-line {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px;
}
.activity-line strong { font-size: 1rem; }
.activity-line code {
    color: var(--muted);
    background: #f9fafb;
    border: 1px solid var(--line);
    border-radius: 999px;
    padding: 3px 8px;
    font-size: .78rem;
}
.activity-meta {
    display: flex;
    flex-wrap: wrap;
    gap: 8px 16px;
    margin-top: 8px;
    color: var(--muted);
    font-size: .88rem;
}
.activity-details {
    margin: 9px 0 0;
    font-size: .9rem;
}
@media (max-width: 1180px) {
    .activity-filter-card .filter-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .form-actions-inline { grid-column: 1 / -1; }
}
@media (max-width: 680px) {
    .activity-filter-card .filter-grid { grid-template-columns: 1fr; }
    .activity-item { padding: 14px; }
    .activity-meta { display: grid; gap: 5px; }
}

/* v24 — équipe */
.team-role-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
  gap: 12px;
}
.team-role-card {
  border: 1px solid var(--border);
  border-radius: 16px;
  padding: 14px;
  background: var(--surface-soft);
}
.team-role-card strong { display: block; margin-bottom: 4px; }
.actions .danger,
.link-button.danger { color: #b42318; }
.pill.danger {
  background: #fff1f0;
  color: #b42318;
  border-color: #ffccc7;
}

/* v25 — sécurité & RGPD */
.security-stats .stat-warn{border-color:#fde68a;background:#fffdf4}.security-stats .stat-danger{border-color:#fecaca;background:#fffafa}.security-advice{display:flex;align-items:center;justify-content:space-between;gap:18px}.security-advice h2{margin-bottom:6px}.security-advice p{margin:0}.security-user-list{display:grid;gap:10px}.security-user-row{display:flex;align-items:center;justify-content:space-between;gap:14px;border:1px solid var(--line);border-radius:15px;padding:13px;background:#fff}.security-user-row p{margin:3px 0 0}.security-user-meta{display:flex;align-items:center;justify-content:flex-end;gap:8px;flex-wrap:wrap}.security-filter-card{padding:0}.padded-head{padding:20px 20px 0}.security-filter-grid{display:grid;grid-template-columns:minmax(240px,1.4fr) minmax(180px,.8fr) minmax(180px,.8fr) auto;gap:14px;align-items:end;padding:0 20px 20px;border-bottom:1px solid var(--line)}.inline-update-form{display:grid;grid-template-columns:repeat(3,minmax(130px,1fr)) minmax(220px,1.8fr) auto;gap:8px;align-items:start}.inline-update-form textarea{min-height:42px}.pill.warning{background:#fff7ed;color:#9a3412;border-color:#fed7aa}.pill.success{background:#ecfdf5;color:#047857;border-color:#a7f3d0}.pill.danger{background:#fff1f0;color:#b42318;border-color:#ffccc7}.stacked-form{display:grid;gap:0}.section-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}.empty-state{padding:22px;text-align:center}.empty-state p{margin:6px 0 0;color:var(--muted)}
@media(max-width:1100px){.inline-update-form{grid-template-columns:1fr}.security-filter-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.security-user-row{display:grid}.security-user-meta{justify-content:flex-start}}
@media(max-width:700px){.security-advice{display:block}.security-advice .btn{margin-top:14px}.security-filter-grid{grid-template-columns:1fr}.security-stats{grid-template-columns:1fr}.inline-update-form select,.inline-update-form input,.inline-update-form textarea,.inline-update-form button{width:100%}}

/* v26 — sauvegardes & reprise */
.backup-discipline .codebox { margin-top: 1rem; }
.checkline { display: flex; align-items: flex-start; gap: .65rem; font-weight:600; }
.checkline input { width: auto; margin-top: .2rem; }
.form-help { color: var(--muted); font-size: .92rem; margin-top: -.35rem; }
.pill.success { background: #e7f8ef; color: #116239; border-color: #b7ebcc; }


/* v29 — file d'actions unifiée */
.action-overview{background:linear-gradient(135deg,#ffffff,#f8fbff)}
.action-stats .stat-danger{border-color:#fecaca;background:#fffafa}.action-stats .stat-warn{border-color:#fde68a;background:#fffdf4}
.action-filter-card{padding:0}.action-filter-grid{display:grid;grid-template-columns:minmax(220px,1.4fr) minmax(180px,.8fr) minmax(180px,.8fr) auto;gap:14px;align-items:end;padding:20px}.action-list-card{overflow:hidden}.action-feed{display:grid;gap:10px}.action-item{display:grid;grid-template-columns:14px minmax(0,1fr) auto;gap:13px;align-items:center;border:1px solid var(--line);border-radius:18px;background:#fff;padding:14px 15px}.action-item:hover{border-color:var(--line-strong);box-shadow:0 10px 30px rgba(15,23,42,.05)}.action-item.danger{border-color:#fecaca;background:#fffafa}.action-item.warn{border-color:#fde68a;background:#fffdf4}.action-dot{width:10px;height:10px;border-radius:999px;background:#93c5fd;box-shadow:0 0 0 5px rgba(147,197,253,.18)}.action-item.danger .action-dot{background:#ef4444;box-shadow:0 0 0 5px rgba(239,68,68,.12)}.action-item.warn .action-dot{background:#f59e0b;box-shadow:0 0 0 5px rgba(245,158,11,.14)}.action-main{min-width:0}.action-topline{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.action-topline a{color:inherit;text-decoration:none}.action-topline a:hover{text-decoration:underline}.action-main p{margin:5px 0 0}.action-side{display:flex;align-items:center;gap:10px;justify-content:flex-end}.action-inline-form{margin:0}.badge.danger{background:#fff1f0;color:#b42318;border-color:#ffccc7}.badge.warn{background:#fff7ed;color:#9a3412;border-color:#fed7aa}.badge.info{background:#eff6ff;color:#1d4ed8;border-color:#bfdbfe}
@media(max-width:1000px){.action-filter-grid{grid-template-columns:1fr 1fr}.action-filter-grid .form-actions-inline{grid-column:1/-1}.action-item{grid-template-columns:14px minmax(0,1fr)}.action-side{grid-column:2;justify-content:flex-start;flex-wrap:wrap}.action-topline{display:grid;gap:6px;align-items:start}.action-topline .badge,.action-topline .pill{justify-self:start}}
@media(max-width:640px){.action-filter-grid{grid-template-columns:1fr;padding:16px}.action-stats{grid-template-columns:1fr}.action-item{padding:13px}.action-side{display:grid;gap:8px}.action-side .priority-date{justify-self:start}}

/* v30 — menu dynamique à onglets */
.sidebar{
  gap:16px;
}
.nav-tabs-shell{
  min-height:0;
  display:flex;
  flex-direction:column;
  gap:12px;
}
.nav-tabs{
  display:grid;
  grid-template-columns:1fr;
  gap:7px;
  padding:6px;
  border:1px solid var(--line);
  border-radius:18px;
  background:#f8fafc;
}
.nav-tab{
  width:100%;
  border:0;
  border-radius:13px;
  padding:10px 11px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  background:transparent;
  color:#4b5563;
  text-align:left;
  font-weight:600;
  cursor:pointer;
  transition:background .15s ease,color .15s ease,box-shadow .15s ease,transform .15s ease;
}
.nav-tab span{
  font-size:13px;
  letter-spacing:-.02em;
}
.nav-tab small{
  color:#9ca3af;
  font-size:10px;
  font-weight:600;
  text-transform:uppercase;
  letter-spacing:.08em;
  white-space:nowrap;
}
.nav-tab:hover{
  background:#fff;
  color:#111827;
}
.nav-tab.active{
  background:#fff;
  color:#1d4ed8;
  box-shadow:0 8px 24px rgba(15,23,42,.07);
}
.nav-tab.active small{
  color:#2563eb;
}
.nav-panels{
  min-height:0;
}
.nav-panel{
  display:grid;
  gap:4px;
  animation:navPanelIn .14s ease-out;
}
.nav-panel[hidden]{display:none!important}
@keyframes navPanelIn{
  from{opacity:.55;transform:translateY(3px)}
  to{opacity:1;transform:translateY(0)}
}
.sidebar .nav-panels{
  overflow:auto;
  padding-right:2px;
}
.sidebar .nav-panel{
  padding-bottom:4px;
}
.mobile-menu-panel .nav-tabs{
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:6px;
  padding:5px;
  margin-bottom:12px;
}
.mobile-menu-panel .nav-tab{
  display:grid;
  justify-items:center;
  text-align:center;
  gap:2px;
  min-height:58px;
  padding:9px 6px;
}
.mobile-menu-panel .nav-tab small{
  display:none;
}
.mobile-menu-panel .nav-panel{
  padding-bottom:10px;
}
.mobile-menu-panel .nav-panel .side-title{
  display:none;
}
@media(max-width:1100px){
  .mobile-menu-panel .nav-tabs-shell{gap:0}
}
@media(max-width:720px){
  .mobile-menu-panel .nav-tabs{
    position:sticky;
    top:0;
    z-index:2;
    background:rgba(248,250,252,.96);
    backdrop-filter:saturate(1.2) blur(8px);
  }
  .mobile-menu-panel .nav-tab span{font-size:12px}
}
@media(max-width:420px){
  .mobile-menu-panel .nav-tab{min-height:50px;padding:8px 4px}
}

/* v32 — palette de commande */
.command-trigger {
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  min-height: 42px;
  margin: -6px 0 18px;
  padding: 0 12px;
  border: 1px solid var(--line);
  border-radius: 14px;
  background: #fff;
  color: #374151;
  font-weight:600;
  cursor: pointer;
  transition: border .12s ease, background .12s ease, transform .12s ease;
}
.command-trigger:hover {
  border-color: var(--line-strong);
  background: #fafafa;
  transform: translateY(-1px);
}
.command-trigger kbd,
.command-hints kbd {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 22px;
  height: 22px;
  padding: 0 6px;
  border: 1px solid var(--line);
  border-bottom-color: var(--line-strong);
  border-radius: 7px;
  background: #f9fafb;
  color: #4b5563;
  font-family: inherit;
  font-size: 11px;
  font-weight:600;
  box-shadow: inset 0 -1px 0 rgba(0,0,0,.04);
}
.mobile-command-button {
  width: 42px;
  height: 42px;
  border: 1px solid var(--line);
  border-radius: 14px;
  background: #fff;
  color: #111827;
  font-size: 18px;
  font-weight:600;
  cursor: pointer;
}
.command-palette[hidden] { display: none; }
.command-palette {
  position: fixed;
  inset: 0;
  z-index: 2000;
}
.command-backdrop {
  position: absolute;
  inset: 0;
  background: rgba(15, 23, 42, .42);
  backdrop-filter: blur(8px);
}
.command-dialog {
  position: relative;
  width: min(720px, calc(100vw - 28px));
  max-height: min(720px, calc(100vh - 36px));
  margin: 6vh auto 0;
  border: 1px solid rgba(255,255,255,.72);
  border-radius: 26px;
  background: rgba(255,255,255,.98);
  box-shadow: 0 34px 90px rgba(15,23,42,.26);
  overflow: hidden;
  display: grid;
  grid-template-rows: auto auto auto minmax(0, 1fr);
}
.command-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 18px;
  padding: 22px 22px 14px;
  border-bottom: 1px solid var(--line);
}
.command-head h2 {
  margin: 2px 0 0;
  font-size: 22px;
  letter-spacing: -.04em;
}
.command-close {
  width: 40px;
  height: 40px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border: 1px solid var(--line);
  border-radius: 14px;
  background: #fff;
  color: #111827;
  font-size: 24px;
  line-height: 1;
  cursor: pointer;
}
.command-input {
  width: calc(100% - 44px);
  min-height: 54px;
  margin: 18px 22px 10px;
  padding: 0 16px;
  border: 1px solid var(--line-strong);
  border-radius: 18px;
  background: #fff;
  color: #111827;
  font-size: 18px;
  font-weight:600;
  outline: none;
}
.command-input:focus {
  border-color: #93c5fd;
  box-shadow: 0 0 0 5px rgba(37, 99, 235, .12);
}
.command-hints {
  display: flex;
  flex-wrap: wrap;
  gap: 8px 14px;
  padding: 0 22px 14px;
  color: var(--muted);
  font-size: 12px;
  font-weight:600;
}
.command-hints span {
  display: inline-flex;
  align-items: center;
  gap: 4px;
}
.command-list {
  display: grid;
  gap: 8px;
  padding: 0 14px 16px;
  overflow: auto;
}
.command-result {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  padding: 14px 14px;
  border: 1px solid transparent;
  border-radius: 16px;
  color: #111827;
  text-decoration: none;
}
.command-result:hover,
.command-result.active {
  border-color: var(--line);
  background: #f8fafc;
}
.command-result-main {
  min-width: 0;
  display: grid;
  gap: 3px;
}
.command-result-main strong {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  font-size: 15px;
}
.command-result-main em {
  color: var(--muted);
  font-style: normal;
  font-size: 12px;
  font-weight:600;
  text-transform: uppercase;
  letter-spacing: .09em;
}
.command-arrow {
  width: 30px;
  height: 30px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: none;
  border: 1px solid var(--line);
  border-radius: 10px;
  background: #fff;
  color: var(--muted);
  font-weight:600;
}
.command-empty {
  margin: 0;
  padding: 22px;
  color: var(--muted);
  text-align: center;
}
.command-open body,
.command-open .app-shell {
  overflow: hidden;
}
@media (max-width: 760px) {
  .command-dialog {
    width: calc(100vw - 18px);
    max-height: calc(100vh - 18px);
    margin-top: 9px;
    border-radius: 22px;
  }
  .command-head { padding: 18px 16px 12px; }
  .command-input { width: calc(100% - 32px); margin: 14px 16px 10px; min-height: 50px; font-size: 16px; }
  .command-hints { padding: 0 16px 12px; }
  .command-list { padding: 0 10px 12px; }
  .command-result { padding: 13px 12px; }
}
@media (max-width: 560px) {
  .command-trigger { display: none; }
  .mobile-command-button { display: inline-flex; align-items: center; justify-content: center; }
  .command-hints span:first-child { display: none; }
}

/* v32 — densité visuelle globale / marges & paddings resserrés */
:root{
  --space-page:26px;
  --space-page-mobile:16px;
  --space-card:20px;
  --space-card-compact:16px;
  --space-gap:14px;
}
.sidebar{gap:14px;padding:18px 14px}.side-brand{padding:0 8px 10px}.side-footer{gap:8px;padding-top:10px}.side-link{min-height:38px;padding:8px 10px;border-radius:11px}.side-icon{width:23px;height:23px}.sidebar-search{margin:10px 0 14px}.nav-tabs{gap:6px}.nav-tab{padding:9px 8px}.nav-panel{padding-top:10px}.command-trigger{margin-top:2px}
.container{padding:var(--space-page) 24px}.public-container{padding-top:44px}.app-container{padding-bottom:42px}.page-head{gap:16px;margin-bottom:18px}.page-head p{margin-top:5px}.head-actions{gap:8px}.hero{gap:20px;padding:22px 0}.grid{gap:12px;margin-top:18px}.dash{gap:14px}.row{gap:11px}.mt{margin-top:16px}
h1{margin:0 0 10px}h2{margin:0 0 14px}h3{margin:15px 0 8px}p{margin-top:0}.eyebrow{margin-bottom:6px}.muted{line-height:1.45}
.card{padding:var(--space-card)}.feature{padding:var(--space-card-compact)}.stat{padding:14px}.stat span{font-size:28px;margin-bottom:6px}.stats{gap:10px;margin-bottom:18px}.stats.compact{gap:10px}.list{gap:8px}.list-row{gap:12px;padding:11px 12px;border-radius:13px}.pill{padding:5px 9px}.alert,.errors{padding:12px 14px;margin-bottom:14px;border-radius:13px}
label{margin:11px 0 5px}input[type=text],input[type=email],input[type=password],input[type=date],input[type=time],input[type=number],input[type=file],select,textarea{padding:11px 12px;border-radius:11px}textarea{min-height:104px}.check{margin:13px 0}.btn,button{padding:11px 14px;border-radius:11px}.btn.small{padding:8px 11px}.btn.full,button.full{margin-top:12px}
th,td{padding:12px 13px}td.actions{gap:9px}.tabs{gap:7px;margin-bottom:13px}.tabs a{padding:7px 11px}.details{gap:8px 14px}.doc-text,.codebox{padding:13px;border-radius:13px}.footer{padding:24px}
.quick-grid{gap:10px}.dashboard-actions,.dashboard-toolbar,.widget-toolbar{gap:8px}.widget-card,.dashboard-widget{padding:18px}.workflow{gap:10px;margin-bottom:18px}.workflow-step{padding:14px;border-radius:15px}.quick-action-card{padding:14px}.priority-item,.search-result-item,.action-item{padding:12px;border-radius:14px}.priority-feed,.action-feed,.search-result-list{gap:8px}.onboarding-grid,.help-grid,.glossary-grid,.search-results-grid{gap:14px}.onboarding-step{padding:15px;border-radius:16px}.glossary-item{padding:12px}.form-section{padding:18px;border-radius:17px}.form-actions{padding-top:14px}
.command-dialog{margin-top:46px}.command-head{padding:18px 20px 10px}.command-input{min-height:50px;margin:14px 20px 8px}.command-hints{padding:0 20px 12px}.command-list{gap:7px;padding:0 12px 14px}.command-result{padding:12px;border-radius:14px}
@media(max-width:1100px){.mobile-topbar{min-height:58px;padding:10px 14px}.app-container{padding-top:20px}.mobile-search{margin:10px 0 14px}.mobile-menu-panel{padding:14px}.nav-tabs-shell.mobile{gap:10px}}
@media(max-width:860px){.topbar{padding:10px 14px}.container{padding:22px var(--space-page-mobile)}.public-container{padding-top:30px}.card{padding:18px}.grid{margin-top:16px}.page-head{margin-bottom:16px}h1{font-size:32px}.table-card{margin-left:calc(var(--space-page-mobile) * -1);margin-right:calc(var(--space-page-mobile) * -1);border-radius:0;border-left:0;border-right:0}.table-card table{min-width:680px}.stat span{font-size:26px}}
@media(max-width:560px){.container{padding:18px 14px}.app-container{padding-bottom:30px}.mobile-topbar{padding:9px 12px}.card{padding:16px;border-radius:15px}.feature,.stat{padding:14px}.list-row{display:grid;gap:8px}.btn,button{width:auto}.head-actions .btn,.head-actions button{width:100%}.form-section{padding:15px}.form-actions{margin:6px -15px -15px;padding:11px 15px}.command-dialog{width:calc(100vw - 14px);max-height:calc(100vh - 14px);margin-top:7px}.command-head{padding:16px 14px 10px}.command-input{width:calc(100% - 28px);margin:12px 14px 8px}.command-list{padding:0 8px 10px}.command-result{padding:11px 10px}}

/* v32b — menu mobile complet dans la page */
.mobile-page-menu{display:none}
@media(max-width:1100px){
  .mobile-page-menu{
    display:block;
    border-bottom:1px solid var(--line);
    background:#fff;
  }
  .mobile-page-menu-inner{
    width:100%;
    max-width:1180px;
    margin:0 auto;
    padding:14px 16px 16px;
    display:grid;
    gap:14px;
  }
  .mobile-page-menu-top{
    display:grid;
    grid-template-columns:minmax(0,1fr) auto;
    gap:10px;
    align-items:center;
  }
  .mobile-page-search{margin:0}
  .mobile-page-command{
    min-height:42px;
    padding:0 12px;
    border:1px solid var(--line);
    border-radius:13px;
    background:#fff;
    color:#111827;
    display:inline-flex;
    align-items:center;
    gap:9px;
    font-weight:600;
    white-space:nowrap;
  }
  .mobile-page-command kbd{
    min-width:28px;
    height:24px;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    padding:0 7px;
    border:1px solid var(--line);
    border-radius:7px;
    background:#f9fafb;
    color:#4b5563;
    font-size:11px;
    font-weight:600;
  }
  .mobile-page-groups{
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:10px;
  }
  .mobile-page-group{
    border:1px solid var(--line);
    border-radius:16px;
    background:#fbfbfc;
    padding:10px;
  }
  .mobile-page-group-head{
    display:grid;
    gap:2px;
    padding:2px 4px 8px;
    border-bottom:1px solid var(--line);
    margin-bottom:8px;
  }
  .mobile-page-group-head strong{
    font-size:13px;
    font-weight:600;
    letter-spacing:-.02em;
  }
  .mobile-page-group-head small{
    color:var(--muted);
    font-size:11px;
    font-weight:600;
  }
  .mobile-page-links{
    display:grid;
    gap:5px;
  }
  .mobile-page-links .side-link{
    min-height:38px;
    padding:7px 8px;
    border-radius:10px;
    background:#fff;
    border:1px solid transparent;
    font-size:13px;
  }
  .mobile-page-links .side-link.active{
    border-color:#bfdbfe;
    background:var(--accent-soft);
  }
  .mobile-page-links .side-icon{
    width:22px;
    height:22px;
    border-radius:7px;
    font-size:12px;
  }
  .mobile-page-footer{
    display:flex;
    gap:10px;
    align-items:center;
    justify-content:space-between;
    padding-top:2px;
  }
  .mobile-page-lang select{height:36px;border-radius:12px}
  .mobile-page-footer .logout-link{
    min-height:36px;
    padding:7px 10px;
    border:1px solid var(--line);
    background:#fff;
  }
  .mobile-menu{display:none!important}
}
@media(max-width:820px){
  .mobile-page-groups{grid-template-columns:1fr}
  .mobile-page-group{padding:9px}
  .mobile-page-links{grid-template-columns:repeat(2,minmax(0,1fr))}
  .mobile-page-links .side-link{align-items:flex-start}
}
@media(max-width:560px){
  .mobile-page-menu-inner{padding:12px 12px 14px;gap:12px}
  .mobile-page-menu-top{grid-template-columns:1fr}
  .mobile-page-command{width:100%;justify-content:space-between}
  .mobile-page-links{grid-template-columns:1fr}
  .mobile-page-links .side-link{min-height:40px}
  .mobile-page-footer{display:grid;grid-template-columns:1fr;gap:8px}
  .mobile-page-footer .logout-link{justify-content:flex-start}
  .mobile-lang{display:none}
}

/* v32b — dernier resserrage doux des espacements */
@media(min-width:1101px){
  .container{padding-top:24px;padding-bottom:38px}
  .page-head{margin-bottom:16px}
  .card{padding:19px}
  .dash{gap:13px}
}
@media(max-width:1100px){
  .app-container{padding-top:18px}
  .page-head{margin-bottom:14px}
}

/* v33 — hotfix menu mobile : complet mais fermé par défaut */
.mobile-page-menu{display:none}
.mobile-page-menu>summary{list-style:none}
.mobile-page-menu>summary::-webkit-details-marker{display:none}
@media(max-width:1100px){
  .mobile-page-menu{
    display:block;
    border-bottom:1px solid var(--line);
    background:#fff;
  }
  .mobile-page-menu-summary{
    min-height:44px;
    display:flex;
    align-items:center;
    gap:10px;
    margin:0;
    padding:10px 14px;
    cursor:pointer;
    user-select:none;
    color:#111827;
    font-weight:600;
    border-top:1px solid var(--line);
  }
  .mobile-page-menu-summary em{
    margin-left:auto;
    color:var(--muted);
    font-size:12px;
    font-style:normal;
    font-weight:600;
  }
  .mobile-page-menu-summary .menu-lines span{transition:transform .16s ease,opacity .16s ease}
  .mobile-page-menu[open] .mobile-page-menu-summary{
    background:#f8fafc;
    border-bottom:1px solid var(--line);
  }
  .mobile-page-menu[open] .mobile-page-menu-summary .menu-lines span:nth-child(1){transform:translateY(5px) rotate(45deg)}
  .mobile-page-menu[open] .mobile-page-menu-summary .menu-lines span:nth-child(2){opacity:0}
  .mobile-page-menu[open] .mobile-page-menu-summary .menu-lines span:nth-child(3){transform:translateY(-5px) rotate(-45deg)}
  .mobile-page-menu:not([open]) .mobile-page-menu-inner{display:none!important}
}
@media(max-width:560px){
  .mobile-page-menu-summary{padding:9px 12px}
  .mobile-page-menu-summary em{display:none}
}

/* v34 — cohérence UI globale : sobre, compact, uniquement utile */
:root{
  --radius:14px;
  --radius-sm:10px;
  --shadow:0 1px 2px rgba(15,23,42,.035);
  --shadow-soft:0 8px 22px rgba(15,23,42,.045);
  --page-max:1160px;
}
body{font-size:14px;line-height:1.48;background:#f7f8fa;color:#111827}
.app-container,.public-container{max-width:var(--page-max)}
.app-container{padding-top:22px;padding-bottom:36px}
.public-container{padding-top:34px;padding-bottom:40px}

/* Page heads : même hiérarchie partout, moins de texte visuel */
.page-head{
  align-items:flex-end;
  padding-bottom:14px;
  margin-bottom:16px;
  border-bottom:1px solid var(--line);
}
.page-head h1{font-size:clamp(27px,3.1vw,38px);margin-bottom:6px;letter-spacing:-.055em}
.page-head p:not(.eyebrow){max-width:680px;margin:0;color:#596274;font-size:13px;line-height:1.45}
.page-head .eyebrow{margin-bottom:5px;color:#7b8494;font-size:11px;letter-spacing:.12em}
.head-actions{align-items:center;gap:7px}
.head-actions .btn,.head-actions button{min-height:38px}

/* Cartes : même densité et même lecture sur toutes les pages */
.card,.feature,.stat,.quick-panel,.record-card,.metric,.empty-state,.search-group-card,.activity-card,.action-filter-card,.activity-filter-card,.search-page-card,.warning-card,.warn-card,.danger-card{
  border-radius:14px;
  box-shadow:var(--shadow);
}
.card{padding:17px}
.card h2:first-child,.quick-panel h2:first-child,.record-card h2:first-child{font-size:18px;margin-bottom:10px}
.card h3:first-child{margin-top:0}
.card p:last-child,.feature p:last-child{margin-bottom:0}
.card .eyebrow + h2{margin-top:0}
.feature{padding:15px;box-shadow:none}.feature h2,.feature h3{margin-bottom:7px}.feature p{font-size:13px;color:var(--muted)}
.warning-card,.warn-card{background:#fffbeb;border-color:#fde68a}.danger-card{background:#fff7f7;border-color:#fecaca}

/* Grilles/listes : cohérence et densité */
.grid{gap:12px;margin-top:16px}.grid.two{grid-template-columns:repeat(2,minmax(0,1fr))}.dash{gap:13px}.row{gap:10px}.mt{margin-top:14px}
.stats,.metric-row,.security-stats,.action-stats,.activity-stats{gap:9px;margin-bottom:14px}
.stat,.metric{padding:13px}.stat span,.metric span{font-size:24px;line-height:1;margin-bottom:5px}.stat strong,.metric strong{font-size:13px}.stat em{font-size:11px}
.list{gap:7px}.list-row{padding:10px 11px;border-radius:12px}.list-row strong{font-size:14px}.list-row p{font-size:13px;line-height:1.35}
.empty-state{padding:15px;border:1px dashed var(--line-strong);background:#fff}.empty-state strong{display:block;margin-bottom:4px}.empty-state p{margin:0 0 10px;font-size:13px;color:var(--muted)}

/* Tableaux : moins hauts, actions lisibles */
.table-card{border-radius:14px;background:#fff}
table{font-size:13px;min-width:720px}th{font-size:10px;padding:10px 12px;background:#f9fafb}td{padding:10px 12px}td.actions{gap:8px;white-space:nowrap}td.actions form{margin:0}
.pill,.badge{min-height:24px;padding:4px 8px;font-size:11px;border-radius:999px;line-height:1.2}
.badge{display:inline-flex;align-items:center;border:1px solid var(--line);font-weight:600;background:#fff;color:#374151;white-space:nowrap}
.badge.ok,.pill.ok{background:#ecfdf5;color:#047857;border-color:#a7f3d0}.badge.danger,.pill.danger{background:#fef2f2;color:#b91c1c;border-color:#fecaca}.badge.warn,.pill.warn{background:#fffbeb;color:#b45309;border-color:#fde68a}.badge.info,.pill.info{background:#eff6ff;color:#1d4ed8;border-color:#bfdbfe}

/* Formulaires : même structure, plus court, aide discrète */
form.card,form.filters,.activity-filter-card,.action-filter-card,.search-page-card{padding:15px;background:#fff}
label{font-size:12px;margin:9px 0 4px;color:#374151}
input[type=text],input[type=email],input[type=password],input[type=date],input[type=time],input[type=number],input[type=file],select,textarea{min-height:40px;padding:9px 10px;border-radius:10px;font-size:14px}
textarea{min-height:92px}.form-help,.help-text{font-size:12px;color:var(--muted);line-height:1.4}.errors,.alert{padding:11px 12px;border-radius:12px;font-size:13px}.form-actions{display:flex;gap:8px;align-items:center;justify-content:flex-end;flex-wrap:wrap;margin-top:12px}.form-section{padding:15px;border:1px solid var(--line);border-radius:14px;background:#fff}.form-section-title{margin-bottom:10px}.form-stack{display:grid;gap:10px}
.btn,button{min-height:38px;padding:9px 12px;border-radius:10px;font-size:13px}.btn.small{min-height:32px;padding:7px 10px}.btn.secondary{border-color:var(--line-strong)}.btn.danger,button.danger{background:var(--danger);border-color:var(--danger)}

/* Pages de détail : fiche + actions, pas de décoration inutile */
.record-hero{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(280px,.75fr);gap:13px;margin-bottom:13px}.record-card{padding:17px;background:#fff;border:1px solid var(--line)}.record-card h1{font-size:clamp(28px,3.2vw,40px);margin-bottom:6px}.record-card p{margin:0;color:#4b5563}.record-meta{display:flex;gap:7px;flex-wrap:wrap;margin-top:12px}.quick-panel{padding:15px;border:1px solid var(--line);background:#fff}.quick-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.quick-grid.one-col{grid-template-columns:1fr}.quick-tile{min-height:auto;padding:11px;border:1px solid var(--line);border-radius:12px;background:#fbfbfc;text-decoration:none}.quick-tile strong{display:block;font-size:13px}.quick-tile span{display:block;margin-top:2px;font-size:12px;color:var(--muted)}
.details{grid-template-columns:160px minmax(0,1fr);font-size:13px}.details dt{color:#4b5563}.details dd{color:#111827}.doc-text,.codebox{font-size:12px;padding:12px;border-radius:12px}

/* Flux : priorités, actions, activité, recherche */
.priority-item,.action-item,.activity-item,.search-result-item{padding:11px;border-radius:12px;border:1px solid var(--line);background:#fff}.priority-feed,.action-feed,.activity-timeline,.search-result-list{gap:7px}.action-topline,.activity-line{gap:6px}.action-main p,.activity-meta,.search-result-item p{font-size:12px;line-height:1.35;color:var(--muted)}.search-results-grid{gap:12px}.search-group-card{padding:15px}.search-input-row{gap:8px}

/* Dashboard : information utile d'abord */
.dashboard-toolbar{padding:13px;border-radius:14px;background:#fff;box-shadow:var(--shadow)}.dashboard-toolbar strong{font-size:14px}.dashboard-toolbar p{font-size:12px}.dashboard-widget .section-head{margin-bottom:10px}.dashboard-widget .section-head h2{font-size:17px;margin:0}.dashboard-widget .section-head p{font-size:12px;margin:3px 0 0}.workflow{gap:8px}.workflow-step{padding:11px;border-radius:13px}.workflow-step p{font-size:12px}.dashboard-actions{gap:8px}.quick-action-card{padding:12px;border-radius:13px}.quick-action-card strong{font-size:13px}.quick-action-card span{font-size:12px;color:var(--muted)}

/* Onboarding/aide/import : blocs plus sobres */
.onboarding-hero{padding:16px}.onboarding-grid,.help-grid,.glossary-grid{gap:12px}.onboarding-step,.glossary-item{padding:13px;border-radius:13px}.onboarding-step h2,.glossary-item strong{font-size:15px}.onboarding-step p,.glossary-item p,.help-flow p{font-size:13px}.ordered-plan{padding-left:18px}.clean-list{padding-left:18px}

/* Navigation : moins massive, menu mobile fermé proprement */
.sidebar{padding:16px 12px}.side-link{min-height:36px;padding:7px 9px;font-size:13px}.side-title{font-size:10px;margin-bottom:4px}.brand-mark{width:30px;height:30px;border-radius:10px}.brand-text{font-size:18px}.nav-tabs{border-radius:14px;padding:5px}.nav-tab{padding:8px;border-radius:10px}.nav-tab span{font-size:12px}.nav-tab small{font-size:9px}.command-trigger{min-height:38px;margin:0 0 12px}
.mobile-page-menu-summary{min-height:42px}.mobile-page-menu-inner{box-shadow:inset 0 1px 0 var(--line)}

/* Responsive : sur mobile, une seule colonne et actions sous le contenu */
@media(max-width:1100px){
  .app-container{padding-top:16px}.container{padding-left:16px;padding-right:16px}.mobile-topbar{min-height:56px}.mobile-page-menu-inner{padding:12px 14px 14px}.mobile-page-links .side-link{font-size:13px}.mobile-page-group-head small{display:none}
}
@media(max-width:900px){
  .page-head{display:grid;align-items:start;gap:10px}.head-actions{justify-content:flex-start}.dash,.grid.two,.record-hero{grid-template-columns:1fr}.stats,.metric-row,.security-stats,.action-stats,.activity-stats{grid-template-columns:repeat(2,minmax(0,1fr))}.quick-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.details{grid-template-columns:1fr;gap:2px}.details dt{margin-top:8px}.details dd{padding-bottom:4px;border-bottom:1px solid var(--line)}
}
@media(max-width:620px){
  .container{padding:14px 12px}.app-container{padding-bottom:26px}.page-head{padding-bottom:11px;margin-bottom:12px}.page-head h1{font-size:26px}.page-head p:not(.eyebrow){font-size:12px}.head-actions{display:grid;grid-template-columns:1fr;width:100%}.head-actions .btn,.head-actions button{width:100%}.card{padding:14px}.stats,.metric-row,.security-stats,.action-stats,.activity-stats{grid-template-columns:1fr}.quick-grid{grid-template-columns:1fr}.row,.row.three,.row.four{grid-template-columns:1fr}.table-card{margin-left:-12px;margin-right:-12px;border-radius:0;border-left:0;border-right:0}.table-card table{min-width:650px}td.actions{display:flex;justify-content:flex-start}.form-actions{display:grid;grid-template-columns:1fr}.form-actions .btn,.form-actions button{width:100%}.public-nav{gap:8px}.public-lang{display:none}.topbar{min-height:58px}.hero{grid-template-columns:1fr;padding:12px 0}.mobile-page-menu-summary{padding:9px 12px}.mobile-page-links{grid-template-columns:1fr}.command-dialog{border-radius:18px}.command-head h2{font-size:19px}
}

/* Impression/export visuel propre */
@media print{
  .sidebar,.mobile-topbar,.mobile-page-menu,.head-actions,.command-palette,.dashboard-toolbar-actions{display:none!important}
  .app-shell{display:block}.container{max-width:none;padding:0}.card{box-shadow:none;break-inside:avoid}.page-head{border-bottom:1px solid #ddd}
}



/* v35 — nettoyage cohérent des pages existantes : garder uniquement l’utile */
:root{
  --page-max:1120px;
  --space-page:22px;
  --space-page-mobile:12px;
}
.app-container{padding-top:20px}

/* Structure stable : titre, action, contenu. Pas d'effet décoratif inutile. */
.page-head{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  align-items:end;
  gap:14px;
}
.page-head>div{min-width:0}
.page-head h1{max-width:860px}
.page-head p:not(.eyebrow){max-width:620px}
.head-actions .btn,.head-actions button{white-space:nowrap}

/* Les pages de détail doivent privilégier la donnée, pas les grands blocs. */
.record-hero{align-items:start}
.record-card h1{max-width:900px}
.record-card .muted,.record-card p{font-size:13px;line-height:1.45}
.record-meta{margin-top:10px}
.quick-panel h2,.card .section-head h2{font-size:17px;margin:0}
.section-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:11px}
.section-head p{margin:3px 0 0;color:var(--muted);font-size:12px;line-height:1.35}

/* Listes métiers : plus scannables, moins de hauteur perdue. */
.table-card{overflow:auto;overscroll-behavior-x:contain}
.table-card table{border-spacing:0}
.table-card th:first-child,.table-card td:first-child{padding-left:14px}
.table-card th:last-child,.table-card td:last-child{padding-right:14px}
.table-card tbody tr:hover td{background:#fbfbfc}
.actions a,.actions button,.compact-actions a,.compact-actions button{font-size:12px}
.tabs{gap:6px;margin-bottom:12px}
.tabs a{padding:6px 10px;font-size:12px;border-radius:999px}

/* Formulaires : regroupement clair, sans pavés lourds. */
form.card h2,form.card h3,.form-section-title h2,.form-section-title h3{margin-top:0;margin-bottom:6px}
form.card p,.form-section-title p{font-size:12px;color:var(--muted);line-height:1.35;margin-top:0}
.form-section+.form-section{margin-top:10px}
input::placeholder,textarea::placeholder{color:#9ca3af}
select{cursor:pointer}
.check{margin:10px 0}

/* États vides : une seule instruction, pas de roman. */
.empty-state{display:grid;gap:6px;align-content:start}
.empty-state p{max-width:620px;line-height:1.35}
.empty-state .btn{justify-self:start;margin-top:2px}

/* Tableaux de bord et centres de contrôle : mêmes blocs, même densité. */
.stats{grid-template-columns:repeat(auto-fit,minmax(150px,1fr))}
.stat{min-height:auto}.stat em{line-height:1.25}.metric-card{min-height:auto}
.security-advice,.priority-advice,.backup-discipline{padding:15px}
.priority-item,.action-item,.activity-item{box-shadow:none}
.priority-item:hover,.action-item:hover,.activity-item:hover{box-shadow:var(--shadow-soft)}

/* Commande rapide : utile mais discrète. */
.command-trigger,.mobile-page-command{font-weight:600}
.command-hints{color:var(--muted)}
.command-result small{line-height:1.25}

/* Menu : onglets compacts, aucune entrée cachée inutilement. */
.nav-tabs-shell{gap:10px}
.nav-panel .side-title{display:none}
.side-icon{width:22px;height:22px;border-radius:7px;font-size:12px}
.side-link{gap:8px}
.mobile-page-group-head{padding:0 2px 6px}
.mobile-page-group-head strong{font-size:12px;text-transform:uppercase;letter-spacing:.08em;color:#4b5563}
.mobile-page-group-head small{font-size:11px}
.mobile-page-links{gap:5px}

/* Public/auth : page sobre, pas de grands espaces inutiles. */
.app-public h1{font-size:clamp(30px,4vw,44px)}
.app-public .hero{gap:18px}
.app-public .grid{grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}
.card.narrow{max-width:470px}

@media(max-width:1100px){
  .page-head{grid-template-columns:1fr;align-items:start}
  .head-actions{justify-content:flex-start}
  .mobile-page-menu{position:relative;z-index:12}
  .mobile-page-menu-inner{max-height:calc(100vh - 106px);overflow:auto}
}
@media(max-width:760px){
  .section-head{display:grid;gap:8px}
  .section-head .btn,.section-head button{justify-self:start}
  .stats{grid-template-columns:repeat(2,minmax(0,1fr))}
  .table-card{position:relative}
  .table-card::after{content:"";position:sticky;right:0;top:0;display:block;width:1px;height:1px}
}
@media(max-width:560px){
  body{font-size:13px}
  .container{padding-left:var(--space-page-mobile);padding-right:var(--space-page-mobile)}
  .page-head h1{font-size:24px;line-height:1.05}
  .page-head .eyebrow{font-size:10px}
  .stats{grid-template-columns:1fr 1fr;gap:7px}
  .stat span{font-size:21px}
  .card,.record-card,.quick-panel{padding:12px}
  .table-card{margin-left:calc(var(--space-page-mobile) * -1);margin-right:calc(var(--space-page-mobile) * -1)}
  .list-row{padding:9px 10px}
  .tabs{overflow:auto;flex-wrap:nowrap;padding-bottom:2px}
  .tabs a{white-space:nowrap}
  .mobile-page-menu-inner{max-height:calc(100vh - 96px)}
}


/* v36 — listes métier : affichage utile, compact et cohérent */
:root{
  --list-row-hover:#fafafa;
  --list-action-bg:#f9fafb;
}

/* Les pages de listes doivent être scannables : titre court, filtres sobres, action principale visible. */
.route-coproprietes .page-head,
.route-coproprietaires .page-head,
.route-lots .page-head,
.route-documents .page-head,
.route-ag .page-head,
.route-interventions .page-head,
.route-prestataires .page-head,
.route-rappels .page-head,
.route-actions .page-head,
.route-priorites .page-head,
.route-activite .page-head,
.route-equipe .page-head,
.route-securite .page-head,
.route-sauvegardes .page-head,
.route-donnees .page-head{
  margin-bottom:14px;
  padding-bottom:12px;
  border-bottom:1px solid var(--line);
}
.route-coproprietes .page-head p:not(.eyebrow),
.route-coproprietaires .page-head p:not(.eyebrow),
.route-lots .page-head p:not(.eyebrow),
.route-documents .page-head p:not(.eyebrow),
.route-ag .page-head p:not(.eyebrow),
.route-interventions .page-head p:not(.eyebrow),
.route-prestataires .page-head p:not(.eyebrow),
.route-rappels .page-head p:not(.eyebrow),
.route-actions .page-head p:not(.eyebrow),
.route-priorites .page-head p:not(.eyebrow),
.route-activite .page-head p:not(.eyebrow),
.route-equipe .page-head p:not(.eyebrow),
.route-securite .page-head p:not(.eyebrow),
.route-sauvegardes .page-head p:not(.eyebrow),
.route-donnees .page-head p:not(.eyebrow){
  max-width:680px;
  margin:5px 0 0;
  font-size:13px;
  line-height:1.45;
  color:var(--muted);
}

.list-toolbar{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  margin:10px 0 10px;
}
.list-toolbar .tabs{margin:0;min-width:0}.list-toolbar .tabs a{padding:7px 10px;font-size:12px}
.list-count{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--line);border-radius:999px;background:#fff;padding:7px 10px;color:var(--muted);font-size:12px;font-weight:600;white-space:nowrap}
.list-count strong{color:var(--text)}

/* Filtres : une seule ligne quand possible, pas de carte visuelle lourde. */
.filters,.list-filters,.activity-filter-card,.action-filter-card{
  border-radius:13px;
  border-color:var(--line);
  box-shadow:none;
}
.filters .row,.list-filters .row{gap:10px;align-items:end}
.filters button,.list-filters button{justify-self:start}
.filter-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-top:10px}

/* Tableaux : priorité à la première colonne, actions secondaires plus discrètes. */
.table-card table{min-width:700px}
.table-card th:first-child,.table-card td:first-child{padding-left:14px}
.table-card th:last-child,.table-card td:last-child{padding-right:14px}
.table-card tbody tr:hover td{background:var(--list-row-hover)}
.table-card td:first-child strong a,
.table-card td:first-child strong{font-size:13px;line-height:1.25}
.table-card td .muted{font-size:12px;line-height:1.28;color:var(--muted)}
td.actions{min-width:160px}
td.actions a{display:inline-flex;align-items:center;min-height:28px;padding:5px 7px;border-radius:8px;text-decoration:none;font-size:12px;font-weight:600;color:#111827}
td.actions a:hover{background:var(--list-action-bg)}
td.actions .link-button{min-height:28px;padding:5px 7px;border-radius:8px;color:#6b7280;text-decoration:none;font-size:12px}
td.actions .link-button:hover{background:#fff7ed;color:#b45309}

/* États vides : une instruction, un bouton, rien de plus. */
.table-card > .muted,
.card.table-card > p.muted{
  margin:0;
  padding:16px;
  color:var(--muted);
}
.empty-state.compact-empty{padding:14px;border-radius:13px}.empty-state.compact-empty p{font-size:13px;margin-bottom:10px}

/* Mobile : les listes restent utilisables, actions sous la ligne et filtres en pile. */
@media(max-width:760px){
  .list-toolbar{display:grid;gap:8px}.list-count{justify-self:start}
  .route-coproprietes .page-head,
  .route-coproprietaires .page-head,
  .route-lots .page-head,
  .route-documents .page-head,
  .route-ag .page-head,
  .route-interventions .page-head,
  .route-prestataires .page-head,
  .route-rappels .page-head,
  .route-actions .page-head,
  .route-priorites .page-head,
  .route-activite .page-head,
  .route-equipe .page-head,
  .route-securite .page-head,
  .route-sauvegardes .page-head,
  .route-donnees .page-head{padding-bottom:10px}
  .filters .row,.list-filters .row{grid-template-columns:1fr}
  td.actions{gap:5px;min-width:150px}
  td.actions a,td.actions .link-button{padding:4px 6px}
}
@media(max-width:560px){
  .table-card table{min-width:640px}
  .table-card th,.table-card td{padding:8px 10px}
  .table-card th:first-child,.table-card td:first-child{padding-left:12px}
  .table-card th:last-child,.table-card td:last-child{padding-right:12px}
  .list-toolbar .tabs{width:100%}
  .list-toolbar .tabs a{padding:7px 9px}
}

/* v37 — pages détail : cohérence métier, affichage compact, pas de superflu */
:root{
  --detail-gap:12px;
  --detail-soft:#fbfbfc;
}
.route-coproprietes- .record-hero,
.route-coproprietaires- .record-hero,
.route-lots- .record-hero,
.route-prestataires- .record-hero,
.route-interventions- .record-hero,
.route-ag- .record-hero,
.detail-hero{
  grid-template-columns:minmax(0,1.45fr) minmax(260px,.55fr);
  gap:var(--detail-gap);
  margin-bottom:0;
}
.detail-main-card{min-height:0}.detail-main-card h1{font-size:clamp(25px,3vw,36px);line-height:1.05;margin-bottom:7px}.detail-main-card p{font-size:13px;line-height:1.42;color:#4b5563}.detail-main-card .record-meta{margin-top:10px}.detail-actions h2{margin-bottom:9px}.detail-actions .quick-grid{gap:7px}.detail-actions .quick-tile{padding:10px;border-radius:11px;background:#fff}.detail-actions .quick-tile strong{font-size:13px}.detail-actions .quick-tile span{font-size:11px;line-height:1.25}.detail-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}.detail-summary .metric{padding:11px 12px;background:#fff}.detail-summary .metric span{font-size:20px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.detail-summary .metric strong{font-size:10px;letter-spacing:.08em}.detail-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--detail-gap)}.detail-card{padding:15px}.section-head.compact{margin-bottom:9px}.section-head.compact h2{font-size:16px}.compact-details{grid-template-columns:145px minmax(0,1fr);gap:7px 12px}.compact-details dt{font-size:12px;color:#667085}.compact-details dd{font-size:13px}.mini-metrics{display:grid;gap:7px}.mini-metrics span{display:flex;align-items:center;justify-content:space-between;gap:10px;border:1px solid var(--line);border-radius:11px;padding:9px 10px;background:#fff;color:var(--muted);font-size:12px}.mini-metrics strong{color:#111827;font-size:14px}.detail-list{display:grid;gap:7px}.detail-row{display:flex;align-items:center;justify-content:space-between;gap:12px;border:1px solid var(--line);border-radius:12px;background:#fff;padding:10px 11px}.detail-row:hover{background:#fafafa;border-color:var(--line-strong)}.detail-row strong{font-size:13px}.detail-row p{margin:3px 0 0;font-size:12px;line-height:1.32;color:var(--muted)}.detail-row.is-critical{border-color:#fecaca;background:#fffafa}.detail-row.is-high{border-color:#fed7aa;background:#fffdf8}.decision-row{align-items:flex-start}.detail-doc-text{max-height:360px;overflow:auto}.compact-timeline{gap:8px}.compact-timeline .timeline-item{grid-template-columns:22px minmax(0,1fr);gap:8px}.compact-timeline .timeline-dot{width:10px;height:10px;box-shadow:0 0 0 4px #f3f4f6}.compact-timeline .timeline-body{padding:10px;border-radius:12px}.compact-form label{margin-top:0}.compact-form textarea{min-height:86px}.status-line{margin-top:0}.empty-state.compact-empty{padding:13px}.empty-state.compact-empty p{margin-bottom:9px}.soft-divider{margin:12px 0}
@media(max-width:980px){.detail-hero,.detail-grid{grid-template-columns:1fr}.detail-summary{grid-template-columns:repeat(2,minmax(0,1fr))}.compact-details{grid-template-columns:1fr;gap:2px}.compact-details dt{margin-top:7px}.compact-details dd{padding-bottom:5px;border-bottom:1px solid var(--line)}}
@media(max-width:620px){.detail-summary{grid-template-columns:1fr}.detail-row{display:grid;gap:6px}.detail-row .pill,.detail-row .badge{justify-self:start}.decision-row .compact-actions{display:grid;grid-template-columns:1fr;width:100%}.decision-row .compact-actions .btn,.decision-row .compact-actions button{width:100%}.detail-actions .quick-grid{grid-template-columns:1fr}.detail-main-card h1{font-size:23px}.detail-card{padding:12px}}


/* V38 — Form focus / existing edit pages */
.form-card{max-width:920px}
.form-compact{max-width:860px;margin:0 auto}
.form-compact .form-section{padding:14px 15px;border-radius:13px;background:#fff}
.form-compact .form-section.soft{background:#fbfbfc}
.form-compact .form-section-title{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:8px;border-bottom:1px solid var(--line);padding-bottom:8px}
.form-compact .form-section-title h2{font-size:15px;line-height:1.2;margin:0;color:#111827}
.form-compact .form-section-title p{font-size:12px;line-height:1.35;margin:3px 0 0;color:var(--muted);max-width:620px}
.form-compact label{font-size:12px;margin:9px 0 5px;color:#374151}
.form-compact input[type=text],.form-compact input[type=email],.form-compact input[type=password],.form-compact input[type=date],.form-compact input[type=time],.form-compact input[type=number],.form-compact input[type=file],.form-compact select,.form-compact textarea{min-height:38px;padding:8px 10px;border-radius:9px;font-size:14px}
.form-compact textarea{min-height:82px}
.form-compact .row{gap:10px}
.form-compact .row.four{gap:8px}
.field-help{font-size:12px;color:var(--muted);line-height:1.34;margin:5px 0 0}
.form-note-box{display:flex;flex-direction:column;justify-content:center;min-height:38px;border:1px solid var(--line);border-radius:10px;background:#fbfbfc;padding:8px 10px;margin-top:25px}
.form-note-box strong{font-size:12px;color:#111827}
.form-note-box span{font-size:12px;color:var(--muted);line-height:1.25}
.form-actions-sticky{position:sticky;bottom:0;z-index:15;background:rgba(255,255,255,.94);backdrop-filter:blur(8px);border:1px solid var(--line);border-radius:14px;padding:10px;margin-top:10px;box-shadow:0 -8px 24px rgba(15,23,42,.05)}
.form-actions-sticky button,.form-actions-sticky .btn{min-height:38px}
.card.wide.form-card{padding:16px}
.form-card .errors{margin-bottom:10px}
@media(max-width:720px){.card.wide.form-card{padding:12px}.form-compact{max-width:none}.form-compact .form-section{padding:12px}.form-compact .form-section-title{display:block}.form-compact .row,.form-compact .row.four{grid-template-columns:1fr}.form-note-box{margin-top:8px}.form-actions-sticky{display:grid;grid-template-columns:1fr;position:static}.form-actions-sticky .btn,.form-actions-sticky button{width:100%}}

/* V39 — accessibilité, responsive et sobriété globale */
.skip-link{position:fixed;left:14px;top:10px;z-index:9999;transform:translateY(-160%);background:#0f172a;color:#fff;border-radius:10px;padding:10px 14px;font-weight:600;text-decoration:none;box-shadow:0 12px 30px rgba(15,23,42,.22)}
.skip-link:focus,.skip-link:focus-visible{transform:translateY(0);outline:3px solid rgba(37,99,235,.35);outline-offset:3px}
#main-content:focus{outline:0}
:where(a,button,input,select,textarea,summary,[tabindex]):focus-visible{outline:3px solid rgba(37,99,235,.35);outline-offset:3px;border-radius:10px}
:where(button,.btn,.side-link,.tab-button,.command-result,.link-button){-webkit-tap-highlight-color:transparent}
:where(button,.btn,.side-link,.command-result,summary){touch-action:manipulation}
[aria-busy="true"]{cursor:progress}
form.is-submitting :where(button[type="submit"],.btn-primary){opacity:.72}
input[aria-invalid="true"],select[aria-invalid="true"],textarea[aria-invalid="true"]{border-color:#dc2626;box-shadow:0 0 0 3px rgba(220,38,38,.08)}
.alert{scroll-margin-top:18px}
.mobile-topbar{min-height:56px}
.mobile-page-menu summary{cursor:pointer;list-style:none}
.mobile-page-menu summary::-webkit-details-marker{display:none}
.table-wrap{scrollbar-width:thin}
.table-wrap:focus-within{box-shadow:0 0 0 3px rgba(37,99,235,.08);border-radius:14px}
.empty-state,.empty{min-height:auto}
.card :where(h2,h3){text-wrap:balance}
.page-head :where(h1,p){text-wrap:balance}
@media (pointer:coarse){
  :where(.btn,button,.side-link,.command-result,.mobile-page-menu summary,.tab-button){min-height:44px}
  input,select,textarea{font-size:16px}
}
@media (max-width:900px){
  .container,.app-container,.public-container{width:min(100% - 22px,var(--container,1120px))}
  .page-head{gap:10px}
  .page-actions,.actions,.form-actions,.form-actions-sticky{gap:8px}
  .card,.panel,.form-section{border-radius:14px}
}
@media (max-width:640px){
  .page-head{display:grid;grid-template-columns:1fr;align-items:start}
  .page-head .actions,.page-actions{display:grid;grid-template-columns:1fr;width:100%}
  .page-head .actions .btn,.page-actions .btn,.page-head .actions button,.page-actions button{width:100%;justify-content:center}
  .stats-grid,.metric-grid,.summary-grid{grid-template-columns:1fr!important}
  .toolbar,.filters,.filter-grid{gap:8px}
  .mobile-page-nav{margin-bottom:10px}
  .command-dialog{width:min(100% - 22px,640px);border-radius:18px}
  .command-hints{display:none}
}
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important;transition-duration:.01ms!important}
}
@media print{
  body{background:#fff;color:#111827}
  .sidebar,.mobile-topbar,.mobile-page-menu,.command-palette,.page-actions,.actions,.form-actions,.form-actions-sticky,.btn,button,.global-search,.language-switcher{display:none!important}
  .app-shell,.main-shell,.container,.app-container,.public-container{display:block;width:100%;max-width:none;margin:0;padding:0}
  .card,.panel,.form-section,.activity-item{box-shadow:none!important;border-color:#d1d5db;break-inside:avoid}
  a{color:#111827;text-decoration:none}
}


/* V40 — pré-production / cohérence d'exploitation */
.preprod-score{display:grid;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:16px;border-left:4px solid #d1d5db}
.preprod-score.is-ok{border-left-color:#16a34a;background:linear-gradient(90deg,rgba(22,163,74,.05),#fff 45%)}
.preprod-score.is-danger{border-left-color:#dc2626;background:linear-gradient(90deg,rgba(220,38,38,.05),#fff 45%)}
.preprod-score-kicker{display:block;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.12em;color:var(--muted);margin-bottom:4px}
.preprod-score h2{margin:0 0 4px;font-size:20px}.preprod-score p{margin:0;color:var(--muted);font-size:13px;line-height:1.42}
.preprod-score-numbers{min-width:88px;border:1px solid var(--line);border-radius:14px;background:#fff;padding:12px;text-align:center}
.preprod-score-numbers strong{display:block;font-size:28px;line-height:1;color:#111827}.preprod-score-numbers span{font-size:11px;color:var(--muted);text-transform:uppercase;letter-spacing:.08em}.muted-score strong{color:#6b7280}
.preprod-list{display:grid;gap:8px}.preprod-item{display:grid;grid-template-columns:34px minmax(0,1fr) auto;align-items:center;gap:10px;border:1px solid var(--line);border-radius:14px;background:#fff;padding:10px 12px}.preprod-item.ok{border-color:#dcfce7}.preprod-item.bad{border-color:#fecaca;background:#fffafa}.preprod-status{display:grid;place-items:center;width:30px;height:30px;border-radius:10px;background:#f3f4f6;font-weight:600}.preprod-item.ok .preprod-status{background:#dcfce7;color:#166534}.preprod-item.bad .preprod-status{background:#fee2e2;color:#991b1b}.preprod-item h3{margin:0 0 2px;font-size:14px}.preprod-item p{margin:0;font-size:12px;line-height:1.35;color:var(--muted)}
@media(max-width:760px){.preprod-score{grid-template-columns:1fr 1fr}.preprod-score>div:first-child{grid-column:1/-1}.preprod-score-numbers{min-width:0}.preprod-item{grid-template-columns:30px minmax(0,1fr);align-items:start}.preprod-item .pill{grid-column:2;justify-self:start}}


/* V41 — pages légales publiques sobres */
.legal-head{align-items:start}.legal-layout{display:grid;grid-template-columns:220px minmax(0,1fr);gap:14px;align-items:start}.legal-toc{position:sticky;top:18px;display:grid;gap:8px;padding:14px}.legal-toc strong{font-size:12px;text-transform:uppercase;letter-spacing:.1em;color:var(--muted);margin-bottom:2px}.legal-toc a,.legal-mini-links a,.footer-links a{color:var(--muted);font-size:12px;text-decoration:none}.legal-toc a{display:block;border:1px solid var(--line);border-radius:10px;padding:8px 10px;background:#fff}.legal-toc a:hover,.legal-mini-links a:hover,.footer-links a:hover{color:var(--text);border-color:#cbd5e1}.legal-card{padding:18px 20px}.legal-section{padding:14px 0;border-top:1px solid var(--line)}.legal-section:first-of-type{border-top:0;padding-top:8px}.legal-section h2{margin:0 0 8px;font-size:18px}.legal-section p{margin:0 0 8px;color:var(--text);line-height:1.55}.legal-section .clean-list{margin:8px 0 0;padding-left:18px}.legal-section .clean-list li{margin:4px 0;color:var(--muted);line-height:1.45}.legal-mini-links{display:flex;flex-wrap:wrap;gap:7px 10px;margin:8px 0}.legal-mini-links a{line-height:1.2}.public-footer{display:grid;gap:8px}.footer-links{display:flex;flex-wrap:wrap;gap:8px 14px;justify-content:center}.mobile-legal-links{width:100%;padding:8px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
@media(max-width:820px){.legal-layout{grid-template-columns:1fr}.legal-toc{position:static;grid-template-columns:repeat(2,minmax(0,1fr))}.legal-toc strong{grid-column:1/-1}.legal-card{padding:14px}.legal-section h2{font-size:16px}}
@media(max-width:520px){.legal-toc{grid-template-columns:1fr}.footer-links{justify-content:flex-start}.legal-mini-links{gap:6px 9px}}

/* v42 — hotfix formulaires : empêcher les champs de sortir des cartes/divs */
html,body{max-width:100%;overflow-x:hidden}
.app-shell,.main-shell,.container,.app-container,.public-container,.card,.feature,.stat,.form-section,.form-stack,.record-card,.quick-panel,.table-card,.list-row,.page-head,.head-actions,.mobile-page-menu,.mobile-page-menu-inner{min-width:0;max-width:100%}
.card.wide{width:100%;max-width:none}
.card.narrow{width:100%;max-width:min(100%,520px)}
form,.form-stack,.form-section,.form-section-title,.field,.row,.row>*,.grid>*,.dash>*,.stats>*,.metric-row>*,.quick-grid>*,.list-row>*,.details>*,.head-actions>*{min-width:0;max-width:100%}
input[type=text],input[type=email],input[type=password],input[type=date],input[type=time],input[type=number],input[type=file],select,textarea,button,.btn{max-width:100%}
input,select,textarea{min-width:0}
select{overflow:hidden;text-overflow:ellipsis}
textarea{display:block}
.form-section-title{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;flex-wrap:wrap}
.form-section-title>div{min-width:0;max-width:100%}
.form-section-title h2,.form-section-title p,.page-head h1,.page-head p,.record-card h1,.record-card p,.list-row strong,.list-row p,.details dd,.activity-line,.action-topline{overflow-wrap:anywhere;word-break:normal}
.form-actions,.form-actions-sticky{min-width:0;max-width:100%;overflow:hidden}
.form-actions .btn,.form-actions button{white-space:normal;text-align:center}
.table-card{max-width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}
.table-card input[type=text],.table-card input[type=email],.table-card input[type=number],.table-card select{min-width:0;width:100%;max-width:100%}
.inline-update-form,.security-filter-grid,.activity-filter-card .filter-grid,.action-filter-grid,.search-input-row{min-width:0;max-width:100%}
.inline-update-form>*,.security-filter-grid>*,.activity-filter-card .filter-grid>*,.action-filter-grid>*,.search-input-row>*{min-width:0;max-width:100%}

@media(max-width:900px){
  .card.wide{max-width:100%}
  .row,.row.three,.row.four,.grid,.grid.two,.dash,.record-hero,.hero{grid-template-columns:1fr!important}
  .form-section-title{display:grid;grid-template-columns:1fr;gap:6px}
  .head-actions{width:100%;display:flex;flex-wrap:wrap;align-items:stretch;justify-content:flex-start}
  .head-actions .btn,.head-actions button{flex:1 1 180px}
}
@media(max-width:620px){
  body{width:100%}
  .container{width:100%;padding-left:12px;padding-right:12px}
  .card,.form-section{width:100%;padding-left:12px;padding-right:12px}
  .card.wide,.card.narrow{max-width:100%}
  .form-stack{gap:10px}
  .row,.row.three,.row.four{display:grid;grid-template-columns:1fr!important;gap:8px}
  label{max-width:100%;overflow-wrap:anywhere}
  input[type=file]{font-size:13px}
  .form-actions,.form-actions-sticky{display:grid;grid-template-columns:1fr;margin-left:0;margin-right:0;padding-left:0;padding-right:0;background:transparent;border-top:0}
  .form-actions .btn,.form-actions button{width:100%}
  .mobile-page-menu-inner,.mobile-page-group,.mobile-page-links,.mobile-page-links .side-link{min-width:0;max-width:100%}
  .mobile-page-command,.mobile-page-search input{width:100%;min-width:0;max-width:100%}
  .table-card{margin-left:-12px;margin-right:-12px;width:calc(100% + 24px);max-width:calc(100% + 24px)}
}


/* V43 — support complet et messagerie sobre */
.support-layout{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:14px;align-items:start}
.support-thread{min-width:0}.support-side{display:grid;gap:14px;min-width:0}
.message-thread{display:grid;gap:10px;margin:12px 0 18px}.message-bubble{border:1px solid var(--line);border-radius:16px;background:#fff;padding:12px;min-width:0}.message-bubble.internal{border-color:#fde68a;background:#fffbeb}.message-bubble.system{border-style:dashed;background:#f8fafc}.message-bubble header{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-bottom:6px}.message-bubble header strong{font-size:13px}.message-bubble header span,.message-bubble header em{font-size:11px;color:var(--muted)}.message-bubble p{margin:0 0 8px;line-height:1.45;overflow-wrap:anywhere}.attachment-list{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}.attachment-list a{display:inline-flex;gap:5px;align-items:center;border:1px solid var(--line);border-radius:999px;padding:6px 9px;background:#fff;color:var(--text);text-decoration:none;font-size:12px;max-width:100%;overflow-wrap:anywhere}.attachment-list small{color:var(--muted)}.support-reply-form{border-top:1px solid var(--line);padding-top:12px}.warning-card{border-left:4px solid #f59e0b;background:#fffbeb}
@media(max-width:900px){.support-layout{grid-template-columns:1fr}.support-side{order:-1}.support-ticket-hero{grid-template-columns:1fr!important}}
@media(max-width:620px){.message-bubble{padding:10px;border-radius:14px}.message-bubble header{display:grid;gap:2px}.attachment-list{display:grid}.attachment-list a{border-radius:12px}}

/* v43 — menu gauche sticky et stable pendant le scroll */
@media (min-width:1101px){
  .app-shell{
    align-items:start;
    min-height:100vh;
  }
  .sidebar{
    position:sticky!important;
    top:0;
    align-self:start;
    height:100vh;
    height:100dvh;
    max-height:100vh;
    max-height:100dvh;
    overflow-y:auto;
    overflow-x:hidden;
    overscroll-behavior:contain;
    scrollbar-gutter:stable;
  }
  .sidebar .nav-tabs-shell{
    min-height:0;
    flex:1 1 auto;
  }
  .sidebar .nav-panels{
    min-height:0;
    overflow:auto;
  }
  .sidebar .side-footer{
    flex:0 0 auto;
  }
  .main-shell{
    min-height:100vh;
  }
}

/* v44 — menu gauche vraiment fixe sur desktop
   Correction: certains navigateurs cassent position: sticky quand body/ancêtres ont overflow-x hidden.
   On passe la colonne gauche en fixed sur desktop et on réserve l'espace côté contenu. */
@media (min-width:1101px){
  html, body{
    overflow-x:clip;
  }
  .app-shell{
    display:block!important;
    min-height:100vh;
    width:100%;
  }
  .sidebar{
    position:fixed!important;
    inset:0 auto 0 0;
    width:var(--sidebar);
    height:100vh;
    height:100dvh;
    max-height:100vh;
    max-height:100dvh;
    z-index:35;
    transform:none!important;
    will-change:auto;
    overflow-y:auto;
    overflow-x:hidden;
    overscroll-behavior:contain;
    scrollbar-gutter:stable;
  }
  .main-shell{
    margin-left:var(--sidebar);
    min-height:100vh;
    width:calc(100% - var(--sidebar));
    min-width:0;
  }
  .container{
    max-width:1180px;
  }
}
@media (max-width:1100px){
  .app-shell{
    display:grid!important;
    grid-template-columns:1fr;
  }
  .main-shell{
    margin-left:0;
    width:100%;
  }
}


/* v45 — support simplifié, aide compta et quota stockage */
.quota-bar{
  width:100%;height:10px;border-radius:999px;background:rgba(15,23,42,.08);overflow:hidden;margin:.6rem 0 .35rem;
}
.quota-bar span{display:block;height:100%;border-radius:999px;background:linear-gradient(90deg, var(--accent, #2563eb), #10b981);}
.clean-list{margin:.65rem 0 0;padding-left:1.1rem;display:grid;gap:.35rem;}
.clean-list li{line-height:1.45;}
.compact-card h2{margin-bottom:.25rem;}
.support-ticket-hero .record-meta .badge:empty{display:none;}

/* v46 — centre stockage et nettoyage exports */
.storage-hero{display:flex;justify-content:space-between;gap:1.2rem;align-items:center;overflow:hidden}
.storage-hero h2{margin:.1rem 0 .2rem;font-size:clamp(1.35rem,2vw,2rem)}
.storage-percent{font-size:clamp(2rem,4vw,3.3rem);letter-spacing:-.08em;line-height:1;color:var(--text)}
.storage-percent.ok{color:#047857}.storage-percent.warn{color:#b45309}.storage-percent.danger{color:#b91c1c}
.quota-bar.large{height:14px;max-width:680px}.quota-bar.slim{height:8px;min-width:160px;margin:0}
.storage-breakdown{display:grid;gap:.7rem}
.storage-row{display:grid;grid-template-columns:minmax(170px,1fr) minmax(260px,2fr);gap:1rem;align-items:center;padding:.75rem .85rem;border:1px solid var(--line);border-radius:var(--radius-sm);background:rgba(255,255,255,.72)}
.storage-row-main{display:grid;grid-template-columns:minmax(140px,1fr) auto auto;gap:.75rem;align-items:center;min-width:0}
.storage-row-main strong{white-space:nowrap}.storage-row form{margin:0}.storage-row .btn{white-space:nowrap}
@media(max-width:720px){.storage-hero{display:block}.storage-percent{display:block;margin-top:.75rem}.storage-row{grid-template-columns:1fr}.storage-row-main{grid-template-columns:1fr;align-items:start}.quota-bar.slim{width:100%}}


/* v50 — menu réorganisé, support/stockage mis en avant, pages sensibles admin-only */
.menu-highlights{display:grid;grid-template-columns:1fr;gap:8px;margin:10px 0 12px;min-width:0}
.menu-highlight{display:block;text-decoration:none;border:1px solid rgba(37,99,235,.18);border-radius:16px;background:linear-gradient(180deg,#ffffff,rgba(248,250,252,.94));padding:10px 11px;color:var(--text);box-shadow:0 8px 22px rgba(15,23,42,.045);min-width:0}
.menu-highlight:hover{border-color:rgba(37,99,235,.35);transform:translateY(-1px)}
.menu-highlight.is-static,.menu-highlight.is-static:hover{cursor:default;transform:none}
.menu-highlight span{display:block;font-size:10px;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);font-weight:600;margin-bottom:2px}
.menu-highlight strong{display:block;font-size:13px;line-height:1.15;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.menu-highlight em{display:block;font-style:normal;font-size:11px;color:var(--muted);line-height:1.25;margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.menu-highlight.support{border-color:rgba(16,185,129,.28);background:linear-gradient(180deg,#ffffff,#f0fdf4)}
.menu-highlight.storage{border-color:rgba(37,99,235,.25);background:linear-gradient(180deg,#ffffff,#eff6ff)}
.menu-highlight.is-readonly,.menu-highlight.is-static{cursor:default;opacity:.95}
.menu-quota-bar{display:block;height:6px;border-radius:999px;background:rgba(15,23,42,.08);overflow:hidden;margin-top:8px}
.menu-quota-bar b{display:block;height:100%;border-radius:999px;background:linear-gradient(90deg,#2563eb,#10b981)}
.mobile-page-menu-top .menu-highlights{grid-template-columns:1fr 1fr;margin:0 0 10px}
.mobile-page-menu-top .menu-highlight{padding:10px;border-radius:14px}
@media(max-width:460px){.mobile-page-menu-top .menu-highlights{grid-template-columns:1fr}.menu-highlight strong,.menu-highlight em{white-space:normal}}

/* v48 — menu bas + mailing documentaire */
.side-bottom-blocks{margin-top:auto;padding-top:10px;border-top:1px solid var(--line)}
.side-bottom-blocks .menu-highlights{margin:0 0 10px}
.mobile-page-bottom-blocks{margin-top:14px;padding-top:12px;border-top:1px solid var(--line)}
.mobile-page-bottom-blocks .menu-highlights{grid-template-columns:1fr 1fr;margin:0}
.mobile-page-bottom-blocks .menu-highlight{padding:10px;border-radius:14px}
@media(max-width:460px){.mobile-page-bottom-blocks .menu-highlights{grid-template-columns:1fr}}

.check-list{display:grid;gap:6px;max-height:310px;overflow:auto;border:1px solid var(--line);border-radius:14px;background:rgba(248,250,252,.58);padding:8px;min-width:0}
.check-list.compact-scroll{max-height:260px}
.check-row{display:flex;gap:10px;align-items:flex-start;padding:8px;border-radius:12px;background:#fff;border:1px solid rgba(15,23,42,.06);cursor:pointer;min-width:0}
.check-row:hover{border-color:rgba(37,99,235,.24)}
.check-row input{width:auto;margin-top:3px;flex:0 0 auto}
.check-row span{display:grid;gap:1px;min-width:0}
.check-row strong{font-size:14px;line-height:1.25;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.check-row small{font-size:12px;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}

.side-card{align-self:start}
.mini-list{display:grid;gap:8px;margin-top:10px}
.mini-item{display:grid;gap:2px;padding:9px 0;border-bottom:1px solid var(--line);min-width:0}
.mini-item:last-child{border-bottom:0}
.mini-item strong,.mini-item span,.mini-item small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.mini-item span,.mini-item small{color:var(--muted);font-size:12px}
.detail-head.compact{padding:0;display:flex;justify-content:space-between;gap:1rem;align-items:flex-start}
.page-actions{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}
@media(max-width:720px){.mobile-page-bottom-blocks{margin-top:10px}.check-row strong,.check-row small,.mini-item strong,.mini-item span,.mini-item small{white-space:normal}.page-actions{justify-content:flex-start}.detail-head.compact{display:grid}}

/* v49 — suivi des partages documentaires + cohérence globale des inputs */
:where(input:not([type="checkbox"]):not([type="radio"]):not([type="range"]):not([type="file"]), select, textarea, .command-input){
  box-sizing:border-box;
  width:100%;
  max-width:100%;
  min-width:0;
  border:1px solid var(--line);
  border-radius:12px;
  background:#fff;
  color:var(--text);
  font:inherit;
  line-height:1.35;
  box-shadow:none;
  transition:border-color .14s ease, box-shadow .14s ease, background .14s ease;
}
:where(input:not([type="checkbox"]):not([type="radio"]):not([type="range"]):not([type="file"]), select){
  min-height:42px;
  padding:9px 12px;
}
:where(textarea){
  min-height:92px;
  padding:10px 12px;
  resize:vertical;
}
:where(input[type="search"]){
  -webkit-appearance:none;
  appearance:none;
}
:where(select){
  appearance:auto;
  padding-right:32px;
}
:where(input:not([type="checkbox"]):not([type="radio"]):not([type="range"]):not([type="file"]), select, textarea):focus{
  outline:0;
  border-color:rgba(37,99,235,.58);
  box-shadow:0 0 0 3px rgba(37,99,235,.12);
}
:where(input:not([type="checkbox"]):not([type="radio"]):not([type="range"]):not([type="file"]), select, textarea)[aria-invalid="true"],
:where(input:not([type="checkbox"]):not([type="radio"]):not([type="range"]):not([type="file"]), select, textarea):user-invalid{
  border-color:rgba(185,28,28,.55);
  box-shadow:0 0 0 3px rgba(185,28,28,.10);
}
:where(input[disabled], select[disabled], textarea[disabled]){
  background:#f8fafc;
  color:var(--muted);
  cursor:not-allowed;
}
:where(input[type="checkbox"], input[type="radio"]){
  width:16px;
  height:16px;
  min-width:16px;
  accent-color:var(--brand);
}
.form-stack label,
.form-section label,
.filter-form label{
  display:block;
  font-size:12px;
  font-weight:600;
  letter-spacing:.01em;
  color:var(--muted);
  margin:0 0 5px;
}
.form-stack label + :where(input,select,textarea),
.form-section label + :where(input,select,textarea){
  margin-top:0;
}
.row,
.form-row,
.filter-form-inline{
  min-width:0;
}
.row > *,
.form-row > *,
.filter-form-inline > *{
  min-width:0;
}
.filter-form-inline{
  display:grid;
  grid-template-columns:minmax(220px,1fr) minmax(160px,220px) auto;
  gap:10px;
  align-items:end;
}
.compact-filter{padding:12px}
.compact-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:8px}
.compact-head h2{margin:0}.compact-head a{font-size:13px;font-weight:600;text-decoration:none;color:var(--brand)}
.compact-table td,.compact-table th{padding:.68rem .75rem}
.pill.ok{background:#ecfdf5;color:#047857;border-color:rgba(4,120,87,.18)}
.pill.warning{background:#fffbeb;color:#b45309;border-color:rgba(180,83,9,.18)}
.pill.danger{background:#fef2f2;color:#b91c1c;border-color:rgba(185,28,28,.18)}
.pill.neutral{background:#f8fafc;color:#475569;border-color:rgba(71,85,105,.18)}
.danger-link{color:#b91c1c!important}
.stats-grid.compact{margin-bottom:12px}
.stats-grid.compact .stat-card{padding:12px 14px}
.empty-state.compact{padding:20px;text-align:left}
.empty-state.compact h2{margin-top:0}
@media(max-width:760px){
  :where(input:not([type="checkbox"]):not([type="radio"]):not([type="range"]):not([type="file"]), select){min-height:40px;padding:8px 10px}
  :where(textarea){min-height:86px;padding:9px 10px}
  .filter-form-inline{grid-template-columns:1fr;align-items:stretch}
  .filter-form-inline button{width:100%}
  .compact-table td,.compact-table th{padding:.62rem .65rem}
}

/* V204 — landing page de conversion avant Release Candidate */
.public-page-landing{
  background:
    radial-gradient(circle at 8% 5%,rgba(62,114,136,.11),transparent 32rem),
    radial-gradient(circle at 92% 14%,rgba(184,137,74,.08),transparent 28rem),
    linear-gradient(180deg,#f8fbff 0,#f7f8fa 27rem,#fff 64rem);
}





.public-page-landing .public-container{max-width:1280px;padding:0 32px 72px}


.lp-hero{position:relative;display:grid;grid-template-columns:minmax(0,.92fr) minmax(540px,1.08fr);gap:54px;align-items:center;min-height:720px;padding:62px 0 54px}
.lp-hero-copy{position:relative;z-index:3;max-width:650px}
.lp-eyebrow{display:inline-flex;align-items:center;gap:9px;border:1px solid rgba(62,114,136,.16);border-radius:999px;background:rgba(255,255,255,.82);padding:7px 11px;color:var(--lp-blue-strong);font-size:12px;font-weight:600;letter-spacing:.025em;box-shadow:0 8px 24px rgba(15,23,42,.04)}
.lp-eyebrow-dot{width:7px;height:7px;border-radius:999px;background:var(--lp-blue);box-shadow:0 0 0 5px rgba(62,114,136,.1)}
.lp-hero h1{max-width:660px;margin:20px 0 20px;color:#0f172a;font-size:clamp(52px,5.8vw,82px);font-weight:600;line-height:.94;letter-spacing:-.072em}
.lp-hero-lead{max-width:620px;margin:0;color:#475569;font-size:clamp(17px,1.7vw,21px);line-height:1.6}
.lp-hero-actions{display:flex;align-items:center;gap:18px;flex-wrap:wrap;margin:30px 0 22px}
.lp-primary-cta{min-height:52px;border:0;border-radius:12px;padding:0 20px;background:#111827;color:#fff;box-shadow:0 15px 34px rgba(15,23,42,.17);font-size:15px}
.lp-primary-cta:hover{background:#1f2937;transform:translateY(-1px)}
.lp-button-icon{width:17px;height:17px}
.lp-text-link{color:#334155;text-decoration:none;font-size:14px;font-weight:600}
.lp-text-link:hover{text-decoration:underline}
.lp-hero-assurances{display:flex;align-items:center;gap:14px;flex-wrap:wrap;color:#64748b;font-size:12px;font-weight:500}
.lp-hero-assurances span{display:inline-flex;align-items:center;gap:6px}
.lp-hero-assurances .ui-icon{width:15px;height:15px;color:#059669}

.lp-product-stage{position:relative;z-index:2;min-width:0;padding:32px 14px 36px}
.lp-stage-glow{position:absolute;border-radius:999px;filter:blur(3px);pointer-events:none}
.lp-stage-glow-one{width:320px;height:320px;right:3%;top:0;background:rgba(62,114,136,.11)}
.lp-stage-glow-two{width:240px;height:240px;left:8%;bottom:0;background:rgba(184,137,74,.08)}
.lp-app-window{position:relative;z-index:2;overflow:hidden;border:1px solid rgba(148,163,184,.34);border-radius:22px;background:#fff;box-shadow:0 38px 100px rgba(15,23,42,.16),0 12px 36px rgba(15,23,42,.08);transform:perspective(1600px) rotateY(-1.5deg) rotateX(.5deg)}
.lp-window-bar{height:43px;display:flex;align-items:center;gap:12px;padding:0 15px;border-bottom:1px solid #e7eaf0;background:#fafbfc;color:#64748b;font-size:10px}
.lp-window-dots{display:flex;gap:5px}
.lp-window-dots i{width:7px;height:7px;border-radius:999px;background:#cbd5e1}
.lp-window-dots i:first-child{background:#fca5a5}.lp-window-dots i:nth-child(2){background:#fcd34d}.lp-window-dots i:nth-child(3){background:#86efac}
.lp-window-address{margin:auto;border:1px solid #e5e7eb;border-radius:7px;background:#fff;padding:4px 38px;color:#94a3b8}
.lp-window-status{color:#059669;font-weight:600}
.lp-app-shell{display:grid;grid-template-columns:150px minmax(0,1fr);min-height:470px;background:#f7f8fa}
.lp-preview-sidebar{padding:17px 11px;border-right:1px solid #e5e7eb;background:#fff}
.lp-preview-brand{display:flex;align-items:center;gap:7px;padding:0 7px 15px;border-bottom:1px solid #edf0f3;color:#111827;font-size:12px;font-weight:600}
.lp-preview-brand img{width:24px;height:24px;border-radius:8px}
.lp-preview-search{height:27px;margin:13px 4px 10px;border:1px solid #e5e7eb;border-radius:8px;background:#f8fafc}
.lp-preview-sidebar nav{display:grid;gap:4px}
.lp-preview-sidebar nav span{display:flex;align-items:center;gap:7px;border-radius:8px;padding:7px;color:#64748b;font-size:9px;font-weight:500}
.lp-preview-sidebar nav span.active{background:var(--lp-blue-soft);color:var(--lp-blue-strong)}
.lp-preview-sidebar .ui-icon{width:14px;height:14px;flex:none}
.lp-preview-sidebar b{font-weight:500}
.lp-preview-main{min-width:0;padding:17px 18px 20px}
.lp-preview-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:23px}
.lp-preview-head small,.lp-preview-title small{display:block;color:#94a3b8;font-size:9px;font-weight:500;text-transform:uppercase;letter-spacing:.08em}
.lp-preview-head strong{display:block;margin-top:2px;color:#0f172a;font-size:14px;font-weight:600}
.lp-preview-head>span{border:1px solid #e5e7eb;border-radius:8px;background:#fff;padding:6px 8px;color:#64748b;font-size:9px;font-weight:500}
.lp-preview-title{display:flex;align-items:flex-end;justify-content:space-between;gap:15px;margin-bottom:13px}
.lp-preview-title h2{margin:3px 0 0;color:#0f172a;font-size:19px;font-weight:600;letter-spacing:-.04em}
.lp-preview-health{display:inline-flex;align-items:center;gap:5px;border:1px solid #bbf7d0;border-radius:999px;background:#f0fdf4;padding:5px 8px;color:#047857;font-size:9px;font-weight:600;white-space:nowrap}
.lp-preview-health i{width:6px;height:6px;border-radius:999px;background:#10b981}
.lp-preview-metrics{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-bottom:10px}
.lp-preview-metrics article{border:1px solid #e5e7eb;border-radius:11px;background:#fff;padding:11px}
.lp-preview-metrics span{display:block;color:#111827;font-size:25px;font-weight:600;line-height:1;letter-spacing:-.06em}
.lp-preview-metrics small{display:block;margin-top:5px;color:#475569;font-size:9px;font-weight:600}
.lp-preview-metrics em{display:block;margin-top:2px;color:#94a3b8;font-size:8px;font-style:normal}
.lp-preview-grid{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(145px,.65fr);gap:9px}
.lp-preview-card{overflow:hidden;border:1px solid #e5e7eb;border-radius:11px;background:#fff}
.lp-preview-card>header{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:10px 11px;border-bottom:1px solid #edf0f3}
.lp-preview-card>header strong{font-size:10px;font-weight:600}.lp-preview-card>header span{color:#64748b;font-size:8px;font-weight:500}
.lp-preview-priorities article{display:grid;grid-template-columns:7px minmax(0,1fr) auto;gap:8px;align-items:center;padding:9px 11px;border-bottom:1px solid #f0f2f4}
.lp-preview-priorities article:last-child{border-bottom:0}
.lp-preview-priorities i{width:6px;height:6px;border-radius:999px}.lp-preview-priorities i.danger{background:#ef4444}.lp-preview-priorities i.warning{background:#f59e0b}.lp-preview-priorities i.success{background:#10b981}
.lp-preview-priorities strong,.lp-preview-priorities small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.lp-preview-priorities strong{font-size:9px;font-weight:600}.lp-preview-priorities small{margin-top:1px;color:#94a3b8;font-size:8px}.lp-preview-priorities em{border-radius:999px;background:#f8fafc;padding:3px 5px;color:#64748b;font-size:7px;font-style:normal;font-weight:600}
.lp-preview-agenda>div{display:grid;grid-template-columns:27px minmax(0,1fr);gap:7px;align-items:center;padding:9px 10px;border-bottom:1px solid #f0f2f4}.lp-preview-agenda>div:last-child{border-bottom:0}.lp-preview-agenda b{display:flex;align-items:center;justify-content:center;width:27px;height:27px;border-radius:7px;background:#f1f5f9;color:#334155;font-size:10px;font-weight:600}.lp-preview-agenda span strong,.lp-preview-agenda span small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.lp-preview-agenda span strong{font-size:8px;font-weight:600}.lp-preview-agenda span small{margin-top:1px;color:#94a3b8;font-size:7px}
.lp-floating-card{position:absolute;z-index:4;display:flex;align-items:center;gap:9px;border:1px solid rgba(226,232,240,.9);border-radius:13px;background:rgba(255,255,255,.94);padding:10px 12px;box-shadow:0 18px 46px rgba(15,23,42,.13);backdrop-filter:blur(12px)}
.lp-floating-card .ui-icon{width:22px;height:22px;color:var(--lp-blue)}.lp-floating-card span strong,.lp-floating-card span small{display:block}.lp-floating-card span strong{color:#0f172a;font-size:10px;font-weight:600}.lp-floating-card span small{color:#64748b;font-size:8px}.lp-floating-card-top{right:-3px;top:6px}.lp-floating-card-bottom{left:-6px;bottom:4px}

.lp-proof-bar{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));border-top:1px solid rgba(203,213,225,.65);border-bottom:1px solid rgba(203,213,225,.65);background:rgba(255,255,255,.62)}
.lp-proof-bar div{padding:21px 24px;border-right:1px solid rgba(203,213,225,.65)}.lp-proof-bar div:last-child{border-right:0}.lp-proof-bar strong,.lp-proof-bar span{display:block}.lp-proof-bar strong{color:#0f172a;font-size:14px;font-weight:600}.lp-proof-bar span{margin-top:3px;color:#64748b;font-size:12px}

.lp-section{padding:92px 0}
.lp-section-heading{max-width:760px;margin-bottom:34px}.lp-section-heading-wide{max-width:960px}.lp-section-heading-centered{text-align:center;margin-left:auto;margin-right:auto}
.lp-section-kicker{display:inline-block;margin-bottom:12px;color:var(--lp-blue);font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.11em}.lp-section-kicker-light{color:#DDBB82}
.lp-section-heading h2,.lp-ag-copy h2,.lp-security-intro h2,.lp-final-copy h2{margin:0;color:#0f172a;font-size:clamp(36px,4.6vw,60px);font-weight:600;line-height:1.02;letter-spacing:-.058em}
.lp-section-heading p,.lp-ag-copy>p,.lp-security-intro>p,.lp-final-copy>p{max-width:780px;margin:15px 0 0;color:#64748b;font-size:16px;line-height:1.7}

.lp-problem-section{padding-top:108px}
.lp-before-after{display:grid;grid-template-columns:minmax(0,.82fr) minmax(0,1.18fr);gap:18px;align-items:stretch}
.lp-before-card,.lp-after-card{border:1px solid #e5e7eb;border-radius:20px;padding:26px;background:#fff}
.lp-before-card{background:#fafafa}.lp-after-card{border-color:rgba(62,114,136,.18);background:linear-gradient(145deg,#fff,#f6f9ff)}
.lp-card-label{display:inline-flex;border:1px solid #e5e7eb;border-radius:999px;background:#fff;padding:6px 9px;color:#64748b;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.08em}
.lp-before-card ul{display:grid;gap:15px;margin:24px 0 0;padding:0;list-style:none}.lp-before-card li{display:grid;grid-template-columns:9px minmax(0,1fr);gap:11px;color:#475569;font-size:14px;line-height:1.5}.lp-before-card li i{width:8px;height:8px;margin-top:7px;border-radius:999px;background:#cbd5e1}
.lp-after-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:24px}.lp-after-grid>div{display:grid;grid-template-columns:38px minmax(0,1fr);gap:11px;border:1px solid #e5e7eb;border-radius:14px;background:#fff;padding:15px}.lp-after-grid .ui-icon{width:20px;height:20px;margin:5px auto;color:var(--lp-blue)}.lp-after-grid strong,.lp-after-grid small{display:block}.lp-after-grid strong{font-size:14px;font-weight:600}.lp-after-grid small{margin-top:3px;color:#64748b;font-size:12px;line-height:1.45}

.lp-workflow-line{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));border:1px solid #e5e7eb;border-radius:20px;background:#fff;overflow:hidden}
.lp-workflow-line article{position:relative;min-height:246px;padding:26px 22px;border-right:1px solid #e5e7eb}.lp-workflow-line article:last-child{border-right:0}.lp-workflow-line article>span{position:absolute;right:18px;top:17px;color:#cbd5e1;font-size:12px;font-weight:600}.lp-workflow-line .ui-icon{width:28px;height:28px;margin-bottom:35px;color:var(--lp-blue)}.lp-workflow-line strong{display:block;color:#0f172a;font-size:17px;font-weight:600}.lp-workflow-line p{margin:8px 0 0;color:#64748b;font-size:13px;line-height:1.55}

.lp-feature-section{position:relative}.lp-feature-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.lp-feature-card{display:flex;flex-direction:column;min-height:220px;border:1px solid #e5e7eb;border-radius:18px;background:#fff;padding:22px}.lp-feature-icon{display:inline-flex;align-items:center;justify-content:center;width:42px;height:42px;margin-bottom:30px;border-radius:12px;background:var(--lp-blue-soft);color:var(--lp-blue)}.lp-feature-icon .ui-icon{width:21px;height:21px}.lp-feature-card>strong{font-size:17px;font-weight:600}.lp-feature-card>p{margin:7px 0 0;color:#64748b;font-size:13px;line-height:1.55}.lp-feature-card-large{grid-column:span 2;grid-row:span 2;display:grid;grid-template-columns:minmax(0,.9fr) minmax(250px,1.1fr);gap:24px;align-items:center;background:#111827;color:#fff}.lp-feature-card-large .lp-feature-icon{grid-column:1;background:rgba(255,255,255,.1);color:rgba(62,114,136,.22);margin-bottom:8px}.lp-feature-card-large>div:not(.lp-mini-dashboard){grid-column:1}.lp-feature-card-large strong{color:#fff;font-size:21px}.lp-feature-card-large p{color:#cbd5e1}.lp-mini-dashboard{grid-column:2;grid-row:1/3;display:grid;gap:8px}.lp-mini-dashboard span{display:grid;grid-template-columns:8px minmax(0,1fr) auto;gap:9px;align-items:center;border:1px solid rgba(255,255,255,.11);border-radius:11px;background:rgba(255,255,255,.07);padding:12px}.lp-mini-dashboard i{width:7px;height:7px;border-radius:999px}.lp-mini-dashboard i.danger{background:#f87171}.lp-mini-dashboard i.warning{background:#fbbf24}.lp-mini-dashboard i.success{background:#34d399}.lp-mini-dashboard b{font-size:12px;font-weight:600}.lp-mini-dashboard small{color:#94a3b8;font-size:10px}

.lp-ag-showcase{display:grid;grid-template-columns:minmax(0,.92fr) minmax(460px,1.08fr);gap:58px;align-items:center;margin:28px 0;padding:64px;border-radius:26px;background:#111827;color:#fff;box-shadow:0 30px 80px rgba(15,23,42,.14)}
.lp-ag-copy h2{color:#fff}.lp-ag-copy>p{color:#cbd5e1}.lp-inline-cta{display:inline-flex;align-items:center;gap:8px;margin-top:24px;color:#fff;text-decoration:none;font-size:14px;font-weight:600}.lp-inline-cta .ui-icon{width:17px;height:17px}.lp-inline-cta:hover{text-decoration:underline}
.lp-ag-steps{display:grid;gap:8px}.lp-ag-steps article{display:grid;grid-template-columns:38px minmax(0,1fr);gap:12px;align-items:center;border:1px solid rgba(255,255,255,.12);border-radius:13px;background:rgba(255,255,255,.055);padding:12px}.lp-ag-steps article.active{border-color:rgba(96,165,250,.55);background:rgba(62,114,136,.2)}.lp-ag-steps article>span{display:flex;align-items:center;justify-content:center;width:38px;height:38px;border-radius:10px;background:rgba(255,255,255,.09);color:rgba(62,114,136,.22);font-size:12px;font-weight:600}.lp-ag-steps strong,.lp-ag-steps small{display:block}.lp-ag-steps strong{color:#fff;font-size:13px;font-weight:600}.lp-ag-steps small{margin-top:2px;color:#94a3b8;font-size:11px}

.lp-security-section{display:grid;grid-template-columns:minmax(0,.92fr) minmax(500px,1.08fr);gap:54px;align-items:center}
.lp-security-note{display:grid;grid-template-columns:38px minmax(0,1fr);gap:12px;align-items:center;margin-top:24px;border:1px solid #e5e7eb;border-radius:14px;background:#fff;padding:14px}.lp-security-note .ui-icon{width:22px;height:22px;margin:auto;color:var(--lp-blue)}.lp-security-note strong,.lp-security-note small{display:block}.lp-security-note strong{font-size:13px;font-weight:600}.lp-security-note small{margin-top:2px;color:#64748b;font-size:11px;line-height:1.45}
.lp-security-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.lp-security-grid article{display:grid;grid-template-columns:40px minmax(0,1fr);gap:12px;border:1px solid #e5e7eb;border-radius:16px;background:#fff;padding:18px}.lp-security-grid .ui-icon{width:21px;height:21px;margin:4px auto;color:var(--lp-blue)}.lp-security-grid strong{font-size:14px;font-weight:600}.lp-security-grid p{margin:5px 0 0;color:#64748b;font-size:12px;line-height:1.5}

.lp-faq-section{padding-top:76px}.lp-faq-list{max-width:900px;margin:0 auto;border-top:1px solid #e5e7eb}.lp-faq-list details{border-bottom:1px solid #e5e7eb}.lp-faq-list summary{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:20px 2px;cursor:pointer;color:#0f172a;font-size:16px;font-weight:600;list-style:none}.lp-faq-list summary::-webkit-details-marker{display:none}.lp-faq-list summary span{display:flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:999px;background:#f1f5f9;color:#64748b;font-size:17px;font-weight:400;transition:transform .15s ease}.lp-faq-list details[open] summary span{transform:rotate(45deg)}.lp-faq-list details p{max-width:760px;margin:0;padding:0 42px 22px 2px;color:#64748b;font-size:14px;line-height:1.65}

.lp-final-cta{display:flex;align-items:center;justify-content:space-between;gap:38px;margin:42px 0 10px;border:1px solid rgba(62,114,136,.18);border-radius:24px;background:linear-gradient(135deg,var(--lp-blue-soft),#fff 52%,#f0f9ff);padding:44px 48px}.lp-final-copy>span{display:block;margin-bottom:10px;color:var(--lp-blue);font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.1em}.lp-final-copy h2{font-size:clamp(34px,4vw,52px)}.lp-final-copy>p{max-width:700px;font-size:15px}.lp-final-actions{display:flex;flex-direction:column;align-items:center;gap:10px;flex:none}.lp-final-primary{min-width:210px;border-radius:12px;background:#111827}.lp-final-primary .ui-icon{width:17px;height:17px}.lp-final-login{color:#475569;text-decoration:none;font-size:13px;font-weight:600}.lp-final-login:hover{text-decoration:underline}

.filter-inline-grid{display:grid;grid-template-columns:minmax(240px,1.35fr) minmax(190px,.85fr) auto;gap:10px;align-items:end}.filter-inline-grid label{margin-top:0}.filter-inline-grid button{min-height:42px;align-self:end;white-space:nowrap;padding-left:18px;padding-right:18px}.filters.inline-filters{padding:14px}.menu-highlight.active{border-color:rgba(37,99,235,.5);box-shadow:0 0 0 3px rgba(37,99,235,.09),0 8px 22px rgba(15,23,42,.045)}

@media(max-width:1120px){
  .lp-hero{grid-template-columns:1fr;gap:22px;min-height:0;padding-top:52px}.lp-hero-copy{max-width:850px}.lp-hero h1{max-width:860px}.lp-product-stage{max-width:860px;width:100%;margin:0 auto}.lp-ag-showcase,.lp-security-section{grid-template-columns:1fr}.lp-ag-showcase{gap:36px}.lp-security-intro{max-width:760px}.lp-proof-bar{grid-template-columns:repeat(2,minmax(0,1fr))}.lp-proof-bar div:nth-child(2){border-right:0}.lp-proof-bar div:nth-child(-n+2){border-bottom:1px solid rgba(203,213,225,.65)}
}
@media(max-width:920px){
  .lp-section{padding:72px 0}.lp-before-after{grid-template-columns:1fr}.lp-workflow-line{grid-template-columns:repeat(2,minmax(0,1fr))}.lp-workflow-line article:nth-child(2){border-right:0}.lp-workflow-line article:nth-child(-n+2){border-bottom:1px solid #e5e7eb}.lp-feature-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.lp-feature-card-large{grid-column:span 2;grid-row:auto}.lp-feature-card:last-child{grid-column:span 2}.lp-security-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:720px){
  .public-page-landing .public-container{padding:0 16px 48px}
  .lp-hero{padding:38px 0 42px}.lp-hero h1{font-size:46px}.lp-hero-lead{font-size:16px}.lp-hero-actions{display:grid;grid-template-columns:1fr;margin-top:24px}.lp-primary-cta,.lp-text-link{width:100%;text-align:center}.lp-text-link{padding:8px}.lp-hero-assurances{display:grid;grid-template-columns:1fr;gap:8px}.lp-product-stage{padding:20px 0 26px}.lp-app-window{border-radius:17px;transform:none}.lp-window-address{padding-left:14px;padding-right:14px}.lp-window-status{display:none}.lp-app-shell{grid-template-columns:1fr;min-height:0}.lp-preview-sidebar{display:none}.lp-preview-main{padding:15px}.lp-preview-grid{grid-template-columns:1fr}.lp-preview-agenda{display:none}.lp-floating-card{display:none}.lp-preview-metrics span{font-size:22px}
  .lp-proof-bar{grid-template-columns:1fr}.lp-proof-bar div{border-right:0;border-bottom:1px solid rgba(203,213,225,.65)}.lp-proof-bar div:last-child{border-bottom:0}.lp-proof-bar div:nth-child(-n+2){border-bottom:1px solid rgba(203,213,225,.65)}
  .lp-section{padding:60px 0}.lp-problem-section{padding-top:70px}.lp-section-heading h2,.lp-ag-copy h2,.lp-security-intro h2,.lp-final-copy h2{font-size:36px}.lp-after-grid,.lp-workflow-line,.lp-feature-grid,.lp-security-grid{grid-template-columns:1fr}.lp-feature-card:last-child{grid-column:auto}.lp-workflow-line article{border-right:0;border-bottom:1px solid #e5e7eb;min-height:205px}.lp-workflow-line article:last-child{border-bottom:0}.lp-feature-card-large{grid-column:auto;display:flex}.lp-feature-card-large .lp-feature-icon,.lp-feature-card-large>div:not(.lp-mini-dashboard),.lp-mini-dashboard{grid-column:auto;grid-row:auto}.lp-mini-dashboard{width:100%;margin-top:14px}.lp-ag-showcase{margin-left:-4px;margin-right:-4px;padding:34px 22px;border-radius:20px}.lp-security-section{gap:32px}.lp-final-cta{display:grid;padding:30px 24px}.lp-final-actions{align-items:stretch}.lp-final-primary{width:100%;min-width:0}.lp-final-login{text-align:center}.filter-inline-grid{grid-template-columns:1fr}.filter-inline-grid button{width:100%}
}
@media(max-width:460px){
  .lp-hero h1{font-size:40px;letter-spacing:-.062em}.lp-eyebrow{font-size:10px}.lp-window-address{max-width:160px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.lp-preview-title{display:grid}.lp-preview-health{justify-self:start}.lp-preview-metrics{grid-template-columns:1fr}.lp-preview-metrics article{display:grid;grid-template-columns:42px minmax(0,1fr);gap:2px 8px;align-items:center}.lp-preview-metrics span{grid-row:1/3}.lp-preview-metrics small,.lp-preview-metrics em{margin:0}.lp-before-card,.lp-after-card{padding:20px}.lp-section-heading h2,.lp-ag-copy h2,.lp-security-intro h2,.lp-final-copy h2{font-size:32px}.lp-ag-steps article{grid-template-columns:34px minmax(0,1fr)}.lp-ag-steps article>span{width:34px;height:34px}
}

/* V53 — filtres multi-copropriété compacts */
.compact-filter-grid{grid-template-columns:minmax(240px,1fr) auto;max-width:560px}.compact-filter-grid button{align-self:end}@media(max-width:760px){.compact-filter-grid{grid-template-columns:1fr;max-width:none}}

/* V54 — emails modernes + aperçu mailing */
.email-modern-grid{display:grid;grid-template-columns:minmax(0,1.08fr) minmax(320px,.92fr);gap:18px;align-items:start;margin-top:18px}.email-composer-card{min-width:0}.email-side-panel{display:grid;gap:0;min-width:0}.email-preview-shell{position:sticky;top:18px;overflow:hidden}.email-preview-card{border:1px solid rgba(148,163,184,.26);border-radius:24px;background:#f1f5f9;padding:12px;box-shadow:0 18px 48px rgba(15,23,42,.08);min-width:0}.email-preview-top{border-radius:20px 20px 0 0;background:linear-gradient(135deg,#0f172a,#1d4ed8);color:#fff;padding:18px 20px}.email-preview-top span{display:block;font-size:11px;text-transform:uppercase;letter-spacing:.1em;font-weight:600;opacity:.78}.email-preview-top strong{display:block;margin-top:5px;font-size:20px;letter-spacing:-.035em}.email-preview-body{border-radius:0 0 20px 20px;background:#fff;padding:20px}.email-preview-body small{display:block;color:#64748b;text-transform:uppercase;letter-spacing:.08em;font-weight:600;font-size:11px}.email-preview-body h3{margin:5px 0 10px;font-size:22px;line-height:1.1;letter-spacing:-.04em}.email-preview-body p{margin:0;color:#475569;line-height:1.55;font-size:14px}.email-preview-body a,.email-preview-body .email-preview-faux-link{display:inline-block;margin:18px 0 14px;background:#111827;color:#fff;text-decoration:none;font-weight:600;border-radius:14px;padding:12px 16px}.email-preview-body dl{margin:8px 0 0;border-top:1px solid #e5e7eb}.email-preview-body dl div{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:10px 0;border-bottom:1px solid #e5e7eb}.email-preview-body dt{color:#64748b;font-size:12px}.email-preview-body dd{margin:0;color:#0f172a;font-weight:600;font-size:12px;text-align:right;max-width:56%;overflow:hidden;text-overflow:ellipsis}.email-preview-shell .field-help{margin-top:10px}.mailing-status-note{border:1px solid rgba(37,99,235,.18);background:#eff6ff;border-radius:16px;padding:12px;color:#1e3a8a;font-size:13px;font-weight:600}
@media(max-width:980px){.email-modern-grid{grid-template-columns:1fr}.email-preview-shell{position:static}}
@media(max-width:560px){.email-preview-card{padding:8px;border-radius:20px}.email-preview-top,.email-preview-body{padding:16px}.email-preview-body dl div{display:grid}.email-preview-body dd{text-align:left;max-width:none}}

/* V55 — centre email opérationnel */
.email-stats-grid{grid-template-columns:repeat(5,minmax(0,1fr))}
.email-ops-grid{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(320px,.95fr);gap:18px;align-items:start;margin-top:14px}.email-ops-card{min-width:0}.email-actions-strip{display:flex;gap:10px;flex-wrap:wrap;margin:8px 0 12px}.email-actions-strip form{margin:0}.email-test-form{display:grid;grid-template-columns:minmax(220px,1fr) auto;gap:10px;align-items:end;border-top:1px solid var(--line);padding-top:12px;margin-top:12px}.email-test-actions{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}.email-test-actions button{white-space:nowrap}.deliverability-list{display:grid;gap:8px}.deliverability-row{display:grid;grid-template-columns:auto minmax(100px,1fr) minmax(100px,1fr);gap:10px;align-items:center;border:1px solid var(--line);border-radius:14px;padding:9px 10px;background:#fff}.deliverability-row strong{font-size:14px}.deliverability-row em{font-style:normal;color:var(--muted);font-size:13px;text-align:right;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.email-filter-grid{display:grid;grid-template-columns:minmax(240px,1fr) minmax(140px,170px) minmax(150px,190px) minmax(130px,160px) auto;gap:10px;align-items:end}.email-queue-table .pill + .pill{margin-left:4px}.email-queue-table td:first-child{max-width:520px}.email-queue-table small.danger-text{display:inline-block;margin-top:4px;line-height:1.35}.mono{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace}
@media(max-width:1100px){.email-stats-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.email-ops-grid{grid-template-columns:1fr}.email-filter-grid{grid-template-columns:1fr 1fr 1fr auto}}
@media(max-width:760px){.email-stats-grid{grid-template-columns:1fr 1fr}.email-filter-grid,.email-test-form{grid-template-columns:1fr}.email-test-actions{justify-content:stretch}.email-test-actions button,.email-filter-grid button,.email-test-form button{width:100%}.deliverability-row{grid-template-columns:auto 1fr}.deliverability-row em{grid-column:2;text-align:left;white-space:normal}}
@media(max-width:460px){.email-stats-grid{grid-template-columns:1fr}.email-actions-strip{display:grid}.email-actions-strip button{width:100%}}


.email-error-digest{overflow:hidden}.email-error-list{display:grid;gap:9px}.email-error-list article{display:grid;grid-template-columns:auto minmax(0,1fr);gap:12px;align-items:start;border:1px solid var(--line);border-radius:16px;background:#fff;padding:12px}.email-error-list strong{display:block;font-size:13px;line-height:1.35;color:var(--text);word-break:break-word}.email-error-list small{display:block;margin-top:4px}.email-row-actions{gap:10px;flex-wrap:wrap}.email-row-actions form{margin:0}.email-detail-stats{grid-template-columns:repeat(4,minmax(0,1fr))}.email-detail-grid{display:grid;grid-template-columns:minmax(320px,.8fr) minmax(0,1.2fr);gap:18px;align-items:start}.email-meta-card,.email-render-card{min-width:0}.detail-dl{display:grid;gap:0;margin:0}.detail-dl div{display:grid;grid-template-columns:140px minmax(0,1fr);gap:14px;padding:13px 0;border-bottom:1px solid var(--line)}.detail-dl div:last-child{border-bottom:0}.detail-dl dt{font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.08em;color:var(--muted)}.detail-dl dd{margin:0;color:var(--text);font-weight:600;word-break:break-word}.email-preview-frame{display:block;width:100%;height:620px;border:1px solid var(--line);border-radius:22px;background:#f8fafc}.email-text-preview{white-space:pre-wrap;word-break:break-word;border:1px solid var(--line);border-radius:18px;background:#0f172a;color:#e5e7eb;padding:16px;max-height:560px;overflow:auto;font-size:13px;line-height:1.55}.page-actions form{margin:0}
@media(max-width:1100px){.email-detail-grid{grid-template-columns:1fr}.email-detail-stats{grid-template-columns:repeat(2,minmax(0,1fr))}.email-preview-frame{height:520px}}
@media(max-width:760px){.email-detail-stats{grid-template-columns:1fr}.detail-dl div{grid-template-columns:1fr;gap:5px}.email-preview-frame{height:440px}.email-row-actions{justify-content:flex-start}}

/* V56 — détail email, aperçu HTML, diagnostic groupé */

/* V57 — modèles email pilotables */
.email-template-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;align-items:stretch}.email-template-card{display:flex;flex-direction:column;min-width:0}.email-template-card p{margin-top:0;color:var(--muted)}.email-template-mini-preview{border:1px solid var(--line);border-radius:16px;background:#f8fafc;padding:13px;display:grid;gap:4px;margin-top:auto}.email-template-mini-preview strong{font-size:14px;color:var(--text);word-break:break-word}.email-template-mini-preview span{font-size:13px;color:var(--muted);word-break:break-word}.email-template-editor-grid{display:grid;grid-template-columns:minmax(0,1.04fr) minmax(360px,.96fr);gap:18px;align-items:start}.email-template-editor-card{min-width:0}.email-placeholder-box{border:1px dashed var(--line-strong);border-radius:16px;background:#fbfbfc;padding:13px;display:grid;gap:9px}.email-placeholder-box div{display:flex;gap:6px;flex-wrap:wrap}.email-template-reset-form{border-top:1px solid var(--line);margin-top:16px;padding-top:14px}.email-template-preview-form{border-top:1px solid var(--line);margin-top:14px;padding-top:12px}.email-template-send-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;align-items:end}.compact-frame{height:500px}.compact-text-preview{max-height:360px}.warning-card{border-color:#fde68a;background:#fffbeb}
@media(max-width:1080px){.email-template-grid,.email-template-editor-grid{grid-template-columns:1fr}.email-preview-shell{position:static}.compact-frame{height:460px}}
@media(max-width:640px){.email-template-send-row{grid-template-columns:1fr}.email-template-send-row button{width:100%}.tabs a{width:100%;text-align:center}.compact-frame{height:390px}}

/* V58 — quota email + menu stockage visible */
.email-quota-card{margin-top:1rem;overflow:hidden}
.email-quota-card.blocked,.email-quota-card.danger{border-color:rgba(185,28,28,.28);background:linear-gradient(180deg,#fff,#fef2f2)}
.email-quota-card.warning{border-color:rgba(180,83,9,.28);background:linear-gradient(180deg,#fff,#fffbeb)}
.quota-meter-row{display:flex;justify-content:space-between;gap:1rem;align-items:center;margin:.5rem 0 .7rem;color:var(--text)}
.quota-meter-row em{font-style:normal;color:var(--muted);font-size:.92rem;text-align:right}
@media(max-width:720px){.quota-meter-row{display:block}.quota-meter-row em{display:block;text-align:left;margin-top:.25rem}}

/* V59 — audience email, ciblage et quota avant envoi */
.audience-filter-grid{display:grid;grid-template-columns:minmax(260px,1fr) auto;gap:10px;align-items:end}
.audience-stats-grid{grid-template-columns:repeat(5,minmax(0,1fr))}
.audience-quota-card{margin-top:18px}.quota-split{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:10px 0 12px}.quota-split>div{border:1px solid var(--line);border-radius:16px;background:#fff;padding:14px}.quota-split strong{display:block;font-size:18px;letter-spacing:-.03em;color:var(--text)}.quota-split span{display:block;color:var(--muted);font-size:13px;margin-top:3px}.audience-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(320px,.9fr);gap:18px;align-items:start}.audience-card{min-width:0}.language-bars{display:grid;gap:10px}.language-row{display:grid;grid-template-columns:48px minmax(0,1fr) auto;gap:10px;align-items:center}.language-row strong{font-size:13px;color:var(--text)}.language-row span{height:10px;border-radius:999px;background:#e5e7eb;overflow:hidden}.language-row i{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,#2563eb,#0f172a)}.language-row em{font-style:normal;color:var(--muted);font-size:12px;text-align:right}.audience-table .pill + .pill{margin-left:4px}.audience-problems,.audience-duplicates{max-height:480px;overflow:auto;padding-right:4px}.audience-mini-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:8px 0 10px}.audience-mini-stats div{border:1px solid var(--line);border-radius:14px;background:#fff;padding:10px}.audience-mini-stats strong{display:block;font-size:20px;letter-spacing:-.04em;color:var(--text)}.audience-mini-stats span{display:block;font-size:12px;color:var(--muted);font-weight:600}.audience-document-card .field-help{margin-top:8px}
@media(max-width:1120px){.audience-stats-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.audience-grid{grid-template-columns:1fr}}
@media(max-width:720px){.audience-filter-grid,.quota-split{grid-template-columns:1fr}.audience-filter-grid button{width:100%}.audience-stats-grid,.audience-mini-stats{grid-template-columns:1fr}.language-row{grid-template-columns:40px 1fr}.language-row em{grid-column:2;text-align:left}}

/* V60 — campagnes email documentaires */
.email-campaign-stats{grid-template-columns:repeat(5,minmax(0,1fr))}
.email-campaign-control{margin-top:16px}
.email-campaign-filter-grid{display:grid;grid-template-columns:minmax(260px,1fr) minmax(170px,220px) auto;gap:12px;align-items:end}
.email-campaign-table td:first-child{max-width:440px}.email-campaign-table small{color:var(--muted)}
.email-campaign-table .actions{gap:10px;flex-wrap:wrap}
@media(max-width:1080px){.email-campaign-stats{grid-template-columns:repeat(3,minmax(0,1fr))}.email-campaign-filter-grid{grid-template-columns:1fr 1fr}.email-campaign-filter-grid .form-actions-inline{grid-column:1/-1}}
@media(max-width:720px){.email-campaign-stats{grid-template-columns:1fr}.email-campaign-filter-grid{grid-template-columns:1fr}.email-campaign-filter-grid button,.email-campaign-filter-grid .btn{width:100%}}

/* V61 — détail campagnes email */
.email-campaign-detail-stats .stat span { font-variant-numeric: tabular-nums; }
.email-campaign-detail-panel .detail-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); gap: 12px; margin-top: 14px; }
.email-campaign-detail-panel .detail-grid > div { border: 1px solid var(--border); border-radius: 14px; padding: 12px; background: var(--surface-soft); }
.email-campaign-detail-panel .detail-grid span { display: block; color: var(--muted); font-size: .82rem; margin-bottom: 4px; }
.campaign-message-preview { margin-top: 16px; padding: 14px; border: 1px solid var(--border); border-radius: 14px; background: var(--surface-soft); }
.campaign-actions { margin-top: 16px; display: flex; gap: 10px; flex-wrap: wrap; }
.error-digest-list { display: grid; gap: 10px; }
.error-digest-list article { border: 1px solid var(--border); border-radius: 14px; padding: 12px; background: var(--surface-soft); }
.email-campaign-recipient-table small { overflow-wrap: anywhere; }

/* V64 — charte UI globale, padding harmonisé et surfaces plus modernes */
:root{
  --bg:#f4f7fb;
  --panel:#ffffff;
  --panel-soft:#f8fafc;
  --surface-soft:#f8fafc;
  --border:#e2e8f0;
  --text:#0f172a;
  --muted:#64748b;
  --soft:#94a3b8;
  --line:#e2e8f0;
  --line-strong:#cbd5e1;
  --brand:#0f172a;
  --accent:#2563eb;
  --accent-soft:#eff6ff;
  --radius:20px;
  --radius-sm:14px;
  --shadow:0 1px 2px rgba(15,23,42,.045),0 18px 48px rgba(15,23,42,.065);
  --shadow-soft:0 10px 28px rgba(15,23,42,.055);
  --content-gap:20px;
}
body{background:linear-gradient(180deg,#f8fbff 0%,var(--bg) 320px,var(--bg) 100%);color:var(--text)}
.app-shell{background:transparent}.main-shell{background:transparent}.app-container{max-width:1240px;padding:36px 34px 64px}.public-container{padding-left:34px;padding-right:34px}
.sidebar{padding:24px 17px;background:rgba(255,255,255,.94);backdrop-filter:saturate(1.1) blur(12px);box-shadow:1px 0 0 rgba(15,23,42,.045)}
.side-brand{padding:0 8px 16px}.sidebar-search{margin:4px 0 4px}.command-trigger{margin:0 0 2px;min-height:44px;border-radius:15px}.nav-tabs-shell{gap:13px}.nav-tabs{padding:7px;border-radius:20px;background:#f1f5f9}.nav-tab{min-height:42px;border-radius:15px;padding:10px 12px}.nav-panel{gap:5px}.side-link{min-height:42px;padding:10px 11px;border-radius:14px;font-size:14px}.side-link:hover{background:#f8fafc}.side-link.active{background:#eff6ff;box-shadow:inset 0 0 0 1px rgba(37,99,235,.12)}.side-icon{border-radius:10px;background:#eef2f7}
.menu-highlights{display:grid;gap:10px}.menu-highlight{border-radius:18px}.side-footer{padding-top:14px;gap:11px}.legal-mini-links{line-height:1.35}
.page-head{margin-bottom:24px;padding-bottom:2px;align-items:flex-end}.page-head h1{margin-bottom:8px}.page-head p{margin-bottom:0}.page-actions,.head-actions,.compact-actions{display:flex;gap:10px;align-items:center;justify-content:flex-end;flex-wrap:wrap}.page-actions .btn,.head-actions .btn{min-height:42px}
.card,.feature,.stat,.quick-panel,.record-card,.empty-state,.table-card,.dashboard-toolbar,.quick-tile,.list-row,.form-section{border-color:var(--line);border-radius:var(--radius);box-shadow:var(--shadow-soft)}.card{padding:clamp(18px,2.1vw,28px)}.feature,.quick-tile,.metric,.timeline-body,.glossary-item{border-radius:16px}.section-head{margin-bottom:18px}.section-head.compact-head{margin-bottom:12px}
.app-container > .card + .card,
.app-container > .card + .dash,
.app-container > .dash + .card,
.app-container > .stats + .card,
.app-container > .stats-grid + .card,
.public-container > .card + .card,
.public-container > .card + .grid,
.public-container > .grid + .card{margin-top:var(--content-gap)}
.stats,.stats-grid{gap:14px;margin-bottom:24px}.stat,.stat-card{border-radius:18px;border:1px solid var(--line);background:#fff;box-shadow:var(--shadow-soft);padding:18px}.stat span,.stat-card strong{letter-spacing:-.055em}.stat em,.stat-card span{color:var(--muted)}
:where(input[type=text],input[type=email],input[type=password],input[type=date],input[type=time],input[type=number],input[type=search],input[type=file],select,textarea){border-color:var(--line-strong);border-radius:14px;min-height:44px;padding:11px 13px;background:#fff;box-shadow:0 1px 0 rgba(15,23,42,.025)}
:where(textarea){min-height:116px}:where(input,select,textarea):focus{border-color:#93c5fd;box-shadow:0 0 0 4px rgba(37,99,235,.11),0 1px 0 rgba(15,23,42,.025)}
label,.form-stack label,.form-section label,.filter-form label{font-size:12px;font-weight:600;letter-spacing:.015em;color:#475569;margin:0 0 6px}.field-help,.form-help{color:var(--muted)}
.btn,button{border-radius:14px;padding:11px 16px;min-height:44px;font-weight:600;box-shadow:0 1px 0 rgba(255,255,255,.14) inset}.btn.secondary{background:#fff;color:#0f172a;border-color:var(--line-strong);box-shadow:0 1px 2px rgba(15,23,42,.035)}.btn.secondary:hover{background:#f8fafc;border-color:#b6c2d2}.btn.small{min-height:38px;border-radius:12px;padding:9px 12px}
.filter-card,.compact-filter{padding:16px;border-radius:20px}.filter-inline-grid,.email-filter-grid,.audience-filter-grid,.email-campaign-filter-grid,.action-filter-grid,.compact-filter-grid{gap:12px}.filter-inline-grid button,.email-filter-grid button,.audience-filter-grid button,.email-campaign-filter-grid button,.compact-filter-grid button{min-height:44px;align-self:end}.form-actions{padding-top:18px;margin-top:8px}.form-section{padding:20px}.form-section-title{margin-bottom:16px;padding-bottom:14px}
table{border-spacing:0}th{background:#f8fafc;color:#64748b}th,td{padding:15px 16px}tbody tr:hover td{background:#fbfdff}.table-card{border-radius:20px}.pill,.badge{border-radius:999px;padding:6px 10px;font-weight:600}.codebox{border-radius:16px;background:#0f172a;color:#e5e7eb}
.email-ops-grid,.email-detail-grid,.email-modern-grid,.email-template-editor-grid,.audience-grid{gap:20px}.email-preview-card{border-radius:26px}.email-preview-top{border-radius:22px 22px 0 0}.email-preview-body{border-radius:0 0 22px 22px}.email-preview-frame{border-radius:24px}.email-quota-card,.email-campaign-control,.audience-quota-card{border-radius:22px}
.mobile-page-menu-summary,.mobile-topbar{box-shadow:0 1px 0 rgba(15,23,42,.045)}
@media(max-width:1100px){.app-container{padding:26px 20px 54px}.mobile-topbar{padding:12px 18px;background:rgba(255,255,255,.9);backdrop-filter:saturate(1.15) blur(12px)}.page-head{display:grid;gap:14px;align-items:start}.page-actions,.head-actions{justify-content:flex-start}.mobile-page-menu-inner{padding:14px}}
@media(max-width:720px){.app-container,.public-container{padding-left:16px;padding-right:16px}.card{padding:18px}.page-head{margin-bottom:18px}.stats,.stats-grid{gap:10px;margin-bottom:18px}.stat,.stat-card{padding:15px}.filter-card,.compact-filter{padding:14px}.form-section{padding:16px}.btn,button{width:100%}.page-actions .btn,.head-actions .btn,.compact-actions .btn{width:100%}th,td{padding:12px 13px}}

/* V66 — statuts email/audience en rail horizontal */
.email-status-rail,.audience-status-rail{
  display:flex;
  flex-wrap:nowrap;
  gap:14px;
  align-items:stretch;
  overflow-x:auto;
  overflow-y:hidden;
  padding:2px 2px 10px;
  margin-bottom:24px;
  scroll-snap-type:x proximity;
  -webkit-overflow-scrolling:touch;
}
.email-status-rail .stat-card,.audience-status-rail .stat{
  flex:0 0 clamp(148px,16vw,190px);
  min-width:148px;
  scroll-snap-align:start;
}
.email-status-rail .stat-card strong,.audience-status-rail .stat span{
  white-space:nowrap;
  font-variant-numeric:tabular-nums;
}
.email-status-rail::-webkit-scrollbar,.audience-status-rail::-webkit-scrollbar{height:8px}
.email-status-rail::-webkit-scrollbar-thumb,.audience-status-rail::-webkit-scrollbar-thumb{background:#cbd5e1;border-radius:999px}
@media(max-width:760px){
  .email-status-rail,.audience-status-rail{
    display:flex;
    flex-wrap:nowrap;
    gap:10px;
    margin-left:-2px;
    margin-right:-2px;
  }
  .email-status-rail .stat-card,.audience-status-rail .stat{
    flex-basis:158px;
  }
}


/* v69 — menu fit & support label clean */
@media (min-width:1101px){
  :root{--sidebar:286px;}
}
.sidebar,
.nav-tabs-shell,
.nav-tabs,
.nav-panels,
.nav-panel,
.side-bottom-blocks,
.side-footer,
.menu-highlights,
.menu-highlight{
  min-width:0;
  max-width:100%;
}
.sidebar{
  overflow-x:hidden!important;
}
.side-brand,
.side-link,
.nav-tab,
.command-trigger,
.menu-highlight{
  max-width:100%;
}
.side-link{
  min-width:0;
  overflow:hidden;
}
.side-link span:not(.side-icon){
  min-width:0;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.nav-tab{
  min-width:0;
  overflow:hidden;
}
.nav-tab span,
.nav-tab small{
  min-width:0;
  overflow:hidden;
  text-overflow:ellipsis;
}
.nav-tab span{
  white-space:nowrap;
}
.nav-tab small{
  max-width:48%;
}
.command-trigger span,
.brand-text{
  min-width:0;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.menu-highlight.support strong{
  font-size:14px;
}
.legal-mini-links{
  min-width:0;
  overflow-wrap:anywhere;
}
@media(max-width:1100px){
  :root{--sidebar:286px;}
  .mobile-page-groups,
  .mobile-page-group,
  .mobile-page-links{min-width:0;max-width:100%;}
  .mobile-page-links .side-link span:not(.side-icon){white-space:nowrap;}
}


/* v70 — équipe retravaillée + support menu single */
.team-form-layout{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(260px,.6fr);gap:18px;align-items:start}.team-head h1{letter-spacing:-.035em}.team-hero-card,.team-policy-card,.team-card{box-shadow:0 14px 35px rgba(15,23,42,.055)}.team-overview-grid{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(260px,.6fr);gap:18px}.team-role-grid.compact{grid-template-columns:repeat(3,minmax(0,1fr))}.team-role-topline{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:6px}.team-role-topline span{display:inline-flex;align-items:center;justify-content:center;min-width:30px;height:30px;border-radius:999px;background:#fff;border:1px solid var(--line);font-weight:600}.team-role-card{background:#fff}.team-role-card.user,.team-role-card.success{border-color:rgba(16,185,129,.22);background:linear-gradient(180deg,#fff,#f0fdf4)}.team-role-card.admin,.team-role-card.warning{border-color:rgba(245,158,11,.24);background:linear-gradient(180deg,#fff,#fffbeb)}.team-role-card.owner,.team-role-card.danger{border-color:rgba(239,68,68,.22);background:linear-gradient(180deg,#fff,#fef2f2)}.team-role-card p{margin:0;color:var(--muted);font-size:13px;line-height:1.35}.team-stats .metric-card em{display:block;margin-top:4px;color:var(--muted);font-style:normal;font-size:12px}.role-choice-help{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:10px;margin-top:12px}.compact-alert{margin-top:12px}.support-single{display:flex!important;align-items:center;justify-content:center;min-height:46px;text-align:center;padding:12px 14px}.support-single strong{font-size:15px!important;line-height:1.1}.support-single span,.support-single em{display:none!important}@media(max-width:980px){.team-form-layout,.team-overview-grid{grid-template-columns:1fr}.team-role-grid.compact{grid-template-columns:1fr}.role-choice-help{grid-template-columns:1fr}}

/* v71 — menu connecté sans liens légaux */
.app-logged .side-footer,
.app-logged .mobile-page-footer{
  gap:10px;
}
.app-logged .side-footer .logout-link,
.app-logged .mobile-page-footer .logout-link{
  margin-top:0;
}


/* v72 — tableau de bord par rôle */
.quick-panel .quick-grid .quick-tile strong { line-height: 1.18; }
.quick-panel .quick-grid .quick-tile span { line-height: 1.35; }


/* v72 — dashboard rôle + commande rapide au-dessus du support */
.side-bottom-blocks .command-trigger-bottom{
  margin:0 0 10px;
  background:linear-gradient(180deg,#ffffff,#f8fafc);
  border-color:rgba(37,99,235,.18);
  box-shadow:0 8px 22px rgba(15,23,42,.045);
}
.side-bottom-blocks .command-trigger-bottom:hover{
  border-color:rgba(37,99,235,.35);
  background:#fff;
}
.side-bottom-blocks .menu-highlights{margin-top:0;}
@media(max-width:1100px){
  .side-bottom-blocks .command-trigger-bottom{display:none;}
}

/* v73 — commande rapide enrichie */
.command-section-title{
  margin:10px 8px 2px;
  color:#64748b;
  font-size:11px;
  font-weight:600;
  letter-spacing:.12em;
  text-transform:uppercase;
}
.command-section-title:first-child{margin-top:0}
.command-result{
  position:relative;
}
.command-result.active{
  box-shadow:inset 0 0 0 1px rgba(37,99,235,.16),0 8px 20px rgba(15,23,42,.06);
}
.command-result-main strong,
.command-result-main em{
  min-width:0;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.command-list{
  align-content:start;
  overflow:auto;
}
@media(max-width:640px){
  .command-dialog{margin:18px auto 0;max-height:calc(100vh - 36px);}
  .command-head{padding:18px 18px 12px;}
  .command-input{width:calc(100% - 36px);margin:14px 18px 10px;}
  .command-hints{padding:0 18px 12px;}
  .command-list{padding:0 10px 14px;}
}

/* v74 — droits email + campagnes envoyables + harmonisation UI */
:root{
  --ui-space-1:6px;
  --ui-space-2:10px;
  --ui-space-3:14px;
  --ui-space-4:18px;
  --ui-space-5:22px;
  --ui-card-pad:20px;
  --ui-card-min:132px;
}
.app-container{padding-top:32px;padding-bottom:64px}
.page-head{margin-bottom:20px;align-items:stretch}
.page-head>div:first-child{min-width:0}.page-head .page-actions,.page-head .head-actions{align-self:flex-start}
.card,.quick-panel,.record-card,.feature,.form-section,.timeline-body,.activity-item,.action-item,.priority-item,.security-user-row,.detail-row,.list-row,.stat{border-radius:18px}
.card{padding:var(--ui-card-pad)}
.card:not(.table-card){min-height:0}
.stats{gap:14px;margin-bottom:20px;align-items:stretch}.stat{min-height:112px;display:flex;flex-direction:column;justify-content:space-between;padding:18px}.stat span{margin-bottom:6px}.stat strong{line-height:1.25}.stat em{min-height:1.25em}
.quick-grid{gap:12px}.quick-tile{min-height:86px;padding:14px 15px;justify-content:space-between}.quick-tile strong{line-height:1.2}.quick-tile span{line-height:1.35}
.section-head{gap:18px;margin-bottom:14px}.section-head.compact-head{align-items:flex-start}.section-head.compact-head h2{margin-bottom:4px}.section-head.compact-head p{margin-top:2px}
.form-stack{gap:16px}.form-section{padding:17px}.form-section-title{gap:12px;margin-bottom:12px}label{margin:10px 0 6px}input[type=text],input[type=email],input[type=password],input[type=date],input[type=time],input[type=number],input[type=file],select,textarea{min-height:46px}textarea{line-height:1.5}.form-actions,.form-actions-sticky,.form-actions-inline{gap:10px;align-items:center}.form-actions-inline .btn,.form-actions-inline button{min-height:44px}
.table-card{border-radius:18px}.table-card table{min-width:780px}th,td{padding:12px 14px}td.actions{gap:10px;flex-wrap:wrap}.actions a,.actions span{white-space:nowrap}
.nav-tabs-shell{gap:10px;overflow:hidden}.nav-tabs{gap:6px;padding:6px}.nav-tab{min-height:54px}.nav-panel{min-width:0}.side-link{min-width:0}.side-link span:last-child{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.menu-highlight{min-width:0}.menu-highlight strong,.menu-highlight span,.menu-highlight em{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.campaign-create-card{margin-bottom:20px;background:linear-gradient(180deg,#fff,#fbfdff)}
.campaign-create-grid{display:grid;grid-template-columns:minmax(260px,1.5fr) minmax(220px,1.2fr) minmax(150px,.7fr) minmax(160px,.7fr);gap:14px;align-items:end}
.campaign-create-grid>div{min-width:0}.campaign-message-field{grid-column:1 / span 3}.campaign-message-field textarea{min-height:72px}.campaign-send-actions{align-self:end;justify-content:flex-end;padding-bottom:0}.campaign-send-actions .btn,.campaign-send-actions button{white-space:nowrap}
.email-campaign-stats{margin-top:0}.email-campaign-control{margin-bottom:20px}.email-campaign-filter-grid{display:grid;grid-template-columns:minmax(260px,1.4fr) minmax(180px,.75fr) auto;gap:14px;align-items:end}.email-campaign-filter-grid>div{min-width:0}.email-campaign-table td:first-child{min-width:260px}
.email-modern-grid{align-items:start}.email-composer-card,.email-side-panel .card{height:auto}.email-side-panel{display:grid;gap:16px}.email-side-panel .mt{margin-top:0}.email-preview-shell,.audience-document-card,.side-card{min-height:var(--ui-card-min)}
.email-status-rail,.status-rail,.email-audience-status-rail{display:flex;align-items:stretch;gap:10px;overflow-x:auto;padding-bottom:3px}.email-status-rail>* ,.status-rail>* ,.email-audience-status-rail>*{flex:0 0 auto;min-width:132px}
@media(max-width:1180px){.campaign-create-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.campaign-message-field{grid-column:1/-1}.campaign-send-actions{grid-column:1/-1;justify-content:flex-start}.email-campaign-filter-grid{grid-template-columns:1fr 220px}.email-campaign-filter-grid .form-actions-inline{grid-column:1/-1}}
@media(max-width:760px){.app-container{padding-top:24px}.card{padding:16px}.stats{grid-template-columns:1fr 1fr}.stat{min-height:98px}.campaign-create-grid,.email-campaign-filter-grid{grid-template-columns:1fr}.campaign-send-actions{display:grid;grid-template-columns:1fr}.campaign-send-actions .btn,.campaign-send-actions button{width:100%}.page-actions,.head-actions{display:flex;flex-wrap:wrap}.page-actions .btn,.head-actions .btn{width:auto}.quick-tile{min-height:76px}.section-head{display:grid;gap:10px}}
@media(max-width:560px){.stats{grid-template-columns:1fr}.stat{min-height:0}.page-actions,.head-actions{display:grid;grid-template-columns:1fr}.page-actions .btn,.head-actions .btn{width:100%}.table-card{margin-left:-12px;margin-right:-12px;width:calc(100% + 24px);max-width:calc(100% + 24px)}}

/* v75 — campagnes email préparables */
.email-campaign-stats{grid-template-columns:repeat(6,minmax(0,1fr))}
.campaign-launch-card{margin-bottom:20px;background:linear-gradient(135deg,#fff,#f7fbff);border-color:rgba(37,99,235,.18)}
.campaign-readiness-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-top:14px}
.campaign-readiness-grid article{border:1px solid var(--border);border-radius:16px;background:var(--surface-soft);padding:14px;min-height:86px;display:flex;flex-direction:column;justify-content:space-between}
.campaign-readiness-grid span{font-size:.82rem;color:var(--muted)}
.campaign-readiness-grid strong{font-size:1.25rem;color:var(--text)}
.campaign-preview-card{overflow:hidden}.campaign-preview-frame{width:100%;min-height:520px;border:1px solid var(--border);background:#fff}.campaign-text-preview{margin-top:14px;border:1px solid var(--border);border-radius:16px;padding:12px 14px;background:var(--surface-soft)}
.campaign-text-preview summary{cursor:pointer;font-weight:600}.campaign-text-preview pre{white-space:pre-wrap;overflow-wrap:anywhere;margin:12px 0 0;font-size:.9rem;color:var(--text)}
.strong-action{font-weight:600;color:var(--primary)}
@media(max-width:1280px){.email-campaign-stats{grid-template-columns:repeat(3,minmax(0,1fr))}.campaign-readiness-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:760px){.email-campaign-stats,.campaign-readiness-grid{grid-template-columns:1fr}.campaign-preview-frame{min-height:420px}}

/* V76 — campagnes email : test brouillon + lancement sécurisé */
.campaign-draft-actions{margin-top:18px;display:grid;grid-template-columns:minmax(0,1fr) minmax(320px,.72fr);gap:14px;align-items:end}
.campaign-primary-actions{align-self:end}
.campaign-test-form{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;align-items:end;border:1px solid rgba(37,99,235,.16);background:rgba(37,99,235,.045);border-radius:18px;padding:12px}
.campaign-test-form label{font-size:.82rem;font-weight:600;color:var(--muted);margin-bottom:6px;display:block}
.campaign-test-form input{min-height:44px}
.campaign-test-form button{white-space:nowrap;min-height:44px}
.campaign-launch-card .campaign-readiness-grid article strong{font-variant-numeric:tabular-nums}
.email-campaign-detail-panel .campaign-actions button{min-height:42px}
@media(max-width:980px){.campaign-draft-actions{grid-template-columns:1fr}.campaign-test-form{grid-template-columns:1fr}.campaign-test-form button{width:100%}}

/* V77 — campagnes email : CSRF, lancement et densité maîtrisée */
.email-campaign-detail-stats{grid-template-columns:repeat(5,minmax(0,1fr));align-items:stretch}
.email-campaign-detail-panel .detail-grid{align-items:stretch}
.email-campaign-detail-panel .detail-grid>div{min-height:76px;display:flex;flex-direction:column;justify-content:space-between}
.email-campaign-detail-panel .campaign-actions{display:flex;flex-wrap:wrap;gap:10px;align-items:center}
.email-campaign-detail-panel .campaign-actions button,.campaign-draft-actions button{min-height:44px}
.email-campaign-recipient-table td:first-child{min-width:220px}
.email-campaign-recipient-table td:nth-child(5){max-width:360px;overflow-wrap:anywhere}
.js-enabled form.is-submitting button[type=submit]{opacity:.72;cursor:progress;pointer-events:none}
.campaign-test-form.is-submitting{opacity:.86}
@media(max-width:1180px){.email-campaign-detail-stats{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:760px){.email-campaign-detail-stats{grid-template-columns:1fr}.email-campaign-detail-panel .campaign-actions{display:grid;grid-template-columns:1fr}.email-campaign-detail-panel .campaign-actions button{width:100%}}


/* V78 — migrations campagnes : diagnostics et robustesse livraison */
.migration-safe-note{display:flex;gap:.75rem;align-items:flex-start;border:1px solid var(--border);border-radius:16px;padding:1rem;background:linear-gradient(135deg,rgba(255,255,255,.92),rgba(248,250,252,.88));}
.migration-safe-note strong{display:block;color:var(--text);}
.migration-safe-note span{display:block;color:var(--muted);font-size:.9rem;line-height:1.45;}
.email-campaign-system-check{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:.75rem;margin-top:1rem;}
.email-campaign-system-check article{border:1px solid var(--border);border-radius:16px;padding:.9rem;background:var(--surface-soft);min-height:86px;}
.email-campaign-system-check span{display:block;color:var(--muted);font-size:.8rem;text-transform:uppercase;letter-spacing:.06em;font-weight:600;}
.email-campaign-system-check strong{display:block;margin-top:.25rem;font-size:1.05rem;color:var(--text);}
.email-campaign-system-check em{display:block;margin-top:.25rem;color:var(--muted);font-size:.82rem;font-style:normal;}

/* V79 — documents archivés, grille dashboard et filtres documents */
.route-dashboard .dash > .card,
.route-dashboard .two-one > .card,
.route-dashboard .two-one > .quick-panel,
.route-dashboard .grid > .card,
.dash.dashboard-widget > .card + .card,
.two-one.dashboard-widget > .card + .quick-panel{
  margin-top:0!important;
}
.route-dashboard .dash.dashboard-widget,
.route-dashboard .two-one.dashboard-widget{
  align-items:stretch;
}
.route-dashboard .dash.dashboard-widget > .card,
.route-dashboard .two-one.dashboard-widget > .card,
.route-dashboard .two-one.dashboard-widget > .quick-panel{
  min-width:0;
}
.documents-filter-card{margin-bottom:12px;}
.documents-filter-grid{
  grid-template-columns:minmax(300px,460px) auto;
  gap:18px;
  max-width:720px;
  align-items:end;
}
.documents-filter-grid > div{min-width:0;}
.documents-filter-grid select{width:100%;min-width:0;}
.documents-filter-grid button{padding-left:22px;padding-right:22px;}
.pill.muted-pill{background:#f8fafc;color:#64748b;border-color:#e2e8f0;}
td.actions .danger-link{color:#b91c1c!important;}
td.actions .danger-link:hover{background:#fef2f2!important;color:#991b1b!important;}
@media(max-width:760px){
  .documents-filter-grid{grid-template-columns:1fr;max-width:none;gap:10px;}
  .documents-filter-grid button{width:100%;}
}

/* V80 — cycle de vie documents + filtres exploitables */
.documents-filter-card{padding:16px 18px;margin-bottom:14px;}
.documents-filter-grid{
  grid-template-columns:minmax(260px,1.1fr) minmax(220px,.9fr) auto;
  gap:16px;
  max-width:960px;
}
.documents-filter-actions{display:flex;gap:10px;align-items:end;flex-wrap:wrap;}
.documents-filter-actions .btn,.documents-filter-actions button{min-height:44px;white-space:nowrap;}
.documents-table-card .is-archived-row td{background:#fafafa;}
td.actions.document-actions{flex-wrap:wrap;align-items:center;}
td.actions .restore-link{color:#2563eb!important;}
td.actions .restore-link:hover{background:#eff6ff!important;color:#1d4ed8!important;}
@media(max-width:980px){
  .documents-filter-grid{grid-template-columns:1fr 1fr;max-width:none;}
  .documents-filter-actions{grid-column:1/-1;}
}
@media(max-width:640px){
  .documents-filter-grid{grid-template-columns:1fr;gap:10px;}
  .documents-filter-actions{display:grid;grid-template-columns:1fr;width:100%;}
  .documents-filter-actions .btn,.documents-filter-actions button{width:100%;}
}

/* V81 — menu gauche : Tableau de bord placé sous Recherche */
.sidebar .nav-panel .side-link{scroll-margin-top:12px;}



/* V82 — Tableau de bord hors du menu Travail + icônes légèrement agrandies */
.sidebar-dashboard-shortcut{
  margin:6px 0 10px;
  padding-bottom:10px;
  border-bottom:1px solid var(--line);
}
.sidebar-dashboard-shortcut .side-link,
.mobile-page-dashboard-shortcut .side-link{
  background:#f8fafc;
  border:1px solid rgba(37,99,235,.12);
}
.sidebar-dashboard-shortcut .side-link.active,
.mobile-page-dashboard-shortcut .side-link.active{
  background:#eff6ff;
  border-color:rgba(37,99,235,.24);
}
.side-icon{
  width:28px;
  height:28px;
  min-width:28px;
  font-size:15px;
  border-radius:11px;
}
.side-link{
  gap:11px;
}
.mobile-page-dashboard-shortcut{
  margin:2px 0 0;
}
@media(max-width:1100px){
  .side-icon{width:27px;height:27px;min-width:27px;font-size:14px;}
}


/* V83 — recherche menu + séparation Tableau de bord + hub admin */
.sidebar-search button{font-size:21px;line-height:1;}
.sidebar-dashboard-shortcut{
  margin:10px 0 10px;
  padding-top:12px;
  padding-bottom:0;
  border-top:1px solid var(--line);
  border-bottom:0!important;
}
.mobile-page-dashboard-shortcut{
  margin:8px 0 0;
  padding-top:10px;
  border-top:1px solid var(--line);
}
.sidebar-admin-shortcut .side-link,
.mobile-page-admin-shortcut .side-link{
  background:#111827;
  color:#fff;
  border:1px solid #111827;
}
.sidebar-admin-shortcut .side-icon,
.mobile-page-admin-shortcut .side-icon{
  background:rgba(255,255,255,.14);
  color:#fff;
}
.sidebar-admin-shortcut .side-link:hover,
.mobile-page-admin-shortcut .side-link:hover{
  background:#020617;
  color:#fff;
}
.admin-hub-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin-top:18px;}
.admin-hub-card{display:grid;gap:10px;align-content:start;}
.admin-hub-card h2{margin:0;font-size:18px;}
.admin-link-list{display:grid;gap:8px;margin-top:4px;}
.admin-link{display:flex;align-items:center;justify-content:space-between;gap:12px;border:1px solid var(--line);border-radius:14px;background:#fff;padding:12px 13px;text-decoration:none;font-weight:600;color:#0f172a;}
.admin-link:hover{background:#f8fafc;border-color:var(--line-strong);}
.admin-link em{font-style:normal;color:var(--muted);font-size:12px;font-weight:600;}
@media(max-width:820px){.admin-hub-grid{grid-template-columns:1fr;}.sidebar-search button{font-size:20px;}}


/* V84 — commandes rapides désactivées + admin nettoyée */
.sidebar-search button{font-size:23px;line-height:1;}
.command-trigger,.mobile-command-button,.mobile-page-command{display:none!important;}
.side-bottom-blocks{gap:12px;}
.sidebar-admin-shortcut{margin:0 0 14px;}
.sidebar-admin-shortcut + .menu-highlights{margin-top:4px;}
.mobile-page-admin-shortcut{margin-bottom:12px;}
.mobile-page-admin-shortcut + .mobile-page-bottom-blocks{margin-top:16px;}
.admin-hub-grid.admin-hub-grid-clean{grid-template-columns:repeat(2,minmax(0,1fr));}
.admin-hub-card.admin-only{border-color:rgba(37,99,235,.18);}
@media(max-width:820px){.sidebar-search button{font-size:21px;}.admin-hub-grid.admin-hub-grid-clean{grid-template-columns:1fr;}}

/* V85 — menus utilisateurs propres : Organisation/Exploitation hors console admin */
.sidebar-search button{font-size:25px;line-height:1;}
.sidebar-dashboard-shortcut{margin:10px 0 12px;padding-top:12px;border-top:1px solid var(--line);}
.nav-tab{min-height:44px;padding:8px 10px;}
.nav-tab span{font-size:12.5px;}
.nav-tab small{font-size:9px;}
.side-icon{width:28px;height:28px;min-width:28px;font-size:15px;}
.side-link{gap:10px;}
.sidebar-admin-shortcut{margin:0 0 18px;}
.sidebar-admin-shortcut + .menu-highlights{margin-top:12px;}
.mobile-page-admin-shortcut{margin-bottom:18px;}
.mobile-page-admin-shortcut + .mobile-page-bottom-blocks{margin-top:18px;}
@media(max-width:820px){.sidebar-search button{font-size:23px}.side-icon{width:26px;height:26px;min-width:26px;font-size:14px;}}

/* V86 — garde-fous visuels : l'utilisateur ne voit pas les raccourcis techniques */
.sidebar-admin-shortcut{margin-bottom:20px;}
.sidebar-admin-shortcut + .menu-highlights{margin-top:14px;}
.mobile-page-admin-shortcut{margin-bottom:20px;}
.mobile-page-admin-shortcut + .mobile-page-bottom-blocks{margin-top:20px;}

/* V87 — fusion Exploitation + Outils email, UI email plus lisible */
.email-tool-head{
  align-items:stretch;
  padding:22px;
  border:1px solid rgba(37,99,235,.12);
  border-radius:24px;
  background:
    radial-gradient(circle at 8% 0%, rgba(37,99,235,.12), transparent 32rem),
    linear-gradient(135deg,#fff,#f8fbff 58%,#eef6ff);
  box-shadow:0 18px 44px rgba(15,23,42,.055);
  margin-bottom:14px;
}
.email-tool-head h1{margin-bottom:8px;letter-spacing:-.055em;}
.email-tool-head p:not(.eyebrow){margin-bottom:0;color:#334155;max-width:860px;}
.email-tool-actions{align-self:flex-start;display:flex;flex-wrap:wrap;gap:10px;justify-content:flex-end;}
.email-tool-actions .btn{min-height:42px;white-space:nowrap;background:rgba(255,255,255,.88);}
.email-tool-switcher{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(190px,1fr));
  gap:10px;
  margin:0 0 18px;
}
.email-tool-pill{
  min-height:82px;
  display:grid;
  grid-template-columns:40px minmax(0,1fr);
  grid-template-areas:"icon title" "icon hint";
  gap:3px 11px;
  align-content:center;
  border:1px solid rgba(148,163,184,.26);
  border-radius:18px;
  padding:13px 14px;
  background:rgba(255,255,255,.92);
  text-decoration:none;
  box-shadow:0 8px 22px rgba(15,23,42,.035);
  transition:transform .14s ease,border .14s ease,box-shadow .14s ease,background .14s ease;
}
.email-tool-pill:hover{transform:translateY(-1px);border-color:rgba(37,99,235,.30);box-shadow:0 16px 34px rgba(15,23,42,.07);background:#fff;}
.email-tool-pill span{grid-area:icon;width:40px;height:40px;border-radius:14px;display:inline-flex;align-items:center;justify-content:center;background:#f1f5f9;color:#0f172a;font-weight:600;font-size:18px;}
.email-tool-pill strong{grid-area:title;display:block;color:#0f172a;font-size:14px;font-weight:600;line-height:1.12;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.email-tool-pill em{grid-area:hint;display:block;color:#64748b;font-size:12px;font-style:normal;font-weight:600;line-height:1.25;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.email-tool-pill.active{border-color:rgba(37,99,235,.38);background:linear-gradient(135deg,#eff6ff,#fff);box-shadow:0 14px 34px rgba(37,99,235,.10);}
.email-tool-pill.active span{background:#1d4ed8;color:#fff;}
.email-tool-pill.admin-only{border-style:dashed;}
.email-tool-switcher.admin-switcher .email-tool-pill.active span{background:#111827;color:#fff;}
.email-campaign-system-card,.campaign-create-card,.email-quota-card,.audience-card,.email-ops-card,.email-template-card,.email-template-editor-card{border-radius:24px;}
.email-campaign-system-card,.campaign-create-card{border-color:rgba(37,99,235,.14);box-shadow:0 14px 36px rgba(15,23,42,.045);}
.email-campaign-system-check article{background:linear-gradient(180deg,#fff,#f8fafc);border-color:rgba(148,163,184,.28);}
.campaign-create-grid{gap:16px;}
.campaign-create-grid label,.email-filter-grid label,.audience-filter-grid label{color:#1f2937;font-size:12px;text-transform:uppercase;letter-spacing:.06em;}
.campaign-send-actions{padding:12px;border:1px solid rgba(37,99,235,.12);border-radius:18px;background:#f8fbff;}
.audience-filter-grid{display:grid;grid-template-columns:minmax(260px,1fr) auto;gap:14px;align-items:end;}
.audience-quota-card{background:linear-gradient(135deg,#fff,#f8fafc);border-color:rgba(148,163,184,.28);}
.audience-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;align-items:start;}
.email-status-rail,.audience-status-rail{margin-top:18px;}
.email-status-rail .stat-card,.audience-status-rail .stat{border-color:rgba(148,163,184,.26);background:linear-gradient(180deg,#fff,#fbfdff);}
.email-template-grid{gap:18px;}
.email-template-card{transition:transform .14s ease,border .14s ease,box-shadow .14s ease;}
.email-template-card:hover{transform:translateY(-2px);border-color:rgba(37,99,235,.20);box-shadow:0 18px 42px rgba(15,23,42,.075);}
.route-emails-campagnes .email-campaign-table tbody tr:hover,
.route-emails-audience .audience-table tbody tr:hover,
.route-emails .email-queue-table tbody tr:hover{background:#f8fbff;}
.nav-tab[data-nav-tab-button="tools"]{border-color:rgba(37,99,235,.10);}
.nav-tab[data-nav-tab-button="tools"].active{background:#111827;color:#fff;border-color:#111827;}
.nav-tab[data-nav-tab-button="tools"].active small{color:rgba(255,255,255,.72);}
@media(max-width:900px){
  .email-tool-head{display:grid;gap:14px;padding:18px;}
  .email-tool-actions{justify-content:flex-start;}
  .email-tool-switcher{grid-template-columns:1fr 1fr;}
  .audience-grid{grid-template-columns:1fr;}
  .audience-filter-grid{grid-template-columns:1fr;}
  .audience-filter-grid button{width:100%;}
}
@media(max-width:560px){
  .email-tool-switcher{grid-template-columns:1fr;}
  .email-tool-pill{min-height:72px;}
  .email-tool-actions{display:grid;grid-template-columns:1fr;width:100%;}
  .email-tool-actions .btn{width:100%;}
  .campaign-send-actions{display:grid;grid-template-columns:1fr;}
}

/* V88 — menu Action + quotas email dans Stockage */
.nav-tab-link{text-decoration:none;}
.nav-tab-link:focus-visible{outline:3px solid rgba(37,99,235,.28);outline-offset:2px;}
.menu-highlight .menu-email-quota{color:#1d4ed8;font-weight:600;}
.mobile-page-group-title-link{display:inline-flex;align-items:center;gap:6px;color:#111827;text-decoration:none;}
.mobile-page-group-title-link:hover{text-decoration:underline;}

/* V89 — état actif des catégories + boutons haut droit harmonisés */
.nav-tab.active,
.nav-tab-link.active{
  background:#111827!important;
  color:#fff!important;
  border-color:#111827!important;
  box-shadow:0 10px 24px rgba(17,24,39,.12);
}
.nav-tab.active small,
.nav-tab-link.active small{
  color:rgba(255,255,255,.72)!important;
}
.nav-tab:focus-visible,
.nav-tab-link:focus-visible{
  outline:3px solid rgba(17,24,39,.24);
  outline-offset:2px;
}
.nav-tab[data-nav-tab-button="tools"].active{background:#111827;color:#fff;border-color:#111827;}
.page-head .head-actions,
.page-head .page-actions,
.email-tool-head .page-actions{
  align-items:center;
  gap:10px;
}
.page-head .head-actions .btn,
.page-head .page-actions .btn,
.page-head .head-actions button,
.page-head .page-actions button,
.email-tool-head .page-actions .btn,
.email-tool-head .page-actions button{
  min-height:44px;
  height:44px;
  padding:0 15px;
  border-radius:14px;
  font-size:13px;
  font-weight:600;
  line-height:1;
  white-space:nowrap;
  box-shadow:0 1px 2px rgba(15,23,42,.045);
}
.page-head .head-actions .btn.secondary,
.page-head .page-actions .btn.secondary,
.email-tool-head .page-actions .btn.secondary{
  background:#fff;
  color:#111827;
  border-color:#cbd5e1;
}
.page-head .head-actions .btn:not(.secondary),
.page-head .page-actions .btn:not(.secondary),
.email-tool-head .page-actions .btn:not(.secondary),
.page-head .head-actions button:not(.link-button),
.page-head .page-actions button:not(.link-button),
.email-tool-head .page-actions button:not(.link-button){
  background:#111827;
  color:#fff;
  border-color:#111827;
}
.page-head .head-actions form,
.page-head .page-actions form,
.email-tool-head .page-actions form{margin:0;display:inline-flex;}
@media(max-width:720px){
  .page-head .head-actions .btn,
  .page-head .page-actions .btn,
  .page-head .head-actions button,
  .page-head .page-actions button,
  .email-tool-head .page-actions .btn,
  .email-tool-head .page-actions button{height:auto;min-height:44px;width:100%;}
}


/* v90 — actions haut droit compactes, sans boutons excédentaires */
.desktop-top-shortcuts{
  position:sticky;
  top:0;
  z-index:35;
  display:flex;
  justify-content:flex-end;
  align-items:center;
  min-height:0;
  padding:10px 24px 0;
  pointer-events:none;
}
.desktop-top-shortcuts .desktop-dashboard-button{
  pointer-events:auto;
  background:#fff;
  box-shadow:0 6px 20px rgba(15,23,42,.06);
}
.page-head{align-items:flex-start}
.page-head > .btn,
.page-head > .head-actions .btn,
.page-head > .head-actions button{
  min-height:34px;
  padding:7px 11px;
  border-radius:9px;
  font-size:12px;
  line-height:1.15;
  white-space:nowrap;
}
.page-head > .head-actions{
  gap:6px;
  align-self:flex-start;
  padding-top:2px;
}
.route-coproperties .page-head > .btn,
.route-meetings .page-head > .btn,
.route-owners .page-head > .btn,
.route-lots .page-head > .btn,
.route-suppliers .page-head > .btn{
  min-height:32px;
  padding:7px 10px;
}
@media(max-width:1100px){
  .desktop-top-shortcuts{display:none}
}
@media(max-width:620px){
  .page-head > .btn,
  .page-head > .head-actions .btn,
  .page-head > .head-actions button{
    width:100%;
    min-height:38px;
  }
}


/* v91 — boutons haut droit: pas de raccourci Tableau de bord sur les pages */
@media (min-width:1101px){
  .desktop-top-shortcuts{
    position:fixed!important;
    top:12px;
    right:22px;
    z-index:90;
    display:flex!important;
    justify-content:flex-end;
    align-items:center;
    padding:0!important;
    pointer-events:none;
  }
  .desktop-top-shortcuts .desktop-dashboard-button{
    pointer-events:auto;
    height:32px!important;
    min-height:32px!important;
    padding:0 10px!important;
    border-radius:999px!important;
    font-size:12px!important;
    line-height:1!important;
    box-shadow:0 8px 24px rgba(15,23,42,.09)!important;
  }
}
.page-head > .btn,
.page-head > .head-actions .btn,
.page-head > .head-actions button,
.page-head > .page-actions .btn,
.page-head > .page-actions button{
  height:32px!important;
  min-height:32px!important;
  padding:0 10px!important;
  border-radius:10px!important;
  font-size:12px!important;
  line-height:1!important;
}
.route-coproperties .page-head > .btn,
.route-meetings .page-head > .btn,
.route-owners .page-head > .btn,
.route-lots .page-head > .btn,
.route-suppliers .page-head > .btn,
.route-reminders .page-head > .btn{
  height:31px!important;
  min-height:31px!important;
  padding:0 10px!important;
}
.page-head > .page-actions,
.page-head > .head-actions{
  gap:6px!important;
  align-self:flex-start!important;
}
@media(max-width:620px){
  .page-head > .btn,
  .page-head > .head-actions .btn,
  .page-head > .head-actions button,
  .page-head > .page-actions .btn,
  .page-head > .page-actions button{
    height:36px!important;
    min-height:36px!important;
    width:100%;
  }
}


/* v91 — aucun bouton Tableau de bord en haut à droite des pages */
.desktop-top-shortcuts,
.desktop-dashboard-button{display:none!important;}


/* V93 — Copropriétés remplace Registres comme entrée de section, Action n'est plus une page */
.nav-tab-link[data-nav-tab-button="registry"] small{font-weight:600;}
.route-actions .app-container{max-width:980px;}

/* V93 — Action/Syndic + liaison copropriétaire/lot */
.inline-submit-field{display:flex;align-items:flex-end}.inline-submit-field button{width:100%}.compact-row-actions{align-items:end}.route-coproprietaires .detail-card .compact-form{gap:12px}.route-coproprietaires .detail-card .compact-form .row{align-items:end}
@media (max-width:760px){.inline-submit-field{align-items:stretch}.inline-submit-field button{width:100%}}


/* V95 — droits d’accès : santé système strictement admin, partages documentaires réservés owner/admin. */


/* V95 — outils utilisateurs simples + tableau de bord nettoyé. */

/* V96 — équipe épurée, statistiques V70 sur une ligne, prestataires dans Syndic. */
.grid.four{grid-template-columns:repeat(4,minmax(0,1fr));}
.team-policy-wide{max-width:none;}
.team-rule-list{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:0;padding-left:18px;}
.team-stats-line{grid-template-columns:repeat(4,minmax(0,1fr))!important;align-items:stretch;}
.activity-stats{grid-template-columns:repeat(3,minmax(0,1fr));}
.team-stats-line .metric-card{min-height:104px;display:flex;flex-direction:column;justify-content:center;}
@media(max-width:860px){.grid.four,.team-stats-line{grid-template-columns:repeat(2,minmax(0,1fr))!important}.team-rule-list{grid-template-columns:1fr}}
@media(max-width:520px){.grid.four,.team-stats-line{grid-template-columns:1fr!important}}


/* V97 — Équipe : suppression du bloc Règle V70 et cartes statistiques uniformes. */
.team-stats-line{
  display:grid!important;
  grid-template-columns:repeat(4,minmax(0,1fr))!important;
  align-items:stretch!important;
}
.team-stats-line .metric-card{
  height:100%;
  min-height:118px;
  display:grid!important;
  grid-template-rows:auto auto 1fr;
  align-content:center;
  justify-items:start;
  gap:4px;
}
.team-stats-line .metric-card span,
.team-stats-line .metric-card strong,
.team-stats-line .metric-card em{width:100%;}
@media(max-width:860px){.team-stats-line{grid-template-columns:repeat(2,minmax(0,1fr))!important}}
@media(max-width:520px){.team-stats-line{grid-template-columns:1fr!important}.team-stats-line .metric-card{min-height:104px}}


/* V98 — Équipe : 4 blocs statistiques strictement égaux. */
.route-equipe .team-stats-line{
  display:grid!important;
  grid-template-columns:repeat(4,minmax(0,1fr))!important;
  gap:12px!important;
  align-items:stretch!important;
  margin-top:16px!important;
}
.route-equipe .team-stats-line > .metric-card{
  box-sizing:border-box!important;
  width:100%!important;
  min-width:0!important;
  height:100%!important;
  min-height:126px!important;
  margin:0!important;
  padding:18px 18px!important;
  display:flex!important;
  flex-direction:column!important;
  justify-content:center!important;
  align-items:flex-start!important;
  gap:6px!important;
}
.route-equipe .team-stats-line > .metric-card span,
.route-equipe .team-stats-line > .metric-card strong,
.route-equipe .team-stats-line > .metric-card em{
  display:block!important;
  width:100%!important;
  margin:0!important;
  padding:0!important;
}
.route-equipe .team-stats-line > .metric-card span{
  line-height:1.2!important;
}
.route-equipe .team-stats-line > .metric-card strong{
  line-height:1!important;
}
.route-equipe .team-stats-line > .metric-card em{
  line-height:1.3!important;
  min-height:16px!important;
}
@media(max-width:980px){
  .route-equipe .team-stats-line{grid-template-columns:repeat(2,minmax(0,1fr))!important;}
}
@media(max-width:560px){
  .route-equipe .team-stats-line{grid-template-columns:1fr!important;gap:10px!important;}
  .route-equipe .team-stats-line > .metric-card{min-height:112px!important;padding:16px!important;}
}

/* V99 — Campagnes email alignées sur le style standard, Audience email retirée du visuel. */
.route-emails-campagnes .page-head{margin-bottom:22px;}
.route-emails-campagnes .campaign-create-card{
  background:var(--panel);
  border-color:var(--line);
  box-shadow:var(--shadow);
  border-radius:var(--radius);
  margin-bottom:22px;
}
.route-emails-campagnes .campaign-create-grid{
  display:grid;
  grid-template-columns:minmax(260px,1.35fr) minmax(220px,1fr) minmax(145px,.7fr) minmax(150px,.7fr);
  gap:14px;
  align-items:end;
}
.route-emails-campagnes .campaign-message-field{grid-column:1 / span 3;}
.route-emails-campagnes .campaign-send-actions{justify-content:flex-end;align-self:end;gap:8px;}
.route-emails-campagnes .email-campaign-stats{
  grid-template-columns:repeat(6,minmax(0,1fr));
  gap:12px;
  margin:0 0 22px;
}
.route-emails-campagnes .email-campaign-filter-card{padding:20px;margin-bottom:22px;}
.route-emails-campagnes .email-campaign-filter-card .section-head{margin-bottom:14px;}
.route-emails-campagnes .email-campaign-filter-grid{
  display:grid;
  grid-template-columns:minmax(260px,1.4fr) minmax(180px,.7fr) auto;
  gap:14px;
  align-items:end;
}
.route-emails-campagnes .email-campaign-list-card{overflow:auto;}
.route-emails-campagnes .email-campaign-list-card .table-section-head{
  padding:20px 20px 0;
  margin-bottom:0;
}
.route-emails-campagnes .email-campaign-table{margin-top:16px;}
.route-emails-campagnes .email-campaign-table td:first-child{min-width:260px;max-width:420px;}
.route-emails-campagnes .email-campaign-table td:nth-child(2){min-width:210px;}
.route-emails-campagnes .email-campaign-table .actions{gap:10px;flex-wrap:wrap;}
@media(max-width:1180px){
  .route-emails-campagnes .campaign-create-grid{grid-template-columns:repeat(2,minmax(0,1fr));}
  .route-emails-campagnes .campaign-message-field{grid-column:1/-1;}
  .route-emails-campagnes .campaign-send-actions{grid-column:1/-1;justify-content:flex-start;}
  .route-emails-campagnes .email-campaign-stats{grid-template-columns:repeat(3,minmax(0,1fr));}
  .route-emails-campagnes .email-campaign-filter-grid{grid-template-columns:1fr 220px;}
  .route-emails-campagnes .email-campaign-filter-grid .form-actions-inline{grid-column:1/-1;}
}
@media(max-width:720px){
  .route-emails-campagnes .campaign-create-grid,
  .route-emails-campagnes .email-campaign-filter-grid,
  .route-emails-campagnes .email-campaign-stats{grid-template-columns:1fr;}
  .route-emails-campagnes .campaign-send-actions{display:grid;grid-template-columns:1fr;}
  .route-emails-campagnes .campaign-send-actions .btn,
  .route-emails-campagnes .campaign-send-actions button,
  .route-emails-campagnes .email-campaign-filter-grid .btn,
  .route-emails-campagnes .email-campaign-filter-grid button{width:100%;}
  .route-emails-campagnes .email-campaign-filter-card{padding:16px;}
}

/* V100 — Campagnes multi-contenus + partages alignés. */
.route-emails-campagnes .campaign-create-grid-v100{
  grid-template-columns:minmax(170px,.75fr) minmax(260px,1.25fr) minmax(230px,1fr) minmax(190px,.8fr);
  align-items:end;
}
.route-emails-campagnes .campaign-create-grid-v100 .campaign-owner-select,
.route-emails-campagnes .campaign-create-grid-v100 .campaign-manual-field,
.route-emails-campagnes .campaign-create-grid-v100 .campaign-message-field{grid-column:span 2;}
.route-emails-campagnes .campaign-create-grid-v100 select[multiple]{min-height:148px;padding:10px 12px;}
.route-emails-campagnes .campaign-kind-field.is-hidden{display:none!important;}
.route-emails-campagnes .campaign-create-grid-v100 .campaign-send-actions{grid-column:1/-1;justify-content:flex-end;}
.route-emails-campagnes .campaign-create-grid-v100 small.muted{display:block;margin-top:6px;font-size:.8rem;}
.route-documents-partages .share-stats-grid{display:grid!important;grid-template-columns:repeat(4,minmax(0,1fr))!important;gap:14px!important;align-items:stretch!important;margin-bottom:22px!important;}
.route-documents-partages .share-stats-grid>.stat-card{min-height:112px!important;height:100%!important;display:flex!important;flex-direction:column!important;justify-content:space-between!important;padding:18px!important;}
.route-documents-partages .share-stats-grid>.stat-card span{min-height:20px;}
.route-documents-partages .share-stats-grid>.stat-card strong{font-size:clamp(1.8rem,3vw,2.35rem);line-height:1;}
@media(max-width:1100px){.route-emails-campagnes .campaign-create-grid-v100{grid-template-columns:repeat(2,minmax(0,1fr));}.route-documents-partages .share-stats-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important;}}
@media(max-width:720px){.route-emails-campagnes .campaign-create-grid-v100,.route-documents-partages .share-stats-grid{grid-template-columns:1fr!important;}.route-emails-campagnes .campaign-create-grid-v100 .campaign-owner-select,.route-emails-campagnes .campaign-create-grid-v100 .campaign-manual-field,.route-emails-campagnes .campaign-create-grid-v100 .campaign-message-field{grid-column:1/-1;}.route-emails-campagnes .campaign-create-grid-v100 .campaign-send-actions{display:grid;grid-template-columns:1fr;}}

/* V101 — création campagne email lisible en une seule colonne. */
.route-emails-campagnes .campaign-create-grid-v101{
  display:grid!important;
  grid-template-columns:minmax(0,1fr)!important;
  gap:16px!important;
  align-items:stretch!important;
  max-width:820px;
}
.route-emails-campagnes .campaign-create-grid-v101 > div,
.route-emails-campagnes .campaign-create-grid-v101 .campaign-owner-select,
.route-emails-campagnes .campaign-create-grid-v101 .campaign-manual-field,
.route-emails-campagnes .campaign-create-grid-v101 .campaign-message-field,
.route-emails-campagnes .campaign-create-grid-v101 .campaign-send-actions{
  grid-column:1/-1!important;
  min-width:0;
}
.route-emails-campagnes .campaign-create-grid-v101 .campaign-field-row{
  padding:0;
}
.route-emails-campagnes .campaign-create-grid-v101 label{
  margin-top:0;
}
.route-emails-campagnes .campaign-create-grid-v101 textarea{
  min-height:118px;
}
.route-emails-campagnes .campaign-create-grid-v101 select[multiple]{
  min-height:150px;
  padding:10px 12px;
}
.route-emails-campagnes .campaign-create-grid-v101 .campaign-info-panel{
  border:1px solid var(--line);
  border-radius:16px;
  background:var(--surface-soft);
  padding:14px 16px;
  display:grid;
  gap:8px;
}
.route-emails-campagnes .campaign-create-grid-v101 .campaign-info-panel p{
  margin:0;
  color:var(--muted);
}
.route-emails-campagnes .campaign-create-grid-v101 .campaign-info-panel .pill{
  justify-self:start;
}
.route-emails-campagnes .campaign-create-grid-v101 .campaign-send-actions{
  justify-content:flex-start!important;
  padding-top:8px;
}
.route-emails-campagnes .campaign-create-grid-v101 [data-kind-field].is-hidden,
.route-emails-campagnes .campaign-create-grid-v101 [data-campaign-visible].is-hidden,
.route-emails-campagnes .campaign-create-grid-v101 [data-recipient-visible].is-hidden,
.route-emails-campagnes .campaign-create-grid-v101 [data-document-draft-action].is-hidden{
  display:none!important;
}
@media(max-width:720px){
  .route-emails-campagnes .campaign-create-grid-v101{max-width:none;}
  .route-emails-campagnes .campaign-create-grid-v101 .campaign-send-actions{display:grid;grid-template-columns:1fr;}
  .route-emails-campagnes .campaign-create-grid-v101 .campaign-send-actions .btn,
  .route-emails-campagnes .campaign-create-grid-v101 .campaign-send-actions button{width:100%;}
}

/* V103 — nettoyage visuel du vocabulaire Audience email hérité. */
.route-emails-campagnes .campaign-create-card .muted,
.route-emails-campagnes .email-campaign-list-card small{
  overflow-wrap:anywhere;
}

/* V104 — Démarrage : raccourcis visibles alignés sur les droits utilisateur. */
.route-start .quick-grid .quick-tile strong{word-break:normal}

/* V105 — nettoyage des libellés visibles hérités : plus de Registre métier ni de campagnes uniquement documentaires. */
body .action-overview .section-head h2 {
  letter-spacing: -0.01em;
}


/* V106 — espacements AG & réunions / Rappels.
   Objectif : mêmes respirations, filtres lisibles, onglets collés au bon bloc, formulaires moins écrasés. */
body:is(.route-ag,.route-meetings-php,.route-rappels,.route-reminders-php) .page-head{
  margin-bottom:18px;
  padding-bottom:13px;
}
body:is(.route-ag,.route-meetings-php,.route-rappels,.route-reminders-php) .page-head > .btn,
body:is(.route-ag,.route-meetings-php,.route-rappels,.route-reminders-php) .page-head > .secondary{
  flex:none;
}
body:is(.route-ag,.route-meetings-php,.route-rappels,.route-reminders-php) .filters.inline-filters{
  margin:0 0 14px;
  padding:16px 18px;
  border-radius:18px;
}
body:is(.route-ag,.route-meetings-php,.route-rappels,.route-reminders-php) .compact-filter-grid{
  grid-template-columns:minmax(260px,420px) auto;
  gap:14px;
  align-items:end;
  max-width:none;
}
body:is(.route-ag,.route-meetings-php,.route-rappels,.route-reminders-php) .compact-filter-grid label{
  margin-bottom:6px;
}
body:is(.route-ag,.route-meetings-php,.route-rappels,.route-reminders-php) .compact-filter-grid button{
  min-width:118px;
}
body:is(.route-ag,.route-meetings-php,.route-rappels,.route-reminders-php) .tabs{
  margin:0 0 14px;
  gap:9px;
}
body:is(.route-ag,.route-meetings-php,.route-rappels,.route-reminders-php) .tabs a{
  min-height:36px;
  padding:8px 13px;
}
body:is(.route-ag,.route-meetings-php,.route-rappels,.route-reminders-php) .table-card{
  margin-top:0;
}
body:is(.route-ag,.route-meetings-php,.route-rappels,.route-reminders-php) .table-card th,
body:is(.route-ag,.route-meetings-php,.route-rappels,.route-reminders-php) .table-card td{
  padding-top:13px;
  padding-bottom:13px;
}
body:is(.route-ag,.route-meetings-php,.route-rappels,.route-reminders-php) td.actions{
  gap:8px;
}
body:is(.route-ag-nouvelle,.route-meeting-new-php,.route-rappels-nouveau,.route-reminder-new-php) .page-head{
  margin-bottom:18px;
}
body:is(.route-ag-nouvelle,.route-meeting-new-php,.route-rappels-nouveau,.route-reminder-new-php) .card.wide.form-card{
  padding:20px;
}
body:is(.route-ag-nouvelle,.route-meeting-new-php,.route-rappels-nouveau,.route-reminder-new-php) .form-compact{
  display:grid;
  gap:14px;
  max-width:900px;
}
body:is(.route-ag-nouvelle,.route-meeting-new-php,.route-rappels-nouveau,.route-reminder-new-php) .form-compact .form-section{
  padding:18px;
  border-radius:16px;
}
body:is(.route-ag-nouvelle,.route-meeting-new-php,.route-rappels-nouveau,.route-reminder-new-php) .form-compact .form-section-title{
  margin-bottom:13px;
  padding-bottom:12px;
}
body:is(.route-ag-nouvelle,.route-meeting-new-php,.route-rappels-nouveau,.route-reminder-new-php) .form-compact .row{
  gap:14px;
}
body:is(.route-ag-nouvelle,.route-meeting-new-php,.route-rappels-nouveau,.route-reminder-new-php) .form-compact label{
  margin-top:11px;
  margin-bottom:6px;
}
body:is(.route-ag-nouvelle,.route-meeting-new-php,.route-rappels-nouveau,.route-reminder-new-php) .form-compact .form-section-title + .row,
body:is(.route-ag-nouvelle,.route-meeting-new-php,.route-rappels-nouveau,.route-reminder-new-php) .form-compact .form-section-title + label{
  margin-top:0;
}
body:is(.route-ag-nouvelle,.route-meeting-new-php,.route-rappels-nouveau,.route-reminder-new-php) .form-actions-sticky{
  margin-top:2px;
  padding:12px;
}
@media(max-width:760px){
  body:is(.route-ag,.route-meetings-php,.route-rappels,.route-reminders-php) .compact-filter-grid{grid-template-columns:1fr;}
  body:is(.route-ag,.route-meetings-php,.route-rappels,.route-reminders-php) .compact-filter-grid button{width:100%;}
  body:is(.route-ag-nouvelle,.route-meeting-new-php,.route-rappels-nouveau,.route-reminder-new-php) .card.wide.form-card{padding:16px;}
  body:is(.route-ag-nouvelle,.route-meeting-new-php,.route-rappels-nouveau,.route-reminder-new-php) .form-compact .form-section{padding:16px;}
}


/* V107 — Assistant AG : contrôle convocation, destinataires et documents utiles. */
body .ag-assistant-card{
  border:1px solid rgba(15,23,42,.09);
  box-shadow:0 18px 45px rgba(15,23,42,.08);
}
body .ag-assistant-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:16px;
  align-items:stretch;
  margin-top:16px;
}
body .ag-assistant-panel{
  border:1px solid rgba(15,23,42,.08);
  border-radius:18px;
  background:#f8fafc;
  padding:16px;
  min-height:100%;
}
body .ag-assistant-panel>strong{
  display:block;
  margin-bottom:12px;
  color:#0f172a;
}
body .assistant-metrics{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:8px;
}
body .assistant-metrics span{
  display:flex;
  flex-direction:column;
  gap:2px;
  border-radius:14px;
  background:#fff;
  padding:10px;
  border:1px solid rgba(15,23,42,.06);
}
body .assistant-metrics b{font-size:1.35rem;color:#0f172a;line-height:1;}
body .assistant-metrics em{font-style:normal;font-size:.74rem;color:#64748b;line-height:1.2;}
body .assistant-preview-list{display:grid;gap:7px;margin-top:12px;}
body .assistant-preview-list span{
  display:flex;
  flex-direction:column;
  gap:2px;
  padding:8px 10px;
  border-radius:12px;
  background:#fff;
  border:1px solid rgba(15,23,42,.06);
  font-size:.88rem;
}
body .assistant-preview-list em{font-style:normal;color:#64748b;font-size:.78rem;}
body .ag-checklist{list-style:none;padding:0;margin:0;display:grid;gap:8px;}
body .ag-checklist li{
  display:flex;
  gap:10px;
  align-items:flex-start;
  border-radius:14px;
  background:#fff;
  border:1px solid rgba(15,23,42,.06);
  padding:10px;
}
body .ag-checklist li>span{
  width:24px;height:24px;display:grid;place-items:center;border-radius:999px;
  font-weight:600;font-size:.8rem;flex:0 0 auto;
}
body .ag-checklist li.ok>span{background:#dcfce7;color:#166534;}
body .ag-checklist li.todo>span{background:#fef3c7;color:#92400e;}
body .ag-checklist b{display:block;color:#0f172a;font-size:.9rem;}
body .ag-checklist em{display:block;font-style:normal;color:#64748b;font-size:.8rem;margin-top:1px;}
body .assistant-doc-list{display:grid;gap:8px;}
body .assistant-doc-list a{
  display:flex;justify-content:space-between;gap:10px;align-items:center;
  padding:10px 12px;border-radius:14px;background:#fff;border:1px solid rgba(15,23,42,.06);text-decoration:none;color:#0f172a;
}
body .assistant-doc-list a:hover{border-color:#0f172a;}
body .assistant-doc-list span{font-weight:600;font-size:.9rem;}
body .assistant-doc-list em{font-style:normal;color:#64748b;font-size:.78rem;white-space:nowrap;}
body .ag-assistant-actions{margin-top:16px;gap:10px;flex-wrap:wrap;}
@media (max-width:1100px){
  body .ag-assistant-grid{grid-template-columns:1fr;}
}
@media (max-width:640px){
  body .assistant-metrics{grid-template-columns:1fr;}
  body .ag-assistant-actions .btn{width:100%;justify-content:center;}
}


/* V108 — registre opérationnel des décisions AG */
body .decision-register-stats{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:18px;}
body .decision-register-stats .stat{height:100%;min-height:104px;display:flex;flex-direction:column;justify-content:center;}
body .decision-register-tabs{margin:14px 0 18px;}
body .decision-register-list{display:grid;gap:14px;}
body .decision-register-card{display:grid;gap:14px;padding:18px;}
body .decision-register-main{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:16px;align-items:start;}
body .decision-register-main h2{margin:2px 0 6px;font-size:clamp(18px,2.1vw,22px);line-height:1.18;}
body .decision-register-badges{display:flex;gap:8px;align-items:flex-start;justify-content:flex-end;flex-wrap:wrap;}
body .decision-register-meta{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;}
body .decision-register-meta span{display:grid;gap:3px;border:1px solid var(--line);border-radius:13px;background:#fff;padding:10px 12px;color:var(--muted);font-size:12px;}
body .decision-register-meta strong{color:#111827;font-size:11px;text-transform:uppercase;letter-spacing:.08em;}
body .decision-register-update{display:grid;grid-template-columns:150px 150px minmax(160px,.8fr) minmax(220px,1fr) auto;gap:10px;align-items:end;border:1px solid var(--line);background:#fafafa;border-radius:15px;padding:12px;}
body .decision-register-update label{display:grid;gap:6px;margin:0;font-size:12px;color:#475569;font-weight:600;}
body .decision-register-update input,
body .decision-register-update select{min-height:38px;}
body .decision-register-links{justify-content:flex-end;}
body .decision-action-form .row.three{grid-template-columns:repeat(3,minmax(0,1fr));}
body .decision-register-card.is-blocked{border-color:#fecaca;background:#fffafa;}
body .decision-register-card.is-done{background:#f8fafc;}
@media(max-width:980px){
  body .decision-register-stats{grid-template-columns:repeat(2,minmax(0,1fr));}
  body .decision-register-main,
  body .decision-register-meta{grid-template-columns:1fr;}
  body .decision-register-badges{justify-content:flex-start;}
  body .decision-register-update{grid-template-columns:1fr 1fr;}
  body .decision-register-update button{grid-column:1/-1;}
  body .decision-action-form .row.three{grid-template-columns:1fr;}
}
@media(max-width:620px){
  body .decision-register-stats,
  body .decision-register-update{grid-template-columns:1fr;}
  body .decision-register-links{display:grid;grid-template-columns:1fr;width:100%;}
}


/* V109 — AG & Décisions AG déplacées dans l’onglet Copropriétés. */

/* V110 — correction du type AG extraordinaire et titre synchronisé. */
.route-meeting-new .form-help {
    display: block;
    margin: .35rem 0 0;
    color: var(--muted);
    font-size: .86rem;
}

/* V111 — espacements AG/Décisions AG + calendrier opérationnel. */
body.route-ag .filters.inline-filters,
body.route-meetings-php .filters.inline-filters,
body.route-ag-decisions .filters.inline-filters,
body.route-decision-register-php .filters.inline-filters{
  margin:0 0 18px!important;
  padding:18px!important;
  border-radius:20px!important;
}
body.route-ag .compact-filter-grid,
body.route-meetings-php .compact-filter-grid,
body.route-ag-decisions .compact-filter-grid,
body.route-decision-register-php .compact-filter-grid{
  display:grid!important;
  grid-template-columns:minmax(280px,440px) auto!important;
  gap:16px!important;
  align-items:end!important;
  max-width:none!important;
}
body.route-ag .compact-filter-grid label,
body.route-meetings-php .compact-filter-grid label,
body.route-ag-decisions .compact-filter-grid label,
body.route-decision-register-php .compact-filter-grid label{
  display:grid!important;
  gap:8px!important;
  margin:0!important;
}
body.route-ag .compact-filter-grid button,
body.route-meetings-php .compact-filter-grid button,
body.route-ag-decisions .compact-filter-grid button,
body.route-decision-register-php .compact-filter-grid button{
  min-height:44px!important;
  align-self:end!important;
}
body.route-ag .tabs,
body.route-meetings-php .tabs,
body.route-ag-decisions .tabs,
body.route-decision-register-php .tabs{
  margin:0 0 18px!important;
  gap:10px!important;
}
body.route-ag-decisions .decision-register-stats,
body.route-decision-register-php .decision-register-stats{
  display:grid!important;
  grid-template-columns:repeat(4,minmax(0,1fr))!important;
  gap:14px!important;
  align-items:stretch!important;
  margin-bottom:22px!important;
}
body.route-ag-decisions .decision-register-stats .stat,
body.route-decision-register-php .decision-register-stats .stat{
  min-height:116px!important;
  height:100%!important;
  display:flex!important;
  flex-direction:column!important;
  justify-content:space-between!important;
  padding:18px!important;
}
body.route-ag-decisions .decision-register-tabs,
body.route-decision-register-php .decision-register-tabs{margin-top:0!important;}
body.route-ag-decisions .decision-register-list,
body.route-decision-register-php .decision-register-list{gap:16px!important;}
body.route-ag-decisions .decision-register-update,
body.route-decision-register-php .decision-register-update{gap:12px!important;}

.route-calendrier .calendar-stats{
  display:grid!important;
  grid-template-columns:repeat(4,minmax(0,1fr))!important;
  gap:14px!important;
  align-items:stretch!important;
  margin-bottom:22px!important;
}
.route-calendrier .calendar-stats .stat{
  min-height:112px!important;
  height:100%!important;
  display:flex!important;
  flex-direction:column!important;
  justify-content:space-between!important;
  padding:18px!important;
}
.route-calendrier .calendar-filters{margin-bottom:18px!important;padding:18px!important;border-radius:20px!important;}
.route-calendrier .calendar-filter-grid{
  display:grid!important;
  grid-template-columns:minmax(180px,.45fr) minmax(260px,1fr) auto!important;
  gap:16px!important;
  align-items:end!important;
}
.route-calendrier .calendar-filter-grid label{display:grid!important;gap:8px!important;margin:0!important;}
.route-calendrier .calendar-filter-grid button{min-height:44px!important;align-self:end!important;}
.route-calendrier .calendar-month-nav{display:flex;gap:8px;flex-wrap:wrap;margin-top:14px;padding-top:14px;border-top:1px solid var(--line);}
.route-calendrier .calendar-list{display:grid;gap:14px;}
.route-calendrier .calendar-day{display:grid;grid-template-columns:180px minmax(0,1fr);gap:18px;align-items:start;padding:18px!important;}
.route-calendrier .calendar-day-date{display:grid;gap:4px;align-content:start;}
.route-calendrier .calendar-day-date strong{font-size:1.05rem;color:#111827;}
.route-calendrier .calendar-day-date span{font-size:.82rem;color:var(--muted);}
.route-calendrier .calendar-day-events{display:grid;gap:10px;}
.route-calendrier .calendar-event{display:grid;gap:4px;text-decoration:none;color:#111827;border:1px solid var(--line);border-radius:14px;background:#fff;padding:12px 14px;}
.route-calendrier .calendar-event:hover{border-color:#111827;box-shadow:var(--shadow-soft);}
.route-calendrier .calendar-event-type{font-size:.72rem;text-transform:uppercase;letter-spacing:.09em;font-weight:600;color:#475569;}
.route-calendrier .calendar-event strong{font-size:.98rem;line-height:1.2;}
.route-calendrier .calendar-event em{font-style:normal;font-size:.84rem;color:var(--muted);}
.route-calendrier .calendar-event.is-meeting{background:#fbfdff;}
.route-calendrier .calendar-event.is-reminder{background:#fffdf7;}
.route-calendrier .calendar-event.is-decision{background:#fbfff9;}
@media(max-width:980px){
  body.route-ag-decisions .decision-register-stats,
  body.route-decision-register-php .decision-register-stats,
  .route-calendrier .calendar-stats{grid-template-columns:repeat(2,minmax(0,1fr))!important;}
  .route-calendrier .calendar-filter-grid{grid-template-columns:1fr 1fr!important;}
  .route-calendrier .calendar-filter-grid button{grid-column:1/-1;width:100%;}
  .route-calendrier .calendar-day{grid-template-columns:1fr;gap:12px;}
}
@media(max-width:760px){
  body.route-ag .compact-filter-grid,
  body.route-meetings-php .compact-filter-grid,
  body.route-ag-decisions .compact-filter-grid,
  body.route-decision-register-php .compact-filter-grid,
  .route-calendrier .calendar-filter-grid{grid-template-columns:1fr!important;}
  body.route-ag .compact-filter-grid button,
  body.route-meetings-php .compact-filter-grid button,
  body.route-ag-decisions .compact-filter-grid button,
  body.route-decision-register-php .compact-filter-grid button,
  .route-calendrier .calendar-filter-grid button{width:100%;}
}
@media(max-width:560px){
  body.route-ag-decisions .decision-register-stats,
  body.route-decision-register-php .decision-register-stats,
  .route-calendrier .calendar-stats{grid-template-columns:1fr!important;}
  .route-calendrier .calendar-month-nav{display:grid;grid-template-columns:1fr;}
}

/* V112 — Rappels + libellés AG & réunions : spacing robuste et menu cohérent. */
body.route-rappels .page-head,
body.route-reminders-php .page-head,
body.route-rappels-nouveau .page-head,
body.route-reminder-new-php .page-head{
  margin-bottom:20px!important;
  padding-bottom:14px!important;
}
body.route-rappels .filters.inline-filters,
body.route-reminders-php .filters.inline-filters{
  margin:0 0 20px!important;
  padding:18px!important;
  border-radius:20px!important;
}
body.route-rappels .compact-filter-grid,
body.route-reminders-php .compact-filter-grid{
  display:grid!important;
  grid-template-columns:minmax(280px,440px) auto!important;
  gap:18px!important;
  align-items:end!important;
  max-width:none!important;
}
body.route-rappels .compact-filter-grid label,
body.route-reminders-php .compact-filter-grid label{
  display:grid!important;
  gap:8px!important;
  margin:0!important;
}
body.route-rappels .compact-filter-grid button,
body.route-reminders-php .compact-filter-grid button{
  min-height:44px!important;
  align-self:end!important;
  margin:0!important;
}
body.route-rappels .tabs,
body.route-reminders-php .tabs{
  margin:0 0 20px!important;
  gap:10px!important;
}
body.route-rappels .table-card,
body.route-reminders-php .table-card{
  margin-top:0!important;
}
body.route-rappels .table-card th,
body.route-rappels .table-card td,
body.route-reminders-php .table-card th,
body.route-reminders-php .table-card td{
  padding-top:14px!important;
  padding-bottom:14px!important;
}
body.route-rappels td.actions,
body.route-reminders-php td.actions{
  gap:10px!important;
}
body.route-rappels-nouveau .card.wide.form-card,
body.route-reminder-new-php .card.wide.form-card{
  padding:20px!important;
}
body.route-rappels-nouveau .form-compact,
body.route-reminder-new-php .form-compact{
  display:grid!important;
  gap:16px!important;
  max-width:900px!important;
}
body.route-rappels-nouveau .form-compact .form-section,
body.route-reminder-new-php .form-compact .form-section{
  padding:18px!important;
  border-radius:18px!important;
}
body.route-rappels-nouveau .form-compact .row,
body.route-reminder-new-php .form-compact .row{
  gap:16px!important;
}
body.route-ag .filters.inline-filters,
body.route-meetings-php .filters.inline-filters,
body.route-ag-decisions .filters.inline-filters,
body.route-decision-register-php .filters.inline-filters{
  margin:0 0 20px!important;
  padding:18px!important;
  border-radius:20px!important;
}
body.route-ag .compact-filter-grid,
body.route-meetings-php .compact-filter-grid,
body.route-ag-decisions .compact-filter-grid,
body.route-decision-register-php .compact-filter-grid{
  display:grid!important;
  grid-template-columns:minmax(280px,440px) auto!important;
  gap:18px!important;
  align-items:end!important;
  max-width:none!important;
}
body.route-ag .compact-filter-grid label,
body.route-meetings-php .compact-filter-grid label,
body.route-ag-decisions .compact-filter-grid label,
body.route-decision-register-php .compact-filter-grid label{
  display:grid!important;
  gap:8px!important;
  margin:0!important;
}
body.route-ag .compact-filter-grid button,
body.route-meetings-php .compact-filter-grid button,
body.route-ag-decisions .compact-filter-grid button,
body.route-decision-register-php .compact-filter-grid button{
  min-height:44px!important;
  align-self:end!important;
  margin:0!important;
}
body.route-ag-decisions .decision-register-stats,
body.route-decision-register-php .decision-register-stats{
  display:grid!important;
  grid-template-columns:repeat(4,minmax(0,1fr))!important;
  gap:16px!important;
  align-items:stretch!important;
  margin-bottom:22px!important;
}
body.route-ag-decisions .decision-register-stats .stat,
body.route-decision-register-php .decision-register-stats .stat{
  min-height:116px!important;
  height:100%!important;
  padding:18px!important;
  display:flex!important;
  flex-direction:column!important;
  justify-content:space-between!important;
}
@media(max-width:980px){
  body.route-ag-decisions .decision-register-stats,
  body.route-decision-register-php .decision-register-stats{grid-template-columns:repeat(2,minmax(0,1fr))!important;}
}
@media(max-width:760px){
  body.route-rappels .compact-filter-grid,
  body.route-reminders-php .compact-filter-grid,
  body.route-ag .compact-filter-grid,
  body.route-meetings-php .compact-filter-grid,
  body.route-ag-decisions .compact-filter-grid,
  body.route-decision-register-php .compact-filter-grid{grid-template-columns:1fr!important;}
  body.route-rappels .compact-filter-grid button,
  body.route-reminders-php .compact-filter-grid button,
  body.route-ag .compact-filter-grid button,
  body.route-meetings-php .compact-filter-grid button,
  body.route-ag-decisions .compact-filter-grid button,
  body.route-decision-register-php .compact-filter-grid button{width:100%!important;}
}
@media(max-width:560px){
  body.route-ag-decisions .decision-register-stats,
  body.route-decision-register-php .decision-register-stats{grid-template-columns:1fr!important;}
}


/* v113 — identité visuelle logo & favicon */
.brand:hover .brand-mark{transform:translateY(-1px);box-shadow:0 12px 28px rgba(17,24,39,.16)}
.brand-mark{transition:transform .15s ease,box-shadow .15s ease}
.side-brand .brand-mark{width:36px;height:36px;border-radius:13px}
.mobile-brand .brand-mark,.public-topbar .brand .brand-mark{width:34px;height:34px}
@media(max-width:720px){.side-brand .brand-mark,.mobile-brand .brand-mark,.public-topbar .brand .brand-mark{width:30px;height:30px;border-radius:10px}}

/* v114 — finition marque sur pages publiques et accès */
.auth-shell{display:grid;grid-template-columns:minmax(0,.82fr) minmax(360px,1fr);gap:18px;align-items:stretch;max-width:980px;margin:0 auto 24px}
.auth-shell.auth-shell-wide{max-width:1080px;grid-template-columns:minmax(0,.78fr) minmax(420px,1fr)}
.auth-brand-card{position:relative;overflow:hidden;border:1px solid var(--line);border-radius:24px;background:linear-gradient(145deg,#111827 0%,#1f2937 58%,#0f172a 100%);color:#fff;padding:28px;box-shadow:0 24px 70px rgba(15,23,42,.18);display:flex;flex-direction:column;justify-content:flex-end;min-height:310px}
.auth-brand-card:before{content:"";position:absolute;inset:auto -72px -100px auto;width:220px;height:220px;border-radius:999px;background:rgba(255,255,255,.12)}
.auth-brand-card:after{content:"";position:absolute;inset:24px 24px auto auto;width:76px;height:76px;border-radius:22px;border:1px solid rgba(255,255,255,.14);background:rgba(255,255,255,.06)}
.auth-logo{position:relative;z-index:1;width:54px;height:54px;border-radius:18px;background:#fff;box-shadow:0 16px 38px rgba(0,0,0,.22);display:inline-flex;align-items:center;justify-content:center;margin-bottom:auto;overflow:hidden}
.auth-logo img{width:100%;height:100%;display:block}
.auth-brand-card .eyebrow{position:relative;z-index:1;color:rgba(255,255,255,.72);margin-top:26px}
.auth-brand-card h1{position:relative;z-index:1;color:#fff;font-size:clamp(30px,4vw,46px);line-height:.98;margin:0 0 12px;letter-spacing:-.055em}
.auth-brand-card p{position:relative;z-index:1;color:rgba(255,255,255,.78);margin:0;max-width:44ch;line-height:1.55}
.auth-form-card{align-self:stretch;display:flex;flex-direction:column;justify-content:center;padding:28px}
.auth-form-card form{display:flex;flex-direction:column;gap:4px}
.auth-form-card h2{font-size:22px;margin-bottom:10px}
.auth-form-card .row{gap:12px}
.public-container:has(.auth-shell){max-width:1140px;padding-top:38px}
.public-share-status{max-width:620px;margin:8vh auto 0;text-align:left}
.public-share-status .brand{margin-bottom:18px;display:inline-flex}.public-share-status .card{padding:28px}.public-share-status h1{font-size:34px;margin-bottom:10px}
@media(max-width:860px){.auth-shell,.auth-shell.auth-shell-wide{grid-template-columns:1fr;gap:12px}.auth-brand-card{min-height:auto;padding:22px}.auth-logo{width:44px;height:44px;border-radius:15px;margin-bottom:22px}.auth-form-card{padding:20px}.public-container:has(.auth-shell){padding-top:24px}}
@media(max-width:520px){.auth-brand-card h1{font-size:28px}.auth-brand-card,.auth-form-card{border-radius:18px}.auth-form-card .row{grid-template-columns:1fr}.public-share-status .card{padding:20px}.public-share-status h1{font-size:28px}}


/* V115_DEADLINES */
.route-echeances .deadlines-stats{display:grid!important;grid-template-columns:repeat(4,minmax(0,1fr))!important;gap:14px!important;align-items:stretch!important;margin-bottom:22px!important;}
.route-echeances .deadlines-stats .stat{min-height:112px!important;height:100%!important;display:flex!important;flex-direction:column!important;justify-content:space-between!important;}
.route-echeances .deadlines-stats .stat.is-danger{border-color:rgba(220,38,38,.34)!important;background:linear-gradient(180deg,#fff,#fff7f7)!important;}
.route-echeances .deadlines-filters{margin-bottom:18px!important;padding:18px!important;border-radius:20px!important;}
.route-echeances .deadlines-filter-grid{display:grid!important;grid-template-columns:minmax(180px,.65fr) minmax(260px,1.35fr) auto!important;gap:14px!important;align-items:end!important;}
.route-echeances .deadlines-filter-grid label{display:grid!important;gap:8px!important;margin:0!important;}
.route-echeances .deadlines-filter-grid button{min-height:44px!important;align-self:end!important;}
.route-echeances .deadlines-card{padding:22px!important;}
.deadline-list{display:grid;gap:10px;}
.deadline-item{display:grid;grid-template-columns:150px minmax(0,1fr) auto;gap:16px;align-items:center;text-decoration:none;color:inherit;border:1px solid var(--line);border-radius:16px;padding:14px 16px;background:#fff;box-shadow:0 8px 24px rgba(15,23,42,.035);transition:transform .16s ease,border-color .16s ease,box-shadow .16s ease;}
.deadline-item:hover{transform:translateY(-1px);border-color:rgba(15,23,42,.18);box-shadow:0 14px 28px rgba(15,23,42,.07);}
.deadline-item.is-late{border-color:rgba(220,38,38,.30);background:linear-gradient(90deg,#fff7f7,#fff);}
.deadline-date{display:grid;gap:4px;}
.deadline-date strong{font-size:14px;color:var(--ink);}
.deadline-date em,.deadline-main em{font-style:normal;color:var(--muted);font-size:12px;line-height:1.35;}
.deadline-main{display:grid;gap:4px;min-width:0;}
.deadline-main strong{font-size:15px;line-height:1.25;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.deadline-label{width:max-content;border:1px solid var(--line);border-radius:999px;padding:3px 8px;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);background:#f8fafc;}
.deadline-status{border-radius:999px;background:#f3f4f6;color:#374151;padding:6px 10px;font-size:12px;font-weight:600;white-space:nowrap;}
.deadline-item.is-meeting .deadline-label{background:#eff6ff;border-color:#bfdbfe;color:#1d4ed8;}
.deadline-item.is-reminder .deadline-label{background:#fffbeb;border-color:#fde68a;color:#92400e;}
.deadline-item.is-decision .deadline-label{background:#f0fdf4;border-color:#bbf7d0;color:#166534;}
.route-tableau-de-bord .quick-grid .quick-tile strong{line-height:1.2;}
@media(max-width:1000px){.route-echeances .deadlines-stats{grid-template-columns:repeat(2,minmax(0,1fr))!important;}.route-echeances .deadlines-filter-grid{grid-template-columns:1fr 1fr auto!important;}.deadline-item{grid-template-columns:120px minmax(0,1fr);}.deadline-status{grid-column:2;justify-self:start;}}
@media(max-width:720px){.route-echeances .deadlines-stats,.route-echeances .deadlines-filter-grid{grid-template-columns:1fr!important;}.route-echeances .deadlines-filter-grid button{width:100%;}.deadline-item{grid-template-columns:1fr;gap:8px;}.deadline-main strong{white-space:normal;}.deadline-status{grid-column:auto;justify-self:start;}}

/* V116_PLANNING — calendrier mensuel réel + export agenda */
.route-calendrier .calendar-head .head-actions{gap:8px!important;}
.route-calendrier .calendar-month-card{padding:18px!important;margin-bottom:18px!important;overflow:hidden;}
.route-calendrier .calendar-weekdays{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:8px;margin:14px 0 8px;}
.route-calendrier .calendar-weekdays span{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.11em;color:var(--muted);padding:0 8px;}
.route-calendrier .calendar-month-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:8px;}
.route-calendrier .calendar-cell{min-height:132px;border:1px solid var(--line);border-radius:16px;background:#fff;padding:10px;display:flex;flex-direction:column;gap:9px;box-shadow:0 8px 22px rgba(15,23,42,.025);}
.route-calendrier .calendar-cell.is-outside{background:#fafafa;color:#9ca3af;}
.route-calendrier .calendar-cell.is-today{border-color:#93c5fd;background:linear-gradient(180deg,#eff6ff,#fff);box-shadow:0 10px 30px rgba(37,99,235,.08);}
.route-calendrier .calendar-cell.has-events{border-color:#d1d5db;}
.route-calendrier .calendar-cell-date{display:flex;align-items:center;justify-content:space-between;gap:6px;min-height:22px;}
.route-calendrier .calendar-cell-date span{display:inline-flex;align-items:center;justify-content:center;width:26px;height:26px;border-radius:999px;font-weight:600;font-size:13px;color:#111827;background:#f3f4f6;}
.route-calendrier .calendar-cell.is-today .calendar-cell-date span{background:#2563eb;color:#fff;}
.route-calendrier .calendar-cell-date em{font-style:normal;font-size:11px;color:var(--muted);font-weight:600;white-space:nowrap;}
.route-calendrier .calendar-cell-events{display:grid;gap:5px;min-width:0;}
.route-calendrier .calendar-mini-event{min-width:0;display:grid;grid-template-columns:auto minmax(0,1fr);gap:6px;align-items:center;border:1px solid var(--line);border-radius:10px;background:#fff;padding:5px 7px;text-decoration:none;color:#111827;line-height:1.15;}
.route-calendrier .calendar-mini-event:hover{border-color:#111827;transform:translateY(-1px);}
.route-calendrier .calendar-mini-event span{font-size:10px;font-weight:600;text-transform:uppercase;color:var(--muted);white-space:nowrap;}
.route-calendrier .calendar-mini-event strong{font-size:11px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;letter-spacing:-.02em;}
.route-calendrier .calendar-mini-event.is-meeting{background:#eff6ff;border-color:#bfdbfe;}
.route-calendrier .calendar-mini-event.is-reminder{background:#fffbeb;border-color:#fde68a;}
.route-calendrier .calendar-mini-event.is-decision{background:#f0fdf4;border-color:#bbf7d0;}
.route-calendrier .calendar-more{font-size:11px;font-weight:600;color:#374151;text-decoration:none;border:1px dashed var(--line-strong);border-radius:10px;padding:5px 7px;background:#fafafa;}
.route-calendrier .calendar-more:hover{background:#f3f4f6;}
.route-calendrier .calendar-list{scroll-margin-top:18px;}
.route-calendrier .calendar-day{scroll-margin-top:18px;}
.route-echeances .deadline-item.is-meeting{background:linear-gradient(90deg,#eff6ff,#fff);}
.route-echeances .deadline-item.is-decision.is-late{background:linear-gradient(90deg,#fff7f7,#fff);}
@media(max-width:1180px){.route-calendrier .calendar-cell{min-height:118px;padding:8px}.route-calendrier .calendar-mini-event{grid-template-columns:1fr}.route-calendrier .calendar-mini-event span{font-size:9px}.route-calendrier .calendar-mini-event strong{font-size:10px}}
@media(max-width:900px){.route-calendrier .calendar-weekdays{display:none}.route-calendrier .calendar-month-grid{grid-template-columns:repeat(2,minmax(0,1fr));}.route-calendrier .calendar-cell{min-height:112px}.route-calendrier .calendar-mini-event{grid-template-columns:auto minmax(0,1fr)}}
@media(max-width:560px){.route-calendrier .calendar-month-grid{grid-template-columns:1fr}.route-calendrier .calendar-cell.is-outside{display:none}.route-calendrier .calendar-cell{min-height:auto}.route-calendrier .calendar-head .head-actions .btn{width:100%}}

/* V117_PLANNING_AGENDA — agenda opérationnel et dashboard planning */
.route-calendrier .calendar-view-switch{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:14px;padding-bottom:14px;border-bottom:1px solid var(--line)}
.route-calendrier .calendar-agenda-card{padding:18px!important;margin-bottom:18px!important;overflow:hidden}
.route-calendrier .calendar-agenda-list{display:grid;gap:12px}
.route-calendrier .calendar-agenda-day{display:grid;grid-template-columns:minmax(150px,.28fr) minmax(0,1fr);gap:14px;border:1px solid var(--line);border-radius:18px;background:#fff;padding:14px}
.route-calendrier .calendar-agenda-day.is-today{border-color:#bfdbfe;background:#f8fbff}
.route-calendrier .calendar-agenda-day.is-late{border-color:#fecaca;background:#fffafa}
.route-calendrier .calendar-agenda-date{display:flex;flex-direction:column;gap:4px;align-items:flex-start}
.route-calendrier .calendar-agenda-date strong{font-size:16px;letter-spacing:-.02em}
.route-calendrier .calendar-agenda-date span{display:inline-flex;border:1px solid var(--line);border-radius:999px;background:#fff;padding:5px 9px;font-size:12px;font-weight:600;color:#374151}
.route-calendrier .calendar-agenda-day.is-late .calendar-agenda-date span{border-color:#fecaca;color:#991b1b;background:#fff1f0}
.route-calendrier .calendar-agenda-events{display:grid;gap:8px;min-width:0}
.route-calendrier .calendar-agenda-event{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:8px 10px;align-items:center;border:1px solid var(--line);border-radius:14px;padding:11px 12px;text-decoration:none;background:#fff;color:inherit}
.route-calendrier .calendar-agenda-event:hover{border-color:var(--line-strong);box-shadow:0 10px 28px rgba(15,23,42,.05)}
.route-calendrier .calendar-agenda-event.is-late{border-color:#fecaca;background:#fffafa}
.route-calendrier .calendar-agenda-event strong{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.route-calendrier .calendar-agenda-event em{grid-column:2;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--muted);font-size:13px;font-style:normal}
.route-calendrier .calendar-agenda-event i{grid-column:3;grid-row:1 / span 2;justify-self:end;border:1px solid var(--line);border-radius:999px;background:#fff;padding:5px 9px;color:#374151;font-size:12px;font-style:normal;font-weight:600;white-space:nowrap}
.route-calendrier .calendar-agenda-event.is-late i{border-color:#fecaca;color:#991b1b;background:#fff1f0}
.dashboard-planning{background:linear-gradient(135deg,#fff,#fbfdff)}
.compact-actions{gap:8px;flex-wrap:wrap}
.dashboard-planning-list{display:grid;gap:9px;margin-top:12px}
.dashboard-planning-item{display:grid;grid-template-columns:minmax(118px,.24fr) minmax(0,1fr) auto;gap:12px;align-items:center;border:1px solid var(--line);border-radius:16px;padding:12px 13px;background:#fff;color:inherit;text-decoration:none}
.dashboard-planning-item:hover{border-color:var(--line-strong);box-shadow:0 10px 28px rgba(15,23,42,.05)}
.dashboard-planning-item.is-late{border-color:#fecaca;background:#fffafa}
.planning-date{display:grid;gap:3px}.planning-date strong{font-size:13px}.planning-date em{font-style:normal;color:var(--muted);font-size:12px;font-weight:600}.dashboard-planning-item.is-late .planning-date em{color:#991b1b}
.planning-main{min-width:0;display:grid;gap:2px}.planning-main span{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.1em;color:var(--muted)}.planning-main strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.planning-main em{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--muted);font-size:13px;font-style:normal}
@media(max-width:900px){.route-calendrier .calendar-agenda-day{grid-template-columns:1fr}.route-calendrier .calendar-agenda-date{flex-direction:row;align-items:center;justify-content:space-between}.route-calendrier .calendar-agenda-event{grid-template-columns:minmax(0,1fr)}.route-calendrier .calendar-agenda-event em,.route-calendrier .calendar-agenda-event i{grid-column:auto;grid-row:auto;justify-self:start;white-space:normal}.dashboard-planning-item{grid-template-columns:1fr}.dashboard-planning-item .deadline-status{justify-self:start}.planning-main strong,.planning-main em{white-space:normal}}
@media(max-width:560px){.route-calendrier .calendar-view-switch{display:grid;grid-template-columns:1fr}.route-calendrier .calendar-view-switch .btn{width:100%}.planning-mini-stats{grid-template-columns:1fr}}

/* V118_PLANNING_TRIAGE — filtres opérationnels et badges d'urgence */
.stat.is-warn{border-color:#fde68a!important;background:linear-gradient(180deg,#fff,#fffdf4)!important;}
.route-calendrier .calendar-filter-grid{grid-template-columns:minmax(160px,.7fr) minmax(220px,1fr) minmax(150px,.7fr) minmax(150px,.7fr) auto!important;}
.route-calendrier .calendar-triage-nav{align-items:center;}
.triage-separator{width:1px;height:26px;background:var(--line);display:inline-block;margin:0 2px;}
.route-calendrier .calendar-agenda-event{grid-template-columns:auto minmax(0,1fr) auto!important;}
.route-calendrier .calendar-agenda-event small{grid-column:2;display:block;color:var(--muted);font-size:12px;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.route-calendrier .calendar-event{position:relative;}
.route-calendrier .calendar-event i{font-style:normal;font-size:11px;font-weight:600;color:var(--muted);border:1px solid var(--line);border-radius:999px;padding:4px 8px;background:#fff;width:max-content;}
.is-urgency-blocked,.is-urgency-late{border-color:#fecaca!important;background:linear-gradient(90deg,#fff7f7,#fff)!important;}
.is-urgency-today{border-color:#bfdbfe!important;background:linear-gradient(90deg,#eff6ff,#fff)!important;}
.is-urgency-week{border-color:#fde68a!important;background:linear-gradient(90deg,#fffdf4,#fff)!important;}
.is-urgency-blocked .deadline-status,.is-urgency-late .deadline-status,.route-calendrier .calendar-agenda-event.is-urgency-blocked i,.route-calendrier .calendar-agenda-event.is-urgency-late i{border-color:#fecaca!important;color:#991b1b!important;background:#fff1f0!important;}
.is-urgency-today .deadline-status,.route-calendrier .calendar-agenda-event.is-urgency-today i{border-color:#bfdbfe!important;color:#1d4ed8!important;background:#eff6ff!important;}
.is-urgency-week .deadline-status,.route-calendrier .calendar-agenda-event.is-urgency-week i{border-color:#fde68a!important;color:#92400e!important;background:#fff7ed!important;}
.route-echeances .deadlines-filter-grid{grid-template-columns:minmax(130px,.45fr) minmax(220px,1fr) minmax(150px,.55fr) minmax(150px,.55fr) auto!important;}
.deadline-focus-nav{display:flex;gap:8px;flex-wrap:wrap;margin:-4px 0 16px;}
.deadline-main small,.planning-main small{display:block;color:var(--muted);font-size:12px;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.planning-focus-links{display:flex;gap:8px;flex-wrap:wrap;margin:12px 0 4px;}
.planning-focus-links a{border:1px solid var(--line);border-radius:999px;background:#fff;padding:7px 10px;text-decoration:none;color:#374151;font-size:12px;font-weight:600;}
.planning-focus-links a:hover{border-color:var(--line-strong);background:#f8fafc;}
.dashboard-planning-item.is-urgency-blocked,.dashboard-planning-item.is-urgency-late{border-color:#fecaca;background:#fffafa;}
.dashboard-planning-item.is-urgency-today{border-color:#bfdbfe;background:#f8fbff;}
.dashboard-planning-item.is-urgency-week{border-color:#fde68a;background:#fffdf4;}
@media(max-width:1160px){.route-calendrier .calendar-filter-grid,.route-echeances .deadlines-filter-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}.route-calendrier .calendar-filter-grid button,.route-echeances .deadlines-filter-grid button{grid-column:1/-1;width:100%;}.triage-separator{display:none}}
@media(max-width:720px){.route-calendrier .calendar-filter-grid,.route-echeances .deadlines-filter-grid{grid-template-columns:1fr!important}.deadline-focus-nav,.planning-focus-links{display:grid;grid-template-columns:1fr 1fr}.route-calendrier .calendar-agenda-event small{grid-column:auto;white-space:normal}.deadline-main small,.planning-main small{white-space:normal}}


/* V118_LANDING_PUBLIC_CTA: accueil plus crédible, CTA inscription blanc, références de préversion retirées. */
.modern-primary-cta.modern-white-cta{background:#fff;color:#0f172a;border:1px solid rgba(148,163,184,.38);box-shadow:0 22px 48px rgba(15,23,42,.12),0 12px 26px rgba(255,255,255,.26)}
.modern-primary-cta.modern-white-cta:hover{background:#f8fafc;border-color:rgba(100,116,139,.48);box-shadow:0 26px 56px rgba(15,23,42,.15),0 14px 28px rgba(255,255,255,.28)}

/* V120_OPERATIONAL_PILOTAGE — wording public plus professionnel + santé portefeuille dashboard */
.modern-trust-panel{display:grid;grid-template-columns:minmax(0,1.08fr) minmax(340px,.92fr);gap:22px;align-items:stretch;margin:34px 0 10px;border:1px solid rgba(148,163,184,.22);border-radius:30px;background:linear-gradient(135deg,rgba(255,255,255,.92),rgba(248,250,252,.9));box-shadow:0 22px 60px rgba(15,23,42,.06);padding:28px;overflow:hidden;position:relative}
.modern-trust-panel:before{content:"";position:absolute;right:-80px;top:-100px;width:260px;height:260px;border-radius:999px;background:rgba(37,99,235,.10);filter:blur(4px)}
.modern-trust-panel h2{font-size:clamp(28px,3.5vw,44px);line-height:1.04;letter-spacing:-.055em;margin:14px 0 10px;max-width:760px}
.modern-trust-panel p{margin:0;color:#475569;font-size:16px;line-height:1.65;max-width:820px}
.modern-trust-metrics{display:grid;grid-template-columns:1fr;gap:10px;position:relative;z-index:1}
.modern-trust-metrics article{border:1px solid rgba(226,232,240,.95);border-radius:20px;background:#fff;padding:17px;box-shadow:0 14px 34px rgba(15,23,42,.045)}
.modern-trust-metrics strong{display:block;font-size:18px;letter-spacing:-.025em;color:#0f172a;margin-bottom:4px}.modern-trust-metrics span{color:#64748b;font-size:14px;line-height:1.45}
.portfolio-health{background:linear-gradient(135deg,#fff,#f8fbff);border-color:#dbeafe}.portfolio-health-main{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:18px;align-items:center;margin-bottom:16px}.portfolio-health-main h2{margin:4px 0 6px}.portfolio-score{--score:0;width:138px;height:138px;border-radius:999px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;background:conic-gradient(#111827 calc(var(--score)*1%),#e5e7eb 0);position:relative;box-shadow:inset 0 0 0 1px rgba(15,23,42,.04),0 18px 45px rgba(15,23,42,.08)}.portfolio-score:before{content:"";position:absolute;inset:10px;border-radius:999px;background:#fff}.portfolio-score strong,.portfolio-score span{position:relative;z-index:1}.portfolio-score strong{font-size:30px;letter-spacing:-.065em}.portfolio-score span{max-width:96px;color:#475569;font-size:11px;line-height:1.25;font-weight:600;text-transform:uppercase;letter-spacing:.055em}.portfolio-score.is-good{background:conic-gradient(#047857 calc(var(--score)*1%),#e5e7eb 0)}.portfolio-score.is-ok{background:conic-gradient(#2563eb calc(var(--score)*1%),#e5e7eb 0)}.portfolio-score.is-warn{background:conic-gradient(#b45309 calc(var(--score)*1%),#e5e7eb 0)}.portfolio-score.is-danger{background:conic-gradient(#b91c1c calc(var(--score)*1%),#e5e7eb 0)}.portfolio-health-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.portfolio-health-item{display:flex;flex-direction:column;gap:6px;text-decoration:none;color:inherit;border:1px solid var(--line);border-radius:16px;background:#fff;padding:15px;min-height:118px;transition:transform .12s ease,border .12s ease,box-shadow .12s ease}.portfolio-health-item:hover{transform:translateY(-1px);border-color:var(--line-strong);box-shadow:0 14px 30px rgba(15,23,42,.06)}.portfolio-health-item strong{font-size:14px;line-height:1.25}.portfolio-health-item span{color:var(--muted);font-size:12px;line-height:1.45}.portfolio-health-item.is-danger{border-color:#fecaca;background:#fffafa}.portfolio-health-item.is-warn{border-color:#fde68a;background:#fffdf4}.portfolio-health-item.is-ok{border-color:#bbf7d0;background:#f7fef9}.portfolio-health-item.is-info{border-color:#bfdbfe;background:#f8fbff}
@media(max-width:1040px){.modern-trust-panel{grid-template-columns:1fr}.portfolio-health-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:720px){.modern-trust-panel{padding:22px;border-radius:24px}.portfolio-health-main{grid-template-columns:1fr}.portfolio-score{width:124px;height:124px}.portfolio-health-grid{grid-template-columns:1fr}}

/* V120_OPERATIONAL_PILOTAGE — centre de pilotage quotidien et mission du jour */
.pilotage-dashboard,.pilotage-hero{background:linear-gradient(135deg,#fff,#f8fbff);border-color:#dbeafe;overflow:hidden;position:relative}.pilotage-dashboard:before,.pilotage-hero:before{content:"";position:absolute;right:-90px;top:-130px;width:260px;height:260px;border-radius:999px;background:rgba(37,99,235,.08)}.pilotage-dashboard>*{position:relative;z-index:1}.pilotage-dashboard-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(320px,.55fr);gap:14px;align-items:stretch}.pilotage-dashboard-summary{border:1px solid var(--line);border-radius:18px;background:#fff;padding:16px;display:grid;gap:6px}.pilotage-dashboard-summary strong{font-size:18px;letter-spacing:-.03em}.pilotage-dashboard-summary span{color:var(--muted);line-height:1.5}.pilotage-dashboard-metrics,.pilotage-metrics{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.pilotage-dashboard-metrics span,.pilotage-metrics span{display:flex;align-items:center;gap:8px;border:1px solid var(--line);border-radius:16px;background:#fff;padding:12px 13px;color:#475569;font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.045em}.pilotage-dashboard-metrics strong,.pilotage-metrics strong{font-size:22px;color:#0f172a;letter-spacing:-.04em}.pilotage-dashboard-metrics .is-danger,.pilotage-metrics .is-danger{border-color:#fecaca;background:#fffafa;color:#991b1b}.pilotage-dashboard-metrics .is-warn,.pilotage-metrics .is-warn{border-color:#fde68a;background:#fffdf4;color:#92400e}.pilotage-dashboard-list{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-top:14px}.pilotage-dashboard-item{display:grid;gap:6px;text-decoration:none;color:inherit;border:1px solid var(--line);border-radius:17px;background:#fff;padding:14px;min-height:116px}.pilotage-dashboard-item strong{font-size:14px;line-height:1.25}.pilotage-dashboard-item span{color:var(--muted);font-size:12px;line-height:1.45}.pilotage-dashboard-item em{font-style:normal;width:max-content;border:1px solid var(--line);border-radius:999px;padding:4px 8px;background:#f8fafc;color:#475569;font-size:11px;font-weight:600}.pilotage-dashboard-item.is-danger,.pilotage-mission-item.is-danger{border-color:#fecaca;background:#fffafa}.pilotage-dashboard-item.is-warn,.pilotage-mission-item.is-warn{border-color:#fde68a;background:#fffdf4}.pilotage-dashboard-item.is-ok,.pilotage-mission-item.is-ok{border-color:#bbf7d0;background:#f7fef9}.pilotage-dashboard-item.is-info,.pilotage-mission-item.is-info{border-color:#bfdbfe;background:#f8fbff}.pilotage-head .head-actions{align-items:center}.pilotage-hero{padding:24px!important}.pilotage-hero-main{position:relative;z-index:1;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:22px;align-items:center}.pilotage-hero-main h2{font-size:clamp(28px,4vw,46px);line-height:1.02;letter-spacing:-.06em;margin:6px 0 10px}.pilotage-hero-main p{color:#475569;font-size:16px;line-height:1.6;margin:0;max-width:860px}.pilotage-score{width:132px;height:132px;border-radius:999px;background:#fff;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;border:1px solid var(--line);box-shadow:0 18px 44px rgba(15,23,42,.08)}.pilotage-score strong{font-size:30px;letter-spacing:-.06em}.pilotage-score span{font-size:11px;text-transform:uppercase;letter-spacing:.05em;font-weight:600;color:#64748b;max-width:86px;line-height:1.2}.pilotage-metrics{position:relative;z-index:1;grid-template-columns:repeat(4,minmax(0,1fr));margin-top:18px}.pilotage-mission-list{display:grid;gap:10px}.pilotage-mission-item{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:12px;align-items:center;text-decoration:none;color:inherit;border:1px solid var(--line);border-radius:17px;background:#fff;padding:13px 14px}.pilotage-mission-item:hover,.pilotage-dashboard-item:hover,.pilotage-routine-list a:hover{border-color:var(--line-strong);box-shadow:0 12px 28px rgba(15,23,42,.06)}.mission-rank{width:34px;height:34px;border-radius:999px;background:#111827;color:#fff;display:inline-flex;align-items:center;justify-content:center;font-weight:600}.mission-main{display:grid;gap:3px;min-width:0}.mission-main strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mission-main em{font-style:normal;color:var(--muted);font-size:13px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mission-label{border:1px solid var(--line);border-radius:999px;background:#fff;padding:5px 9px;color:#475569;font-size:12px;font-weight:600;white-space:nowrap}.pilotage-grid{display:grid;grid-template-columns:minmax(0,.82fr) minmax(360px,1.18fr);gap:18px;align-items:start}.pilotage-routine-list{display:grid;gap:10px}.pilotage-routine-list a{display:grid;gap:5px;text-decoration:none;color:inherit;border:1px solid var(--line);border-radius:16px;background:#fff;padding:14px}.pilotage-routine-list span{color:var(--muted);font-size:13px;line-height:1.45}.pilotage-shortcuts .quick-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.route-pilotage .deadline-list{margin-top:0}.route-pilotage .deadline-item{box-shadow:none}.route-pilotage .pilotage-feed{padding:22px!important}
@media(max-width:1120px){.pilotage-dashboard-grid,.pilotage-grid{grid-template-columns:1fr}.pilotage-dashboard-list{grid-template-columns:1fr}.pilotage-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.pilotage-shortcuts .quick-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:720px){.pilotage-hero-main{grid-template-columns:1fr}.pilotage-score{width:118px;height:118px}.pilotage-dashboard-metrics,.pilotage-metrics,.pilotage-shortcuts .quick-grid{grid-template-columns:1fr}.pilotage-mission-item{grid-template-columns:1fr}.mission-rank{width:32px;height:32px}.mission-main strong,.mission-main em{white-space:normal}.mission-label{justify-self:start}.pilotage-dashboard-grid{gap:10px}}

/* V121_ACTION_PLAN — plan d'action exécutable depuis le pilotage */
.action-plan-head .head-actions{align-items:center;gap:8px}
.action-plan-hero{display:grid;grid-template-columns:minmax(0,1fr) minmax(360px,.62fr);gap:22px;align-items:center;background:linear-gradient(135deg,#fff,#f8fbff);border-color:#dbeafe;position:relative;overflow:hidden}
.action-plan-hero:before{content:"";position:absolute;right:-96px;top:-126px;width:250px;height:250px;border-radius:999px;background:rgba(37,99,235,.08)}
.action-plan-hero>*{position:relative;z-index:1}.action-plan-hero h2{font-size:clamp(28px,4vw,44px);line-height:1.03;letter-spacing:-.06em;margin:6px 0 10px}.action-plan-hero p{margin:0;color:#475569;line-height:1.6;max-width:820px}.action-plan-hero.is-danger{border-color:#fecaca;background:linear-gradient(135deg,#fff,#fff7f7)}.action-plan-hero.is-warn{border-color:#fde68a;background:linear-gradient(135deg,#fff,#fffdf4)}
.action-plan-scorecards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.action-plan-scorecards span{display:flex;align-items:center;gap:8px;border:1px solid var(--line);border-radius:16px;background:#fff;padding:13px;color:#475569;font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.045em}.action-plan-scorecards strong{font-size:24px;color:#0f172a;letter-spacing:-.05em}.action-plan-scorecards .is-danger{border-color:#fecaca;background:#fffafa;color:#991b1b}.action-plan-scorecards .is-warn{border-color:#fde68a;background:#fffdf4;color:#92400e}
.action-plan-filters{padding:18px!important}.action-plan-filter-grid{display:grid;grid-template-columns:minmax(150px,.7fr) minmax(150px,.7fr) minmax(240px,1.2fr) auto;gap:14px;align-items:end}.action-plan-filter-grid label{display:grid;gap:8px;margin:0}.action-plan-filter-grid button{min-height:44px;align-self:end}
.action-plan-board{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;align-items:start}.action-plan-column{border:1px solid var(--line);border-radius:22px;background:#fff;box-shadow:var(--shadow);padding:16px;min-width:0}.action-plan-column.is-danger{border-color:#fecaca;background:linear-gradient(180deg,#fffafa,#fff)}.action-plan-column.is-warn{border-color:#fde68a;background:linear-gradient(180deg,#fffdf4,#fff)}.action-plan-column.is-info{background:linear-gradient(180deg,#f8fbff,#fff)}.action-plan-column-head{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;margin-bottom:14px}.action-plan-column-head h2{font-size:18px;margin:0 0 5px}.action-plan-column-head p{margin:0;color:var(--muted);font-size:13px;line-height:1.45}.action-plan-column-head span{min-width:34px;height:34px;border-radius:999px;background:#111827;color:#fff;display:inline-flex;align-items:center;justify-content:center;font-weight:600}
.action-plan-card-list{display:grid;gap:10px}.action-card{border:1px solid var(--line);border-radius:17px;background:#fff;padding:14px;display:grid;gap:8px}.action-card.is-danger{border-color:#fecaca;background:#fffafa}.action-card.is-warn{border-color:#fde68a;background:#fffdf4}.action-card.is-info{border-color:#bfdbfe;background:#f8fbff}.action-card-top{display:flex;justify-content:space-between;gap:10px;align-items:center}.action-card-top span,.action-card-top em{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.07em;color:#64748b;font-style:normal}.action-card h3{font-size:15px;line-height:1.25;margin:0}.action-card p{margin:0;color:var(--muted);font-size:13px;line-height:1.45}.action-card-footer{display:flex;gap:8px;align-items:center;justify-content:space-between;flex-wrap:wrap}.action-card-footer form{margin:0}.action-card-footer .btn,.action-card-footer button{min-height:36px;padding:8px 11px;font-size:12px}
.action-plan-empty{border:1px dashed var(--line-strong);border-radius:16px;background:rgba(255,255,255,.72);padding:16px}.action-plan-empty strong{display:block;margin-bottom:4px}.action-plan-empty p{margin:0;color:var(--muted);font-size:13px;line-height:1.45}.action-plan-grid{display:grid;grid-template-columns:minmax(0,.9fr) minmax(360px,1.1fr);gap:18px;align-items:start}.action-plan-routine-list{display:grid;gap:10px}.action-plan-routine-list article{border:1px solid var(--line);border-radius:15px;background:#fff;padding:14px;display:grid;gap:4px}.action-plan-routine-list span{color:var(--muted);font-size:13px;line-height:1.45}.action-plan-create .quick-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
@media(max-width:1180px){.action-plan-board,.action-plan-hero,.action-plan-grid{grid-template-columns:1fr}.action-plan-column{padding:14px}.action-plan-filter-grid{grid-template-columns:1fr 1fr}}
@media(max-width:720px){.action-plan-scorecards,.action-plan-filter-grid,.action-plan-create .quick-grid{grid-template-columns:1fr}.action-plan-head .head-actions{justify-content:flex-start}.action-card-footer{align-items:stretch}.action-card-footer .btn,.action-card-footer form,.action-card-footer button{width:100%}}

/* V122_FOLLOW_UP — suivi opérationnel et journal de preuve métier */
.follow-up-head .head-actions{align-items:center;gap:8px}
.follow-up-hero{display:grid;grid-template-columns:minmax(0,1fr) minmax(360px,.62fr);gap:22px;align-items:center;background:linear-gradient(135deg,#fff,#f8fbff);border-color:#dbeafe;position:relative;overflow:hidden}
.follow-up-hero:before{content:"";position:absolute;right:-90px;top:-120px;width:240px;height:240px;border-radius:999px;background:rgba(15,23,42,.07)}
.follow-up-hero>*{position:relative;z-index:1}.follow-up-hero h2{font-size:clamp(28px,4vw,44px);line-height:1.03;letter-spacing:-.06em;margin:6px 0 10px}.follow-up-hero p{margin:0;color:#475569;line-height:1.6;max-width:820px}.follow-up-hero.is-danger{border-color:#fecaca;background:linear-gradient(135deg,#fff,#fff7f7)}.follow-up-hero.is-warn{border-color:#fde68a;background:linear-gradient(135deg,#fff,#fffdf4)}.follow-up-hero.is-ok{border-color:#bbf7d0;background:linear-gradient(135deg,#fff,#f7fef9)}
.follow-up-scorecards,.follow-up-dashboard-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.follow-up-scorecards span,.follow-up-dashboard-grid span{display:flex;align-items:center;gap:8px;border:1px solid var(--line);border-radius:16px;background:#fff;padding:13px;color:#475569;font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.045em}.follow-up-scorecards strong,.follow-up-dashboard-grid strong{font-size:24px;color:#0f172a;letter-spacing:-.05em}.follow-up-scorecards .is-danger,.follow-up-dashboard-grid .is-danger{border-color:#fecaca;background:#fffafa;color:#991b1b}.follow-up-scorecards .is-ok,.follow-up-dashboard-grid .is-ok{border-color:#bbf7d0;background:#f7fef9;color:#166534}
.follow-up-filters{padding:18px!important}.follow-up-filter-grid{display:grid;grid-template-columns:minmax(140px,.5fr) minmax(180px,.7fr) minmax(240px,1.2fr) auto;gap:14px;align-items:end}.follow-up-filter-grid label{display:grid;gap:8px;margin:0}.follow-up-filter-grid button{min-height:44px;align-self:end}
.follow-up-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(340px,.42fr);gap:18px;align-items:start}.follow-up-timeline-card{min-width:0}.follow-up-timeline{display:grid;gap:18px}.follow-up-day h3{font-size:14px;text-transform:uppercase;letter-spacing:.08em;color:#64748b;margin:0 0 10px}.follow-up-entry-list{display:grid;gap:10px}.follow-up-entry{display:grid;grid-template-columns:58px minmax(0,1fr);gap:12px;text-decoration:none;color:inherit;border:1px solid var(--line);border-radius:17px;background:#fff;padding:13px;transition:transform .12s ease,border .12s ease,box-shadow .12s ease}.follow-up-entry:hover{transform:translateY(-1px);border-color:var(--line-strong);box-shadow:0 12px 28px rgba(15,23,42,.05)}.follow-up-entry.is-danger{border-color:#fecaca;background:#fffafa}.follow-up-entry.is-warn{border-color:#fde68a;background:#fffdf4}.follow-up-entry.is-ok{border-color:#bbf7d0;background:#f7fef9}.follow-up-entry.is-info{border-color:#bfdbfe;background:#f8fbff}.follow-up-time{display:inline-flex;align-items:center;justify-content:center;height:32px;border-radius:999px;border:1px solid var(--line);background:#fff;color:#475569;font-size:12px;font-weight:600}.follow-up-main{display:grid;gap:4px;min-width:0}.follow-up-top{display:flex;gap:10px;align-items:center;min-width:0}.follow-up-top strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.follow-up-top em{font-style:normal;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.08em;color:#64748b;white-space:nowrap}.follow-up-main>span:not(.follow-up-top){color:#475569;font-size:13px;line-height:1.45;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.follow-up-main small{color:var(--muted);font-size:12px;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.follow-up-side{display:grid;gap:18px}.follow-up-category-list{display:grid;gap:9px}.follow-up-category-list a{display:flex;align-items:center;justify-content:space-between;gap:10px;border:1px solid var(--line);border-radius:15px;background:#fff;text-decoration:none;color:inherit;padding:12px 13px}.follow-up-category-list a:hover{border-color:var(--line-strong);box-shadow:0 10px 24px rgba(15,23,42,.05)}.follow-up-category-list strong{font-size:20px;letter-spacing:-.04em}.follow-up-category-list span{color:var(--muted);font-size:13px;font-weight:600}.follow-up-method-list{display:grid;gap:10px}.follow-up-method-list article{border:1px solid var(--line);border-radius:15px;background:#fff;padding:14px;display:grid;gap:4px}.follow-up-method-list span{color:var(--muted);font-size:13px;line-height:1.45}.follow-up-dashboard{background:linear-gradient(135deg,#fff,#fbfdff);border-color:#dbeafe}.follow-up-dashboard.is-danger{border-color:#fecaca;background:#fffafa}.follow-up-dashboard.is-warn{border-color:#fde68a;background:#fffdf4}.follow-up-dashboard.is-ok{border-color:#bbf7d0;background:#f7fef9}.follow-up-dashboard-grid{grid-template-columns:repeat(4,minmax(0,1fr))}
@media(max-width:1120px){.follow-up-hero,.follow-up-grid{grid-template-columns:1fr}.follow-up-dashboard-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:720px){.follow-up-scorecards,.follow-up-dashboard-grid,.follow-up-filter-grid{grid-template-columns:1fr}.follow-up-entry{grid-template-columns:1fr}.follow-up-time{justify-self:start}.follow-up-top{display:grid;gap:3px}.follow-up-top strong,.follow-up-main>span:not(.follow-up-top),.follow-up-main small{white-space:normal}.follow-up-head .head-actions{justify-content:flex-start}}

/* V123_REPORTING — rapport portefeuille imprimable et synthèse de preuve */
.report-head .head-actions{align-items:center;gap:8px}.report-cover{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:24px;align-items:center;background:linear-gradient(135deg,#fff,#f8fbff);border-color:#dbeafe;position:relative;overflow:hidden}.report-cover:before{content:"";position:absolute;right:-100px;top:-120px;width:260px;height:260px;border-radius:999px;background:rgba(15,23,42,.07)}.report-cover>*{position:relative;z-index:1}.report-cover h2{font-size:clamp(30px,4vw,48px);line-height:1.02;letter-spacing:-.06em;margin:6px 0 10px}.report-cover p{margin:0;color:#475569;line-height:1.6;max-width:860px}.report-cover small{display:block;margin-top:12px;color:#64748b;font-weight:600}.report-cover.is-danger{border-color:#fecaca;background:linear-gradient(135deg,#fff,#fff7f7)}.report-cover.is-warn{border-color:#fde68a;background:linear-gradient(135deg,#fff,#fffdf4)}.report-cover.is-ok{border-color:#bbf7d0;background:linear-gradient(135deg,#fff,#f7fef9)}
.report-score{width:148px;height:148px;border-radius:999px;background:#fff;border:1px solid var(--line);box-shadow:0 18px 44px rgba(15,23,42,.08);display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center}.report-score strong{font-size:34px;letter-spacing:-.06em}.report-score span{font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:#64748b;max-width:104px;line-height:1.2}.report-score.is-danger{border-color:#fecaca;color:#991b1b}.report-score.is-warn{border-color:#fde68a;color:#92400e}.report-score.is-ok,.report-score.is-good{border-color:#bbf7d0;color:#166534}
.report-filters{padding:18px!important}.report-filter-grid{display:grid;grid-template-columns:minmax(200px,.36fr) auto;gap:14px;align-items:end}.report-filter-grid label{display:grid;gap:8px;margin:0}.report-filter-grid button{min-height:44px;align-self:end;width:max-content}.report-kpi-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}.report-kpi{padding:18px!important;display:grid;gap:6px}.report-kpi span{font-size:11px;text-transform:uppercase;letter-spacing:.09em;font-weight:600;color:#64748b}.report-kpi strong{font-size:32px;letter-spacing:-.06em;line-height:1}.report-kpi em{font-style:normal;color:var(--muted);font-size:13px;line-height:1.35}.report-kpi.is-danger{border-color:#fecaca;background:#fffafa}.report-kpi.is-warn{border-color:#fde68a;background:#fffdf4}.report-kpi.is-ok,.report-kpi.is-good{border-color:#bbf7d0;background:#f7fef9}.report-kpi.is-info{border-color:#bfdbfe;background:#f8fbff}
.report-main-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(340px,.42fr);gap:18px;align-items:start}.report-two-col{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;align-items:start}.report-panel{min-width:0}.report-recommendations{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.report-recommendation{display:grid;gap:6px;text-decoration:none;color:inherit;border:1px solid var(--line);border-radius:16px;background:#fff;padding:14px}.report-recommendation:hover,.report-row:hover,.report-coverage-list a:hover{border-color:var(--line-strong);box-shadow:0 10px 24px rgba(15,23,42,.05)}.report-recommendation strong{font-size:14px;line-height:1.25}.report-recommendation span{color:var(--muted);font-size:13px;line-height:1.45}.report-recommendation.is-danger{border-color:#fecaca;background:#fffafa}.report-recommendation.is-warn{border-color:#fde68a;background:#fffdf4}.report-recommendation.is-ok,.report-recommendation.is-good{border-color:#bbf7d0;background:#f7fef9}.report-recommendation.is-info{border-color:#bfdbfe;background:#f8fbff}
.report-coverage-list{display:grid;gap:9px}.report-coverage-list a{display:grid;grid-template-columns:30px minmax(0,1fr) auto;gap:10px;align-items:center;text-decoration:none;color:inherit;border:1px solid var(--line);border-radius:15px;background:#fff;padding:11px 12px}.report-coverage-list span{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:999px;background:#f3f4f6;font-weight:600}.report-coverage-list strong{font-size:13px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.report-coverage-list em{font-style:normal;font-size:18px;font-weight:600;letter-spacing:-.04em}.report-coverage-list a.is-done{border-color:#bbf7d0;background:#f7fef9}.report-coverage-list a.is-done span{background:#dcfce7;color:#166534}.report-coverage-list a.is-missing{border-color:#fde68a;background:#fffdf4}.report-coverage-list a.is-missing span{background:#fef3c7;color:#92400e}
.report-list{display:grid;gap:10px}.report-row{display:grid;grid-template-columns:116px minmax(0,1fr) auto;gap:12px;align-items:center;text-decoration:none;color:inherit;border:1px solid var(--line);border-radius:16px;background:#fff;padding:12px 13px}.report-row>span{display:grid;gap:3px;min-width:0}.report-row strong{font-size:14px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.report-row em{font-style:normal;color:var(--muted);font-size:12px;line-height:1.35;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.report-row i{font-style:normal;border:1px solid var(--line);border-radius:999px;background:#fff;padding:5px 9px;color:#475569;font-size:11px;font-weight:600;white-space:nowrap}.report-row.is-blocked,.report-row.is-late,.report-row.is-danger{border-color:#fecaca;background:#fffafa}.report-row.is-today,.report-row.is-warn{border-color:#fde68a;background:#fffdf4}.report-row.is-week,.report-row.is-info{border-color:#bfdbfe;background:#f8fbff}.report-row.is-ok,.report-row.is-good{border-color:#bbf7d0;background:#f7fef9}.report-print-note{background:#fbfbfb}.report-dashboard{background:linear-gradient(135deg,#fff,#fbfdff);border-color:#dbeafe}.report-dashboard.is-danger{border-color:#fecaca;background:#fffafa}.report-dashboard.is-warn{border-color:#fde68a;background:#fffdf4}.report-dashboard-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.report-dashboard-grid span{display:flex;align-items:center;gap:8px;border:1px solid var(--line);border-radius:16px;background:#fff;padding:13px;color:#475569;font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.045em}.report-dashboard-grid strong{font-size:24px;color:#0f172a;letter-spacing:-.05em}.report-dashboard-grid .is-danger{border-color:#fecaca;background:#fffafa;color:#991b1b}.report-dashboard-grid .is-ok,.report-dashboard-grid .is-good{border-color:#bbf7d0;background:#f7fef9;color:#166534}.report-dashboard-grid .is-warn{border-color:#fde68a;background:#fffdf4;color:#92400e}
@media(max-width:1180px){.report-kpi-grid,.report-main-grid,.report-two-col{grid-template-columns:1fr}.report-recommendations{grid-template-columns:1fr}.report-dashboard-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:720px){.report-cover{grid-template-columns:1fr}.report-score{width:126px;height:126px}.report-filter-grid,.report-dashboard-grid{grid-template-columns:1fr}.report-filter-grid button{width:100%}.report-row{grid-template-columns:1fr}.report-row strong,.report-row em{white-space:normal}.report-row i{justify-self:start}.report-head .head-actions{justify-content:flex-start}.report-kpi strong{font-size:28px}}
@media print{body.app-logged{background:#fff!important}.sidebar,.topbar,.mobile-nav,.no-print,.skip-link{display:none!important}.app-shell{display:block!important}.main{padding:0!important}.container{max-width:none!important;padding:0!important}.card{box-shadow:none!important;break-inside:avoid-page}.report-cover,.report-kpi,.report-panel,.report-print-note{border-color:#d1d5db!important;background:#fff!important}.report-cover{grid-template-columns:1fr auto}.report-kpi-grid{grid-template-columns:repeat(4,1fr)}.report-main-grid,.report-two-col{grid-template-columns:1fr 1fr}.report-recommendations{grid-template-columns:1fr 1fr}.report-row,.report-recommendation,.report-coverage-list a{break-inside:avoid}.btn{display:none!important}a{color:inherit!important;text-decoration:none!important}}

/* V124_PROOF_PACK — dossier de preuves exportable HTML/CSV/JSON */
.proof-pack-head .head-actions{gap:8px;align-items:center}.proof-pack-cover{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:24px;align-items:center;background:linear-gradient(135deg,#fff,#f8fbff);border-color:#dbeafe;position:relative;overflow:hidden}.proof-pack-cover:before{content:"";position:absolute;right:-120px;top:-130px;width:300px;height:300px;border-radius:999px;background:rgba(15,23,42,.07)}.proof-pack-cover>*{position:relative;z-index:1}.proof-pack-cover h2{font-size:clamp(30px,4vw,48px);line-height:1.02;letter-spacing:-.06em;margin:6px 0 10px}.proof-pack-cover p{margin:0;color:#475569;line-height:1.6;max-width:900px}.proof-pack-cover small{display:block;margin-top:12px;color:#64748b;font-weight:600}.proof-pack-cover.is-danger{border-color:#fecaca;background:linear-gradient(135deg,#fff,#fff7f7)}.proof-pack-cover.is-warn{border-color:#fde68a;background:linear-gradient(135deg,#fff,#fffdf4)}.proof-pack-cover.is-ok,.proof-pack-cover.is-good{border-color:#bbf7d0;background:linear-gradient(135deg,#fff,#f7fef9)}
.proof-pack-score{width:148px;height:148px;border-radius:999px;background:#fff;border:1px solid var(--line);box-shadow:0 18px 44px rgba(15,23,42,.08);display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center}.proof-pack-score strong{font-size:34px;letter-spacing:-.06em}.proof-pack-score span{font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:#64748b}.proof-pack-score.is-danger{border-color:#fecaca;color:#991b1b}.proof-pack-score.is-warn{border-color:#fde68a;color:#92400e}.proof-pack-score.is-ok,.proof-pack-score.is-good{border-color:#bbf7d0;color:#166534}
.proof-pack-filter-grid{display:grid;grid-template-columns:minmax(220px,.35fr) auto;gap:14px;align-items:end}.proof-pack-filter-grid label{display:grid;gap:8px;margin:0}.proof-pack-filter-grid button{min-height:44px;width:max-content}.proof-pack-export-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.proof-pack-export{display:grid!important;gap:8px;text-decoration:none;color:inherit;border-color:#dbeafe;background:#fbfdff}.proof-pack-export strong{font-size:17px;letter-spacing:-.025em}.proof-pack-export span{color:var(--muted);font-size:13px;line-height:1.45}.proof-pack-export em{font-style:normal;color:#1d4ed8;font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.06em}.proof-pack-export:hover{border-color:var(--line-strong);box-shadow:0 14px 32px rgba(15,23,42,.07)}
.proof-pack-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(340px,.42fr);gap:18px;align-items:start}.proof-pack-panel{min-width:0}.proof-check-list{display:grid;gap:10px}.proof-check-list article{display:grid;grid-template-columns:32px minmax(0,1fr);gap:11px;align-items:start;border:1px solid var(--line);border-radius:16px;background:#fff;padding:13px}.proof-check-list span{width:30px;height:30px;border-radius:999px;display:inline-flex;align-items:center;justify-content:center;font-weight:600;background:#f3f4f6}.proof-check-list strong{display:block;font-size:14px}.proof-check-list em{display:block;font-style:normal;color:var(--muted);font-size:13px;line-height:1.4;margin-top:3px}.proof-check-list article.is-done{border-color:#bbf7d0;background:#f7fef9}.proof-check-list article.is-done span{background:#dcfce7;color:#166534}.proof-check-list article.is-missing{border-color:#fde68a;background:#fffdf4}.proof-check-list article.is-missing span{background:#fef3c7;color:#92400e}
.proof-flag-list{display:grid;gap:10px}.proof-flag-list a{display:grid;gap:6px;text-decoration:none;color:inherit;border:1px solid var(--line);border-radius:16px;background:#fff;padding:14px}.proof-flag-list a:hover{border-color:var(--line-strong);box-shadow:0 10px 24px rgba(15,23,42,.05)}.proof-flag-list strong{font-size:14px;line-height:1.25}.proof-flag-list span{color:var(--muted);font-size:13px;line-height:1.42}.proof-flag-list .is-danger{border-color:#fecaca;background:#fffafa}.proof-flag-list .is-warn{border-color:#fde68a;background:#fffdf4}.proof-flag-list .is-ok,.proof-flag-list .is-good{border-color:#bbf7d0;background:#f7fef9}.proof-flag-list .is-info{border-color:#bfdbfe;background:#f8fbff}
.proof-manifest-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.proof-manifest-grid article{border:1px solid var(--line);border-radius:16px;background:#fff;padding:15px;display:grid;gap:6px}.proof-manifest-grid span{font-size:28px;font-weight:600;letter-spacing:-.06em}.proof-manifest-grid strong{font-size:13px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.proof-manifest-grid em{font-style:normal;color:var(--muted);font-size:12px;line-height:1.4}.proof-pack-preview-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;align-items:start}.proof-mini-list{display:grid;gap:10px}.proof-mini-list a{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:5px 12px;text-decoration:none;color:inherit;border:1px solid var(--line);border-radius:16px;background:#fff;padding:13px}.proof-mini-list a:hover{border-color:var(--line-strong);box-shadow:0 10px 24px rgba(15,23,42,.05)}.proof-mini-list strong{font-size:14px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.proof-mini-list span{grid-column:1;display:block;color:var(--muted);font-size:13px;line-height:1.4;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.proof-mini-list em{grid-row:1/3;grid-column:2;font-style:normal;border:1px solid var(--line);border-radius:999px;padding:5px 9px;font-size:11px;font-weight:600;color:#475569;align-self:center;white-space:nowrap}.proof-mini-list .is-late,.proof-mini-list .is-blocked{border-color:#fecaca;background:#fffafa}.proof-mini-list .is-today{border-color:#bfdbfe;background:#f8fbff}.proof-mini-list .is-week{border-color:#fde68a;background:#fffdf4}
.proof-method-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.proof-method-grid article{border:1px solid var(--line);border-radius:16px;background:#fff;padding:15px;display:grid;gap:6px}.proof-method-grid strong{font-size:14px}.proof-method-grid span{color:var(--muted);font-size:13px;line-height:1.45}.proof-pack-dashboard{background:linear-gradient(135deg,#fff,#fbfdff);border-color:#dbeafe}.proof-pack-dashboard.is-danger{border-color:#fecaca;background:#fffafa}.proof-pack-dashboard.is-warn{border-color:#fde68a;background:#fffdf4}.proof-pack-dashboard.is-ok{border-color:#bbf7d0;background:#f7fef9}.proof-pack-dashboard-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.proof-pack-dashboard-grid span{display:flex;align-items:center;gap:8px;border:1px solid var(--line);border-radius:16px;background:#fff;padding:13px;color:#475569;font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.045em}.proof-pack-dashboard-grid strong{font-size:24px;color:#0f172a;letter-spacing:-.05em}.proof-pack-dashboard-grid .is-danger{border-color:#fecaca;background:#fffafa;color:#991b1b}.proof-pack-dashboard-grid .is-warn{border-color:#fde68a;background:#fffdf4;color:#92400e}.proof-pack-dashboard-grid .is-ok,.proof-pack-dashboard-grid .is-good{border-color:#bbf7d0;background:#f7fef9;color:#166534}
@media(max-width:1180px){.proof-pack-export-grid,.proof-pack-grid,.proof-pack-preview-grid{grid-template-columns:1fr}.proof-manifest-grid,.proof-method-grid,.proof-pack-dashboard-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:720px){.proof-pack-cover,.proof-pack-filter-grid,.proof-manifest-grid,.proof-method-grid,.proof-pack-dashboard-grid{grid-template-columns:1fr}.proof-pack-filter-grid button{width:100%}.proof-pack-score{width:126px;height:126px}.proof-mini-list a{grid-template-columns:1fr}.proof-mini-list strong,.proof-mini-list span{white-space:normal}.proof-mini-list em{grid-column:1;grid-row:auto;justify-self:start}.proof-pack-head .head-actions{justify-content:flex-start}}

/* V125_SECURE_SHARE — sas de partage sécurisé et note de transmission */
.secure-share-head .head-actions{gap:8px;align-items:center}.secure-share-cover{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:24px;align-items:center;background:linear-gradient(135deg,#fff,#f8fbff);border-color:#dbeafe;position:relative;overflow:hidden}.secure-share-cover:before{content:"";position:absolute;right:-130px;top:-140px;width:310px;height:310px;border-radius:999px;background:rgba(15,23,42,.07)}.secure-share-cover>*{position:relative;z-index:1}.secure-share-cover h2{font-size:clamp(30px,4vw,48px);line-height:1.02;letter-spacing:-.06em;margin:6px 0 10px}.secure-share-cover p{margin:0;color:#475569;line-height:1.6;max-width:900px}.secure-share-cover small{display:block;margin-top:12px;color:#64748b;font-weight:600}.secure-share-cover.is-danger{border-color:#fecaca;background:linear-gradient(135deg,#fff,#fff7f7)}.secure-share-cover.is-warn{border-color:#fde68a;background:linear-gradient(135deg,#fff,#fffdf4)}.secure-share-cover.is-ok,.secure-share-cover.is-good{border-color:#bbf7d0;background:linear-gradient(135deg,#fff,#f7fef9)}
.secure-share-score{width:148px;height:148px;border-radius:999px;background:#fff;border:1px solid var(--line);box-shadow:0 18px 44px rgba(15,23,42,.08);display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center}.secure-share-score strong{font-size:34px;letter-spacing:-.06em}.secure-share-score span{font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:#64748b}.secure-share-score.is-danger{border-color:#fecaca;color:#991b1b}.secure-share-score.is-warn{border-color:#fde68a;color:#92400e}.secure-share-score.is-ok,.secure-share-score.is-good{border-color:#bbf7d0;color:#166534}
.secure-share-filter-grid{display:grid;grid-template-columns:minmax(220px,.45fr) minmax(180px,.25fr) auto;gap:14px;align-items:end}.secure-share-filter-grid label{display:grid;gap:8px;margin:0}.secure-share-filter-grid button{min-height:44px;width:max-content}.secure-share-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(340px,.42fr);gap:18px;align-items:start}.secure-share-panel{min-width:0}.secure-policy-list{display:grid;gap:10px}.secure-policy-list article{display:grid;gap:6px;border:1px solid var(--line);border-radius:16px;background:#fff;padding:14px}.secure-policy-list strong{font-size:14px;line-height:1.25}.secure-policy-list span{color:var(--muted);font-size:13px;line-height:1.42}.secure-policy-list .is-danger{border-color:#fecaca;background:#fffafa}.secure-policy-list .is-warn{border-color:#fde68a;background:#fffdf4}.secure-policy-list .is-ok,.secure-policy-list .is-good{border-color:#bbf7d0;background:#f7fef9}.secure-policy-list .is-info{border-color:#bfdbfe;background:#f8fbff}
.secure-section-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px}.secure-section-grid article{border:1px solid var(--line);border-radius:16px;background:#fff;padding:15px;display:grid;gap:7px;min-height:178px}.secure-section-grid article>span{width:max-content;border-radius:999px;padding:5px 9px;background:#f3f4f6;color:#475569;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.06em}.secure-section-grid strong{font-size:14px;line-height:1.25}.secure-section-grid em{font-style:normal;color:#64748b;font-size:12px;line-height:1.35}.secure-section-grid p{margin:0;color:var(--muted);font-size:12px;line-height:1.45}.secure-section-grid .is-included{border-color:#bbf7d0;background:#f7fef9}.secure-section-grid .is-included>span{background:#dcfce7;color:#166534}.secure-section-grid .is-excluded{border-color:#fde68a;background:#fffdf4}.secure-section-grid .is-excluded>span{background:#fef3c7;color:#92400e}
.secure-share-export-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.secure-share-export{display:grid!important;gap:8px;text-decoration:none;color:inherit;border-color:#dbeafe;background:#fbfdff}.secure-share-export strong{font-size:17px;letter-spacing:-.025em}.secure-share-export span{color:var(--muted);font-size:13px;line-height:1.45}.secure-share-export em{font-style:normal;color:#1d4ed8;font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.06em}.secure-share-export:hover{border-color:var(--line-strong);box-shadow:0 14px 32px rgba(15,23,42,.07)}.secure-handoff-box{border:1px solid var(--line);border-radius:18px;background:#fbfdff;padding:16px;display:grid;gap:10px}.secure-handoff-box strong{font-size:16px}.secure-handoff-box p{margin:0;color:#475569;line-height:1.55}.secure-handoff-box em{font-style:normal;border-left:4px solid #f59e0b;padding-left:12px;color:#92400e;font-size:13px;font-weight:600;line-height:1.45}.secure-related-links{display:grid;gap:10px}.secure-related-links a{display:grid;gap:4px;text-decoration:none;color:inherit;border:1px solid var(--line);border-radius:16px;background:#fff;padding:13px}.secure-related-links a:hover{border-color:var(--line-strong);box-shadow:0 10px 24px rgba(15,23,42,.05)}.secure-related-links strong{font-size:14px}.secure-related-links span{color:var(--muted);font-size:13px}.secure-audit-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px}.secure-audit-grid article{border:1px solid var(--line);border-radius:16px;background:#fff;padding:15px;display:grid;gap:5px}.secure-audit-grid strong{font-size:24px;letter-spacing:-.05em}.secure-audit-grid span{color:var(--muted);font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.045em}.secure-share-dashboard{background:linear-gradient(135deg,#fff,#fbfdff);border-color:#dbeafe}.secure-share-dashboard.is-danger{border-color:#fecaca;background:#fffafa}.secure-share-dashboard.is-warn{border-color:#fde68a;background:#fffdf4}.secure-share-dashboard.is-ok{border-color:#bbf7d0;background:#f7fef9}.secure-share-dashboard-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.secure-share-dashboard-grid span{display:flex;align-items:center;gap:8px;border:1px solid var(--line);border-radius:16px;background:#fff;padding:13px;color:#475569;font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.045em}.secure-share-dashboard-grid strong{font-size:24px;color:#0f172a;letter-spacing:-.05em}.secure-share-dashboard-grid .is-danger{border-color:#fecaca;background:#fffafa;color:#991b1b}.secure-share-dashboard-grid .is-warn{border-color:#fde68a;background:#fffdf4;color:#92400e}.secure-share-dashboard-grid .is-ok,.secure-share-dashboard-grid .is-good{border-color:#bbf7d0;background:#f7fef9;color:#166534}
@media(max-width:1180px){.secure-share-grid,.secure-share-export-grid{grid-template-columns:1fr}.secure-section-grid,.secure-audit-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.secure-share-dashboard-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:720px){.secure-share-cover,.secure-share-filter-grid,.secure-section-grid,.secure-audit-grid,.secure-share-dashboard-grid{grid-template-columns:1fr}.secure-share-filter-grid button{width:100%}.secure-share-score{width:126px;height:126px}.secure-share-head .head-actions{justify-content:flex-start}}

/* V126_TRANSMISSION_PREP — préparation d’envoi manuel, message et pièces conseillées */
.transmission-head .head-actions{gap:8px;align-items:center}.transmission-cover{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:24px;align-items:center;background:linear-gradient(135deg,#fff,#f8fbff);border-color:#dbeafe;position:relative;overflow:hidden}.transmission-cover:before{content:"";position:absolute;right:-120px;top:-150px;width:310px;height:310px;border-radius:999px;background:rgba(37,99,235,.08)}.transmission-cover>*{position:relative;z-index:1}.transmission-cover h2{font-size:clamp(30px,4vw,48px);line-height:1.02;letter-spacing:-.06em;margin:6px 0 10px}.transmission-cover p{margin:0;color:#475569;line-height:1.6;max-width:900px}.transmission-cover small{display:block;margin-top:12px;color:#64748b;font-weight:600}.transmission-cover.is-danger{border-color:#fecaca;background:linear-gradient(135deg,#fff,#fff7f7)}.transmission-cover.is-warn{border-color:#fde68a;background:linear-gradient(135deg,#fff,#fffdf4)}.transmission-cover.is-ok,.transmission-cover.is-good{border-color:#bbf7d0;background:linear-gradient(135deg,#fff,#f7fef9)}
.transmission-score{width:148px;height:148px;border-radius:999px;background:#fff;border:1px solid var(--line);box-shadow:0 18px 44px rgba(15,23,42,.08);display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center}.transmission-score strong{font-size:34px;letter-spacing:-.06em}.transmission-score span{font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:#64748b}.transmission-score.is-danger{border-color:#fecaca;color:#991b1b}.transmission-score.is-warn{border-color:#fde68a;color:#92400e}.transmission-score.is-ok,.transmission-score.is-good{border-color:#bbf7d0;color:#166534}
.transmission-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(340px,.42fr);gap:18px;align-items:start}.transmission-panel{min-width:0}.transmission-message-card{display:grid;gap:14px}.transmission-mail-meta{display:grid;grid-template-columns:minmax(0,.35fr) minmax(0,1fr);gap:10px}.transmission-mail-meta span{border:1px solid var(--line);border-radius:14px;background:#fff;padding:12px;display:grid;gap:4px;color:#475569;font-size:13px;min-width:0}.transmission-mail-meta strong{font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:#64748b}.transmission-textarea{width:100%;min-height:300px;border:1px solid var(--line);border-radius:18px;background:#fbfdff;padding:16px;color:#111827;font:14px/1.55 ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono",monospace;resize:vertical}.transmission-warning{border-left:4px solid #f59e0b;padding-left:12px;margin:0!important;color:#92400e!important;font-weight:600}.transmission-attachment-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.transmission-attachment-grid article{border:1px solid var(--line);border-radius:16px;background:#fff;padding:15px;display:grid;gap:7px;min-height:176px}.transmission-attachment-grid article>span{width:max-content;border-radius:999px;padding:5px 9px;background:#f3f4f6;color:#475569;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.06em}.transmission-attachment-grid strong{font-size:14px;line-height:1.25}.transmission-attachment-grid em{font-style:normal;color:#64748b;font-size:12px;line-height:1.35}.transmission-attachment-grid p{margin:0;color:var(--muted);font-size:12px;line-height:1.45}.transmission-attachment-grid a{font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:#1d4ed8;text-decoration:none}.transmission-attachment-grid .is-included{border-color:#bbf7d0;background:#f7fef9}.transmission-attachment-grid .is-included>span{background:#dcfce7;color:#166534}.transmission-attachment-grid .is-excluded{border-color:#fde68a;background:#fffdf4}.transmission-attachment-grid .is-excluded>span{background:#fef3c7;color:#92400e}
.transmission-export-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}.transmission-export{display:grid!important;gap:8px;text-decoration:none;color:inherit;border-color:#dbeafe;background:#fbfdff}.transmission-export strong{font-size:17px;letter-spacing:-.025em}.transmission-export span{color:var(--muted);font-size:13px;line-height:1.45}.transmission-export em{font-style:normal;color:#1d4ed8;font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.06em}.transmission-export:hover{border-color:var(--line-strong);box-shadow:0 14px 32px rgba(15,23,42,.07)}.transmission-rules{display:grid;gap:10px}.transmission-rules article{display:grid;gap:5px;border:1px solid var(--line);border-radius:16px;background:#fff;padding:14px}.transmission-rules strong{font-size:14px;line-height:1.25}.transmission-rules span{color:var(--muted);font-size:13px;line-height:1.45}.transmission-dashboard{background:linear-gradient(135deg,#fff,#fbfdff);border-color:#dbeafe}.transmission-dashboard.is-danger{border-color:#fecaca;background:#fffafa}.transmission-dashboard.is-warn{border-color:#fde68a;background:#fffdf4}.transmission-dashboard.is-ok{border-color:#bbf7d0;background:#f7fef9}.transmission-dashboard-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.transmission-dashboard-grid span{display:flex;align-items:center;gap:8px;border:1px solid var(--line);border-radius:16px;background:#fff;padding:13px;color:#475569;font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.045em}.transmission-dashboard-grid strong{font-size:24px;color:#0f172a;letter-spacing:-.05em}.transmission-dashboard-grid .is-danger{border-color:#fecaca;background:#fffafa;color:#991b1b}.transmission-dashboard-grid .is-warn{border-color:#fde68a;background:#fffdf4;color:#92400e}.transmission-dashboard-grid .is-ok,.transmission-dashboard-grid .is-good{border-color:#bbf7d0;background:#f7fef9;color:#166534}
@media(max-width:1180px){.transmission-grid,.transmission-export-grid{grid-template-columns:1fr}.transmission-attachment-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.transmission-dashboard-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:720px){.transmission-cover,.secure-share-filter-grid,.transmission-mail-meta,.transmission-attachment-grid,.transmission-dashboard-grid{grid-template-columns:1fr}.transmission-score{width:126px;height:126px}.transmission-head .head-actions{justify-content:flex-start}.transmission-textarea{min-height:240px}}


/* V127_RELANCE_CENTER — centre de relances contrôlées */
.relance-head .head-actions{gap:8px;align-items:center}.relance-cover{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:24px;align-items:center;background:linear-gradient(135deg,#fff,#f8fbff);border-color:#dbeafe;position:relative;overflow:hidden}.relance-cover:before{content:"";position:absolute;right:-110px;top:-130px;width:300px;height:300px;border-radius:999px;background:rgba(79,70,229,.08)}.relance-cover>*{position:relative;z-index:1}.relance-cover h2{font-size:clamp(30px,4vw,48px);line-height:1.02;letter-spacing:-.06em;margin:6px 0 10px}.relance-cover p{margin:0;color:#475569;line-height:1.6;max-width:900px}.relance-cover small{display:block;margin-top:12px;color:#64748b;font-weight:600}.relance-cover.is-danger{border-color:#fecaca;background:linear-gradient(135deg,#fff,#fff7f7)}.relance-cover.is-warn{border-color:#fde68a;background:linear-gradient(135deg,#fff,#fffdf4)}.relance-cover.is-ok,.relance-cover.is-good{border-color:#bbf7d0;background:linear-gradient(135deg,#fff,#f7fef9)}
.relance-score{width:148px;height:148px;border-radius:999px;background:#fff;border:1px solid var(--line);box-shadow:0 18px 44px rgba(15,23,42,.08);display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center}.relance-score strong{font-size:34px;letter-spacing:-.06em}.relance-score span{font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:#64748b}.relance-score.is-danger{border-color:#fecaca;color:#991b1b}.relance-score.is-warn{border-color:#fde68a;color:#92400e}.relance-score.is-ok,.relance-score.is-good{border-color:#bbf7d0;color:#166534}
.relance-filter-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr)) auto;gap:12px;align-items:end}.relance-filter-grid label{display:grid;gap:7px;margin:0}.relance-filter-grid button{min-height:44px}.relance-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}.relance-stats .stat{min-height:112px}.relance-stats .stat.is-danger{border-color:#fecaca;background:#fffafa}.relance-stats .stat.is-warn{border-color:#fde68a;background:#fffdf4}.relance-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(360px,.46fr);gap:18px;align-items:start}.relance-panel{min-width:0}.relance-candidate-list{display:grid;gap:10px;max-height:720px;overflow:auto;padding-right:3px}.relance-candidate{display:grid;gap:7px;text-decoration:none;color:inherit;border:1px solid var(--line);border-radius:16px;background:#fff;padding:14px;transition:transform .16s ease,border-color .16s ease,box-shadow .16s ease}.relance-candidate:hover,.relance-candidate.active{transform:translateY(-1px);border-color:var(--line-strong);box-shadow:0 12px 26px rgba(15,23,42,.06)}.relance-candidate span{display:flex;align-items:center;justify-content:space-between;gap:10px}.relance-candidate span strong{font-size:11px;text-transform:uppercase;letter-spacing:.075em;color:#64748b}.relance-candidate span em{font-style:normal;font-size:12px;font-weight:600;color:#475569}.relance-candidate b{font-size:15px;line-height:1.25}.relance-candidate small{color:var(--muted);line-height:1.35}.relance-candidate i{font-style:normal;color:#475569;font-size:12px;line-height:1.4;border-left:3px solid #e5e7eb;padding-left:10px}.relance-candidate.is-danger{border-color:#fecaca;background:#fffafa}.relance-candidate.is-danger i{border-left-color:#ef4444}.relance-candidate.is-warn{border-color:#fde68a;background:#fffdf4}.relance-candidate.is-warn i{border-left-color:#f59e0b}.relance-message-card{display:grid;gap:14px}.relance-mail-meta{display:grid;grid-template-columns:minmax(0,.42fr) minmax(0,1fr);gap:10px}.relance-mail-meta span{border:1px solid var(--line);border-radius:14px;background:#fff;padding:12px;display:grid;gap:4px;color:#475569;font-size:13px;min-width:0}.relance-mail-meta strong{font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:#64748b}.relance-export-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.relance-export-grid a{display:grid;gap:5px;text-decoration:none;color:inherit;border:1px solid var(--line);border-radius:16px;background:#fff;padding:14px}.relance-export-grid a:hover{border-color:var(--line-strong);box-shadow:0 10px 24px rgba(15,23,42,.05)}.relance-export-grid strong{font-size:16px}.relance-export-grid span{color:var(--muted);font-size:13px}.relance-dashboard{background:linear-gradient(135deg,#fff,#fbfdff);border-color:#dbeafe}.relance-dashboard.is-danger{border-color:#fecaca;background:#fffafa}.relance-dashboard.is-warn{border-color:#fde68a;background:#fffdf4}.relance-dashboard.is-ok,.relance-dashboard.is-good{border-color:#bbf7d0;background:#f7fef9}.relance-dashboard-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.relance-dashboard-grid span{display:flex;align-items:center;gap:8px;border:1px solid var(--line);border-radius:16px;background:#fff;padding:13px;color:#475569;font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.045em}.relance-dashboard-grid strong{font-size:24px;color:#0f172a;letter-spacing:-.05em}.relance-dashboard-grid .is-danger{border-color:#fecaca;background:#fffafa;color:#991b1b}.relance-dashboard-grid .is-warn{border-color:#fde68a;background:#fffdf4;color:#92400e}.relance-dashboard-grid .is-ok,.relance-dashboard-grid .is-good{border-color:#bbf7d0;background:#f7fef9;color:#166534}
@media(max-width:1180px){.relance-filter-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.relance-filter-grid button{width:100%}.relance-grid{grid-template-columns:1fr}.relance-stats,.relance-dashboard-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:720px){.relance-cover,.relance-filter-grid,.relance-stats,.relance-mail-meta,.relance-dashboard-grid{grid-template-columns:1fr}.relance-score{width:126px;height:126px}.relance-head .head-actions{justify-content:flex-start}.relance-candidate-list{max-height:none}}

/* V128_ARBITRAGE_CENTER — centre d'arbitrage décisionnel */
.arbitrage-head .head-actions{gap:8px;align-items:center}.arbitrage-cover{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:24px;align-items:center;background:linear-gradient(135deg,#fff,#f8fbff);border-color:#dbeafe;position:relative;overflow:hidden}.arbitrage-cover:before{content:"";position:absolute;right:-110px;top:-130px;width:300px;height:300px;border-radius:999px;background:rgba(14,165,233,.08)}.arbitrage-cover>*{position:relative;z-index:1}.arbitrage-cover h2{font-size:clamp(30px,4vw,48px);line-height:1.02;letter-spacing:-.06em;margin:6px 0 10px}.arbitrage-cover p{margin:0;color:#475569;line-height:1.6;max-width:900px}.arbitrage-cover small{display:block;margin-top:12px;color:#64748b;font-weight:600}.arbitrage-cover.is-danger{border-color:#fecaca;background:linear-gradient(135deg,#fff,#fff7f7)}.arbitrage-cover.is-warn{border-color:#fde68a;background:linear-gradient(135deg,#fff,#fffdf4)}.arbitrage-cover.is-ok,.arbitrage-cover.is-good{border-color:#bbf7d0;background:linear-gradient(135deg,#fff,#f7fef9)}
.arbitrage-score{width:150px;height:150px;border-radius:999px;background:#fff;border:1px solid var(--line);box-shadow:0 18px 44px rgba(15,23,42,.08);display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center}.arbitrage-score strong{font-size:34px;letter-spacing:-.06em}.arbitrage-score span{font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:#64748b;max-width:96px;line-height:1.2}.arbitrage-score.is-danger{border-color:#fecaca;color:#991b1b}.arbitrage-score.is-warn{border-color:#fde68a;color:#92400e}.arbitrage-score.is-ok,.arbitrage-score.is-good{border-color:#bbf7d0;color:#166534}
.arbitrage-filter-grid{display:grid;grid-template-columns:minmax(150px,.7fr) minmax(150px,.7fr) minmax(190px,.8fr) minmax(240px,1fr) auto;gap:12px;align-items:end}.arbitrage-filter-grid label{display:grid;gap:7px;margin:0}.arbitrage-filter-grid button{min-height:44px}.arbitrage-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}.arbitrage-stats .stat{min-height:112px}.arbitrage-stats .stat.is-danger{border-color:#fecaca;background:#fffafa}.arbitrage-stats .stat.is-warn{border-color:#fde68a;background:#fffdf4}.arbitrage-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(360px,.46fr);gap:18px;align-items:start}.arbitrage-panel{min-width:0}.arbitrage-decision-list{display:grid;gap:10px;max-height:720px;overflow:auto;padding-right:3px}.arbitrage-decision{display:grid;gap:7px;text-decoration:none;color:inherit;border:1px solid var(--line);border-radius:16px;background:#fff;padding:14px;transition:transform .16s ease,border-color .16s ease,box-shadow .16s ease}.arbitrage-decision:hover,.arbitrage-decision.active{transform:translateY(-1px);border-color:var(--line-strong);box-shadow:0 12px 26px rgba(15,23,42,.06)}.arbitrage-decision span{display:flex;align-items:center;justify-content:space-between;gap:10px}.arbitrage-decision span strong{font-size:11px;text-transform:uppercase;letter-spacing:.075em;color:#64748b}.arbitrage-decision span em{font-style:normal;font-size:12px;font-weight:600;color:#475569}.arbitrage-decision b{font-size:15px;line-height:1.25}.arbitrage-decision small{color:var(--muted);line-height:1.35}.arbitrage-decision i{font-style:normal;color:#475569;font-size:12px;line-height:1.4;border-left:3px solid #e5e7eb;padding-left:10px}.arbitrage-decision.is-danger{border-color:#fecaca;background:#fffafa}.arbitrage-decision.is-danger i{border-left-color:#ef4444}.arbitrage-decision.is-warn{border-color:#fde68a;background:#fffdf4}.arbitrage-decision.is-warn i{border-left-color:#f59e0b}.arbitrage-result-card{display:grid;gap:14px}.arbitrage-result-card.is-danger{border-color:#fecaca;background:#fffafa}.arbitrage-result-card.is-warn{border-color:#fde68a;background:#fffdf4}.arbitrage-result-card.is-ok,.arbitrage-result-card.is-good{border-color:#bbf7d0;background:#f7fef9}.arbitrage-decision-result{display:grid;gap:12px}.arbitrage-decision-result>strong{font-size:22px;letter-spacing:-.035em;line-height:1.15}.arbitrage-decision-result p{margin:0;color:#475569;line-height:1.55}.arbitrage-decision-result ul{display:grid;gap:10px;list-style:none;padding:0;margin:0}.arbitrage-decision-result li{border:1px solid var(--line);border-radius:14px;background:#fff;padding:12px;display:grid;gap:4px}.arbitrage-decision-result b{font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:#64748b}.arbitrage-decision-result span{font-size:13px;color:#475569;line-height:1.45}.arbitrage-options{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.arbitrage-options article{border:1px solid var(--line);border-radius:16px;background:#fff;padding:15px;display:grid;gap:8px}.arbitrage-options article div{display:flex;align-items:center;justify-content:space-between;gap:10px}.arbitrage-options strong{font-size:15px;line-height:1.25}.arbitrage-options span{border-radius:999px;padding:5px 9px;background:#f3f4f6;color:#475569;font-size:12px;font-weight:600}.arbitrage-options p{margin:0;color:var(--muted);font-size:13px;line-height:1.45}.arbitrage-options .is-danger{border-color:#fecaca;background:#fffafa}.arbitrage-options .is-warn{border-color:#fde68a;background:#fffdf4}.arbitrage-options .is-ok{border-color:#bbf7d0;background:#f7fef9}.arbitrage-options .is-info{border-color:#bfdbfe;background:#f8fbff}.arbitrage-dashboard{background:linear-gradient(135deg,#fff,#fbfdff);border-color:#dbeafe}.arbitrage-dashboard.is-danger{border-color:#fecaca;background:#fffafa}.arbitrage-dashboard.is-warn{border-color:#fde68a;background:#fffdf4}.arbitrage-dashboard.is-ok,.arbitrage-dashboard.is-good{border-color:#bbf7d0;background:#f7fef9}.arbitrage-dashboard-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.arbitrage-dashboard-grid span{display:flex;align-items:center;gap:8px;border:1px solid var(--line);border-radius:16px;background:#fff;padding:13px;color:#475569;font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.045em}.arbitrage-dashboard-grid strong{font-size:24px;color:#0f172a;letter-spacing:-.05em}.arbitrage-dashboard-grid .is-danger{border-color:#fecaca;background:#fffafa;color:#991b1b}.arbitrage-dashboard-grid .is-warn{border-color:#fde68a;background:#fffdf4;color:#92400e}.arbitrage-dashboard-grid .is-ok,.arbitrage-dashboard-grid .is-good{border-color:#bbf7d0;background:#f7fef9;color:#166534}
@media(max-width:1180px){.arbitrage-filter-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.arbitrage-filter-grid button{width:100%}.arbitrage-grid{grid-template-columns:1fr}.arbitrage-stats,.arbitrage-dashboard-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:720px){.arbitrage-cover,.arbitrage-filter-grid,.arbitrage-stats,.arbitrage-options,.arbitrage-dashboard-grid{grid-template-columns:1fr}.arbitrage-score{width:126px;height:126px}.arbitrage-head .head-actions{justify-content:flex-start}.arbitrage-decision-list{max-height:none}}


/* V129_EXECUTION_PROTOCOL — procédure d'exécution guidée */
.execution-head .head-actions{gap:8px;align-items:center}.execution-cover{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:24px;align-items:center;background:linear-gradient(135deg,#fff,#f8fbff);border-color:#dbeafe;position:relative;overflow:hidden}.execution-cover:before{content:"";position:absolute;right:-120px;top:-140px;width:320px;height:320px;border-radius:999px;background:rgba(79,70,229,.08)}.execution-cover>*{position:relative;z-index:1}.execution-cover h2{font-size:clamp(30px,4vw,48px);line-height:1.02;letter-spacing:-.06em;margin:6px 0 10px}.execution-cover p{margin:0;color:#475569;line-height:1.6;max-width:900px}.execution-cover small{display:block;margin-top:12px;color:#64748b;font-weight:600}.execution-cover.is-danger{border-color:#fecaca;background:linear-gradient(135deg,#fff,#fff7f7)}.execution-cover.is-warn{border-color:#fde68a;background:linear-gradient(135deg,#fff,#fffdf4)}.execution-cover.is-ok,.execution-cover.is-good{border-color:#bbf7d0;background:linear-gradient(135deg,#fff,#f7fef9)}
.execution-score{width:150px;height:150px;border-radius:999px;background:#fff;border:1px solid var(--line);box-shadow:0 18px 44px rgba(15,23,42,.08);display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center}.execution-score strong{font-size:34px;letter-spacing:-.06em}.execution-score span{font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:#64748b;max-width:105px;line-height:1.2}.execution-score.is-danger{border-color:#fecaca;color:#991b1b}.execution-score.is-warn{border-color:#fde68a;color:#92400e}.execution-score.is-ok,.execution-score.is-good{border-color:#bbf7d0;color:#166534}
.execution-filter-grid{display:grid;grid-template-columns:minmax(150px,.7fr) minmax(150px,.7fr) minmax(210px,.8fr) minmax(240px,1fr) auto;gap:12px;align-items:end}.execution-filter-grid label{display:grid;gap:7px;margin:0}.execution-filter-grid button{min-height:44px}.execution-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}.execution-stats .stat{min-height:112px}.execution-stats .stat.is-danger{border-color:#fecaca;background:#fffafa}.execution-stats .stat.is-warn{border-color:#fde68a;background:#fffdf4}.execution-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(360px,.46fr);gap:18px;align-items:start}.execution-panel{min-width:0}.execution-item-list{display:grid;gap:10px;max-height:720px;overflow:auto;padding-right:3px}.execution-item{display:grid;gap:7px;text-decoration:none;color:inherit;border:1px solid var(--line);border-radius:16px;background:#fff;padding:14px;transition:transform .16s ease,border-color .16s ease,box-shadow .16s ease}.execution-item:hover,.execution-item.active{transform:translateY(-1px);border-color:var(--line-strong);box-shadow:0 12px 26px rgba(15,23,42,.06)}.execution-item span{display:flex;align-items:center;justify-content:space-between;gap:10px}.execution-item span strong{font-size:11px;text-transform:uppercase;letter-spacing:.075em;color:#64748b}.execution-item span em{font-style:normal;font-size:12px;font-weight:600;color:#475569}.execution-item b{font-size:15px;line-height:1.25}.execution-item small{color:var(--muted);line-height:1.35}.execution-item i{font-style:normal;color:#475569;font-size:12px;line-height:1.4;border-left:3px solid #e5e7eb;padding-left:10px}.execution-item.is-danger{border-color:#fecaca;background:#fffafa}.execution-item.is-danger i{border-left-color:#ef4444}.execution-item.is-warn{border-color:#fde68a;background:#fffdf4}.execution-item.is-warn i{border-left-color:#f59e0b}.execution-summary-card{display:grid;gap:14px}.execution-summary-card.is-danger{border-color:#fecaca;background:#fffafa}.execution-summary-card.is-warn{border-color:#fde68a;background:#fffdf4}.execution-summary-card.is-ok,.execution-summary-card.is-good{border-color:#bbf7d0;background:#f7fef9}.execution-objective{display:grid;gap:14px}.execution-objective>strong{font-size:20px;letter-spacing:-.035em;line-height:1.2}.execution-objective ul{list-style:none;margin:0;padding:0;display:grid;gap:10px}.execution-objective li{border:1px solid var(--line);border-radius:14px;background:#fff;padding:12px;display:grid;gap:4px}.execution-objective b{font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:#64748b}.execution-objective span{font-size:13px;color:#475569;line-height:1.45}
.execution-step-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.execution-step-grid article{border:1px solid var(--line);border-radius:18px;background:#fff;padding:16px;display:grid;gap:10px}.execution-step-grid article.is-danger{border-color:#fecaca;background:#fffafa}.execution-step-grid article.is-warn{border-color:#fde68a;background:#fffdf4}.execution-step-grid article.is-ok,.execution-step-grid article.is-good{border-color:#bbf7d0;background:#f7fef9}.execution-step-grid strong{font-size:16px;line-height:1.25}.execution-step-grid p{margin:0;color:#475569;line-height:1.5}.execution-step-grid ul{list-style:none;margin:0;padding:0;display:grid;gap:8px}.execution-step-grid li{border-top:1px solid var(--line);padding-top:8px;display:grid;gap:3px}.execution-step-grid b{font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:#64748b}.execution-step-grid span{font-size:13px;color:#475569;line-height:1.4}.execution-close-card{display:grid;gap:10px}.execution-close-card>strong{font-size:18px}.execution-close-card p,.execution-close-card em{margin:0;color:#475569;line-height:1.5}.execution-close-card em{font-style:normal;border-left:3px solid #e5e7eb;padding-left:10px}.execution-close-card ul{margin:0;padding-left:18px;color:#334155}.execution-dashboard{background:linear-gradient(135deg,#fff,#fbfdff);border-color:#dbeafe}.execution-dashboard.is-danger{border-color:#fecaca;background:#fffafa}.execution-dashboard.is-warn{border-color:#fde68a;background:#fffdf4}.execution-dashboard.is-ok,.execution-dashboard.is-good{border-color:#bbf7d0;background:#f7fef9}.execution-dashboard-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.execution-dashboard-grid span{display:flex;align-items:center;gap:8px;border:1px solid var(--line);border-radius:16px;background:#fff;padding:13px;color:#475569;font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.045em}.execution-dashboard-grid strong{font-size:24px;color:#0f172a;letter-spacing:-.05em}.execution-dashboard-grid .is-danger{border-color:#fecaca;background:#fffafa;color:#991b1b}.execution-dashboard-grid .is-warn{border-color:#fde68a;background:#fffdf4;color:#92400e}.execution-dashboard-grid .is-ok,.execution-dashboard-grid .is-good{border-color:#bbf7d0;background:#f7fef9;color:#166534}
@media(max-width:1180px){.execution-filter-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.execution-filter-grid button{width:100%}.execution-grid{grid-template-columns:1fr}.execution-stats,.execution-dashboard-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.execution-step-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:720px){.execution-cover,.execution-filter-grid,.execution-stats,.execution-dashboard-grid,.execution-step-grid{grid-template-columns:1fr}.execution-score{width:126px;height:126px}.execution-head .head-actions{justify-content:flex-start}.execution-item-list{max-height:none}}

/* V130_CLOSURE_CONTROL */
.closure-head .head-actions{gap:8px;align-items:center}.closure-cover{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:24px;align-items:center;background:linear-gradient(135deg,#fff,#f8fbff);border-color:#dbeafe;position:relative;overflow:hidden}.closure-cover:before{content:"";position:absolute;right:-120px;top:-140px;width:320px;height:320px;border-radius:999px;background:rgba(14,165,233,.08)}.closure-cover>*{position:relative;z-index:1}.closure-cover h2{font-size:clamp(30px,4vw,48px);line-height:1.02;letter-spacing:-.06em;margin:6px 0 10px}.closure-cover p{margin:0;color:#475569;line-height:1.6;max-width:900px}.closure-cover small{display:block;margin-top:12px;color:#64748b;font-weight:600}.closure-cover.is-danger{border-color:#fecaca;background:linear-gradient(135deg,#fff,#fff7f7)}.closure-cover.is-warn{border-color:#fde68a;background:linear-gradient(135deg,#fff,#fffdf4)}.closure-cover.is-ok,.closure-cover.is-good{border-color:#bbf7d0;background:linear-gradient(135deg,#fff,#f7fef9)}
.closure-score{width:150px;height:150px;border-radius:999px;background:#fff;border:1px solid var(--line);box-shadow:0 18px 44px rgba(15,23,42,.08);display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center}.closure-score strong{font-size:34px;letter-spacing:-.06em}.closure-score span{font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:#64748b;max-width:110px;line-height:1.2}.closure-score.is-danger{border-color:#fecaca;color:#991b1b}.closure-score.is-warn{border-color:#fde68a;color:#92400e}.closure-score.is-ok,.closure-score.is-good{border-color:#bbf7d0;color:#166534}
.closure-filter-grid{display:grid;grid-template-columns:minmax(150px,.7fr) minmax(150px,.7fr) minmax(210px,.8fr) minmax(240px,1fr) auto;gap:12px;align-items:end}.closure-filter-grid label{display:grid;gap:7px;margin:0}.closure-filter-grid button{min-height:44px}.closure-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}.closure-stats .stat{min-height:112px}.closure-stats .stat.is-danger{border-color:#fecaca;background:#fffafa}.closure-stats .stat.is-warn{border-color:#fde68a;background:#fffdf4}.closure-stats .stat.is-good{border-color:#bbf7d0;background:#f7fef9}.closure-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(360px,.46fr);gap:18px;align-items:start}.closure-panel{min-width:0}.closure-item-list{display:grid;gap:10px;max-height:720px;overflow:auto;padding-right:3px}.closure-item{display:grid;gap:7px;text-decoration:none;color:inherit;border:1px solid var(--line);border-radius:16px;background:#fff;padding:14px;transition:transform .16s ease,border-color .16s ease,box-shadow .16s ease}.closure-item:hover,.closure-item.active{transform:translateY(-1px);border-color:var(--line-strong);box-shadow:0 12px 26px rgba(15,23,42,.06)}.closure-item span{display:flex;align-items:center;justify-content:space-between;gap:10px}.closure-item span strong{font-size:11px;text-transform:uppercase;letter-spacing:.075em;color:#64748b}.closure-item span em{font-style:normal;font-size:12px;font-weight:600;color:#475569}.closure-item b{font-size:15px;line-height:1.25}.closure-item small{color:var(--muted);line-height:1.35}.closure-item i{font-style:normal;color:#475569;font-size:12px;line-height:1.4;border-left:3px solid #e5e7eb;padding-left:10px}.closure-item.is-danger{border-color:#fecaca;background:#fffafa}.closure-item.is-danger i{border-left-color:#ef4444}.closure-item.is-warn{border-color:#fde68a;background:#fffdf4}.closure-item.is-warn i{border-left-color:#f59e0b}
.closure-summary-card{display:grid;gap:14px}.closure-summary-card.is-danger{border-color:#fecaca;background:#fffafa}.closure-summary-card.is-warn{border-color:#fde68a;background:#fffdf4}.closure-summary-card.is-ok,.closure-summary-card.is-good{border-color:#bbf7d0;background:#f7fef9}.closure-objective{display:grid;gap:14px}.closure-objective>strong{font-size:20px;letter-spacing:-.035em;line-height:1.2}.closure-objective ul{list-style:none;margin:0;padding:0;display:grid;gap:10px}.closure-objective li{border:1px solid var(--line);border-radius:14px;background:#fff;padding:12px;display:grid;gap:4px}.closure-objective b{font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:#64748b}.closure-objective span{font-size:13px;color:#475569;line-height:1.45}.closure-step-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.closure-step-grid article{border:1px solid var(--line);border-radius:18px;background:#fff;padding:16px;display:grid;gap:10px}.closure-step-grid article.is-danger{border-color:#fecaca;background:#fffafa}.closure-step-grid article.is-warn{border-color:#fde68a;background:#fffdf4}.closure-step-grid article.is-ok,.closure-step-grid article.is-good{border-color:#bbf7d0;background:#f7fef9}.closure-step-grid strong{font-size:16px;line-height:1.25}.closure-step-grid p{margin:0;color:#475569;line-height:1.5}.closure-step-grid span{border-top:1px solid var(--line);padding-top:8px;font-size:13px;color:#475569;line-height:1.4}.closure-step-grid b{display:block;font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:#64748b;margin-bottom:3px}
.closure-evidence-list{display:grid;gap:10px}.closure-evidence-list article{border:1px solid var(--line);border-radius:16px;background:#fff;padding:14px;display:grid;gap:6px}.closure-evidence-list strong{font-size:14px}.closure-evidence-list span{color:var(--muted);font-size:13px;line-height:1.45}.closure-note-card{display:grid;gap:12px}.closure-note-card strong{font-size:18px}.closure-note-card pre{white-space:pre-wrap;overflow:auto;border:1px solid var(--line);border-radius:16px;background:#f8fafc;padding:14px;color:#334155;line-height:1.5;margin:0}.closure-action-form{display:grid;gap:12px}.closure-action-form .btn{width:100%;justify-content:center}.closure-dashboard{background:linear-gradient(135deg,#fff,#fbfdff);border-color:#dbeafe}.closure-dashboard.is-danger{border-color:#fecaca;background:#fffafa}.closure-dashboard.is-warn{border-color:#fde68a;background:#fffdf4}.closure-dashboard.is-ok,.closure-dashboard.is-good{border-color:#bbf7d0;background:#f7fef9}.closure-dashboard-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.closure-dashboard-grid span{display:flex;align-items:center;gap:8px;border:1px solid var(--line);border-radius:16px;background:#fff;padding:13px;color:#475569;font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.045em}.closure-dashboard-grid strong{font-size:24px;color:#0f172a;letter-spacing:-.05em}.closure-dashboard-grid .is-danger{border-color:#fecaca;background:#fffafa;color:#991b1b}.closure-dashboard-grid .is-warn{border-color:#fde68a;background:#fffdf4;color:#92400e}.closure-dashboard-grid .is-ok,.closure-dashboard-grid .is-good{border-color:#bbf7d0;background:#f7fef9;color:#166534}
@media(max-width:1180px){.closure-filter-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.closure-filter-grid button{width:100%}.closure-grid{grid-template-columns:1fr}.closure-stats,.closure-dashboard-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.closure-step-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:720px){.closure-cover,.closure-filter-grid,.closure-stats,.closure-dashboard-grid,.closure-step-grid{grid-template-columns:1fr}.closure-score{width:126px;height:126px}.closure-head .head-actions{justify-content:flex-start}.closure-item-list{max-height:none}}

/* V131_QUALITY_AUDIT — audit qualité avant partage, rapport ou clôture */
.quality-cover{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:20px;align-items:center;background:linear-gradient(135deg,#fff,#fbfdff);border-color:#dbeafe}.quality-cover.is-danger{border-color:#fecaca;background:#fffafa}.quality-cover.is-warn{border-color:#fde68a;background:#fffdf4}.quality-cover.is-ok,.quality-cover.is-good{border-color:#bbf7d0;background:#f7fef9}.quality-score{width:154px;height:154px;border-radius:999px;display:grid;place-items:center;text-align:center;border:1px solid var(--line);background:#fff;box-shadow:0 18px 40px rgba(15,23,42,.07)}.quality-score strong{font-size:38px;letter-spacing:-.06em;line-height:1}.quality-score span{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:#64748b;max-width:92px;line-height:1.2}.quality-score.is-danger strong{color:#991b1b}.quality-score.is-warn strong{color:#92400e}.quality-score.is-ok strong,.quality-score.is-good strong{color:#166534}.quality-filter-grid{display:grid;grid-template-columns:minmax(220px,.8fr) minmax(160px,.5fr) auto;gap:12px;align-items:end}.quality-filter-grid label{display:grid;gap:7px;margin:0}.quality-filter-grid button{min-height:44px}.quality-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}.quality-stats .stat{min-height:112px}.quality-stats .stat.is-danger{border-color:#fecaca;background:#fffafa}.quality-stats .stat.is-warn{border-color:#fde68a;background:#fffdf4}.quality-stats .stat.is-ok{border-color:#bbf7d0;background:#f7fef9}.quality-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(350px,.42fr);gap:18px;align-items:start}.quality-panel{min-width:0}.quality-next-list{display:grid;gap:10px}.quality-check{display:grid;grid-template-columns:auto minmax(0,1fr);gap:12px;align-items:start;text-decoration:none;color:inherit;border:1px solid var(--line);border-radius:16px;background:#fff;padding:14px}.quality-check:hover{border-color:var(--line-strong);box-shadow:0 10px 26px rgba(15,23,42,.05);transform:translateY(-1px)}.quality-check>span{width:28px;height:28px;border-radius:999px;display:grid;place-items:center;font-weight:600;border:1px solid var(--line);background:#f8fafc}.quality-check strong{display:block;font-size:15px;line-height:1.25}.quality-check em{display:block;margin-top:4px;font-style:normal;color:#64748b;font-size:13px;line-height:1.4}.quality-check.is-danger{border-color:#fecaca;background:#fffafa}.quality-check.is-danger>span{background:#fee2e2;color:#991b1b;border-color:#fecaca}.quality-check.is-warn{border-color:#fde68a;background:#fffdf4}.quality-check.is-warn>span{background:#fef3c7;color:#92400e;border-color:#fde68a}.quality-check.is-ok{border-color:#bbf7d0;background:#f7fef9}.quality-check.is-ok>span{background:#dcfce7;color:#166534;border-color:#bbf7d0}.quality-summary-card.is-danger{border-color:#fecaca;background:#fffafa}.quality-summary-card.is-warn{border-color:#fde68a;background:#fffdf4}.quality-summary-card.is-ok{border-color:#bbf7d0;background:#f7fef9}.quality-verdict{display:grid;gap:12px}.quality-verdict>strong{font-size:22px;letter-spacing:-.035em}.quality-verdict p{margin:0;color:#475569;line-height:1.5}.quality-verdict ul{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;list-style:none;padding:0;margin:0}.quality-verdict li{display:grid;gap:4px;border:1px solid var(--line);border-radius:14px;background:#fff;padding:12px}.quality-verdict b{font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:#64748b}.quality-verdict span{font-weight:600;color:#111827}.quality-groups{display:grid;gap:16px}.quality-check-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.quality-check-card{display:grid;grid-template-columns:auto minmax(0,1fr);gap:8px 10px;text-decoration:none;color:inherit;border:1px solid var(--line);border-radius:16px;background:#fff;padding:14px}.quality-check-card:hover{border-color:var(--line-strong);box-shadow:0 10px 24px rgba(15,23,42,.05)}.quality-check-card>span{grid-row:1 / span 3;width:26px;height:26px;border-radius:999px;display:grid;place-items:center;font-weight:600;background:#f3f4f6}.quality-check-card strong{line-height:1.25}.quality-check-card em,.quality-check-card small{font-style:normal;color:#64748b;font-size:13px;line-height:1.38}.quality-check-card small{color:#475569}.quality-check-card.is-danger{border-color:#fecaca;background:#fffafa}.quality-check-card.is-danger>span{background:#fee2e2;color:#991b1b}.quality-check-card.is-warn{border-color:#fde68a;background:#fffdf4}.quality-check-card.is-warn>span{background:#fef3c7;color:#92400e}.quality-check-card.is-ok{border-color:#bbf7d0;background:#f7fef9}.quality-check-card.is-ok>span{background:#dcfce7;color:#166534}.quality-risk-list{display:grid;gap:9px}.quality-risk{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:3px 10px;text-decoration:none;color:inherit;border:1px solid var(--line);border-radius:14px;background:#fff;padding:12px}.quality-risk:hover{border-color:var(--line-strong)}.quality-risk strong{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.quality-risk span{grid-column:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#64748b;font-size:13px}.quality-risk em{grid-column:2;grid-row:1 / span 2;align-self:center;font-style:normal;font-size:12px;font-weight:600;color:#475569;border:1px solid var(--line);border-radius:999px;padding:5px 8px;background:#fff}.quality-risk.is-danger{border-color:#fecaca;background:#fffafa}.quality-risk.is-warn{border-color:#fde68a;background:#fffdf4}.quality-dashboard{background:linear-gradient(135deg,#fff,#fbfdff);border-color:#dbeafe}.quality-dashboard.is-danger{border-color:#fecaca;background:#fffafa}.quality-dashboard.is-warn{border-color:#fde68a;background:#fffdf4}.quality-dashboard.is-ok,.quality-dashboard.is-good{border-color:#bbf7d0;background:#f7fef9}.quality-dashboard-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.quality-dashboard-grid span{display:flex;align-items:center;gap:8px;border:1px solid var(--line);border-radius:16px;background:#fff;padding:13px;color:#475569;font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.045em}.quality-dashboard-grid strong{font-size:24px;color:#0f172a;letter-spacing:-.05em}.quality-dashboard-grid .is-danger{border-color:#fecaca;background:#fffafa;color:#991b1b}.quality-dashboard-grid .is-warn{border-color:#fde68a;background:#fffdf4;color:#92400e}.quality-dashboard-grid .is-ok,.quality-dashboard-grid .is-good{border-color:#bbf7d0;background:#f7fef9;color:#166534}
@media(max-width:1180px){.quality-grid{grid-template-columns:1fr}.quality-check-grid,.quality-stats,.quality-dashboard-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:720px){.quality-cover,.quality-filter-grid,.quality-stats,.quality-dashboard-grid,.quality-check-grid,.quality-verdict ul{grid-template-columns:1fr}.quality-score{width:126px;height:126px}.quality-head .head-actions{justify-content:flex-start}.quality-risk{grid-template-columns:1fr}.quality-risk em{grid-column:auto;grid-row:auto;justify-self:start}}

/* V132_COMPLIANCE_CENTER — conformité opérationnelle avant lancement, transmission ou clôture */
.compliance-head .head-actions{align-items:center}.compliance-cover{display:grid;grid-template-columns:minmax(0,1fr) 190px;gap:22px;align-items:center;border:1px solid rgba(15,23,42,.08);overflow:hidden;position:relative}.compliance-cover:before{content:"";position:absolute;inset:0;background:linear-gradient(135deg,rgba(15,23,42,.05),rgba(14,165,233,.06));pointer-events:none}.compliance-cover>*{position:relative}.compliance-cover.is-danger{border-color:rgba(220,38,38,.26)}.compliance-cover.is-warn{border-color:rgba(245,158,11,.30)}.compliance-cover.is-ok{border-color:rgba(22,163,74,.24)}.compliance-score{border-radius:24px;padding:24px;text-align:center;background:#fff;border:1px solid rgba(15,23,42,.08);box-shadow:0 18px 45px rgba(15,23,42,.08)}.compliance-score strong{display:block;font-size:42px;line-height:1;font-weight:600;letter-spacing:-.05em}.compliance-score span{display:block;margin-top:8px;color:var(--muted);font-size:13px;font-weight:600;text-transform:uppercase}.compliance-score.is-danger strong{color:#b91c1c}.compliance-score.is-warn strong{color:#b45309}.compliance-score.is-ok strong{color:#15803d}.compliance-disclaimer{display:flex;gap:14px;align-items:flex-start;border-style:dashed}.compliance-disclaimer strong{white-space:nowrap}.compliance-disclaimer p{margin:0;color:var(--muted)}.compliance-filter-grid{display:grid;grid-template-columns:1fr 1fr auto;gap:14px;align-items:end}.compliance-stats,.compliance-dashboard-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}.compliance-grid{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(320px,.7fr);gap:18px;align-items:start}.compliance-panel{min-width:0}.compliance-decision-list,.compliance-obligation-list,.compliance-next-list{display:grid;gap:10px}.compliance-decision-list article,.compliance-obligation-list article{padding:14px;border:1px solid rgba(15,23,42,.08);border-radius:16px;background:#fff}.compliance-decision-list strong,.compliance-obligation-list strong{display:block;margin-bottom:5px}.compliance-decision-list span,.compliance-obligation-list span{display:block;color:var(--muted);font-size:14px}.compliance-identity-card ul{list-style:none;margin:0;padding:0;display:grid;gap:10px}.compliance-identity-card li{display:flex;justify-content:space-between;gap:12px;border-bottom:1px solid rgba(15,23,42,.07);padding-bottom:10px}.compliance-identity-card li:last-child{border-bottom:0;padding-bottom:0}.compliance-identity-card b{font-size:13px;color:var(--muted)}.compliance-identity-card span{text-align:right;font-weight:600}.compliance-next{display:grid;grid-template-columns:34px 1fr;gap:12px;align-items:start;padding:14px;border-radius:16px;border:1px solid rgba(15,23,42,.08);background:#fff;text-decoration:none;color:inherit}.compliance-next>span{width:34px;height:34px;border-radius:12px;display:grid;place-items:center;background:#f1f5f9;font-weight:600}.compliance-next strong{display:block}.compliance-next em{display:block;color:var(--muted);font-style:normal;font-size:13px;margin-top:3px}.compliance-next.is-danger{border-color:rgba(220,38,38,.25);background:#fff7f7}.compliance-next.is-danger>span{background:#fee2e2;color:#991b1b}.compliance-next.is-warn{border-color:rgba(245,158,11,.28);background:#fffbeb}.compliance-next.is-warn>span{background:#fef3c7;color:#92400e}.compliance-groups{display:grid;gap:18px}.compliance-check-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.compliance-check-card{padding:15px;border-radius:17px;border:1px solid rgba(15,23,42,.08);background:#fff;text-decoration:none;color:inherit;display:grid;gap:7px}.compliance-check-card>span{width:30px;height:30px;border-radius:11px;display:grid;place-items:center;background:#f1f5f9;font-weight:600}.compliance-check-card strong{line-height:1.2}.compliance-check-card em,.compliance-check-card small{font-style:normal;color:var(--muted);font-size:13px}.compliance-check-card.is-danger{border-color:rgba(220,38,38,.25);background:#fff7f7}.compliance-check-card.is-danger>span{background:#fee2e2;color:#991b1b}.compliance-check-card.is-warn{border-color:rgba(245,158,11,.28);background:#fffbeb}.compliance-check-card.is-warn>span{background:#fef3c7;color:#92400e}.compliance-check-card.is-ok{border-color:rgba(22,163,74,.20);background:#f7fff9}.compliance-check-card.is-ok>span{background:#dcfce7;color:#166534}.compliance-dashboard{border-left:4px solid rgba(15,23,42,.12)}.compliance-dashboard.is-danger{border-left-color:#dc2626}.compliance-dashboard.is-warn{border-left-color:#f59e0b}.compliance-dashboard.is-ok{border-left-color:#16a34a}.compliance-dashboard-grid span{display:block;border:1px solid rgba(15,23,42,.08);border-radius:16px;padding:13px;background:#fff}.compliance-dashboard-grid strong{display:block;font-size:20px}.compliance-dashboard-grid .is-danger strong,.compliance-stats .is-danger span{color:#b91c1c}.compliance-dashboard-grid .is-warn strong,.compliance-stats .is-warn span{color:#b45309}.compliance-dashboard-grid .is-ok strong,.compliance-stats .is-ok span{color:#15803d}
@media (max-width:980px){.compliance-cover,.compliance-grid{grid-template-columns:1fr}.compliance-filter-grid,.compliance-stats,.compliance-dashboard-grid,.compliance-check-grid{grid-template-columns:1fr}.compliance-disclaimer{display:block}.compliance-disclaimer strong{display:block;margin-bottom:8px}.compliance-identity-card span{text-align:left}}

/* V133_SUPERVISION_CENTER — supervision consolidée direction, risques, preuves et conformité */
.supervision-head .head-actions{align-items:center}.supervision-cover{display:grid;grid-template-columns:minmax(0,1fr) 190px;gap:22px;align-items:center;border:1px solid rgba(15,23,42,.08);overflow:hidden;position:relative;background:linear-gradient(135deg,#fff,#f8fbff)}.supervision-cover:before{content:"";position:absolute;inset:0;background:radial-gradient(circle at top right,rgba(15,23,42,.08),transparent 38%),linear-gradient(135deg,rgba(14,165,233,.06),rgba(255,255,255,0));pointer-events:none}.supervision-cover>*{position:relative}.supervision-cover h2{font-size:clamp(32px,4vw,52px);line-height:1.02;letter-spacing:-.065em;margin:6px 0 10px}.supervision-cover p{margin:0;color:#475569;line-height:1.6;max-width:880px}.supervision-cover small{display:block;margin-top:12px;color:#64748b;font-weight:600}.supervision-cover.is-danger{border-color:#fecaca;background:linear-gradient(135deg,#fff,#fff7f7)}.supervision-cover.is-warn{border-color:#fde68a;background:linear-gradient(135deg,#fff,#fffdf4)}.supervision-cover.is-ok,.supervision-cover.is-good{border-color:#bbf7d0;background:linear-gradient(135deg,#fff,#f7fef9)}.supervision-score{border-radius:24px;padding:24px;text-align:center;background:#fff;border:1px solid rgba(15,23,42,.08);box-shadow:0 18px 45px rgba(15,23,42,.08)}.supervision-score strong{display:block;font-size:42px;line-height:1;font-weight:600;letter-spacing:-.06em}.supervision-score span{display:block;margin-top:8px;color:#64748b;font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.06em}.supervision-score.is-danger strong{color:#b91c1c}.supervision-score.is-warn strong{color:#b45309}.supervision-score.is-ok strong,.supervision-score.is-good strong{color:#15803d}.supervision-filter-grid{display:grid;grid-template-columns:1fr 1fr auto;gap:14px;align-items:end}.supervision-stats,.supervision-dashboard-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}.supervision-stats .card{display:grid;gap:5px}.supervision-stats span{font-size:28px;font-weight:600;letter-spacing:-.05em}.supervision-stats strong{font-size:14px}.supervision-stats em{font-style:normal;color:#64748b;font-size:12px}.supervision-stats .is-danger span,.supervision-dashboard-grid .is-danger strong{color:#b91c1c}.supervision-stats .is-warn span,.supervision-dashboard-grid .is-warn strong{color:#b45309}.supervision-stats .is-ok span,.supervision-dashboard-grid .is-ok strong{color:#15803d}.supervision-grid{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(320px,.8fr);gap:18px;align-items:start}.supervision-panel{min-width:0}.supervision-brief-list,.supervision-sequence,.supervision-next-list{display:grid;gap:10px}.supervision-brief-list article,.supervision-sequence a{padding:14px;border:1px solid rgba(15,23,42,.08);border-radius:16px;background:#fff;text-decoration:none;color:inherit}.supervision-brief-list strong,.supervision-sequence strong{display:block;margin-bottom:5px}.supervision-brief-list span,.supervision-sequence span{display:block;color:#64748b;font-size:14px;line-height:1.45}.supervision-sequence a:hover,.supervision-next:hover{border-color:rgba(15,23,42,.18);box-shadow:0 10px 24px rgba(15,23,42,.05)}.supervision-lanes{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.supervision-lane{display:grid;gap:14px;border-left:4px solid rgba(15,23,42,.12)}.supervision-lane.is-danger{border-left-color:#dc2626;background:#fffafa}.supervision-lane.is-warn{border-left-color:#f59e0b;background:#fffdf4}.supervision-lane.is-ok,.supervision-lane.is-good{border-left-color:#16a34a;background:#f7fef9}.supervision-lane-head{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:14px;align-items:start}.supervision-lane-head h2{margin:0 0 5px}.supervision-lane-score{border:1px solid rgba(15,23,42,.08);border-radius:16px;background:#fff;padding:12px;min-width:94px;text-align:center}.supervision-lane-score strong{display:block;font-size:22px;letter-spacing:-.05em}.supervision-lane-score span{display:block;font-size:11px;font-weight:600;color:#64748b;text-transform:uppercase;letter-spacing:.05em}.supervision-metrics{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.supervision-metrics span,.supervision-dashboard-grid span{display:block;border:1px solid rgba(15,23,42,.08);border-radius:15px;background:#fff;padding:12px;color:#475569;font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.045em}.supervision-metrics strong,.supervision-dashboard-grid strong{display:block;font-size:21px;color:#0f172a;letter-spacing:-.05em}.supervision-actions{display:flex;flex-wrap:wrap;gap:8px}.supervision-actions a{display:inline-flex;border:1px solid rgba(15,23,42,.10);background:#fff;border-radius:999px;padding:8px 11px;text-decoration:none;color:#111827;font-size:12px;font-weight:600}.supervision-next{display:grid;gap:5px;padding:14px;border-radius:16px;border:1px solid rgba(15,23,42,.08);background:#fff;text-decoration:none;color:inherit}.supervision-next>span{display:inline-flex;width:max-content;border-radius:999px;background:#f1f5f9;color:#334155;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.055em;padding:5px 8px}.supervision-next strong{display:block}.supervision-next em{display:block;color:#64748b;font-style:normal;font-size:13px;line-height:1.42}.supervision-next.is-danger{border-color:#fecaca;background:#fffafa}.supervision-next.is-danger>span{background:#fee2e2;color:#991b1b}.supervision-next.is-warn{border-color:#fde68a;background:#fffdf4}.supervision-next.is-warn>span{background:#fef3c7;color:#92400e}.supervision-dashboard{border-left:4px solid rgba(15,23,42,.12)}.supervision-dashboard.is-danger{border-left-color:#dc2626;background:#fffafa}.supervision-dashboard.is-warn{border-left-color:#f59e0b;background:#fffdf4}.supervision-dashboard.is-ok,.supervision-dashboard.is-good{border-left-color:#16a34a;background:#f7fef9}.supervision-dashboard-brief{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-top:14px}.supervision-dashboard-brief article{border:1px solid rgba(15,23,42,.08);border-radius:15px;background:#fff;padding:12px;display:grid;gap:5px}.supervision-dashboard-brief strong{font-size:13px}.supervision-dashboard-brief span{color:#64748b;font-size:13px;line-height:1.42}
@media(max-width:1180px){.supervision-grid,.supervision-lanes{grid-template-columns:1fr}.supervision-dashboard-brief{grid-template-columns:1fr}}@media(max-width:720px){.supervision-cover,.supervision-filter-grid,.supervision-stats,.supervision-dashboard-grid,.supervision-metrics{grid-template-columns:1fr}.supervision-lane-head{grid-template-columns:1fr}.supervision-head .head-actions{justify-content:flex-start}}

/* V134_LAUNCH_READINESS — go/no-go pré-lancement, runbook et rollback */
.launch-head .head-actions{align-items:center}.launch-cover{display:grid;grid-template-columns:minmax(0,1fr) 190px;gap:22px;align-items:center;border:1px solid rgba(15,23,42,.08);overflow:hidden;position:relative;background:linear-gradient(135deg,#fff,#f8fbff)}.launch-cover:before{content:"";position:absolute;inset:0;background:radial-gradient(circle at top right,rgba(15,23,42,.08),transparent 38%),linear-gradient(135deg,rgba(37,99,235,.06),rgba(255,255,255,0));pointer-events:none}.launch-cover>*{position:relative}.launch-cover h2{font-size:clamp(32px,4vw,52px);line-height:1.02;letter-spacing:-.065em;margin:6px 0 10px}.launch-cover p{margin:0;color:#475569;line-height:1.6;max-width:880px}.launch-cover small{display:block;margin-top:12px;color:#64748b;font-weight:600}.launch-cover.is-danger{border-color:#fecaca;background:linear-gradient(135deg,#fff,#fff7f7)}.launch-cover.is-warn{border-color:#fde68a;background:linear-gradient(135deg,#fff,#fffdf4)}.launch-cover.is-ok,.launch-cover.is-good{border-color:#bbf7d0;background:linear-gradient(135deg,#fff,#f7fef9)}.launch-score{border-radius:24px;padding:24px;text-align:center;background:#fff;border:1px solid rgba(15,23,42,.08);box-shadow:0 18px 45px rgba(15,23,42,.08)}.launch-score strong{display:block;font-size:42px;line-height:1;font-weight:600;letter-spacing:-.06em}.launch-score span{display:block;margin-top:8px;color:#64748b;font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.06em}.launch-score.is-danger strong{color:#b91c1c}.launch-score.is-warn strong{color:#b45309}.launch-score.is-ok strong,.launch-score.is-good strong{color:#15803d}.launch-filter-grid{display:grid;grid-template-columns:minmax(240px,.5fr) auto;gap:14px;align-items:end}.launch-stats,.launch-dashboard-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}.launch-stats .card{display:grid;gap:5px}.launch-stats span{font-size:28px;font-weight:600;letter-spacing:-.05em}.launch-stats strong{font-size:14px}.launch-stats em{font-style:normal;color:#64748b;font-size:12px}.launch-stats .is-danger span,.launch-dashboard-grid .is-danger strong{color:#b91c1c}.launch-stats .is-warn span,.launch-dashboard-grid .is-warn strong{color:#b45309}.launch-stats .is-ok span,.launch-dashboard-grid .is-ok strong{color:#15803d}.launch-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(320px,.8fr);gap:18px;align-items:start}.launch-grid:has(> .launch-panel:nth-child(3)){grid-template-columns:repeat(3,minmax(0,1fr))}.launch-panel{min-width:0}.launch-gate-list,.launch-blocker-list,.launch-runbook-list{display:grid;gap:10px}.launch-gate{display:grid;grid-template-columns:92px minmax(0,1fr);gap:12px;align-items:start;border:1px solid rgba(15,23,42,.08);border-radius:16px;background:#fff;padding:14px}.launch-gate>span{display:inline-flex;align-items:center;justify-content:center;border-radius:999px;background:#f1f5f9;color:#334155;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.055em;padding:7px 8px}.launch-gate strong{display:block}.launch-gate em{display:block;color:#64748b;font-style:normal;font-size:13px;line-height:1.45;margin-top:4px}.launch-gate.is-danger{border-color:#fecaca;background:#fffafa}.launch-gate.is-danger>span{background:#fee2e2;color:#991b1b}.launch-gate.is-warn{border-color:#fde68a;background:#fffdf4}.launch-gate.is-warn>span{background:#fef3c7;color:#92400e}.launch-gate.is-ok,.launch-gate.is-good{border-color:#bbf7d0;background:#f7fef9}.launch-gate.is-ok>span,.launch-gate.is-good>span{background:#dcfce7;color:#166534}.launch-blocker{display:grid;gap:5px;padding:14px;border-radius:16px;border:1px solid rgba(15,23,42,.08);background:#fff;text-decoration:none;color:inherit}.launch-blocker>span{width:max-content;border-radius:999px;background:#f1f5f9;color:#334155;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.055em;padding:5px 8px}.launch-blocker em{font-style:normal;color:#64748b;font-size:13px}.launch-blocker.is-danger{border-color:#fecaca;background:#fffafa}.launch-blocker.is-danger>span{background:#fee2e2;color:#991b1b}.launch-blocker.is-warn{border-color:#fde68a;background:#fffdf4}.launch-blocker.is-warn>span{background:#fef3c7;color:#92400e}.launch-lanes{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.launch-lane{display:grid;gap:14px;border-left:4px solid rgba(15,23,42,.12)}.launch-lane.is-danger{border-left-color:#dc2626;background:#fffafa}.launch-lane.is-warn{border-left-color:#f59e0b;background:#fffdf4}.launch-lane.is-ok,.launch-lane.is-good{border-left-color:#16a34a;background:#f7fef9}.launch-lane-head{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:14px;align-items:start}.launch-lane-head h2{margin:0 0 5px}.launch-lane-score{border:1px solid rgba(15,23,42,.08);border-radius:16px;background:#fff;padding:12px;min-width:94px;text-align:center}.launch-lane-score strong{display:block;font-size:22px;letter-spacing:-.05em}.launch-lane-score span{display:block;font-size:11px;font-weight:600;color:#64748b;text-transform:uppercase;letter-spacing:.05em}.launch-metrics{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.launch-metrics span,.launch-dashboard-grid span{display:block;border:1px solid rgba(15,23,42,.08);border-radius:15px;background:#fff;padding:12px;color:#475569;font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.045em}.launch-metrics strong,.launch-dashboard-grid strong{display:block;font-size:21px;color:#0f172a;letter-spacing:-.05em}.launch-actions{display:flex;flex-wrap:wrap;gap:8px}.launch-actions a{display:inline-flex;border:1px solid rgba(15,23,42,.10);background:#fff;border-radius:999px;padding:8px 11px;text-decoration:none;color:#111827;font-size:12px;font-weight:600}.launch-runbook-list article{padding:14px;border:1px solid rgba(15,23,42,.08);border-radius:16px;background:#fff;display:grid;gap:5px}.launch-runbook-list span{color:#64748b;font-size:14px;line-height:1.45}.launch-dashboard{border-left:4px solid rgba(15,23,42,.12)}.launch-dashboard.is-danger{border-left-color:#dc2626;background:#fffafa}.launch-dashboard.is-warn{border-left-color:#f59e0b;background:#fffdf4}.launch-dashboard.is-ok,.launch-dashboard.is-good{border-left-color:#16a34a;background:#f7fef9}.launch-dashboard-brief{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-top:14px}.launch-dashboard-brief a,.launch-dashboard-brief article{border:1px solid rgba(15,23,42,.08);border-radius:15px;background:#fff;padding:12px;display:grid;gap:5px;text-decoration:none;color:inherit}.launch-dashboard-brief strong{font-size:13px}.launch-dashboard-brief span{color:#64748b;font-size:13px;line-height:1.42}.launch-dashboard-brief .is-danger{border-color:#fecaca;background:#fffafa}.launch-dashboard-brief .is-warn{border-color:#fde68a;background:#fffdf4}@media(max-width:1180px){.launch-grid,.launch-grid:has(> .launch-panel:nth-child(3)),.launch-lanes{grid-template-columns:1fr}.launch-dashboard-brief{grid-template-columns:1fr}}@media(max-width:720px){.launch-cover,.launch-filter-grid,.launch-stats,.launch-dashboard-grid,.launch-metrics{grid-template-columns:1fr}.launch-lane-head,.launch-gate{grid-template-columns:1fr}.launch-head .head-actions{justify-content:flex-start}}

/* V136_ADMIN_ISOLATION — admin regroupé dans /admin avec double barrière serveur */
.postdeploy-head .head-actions{align-items:center}.postdeploy-cover{display:grid;grid-template-columns:minmax(0,1fr) 190px;gap:22px;align-items:center;border:1px solid rgba(15,23,42,.08);overflow:hidden;position:relative;background:linear-gradient(135deg,#fff,#f8fbff)}.postdeploy-cover:before{content:"";position:absolute;inset:0;background:radial-gradient(circle at top right,rgba(15,23,42,.08),transparent 38%),linear-gradient(135deg,rgba(14,165,233,.07),rgba(255,255,255,0));pointer-events:none}.postdeploy-cover>*{position:relative}.postdeploy-cover h2{font-size:clamp(32px,4vw,52px);line-height:1.02;letter-spacing:-.065em;margin:6px 0 10px}.postdeploy-cover p{margin:0;color:#475569;line-height:1.6;max-width:880px}.postdeploy-cover small{display:block;margin-top:12px;color:#64748b;font-weight:600}.postdeploy-cover.is-danger{border-color:#fecaca;background:linear-gradient(135deg,#fff,#fff7f7)}.postdeploy-cover.is-warn{border-color:#fde68a;background:linear-gradient(135deg,#fff,#fffdf4)}.postdeploy-cover.is-ok,.postdeploy-cover.is-good{border-color:#bbf7d0;background:linear-gradient(135deg,#fff,#f7fef9)}.postdeploy-score{border-radius:24px;padding:24px;text-align:center;background:#fff;border:1px solid rgba(15,23,42,.08);box-shadow:0 18px 45px rgba(15,23,42,.08)}.postdeploy-score strong{display:block;font-size:42px;line-height:1;font-weight:600;letter-spacing:-.06em}.postdeploy-score span{display:block;margin-top:8px;color:#64748b;font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.06em}.postdeploy-score.is-danger strong{color:#b91c1c}.postdeploy-score.is-warn strong{color:#b45309}.postdeploy-score.is-ok strong,.postdeploy-score.is-good strong{color:#15803d}.postdeploy-filter-grid{display:grid;grid-template-columns:minmax(180px,.45fr) minmax(220px,.55fr) auto;gap:14px;align-items:end}.postdeploy-stats,.postdeploy-dashboard-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}.postdeploy-stats .card{display:grid;gap:5px}.postdeploy-stats span{font-size:28px;font-weight:600;letter-spacing:-.05em}.postdeploy-stats strong{font-size:14px}.postdeploy-stats em{font-style:normal;color:#64748b;font-size:12px}.postdeploy-stats .is-danger span,.postdeploy-dashboard-grid .is-danger strong{color:#b91c1c}.postdeploy-stats .is-warn span,.postdeploy-dashboard-grid .is-warn strong{color:#b45309}.postdeploy-stats .is-ok span,.postdeploy-dashboard-grid .is-ok strong{color:#15803d}.postdeploy-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(320px,.82fr);gap:18px;align-items:start}.postdeploy-panel{min-width:0}.postdeploy-incident-list,.postdeploy-watchlist,.postdeploy-checkpoints,.postdeploy-runbook{display:grid;gap:10px}.postdeploy-incident,.postdeploy-watch{display:grid;gap:5px;padding:14px;border-radius:16px;border:1px solid rgba(15,23,42,.08);background:#fff;text-decoration:none;color:inherit}.postdeploy-incident>span{width:max-content;border-radius:999px;background:#f1f5f9;color:#334155;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.055em;padding:5px 8px}.postdeploy-incident em,.postdeploy-watch span{font-style:normal;color:#64748b;font-size:13px;line-height:1.42}.postdeploy-incident.is-danger,.postdeploy-watch.is-danger{border-color:#fecaca;background:#fffafa}.postdeploy-incident.is-danger>span{background:#fee2e2;color:#991b1b}.postdeploy-incident.is-warn,.postdeploy-watch.is-warn{border-color:#fde68a;background:#fffdf4}.postdeploy-incident.is-warn>span{background:#fef3c7;color:#92400e}.postdeploy-lanes{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.postdeploy-lane{display:grid;gap:14px;border-left:4px solid rgba(15,23,42,.12)}.postdeploy-lane.is-danger{border-left-color:#dc2626;background:#fffafa}.postdeploy-lane.is-warn{border-left-color:#f59e0b;background:#fffdf4}.postdeploy-lane.is-ok,.postdeploy-lane.is-good{border-left-color:#16a34a;background:#f7fef9}.postdeploy-lane-head{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:14px;align-items:start}.postdeploy-lane-head h2{margin:0 0 5px}.postdeploy-lane-score{border:1px solid rgba(15,23,42,.08);border-radius:16px;background:#fff;padding:12px;min-width:94px;text-align:center}.postdeploy-lane-score strong{display:block;font-size:22px;letter-spacing:-.05em}.postdeploy-lane-score span{display:block;font-size:11px;font-weight:600;color:#64748b;text-transform:uppercase;letter-spacing:.05em}.postdeploy-metrics{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.postdeploy-metrics span,.postdeploy-dashboard-grid span{display:block;border:1px solid rgba(15,23,42,.08);border-radius:15px;background:#fff;padding:12px;color:#475569;font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.045em}.postdeploy-metrics strong,.postdeploy-dashboard-grid strong{display:block;font-size:21px;color:#0f172a;letter-spacing:-.05em}.postdeploy-actions{display:flex;flex-wrap:wrap;gap:8px}.postdeploy-actions a{display:inline-flex;border:1px solid rgba(15,23,42,.10);background:#fff;border-radius:999px;padding:8px 11px;text-decoration:none;color:#111827;font-size:12px;font-weight:600}.postdeploy-checkpoints article,.postdeploy-runbook article{padding:14px;border:1px solid rgba(15,23,42,.08);border-radius:16px;background:#fff;display:grid;gap:5px}.postdeploy-checkpoints span{display:inline-flex;width:max-content;border-radius:999px;background:#eef2ff;color:#3730a3;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.055em;padding:5px 8px}.postdeploy-checkpoints em,.postdeploy-runbook span{color:#64748b;font-size:14px;line-height:1.45;font-style:normal}.postdeploy-dashboard{border-left:4px solid rgba(15,23,42,.12)}.postdeploy-dashboard.is-danger{border-left-color:#dc2626;background:#fffafa}.postdeploy-dashboard.is-warn{border-left-color:#f59e0b;background:#fffdf4}.postdeploy-dashboard.is-ok,.postdeploy-dashboard.is-good{border-left-color:#16a34a;background:#f7fef9}.postdeploy-dashboard-brief{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-top:14px}.postdeploy-dashboard-brief a,.postdeploy-dashboard-brief article{border:1px solid rgba(15,23,42,.08);border-radius:15px;background:#fff;padding:12px;display:grid;gap:5px;text-decoration:none;color:inherit}.postdeploy-dashboard-brief strong{font-size:13px}.postdeploy-dashboard-brief span{color:#64748b;font-size:13px;line-height:1.42}.postdeploy-dashboard-brief .is-danger{border-color:#fecaca;background:#fffafa}.postdeploy-dashboard-brief .is-warn{border-color:#fde68a;background:#fffdf4}@media(max-width:1180px){.postdeploy-grid,.postdeploy-lanes{grid-template-columns:1fr}.postdeploy-dashboard-brief{grid-template-columns:1fr}}@media(max-width:720px){.postdeploy-cover,.postdeploy-filter-grid,.postdeploy-stats,.postdeploy-dashboard-grid,.postdeploy-metrics{grid-template-columns:1fr}.postdeploy-lane-head{grid-template-columns:1fr}.postdeploy-head .head-actions{justify-content:flex-start}}

/* V137_ADMIN_ACCESS — durcissement et contrôle de la barrière /admin */
.admin-access-head .head-actions{align-items:center}.admin-access-cover{display:grid;grid-template-columns:minmax(0,1fr) 190px;gap:22px;align-items:center;border:1px solid rgba(15,23,42,.08);overflow:hidden;position:relative;background:linear-gradient(135deg,#fff,#f8fbff)}.admin-access-cover:before{content:"";position:absolute;inset:0;background:radial-gradient(circle at top right,rgba(15,23,42,.08),transparent 38%),linear-gradient(135deg,rgba(14,165,233,.07),rgba(255,255,255,0));pointer-events:none}.admin-access-cover>*{position:relative}.admin-access-cover h2{font-size:clamp(32px,4vw,52px);line-height:1.02;letter-spacing:-.065em;margin:6px 0 10px}.admin-access-cover p{margin:0;color:#475569;line-height:1.6;max-width:880px}.admin-access-cover small{display:block;margin-top:12px;color:#64748b;font-weight:600}.admin-access-cover.is-danger{border-color:#fecaca;background:linear-gradient(135deg,#fff,#fff7f7)}.admin-access-cover.is-warn{border-color:#fde68a;background:linear-gradient(135deg,#fff,#fffdf4)}.admin-access-cover.is-ok,.admin-access-cover.is-good{border-color:#bbf7d0;background:linear-gradient(135deg,#fff,#f7fef9)}.admin-access-score{border-radius:24px;padding:24px;text-align:center;background:#fff;border:1px solid rgba(15,23,42,.08);box-shadow:0 18px 45px rgba(15,23,42,.08)}.admin-access-score strong{display:block;font-size:42px;line-height:1;font-weight:600;letter-spacing:-.06em}.admin-access-score span{display:block;margin-top:8px;color:#64748b;font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.06em}.admin-access-score.is-danger strong{color:#b91c1c}.admin-access-score.is-warn strong{color:#b45309}.admin-access-score.is-ok strong,.admin-access-score.is-good strong{color:#15803d}.admin-access-dashboard{border-left:4px solid rgba(15,23,42,.12)}.admin-access-dashboard.is-danger{border-left-color:#dc2626;background:#fffafa}.admin-access-dashboard.is-warn{border-left-color:#f59e0b;background:#fffdf4}.admin-access-dashboard.is-ok,.admin-access-dashboard.is-good{border-left-color:#16a34a;background:#f7fef9}.admin-command-list{display:grid;gap:10px}.admin-command-list article{display:grid;gap:8px;border:1px solid rgba(15,23,42,.08);border-radius:16px;background:#fff;padding:14px}.admin-command-list .codebox{margin:0;white-space:pre-wrap;word-break:break-word}.admin-access-checks{display:grid;gap:10px}.admin-access-checks article{display:grid;grid-template-columns:auto minmax(0,1fr);gap:12px;border:1px solid rgba(15,23,42,.08);border-radius:16px;background:#fff;padding:13px}.admin-access-checks article>span{width:max-content;height:max-content;border-radius:999px;background:#f1f5f9;color:#334155;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.055em;padding:5px 8px}.admin-access-checks strong{display:block;margin-bottom:3px}.admin-access-checks em,.admin-access-checks small{display:block;color:#64748b;font-style:normal;font-size:13px;line-height:1.42}.admin-access-checks small{margin-top:5px;color:#334155;font-weight:600}.admin-access-checks article.is-danger{border-color:#fecaca;background:#fffafa}.admin-access-checks article.is-danger>span{background:#fee2e2;color:#991b1b}.admin-access-checks article.is-warn{border-color:#fde68a;background:#fffdf4}.admin-access-checks article.is-warn>span{background:#fef3c7;color:#92400e}.admin-access-checks article.is-ok{border-color:#bbf7d0;background:#f7fef9}.admin-access-checks article.is-ok>span{background:#dcfce7;color:#166534}@media(max-width:720px){.admin-access-cover,.admin-access-stats{grid-template-columns:1fr}.admin-access-head .head-actions{justify-content:flex-start}.admin-access-checks article{grid-template-columns:1fr}}

/* V138_ADMIN_SECURITY_REGISTER — gouvernance, traces et rotation de /admin */
.admin-security-head .head-actions{align-items:center}.admin-security-cover{display:grid;grid-template-columns:minmax(0,1fr) 190px;gap:22px;align-items:center;border:1px solid rgba(15,23,42,.08);overflow:hidden;position:relative;background:linear-gradient(135deg,#fff,#f8fbff)}.admin-security-cover:before{content:"";position:absolute;inset:0;background:radial-gradient(circle at top right,rgba(79,70,229,.10),transparent 38%),linear-gradient(135deg,rgba(14,165,233,.06),rgba(255,255,255,0));pointer-events:none}.admin-security-cover>*{position:relative}.admin-security-cover h2{font-size:clamp(32px,4vw,52px);line-height:1.02;letter-spacing:-.065em;margin:6px 0 10px}.admin-security-cover p{margin:0;color:#475569;line-height:1.6;max-width:880px}.admin-security-cover small{display:block;margin-top:12px;color:#64748b;font-weight:600}.admin-security-cover.is-danger{border-color:#fecaca;background:linear-gradient(135deg,#fff,#fff7f7)}.admin-security-cover.is-warn{border-color:#fde68a;background:linear-gradient(135deg,#fff,#fffdf4)}.admin-security-cover.is-ok,.admin-security-cover.is-good{border-color:#bbf7d0;background:linear-gradient(135deg,#fff,#f7fef9)}.admin-security-score{border-radius:24px;padding:24px;text-align:center;background:#fff;border:1px solid rgba(15,23,42,.08);box-shadow:0 18px 45px rgba(15,23,42,.08)}.admin-security-score strong{display:block;font-size:42px;line-height:1;font-weight:600;letter-spacing:-.06em}.admin-security-score span{display:block;margin-top:8px;color:#64748b;font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.06em}.admin-security-score.is-danger strong{color:#b91c1c}.admin-security-score.is-warn strong{color:#b45309}.admin-security-score.is-ok strong,.admin-security-score.is-good strong{color:#15803d}.admin-security-filter-grid{display:grid;grid-template-columns:minmax(180px,.45fr) auto;gap:14px;align-items:end}.admin-security-stats .is-danger span,.admin-security-dashboard .is-danger strong{color:#b91c1c}.admin-security-stats .is-warn span,.admin-security-dashboard .is-warn strong{color:#b45309}.admin-security-stats .is-ok span,.admin-security-dashboard .is-ok strong{color:#15803d}.admin-security-dashboard{border-left:4px solid rgba(15,23,42,.12)}.admin-security-dashboard.is-danger{border-left-color:#dc2626;background:#fffafa}.admin-security-dashboard.is-warn{border-left-color:#f59e0b;background:#fffdf4}.admin-security-dashboard.is-ok,.admin-security-dashboard.is-good{border-left-color:#16a34a;background:#f7fef9}.admin-security-metrics{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.admin-security-metrics span{display:block;border:1px solid rgba(15,23,42,.08);border-radius:15px;background:#fff;padding:12px;color:#475569;font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.045em}.admin-security-metrics strong{display:block;font-size:22px;color:#0f172a;letter-spacing:-.05em}.admin-security-checks,.admin-security-ledger,.admin-security-traces{display:grid;gap:10px}.admin-security-checks article,.admin-security-ledger article,.admin-security-traces article{display:grid;grid-template-columns:auto minmax(0,1fr);gap:12px;border:1px solid rgba(15,23,42,.08);border-radius:16px;background:#fff;padding:13px}.admin-security-checks article>span,.admin-security-ledger article>span,.admin-security-traces article>span{width:max-content;height:max-content;border-radius:999px;background:#f1f5f9;color:#334155;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.055em;padding:5px 8px}.admin-security-checks strong,.admin-security-ledger strong,.admin-security-traces strong{display:block;margin-bottom:3px}.admin-security-checks em,.admin-security-checks small,.admin-security-ledger em,.admin-security-ledger small,.admin-security-traces em,.admin-security-traces small{display:block;color:#64748b;font-style:normal;font-size:13px;line-height:1.42}.admin-security-checks small,.admin-security-ledger small,.admin-security-traces small{margin-top:5px;color:#334155;font-weight:600}.admin-security-checks article.is-danger,.admin-security-ledger article.is-danger,.admin-security-traces article.is-danger{border-color:#fecaca;background:#fffafa}.admin-security-checks article.is-danger>span,.admin-security-ledger article.is-danger>span,.admin-security-traces article.is-danger>span{background:#fee2e2;color:#991b1b}.admin-security-checks article.is-warn,.admin-security-ledger article.is-warn,.admin-security-traces article.is-warn{border-color:#fde68a;background:#fffdf4}.admin-security-checks article.is-warn>span,.admin-security-ledger article.is-warn>span,.admin-security-traces article.is-warn>span{background:#fef3c7;color:#92400e}.admin-security-checks article.is-ok,.admin-security-ledger article.is-ok,.admin-security-traces article.is-ok{border-color:#bbf7d0;background:#f7fef9}.admin-security-checks article.is-ok>span,.admin-security-ledger article.is-ok>span,.admin-security-traces article.is-ok>span{background:#dcfce7;color:#166534}@media(max-width:720px){.admin-security-cover,.admin-security-filter-grid,.admin-security-metrics{grid-template-columns:1fr}.admin-security-head .head-actions{justify-content:flex-start}.admin-security-checks article,.admin-security-ledger article,.admin-security-traces article{grid-template-columns:1fr}}

/* V139_ADMIN_CONSOLE: administration réellement séparée du site utilisateur */
.app-admin.admin-console{--admin-bg:#0f1020;--admin-panel:#16172b;--admin-panel-2:#1f2140;--admin-line:rgba(199,210,254,.18);--admin-text:#eef2ff;--admin-muted:#a5b4fc;--admin-accent:#8b5cf6;--admin-accent-2:#06b6d4;--admin-danger:#fb7185;min-height:100vh;background:radial-gradient(circle at top left,rgba(139,92,246,.22),transparent 34%),linear-gradient(135deg,#080812,#14162c 48%,#111827);color:var(--admin-text)}
.app-admin.admin-console a{color:inherit}.admin-shell{display:grid;grid-template-columns:292px minmax(0,1fr);min-height:100vh}.admin-sidebar{position:sticky;top:0;height:100vh;display:flex;flex-direction:column;gap:18px;padding:22px 18px;border-right:1px solid var(--admin-line);background:linear-gradient(180deg,rgba(15,16,32,.98),rgba(22,23,43,.96));box-shadow:24px 0 55px rgba(0,0,0,.22);overflow:auto}.admin-brand{display:flex;align-items:center;gap:12px;text-decoration:none;padding:10px 10px 16px;border-bottom:1px solid var(--admin-line)}.admin-brand-mark{display:grid;place-items:center;width:46px;height:46px;border-radius:18px;background:linear-gradient(135deg,var(--admin-accent),var(--admin-accent-2));box-shadow:0 18px 35px rgba(139,92,246,.28)}.admin-brand-mark img{width:28px;height:28px;filter:brightness(0) invert(1)}.admin-brand strong{display:block;font-size:18px;letter-spacing:-.04em}.admin-brand em{display:block;margin-top:2px;font-style:normal;color:var(--admin-muted);font-size:11px;text-transform:uppercase;letter-spacing:.14em;font-weight:600}.admin-site-return{padding:0 4px}.admin-return-btn{display:flex;align-items:center;gap:10px;text-decoration:none;padding:13px 14px;border-radius:16px;background:#fff;color:#111827!important;font-weight:600;box-shadow:0 16px 28px rgba(255,255,255,.08)}.admin-return-btn span{display:grid;place-items:center;width:26px;height:26px;border-radius:999px;background:#eef2ff;color:#4f46e5}.admin-nav{display:grid;gap:18px}.admin-nav-group{display:grid;gap:7px}.admin-nav-group p{margin:0 0 3px;padding:0 10px;color:#c4b5fd;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.13em}.admin-nav-link{display:flex;align-items:center;gap:10px;min-height:42px;padding:9px 11px;border:1px solid transparent;border-radius:14px;text-decoration:none;color:#dbeafe!important;font-size:14px;font-weight:600}.admin-nav-link:hover{background:rgba(255,255,255,.07);border-color:var(--admin-line)}.admin-nav-link.active{background:linear-gradient(135deg,rgba(139,92,246,.34),rgba(6,182,212,.18));border-color:rgba(196,181,253,.42);box-shadow:0 14px 26px rgba(0,0,0,.18)}.admin-nav-icon{display:grid;place-items:center;width:28px;height:28px;border-radius:10px;background:rgba(255,255,255,.08);color:#fff}.admin-sidebar-footer{margin-top:auto;display:grid;gap:10px;padding-top:14px;border-top:1px solid var(--admin-line)}.admin-lang select{width:100%;border-color:var(--admin-line);background:rgba(255,255,255,.08);color:var(--admin-text)}.admin-logout{display:flex;align-items:center;gap:9px;text-decoration:none;padding:11px 12px;border-radius:14px;color:#fecdd3!important;background:rgba(251,113,133,.10);border:1px solid rgba(251,113,133,.18);font-weight:600}.admin-main-shell{min-width:0;display:grid;grid-template-rows:auto 1fr}.admin-topbar{position:sticky;top:0;z-index:20;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:16px 28px;border-bottom:1px solid var(--admin-line);background:rgba(15,16,32,.86);backdrop-filter:blur(18px)}.admin-topbar strong{font-size:20px;letter-spacing:-.03em}.admin-top-eyebrow{margin:0 0 3px;color:var(--admin-muted);font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.14em}.admin-top-actions{display:flex;align-items:center;gap:10px}.admin-user-pill{display:inline-flex;align-items:center;min-height:34px;padding:0 12px;border:1px solid var(--admin-line);border-radius:999px;background:rgba(255,255,255,.07);color:#e0e7ff;font-size:12px;font-weight:600}.admin-site-button{background:#fff!important;color:#111827!important;border-color:#fff!important}.admin-container{width:min(1240px,calc(100vw - 340px));margin:0 auto;padding:30px 24px 50px}.admin-console .page-head{border:1px solid var(--admin-line);border-radius:28px;padding:24px;background:linear-gradient(135deg,rgba(139,92,246,.18),rgba(6,182,212,.10));box-shadow:0 24px 60px rgba(0,0,0,.20)}.admin-console .page-head h1{color:#fff}.admin-console .page-head p,.admin-console .muted{color:#c7d2fe}.admin-console .eyebrow{color:#c4b5fd}.admin-console .card{background:rgba(255,255,255,.96);color:#111827;border-color:rgba(199,210,254,.30);box-shadow:0 18px 45px rgba(0,0,0,.18)}.admin-console .card .muted,.admin-console .card p.muted{color:#64748b}.admin-console .metric-card,.admin-console .admin-hub-card,.admin-console .status-card{background:#fff;color:#111827}.admin-console .btn{box-shadow:none}.admin-console .admin-link{background:linear-gradient(180deg,#fff,#f8fafc);border-color:#ddd6fe}.admin-console .admin-link:hover{border-color:#8b5cf6}.admin-console .warning-card{border-color:rgba(139,92,246,.28);background:linear-gradient(180deg,#fff,#f5f3ff)}.admin-console .alert{margin-bottom:16px}.admin-console table{background:#fff;color:#111827}.admin-console input,.admin-console select,.admin-console textarea{background:#fff;color:#111827}.admin-console .badge,.admin-console .pill{color:inherit}.admin-console .footer,.admin-console .sidebar,.admin-console .mobile-topbar,.admin-console .mobile-page-menu{display:none!important}
@media(max-width:980px){.admin-shell{grid-template-columns:1fr}.admin-sidebar{position:relative;height:auto;max-height:none}.admin-main-shell{display:block}.admin-topbar{position:relative;align-items:flex-start;flex-direction:column}.admin-top-actions{width:100%;justify-content:space-between}.admin-container{width:100%;padding:20px 14px 36px}.admin-nav{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.admin-nav-group{min-width:0}.admin-return-btn{justify-content:center}}
@media(max-width:640px){.admin-nav{grid-template-columns:1fr}.admin-top-actions{display:grid;grid-template-columns:1fr}.admin-user-pill,.admin-site-button{justify-content:center;width:100%}.admin-shell{min-height:auto}.admin-sidebar{padding:16px 12px}.admin-brand{padding-left:6px}.admin-console .page-head{border-radius:20px;padding:18px}}

/* V140_ADMIN_SECURITY: durcissement sécurité administration */
.admin-hardening-list{display:grid;gap:10px}.admin-hardening-list .launch-check{align-items:flex-start}.admin-hardening-list .launch-check em{display:block;margin-top:4px;color:#334155;font-style:normal;font-weight:600;font-size:12px;line-height:1.4}.app-admin[data-admin-security="hardened"] .admin-topbar{box-shadow:0 14px 38px rgba(0,0,0,.18)}.app-admin[data-admin-security="hardened"] .admin-brand:after{content:"sécurité renforcée";display:inline-flex;margin-left:auto;padding:4px 7px;border-radius:999px;background:rgba(6,182,212,.16);color:#a5f3fc;font-size:9px;font-weight:600;text-transform:uppercase;letter-spacing:.08em}.app-admin[data-admin-security="hardened"] .admin-nav-link[href*="durcissement"] .admin-nav-icon{background:linear-gradient(135deg,rgba(139,92,246,.65),rgba(6,182,212,.55))}.admin-command-list code{display:block;white-space:pre-wrap;word-break:break-word}.admin-security-dashboard[data-dashboard-widget="admin-hardening"]{border-left:4px solid rgba(49,46,129,.35)}.admin-security-dashboard[data-dashboard-widget="admin-hardening"].is-danger{border-left-color:#dc2626;background:#fffafa}.admin-security-dashboard[data-dashboard-widget="admin-hardening"].is-warn{border-left-color:#f59e0b;background:#fffdf4}.admin-security-dashboard[data-dashboard-widget="admin-hardening"].is-ok{border-left-color:#16a34a;background:#f7fef9}

/* V141_ADMIN_MONITORING: surveillance active de l'administration */
.admin-monitoring-cover{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:20px;align-items:center;background:linear-gradient(135deg,#fff,#f8fbff)}
.admin-monitoring-cover.is-danger{border-color:#fecaca;background:linear-gradient(135deg,#fff7f7,#fff)}
.admin-monitoring-cover.is-warn{border-color:#fde68a;background:linear-gradient(135deg,#fffdf4,#fff)}
.admin-monitoring-cover.is-ok{border-color:#bbf7d0;background:linear-gradient(135deg,#f7fef9,#fff)}
.admin-monitoring-filter-grid{display:grid;grid-template-columns:minmax(120px,.5fr) minmax(150px,.6fr) minmax(240px,1fr) auto;gap:12px;align-items:end}
.admin-monitoring-filter-grid label{display:grid;gap:6px;font-weight:600;color:#334155}
.admin-monitoring-signals,.admin-monitoring-checks,.admin-monitoring-events,.admin-runbook-list{display:grid;gap:10px}
.admin-monitoring-signals article,.admin-monitoring-events article{display:grid;grid-template-columns:auto minmax(0,1fr);gap:12px;border:1px solid rgba(15,23,42,.08);border-radius:16px;background:#fff;padding:13px}
.admin-monitoring-signals article>span,.admin-monitoring-events article>span{width:max-content;height:max-content;border-radius:999px;background:#f1f5f9;color:#334155;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.055em;padding:5px 8px}
.admin-monitoring-signals strong,.admin-monitoring-events strong{display:block;margin-bottom:3px}.admin-monitoring-signals p,.admin-monitoring-events p{margin:0;color:#64748b}.admin-monitoring-events small{display:block;margin-top:4px;color:#334155;font-size:12px;font-weight:600}
.admin-monitoring-signals article.is-danger,.admin-monitoring-events article.is-danger{border-color:#fecaca;background:#fffafa}.admin-monitoring-signals article.is-danger>span,.admin-monitoring-events article.is-danger>span{background:#fee2e2;color:#991b1b}
.admin-monitoring-signals article.is-warn,.admin-monitoring-events article.is-warn{border-color:#fde68a;background:#fffdf4}.admin-monitoring-signals article.is-warn>span,.admin-monitoring-events article.is-warn>span{background:#fef3c7;color:#92400e}
.admin-monitoring-signals article.is-ok,.admin-monitoring-events article.is-ok{border-color:#bbf7d0;background:#f7fef9}.admin-monitoring-signals article.is-ok>span,.admin-monitoring-events article.is-ok>span{background:#dcfce7;color:#166534}
.admin-monitoring-signals article.is-info,.admin-monitoring-events article.is-info{border-color:#bfdbfe;background:#f8fbff}.admin-monitoring-signals article.is-info>span,.admin-monitoring-events article.is-info>span{background:#dbeafe;color:#1d4ed8}
.admin-runtime-list{display:grid;gap:9px;margin:0}.admin-runtime-list div{display:grid;grid-template-columns:minmax(110px,.42fr) minmax(0,1fr);gap:10px;border:1px solid rgba(15,23,42,.08);border-radius:14px;padding:10px;background:#fff}.admin-runtime-list dt{color:#64748b;font-weight:600}.admin-runtime-list dd{margin:0;color:#111827;font-weight:600;word-break:break-word}.admin-runbook-title{margin:14px 0 8px;text-transform:uppercase;letter-spacing:.09em;font-size:12px;color:#4f46e5}.admin-runbook-list article{border:1px solid rgba(15,23,42,.08);border-radius:14px;padding:11px;background:#fff}.admin-runbook-list p{margin:4px 0 0;color:#64748b}.admin-monitoring-checks .launch-check em{display:block;margin-top:4px;color:#334155;font-style:normal;font-weight:600;font-size:12px;line-height:1.4}.app-admin .admin-nav-link[href*="surveillance"] .admin-nav-icon{background:linear-gradient(135deg,rgba(6,182,212,.65),rgba(139,92,246,.55))}.admin-security-dashboard[data-dashboard-widget="admin-monitoring"]{border-left:4px solid rgba(6,182,212,.45)}.admin-security-dashboard[data-dashboard-widget="admin-monitoring"].is-danger{border-left-color:#dc2626;background:#fffafa}.admin-security-dashboard[data-dashboard-widget="admin-monitoring"].is-warn{border-left-color:#f59e0b;background:#fffdf4}.admin-security-dashboard[data-dashboard-widget="admin-monitoring"].is-ok{border-left-color:#16a34a;background:#f7fef9}
@media(max-width:820px){.admin-monitoring-cover,.admin-monitoring-filter-grid{grid-template-columns:1fr}.admin-monitoring-signals article,.admin-monitoring-events article,.admin-runtime-list div{grid-template-columns:1fr}}


/* V142_ADMIN_ALERTS: centre d'alertes admin actionnable */
.admin-alerts-cover{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:20px;align-items:center;background:linear-gradient(135deg,#fff,#fbfdff);border-color:#dbeafe}
.admin-alerts-cover.is-danger{border-color:#fecaca;background:linear-gradient(135deg,#fff7f7,#fff)}.admin-alerts-cover.is-warn{border-color:#fde68a;background:linear-gradient(135deg,#fffdf4,#fff)}.admin-alerts-cover.is-ok{border-color:#bbf7d0;background:linear-gradient(135deg,#f7fef9,#fff)}
.admin-alerts-score{border-radius:24px;padding:24px;text-align:center;background:#fff;border:1px solid rgba(15,23,42,.08);box-shadow:0 18px 45px rgba(15,23,42,.08);min-width:150px}.admin-alerts-score strong{display:block;font-size:42px;line-height:1;font-weight:600;letter-spacing:-.06em}.admin-alerts-score span{display:block;margin-top:8px;color:#64748b;font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.06em}.admin-alerts-score.is-danger strong{color:#b91c1c}.admin-alerts-score.is-warn strong{color:#b45309}.admin-alerts-score.is-ok strong{color:#15803d}
.admin-alerts-filter-grid{display:grid;grid-template-columns:minmax(120px,.45fr) minmax(150px,.55fr) minmax(150px,.55fr) minmax(240px,1fr) auto;gap:12px;align-items:end}.admin-alerts-filter-grid label{display:grid;gap:6px;font-weight:600;color:#334155}
.admin-alerts-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(320px,.38fr);gap:18px;align-items:start}.admin-alert-list{display:grid;gap:10px}.admin-alert-card{display:grid;grid-template-columns:auto minmax(0,1fr);gap:12px;border:1px solid rgba(15,23,42,.08);border-radius:16px;background:#fff;padding:14px}.admin-alert-card>span{width:max-content;height:max-content;border-radius:999px;background:#f1f5f9;color:#334155;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.055em;padding:5px 8px}.admin-alert-card strong{display:block;margin-bottom:3px}.admin-alert-card p{margin:0;color:#64748b}.admin-alert-card small{display:block;margin-top:4px;color:#334155;font-size:12px;font-weight:600}.admin-alert-card em{display:block;margin-top:8px;color:#334155;font-style:normal;font-weight:600;font-size:13px;line-height:1.45}.admin-alert-card.is-danger{border-color:#fecaca;background:#fffafa}.admin-alert-card.is-danger>span{background:#fee2e2;color:#991b1b}.admin-alert-card.is-warn{border-color:#fde68a;background:#fffdf4}.admin-alert-card.is-warn>span{background:#fef3c7;color:#92400e}.admin-alert-card.is-info{border-color:#bfdbfe;background:#f8fbff}.admin-alert-card.is-info>span{background:#dbeafe;color:#1d4ed8}.admin-alert-card.is-acknowledged{opacity:.78}.admin-alert-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px;align-items:center}.admin-alert-actions form{margin:0}.app-admin .admin-nav-link[href*="alertes"] .admin-nav-icon{background:linear-gradient(135deg,rgba(251,113,133,.68),rgba(139,92,246,.55))}.admin-security-dashboard[data-dashboard-widget="admin-alerts"]{border-left:4px solid rgba(251,113,133,.45)}.admin-security-dashboard[data-dashboard-widget="admin-alerts"].is-danger{border-left-color:#dc2626;background:#fffafa}.admin-security-dashboard[data-dashboard-widget="admin-alerts"].is-warn{border-left-color:#f59e0b;background:#fffdf4}.admin-security-dashboard[data-dashboard-widget="admin-alerts"].is-ok{border-left-color:#16a34a;background:#f7fef9}
@media(max-width:980px){.admin-alerts-grid,.admin-alerts-filter-grid{grid-template-columns:1fr}.admin-alert-card{grid-template-columns:1fr}.admin-alerts-cover{grid-template-columns:1fr}}

/* V143_ADMIN_RESOLUTIONS: résolution des alertes admin avec décision, preuve et sortie claire */
.admin-resolution-cover{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:20px;align-items:center;background:linear-gradient(135deg,#fff,#f8fbff);border-color:#dbeafe}
.admin-resolution-cover.is-danger{border-color:#fecaca;background:linear-gradient(135deg,#fff7f7,#fff)}.admin-resolution-cover.is-warn{border-color:#fde68a;background:linear-gradient(135deg,#fffdf4,#fff)}.admin-resolution-cover.is-ok{border-color:#bbf7d0;background:linear-gradient(135deg,#f7fef9,#fff)}
.admin-resolution-score{border-radius:24px;padding:24px;text-align:center;background:#fff;border:1px solid rgba(15,23,42,.08);box-shadow:0 18px 45px rgba(15,23,42,.08);min-width:150px}.admin-resolution-score strong{display:block;font-size:42px;line-height:1;font-weight:600;letter-spacing:-.06em}.admin-resolution-score span{display:block;margin-top:8px;color:#64748b;font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.06em}.admin-resolution-score.is-danger strong{color:#b91c1c}.admin-resolution-score.is-warn strong{color:#b45309}.admin-resolution-score.is-ok strong{color:#15803d}
.admin-resolution-filter-grid{display:grid;grid-template-columns:minmax(110px,.42fr) minmax(150px,.55fr) minmax(135px,.45fr) minmax(150px,.55fr) minmax(220px,1fr) auto;gap:12px;align-items:end}.admin-resolution-filter-grid label{display:grid;gap:6px;font-weight:600;color:#334155}
.admin-resolution-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(320px,.36fr);gap:18px;align-items:start}.admin-resolution-list{display:grid;gap:12px}.admin-resolution-card{display:grid;grid-template-columns:auto minmax(0,1fr);gap:12px;border:1px solid rgba(15,23,42,.08);border-radius:18px;background:#fff;padding:14px}.admin-resolution-card>span{width:max-content;height:max-content;border-radius:999px;background:#f1f5f9;color:#334155;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.055em;padding:5px 8px}.admin-resolution-card strong{display:block;margin-bottom:3px}.admin-resolution-card p{margin:0;color:#64748b}.admin-resolution-card small{display:block;margin-top:4px;color:#334155;font-size:12px;font-weight:600}.admin-resolution-card.is-danger{border-color:#fecaca;background:#fffafa}.admin-resolution-card.is-danger>span{background:#fee2e2;color:#991b1b}.admin-resolution-card.is-warn{border-color:#fde68a;background:#fffdf4}.admin-resolution-card.is-warn>span{background:#fef3c7;color:#92400e}.admin-resolution-card.is-info{border-color:#bfdbfe;background:#f8fbff}.admin-resolution-card.is-info>span{background:#dbeafe;color:#1d4ed8}.admin-resolution-card.is-resolved{opacity:.78;border-style:dashed}.admin-resolution-policy{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-top:12px}.admin-resolution-policy article{border:1px solid rgba(15,23,42,.07);border-radius:14px;padding:10px;background:rgba(255,255,255,.72)}.admin-resolution-policy b{display:block;font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:#64748b;margin-bottom:4px}.admin-resolution-policy span{display:block;font-size:13px;line-height:1.35;color:#1e293b;font-weight:600}.admin-resolution-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px;align-items:center}.admin-resolution-actions form{margin:0}.app-admin .admin-nav-link[href*="resolutions"] .admin-nav-icon{background:linear-gradient(135deg,rgba(34,211,238,.7),rgba(139,92,246,.55))}.admin-security-dashboard[data-dashboard-widget="admin-resolutions"]{border-left:4px solid rgba(34,211,238,.45)}.admin-security-dashboard[data-dashboard-widget="admin-resolutions"].is-danger{border-left-color:#dc2626;background:#fffafa}.admin-security-dashboard[data-dashboard-widget="admin-resolutions"].is-warn{border-left-color:#f59e0b;background:#fffdf4}.admin-security-dashboard[data-dashboard-widget="admin-resolutions"].is-ok{border-left-color:#16a34a;background:#f7fef9}
@media(max-width:1100px){.admin-resolution-filter-grid{grid-template-columns:1fr 1fr}.admin-resolution-grid{grid-template-columns:1fr}.admin-resolution-cover{grid-template-columns:1fr}}@media(max-width:720px){.admin-resolution-filter-grid,.admin-resolution-policy{grid-template-columns:1fr}.admin-resolution-card{grid-template-columns:1fr}}

/* V144_USER_CLEANUP: espace utilisateur recentré sur les pages métier essentielles. */
.dashboard-clean-grid{
    display:grid;
    grid-template-columns:repeat(4,minmax(0,1fr));
    gap:12px;
}
.dashboard-clean-grid .quick-tile strong{font-size:1.65rem;line-height:1;}
.user-workspace-quick-grid{grid-template-columns:repeat(auto-fit,minmax(170px,1fr));}
.admin-entry-card{border:1px solid rgba(79,70,229,.18);background:linear-gradient(135deg,rgba(238,242,255,.92),rgba(255,255,255,.96));}
.quick-tile.is-danger{border-color:rgba(220,38,38,.30);background:rgba(254,242,242,.92);}
.quick-tile.is-warn{border-color:rgba(217,119,6,.30);background:rgba(255,251,235,.92);}
@media (max-width: 860px){.dashboard-clean-grid{grid-template-columns:repeat(2,minmax(0,1fr));}}
@media (max-width: 520px){.dashboard-clean-grid{grid-template-columns:1fr;}}


/* V145_USER_WORKSPACE: espace utilisateur plus court, menu visible et dashboard métier. */
.user-nav-stack{display:flex;flex-direction:column;gap:13px;min-height:0;}
.user-nav-group{display:grid;gap:7px;border:1px solid rgba(15,23,42,.06);border-radius:18px;background:#fbfdff;padding:10px;}
.user-nav-group-head{display:grid;gap:2px;padding:0 3px 2px;}
.user-nav-group-head strong,.user-nav-group-head a{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.105em;color:#0f172a;text-decoration:none;}
.user-nav-group-head small{color:#64748b;font-size:11px;font-weight:600;line-height:1.2;}
.user-nav-links{display:grid;gap:4px;}
.user-nav-stack .side-link{min-height:38px;}
.user-nav-stack .side-link.active{background:#ecfeff;color:#0e7490;}
.user-nav-stack .side-link.active .side-icon{background:#cffafe;color:#0e7490;}
.user-workspace-map{border-color:#dbeafe;background:linear-gradient(135deg,#fff,#f8fbff);}
.workspace-map-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;}
.workspace-map-grid a{display:grid;gap:6px;min-height:118px;border:1px solid var(--line);border-radius:16px;background:#fff;padding:15px;text-decoration:none;color:inherit;transition:transform .14s ease,border-color .14s ease,box-shadow .14s ease;}
.workspace-map-grid a:hover{transform:translateY(-1px);border-color:#bfdbfe;box-shadow:0 14px 34px rgba(15,23,42,.07);}
.workspace-map-grid strong{font-size:15px;letter-spacing:-.02em;}
.workspace-map-grid span{color:var(--muted);font-size:13px;line-height:1.42;}
.app-logged .sidebar-admin-shortcut{border-top:1px solid var(--line);padding-top:10px;}
.app-logged .mobile-page-admin-shortcut{border:1px solid rgba(79,70,229,.18);border-radius:16px;background:#f8f7ff;padding:8px;}
@media(max-width:1180px){.workspace-map-grid{grid-template-columns:repeat(2,minmax(0,1fr));}}
@media(max-width:1100px){.user-nav-stack{display:none;}}
@media(max-width:620px){.workspace-map-grid{grid-template-columns:1fr;}.user-workspace-map{display:none;}}


/* V146_ONBOARDING — assistant de configuration métier */
.user-onboarding-overview{border-color:#bfdbfe;background:linear-gradient(135deg,#ffffff,#f8fbff)}
.user-onboarding-overview.danger,.onboarding-focus.danger{border-color:#fecaca;background:linear-gradient(135deg,#fffafa,#fff7ed)}
.user-onboarding-overview.warn,.onboarding-focus.warn{border-color:#fde68a;background:linear-gradient(135deg,#fffdf4,#ffffff)}
.user-onboarding-overview.good,.onboarding-focus.good{border-color:#bbf7d0;background:linear-gradient(135deg,#f7fef9,#ffffff)}
.onboarding-overview-grid{display:grid;grid-template-columns:minmax(250px,.34fr) minmax(0,1fr);gap:14px;align-items:stretch}
.onboarding-score-card{display:flex;gap:14px;align-items:center;border:1px solid var(--line);border-radius:18px;background:#fff;padding:16px;min-width:0}
.onboarding-score-card strong{display:block;font-size:18px;color:#0f172a;letter-spacing:-.025em}.onboarding-score-card p{margin:4px 0 0;color:var(--muted);font-size:13px;line-height:1.45}
.progress-ring.small{width:86px;height:86px;min-width:86px}.progress-ring.small span{font-size:18px}
.foundation-status-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.foundation-status{display:grid;grid-template-columns:auto 1fr;gap:4px 9px;border:1px solid var(--line);border-radius:16px;background:#fff;padding:13px;text-decoration:none;color:inherit;align-content:start;min-width:0}.foundation-status span{grid-row:1/3;display:grid;place-items:center;width:26px;height:26px;border-radius:999px;background:#f1f5f9;color:#475569;font-weight:600}.foundation-status strong{font-size:13px;color:#0f172a}.foundation-status em{font-style:normal;color:var(--muted);font-size:12px;line-height:1.35}.foundation-status.done{border-color:#bbf7d0;background:#f7fef9}.foundation-status.done span{background:#dcfce7;color:#166534}.foundation-status.todo{border-color:#e5e7eb}.foundation-status.todo:hover{border-color:#bfdbfe;box-shadow:0 10px 24px rgba(15,23,42,.05)}
.setup-action-strip{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-top:14px}.setup-action{display:grid;gap:6px;border:1px solid var(--line);border-radius:16px;background:#fff;padding:14px;text-decoration:none;color:inherit}.setup-action strong{font-size:14px;color:#0f172a}.setup-action span{font-size:12.5px;color:var(--muted);line-height:1.42}.setup-action em{font-style:normal;font-size:12px;font-weight:600;color:#2563eb}.setup-action.primary{border-color:#bfdbfe;background:#f8fbff}.setup-action.warn{border-color:#fde68a;background:#fffdf4}.setup-action.info{border-color:#dbeafe;background:#f8fbff}
.setup-warning-list{display:grid;gap:7px;margin:14px 0 0;padding:0;list-style:none}.setup-warning-list li{border-left:3px solid #f59e0b;background:#fff7ed;border-radius:12px;padding:10px 12px;color:#92400e;font-size:13px;line-height:1.45}
.workflow.workflow-setup{grid-template-columns:repeat(2,minmax(0,1fr))}.workflow.workflow-setup .step em{line-height:1.35}
.onboarding-focus{border-color:#bfdbfe}.onboarding-focus .setup-action-strip{margin-top:12px}
@media(max-width:1100px){.onboarding-overview-grid{grid-template-columns:1fr}.foundation-status-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.setup-action-strip{grid-template-columns:1fr}.workflow.workflow-setup{grid-template-columns:1fr}}
@media(max-width:640px){.foundation-status-grid{grid-template-columns:1fr}.onboarding-score-card{align-items:flex-start}.progress-ring.small{width:72px;height:72px;min-width:72px}.progress-ring.small span{font-size:15px}}

/* V147 — vue portefeuille utilisateur */
.dashboard-portfolio-entry{border-color:#c7d2fe;background:linear-gradient(135deg,#ffffff,#f8fbff)}
.dashboard-portfolio-grid{display:grid;grid-template-columns:180px minmax(0,1.35fr) minmax(260px,.9fr);gap:14px;align-items:stretch}
.dashboard-portfolio-score{border:1px solid var(--line);border-radius:18px;background:#fff;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:16px;min-height:138px}
.dashboard-portfolio-score strong{font-size:42px;letter-spacing:-.075em;line-height:1}
.dashboard-portfolio-score span{display:block;margin-top:7px;max-width:132px;color:#475569;font-size:12px;font-weight:600;line-height:1.25;text-transform:uppercase;letter-spacing:.045em}
.dashboard-portfolio-score.good{border-color:#bbf7d0;background:#f7fef9}.dashboard-portfolio-score.ok{border-color:#bfdbfe;background:#f8fbff}.dashboard-portfolio-score.warn{border-color:#fde68a;background:#fffdf4}.dashboard-portfolio-score.danger{border-color:#fecaca;background:#fffafa}
.dashboard-portfolio-metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}
.dashboard-portfolio-metrics a,.dashboard-portfolio-actions a{display:flex;flex-direction:column;gap:5px;border:1px solid var(--line);border-radius:15px;background:#fff;padding:13px;text-decoration:none;color:inherit;min-height:78px;transition:transform .14s ease,border-color .14s ease,box-shadow .14s ease}
.dashboard-portfolio-metrics a:hover,.dashboard-portfolio-actions a:hover{transform:translateY(-1px);border-color:#bfdbfe;box-shadow:0 12px 28px rgba(15,23,42,.06)}
.dashboard-portfolio-metrics strong{font-size:24px;letter-spacing:-.055em;line-height:1}.dashboard-portfolio-metrics span,.dashboard-portfolio-actions span{font-size:12px;color:var(--muted);line-height:1.35}
.dashboard-portfolio-actions{display:grid;gap:10px}.dashboard-portfolio-actions strong{font-size:13px;line-height:1.22}
.portfolio-overview-head .head-actions{align-items:center}.portfolio-overview-hero{border-color:#c7d2fe;background:linear-gradient(135deg,#fff,#f8fbff)}
.portfolio-overview-hero.good{border-color:#bbf7d0;background:linear-gradient(135deg,#f7fef9,#fff)}.portfolio-overview-hero.warn{border-color:#fde68a;background:linear-gradient(135deg,#fffdf4,#fff)}.portfolio-overview-hero.danger{border-color:#fecaca;background:linear-gradient(135deg,#fffafa,#fff7ed)}
.portfolio-overview-main{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:22px;align-items:center;margin-bottom:18px}.portfolio-overview-main h2{margin:2px 0 7px;font-size:clamp(24px,3vw,36px);letter-spacing:-.055em}
.portfolio-overview-metrics{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:10px}.portfolio-metric{display:flex;flex-direction:column;gap:5px;border:1px solid var(--line);border-radius:16px;background:#fff;padding:15px;text-decoration:none;color:inherit;min-height:96px}.portfolio-metric strong{font-size:30px;line-height:1;letter-spacing:-.065em}.portfolio-metric span{font-size:12px;color:var(--muted);font-weight:600}
.portfolio-overview-actions .setup-action-strip{grid-template-columns:repeat(2,minmax(0,1fr));margin-top:0}.portfolio-risk-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.portfolio-risk{display:flex;flex-direction:column;gap:6px;border:1px solid var(--line);border-radius:16px;background:#fff;padding:15px;text-decoration:none;color:inherit;min-height:112px}.portfolio-risk strong{font-size:14px}.portfolio-risk span{font-size:12px;line-height:1.45;color:var(--muted)}.portfolio-risk.danger{border-color:#fecaca;background:#fffafa}.portfolio-risk.warn{border-color:#fde68a;background:#fffdf4}.portfolio-risk.info{border-color:#bfdbfe;background:#f8fbff}.portfolio-risk.ok{border-color:#bbf7d0;background:#f7fef9}
.portfolio-table-wrap{overflow:auto}.portfolio-table{min-width:960px}.portfolio-row.danger{background:#fffafa}.portfolio-row.warn{background:#fffdf4}.portfolio-row.ok{background:#fbfffc}.portfolio-table td strong{line-height:1.2}.portfolio-table td .muted{margin:3px 0 0;font-size:12px}
@media(max-width:1180px){.dashboard-portfolio-grid{grid-template-columns:1fr}.dashboard-portfolio-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.portfolio-overview-metrics{grid-template-columns:repeat(3,minmax(0,1fr))}.portfolio-risk-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:720px){.portfolio-overview-main{grid-template-columns:1fr}.portfolio-overview-metrics,.portfolio-risk-grid,.portfolio-overview-actions .setup-action-strip{grid-template-columns:1fr}.dashboard-portfolio-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.portfolio-score{width:118px;height:118px}.dashboard-portfolio-score{align-items:flex-start;text-align:left}}

/* V148 — fiche ACP synthétique */
.coproperty-sheet-head .head-actions{align-items:center}
.coproperty-sheet-index{border-color:#dbeafe;background:linear-gradient(135deg,#fff,#f8fbff)}
.coproperty-sheet-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.coproperty-sheet-tile{display:grid;gap:7px;min-height:118px;border:1px solid var(--line);border-radius:18px;background:#fff;padding:16px;text-decoration:none;color:inherit;transition:transform .14s ease,border-color .14s ease,box-shadow .14s ease}
.coproperty-sheet-tile:hover{transform:translateY(-1px);border-color:#bfdbfe;box-shadow:0 14px 34px rgba(15,23,42,.07)}
.coproperty-sheet-tile strong{font-size:16px;letter-spacing:-.025em}.coproperty-sheet-tile span{font-size:13px;font-weight:600;color:#334155}.coproperty-sheet-tile em{font-style:normal;color:var(--muted);font-size:12px;line-height:1.35}
.coproperty-sheet-tile.danger{border-color:#fecaca;background:#fffafa}.coproperty-sheet-tile.warn{border-color:#fde68a;background:#fffdf4}.coproperty-sheet-tile.ok{border-color:#bbf7d0;background:#f7fef9}
.coproperty-sheet-hero{border-color:#c7d2fe;background:linear-gradient(135deg,#fff,#f8fbff)}
.coproperty-sheet-hero.danger{border-color:#fecaca;background:linear-gradient(135deg,#fffafa,#fff7ed)}.coproperty-sheet-hero.warn{border-color:#fde68a;background:linear-gradient(135deg,#fffdf4,#fff)}.coproperty-sheet-hero.ok{border-color:#bbf7d0;background:linear-gradient(135deg,#f7fef9,#fff)}
.coproperty-sheet-main{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:22px;align-items:center;margin-bottom:18px}.coproperty-sheet-main h2{margin:2px 0 7px;font-size:clamp(24px,3vw,36px);letter-spacing:-.055em}
.coproperty-sheet-metrics{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:10px}.coproperty-sheet-metrics a{display:flex;flex-direction:column;gap:5px;border:1px solid var(--line);border-radius:16px;background:#fff;padding:15px;text-decoration:none;color:inherit;min-height:96px}.coproperty-sheet-metrics strong{font-size:30px;line-height:1;letter-spacing:-.065em}.coproperty-sheet-metrics span{font-size:12px;color:var(--muted);font-weight:600}
.coproperty-sheet-actions .setup-action-strip{grid-template-columns:1fr;margin-top:0}.coproperty-sheet-risks{grid-template-columns:repeat(2,minmax(0,1fr))}.coproperty-sheet-table{min-width:860px}.table-actions{display:flex;gap:6px;flex-wrap:wrap}
.dashboard-coproperty-sheet-entry{border-color:#bae6fd;background:linear-gradient(135deg,#fff,#f0f9ff)}.dashboard-coproperty-sheet-entry.danger{border-color:#fecaca;background:#fffafa}.dashboard-coproperty-sheet-entry.warn{border-color:#fde68a;background:#fffdf4}.dashboard-coproperty-sheet-entry.ok{border-color:#bbf7d0;background:#f7fef9}
.dashboard-sheet-summary{display:grid;grid-template-columns:minmax(240px,1.2fr) repeat(4,minmax(0,.55fr));gap:10px}.dashboard-sheet-summary>div{border:1px solid var(--line);border-radius:15px;background:#fff;padding:13px;display:flex;flex-direction:column;gap:4px;min-height:82px}.dashboard-sheet-summary strong{font-size:19px;letter-spacing:-.035em;line-height:1.1}.dashboard-sheet-summary span{font-size:12px;color:var(--muted);font-weight:600}
@media(max-width:1180px){.coproperty-sheet-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.coproperty-sheet-metrics{grid-template-columns:repeat(3,minmax(0,1fr))}.dashboard-sheet-summary{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:720px){.coproperty-sheet-main{grid-template-columns:1fr}.coproperty-sheet-grid,.coproperty-sheet-metrics,.coproperty-sheet-risks,.dashboard-sheet-summary{grid-template-columns:1fr}.table-actions{flex-direction:column}.coproperty-sheet-head .head-actions{width:100%}.coproperty-sheet-head .head-actions .btn{width:100%;justify-content:center}}

/* V149 — fiche copropriétaire synthétique */
.owner-sheet-head .head-actions{align-items:center}
.owner-sheet-index{border-color:#dbeafe;background:linear-gradient(135deg,#fff,#f8fbff)}.owner-sheet-index.good{border-color:#bbf7d0;background:linear-gradient(135deg,#f7fef9,#fff)}.owner-sheet-index.ok{border-color:#bfdbfe;background:linear-gradient(135deg,#f8fbff,#fff)}.owner-sheet-index.warn{border-color:#fde68a;background:linear-gradient(135deg,#fffdf4,#fff)}.owner-sheet-index.danger{border-color:#fecaca;background:linear-gradient(135deg,#fffafa,#fff7ed)}
.owner-sheet-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.owner-sheet-tile{display:grid;gap:7px;min-height:118px;border:1px solid var(--line);border-radius:18px;background:#fff;padding:16px;text-decoration:none;color:inherit;transition:transform .14s ease,border-color .14s ease,box-shadow .14s ease}.owner-sheet-tile:hover{transform:translateY(-1px);border-color:#bfdbfe;box-shadow:0 14px 34px rgba(15,23,42,.07)}.owner-sheet-tile strong{font-size:16px;letter-spacing:-.025em}.owner-sheet-tile span{font-size:13px;font-weight:600;color:#334155}.owner-sheet-tile em{font-style:normal;color:var(--muted);font-size:12px;line-height:1.35}.owner-sheet-tile.danger{border-color:#fecaca;background:#fffafa}.owner-sheet-tile.warn{border-color:#fde68a;background:#fffdf4}.owner-sheet-tile.ok,.owner-sheet-tile.good{border-color:#bbf7d0;background:#f7fef9}.owner-sheet-tile.info{border-color:#bfdbfe;background:#f8fbff}
.owner-sheet-hero{border-color:#c7d2fe;background:linear-gradient(135deg,#fff,#f8fbff)}.owner-sheet-hero.danger{border-color:#fecaca;background:linear-gradient(135deg,#fffafa,#fff7ed)}.owner-sheet-hero.warn{border-color:#fde68a;background:linear-gradient(135deg,#fffdf4,#fff)}.owner-sheet-hero.ok,.owner-sheet-hero.good{border-color:#bbf7d0;background:linear-gradient(135deg,#f7fef9,#fff)}
.owner-sheet-main{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:22px;align-items:center;margin-bottom:18px}.owner-sheet-main h2{margin:2px 0 7px;font-size:clamp(24px,3vw,36px);letter-spacing:-.055em}
.owner-sheet-metrics{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px}.owner-sheet-metrics a{display:flex;flex-direction:column;gap:5px;border:1px solid var(--line);border-radius:16px;background:#fff;padding:15px;text-decoration:none;color:inherit;min-height:96px}.owner-sheet-metrics strong{font-size:28px;line-height:1;letter-spacing:-.065em}.owner-sheet-metrics span{font-size:12px;color:var(--muted);font-weight:600}
.owner-sheet-actions .setup-action-strip{grid-template-columns:1fr;margin-top:0}.owner-sheet-risks{grid-template-columns:repeat(2,minmax(0,1fr))}.owner-sheet-table{min-width:900px}.dashboard-owner-sheet-entry{border-color:#c7d2fe;background:linear-gradient(135deg,#fff,#f8fbff)}.dashboard-owner-sheet-entry.danger{border-color:#fecaca;background:#fffafa}.dashboard-owner-sheet-entry.warn{border-color:#fde68a;background:#fffdf4}.dashboard-owner-sheet-entry.ok,.dashboard-owner-sheet-entry.good{border-color:#bbf7d0;background:#f7fef9}
.dashboard-owner-summary{display:grid;grid-template-columns:minmax(180px,.85fr) repeat(3,minmax(0,.6fr));gap:10px}.dashboard-owner-summary>div,.dashboard-owner-summary>a{border:1px solid var(--line);border-radius:15px;background:#fff;padding:13px;display:flex;flex-direction:column;gap:4px;min-height:82px;text-decoration:none;color:inherit}.dashboard-owner-summary strong{font-size:22px;letter-spacing:-.045em;line-height:1.1}.dashboard-owner-summary span{font-size:12px;color:var(--muted);font-weight:600}.dashboard-owner-priority{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-top:12px}.dashboard-owner-priority a{border:1px solid var(--line);border-radius:15px;background:#fff;padding:13px;display:flex;flex-direction:column;gap:5px;text-decoration:none;color:inherit}.dashboard-owner-priority strong{font-size:14px}.dashboard-owner-priority span{font-size:12px;color:var(--muted)}
@media(max-width:1180px){.owner-sheet-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.owner-sheet-metrics{grid-template-columns:repeat(3,minmax(0,1fr))}.dashboard-owner-summary{grid-template-columns:repeat(2,minmax(0,1fr))}.dashboard-owner-priority{grid-template-columns:1fr}}
@media(max-width:720px){.owner-sheet-main{grid-template-columns:1fr}.owner-sheet-grid,.owner-sheet-metrics,.owner-sheet-risks,.dashboard-owner-summary{grid-template-columns:1fr}.owner-sheet-head .head-actions{width:100%}.owner-sheet-head .head-actions .btn{width:100%;justify-content:center}}

/* V150 — création rapide de lots */
.lot-form-v150{gap:12px}.lot-essential-section{border-color:#c7d2fe;background:linear-gradient(180deg,#fff,#f8fafc)}.lot-essential-section textarea{min-height:132px;font-size:15px;line-height:1.55}.lot-owner-section .form-note-box{margin-bottom:12px}.row.three{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(0,1fr) minmax(120px,.55fr);gap:14px}.lot-advanced-section{padding:0;overflow:hidden}.lot-advanced-section>summary{display:flex;align-items:center;justify-content:space-between;gap:12px;cursor:pointer;list-style:none;padding:16px 18px}.lot-advanced-section>summary::-webkit-details-marker{display:none}.lot-advanced-section>summary span{display:grid;gap:2px}.lot-advanced-section>summary strong{font-size:15px}.lot-advanced-section>summary em{font-style:normal;color:var(--muted);font-size:12px}.lot-advanced-section>summary:after{content:"+";width:28px;height:28px;border:1px solid var(--line);border-radius:999px;display:inline-flex;align-items:center;justify-content:center;font-weight:600;background:#fff}.lot-advanced-section[open]>summary{border-bottom:1px solid var(--line)}.lot-advanced-section[open]>summary:after{content:"–"}.lot-advanced-content{padding:16px 18px 18px}.lot-form-v150 .form-actions-sticky{margin-top:0}.lot-form-v150 button[disabled]{opacity:.55;cursor:not-allowed}
@media(max-width:820px){.row.three{grid-template-columns:1fr}.lot-advanced-section>summary{padding:14px}.lot-advanced-content{padding:14px}}

/* V151 — fiche lot synthétique */
.lot-sheet-head .head-actions{align-items:center}
.lot-sheet-index{border-color:#dbeafe;background:linear-gradient(135deg,#fff,#f8fbff)}.lot-sheet-index.good{border-color:#bbf7d0;background:linear-gradient(135deg,#f7fef9,#fff)}.lot-sheet-index.ok{border-color:#bfdbfe;background:linear-gradient(135deg,#f8fbff,#fff)}.lot-sheet-index.warn{border-color:#fde68a;background:linear-gradient(135deg,#fffdf4,#fff)}.lot-sheet-index.danger{border-color:#fecaca;background:linear-gradient(135deg,#fffafa,#fff7ed)}
.lot-sheet-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.lot-sheet-tile{display:grid;gap:7px;min-height:118px;border:1px solid var(--line);border-radius:18px;background:#fff;padding:16px;text-decoration:none;color:inherit;transition:transform .14s ease,border-color .14s ease,box-shadow .14s ease}.lot-sheet-tile:hover{transform:translateY(-1px);border-color:#bfdbfe;box-shadow:0 14px 34px rgba(15,23,42,.07)}.lot-sheet-tile strong{font-size:16px;letter-spacing:-.025em}.lot-sheet-tile span{font-size:13px;font-weight:600;color:#334155}.lot-sheet-tile em{font-style:normal;color:var(--muted);font-size:12px;line-height:1.35}.lot-sheet-tile.danger{border-color:#fecaca;background:#fffafa}.lot-sheet-tile.warn{border-color:#fde68a;background:#fffdf4}.lot-sheet-tile.ok,.lot-sheet-tile.good{border-color:#bbf7d0;background:#f7fef9}.lot-sheet-tile.info{border-color:#bfdbfe;background:#f8fbff}
.lot-sheet-hero{border-color:#c7d2fe;background:linear-gradient(135deg,#fff,#f8fbff)}.lot-sheet-hero.danger{border-color:#fecaca;background:linear-gradient(135deg,#fffafa,#fff7ed)}.lot-sheet-hero.warn{border-color:#fde68a;background:linear-gradient(135deg,#fffdf4,#fff)}.lot-sheet-hero.ok,.lot-sheet-hero.good{border-color:#bbf7d0;background:linear-gradient(135deg,#f7fef9,#fff)}
.lot-sheet-main{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:22px;align-items:center;margin-bottom:18px}.lot-sheet-main h2{margin:2px 0 7px;font-size:clamp(24px,3vw,36px);letter-spacing:-.055em}
.lot-sheet-metrics{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px}.lot-sheet-metrics a{display:flex;flex-direction:column;gap:5px;border:1px solid var(--line);border-radius:16px;background:#fff;padding:15px;text-decoration:none;color:inherit;min-height:96px}.lot-sheet-metrics strong{font-size:28px;line-height:1;letter-spacing:-.065em}.lot-sheet-metrics span{font-size:12px;color:var(--muted);font-weight:600;line-height:1.25}
.lot-sheet-actions .setup-action-strip{grid-template-columns:1fr;margin-top:0}.lot-sheet-risks{grid-template-columns:repeat(2,minmax(0,1fr))}.lot-sheet-table{min-width:900px}.dashboard-lot-sheet-entry{border-color:#c7d2fe;background:linear-gradient(135deg,#fff,#f8fbff)}.dashboard-lot-sheet-entry.danger{border-color:#fecaca;background:#fffafa}.dashboard-lot-sheet-entry.warn{border-color:#fde68a;background:#fffdf4}.dashboard-lot-sheet-entry.ok,.dashboard-lot-sheet-entry.good{border-color:#bbf7d0;background:#f7fef9}
.dashboard-lot-summary{display:grid;grid-template-columns:minmax(180px,.85fr) repeat(3,minmax(0,.6fr));gap:10px}.dashboard-lot-summary>div,.dashboard-lot-summary>a{border:1px solid var(--line);border-radius:15px;background:#fff;padding:13px;display:flex;flex-direction:column;gap:4px;min-height:82px;text-decoration:none;color:inherit}.dashboard-lot-summary strong{font-size:22px;letter-spacing:-.045em;line-height:1.1}.dashboard-lot-summary span{font-size:12px;color:var(--muted);font-weight:600}.dashboard-lot-priority{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-top:12px}.dashboard-lot-priority a{border:1px solid var(--line);border-radius:15px;background:#fff;padding:13px;display:flex;flex-direction:column;gap:5px;text-decoration:none;color:inherit}.dashboard-lot-priority strong{font-size:14px}.dashboard-lot-priority span{font-size:12px;color:var(--muted)}
@media(max-width:1180px){.lot-sheet-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.lot-sheet-metrics{grid-template-columns:repeat(3,minmax(0,1fr))}.dashboard-lot-summary{grid-template-columns:repeat(2,minmax(0,1fr))}.dashboard-lot-priority{grid-template-columns:1fr}}
@media(max-width:720px){.lot-sheet-main{grid-template-columns:1fr}.lot-sheet-grid,.lot-sheet-metrics,.lot-sheet-risks,.dashboard-lot-summary{grid-template-columns:1fr}.lot-sheet-head .head-actions{width:100%}.lot-sheet-head .head-actions .btn{width:100%;justify-content:center}}

/* V152 — import rapide copropriétaires + lots */
.portfolio-import-warning{border-color:#fde68a;background:linear-gradient(135deg,#fffdf4,#fff)}
.portfolio-import-entry{border-color:#bfdbfe;background:linear-gradient(135deg,#fff,#f8fbff)}
.portfolio-import-grid{align-items:start}.portfolio-import-card{border-color:#c7d2fe;background:linear-gradient(135deg,#fff,#f8fbff)}
.portfolio-import-textarea{min-height:260px;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono",monospace;font-size:13px;line-height:1.55;white-space:pre;overflow:auto}
.portfolio-import-result{border-color:#bfdbfe;background:linear-gradient(135deg,#fff,#f8fbff)}.portfolio-import-result.warn{border-color:#fde68a;background:#fffdf4}.portfolio-import-result.ok{border-color:#bbf7d0;background:#f7fef9}
.portfolio-import-help{position:sticky;top:88px;border-color:#e0e7ff;background:#fff}.step-list{display:grid;gap:10px;margin:12px 0;padding:0;list-style:none}.step-list li{display:grid;gap:4px;border:1px solid var(--line);border-radius:14px;background:#fff;padding:12px}.step-list strong{font-size:13px}.step-list span{font-size:12px;color:var(--muted);line-height:1.4}.small-code{font-size:11px;line-height:1.45;white-space:pre;overflow:auto}.compact-list{margin-top:10px}.compact-details{padding:0}.compact-details>summary{cursor:pointer;padding:13px 15px;list-style:none}.compact-details>summary::-webkit-details-marker{display:none}.compact-details>summary span{display:grid;gap:2px}.compact-details>summary em{font-style:normal;font-size:12px;color:var(--muted)}.compact-details input{margin:0 15px 15px;width:calc(100% - 30px)}
@media(max-width:960px){.portfolio-import-help{position:static}.portfolio-import-grid{grid-template-columns:1fr}.portfolio-import-textarea{min-height:220px}}

/* V153 — correction menu portefeuille/import rapide */
.user-nav-group-head a:hover{color:#2563eb;text-decoration:none;}
/* V169 — Import rapide redevient un lien normal dans Outils. */
.user-nav-stack .side-link[href^="/import-portefeuille"]{border-color:transparent;background:transparent;}
.user-nav-stack .side-link[href^="/import-portefeuille"].active{border-color:rgba(37,99,235,.22);background:#eff6ff;color:#1d4ed8;}
.mobile-page-links .side-link[href^="/import-portefeuille"]{border-color:transparent;background:transparent;}
@supports not selector(:has(*)){
  .user-nav-group{overflow:hidden;}
}

/* V154 — correction sidebar desktop : le bloc bas ne chevauche plus le menu.
   La colonne est divisée en trois zones : marque fixe, navigation scrollable, actions bas fixes.
   Le scroll est porté par la zone centrale, jamais par les cartes Support/Stockage/Déconnexion. */
@media (min-width:1101px){
  .app-logged .sidebar{
    display:flex!important;
    flex-direction:column;
    gap:12px;
    overflow:hidden!important;
    min-height:100vh;
    min-height:100dvh;
  }
  .app-logged .side-brand{
    flex:0 0 auto;
  }
  .sidebar-main-scroll{
    flex:1 1 auto;
    min-height:0;
    overflow-y:auto;
    overflow-x:hidden;
    overscroll-behavior:contain;
    scrollbar-gutter:stable;
    padding:0 2px 10px 0;
  }
  .sidebar-main-scroll .sidebar-search{
    margin-top:0;
  }
  .sidebar-main-scroll .user-nav-stack{
    min-height:auto;
  }
  .app-logged .side-bottom-blocks{
    flex:0 0 auto;
    margin-top:0!important;
    padding-top:12px;
    border-top:1px solid var(--line);
    background:#fff;
    position:relative;
    z-index:1;
  }
  .app-logged .side-footer{
    flex:0 0 auto;
    margin-top:0!important;
    background:#fff;
    position:relative;
    z-index:1;
  }
  .admin-sidebar{
    overflow:hidden!important;
  }
  .admin-brand,
  .admin-sidebar-footer{
    flex:0 0 auto;
  }
  .admin-sidebar-main-scroll{
    flex:1 1 auto;
    min-height:0;
    overflow-y:auto;
    overflow-x:hidden;
    overscroll-behavior:contain;
    scrollbar-gutter:stable;
    display:grid;
    gap:18px;
    padding-right:2px;
  }
  .admin-sidebar-footer{
    margin-top:0!important;
    position:relative;
    z-index:1;
  }
}
@media (max-width:1100px){
  .sidebar-main-scroll,
  .admin-sidebar-main-scroll{
    min-width:0;
  }
}

/* V155 — zone menu gauche : le menu principal commence après Tableau de bord.
   La recherche et le raccourci Tableau de bord restent dans l'en-tête fonctionnel,
   puis la navigation métier démarre dans sa propre zone visuelle. */
.sidebar-menu-zone{display:grid;gap:10px;min-height:0;}
.sidebar-menu-zone-title{display:flex;align-items:center;gap:10px;margin:0 2px 0;padding:0 8px;color:#94a3b8;font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.14em;line-height:1;}
.sidebar-menu-zone-title::after{content:"";height:1px;background:var(--line);flex:1;min-width:18px;}
@media (min-width:1101px){
  .sidebar-main-scroll .sidebar-dashboard-shortcut{
    margin:10px 0 0!important;
    padding-top:12px;
    padding-bottom:0!important;
    border-top:1px solid var(--line);
    border-bottom:0!important;
  }
  .sidebar-main-scroll .sidebar-menu-zone{
    margin-top:12px;
    padding-top:12px;
    border-top:1px solid var(--line);
  }
  .sidebar-main-scroll .sidebar-menu-zone .user-nav-stack{
    margin:0;
  }
}
@media (max-width:1100px){
  .sidebar-menu-zone{display:none;}
}

/* V156 — zone scrollable sous Tableau de bord + contenu pleine largeur.
   Le haut de sidebar reste fixe (recherche + tableau de bord), le scroll démarre uniquement sur la zone Menu. */
.sidebar-top-fixed{display:grid;gap:10px;flex:0 0 auto;min-width:0;}
@media (min-width:1101px){
  .app-logged .sidebar{
    display:flex!important;
    flex-direction:column;
    gap:12px;
    overflow:hidden!important;
    min-height:100vh;
    min-height:100dvh;
  }
  .app-logged .side-brand,
  .app-logged .sidebar-top-fixed,
  .app-logged .side-bottom-blocks,
  .app-logged .side-footer{
    flex:0 0 auto;
  }
  .app-logged .sidebar-top-fixed .sidebar-search{
    margin:0 0 2px!important;
  }
  .app-logged .sidebar-top-fixed .sidebar-dashboard-shortcut{
    margin:0!important;
    padding:0!important;
    border:0!important;
  }
  .app-logged .sidebar-main-scroll{
    flex:1 1 auto;
    min-height:0;
    overflow-y:auto;
    overflow-x:hidden;
    overscroll-behavior:contain;
    scrollbar-gutter:stable;
    padding:12px 2px 12px 0;
    border-top:1px solid var(--line);
  }
  .app-logged .sidebar-main-scroll .sidebar-menu-zone{
    margin:0!important;
    padding:0!important;
    border:0!important;
  }
  .app-logged .sidebar-menu-zone-title{
    margin-bottom:2px;
  }
  .app-logged .main-shell{
    width:100%;
    min-width:0;
  }
  .app-logged .app-container{
    width:100%;
    max-width:none!important;
    margin:0;
    padding-left:clamp(24px,3vw,44px);
    padding-right:clamp(24px,3vw,44px);
  }
}
@media (max-width:1100px){
  .sidebar-top-fixed{min-width:0;}
}

/* V157 — colonne droite réellement pleine largeur desktop.
   Corrige le cas où la zone de contenu restait visuellement contrainte malgré le correctif V156. */
@media (min-width:1101px){
  body.app-logged{
    width:100%;
    max-width:100%;
    overflow-x:hidden;
  }
  .app-logged .app-shell{
    width:100%;
    max-width:100%;
    grid-template-columns:var(--sidebar) minmax(0,1fr)!important;
  }
  .app-logged .main-shell{
    display:block;
    width:100%!important;
    max-width:none!important;
    min-width:0;
    margin:0!important;
  }
  .app-logged main.container.app-container{
    display:block;
    width:100%!important;
    max-width:none!important;
    margin:0!important;
    padding-left:clamp(24px,2.5vw,42px)!important;
    padding-right:clamp(24px,2.5vw,42px)!important;
  }
  .app-logged .app-container > .page-head,
  .app-logged .app-container > .card,
  .app-logged .app-container > .dash,
  .app-logged .app-container > .stats,
  .app-logged .app-container > .stats-grid,
  .app-logged .app-container > .row,
  .app-logged .app-container > .grid,
  .app-logged .app-container > .table-card,
  .app-logged .app-container > form,
  .app-logged .app-container > section,
  .app-logged .app-container > .nav-tabs-shell,
  .app-logged .app-container > .nav-panel{
    width:100%;
    max-width:none!important;
  }
  .app-logged .card.wide,
  .app-logged .card.wide.form-card{
    max-width:none!important;
  }
}

/* V158 — colonne droite cadrée : pas de rendu full screen.
   On conserve le menu gauche V156 (haut fixe, menu scrollable, bas fixe),
   mais la zone de contenu revient à une largeur lisible et centrée. */
@media (min-width:1101px){
  .app-logged .main-shell{
    display:block;
    width:100%!important;
    max-width:100%!important;
    min-width:0;
    margin:0!important;
  }
  .app-logged main.container.app-container{
    display:block;
    width:min(100%, 1320px)!important;
    max-width:1320px!important;
    margin-left:auto!important;
    margin-right:auto!important;
    padding-left:clamp(24px,2.4vw,38px)!important;
    padding-right:clamp(24px,2.4vw,38px)!important;
  }
  .app-logged .app-container > .page-head,
  .app-logged .app-container > .card,
  .app-logged .app-container > .dash,
  .app-logged .app-container > .stats,
  .app-logged .app-container > .stats-grid,
  .app-logged .app-container > .row,
  .app-logged .app-container > .grid,
  .app-logged .app-container > .table-card,
  .app-logged .app-container > form,
  .app-logged .app-container > section,
  .app-logged .app-container > .nav-tabs-shell,
  .app-logged .app-container > .nav-panel{
    width:100%;
    max-width:100%;
  }
  .app-logged .card.wide,
  .app-logged .card.wide.form-card{
    width:100%!important;
    max-width:none!important;
  }
  .app-logged .table-card,
  .app-logged .stats,
  .app-logged .stats-grid,
  .app-logged .dash{
    max-width:100%!important;
  }
}

/* V159 — assistant de contrôle portefeuille après import. */
.portfolio-control-hero{background:linear-gradient(135deg,#fff,#f8fbff);border-color:#dbeafe}.portfolio-control-hero.danger{border-color:#fecaca;background:#fffafa}.portfolio-control-hero.warn{border-color:#fde68a;background:#fffdf4}.portfolio-control-hero.ok,.portfolio-control-hero.good{border-color:#bbf7d0;background:#f7fef9}.portfolio-control-metrics{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:12px;margin-top:18px}.portfolio-control-metrics a{display:grid;gap:4px;text-decoration:none;color:inherit;border:1px solid var(--line);border-radius:16px;background:#fff;padding:14px;min-height:94px}.portfolio-control-metrics a:hover{border-color:var(--line-strong);box-shadow:0 10px 24px rgba(15,23,42,.05)}.portfolio-control-metrics strong{font-size:28px;letter-spacing:-.06em}.portfolio-control-metrics span{font-size:12px;font-weight:600;color:#64748b;line-height:1.25}.portfolio-control-filter .quality-filter-grid{grid-template-columns:minmax(240px,1fr) auto}.portfolio-control-priority-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.portfolio-control-issue{display:grid;grid-template-columns:auto minmax(0,1fr);gap:8px 10px;text-decoration:none;color:inherit;border:1px solid var(--line);border-radius:16px;background:#fff;padding:14px}.portfolio-control-issue:hover{border-color:var(--line-strong);box-shadow:0 10px 26px rgba(15,23,42,.055);transform:translateY(-1px)}.portfolio-control-issue>span{grid-row:1 / span 2;width:28px;height:28px;border-radius:999px;display:grid;place-items:center;font-weight:600;background:#f3f4f6;color:#475569}.portfolio-control-issue strong{line-height:1.25}.portfolio-control-issue em{font-style:normal;color:#64748b;font-size:13px;line-height:1.4}.portfolio-control-issue.danger,.portfolio-control-line.danger{border-color:#fecaca;background:#fffafa}.portfolio-control-issue.danger>span{background:#fee2e2;color:#991b1b}.portfolio-control-issue.warn,.portfolio-control-line.warn{border-color:#fde68a;background:#fffdf4}.portfolio-control-issue.warn>span{background:#fef3c7;color:#92400e}.portfolio-control-issue.info,.portfolio-control-line.info{border-color:#bfdbfe;background:#eff6ff}.portfolio-control-issue.info>span{background:#dbeafe;color:#1d4ed8}.portfolio-control-groups{align-items:start}.portfolio-control-group{min-height:100%}.portfolio-control-list{display:grid;gap:9px}.portfolio-control-line{display:grid;gap:4px;text-decoration:none;color:inherit;border:1px solid var(--line);border-radius:14px;background:#fff;padding:12px 13px}.portfolio-control-line:hover{border-color:var(--line-strong);box-shadow:0 8px 20px rgba(15,23,42,.045)}.portfolio-control-line strong{font-size:14px;line-height:1.25}.portfolio-control-line span{color:#64748b;font-size:12.5px;line-height:1.35}.success-text{color:#166534;font-weight:600}.form-actions-inline{display:flex;gap:10px;align-items:end;flex-wrap:wrap}
@media(max-width:1100px){.portfolio-control-metrics{grid-template-columns:repeat(3,minmax(0,1fr))}.portfolio-control-priority-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.portfolio-control-filter .quality-filter-grid{grid-template-columns:1fr}}
@media(max-width:720px){.portfolio-control-metrics,.portfolio-control-priority-grid{grid-template-columns:1fr}.portfolio-control-metrics a{min-height:72px}.portfolio-control-filter .form-actions-inline{display:grid;grid-template-columns:1fr}.portfolio-control-filter .form-actions-inline .btn,.portfolio-control-filter .form-actions-inline button{width:100%}}

/* V160 — atelier correction portefeuille */
.portfolio-correction-hero{background:linear-gradient(135deg,#fff,#f8fbff);border-color:#dbeafe}.portfolio-correction-hero.danger{border-color:#fecaca;background:#fffafa}.portfolio-correction-hero.warn{border-color:#fde68a;background:#fffdf4}.portfolio-correction-hero.ok,.portfolio-correction-hero.good{border-color:#bbf7d0;background:#f7fef9}.portfolio-correction-section{scroll-margin-top:24px}.portfolio-correction-list{display:grid;gap:10px}.portfolio-correction-row{display:grid;grid-template-columns:minmax(220px,1.15fr) minmax(180px,.9fr) 110px auto;gap:10px;align-items:end;border:1px solid var(--line);border-radius:16px;background:#fff;padding:13px}.portfolio-correction-row.compact{grid-template-columns:minmax(220px,1.15fr) 150px 150px auto}.portfolio-correction-row.contact-row{grid-template-columns:minmax(190px,1.1fr) minmax(170px,1fr) minmax(130px,.8fr) minmax(180px,1fr) 86px minmax(120px,.8fr) auto}.portfolio-correction-row.danger{border-color:#fecaca;background:#fffafa}.portfolio-correction-row.warn{border-color:#fde68a;background:#fffdf4}.portfolio-correction-row.info{border-color:#bfdbfe;background:#f8fbff}.portfolio-correction-context{display:grid;gap:3px;min-width:0}.portfolio-correction-context strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.portfolio-correction-context span{color:#64748b;font-size:12.5px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.portfolio-correction-row label{display:grid;gap:5px;font-size:12px;font-weight:600;color:#475569;text-transform:uppercase;letter-spacing:.04em}.portfolio-correction-row input,.portfolio-correction-row select{min-height:40px}.portfolio-correction-actions{display:flex;gap:7px;align-items:center;justify-content:flex-end}.portfolio-correction-actions button{white-space:nowrap}.portfolio-correction-actions .btn{white-space:nowrap}
@media(max-width:1280px){.portfolio-correction-row,.portfolio-correction-row.compact,.portfolio-correction-row.contact-row{grid-template-columns:1fr 1fr}.portfolio-correction-context{grid-column:1/-1}.portfolio-correction-actions{grid-column:1/-1;justify-content:flex-start}}
@media(max-width:720px){.portfolio-correction-row,.portfolio-correction-row.compact,.portfolio-correction-row.contact-row{grid-template-columns:1fr}.portfolio-correction-context,.portfolio-correction-actions{grid-column:auto}.portfolio-correction-actions{display:grid;grid-template-columns:1fr}.portfolio-correction-actions .btn,.portfolio-correction-actions button{width:100%}}

/* V161 — correction portefeuille en masse. */
.portfolio-bulk-hero{background:linear-gradient(135deg,#fff,#f8fbff);border-color:#dbeafe}.portfolio-bulk-hero.danger{border-color:#fecaca;background:#fffafa}.portfolio-bulk-hero.warn{border-color:#fde68a;background:#fffdf4}.portfolio-bulk-hero.ok,.portfolio-bulk-hero.good{border-color:#bbf7d0;background:#f7fef9}.portfolio-bulk-section{scroll-margin-top:24px}.portfolio-bulk-form{display:grid;gap:14px}.portfolio-bulk-toolbar{display:grid;grid-template-columns:repeat(2,minmax(150px,1fr)) minmax(190px,1fr) minmax(190px,1fr) auto;gap:10px;align-items:end;border:1px solid var(--line);border-radius:16px;background:#f8fafc;padding:13px}.portfolio-bulk-toolbar.compact{grid-template-columns:minmax(220px,1fr) auto}.portfolio-bulk-toolbar.contacts{grid-template-columns:repeat(5,minmax(120px,1fr)) minmax(190px,1fr) auto}.portfolio-bulk-toolbar label{display:grid;gap:5px;font-size:12px;font-weight:600;color:#475569;text-transform:uppercase;letter-spacing:.04em}.portfolio-bulk-toolbar .checkline{display:flex;align-items:center;gap:8px;text-transform:none;letter-spacing:0;font-size:13px;line-height:1.25;color:#334155}.portfolio-bulk-toolbar input,.portfolio-bulk-toolbar select{min-height:40px}.portfolio-bulk-toolbar button{white-space:nowrap}.portfolio-bulk-table-wrap{overflow:auto;border:1px solid var(--line);border-radius:16px}.portfolio-bulk-table{margin:0}.portfolio-bulk-table th:first-child,.portfolio-bulk-table td:first-child{width:44px;text-align:center}.portfolio-bulk-table td{vertical-align:middle}.portfolio-bulk-card-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.portfolio-bulk-card-grid.contact-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.portfolio-bulk-check-card{display:grid;grid-template-columns:auto minmax(0,1fr);gap:10px;align-items:start;border:1px solid var(--line);border-radius:16px;background:#fff;padding:13px;cursor:pointer}.portfolio-bulk-check-card:hover{border-color:var(--line-strong);box-shadow:0 8px 20px rgba(15,23,42,.045)}.portfolio-bulk-check-card span{display:grid;gap:4px;min-width:0}.portfolio-bulk-check-card strong{font-size:14px;line-height:1.25;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.portfolio-bulk-check-card em{font-style:normal;color:#64748b;font-size:12.5px;line-height:1.35;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.portfolio-bulk-safety .mini-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.portfolio-bulk-safety .mini-grid>div{display:grid;gap:4px;border:1px solid var(--line);border-radius:16px;background:#fff;padding:14px}.portfolio-bulk-safety .mini-grid span{color:#64748b;font-size:13px;line-height:1.35}
@media(max-width:1280px){.portfolio-bulk-toolbar,.portfolio-bulk-toolbar.contacts{grid-template-columns:repeat(2,minmax(0,1fr))}.portfolio-bulk-toolbar.compact{grid-template-columns:1fr}.portfolio-bulk-card-grid.contact-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.portfolio-bulk-toolbar button{grid-column:1/-1;width:max-content}.portfolio-bulk-toolbar .checkline{align-self:center}}
@media(max-width:760px){.portfolio-bulk-toolbar,.portfolio-bulk-toolbar.contacts,.portfolio-bulk-card-grid,.portfolio-bulk-card-grid.contact-grid,.portfolio-bulk-safety .mini-grid{grid-template-columns:1fr}.portfolio-bulk-toolbar button{width:100%}.portfolio-bulk-check-card strong,.portfolio-bulk-check-card em{white-space:normal}.portfolio-bulk-table{min-width:760px}}

/* V162 — préparation AG depuis portefeuille */
.meeting-prep-head .head-actions{align-items:center;}
.meeting-prep-hero{overflow:hidden;}
.meeting-prep-hero.good{border-color:rgba(22,163,74,.24);background:linear-gradient(135deg,#f0fdf4,#fff);}
.meeting-prep-hero.ok{border-color:rgba(37,99,235,.22);background:linear-gradient(135deg,#eff6ff,#fff);}
.meeting-prep-hero.warn{border-color:rgba(245,158,11,.26);background:linear-gradient(135deg,#fffbeb,#fff);}
.meeting-prep-hero.danger{border-color:rgba(220,38,38,.24);background:linear-gradient(135deg,#fef2f2,#fff);}
.meeting-prep-metrics a{min-height:86px;}
.meeting-prep-create-card .form-actions-sticky button:disabled{opacity:.55;cursor:not-allowed;filter:grayscale(.2);}
.meeting-prep-roster .data-table td{vertical-align:top;}
.compact-issues{display:grid;gap:10px;}
.issue-row{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr) auto;gap:12px;align-items:center;padding:12px 14px;border:1px solid rgba(15,23,42,.08);border-radius:16px;background:#fff;color:inherit;text-decoration:none;box-shadow:0 8px 20px rgba(15,23,42,.035);}
.issue-row:hover{border-color:rgba(37,99,235,.22);box-shadow:0 12px 28px rgba(15,23,42,.06);transform:translateY(-1px);}
.issue-row strong,.issue-row span,.issue-row em{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.issue-row span{color:#64748b;}
.issue-row em{font-style:normal;color:#475569;font-size:.9rem;}
.meeting-prep-docs .issue-row{grid-template-columns:minmax(0,1.4fr) minmax(0,.8fr) auto;}
/* V169 — le lien Préparer AG doit utiliser le style normal du menu, sans bordure spécifique. */
.user-nav-stack .side-link[href^="/preparation-ag"]{border-color:transparent;background:transparent;}
.user-nav-stack .side-link[href^="/preparation-ag"].active{border-color:rgba(37,99,235,.22);background:#eff6ff;color:#1d4ed8;}
.mobile-page-links .side-link[href^="/preparation-ag"]{border-color:transparent;background:transparent;}
@media (max-width: 760px){
  .issue-row{grid-template-columns:1fr;gap:4px;}
  .issue-row strong,.issue-row span,.issue-row em{white-space:normal;}
}

/* V164 — convocation AG avec documents partagés sécurisés */
.meeting-notice-head .head-actions{align-items:center;}
.meeting-notice-filter{margin-top:1rem;}
.meeting-notice-hero{overflow:hidden;}
.meeting-notice-hero.good{border-color:rgba(22,163,74,.24);background:linear-gradient(135deg,#f0fdf4,#fff);}
.meeting-notice-hero.ok{border-color:rgba(37,99,235,.22);background:linear-gradient(135deg,#eff6ff,#fff);}
.meeting-notice-hero.warn{border-color:rgba(245,158,11,.26);background:linear-gradient(135deg,#fffbeb,#fff);}
.meeting-notice-hero.danger{border-color:rgba(220,38,38,.24);background:linear-gradient(135deg,#fef2f2,#fff);}
.meeting-notice-grid .card{min-width:0;}
.meeting-notice-checklist{margin-top:.25rem;}
.meeting-notice-metrics{grid-template-columns:repeat(3,minmax(0,1fr));}
.meeting-notice-recipient-preview span{display:block;}
.meeting-notice-compose textarea{font-family:inherit;line-height:1.45;}
.meeting-notice-compose button:disabled{opacity:.55;cursor:not-allowed;filter:grayscale(.25);}
.meeting-notice-documents .section-head{margin-bottom:.75rem;}
.document-choice-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:.75rem;}
.document-choice{display:flex;gap:.7rem;align-items:flex-start;border:1px solid var(--border);border-radius:18px;padding:.85rem;background:#fff;cursor:pointer;}
.document-choice input{margin-top:.2rem;accent-color:var(--primary);}
.document-choice span{display:grid;gap:.15rem;min-width:0;}
.document-choice strong{font-size:.92rem;line-height:1.25;}
.document-choice em{font-style:normal;color:var(--muted);font-size:.78rem;}
.meeting-notice-anomalies .issue-row{grid-template-columns:minmax(0,1fr) minmax(0,1fr) auto;}
@media (max-width:760px){.meeting-notice-metrics{grid-template-columns:1fr}.document-choice-grid{grid-template-columns:1fr}.meeting-notice-anomalies .issue-row{grid-template-columns:1fr}}

/* V164 — options de partage sécurisé AG */
.meeting-notice-share-options{align-items:end;margin-top:1rem;}
.meeting-notice-share-options input{max-width:180px;}

/* V165 — Présences AG, quorum indicatif et pouvoirs */
.presence-quorum-card{border-left:4px solid var(--line-strong)}
.presence-quorum-card.ok{border-left-color:#16a34a;background:#fbfffd}
.presence-quorum-card.warn{border-left-color:#f59e0b;background:#fffdf7}
.presence-quorum-card.danger{border-left-color:#dc2626;background:#fffafa}
.presence-meter{position:relative;height:12px;border-radius:999px;background:#eef2f7;overflow:hidden;border:1px solid var(--line);margin-top:12px}
.presence-meter::after{content:"";position:absolute;left:50%;top:0;bottom:0;width:2px;background:#11182733}
.presence-meter span{display:block;height:100%;border-radius:999px;background:#111827}
.presence-quorum-card.ok .presence-meter span{background:#16a34a}
.presence-quorum-card.warn .presence-meter span{background:#f59e0b}
.presence-quorum-card.danger .presence-meter span{background:#dc2626}
.presence-meter-legend{display:flex;flex-wrap:wrap;gap:8px 14px;margin-top:9px;color:var(--muted);font-size:12px;font-weight:600}
.presence-table-card table{min-width:1050px}.presence-proxy-cell{display:grid;gap:8px;min-width:260px}.presence-proxy-cell select,.presence-proxy-cell input{width:100%}
.presence-overview-table table{min-width:980px}.presence-form .form-actions-inline{align-items:center}.meeting-presence-hero .head-actions,.presence-head .head-actions{align-items:center}
@media(max-width:760px){.presence-meter-legend{display:grid}.presence-table-card table,.presence-overview-table table{min-width:880px}}

/* V166 — votes AG pondérés */
.meeting-vote-center-hero,.meeting-vote-board-hero{align-items:flex-start}
.vote-board-warning.ok{border-color:rgba(16,185,129,.28);background:linear-gradient(180deg,#fff,#ecfdf5)}
.vote-board-warning.warn,.vote-outcome-card.warn{border-color:rgba(245,158,11,.28);background:linear-gradient(180deg,#fff,#fffbeb)}
.vote-board-warning.danger,.vote-outcome-card.danger{border-color:rgba(239,68,68,.25);background:linear-gradient(180deg,#fff,#fef2f2)}
.vote-outcome-card.ok{border-color:rgba(16,185,129,.28);background:linear-gradient(180deg,#fff,#ecfdf5)}
.vote-outcome-card.info{border-color:rgba(59,130,246,.22);background:linear-gradient(180deg,#fff,#eff6ff)}
.vote-center-table td,.vote-board-table td{vertical-align:top}
.vote-board-row .badge{white-space:nowrap}
.vote-board-row.is-ok{background:rgba(16,185,129,.035)}
.vote-board-row.is-danger{background:rgba(239,68,68,.035)}
.vote-board-row.is-warn{background:rgba(245,158,11,.04)}
.vote-board-row.is-info{background:rgba(59,130,246,.035)}
@media(max-width:820px){.vote-center-table,.vote-board-table{overflow:auto}.vote-center-table table,.vote-board-table table{min-width:920px}}

/* V167 — login protégé + tableau de bord nettoyé */
.route-tableau-de-bord .dashboard-clean-head{
  align-items:start;
  grid-template-columns:minmax(0,1fr) minmax(260px,auto);
  gap:16px;
}
.route-tableau-de-bord .dashboard-clean-head h1{
  max-width:720px;
  margin-bottom:5px;
}
.route-tableau-de-bord .dashboard-clean-head p:not(.eyebrow){
  max-width:560px;
  font-size:13px;
  line-height:1.4;
}
.route-tableau-de-bord .dashboard-primary-actions{
  justify-content:flex-end;
  align-items:flex-start;
  max-width:520px;
}
.route-tableau-de-bord .dashboard-primary-actions .btn{
  min-height:36px;
  padding:8px 11px;
  font-size:12px;
  border-radius:10px;
}
.route-tableau-de-bord .stats.dashboard-widget{
  margin-top:2px;
}
.route-tableau-de-bord .dashboard-widget .section-head{
  align-items:flex-start;
}
.route-tableau-de-bord .dashboard-widget .section-head .head-actions{
  flex:none;
}
@media(max-width:1180px){
  .route-tableau-de-bord .dashboard-clean-head{
    grid-template-columns:1fr;
  }
  .route-tableau-de-bord .dashboard-primary-actions{
    justify-content:flex-start;
    max-width:none;
  }
}
@media(max-width:620px){
  .route-tableau-de-bord .dashboard-primary-actions{
    display:grid;
    grid-template-columns:1fr;
    width:100%;
  }
  .route-tableau-de-bord .dashboard-primary-actions .btn{
    width:100%;
  }
}


/* V170 — PV AG assisté */
.meeting-minutes-center-hero,.meeting-minutes-hero{align-items:flex-start}
.meeting-minutes-table td{vertical-align:top}
.meeting-minutes-generator{border-color:rgba(59,130,246,.18);background:linear-gradient(180deg,#fff,#f8fbff)}
.meeting-minutes-generator .form-actions-inline{align-items:center}
.route-ag-minutes textarea#minutes_text{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.55}
@media(max-width:820px){.meeting-minutes-table{overflow:auto}.meeting-minutes-table table{min-width:980px}}

/* V171 - Diffusion PV AG */
.meeting-minutes-dispatch-hero{align-items:flex-start}.meeting-minutes-dispatch-filters{border-color:#dbeafe;background:linear-gradient(135deg,#ffffff,#f8fbff)}.meeting-minutes-dispatch-stats .stat{min-height:112px}.meeting-minutes-dispatch-checks{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.check-item{display:grid;grid-template-columns:30px minmax(0,1fr);gap:11px;align-items:start;border:1px solid var(--line);border-radius:16px;background:#fff;padding:14px}.check-item>span{width:30px;height:30px;border-radius:999px;display:grid;place-items:center;font-weight:600;background:#f1f5f9;color:#475569}.check-item strong{display:block;line-height:1.25;color:#0f172a}.check-item p{margin:4px 0 0;color:#64748b;font-size:13px;line-height:1.42}.check-item.is-danger{border-color:#fecaca;background:#fffafa}.check-item.is-danger>span{background:#fee2e2;color:#991b1b}.check-item.is-warn{border-color:#fde68a;background:#fffdf4}.check-item.is-warn>span{background:#fef3c7;color:#92400e}.check-item.is-ok{border-color:#bbf7d0;background:#f7fef9}.check-item.is-ok>span{background:#dcfce7;color:#166534}@media(max-width:1180px){.meeting-minutes-dispatch-checks{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:720px){.meeting-minutes-dispatch-checks{grid-template-columns:1fr}}

/* V172 — Registre AG/PV */
.meeting-register-hero{align-items:flex-start}
.meeting-register-filters{border-color:#e0e7ff;background:linear-gradient(135deg,#ffffff,#f8fbff)}
.meeting-register-stage-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}
.meeting-register-stage-tile{display:grid;gap:4px;border:1px solid var(--line);border-radius:16px;background:#fff;padding:14px;text-decoration:none;color:inherit}
.meeting-register-stage-tile strong{font-size:24px;line-height:1;color:#0f172a}
.meeting-register-stage-tile span{font-size:12px;font-weight:600;color:#64748b;text-transform:uppercase;letter-spacing:.03em}
.meeting-register-stage-tile.active{border-color:#93c5fd;background:linear-gradient(180deg,#fff,#eff6ff)}
.meeting-register-table td{vertical-align:top}
.meeting-register-check-row td{background:#f8fafc;border-top:0}
.meeting-register-checks{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:8px}
.mini-check{display:grid;gap:3px;border:1px solid var(--line);border-radius:12px;background:#fff;padding:10px;text-decoration:none;color:inherit}
.mini-check strong{font-size:12px;line-height:1.2}.mini-check span{font-size:12px;color:#64748b;line-height:1.35}
.mini-check.is-danger{border-color:#fecaca;background:#fffafa}.mini-check.is-warn{border-color:#fde68a;background:#fffdf4}.mini-check.is-ok{border-color:#bbf7d0;background:#f7fef9}
.meeting-register-dashboard-strip{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:10px}
.meeting-register-dashboard-strip a{display:grid;gap:3px;border:1px solid var(--line);border-radius:14px;background:#fff;padding:12px;text-decoration:none;color:inherit}
.meeting-register-dashboard-strip strong{font-size:22px;color:#0f172a;line-height:1}.meeting-register-dashboard-strip span{font-size:12px;font-weight:600;color:#64748b}
@media(max-width:1100px){.meeting-register-stage-grid,.meeting-register-dashboard-strip{grid-template-columns:repeat(2,minmax(0,1fr))}.meeting-register-table{overflow:auto}.meeting-register-table table{min-width:1100px}}
@media(max-width:620px){.meeting-register-stage-grid,.meeting-register-dashboard-strip{grid-template-columns:1fr}}

/* V173 — Clôture AG opérationnelle */
.meeting-closure-hero{align-items:flex-start}
.meeting-closure-filters{border-color:#e0e7ff;background:linear-gradient(135deg,#ffffff,#f8fbff)}
.meeting-closure-board{border-color:rgba(59,130,246,.18);background:linear-gradient(180deg,#fff,#f8fbff)}
.meeting-closure-summary{grid-template-columns:repeat(5,minmax(0,1fr))}
.meeting-closure-checks{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-top:14px}
.meeting-closure-checks .check-item{text-decoration:none;color:inherit}
.meeting-closure-table td{vertical-align:top}
@media(max-width:1180px){.meeting-closure-checks{grid-template-columns:repeat(2,minmax(0,1fr))}.meeting-closure-summary{grid-template-columns:repeat(2,minmax(0,1fr))}.meeting-closure-table{overflow:auto}.meeting-closure-table table{min-width:1040px}}
@media(max-width:720px){.meeting-closure-checks,.meeting-closure-summary{grid-template-columns:1fr}}

/* V174 - suivi post-AG des décisions */
.decision-follow-up-hero{align-items:flex-start}
.decision-follow-up-stats .stat{text-decoration:none;color:inherit}
.decision-follow-up-filters{border-color:#dbeafe;background:linear-gradient(135deg,#fff,#f8fbff)}
.decision-follow-up-board{overflow:hidden}
.decision-follow-up-bulk{display:grid;grid-template-columns:1fr 180px 1fr 1.35fr auto;gap:12px;align-items:end;padding:14px;border:1px solid var(--line);border-radius:18px;background:#f8fafc;margin-bottom:14px}
.decision-follow-up-bulk label{display:grid;gap:6px;font-size:12px;font-weight:600;color:#64748b;text-transform:uppercase;letter-spacing:.03em}
.decision-follow-up-table{overflow:auto}
.decision-follow-up-table table{min-width:1120px}
.decision-follow-up-table td{vertical-align:top}
.decision-follow-up-table tr.is-danger td{background:#fff7f7}
.decision-follow-up-table tr.is-warn td{background:#fffbeb}
.decision-follow-up-table tr.is-ok td{background:#f0fdf4}
.dashboard-decision-follow-up-entry .meeting-register-dashboard-strip a:nth-child(2) strong,
.dashboard-decision-follow-up-entry .meeting-register-dashboard-strip a:nth-child(5) strong{color:#b91c1c}
@media(max-width:1180px){.decision-follow-up-bulk{grid-template-columns:repeat(2,minmax(0,1fr))}.decision-follow-up-bulk button{grid-column:1/-1}}
@media(max-width:680px){.decision-follow-up-bulk{grid-template-columns:1fr}.decision-follow-up-table table{min-width:980px}}


/* V175 - relances décisions AG */
.decision-relance-hero{align-items:flex-start}
.decision-relance-stats .stat{text-decoration:none;color:inherit}
.decision-relance-stats .stat.danger strong,.decision-relance-stats .stat.danger span{color:#b91c1c}
.decision-relance-stats .stat.warn strong,.decision-relance-stats .stat.warn span{color:#92400e}
.decision-relance-filters{border-color:#dbeafe;background:linear-gradient(135deg,#fff,#f8fbff)}
.decision-relance-layout{align-items:start}
.decision-relance-cards{display:grid;gap:10px}
.decision-relance-card{display:grid;gap:10px;border:1px solid var(--line);border-radius:18px;background:#fff;padding:14px}
.decision-relance-card.active{border-color:#60a5fa;box-shadow:0 0 0 3px rgba(96,165,250,.16)}
.decision-relance-card.is-danger{background:#fffafa;border-color:#fecaca}.decision-relance-card.is-warn{background:#fffdf4;border-color:#fde68a}.decision-relance-card.is-info{background:#f8fbff;border-color:#bfdbfe}
.decision-relance-card h3{margin:7px 0 3px;font-size:15px;line-height:1.25}
.decision-relance-card dl{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:0}
.decision-relance-card dt{font-size:11px;text-transform:uppercase;letter-spacing:.04em;font-weight:600;color:#64748b}.decision-relance-card dd{margin:2px 0 0;font-weight:600;color:#0f172a}
.decision-relance-card .card-actions{display:flex;gap:8px;flex-wrap:wrap}
.decision-relance-draft{position:sticky;top:18px}
.decision-relance-preflight{display:grid;gap:8px;margin-bottom:12px}
.copy-box{border:1px solid var(--line);border-radius:12px;background:#f8fafc;padding:11px;overflow:auto}.copy-box code{white-space:normal;color:#0f172a;font-weight:600}
.message-preview{border:1px solid var(--line);border-radius:16px;background:#fff;padding:14px;line-height:1.55;color:#1f2937;max-height:520px;overflow:auto}
.field-label{display:block;margin:12px 0 6px;font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:#64748b}
@media(max-width:1120px){.decision-relance-layout{display:grid;grid-template-columns:1fr}.decision-relance-draft{position:static}.decision-relance-card dl{grid-template-columns:1fr}}

/* V176 - plan d'exécution post-AG */
.decision-execution-hero{align-items:flex-start}
.decision-execution-stats .stat{text-decoration:none;color:inherit}.decision-execution-stats .stat.danger strong,.decision-execution-stats .stat.danger span{color:#b91c1c}.decision-execution-stats .stat.warn strong,.decision-execution-stats .stat.warn span{color:#92400e}
.decision-execution-filters{border-color:#dbeafe;background:linear-gradient(135deg,#fff,#f8fbff)}
.decision-execution-lanes{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.decision-execution-lane{min-width:0}.decision-execution-lane.is-danger{border-color:#fecaca;background:linear-gradient(180deg,#fff,#fff7f7)}.decision-execution-lane.is-warn{border-color:#fde68a;background:linear-gradient(180deg,#fff,#fffbeb)}.decision-execution-lane.is-info{border-color:#bfdbfe;background:linear-gradient(180deg,#fff,#f8fbff)}.decision-execution-lane.is-neutral{background:#fff}
.decision-execution-mini-list{display:grid;gap:8px}.decision-execution-board{overflow:hidden}.decision-execution-bulk{margin-bottom:14px}.decision-execution-table{overflow:auto}.decision-execution-table table{min-width:1120px}.decision-execution-table td{vertical-align:top}.decision-execution-table tr.is-danger td{background:#fff7f7}.decision-execution-table tr.is-warn td{background:#fffbeb}.decision-execution-table tr.is-ok td{background:#f0fdf4}.decision-execution-table tr.is-info td{background:#f8fbff}
.dashboard-decision-follow-up-entry .meeting-register-dashboard-strip{grid-template-columns:repeat(7,minmax(0,1fr))}.dashboard-decision-follow-up-entry .meeting-register-dashboard-strip a:nth-child(7) strong{color:#b91c1c}
@media(max-width:1180px){.decision-execution-lanes{grid-template-columns:repeat(2,minmax(0,1fr))}.dashboard-decision-follow-up-entry .meeting-register-dashboard-strip{grid-template-columns:repeat(2,minmax(0,1fr))}.decision-execution-table table{min-width:980px}}
@media(max-width:720px){.decision-execution-lanes{grid-template-columns:1fr}.dashboard-decision-follow-up-entry .meeting-register-dashboard-strip{grid-template-columns:1fr}}

/* V177 — pilotage post-AG consolidé */
.post-meeting-pilot-hero{align-items:flex-start}
.post-meeting-pilot-stats .stat{text-decoration:none;color:inherit}
.post-meeting-pilot-stats .stat.danger span,.post-meeting-pilot-stats .stat.danger strong{color:#b91c1c}
.post-meeting-pilot-stats .stat.warn span,.post-meeting-pilot-stats .stat.warn strong{color:#92400e}
.post-meeting-pilot-filters{border-color:#dbeafe;background:linear-gradient(135deg,#fff,#f8fbff)}
.post-meeting-next-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}
.post-meeting-next{display:grid;gap:6px;text-decoration:none;color:inherit;border:1px solid var(--line)}
.post-meeting-next strong{font-size:16px}.post-meeting-next span{color:#64748b;font-size:13px;line-height:1.35}.post-meeting-next em{font-style:normal;font-weight:600;font-size:12px;color:#2563eb}
.post-meeting-next.is-danger{border-color:#fecaca;background:linear-gradient(180deg,#fff,#fff7f7)}
.post-meeting-next.is-warn{border-color:#fde68a;background:linear-gradient(180deg,#fff,#fffbeb)}
.post-meeting-next.is-ok{border-color:#bbf7d0;background:linear-gradient(180deg,#fff,#f0fdf4)}
.post-meeting-acp-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.post-meeting-acp-card{border:1px solid var(--line);border-radius:18px;background:#fff;padding:16px;display:grid;gap:14px}
.post-meeting-acp-card.is-danger{border-color:#fecaca;background:linear-gradient(180deg,#fff,#fff7f7)}
.post-meeting-acp-card.is-warn{border-color:#fde68a;background:linear-gradient(180deg,#fff,#fffbeb)}
.post-meeting-acp-card.is-info{border-color:#bfdbfe;background:linear-gradient(180deg,#fff,#f8fbff)}
.post-meeting-acp-card.is-ok{border-color:#bbf7d0;background:linear-gradient(180deg,#fff,#f0fdf4)}
.post-meeting-acp-head{display:flex;justify-content:space-between;gap:12px;align-items:flex-start}
.post-meeting-acp-head strong{display:block;font-size:17px;color:#0f172a}.post-meeting-acp-head span{display:block;color:#64748b;font-size:13px;margin-top:3px}
.score-chip{border:1px solid var(--line);background:#fff;border-radius:999px;padding:7px 10px;font-weight:600;font-size:12px;white-space:nowrap;color:#0f172a}.score-chip.danger{color:#b91c1c;border-color:#fecaca}.score-chip.warn{color:#92400e;border-color:#fde68a}.score-chip.ok{color:#15803d;border-color:#bbf7d0}.score-chip.info{color:#1d4ed8;border-color:#bfdbfe}
.post-meeting-acp-metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}.post-meeting-acp-metrics span{border:1px solid var(--line);border-radius:12px;background:rgba(255,255,255,.8);padding:9px;font-size:12px;color:#64748b}.post-meeting-acp-metrics strong{display:block;font-size:18px;color:#0f172a;line-height:1}
.post-meeting-risk-list{margin:0;padding-left:18px;color:#475569;font-size:13px;display:grid;gap:4px}
.post-meeting-bulk{margin-bottom:14px}
.post-meeting-priority-decisions .table-card{overflow:auto}.post-meeting-priority-decisions table{min-width:1120px}.post-meeting-priority-decisions td{vertical-align:top}.post-meeting-priority-decisions tr.is-danger td{background:#fff7f7}.post-meeting-priority-decisions tr.is-warn td{background:#fffbeb}.post-meeting-priority-decisions tr.is-info td{background:#f8fbff}.post-meeting-priority-decisions tr.is-ok td{background:#f0fdf4}
.dashboard-decision-follow-up-entry .meeting-register-dashboard-strip a:first-child strong{color:#1d4ed8}
@media(max-width:1180px){.post-meeting-next-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.post-meeting-acp-grid{grid-template-columns:1fr}.post-meeting-acp-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.post-meeting-priority-decisions table{min-width:980px}}
@media(max-width:720px){.post-meeting-next-grid{grid-template-columns:1fr}.post-meeting-acp-metrics{grid-template-columns:1fr}}

/* V178 — menu gauche en accordéons.
   Le tableau de bord entre dans le menu principal ; la recherche reste seule en haut fixe. */
.user-nav-accordion-stack{gap:8px;}
.user-nav-accordion{display:block;padding:0;overflow:hidden;background:#fbfdff;border:1px solid rgba(15,23,42,.07);border-radius:16px;}
.user-nav-accordion[open]{background:#fff;border-color:rgba(37,99,235,.14);box-shadow:0 10px 28px rgba(15,23,42,.045);}
.user-nav-accordion-summary{list-style:none;cursor:pointer;display:flex!important;align-items:center;justify-content:space-between;gap:10px;width:100%;padding:11px 12px!important;user-select:none;}
.user-nav-accordion-summary::-webkit-details-marker{display:none;}
.user-nav-accordion-title{display:grid;gap:2px;min-width:0;}
.user-nav-accordion-title strong{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.105em;color:#0f172a;line-height:1.15;}
.user-nav-accordion-title small{color:#64748b;font-size:11px;font-weight:600;line-height:1.2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.user-nav-accordion-chevron{width:22px;height:22px;border-radius:999px;display:grid;place-items:center;background:#f1f5f9;color:#64748b;font-weight:600;line-height:1;transition:transform .16s ease,background .16s ease,color .16s ease;flex:none;}
.user-nav-accordion[open] .user-nav-accordion-chevron{transform:rotate(180deg);background:#dbeafe;color:#1d4ed8;}
.user-nav-accordion-panel{display:grid;gap:4px;padding:0 10px 10px;}
.user-nav-accordion-panel .side-link{min-height:37px;}
.user-nav-accordion-panel .side-link-group-home{border-top:1px solid rgba(15,23,42,.06);border-radius:0;padding-top:10px;margin-top:1px;}
.user-nav-accordion-panel .side-link-group-home .side-icon{background:#eef2ff;color:#4f46e5;}
.sidebar-top-fixed{gap:0;}
.app-logged .sidebar-top-fixed .sidebar-search{margin-bottom:0!important;}
@media (min-width:1101px){
  .app-logged .sidebar-main-scroll{padding-top:10px;}
  .app-logged .sidebar-menu-zone-title{margin-bottom:0;}
}
@media (max-width:1100px){
  .user-nav-accordion-stack{display:none;}
}

/* V179 — menu gauche : accordéons compacts + Tableau de bord direct.
   Le Tableau de bord n'est pas un accordéon : il reste un lien simple.
   Les catégories accordéon sont collées pour réduire la hauteur et éviter le vide à droite. */
@media (min-width:1101px){
  .app-logged .sidebar-main-scroll{
    padding-right:0!important;
    scrollbar-gutter:auto!important;
  }
  .app-logged .sidebar-menu-zone{
    gap:8px!important;
    padding-right:0!important;
  }
  .app-logged .sidebar-dashboard-menu-entry{
    display:block;
    margin:0;
  }
  .app-logged .sidebar-dashboard-menu-entry .side-link{
    border:1px solid rgba(15,23,42,.08);
    border-radius:16px;
    background:#fff;
    min-height:42px;
  }
  .app-logged .sidebar-dashboard-menu-entry .side-link.active{
    background:#ecfeff;
    color:#0e7490;
    border-color:rgba(14,116,144,.18);
  }
  .app-logged .user-nav-accordion-stack{
    gap:0!important;
    padding-right:0!important;
    border:1px solid rgba(15,23,42,.08);
    border-radius:18px;
    overflow:hidden;
    background:#fff;
  }
  .app-logged .user-nav-accordion{
    border:0!important;
    border-radius:0!important;
    background:#fff!important;
    padding:0!important;
    gap:0!important;
  }
  .app-logged .user-nav-accordion + .user-nav-accordion{
    border-top:1px solid rgba(15,23,42,.08)!important;
  }
  .app-logged .user-nav-accordion-summary{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:10px;
    min-height:44px;
    padding:11px 12px;
    cursor:pointer;
    list-style:none;
  }
  .app-logged .user-nav-accordion-summary::-webkit-details-marker{display:none;}
  .app-logged .user-nav-accordion-title{display:grid;gap:1px;min-width:0;}
  .app-logged .user-nav-accordion-title strong{font-size:11px;line-height:1.1;}
  .app-logged .user-nav-accordion-title small{font-size:10.5px;line-height:1.15;}
  .app-logged .user-nav-accordion-chevron{transition:transform .15s ease;color:#94a3b8;font-weight:600;}
  .app-logged .user-nav-accordion[open] .user-nav-accordion-chevron{transform:rotate(180deg);}
  .app-logged .user-nav-accordion-panel{
    padding:0 8px 10px;
    gap:4px;
    border-top:1px solid rgba(15,23,42,.05);
    background:#fbfdff;
  }
  .app-logged .user-nav-accordion-panel .side-link{
    border-radius:12px;
  }
}
@media (max-width:1100px){
  .mobile-page-dashboard-link{margin-top:10px;}
}

/* V180 — rappels, interventions et priorités opérationnels.
   Objectif : moins de listes brutes, plus de tri par risque et d'actions rapides. */
body .ops-page-head{margin-bottom:16px;}
body .ops-page-head h1{margin-bottom:6px;}
body .ops-stats-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px;margin:0 0 14px;}
body .ops-stat{display:grid;gap:4px;text-decoration:none;border:1px solid var(--line);background:#fff;border-radius:16px;padding:14px 15px;color:#64748b;min-height:86px;align-content:center;transition:border .14s ease,transform .14s ease,box-shadow .14s ease;}
body .ops-stat:hover{transform:translateY(-1px);border-color:#cbd5e1;box-shadow:var(--shadow-soft);}
body .ops-stat strong{display:block;color:#0f172a;font-size:clamp(22px,2.4vw,30px);line-height:1;font-weight:600;}
body .ops-stat span{font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.07em;line-height:1.2;}
body .ops-stat.is-danger{border-color:#fecaca;background:linear-gradient(180deg,#fff,#fff7f7);color:#991b1b;}
body .ops-stat.is-warn{border-color:#fde68a;background:linear-gradient(180deg,#fff,#fffbeb);color:#92400e;}
body .ops-stat.is-info{border-color:#bfdbfe;background:linear-gradient(180deg,#fff,#f8fbff);color:#1d4ed8;}
body .ops-filter-card{margin-bottom:12px;padding:14px;}
body .ops-filter-grid{display:grid;grid-template-columns:minmax(220px,1.3fr) minmax(190px,1fr) minmax(150px,.85fr) minmax(140px,.75fr) minmax(150px,.8fr) auto;gap:10px;align-items:end;}
body .ops-filter-grid label{display:grid;gap:6px;margin:0;color:#475569;font-size:12px;font-weight:600;}
body .ops-filter-grid input,
body .ops-filter-grid select{min-height:39px;}
body .ops-list-toolbar{margin:12px 0;align-items:center;}
body .ops-table-card{overflow:auto;}
body .ops-table-card table{min-width:1020px;}
body .ops-row.is-danger td{background:#fff7f7;}
body .ops-row.is-warn td{background:#fffbeb;}
body .ops-actions{gap:8px;white-space:nowrap;}
body .ops-actions form{display:inline-flex;margin:0;}
body .ops-actions .muted-action{color:#64748b;}
body .priority-control-stats{grid-template-columns:repeat(5,minmax(0,1fr));}
body .priority-lane-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;align-items:start;}
body .priority-lane{padding:16px;min-height:220px;}
body .priority-lane-danger{border-color:#fecaca;background:linear-gradient(180deg,#fff,#fff8f8);}
body .priority-lane-warn{border-color:#fde68a;background:linear-gradient(180deg,#fff,#fffcf0);}
body .priority-lane-info{border-color:#bfdbfe;background:linear-gradient(180deg,#fff,#f8fbff);}
body .ops-priority-feed .priority-item{grid-template-columns:10px minmax(0,1fr);}
body .ops-priority-feed .priority-date{grid-column:2;justify-self:start;}
body .ops-advice-card{display:flex;align-items:center;justify-content:space-between;gap:18px;}
body .ops-resolution-grid{grid-template-columns:repeat(4,minmax(0,1fr));}
@media(max-width:1180px){
  body .ops-stats-grid,
  body .priority-control-stats{grid-template-columns:repeat(3,minmax(0,1fr));}
  body .ops-filter-grid{grid-template-columns:repeat(3,minmax(0,1fr));}
  body .priority-lane-grid{grid-template-columns:1fr;}
  body .ops-resolution-grid{grid-template-columns:repeat(2,minmax(0,1fr));}
}
@media(max-width:720px){
  body .ops-stats-grid,
  body .priority-control-stats,
  body .ops-filter-grid,
  body .ops-resolution-grid{grid-template-columns:1fr;}
  body .ops-advice-card{display:block;}
  body .ops-advice-card .head-actions{margin-top:12px;}
}

/* V181 — navigation restylée : menu gauche métier + top menu compte/actions.
   Le stockage disparaît de la navigation visible ; support, langue, administration et déconnexion passent en haut. */
body.app-logged .app-shell{
  background:linear-gradient(180deg,#f8fafc 0%,#f4f6f8 100%);
}
@media (min-width:1101px){
  body.app-logged .sidebar{
    --sidebar-ink:#0f172a;
    padding:18px 0 18px 16px!important;
    gap:14px!important;
    border-right:1px solid rgba(15,23,42,.08);
    background:linear-gradient(180deg,#ffffff 0%,#fbfdff 100%);
    box-shadow:10px 0 34px rgba(15,23,42,.035);
  }
  body.app-logged .side-brand{
    margin-right:16px;
    padding:0 0 16px 0!important;
    border-bottom:0!important;
  }
  body.app-logged .side-brand .brand-mark{
    width:38px;height:38px;border-radius:15px;
  }
  body.app-logged .side-brand .brand-text{
    font-size:21px;
  }
  body.app-logged .sidebar-top-fixed{
    padding-right:16px;
  }
  body.app-logged .sidebar-search{
    margin:0!important;
  }
  body.app-logged .sidebar-search input{
    height:40px;
    border-color:rgba(148,163,184,.28);
    background:#f8fafc;
    box-shadow:inset 0 1px 0 rgba(255,255,255,.7);
  }
  body.app-logged .sidebar-search button{
    height:40px;width:40px;border-radius:13px;
  }
  body.app-logged .sidebar-main-scroll{
    border-top:0!important;
    padding:4px 0 14px 0!important;
    scrollbar-gutter:auto!important;
  }
  body.app-logged .sidebar-menu-zone{
    gap:8px!important;
    padding:0!important;
  }
  body.app-logged .sidebar-menu-zone-title{
    display:none!important;
  }
  body.app-logged .sidebar-dashboard-menu-entry{
    margin:0 16px 2px 0!important;
  }
  body.app-logged .sidebar-dashboard-menu-entry .side-link{
    min-height:46px;
    border:1px solid rgba(15,23,42,.08)!important;
    border-radius:16px!important;
    background:#111827!important;
    color:#fff!important;
    box-shadow:0 16px 30px rgba(15,23,42,.14);
  }
  body.app-logged .sidebar-dashboard-menu-entry .side-link .side-icon{
    background:rgba(255,255,255,.14)!important;
    color:#fff!important;
  }
  body.app-logged .sidebar-dashboard-menu-entry .side-link.active{
    background:linear-gradient(135deg,#111827,#1f2937)!important;
    border-color:rgba(255,255,255,.18)!important;
  }
  body.app-logged .user-nav-accordion-stack{
    margin-right:0!important;
    border:1px solid rgba(15,23,42,.07)!important;
    border-right:0!important;
    border-radius:18px 0 0 18px!important;
    overflow:hidden;
    background:#fff;
    box-shadow:0 14px 34px rgba(15,23,42,.04);
  }
  body.app-logged .user-nav-accordion{
    border:0!important;
    border-radius:0!important;
    background:#fff!important;
    box-shadow:none!important;
  }
  body.app-logged .user-nav-accordion + .user-nav-accordion{
    border-top:1px solid rgba(15,23,42,.07)!important;
  }
  body.app-logged .user-nav-accordion-summary{
    min-height:46px!important;
    padding:11px 14px!important;
    background:#fff;
  }
  body.app-logged .user-nav-accordion[open] .user-nav-accordion-summary{
    background:#f8fafc;
  }
  body.app-logged .user-nav-accordion-title strong{
    color:#0f172a;
    font-size:11px;
    letter-spacing:.11em;
  }
  body.app-logged .user-nav-accordion-title small{
    color:#64748b;
    font-size:10.5px;
    max-width:188px;
  }
  body.app-logged .user-nav-accordion-chevron{
    width:23px;height:23px;
    background:#f1f5f9;
    color:#64748b;
  }
  body.app-logged .user-nav-accordion[open] .user-nav-accordion-chevron{
    background:#e0f2fe;
    color:#0369a1;
  }
  body.app-logged .user-nav-accordion-panel{
    padding:7px 10px 12px 10px!important;
    gap:3px!important;
    background:#fbfdff!important;
    border-top:1px solid rgba(15,23,42,.045)!important;
  }
  body.app-logged .user-nav-accordion-panel .side-link{
    min-height:36px;
    padding:7px 9px;
    border-radius:11px;
    color:#334155;
    font-size:13.5px;
  }
  body.app-logged .user-nav-accordion-panel .side-link:hover{
    background:#eef2ff;
    color:#1e293b;
  }
  body.app-logged .user-nav-accordion-panel .side-link.active{
    background:#e0f2fe;
    color:#075985;
  }
  body.app-logged .user-nav-accordion-panel .side-icon{
    width:22px;height:22px;border-radius:8px;
    font-size:12px;
    background:#eef2f7;
  }
  body.app-logged .side-bottom-blocks,
  body.app-logged .side-footer,
  body.app-logged .menu-highlights,
  body.app-logged .sidebar-admin-shortcut,
  body.app-logged .sidebar-lang{
    display:none!important;
  }
  body.app-logged .main-shell{
    display:grid!important;
    grid-template-rows:auto minmax(0,1fr);
    min-height:100vh;
  }
  body.app-logged .app-top-menu{
    position:sticky;
    top:0;
    z-index:18;
    min-height:68px;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:18px;
    padding:12px clamp(24px,2.4vw,38px);
    border-bottom:1px solid rgba(15,23,42,.08);
    background:rgba(255,255,255,.88);
    backdrop-filter:saturate(1.25) blur(14px);
  }
  body.app-logged .app-top-account{
    display:flex;
    align-items:center;
    gap:11px;
    min-width:0;
  }
  body.app-logged .app-top-avatar{
    width:38px;height:38px;border-radius:999px;
    display:grid;place-items:center;
    background:#111827;color:#fff;
    font-weight:600;
    box-shadow:0 12px 26px rgba(15,23,42,.16);
  }
  body.app-logged .app-top-account-text{
    display:grid;
    gap:1px;
    min-width:0;
  }
  body.app-logged .app-top-account-text strong{
    max-width:280px;
    overflow:hidden;
    text-overflow:ellipsis;
    white-space:nowrap;
    font-size:14px;
    line-height:1.15;
    color:#0f172a;
  }
  body.app-logged .app-top-account-text em{
    font-style:normal;
    color:#64748b;
    font-size:11px;
    font-weight:600;
    text-transform:uppercase;
    letter-spacing:.09em;
  }
  body.app-logged .app-top-actions{
    display:flex;
    align-items:center;
    justify-content:flex-end;
    gap:9px;
    flex-wrap:wrap;
  }
  body.app-logged .app-top-lang select{
    height:36px;
    border-radius:999px;
    border-color:rgba(15,23,42,.11);
    background:#fff;
    font-size:12px;
    font-weight:600;
    padding-left:12px;
  }
  body.app-logged .app-top-link{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    min-height:36px;
    padding:0 13px;
    border-radius:999px;
    border:1px solid rgba(15,23,42,.10);
    background:#fff;
    color:#334155;
    text-decoration:none;
    font-size:13px;
    font-weight:600;
    white-space:nowrap;
  }
  body.app-logged .app-top-link:hover{
    border-color:#cbd5e1;
    background:#f8fafc;
  }
  body.app-logged .app-top-link.admin{
    background:#eef2ff;
    border-color:#c7d2fe;
    color:#3730a3;
  }
  body.app-logged .app-top-link.logout{
    background:#fff7f7;
    border-color:#fecaca;
    color:#991b1b;
  }
  body.app-logged main.container.app-container{
    padding-top:26px!important;
  }
}
@media (max-width:1100px){
  body.app-logged .app-top-menu{display:none;}
  body.app-logged .mobile-page-bottom-blocks{display:none;}
}


/* V182 — menu gauche harmonisé + compte utilisateur + langue alignée à droite.
   Le tableau de bord rejoint le bloc menu, la déconnexion passe dans le menu compte. */
body.app-logged .app-shell{
  background:linear-gradient(180deg,#f8fafc 0%,#f4f6f8 100%);
}
@media (min-width:1101px){
  body.app-logged .sidebar{
    --sidebar-ink:#0f172a;
    padding:18px 0 18px 16px!important;
    gap:14px!important;
    border-right:1px solid rgba(15,23,42,.08);
    background:linear-gradient(180deg,#ffffff 0%,#fbfdff 100%);
    box-shadow:10px 0 34px rgba(15,23,42,.035);
  }
  body.app-logged .side-brand{
    margin-right:16px;
    padding:0 0 16px 0!important;
    border-bottom:0!important;
  }
  body.app-logged .side-brand .brand-mark{
    width:38px;height:38px;border-radius:15px;
  }
  body.app-logged .side-brand .brand-text{
    font-size:21px;
  }
  body.app-logged .sidebar-top-fixed{
    padding-right:16px;
  }
  body.app-logged .sidebar-search{
    margin:0!important;
  }
  body.app-logged .sidebar-search input{
    height:40px;
    border-color:rgba(148,163,184,.28);
    background:#f8fafc;
    box-shadow:inset 0 1px 0 rgba(255,255,255,.7);
  }
  body.app-logged .sidebar-search button{
    height:40px;width:40px;border-radius:13px;
  }
  body.app-logged .sidebar-main-scroll{
    border-top:0!important;
    padding:4px 0 14px 0!important;
    scrollbar-gutter:auto!important;
  }
  body.app-logged .sidebar-menu-zone{
    gap:8px!important;
    padding:0!important;
  }
  body.app-logged .sidebar-menu-zone-title{
    display:none!important;
  }
  body.app-logged .sidebar-dashboard-menu-entry{
    margin:0 16px 2px 0!important;
  }
  body.app-logged .sidebar-dashboard-menu-entry .side-link{
    min-height:46px;
    border:1px solid rgba(15,23,42,.08)!important;
    border-radius:16px!important;
    background:#111827!important;
    color:#fff!important;
    box-shadow:0 16px 30px rgba(15,23,42,.14);
  }
  body.app-logged .sidebar-dashboard-menu-entry .side-link .side-icon{
    background:rgba(255,255,255,.14)!important;
    color:#fff!important;
  }
  body.app-logged .sidebar-dashboard-menu-entry .side-link.active{
    background:linear-gradient(135deg,#111827,#1f2937)!important;
    border-color:rgba(255,255,255,.18)!important;
  }
  body.app-logged .user-nav-accordion-stack{
    margin-right:0!important;
    border:1px solid rgba(15,23,42,.07)!important;
    border-right:0!important;
    border-radius:18px 0 0 18px!important;
    overflow:hidden;
    background:#fff;
    box-shadow:0 14px 34px rgba(15,23,42,.04);
  }
  body.app-logged .user-nav-accordion{
    border:0!important;
    border-radius:0!important;
    background:#fff!important;
    box-shadow:none!important;
  }
  body.app-logged .user-nav-accordion + .user-nav-accordion{
    border-top:1px solid rgba(15,23,42,.07)!important;
  }
  body.app-logged .user-nav-accordion-summary{
    min-height:46px!important;
    padding:11px 14px!important;
    background:#fff;
  }
  body.app-logged .user-nav-accordion[open] .user-nav-accordion-summary{
    background:#f8fafc;
  }
  body.app-logged .user-nav-accordion-title strong{
    color:#0f172a;
    font-size:11px;
    letter-spacing:.11em;
  }
  body.app-logged .user-nav-accordion-title small{
    color:#64748b;
    font-size:10.5px;
    max-width:188px;
  }
  body.app-logged .user-nav-accordion-chevron{
    width:23px;height:23px;
    background:#f1f5f9;
    color:#64748b;
  }
  body.app-logged .user-nav-accordion[open] .user-nav-accordion-chevron{
    background:#e0f2fe;
    color:#0369a1;
  }
  body.app-logged .user-nav-accordion-panel{
    padding:7px 10px 12px 10px!important;
    gap:3px!important;
    background:#fbfdff!important;
    border-top:1px solid rgba(15,23,42,.045)!important;
  }
  body.app-logged .user-nav-accordion-panel .side-link{
    min-height:36px;
    padding:7px 9px;
    border-radius:11px;
    color:#334155;
    font-size:13.5px;
  }
  body.app-logged .user-nav-accordion-panel .side-link:hover{
    background:#eef2ff;
    color:#1e293b;
  }
  body.app-logged .user-nav-accordion-panel .side-link.active{
    background:#e0f2fe;
    color:#075985;
  }
  body.app-logged .user-nav-accordion-panel .side-icon{
    width:22px;height:22px;border-radius:8px;
    font-size:12px;
    background:#eef2f7;
  }
  body.app-logged .side-bottom-blocks,
  body.app-logged .side-footer,
  body.app-logged .menu-highlights,
  body.app-logged .sidebar-admin-shortcut,
  body.app-logged .sidebar-lang{
    display:none!important;
  }
  body.app-logged .main-shell{
    display:grid!important;
    grid-template-rows:auto minmax(0,1fr);
    min-height:100vh;
  }
  body.app-logged .app-top-menu{
    position:sticky;
    top:0;
    z-index:18;
    min-height:68px;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:18px;
    padding:12px clamp(24px,2.4vw,38px);
    border-bottom:1px solid rgba(15,23,42,.08);
    background:rgba(255,255,255,.88);
    backdrop-filter:saturate(1.25) blur(14px);
  }
  body.app-logged .app-top-account{
    display:flex;
    align-items:center;
    gap:11px;
    min-width:0;
  }
  body.app-logged .app-top-avatar{
    width:38px;height:38px;border-radius:999px;
    display:grid;place-items:center;
    background:#111827;color:#fff;
    font-weight:600;
    box-shadow:0 12px 26px rgba(15,23,42,.16);
  }
  body.app-logged .app-top-account-text{
    display:grid;
    gap:1px;
    min-width:0;
  }
  body.app-logged .app-top-account-text strong{
    max-width:280px;
    overflow:hidden;
    text-overflow:ellipsis;
    white-space:nowrap;
    font-size:14px;
    line-height:1.15;
    color:#0f172a;
  }
  body.app-logged .app-top-account-text em{
    font-style:normal;
    color:#64748b;
    font-size:11px;
    font-weight:600;
    text-transform:uppercase;
    letter-spacing:.09em;
  }
  body.app-logged .app-top-actions{
    display:flex;
    align-items:center;
    justify-content:flex-end;
    gap:9px;
    flex-wrap:wrap;
  }
  body.app-logged .app-top-lang select{
    height:36px;
    border-radius:999px;
    border-color:rgba(15,23,42,.11);
    background:#fff;
    font-size:12px;
    font-weight:600;
    padding-left:12px;
  }
  body.app-logged .app-top-link{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    min-height:36px;
    padding:0 13px;
    border-radius:999px;
    border:1px solid rgba(15,23,42,.10);
    background:#fff;
    color:#334155;
    text-decoration:none;
    font-size:13px;
    font-weight:600;
    white-space:nowrap;
  }
  body.app-logged .app-top-link:hover{
    border-color:#cbd5e1;
    background:#f8fafc;
  }
  body.app-logged .app-top-link.admin{
    background:#eef2ff;
    border-color:#c7d2fe;
    color:#3730a3;
  }
  body.app-logged .app-top-link.logout{
    background:#fff7f7;
    border-color:#fecaca;
    color:#991b1b;
  }
  body.app-logged main.container.app-container{
    padding-top:26px!important;
  }
}
@media (max-width:1100px){
  body.app-logged .app-top-menu{display:none;}
  body.app-logged .mobile-page-bottom-blocks{display:none;}
}


/* V182 — corrections ciblées après duplication V181. */
body.app-logged .app-shell{background:linear-gradient(180deg,#f8fafc 0%,#f4f6f8 100%);}
@media (min-width:1101px){
  body.app-logged .sidebar{padding-right:0!important;}
  body.app-logged .sidebar-main-scroll{padding-top:2px!important;}
  body.app-logged .sidebar-menu-zone{gap:0!important;}
  body.app-logged .user-nav-accordion-stack{
    margin-right:0!important;
    border:1px solid rgba(15,23,42,.08)!important;
    border-right:0!important;
    border-radius:18px 0 0 18px!important;
    overflow:hidden;
    background:#fff;
    box-shadow:0 14px 34px rgba(15,23,42,.045);
  }
  body.app-logged .sidebar-dashboard-menu-entry{
    margin:0!important;
    border-bottom:1px solid rgba(15,23,42,.07)!important;
  }
  body.app-logged .sidebar-dashboard-menu-entry .side-link{
    min-height:48px;
    border:0!important;
    border-radius:0!important;
    background:#fff!important;
    color:#0f172a!important;
    box-shadow:none!important;
    padding:11px 14px!important;
  }
  body.app-logged .sidebar-dashboard-menu-entry .side-link:hover{
    background:#f8fafc!important;
  }
  body.app-logged .sidebar-dashboard-menu-entry .side-link.active{
    background:#eff6ff!important;
    color:#075985!important;
    border-color:transparent!important;
  }
  body.app-logged .side-icon,
  body.app-logged .sidebar-dashboard-menu-entry .side-link .side-icon,
  body.app-logged .user-nav-accordion-panel .side-icon{
    width:27px!important;
    height:27px!important;
    min-width:27px!important;
    border-radius:10px!important;
    display:inline-grid!important;
    place-items:center!important;
    font-size:14px!important;
    line-height:1!important;
    background:linear-gradient(180deg,#f8fafc,#eef2f7)!important;
    color:#0f172a!important;
    border:1px solid rgba(15,23,42,.06);
  }
  body.app-logged .side-link.active .side-icon,
  body.app-logged .user-nav-accordion-panel .side-link.active .side-icon,
  body.app-logged .sidebar-dashboard-menu-entry .side-link.active .side-icon{
    background:#dbeafe!important;
    color:#075985!important;
    border-color:#bfdbfe!important;
  }
  body.app-logged .user-nav-accordion + .user-nav-accordion{border-top:1px solid rgba(15,23,42,.07)!important;}
  body.app-logged .user-nav-accordion-summary{padding:11px 14px!important;}
  body.app-logged .user-nav-accordion-panel{padding:8px 10px 12px!important;}
  body.app-logged .user-nav-accordion-panel .side-link{gap:9px;}

  body.app-logged .app-top-menu{
    display:grid;
    grid-template-columns:minmax(180px,1fr) auto;
    align-items:center;
    gap:18px;
  }
  body.app-logged .app-top-context{display:grid;gap:1px;min-width:0;}
  body.app-logged .app-top-context strong{font-size:13px;font-weight:600;color:#0f172a;line-height:1.2;}
  body.app-logged .app-top-context span{font-size:11px;font-weight:600;color:#64748b;line-height:1.2;}
  body.app-logged .app-top-actions{display:flex;align-items:center;gap:9px;justify-content:flex-end;flex-wrap:nowrap;min-width:0;}
  body.app-logged .app-user-menu{position:relative;}
  body.app-logged .app-user-menu-summary{
    list-style:none;
    cursor:pointer;
    min-height:42px;
    display:flex;
    align-items:center;
    gap:10px;
    padding:3px 10px 3px 3px;
    border:1px solid rgba(15,23,42,.10);
    border-radius:999px;
    background:#fff;
    box-shadow:0 10px 24px rgba(15,23,42,.045);
  }
  body.app-logged .app-user-menu-summary::-webkit-details-marker{display:none;}
  body.app-logged .app-user-menu[open] .app-user-menu-summary{border-color:#bfdbfe;background:#f8fbff;}
  body.app-logged .app-user-menu-chevron{width:21px;height:21px;display:grid;place-items:center;border-radius:999px;background:#f1f5f9;color:#64748b;font-weight:600;transition:transform .15s ease;}
  body.app-logged .app-user-menu[open] .app-user-menu-chevron{transform:rotate(180deg);background:#dbeafe;color:#075985;}
  body.app-logged .app-user-menu-panel{
    position:absolute;
    right:0;
    top:calc(100% + 10px);
    width:230px;
    display:grid;
    gap:4px;
    padding:8px;
    border:1px solid rgba(15,23,42,.10);
    border-radius:18px;
    background:#fff;
    box-shadow:0 24px 54px rgba(15,23,42,.14);
    z-index:50;
  }
  body.app-logged .app-user-menu-panel a{
    display:flex;align-items:center;gap:9px;
    min-height:40px;
    padding:8px 10px;
    border-radius:12px;
    text-decoration:none;
    color:#334155;
    font-size:13px;
    font-weight:600;
  }
  body.app-logged .app-user-menu-panel a:hover{background:#f8fafc;color:#0f172a;}
  body.app-logged .app-user-menu-panel a.logout{color:#991b1b;}
  body.app-logged .app-user-menu-panel a.logout:hover{background:#fff7f7;}
  body.app-logged .app-top-lang{margin-left:12px;display:flex;align-items:center;}
  body.app-logged .app-top-lang select{min-width:72px;text-align:center;padding:0 28px 0 14px;}
}

@media(max-width:1280px) and (min-width:1101px){
  body.app-logged .app-top-context span{display:none;}
  body.app-logged .app-top-account-text strong{max-width:190px;}
}
@media (max-width:1100px){
  body.app-logged .app-top-menu{display:none;}
  body.app-logged .mobile-page-bottom-blocks{display:none;}
}

body .account-summary-grid{display:grid;grid-template-columns:1.5fr repeat(3,minmax(160px,1fr));gap:14px;margin-bottom:16px;}
body .account-identity-card{display:flex;align-items:center;gap:14px;min-height:110px;}
body .account-identity-card h2{margin:0 0 4px;font-size:1.15rem;}
body .account-avatar-lg{width:58px;height:58px;border-radius:22px;background:#111827;color:#fff;display:grid;place-items:center;font-weight:600;font-size:1.05rem;box-shadow:0 18px 34px rgba(15,23,42,.18);}
body .account-metric{display:grid;gap:7px;align-content:center;min-height:110px;}
body .account-metric span{color:#64748b;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.11em;}
body .account-metric strong{color:#0f172a;font-size:1.02rem;line-height:1.2;}
body .account-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr) minmax(260px,.55fr);gap:16px;align-items:start;}
body .account-card{min-height:100%;}
body .form-help{margin:7px 0 0;color:#64748b;font-size:.82rem;font-weight:600;line-height:1.45;}
body .account-data-list{display:grid;gap:12px;margin:12px 0 18px;}
body .account-data-list div{padding:10px 0;border-bottom:1px solid var(--line);}
body .account-data-list dt{color:#64748b;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.1em;}
body .account-data-list dd{margin:4px 0 0;color:#0f172a;font-weight:600;word-break:break-word;}
body .account-card-actions{display:flex;gap:8px;flex-wrap:wrap;}
body .btn.danger.ghost{border-color:#fecaca;color:#991b1b;background:#fff7f7;}
@media(max-width:1180px){body .account-summary-grid{grid-template-columns:1fr 1fr;}body .account-layout{grid-template-columns:1fr;}}
@media(max-width:720px){body .account-summary-grid{grid-template-columns:1fr;}body .account-head .head-actions{width:100%;}body .account-head .head-actions .btn{width:100%;}}


/* V183 — menu gauche harmonisé + compte utilisateur + langue alignée à droite.
   Le tableau de bord rejoint le bloc menu, la déconnexion passe dans le menu compte. */
body.app-logged .app-shell{
  background:linear-gradient(180deg,#f8fafc 0%,#f4f6f8 100%);
}
@media (min-width:1101px){
  body.app-logged .sidebar,body.app-logged .sidebar{
    --sidebar-ink:#0f172a;
    padding:18px 0 18px 16px!important;
    gap:14px!important;
    border-right:1px solid rgba(15,23,42,.08);
    background:linear-gradient(180deg,#ffffff 0%,#fbfdff 100%);
    box-shadow:10px 0 34px rgba(15,23,42,.035);
  }
  body.app-logged .side-brand{
    margin-right:16px;
    padding:0 0 16px 0!important;
    border-bottom:0!important;
  }
  body.app-logged .side-brand .brand-mark{
    width:38px;height:38px;border-radius:15px;
  }
  body.app-logged .side-brand .brand-text{
    font-size:21px;
  }
  body.app-logged .sidebar-top-fixed{
    padding-right:16px;
  }
  body.app-logged .sidebar-search{
    margin:0!important;
  }
  body.app-logged .sidebar-search input{
    height:40px;
    border-color:rgba(148,163,184,.28);
    background:#f8fafc;
    box-shadow:inset 0 1px 0 rgba(255,255,255,.7);
  }
  body.app-logged .sidebar-search button{
    height:40px;width:40px;border-radius:13px;
  }
  body.app-logged .sidebar-main-scroll{
    border-top:0!important;
    padding:4px 0 14px 0!important;
    scrollbar-gutter:auto!important;
  }
  body.app-logged .sidebar-menu-zone{
    gap:8px!important;
    padding:0!important;
  }
  body.app-logged .sidebar-menu-zone-title{
    display:none!important;
  }
  body.app-logged .sidebar-dashboard-menu-entry,body.app-logged .sidebar-dashboard-menu-entry{
    margin:0 16px 2px 0!important;
  }
  body.app-logged .sidebar-dashboard-menu-entry .side-link{
    min-height:46px;
    border:1px solid rgba(15,23,42,.08)!important;
    border-radius:16px!important;
    background:#111827!important;
    color:#fff!important;
    box-shadow:0 16px 30px rgba(15,23,42,.14);
  }
  body.app-logged .sidebar-dashboard-menu-entry .side-link .side-icon{
    background:rgba(255,255,255,.14)!important;
    color:#fff!important;
  }
  body.app-logged .sidebar-dashboard-menu-entry .side-link.active{
    background:linear-gradient(135deg,#111827,#1f2937)!important;
    border-color:rgba(255,255,255,.18)!important;
  }
  body.app-logged .user-nav-accordion-stack,body.app-logged .user-nav-accordion-stack{
    margin-right:0!important;
    border:1px solid rgba(15,23,42,.07)!important;
    border-right:0!important;
    border-radius:18px 0 0 18px!important;
    overflow:hidden;
    background:#fff;
    box-shadow:0 14px 34px rgba(15,23,42,.04);
  }
  body.app-logged .user-nav-accordion{
    border:0!important;
    border-radius:0!important;
    background:#fff!important;
    box-shadow:none!important;
  }
  body.app-logged .user-nav-accordion + .user-nav-accordion{
    border-top:1px solid rgba(15,23,42,.07)!important;
  }
  body.app-logged .user-nav-accordion-summary{
    min-height:46px!important;
    padding:11px 14px!important;
    background:#fff;
  }
  body.app-logged .user-nav-accordion[open] .user-nav-accordion-summary{
    background:#f8fafc;
  }
  body.app-logged .user-nav-accordion-title strong{
    color:#0f172a;
    font-size:11px;
    letter-spacing:.11em;
  }
  body.app-logged .user-nav-accordion-title small{
    color:#64748b;
    font-size:10.5px;
    max-width:188px;
  }
  body.app-logged .user-nav-accordion-chevron{
    width:23px;height:23px;
    background:#f1f5f9;
    color:#64748b;
  }
  body.app-logged .user-nav-accordion[open] .user-nav-accordion-chevron{
    background:#e0f2fe;
    color:#0369a1;
  }
  body.app-logged .user-nav-accordion-panel{
    padding:7px 10px 12px 10px!important;
    gap:3px!important;
    background:#fbfdff!important;
    border-top:1px solid rgba(15,23,42,.045)!important;
  }
  body.app-logged .user-nav-accordion-panel .side-link{
    min-height:36px;
    padding:7px 9px;
    border-radius:11px;
    color:#334155;
    font-size:13.5px;
  }
  body.app-logged .user-nav-accordion-panel .side-link:hover{
    background:#eef2ff;
    color:#1e293b;
  }
  body.app-logged .user-nav-accordion-panel .side-link.active{
    background:#e0f2fe;
    color:#075985;
  }
  body.app-logged .user-nav-accordion-panel .side-icon{
    width:22px;height:22px;border-radius:8px;
    font-size:12px;
    background:#eef2f7;
  }
  body.app-logged .side-bottom-blocks,
  body.app-logged .side-footer,
  body.app-logged .menu-highlights,
  body.app-logged .sidebar-admin-shortcut,
  body.app-logged .sidebar-lang{
    display:none!important;
  }
  body.app-logged .main-shell{
    display:grid!important;
    grid-template-rows:auto minmax(0,1fr);
    min-height:100vh;
  }
  body.app-logged .app-top-menu{
    position:sticky;
    top:0;
    z-index:18;
    min-height:68px;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:18px;
    padding:12px clamp(24px,2.4vw,38px);
    border-bottom:1px solid rgba(15,23,42,.08);
    background:rgba(255,255,255,.88);
    backdrop-filter:saturate(1.25) blur(14px);
  }
  body.app-logged .app-top-account{
    display:flex;
    align-items:center;
    gap:11px;
    min-width:0;
  }
  body.app-logged .app-top-avatar{
    width:38px;height:38px;border-radius:999px;
    display:grid;place-items:center;
    background:#111827;color:#fff;
    font-weight:600;
    box-shadow:0 12px 26px rgba(15,23,42,.16);
  }
  body.app-logged .app-top-account-text{
    display:grid;
    gap:1px;
    min-width:0;
  }
  body.app-logged .app-top-account-text strong{
    max-width:280px;
    overflow:hidden;
    text-overflow:ellipsis;
    white-space:nowrap;
    font-size:14px;
    line-height:1.15;
    color:#0f172a;
  }
  body.app-logged .app-top-account-text em{
    font-style:normal;
    color:#64748b;
    font-size:11px;
    font-weight:600;
    text-transform:uppercase;
    letter-spacing:.09em;
  }
  body.app-logged .app-top-actions{
    display:flex;
    align-items:center;
    justify-content:flex-end;
    gap:9px;
    flex-wrap:wrap;
  }
  body.app-logged .app-top-lang select{
    height:36px;
    border-radius:999px;
    border-color:rgba(15,23,42,.11);
    background:#fff;
    font-size:12px;
    font-weight:600;
    padding-left:12px;
  }
  body.app-logged .app-top-link{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    min-height:36px;
    padding:0 13px;
    border-radius:999px;
    border:1px solid rgba(15,23,42,.10);
    background:#fff;
    color:#334155;
    text-decoration:none;
    font-size:13px;
    font-weight:600;
    white-space:nowrap;
  }
  body.app-logged .app-top-link:hover{
    border-color:#cbd5e1;
    background:#f8fafc;
  }
  body.app-logged .app-top-link.admin{
    background:#eef2ff;
    border-color:#c7d2fe;
    color:#3730a3;
  }
  body.app-logged .app-top-link.logout{
    background:#fff7f7;
    border-color:#fecaca;
    color:#991b1b;
  }
  body.app-logged main.container.app-container{
    padding-top:26px!important;
  }
}
@media (max-width:1100px){
  body.app-logged .app-top-menu{display:none;}
  body.app-logged .mobile-page-bottom-blocks{display:none;}
}


/* V183 — corrections ciblées après duplication V181. */
body.app-logged .app-shell{background:linear-gradient(180deg,#f8fafc 0%,#f4f6f8 100%);}
@media (min-width:1101px){
  body.app-logged .sidebar,body.app-logged .sidebar{padding-right:0!important;}
  body.app-logged .sidebar-main-scroll{padding-top:2px!important;}
  body.app-logged .sidebar-menu-zone{gap:0!important;}
  body.app-logged .user-nav-accordion-stack,body.app-logged .user-nav-accordion-stack{
    margin-right:0!important;
    border:1px solid rgba(15,23,42,.08)!important;
    border-right:0!important;
    border-radius:18px 0 0 18px!important;
    overflow:hidden;
    background:#fff;
    box-shadow:0 14px 34px rgba(15,23,42,.045);
  }
  body.app-logged .sidebar-dashboard-menu-entry,body.app-logged .sidebar-dashboard-menu-entry{
    margin:0!important;
    border-bottom:1px solid rgba(15,23,42,.07)!important;
  }
  body.app-logged .sidebar-dashboard-menu-entry .side-link{
    min-height:48px;
    border:0!important;
    border-radius:0!important;
    background:#fff!important;
    color:#0f172a!important;
    box-shadow:none!important;
    padding:11px 14px!important;
  }
  body.app-logged .sidebar-dashboard-menu-entry .side-link:hover{
    background:#f8fafc!important;
  }
  body.app-logged .sidebar-dashboard-menu-entry .side-link.active{
    background:#eff6ff!important;
    color:#075985!important;
    border-color:transparent!important;
  }
  body.app-logged .side-icon,
  body.app-logged .sidebar-dashboard-menu-entry .side-link .side-icon,
  body.app-logged .user-nav-accordion-panel .side-icon{
    width:27px!important;
    height:27px!important;
    min-width:27px!important;
    border-radius:10px!important;
    display:inline-grid!important;
    place-items:center!important;
    font-size:14px!important;
    line-height:1!important;
    background:linear-gradient(180deg,#f8fafc,#eef2f7)!important;
    color:#0f172a!important;
    border:1px solid rgba(15,23,42,.06);
  }
  body.app-logged .side-link.active .side-icon,
  body.app-logged .user-nav-accordion-panel .side-link.active .side-icon,
  body.app-logged .sidebar-dashboard-menu-entry .side-link.active .side-icon{
    background:#dbeafe!important;
    color:#075985!important;
    border-color:#bfdbfe!important;
  }
  body.app-logged .user-nav-accordion + .user-nav-accordion{border-top:1px solid rgba(15,23,42,.07)!important;}
  body.app-logged .user-nav-accordion-summary{padding:11px 14px!important;}
  body.app-logged .user-nav-accordion-panel{padding:8px 10px 12px!important;}
  body.app-logged .user-nav-accordion-panel .side-link{gap:9px;}

  body.app-logged .app-top-menu{
    display:grid;
    grid-template-columns:minmax(180px,1fr) auto;
    align-items:center;
    gap:18px;
  }
  body.app-logged .app-top-context{display:grid;gap:1px;min-width:0;}
  body.app-logged .app-top-context strong{font-size:13px;font-weight:600;color:#0f172a;line-height:1.2;}
  body.app-logged .app-top-context span{font-size:11px;font-weight:600;color:#64748b;line-height:1.2;}
  body.app-logged .app-top-actions{display:flex;align-items:center;gap:9px;justify-content:flex-end;flex-wrap:nowrap;min-width:0;}
  body.app-logged .app-user-menu{position:relative;}
  body.app-logged .app-user-menu-summary{
    list-style:none;
    cursor:pointer;
    min-height:42px;
    display:flex;
    align-items:center;
    gap:10px;
    padding:3px 10px 3px 3px;
    border:1px solid rgba(15,23,42,.10);
    border-radius:999px;
    background:#fff;
    box-shadow:0 10px 24px rgba(15,23,42,.045);
  }
  body.app-logged .app-user-menu-summary::-webkit-details-marker{display:none;}
  body.app-logged .app-user-menu[open] .app-user-menu-summary{border-color:#bfdbfe;background:#f8fbff;}
  body.app-logged .app-user-menu-chevron{width:21px;height:21px;display:grid;place-items:center;border-radius:999px;background:#f1f5f9;color:#64748b;font-weight:600;transition:transform .15s ease;}
  body.app-logged .app-user-menu[open] .app-user-menu-chevron{transform:rotate(180deg);background:#dbeafe;color:#075985;}
  body.app-logged .app-user-menu-panel{
    position:absolute;
    right:0;
    top:calc(100% + 10px);
    width:230px;
    display:grid;
    gap:4px;
    padding:8px;
    border:1px solid rgba(15,23,42,.10);
    border-radius:18px;
    background:#fff;
    box-shadow:0 24px 54px rgba(15,23,42,.14);
    z-index:50;
  }
  body.app-logged .app-user-menu-panel a{
    display:flex;align-items:center;gap:9px;
    min-height:40px;
    padding:8px 10px;
    border-radius:12px;
    text-decoration:none;
    color:#334155;
    font-size:13px;
    font-weight:600;
  }
  body.app-logged .app-user-menu-panel a:hover{background:#f8fafc;color:#0f172a;}
  body.app-logged .app-user-menu-panel a.logout{color:#991b1b;}
  body.app-logged .app-user-menu-panel a.logout:hover{background:#fff7f7;}
  body.app-logged .app-top-lang,body.app-logged .app-top-lang{margin-left:12px;display:flex;align-items:center;}
  body.app-logged .app-top-lang select{min-width:72px;text-align:center;padding:0 28px 0 14px;}
}

@media(max-width:1280px) and (min-width:1101px){
  body.app-logged .app-top-context span{display:none;}
  body.app-logged .app-top-account-text strong{max-width:190px;}
}
@media (max-width:1100px){
  body.app-logged .app-top-menu{display:none;}
  body.app-logged .mobile-page-bottom-blocks{display:none;}
}

body .account-summary-grid{display:grid;grid-template-columns:1.5fr repeat(3,minmax(160px,1fr));gap:14px;margin-bottom:16px;}
body .account-identity-card{display:flex;align-items:center;gap:14px;min-height:110px;}
body .account-identity-card h2{margin:0 0 4px;font-size:1.15rem;}
body .account-avatar-lg{width:58px;height:58px;border-radius:22px;background:#111827;color:#fff;display:grid;place-items:center;font-weight:600;font-size:1.05rem;box-shadow:0 18px 34px rgba(15,23,42,.18);}
body .account-metric{display:grid;gap:7px;align-content:center;min-height:110px;}
body .account-metric span{color:#64748b;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.11em;}
body .account-metric strong{color:#0f172a;font-size:1.02rem;line-height:1.2;}
body .account-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr) minmax(260px,.55fr);gap:16px;align-items:start;}
body .account-card{min-height:100%;}
body .form-help{margin:7px 0 0;color:#64748b;font-size:.82rem;font-weight:600;line-height:1.45;}
body .account-data-list{display:grid;gap:12px;margin:12px 0 18px;}
body .account-data-list div{padding:10px 0;border-bottom:1px solid var(--line);}
body .account-data-list dt{color:#64748b;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.1em;}
body .account-data-list dd{margin:4px 0 0;color:#0f172a;font-weight:600;word-break:break-word;}
body .account-card-actions{display:flex;gap:8px;flex-wrap:wrap;}
body .btn.danger.ghost{border-color:#fecaca;color:#991b1b;background:#fff7f7;}
@media(max-width:1180px){body .account-summary-grid{grid-template-columns:1fr 1fr;}body .account-layout{grid-template-columns:1fr;}}
@media(max-width:720px){body .account-summary-grid{grid-template-columns:1fr;}body .account-head .head-actions{width:100%;}body .account-head .head-actions .btn{width:100%;}}


/* V183 — compte verrouillé + sidebar bordée/arrondie + lecture menu renforcée. */
@media (min-width:1101px){
  body.app-logged .sidebar,body.app-logged .sidebar{
    padding:18px 14px 18px 16px!important;
    border-right:1px solid rgba(15,23,42,.14)!important;
    border-radius:0 24px 24px 0!important;
    box-shadow:14px 0 34px rgba(15,23,42,.045)!important;
  }
  body.app-logged .side-brand,
  body.app-logged .sidebar-top-fixed{
    margin-right:0!important;
    padding-right:0!important;
  }
  body.app-logged .sidebar-main-scroll{
    padding-right:0!important;
  }
  body.app-logged .user-nav-accordion-stack,body.app-logged .user-nav-accordion-stack{
    margin-right:0!important;
    border:1px solid rgba(15,23,42,.13)!important;
    border-right:1px solid rgba(15,23,42,.13)!important;
    border-radius:20px!important;
    overflow:hidden!important;
    box-shadow:0 16px 36px rgba(15,23,42,.055)!important;
  }
  body.app-logged .sidebar-dashboard-menu-entry .side-link,
  body.app-logged .user-nav-accordion-panel .side-link{
    font-size:14.25px!important;
    font-weight:600;
  }
  body.app-logged .sidebar-dashboard-menu-entry .side-link{
    min-height:49px!important;
  }
  body.app-logged .user-nav-accordion-summary{
    min-height:47px!important;
  }
  body.app-logged .user-nav-accordion-title strong{
    font-size:11.6px!important;
    letter-spacing:.105em!important;
  }
  body.app-logged .user-nav-accordion-title small{
    font-size:11px!important;
  }
  body.app-logged .side-icon,
  body.app-logged .sidebar-dashboard-menu-entry .side-link .side-icon,
  body.app-logged .user-nav-accordion-panel .side-icon{
    width:28px!important;
    height:28px!important;
    min-width:28px!important;
    font-size:14.5px!important;
    border-radius:11px!important;
    box-shadow:inset 0 1px 0 rgba(255,255,255,.75)!important;
  }
  body.app-logged .app-top-actions{
    margin-left:auto!important;
  }
  body.app-logged .app-top-lang,body.app-logged .app-top-lang{
    margin-left:auto!important;
    padding-left:14px!important;
    border-left:1px solid rgba(15,23,42,.08)!important;
  }
}
body .readonly-account-field{
  border:1px solid rgba(15,23,42,.10);
  border-radius:16px;
  background:#f8fafc;
  padding:13px 14px;
}
body .readonly-label{
  display:block;
  color:#64748b;
  font-size:11px;
  font-weight:600;
  text-transform:uppercase;
  letter-spacing:.11em;
  margin-bottom:5px;
}
body .readonly-value{
  display:block;
  color:#0f172a;
  font-size:14.5px;
  word-break:break-word;
}


/* V184 — portefeuille nettoyé sans liens blancs ni anciennes fiches */
body.route-portefeuille .portfolio-overview-actions{grid-template-columns:1fr;}
body.route-portefeuille .portfolio-metric,body.route-portefeuille .setup-action,body.route-portefeuille .portfolio-risk{cursor:default;}
body.route-portefeuille .portfolio-metric:hover,body.route-portefeuille .setup-action:hover,body.route-portefeuille .portfolio-risk:hover{transform:none;box-shadow:none;}


/* V185 — hotfix top menu restauré après passage V184.
   Régression corrigée : les styles du top menu étaient encore scopés sur data-ui-version="188".
   V185 remet un scope complet et conserve le portefeuille nettoyé. */
@media (min-width:1101px){
  body.app-logged .app-top-menu{
    display:grid!important;
    grid-template-columns:minmax(180px,1fr) auto;
    align-items:center;
    gap:18px;
    min-height:68px;
    padding:12px 24px;
    border-bottom:1px solid rgba(15,23,42,.08);
    background:rgba(255,255,255,.92);
    position:sticky;
    top:0;
    z-index:30;
    backdrop-filter:saturate(1.18) blur(12px);
  }
  body.app-logged .app-top-context{
    display:grid;
    gap:1px;
    min-width:0;
  }
  body.app-logged .app-top-context strong{
    font-size:13px;
    font-weight:600;
    color:#0f172a;
    line-height:1.2;
  }
  body.app-logged .app-top-context span{
    font-size:11px;
    font-weight:600;
    color:#64748b;
    line-height:1.2;
  }
  body.app-logged .app-top-actions{
    display:flex!important;
    align-items:center;
    justify-content:flex-end;
    gap:9px;
    flex-wrap:nowrap;
    min-width:0;
    margin-left:auto!important;
  }
  body.app-logged .app-top-link{
    min-height:38px;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    padding:0 13px;
    border:1px solid rgba(15,23,42,.09);
    border-radius:999px;
    background:#fff;
    color:#334155;
    text-decoration:none;
    font-size:13px;
    font-weight:600;
    white-space:nowrap;
  }
  body.app-logged .app-top-link:hover{
    background:#f8fafc;
    color:#0f172a;
  }
  body.app-logged .app-top-link.admin{
    background:#111827;
    border-color:#111827;
    color:#fff;
  }
  body.app-logged .app-user-menu{
    position:relative;
    flex:0 0 auto;
  }
  body.app-logged .app-user-menu-summary{
    list-style:none;
    cursor:pointer;
    min-height:42px;
    display:flex;
    align-items:center;
    gap:10px;
    max-width:290px;
    padding:3px 10px 3px 3px;
    border:1px solid rgba(15,23,42,.10);
    border-radius:999px;
    background:#fff;
    box-shadow:0 10px 24px rgba(15,23,42,.045);
  }
  body.app-logged .app-user-menu-summary::-webkit-details-marker{display:none;}
  body.app-logged .app-user-menu[open] .app-user-menu-summary{
    border-color:#bfdbfe;
    background:#f8fbff;
  }
  body.app-logged .app-top-avatar{
    width:36px;
    height:36px;
    border-radius:999px;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    flex:none;
    background:#111827;
    color:#fff;
    font-size:12px;
    font-weight:600;
    letter-spacing:.02em;
  }
  body.app-logged .app-top-account-text{
    display:grid;
    gap:0;
    min-width:0;
  }
  body.app-logged .app-top-account-text strong{
    display:block;
    max-width:210px;
    overflow:hidden;
    text-overflow:ellipsis;
    white-space:nowrap;
    font-size:13px;
    color:#0f172a;
    line-height:1.1;
  }
  body.app-logged .app-top-account-text em{
    display:block;
    margin-top:2px;
    color:#64748b;
    font-size:11px;
    font-style:normal;
    font-weight:600;
    line-height:1.1;
  }
  body.app-logged .app-user-menu-chevron{
    width:21px;
    height:21px;
    display:grid;
    place-items:center;
    border-radius:999px;
    flex:none;
    background:#f1f5f9;
    color:#64748b;
    font-weight:600;
    transition:transform .15s ease;
  }
  body.app-logged .app-user-menu[open] .app-user-menu-chevron{
    transform:rotate(180deg);
    background:#dbeafe;
    color:#075985;
  }
  body.app-logged .app-user-menu-panel{
    position:absolute;
    right:0;
    top:calc(100% + 10px);
    width:230px;
    display:grid;
    gap:4px;
    padding:8px;
    border:1px solid rgba(15,23,42,.10);
    border-radius:18px;
    background:#fff;
    box-shadow:0 24px 54px rgba(15,23,42,.14);
    z-index:70;
  }
  body.app-logged .app-user-menu-panel a{
    display:flex;
    align-items:center;
    gap:9px;
    min-height:40px;
    padding:8px 10px;
    border-radius:12px;
    text-decoration:none;
    color:#334155;
    font-size:13px;
    font-weight:600;
  }
  body.app-logged .app-user-menu-panel a:hover{background:#f8fafc;color:#0f172a;}
  body.app-logged .app-user-menu-panel a.logout{color:#991b1b;}
  body.app-logged .app-user-menu-panel a.logout:hover{background:#fff7f7;}
  body.app-logged .app-top-lang{
    margin-left:auto!important;
    padding-left:14px!important;
    border-left:1px solid rgba(15,23,42,.08)!important;
    display:flex!important;
    align-items:center;
    flex:0 0 auto;
  }
  body.app-logged .app-top-lang select{
    min-width:72px;
    height:38px;
    text-align:center;
    padding:0 28px 0 14px;
    border-radius:999px;
    font-weight:600;
  }

  body.app-logged .sidebar{
    padding:18px 14px 18px 16px!important;
    border-right:1px solid rgba(15,23,42,.14)!important;
    border-radius:0 24px 24px 0!important;
    box-shadow:14px 0 34px rgba(15,23,42,.045)!important;
  }
  body.app-logged .side-brand,
  body.app-logged .sidebar-top-fixed{
    margin-right:0!important;
    padding-right:0!important;
  }
  body.app-logged .sidebar-main-scroll{padding-right:0!important;}
  body.app-logged .user-nav-accordion-stack{
    margin-right:0!important;
    border:1px solid rgba(15,23,42,.13)!important;
    border-radius:20px!important;
    overflow:hidden!important;
    box-shadow:0 16px 36px rgba(15,23,42,.055)!important;
  }
  body.app-logged .sidebar-dashboard-menu-entry{
    padding:9px 10px!important;
    margin:0!important;
    border-bottom:1px solid rgba(15,23,42,.07)!important;
    border-radius:0!important;
    background:#fff!important;
    box-shadow:none!important;
  }
  body.app-logged .sidebar-dashboard-menu-entry .side-link,
  body.app-logged .user-nav-accordion-panel .side-link{
    font-size:14.25px!important;
    font-weight:600;
  }
  body.app-logged .sidebar-dashboard-menu-entry .side-link{min-height:49px!important;}
  body.app-logged .user-nav-accordion-summary{
    min-height:47px!important;
    padding:11px 14px!important;
  }
  body.app-logged .user-nav-accordion-panel{padding:8px 10px 12px!important;}
  body.app-logged .user-nav-accordion + .user-nav-accordion{border-top:1px solid rgba(15,23,42,.07)!important;}
  body.app-logged .user-nav-accordion-title strong{
    font-size:11.6px!important;
    letter-spacing:.105em!important;
  }
  body.app-logged .user-nav-accordion-title small{font-size:11px!important;}
  body.app-logged .side-icon,
  body.app-logged .sidebar-dashboard-menu-entry .side-link .side-icon,
  body.app-logged .user-nav-accordion-panel .side-icon{
    width:28px!important;
    height:28px!important;
    min-width:28px!important;
    font-size:14.5px!important;
    border-radius:11px!important;
    box-shadow:inset 0 1px 0 rgba(255,255,255,.75)!important;
  }
}
@media(max-width:1280px) and (min-width:1101px){
  body.app-logged .app-top-context span{display:none;}
  body.app-logged .app-top-account-text strong{max-width:190px;}
}
@media (max-width:1100px){
  body.app-logged .app-top-menu{display:none!important;}
  body.app-logged .mobile-page-bottom-blocks{display:none;}
}
body .account-summary-grid{display:grid;grid-template-columns:1.5fr repeat(3,minmax(160px,1fr));gap:14px;margin-bottom:16px;}
body .account-identity-card{display:flex;align-items:center;gap:14px;min-height:110px;}
body .account-identity-card h2{margin:0 0 4px;font-size:1.15rem;}
body .account-avatar-lg{width:58px;height:58px;border-radius:22px;background:#111827;color:#fff;display:grid;place-items:center;font-weight:600;font-size:1.05rem;box-shadow:0 18px 34px rgba(15,23,42,.18);}
body .account-metric{display:grid;gap:7px;align-content:center;min-height:110px;}
body .account-metric span{color:#64748b;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.11em;}
body .account-metric strong{color:#0f172a;font-size:1.02rem;line-height:1.2;}
body .account-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr) minmax(260px,.55fr);gap:16px;align-items:start;}
body .account-card{min-height:100%;}
body .form-help{margin:7px 0 0;color:#64748b;font-size:.82rem;font-weight:600;line-height:1.45;}
body .account-data-list{display:grid;gap:12px;margin:12px 0 18px;}
body .account-data-list div{padding:10px 0;border-bottom:1px solid var(--line);}
body .account-data-list dt{color:#64748b;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.1em;}
body .account-data-list dd{margin:4px 0 0;color:#0f172a;font-weight:600;word-break:break-word;}
body .account-card-actions{display:flex;gap:8px;flex-wrap:wrap;}
body .btn.danger.ghost{border-color:#fecaca;color:#991b1b;background:#fff7f7;}
body .readonly-account-field{border:1px solid rgba(15,23,42,.10);border-radius:16px;background:#f8fafc;padding:13px 14px;}
body .readonly-label{display:block;color:#64748b;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.11em;margin-bottom:5px;}
body .readonly-value{display:block;color:#0f172a;font-size:14.5px;word-break:break-word;}
@media(max-width:1180px){body .account-summary-grid{grid-template-columns:1fr 1fr;}body .account-layout{grid-template-columns:1fr;}}
@media(max-width:720px){body .account-summary-grid{grid-template-columns:1fr;}body .account-head .head-actions{width:100%;}body .account-head .head-actions .btn{width:100%;}}
body.route-portefeuille .portfolio-overview-actions{grid-template-columns:1fr;}
body.route-portefeuille .portfolio-metric,
body.route-portefeuille .setup-action,
body.route-portefeuille .portfolio-risk{cursor:default;}
body.route-portefeuille .portfolio-metric:hover,
body.route-portefeuille .setup-action:hover,
body.route-portefeuille .portfolio-risk:hover{transform:none;box-shadow:none;}


/* V186 — cohérence globale des pages visibles.
   Toutes les améliorations scindées par anciennes versions sont désormais réunies sous un seul scope.
   Objectif : même densité, mêmes cartes, mêmes boutons, mêmes filtres et aucune régression topbar/sidebar. */
body.app-logged{
  background:#f5f7fb;
}
body.app-logged .main-shell{
  min-width:0;
  background:linear-gradient(180deg,#f8fafc 0%,#f5f7fb 100%);
}
body.app-logged .app-container{
  width:min(1240px,calc(100vw - var(--sidebar) - 34px));
  max-width:1240px;
  padding:26px 24px 56px;
}
body.app-logged .page-head{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:18px;
  padding:22px 24px;
  margin:0 0 18px;
  border:1px solid rgba(15,23,42,.08);
  border-radius:24px;
  background:linear-gradient(135deg,#fff 0%,#f8fbff 100%);
  box-shadow:0 18px 46px rgba(15,23,42,.055);
}
body.app-logged .page-head > div{min-width:0;}
body.app-logged .page-head h1{
  margin:0;
  color:#0f172a;
  font-size:clamp(25px,2.25vw,34px);
  line-height:1.05;
  letter-spacing:-.055em;
}
body.app-logged .page-head p:not(.eyebrow){
  max-width:820px;
  margin:7px 0 0;
  color:#64748b;
  font-size:14px;
  line-height:1.5;
}
body.app-logged .eyebrow{
  margin:0 0 7px;
  color:#2563eb;
  font-size:11px;
  font-weight:600;
  letter-spacing:.13em;
  text-transform:uppercase;
}
body.app-logged .head-actions,
body.app-logged .page-actions,
body.app-logged .card-actions,
body.app-logged .compact-actions{
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:9px;
  flex-wrap:wrap;
}
body.app-logged .card,
body.app-logged .table-card,
body.app-logged .quick-panel,
body.app-logged .record-card,
body.app-logged .form-section{
  border:1px solid rgba(15,23,42,.08);
  border-radius:22px;
  background:#fff;
  box-shadow:0 16px 42px rgba(15,23,42,.045);
}
body.app-logged .app-container > .card + .card,
body.app-logged .app-container > .table-card + .card,
body.app-logged .app-container > .card + .table-card{
  margin-top:16px;
}
body.app-logged .grid,
body.app-logged .dash,
body.app-logged .row,
body.app-logged .stats,
body.app-logged .metric-row{
  gap:16px;
}
body.app-logged .stat,
body.app-logged .metric,
body.app-logged .quick-tile,
body.app-logged .setup-action,
body.app-logged .portfolio-metric,
body.app-logged .portfolio-risk{
  border-radius:18px;
  border-color:rgba(15,23,42,.08);
  background:linear-gradient(180deg,#fff,#fbfdff);
}
body.app-logged .filters,
body.app-logged .inline-filters,
body.app-logged .compact-filter-grid,
body.app-logged .ops-filter-card,
body.app-logged .activity-filter-card,
body.app-logged .security-filter-card{
  border-color:rgba(15,23,42,.08);
  border-radius:20px;
  background:#fff;
}
body.app-logged input,
body.app-logged select,
body.app-logged textarea{
  min-height:42px;
  border-radius:13px;
  border-color:rgba(15,23,42,.13);
  background:#fff;
}
body.app-logged textarea{min-height:96px;}
body.app-logged .btn,
body.app-logged button{
  min-height:40px;
  border-radius:13px;
  font-weight:600;
}
body.app-logged .btn.small{
  min-height:34px;
  border-radius:11px;
}
body.app-logged .table-card{
  overflow:auto;
}
body.app-logged table{
  border-collapse:separate;
  border-spacing:0;
}
body.app-logged th{
  background:#f8fafc;
  color:#475569;
  font-size:11px;
  font-weight:600;
  letter-spacing:.08em;
  text-transform:uppercase;
}
body.app-logged td,
body.app-logged th{
  border-bottom:1px solid rgba(15,23,42,.06);
}
body.app-logged tr:last-child td{border-bottom:0;}
body.app-logged .list-row,
body.app-logged .search-result-item,
body.app-logged .activity-item,
body.app-logged .priority-item,
body.app-logged .action-item{
  border-radius:18px;
  border-color:rgba(15,23,42,.08);
}
body.route-portefeuille .portfolio-overview-actions{grid-template-columns:1fr!important;}
body.route-portefeuille .portfolio-metric,
body.route-portefeuille .setup-action,
body.route-portefeuille .portfolio-risk{cursor:default!important;}
body.route-portefeuille .portfolio-metric:hover,
body.route-portefeuille .setup-action:hover,
body.route-portefeuille .portfolio-risk:hover{transform:none!important;box-shadow:none!important;}
@media(max-width:1320px) and (min-width:1101px){
  body.app-logged .app-container{width:calc(100vw - var(--sidebar) - 18px);padding-left:18px;padding-right:18px;}
}
@media(max-width:1100px){
  body.app-logged .app-container{width:100%;max-width:100%;padding:20px 16px 42px;}
  body.app-logged .page-head{display:block;padding:18px;margin-bottom:16px;border-radius:20px;}
  body.app-logged .page-head .head-actions{justify-content:flex-start;margin-top:13px;}
  body.app-logged .grid,
  body.app-logged .dash,
  body.app-logged .row,
  body.app-logged .stats,
  body.app-logged .metric-row{grid-template-columns:1fr!important;}
}
@media(max-width:620px){
  body.app-logged .app-container{padding:16px 12px 34px;}
  body.app-logged .page-head{padding:16px;border-radius:18px;}
  body.app-logged .page-head h1{font-size:25px;}
  body.app-logged .head-actions .btn,
  body.app-logged .head-actions button{width:100%;}
  body.app-logged .card,
  body.app-logged .form-section{padding:16px;border-radius:18px;}
}


/* V187 — navigation utilitaire et états actifs globaux.
   Le design est désormais cohérent, donc cette passe stabilise les zones qui guident réellement l'utilisateur. */
body.app-logged .app-top-actions{
  flex:1 1 auto;
  min-width:0;
}
body.app-logged .app-top-link.active,
body.app-logged .app-user-menu.active .app-user-menu-summary{
  color:#0f172a!important;
  background:#eef6ff!important;
  border-color:#bfdbfe!important;
  box-shadow:0 12px 28px rgba(37,99,235,.10)!important;
}
body.app-logged .sidebar{
  display:flex!important;
  flex-direction:column!important;
  gap:12px!important;
}
body.app-logged .sidebar-main-scroll{
  flex:1 1 auto!important;
  min-height:0!important;
}
body.app-logged .sidebar-utility-blocks{
  display:grid!important;
  gap:10px!important;
  margin-top:0!important;
  padding-top:10px!important;
  border-top:1px solid rgba(15,23,42,.08)!important;
}
body.app-logged .sidebar-utility-blocks .menu-highlights{
  margin:0!important;
  gap:8px!important;
}
body.app-logged .menu-utility-highlights .menu-highlight{
  padding:10px 11px!important;
  border-radius:16px!important;
}
body.app-logged .menu-utility-highlights .menu-highlight.active{
  border-color:#111827!important;
  background:linear-gradient(180deg,#111827,#1e293b)!important;
  color:#fff!important;
}
body.app-logged .menu-utility-highlights .menu-highlight.active span,
body.app-logged .menu-utility-highlights .menu-highlight.active em{
  color:rgba(255,255,255,.72)!important;
}
body.app-logged .menu-highlight.email{
  border-color:rgba(37,99,235,.18);
  background:linear-gradient(180deg,#fff,#f8fbff);
}
body.app-logged .menu-highlight.storage .menu-quota-bar{
  height:7px;
  margin-top:9px;
}
body.app-logged .empty-state,
body.app-logged .empty-card,
body.app-logged .compact-empty{
  border:1px dashed rgba(15,23,42,.16)!important;
  border-radius:18px!important;
  background:linear-gradient(180deg,#fff,#f8fafc)!important;
  padding:18px!important;
}
body.app-logged .errors{
  border-radius:16px!important;
  border:1px solid #fecaca!important;
  background:#fff7f7!important;
  color:#991b1b!important;
}
body.app-logged .success-card,
body.app-logged .warning-card,
body.app-logged .danger-card{
  border-radius:20px!important;
}
body.app-logged .form-actions,
body.app-logged .form-actions-sticky{
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:10px;
  flex-wrap:wrap;
}
body.app-admin .admin-sidebar{
  border-right:1px solid rgba(255,255,255,.12);
  border-radius:0 24px 24px 0;
}
body.app-admin .admin-topbar{
  border-radius:0 0 22px 22px;
}
body.app-admin .admin-lang{
  margin-left:auto;
}
@media(max-width:1100px){
  body.app-logged .sidebar-utility-blocks{display:none!important;}
  body.app-logged .mobile-page-bottom-blocks{display:block!important;}
  body.app-logged .mobile-page-bottom-blocks .menu-highlights{grid-template-columns:1fr!important;}
}
@media(max-width:620px){
  body.app-logged .form-actions,
  body.app-logged .form-actions-sticky{justify-content:stretch;}
  body.app-logged .form-actions .btn,
  body.app-logged .form-actions button,
  body.app-logged .form-actions-sticky .btn,
  body.app-logged .form-actions-sticky button{width:100%;}
}

/* V188 — correction spacing Priorités + cohérence pages opérationnelles visibles.
   La priorité n'est pas un composant isolé : les mêmes respirations sont appliquées
   aux pages voisines qui utilisent les blocs ops, filtres, tableaux et listes. */
body:is(.route-priorites,.route-priorities,.route-priorities-php) .priority-page-head,
body:is(.route-rappels,.route-reminders,.route-reminders-php,.route-interventions,.route-interventions-php) .ops-page-head{
  margin-bottom:22px;
  padding-bottom:4px;
}
body:is(.route-priorites,.route-priorities,.route-priorities-php) .priority-page-head p,
body:is(.route-rappels,.route-reminders,.route-reminders-php,.route-interventions,.route-interventions-php) .ops-page-head p{
  margin-bottom:0;
}
body:is(.route-priorites,.route-priorities,.route-priorities-php) .priority-control-stats,
body:is(.route-rappels,.route-reminders,.route-reminders-php,.route-interventions,.route-interventions-php) .ops-stats-grid{
  gap:14px;
  margin:0 0 18px;
}
body .ops-stat{
  min-height:92px;
  padding:16px 17px;
}
body .ops-stat span{
  max-width:100%;
  overflow-wrap:break-word;
}
body:is(.route-priorites,.route-priorities,.route-priorities-php) .ops-advice-card{
  margin:0 0 22px;
  padding:20px 22px;
}
body:is(.route-priorites,.route-priorities,.route-priorities-php) .priority-control-stats + .ops-advice-card{
  margin-top:2px;
}
body:is(.route-priorites,.route-priorities,.route-priorities-php) .priority-lane-grid{
  gap:18px;
  margin-top:22px;
}
body:is(.route-priorites,.route-priorities,.route-priorities-php) .priority-lane{
  padding:18px;
  min-height:240px;
}
body:is(.route-priorites,.route-priorities,.route-priorities-php) .priority-lane .section-head{
  align-items:flex-start;
  gap:12px;
  margin-bottom:14px;
  padding-bottom:12px;
  border-bottom:1px solid rgba(15,23,42,.06);
}
body:is(.route-priorites,.route-priorities,.route-priorities-php) .priority-lane .section-head h2{
  margin-bottom:5px;
}
body:is(.route-priorites,.route-priorities,.route-priorities-php) .priority-lane .section-head .muted{
  margin:0;
}
body:is(.route-priorites,.route-priorities,.route-priorities-php) .priority-feed{
  gap:12px;
}
body:is(.route-priorites,.route-priorities,.route-priorities-php) .priority-feed.compact{
  margin-top:0;
}
body:is(.route-priorites,.route-priorities,.route-priorities-php) .priority-item{
  padding:15px 16px;
  gap:13px;
}
body:is(.route-priorites,.route-priorities,.route-priorities-php) .ops-priority-feed .priority-date{
  margin-top:3px;
}
body:is(.route-priorites,.route-priorities,.route-priorities-php) .priority-list-card,
body:is(.route-priorites,.route-priorities,.route-priorities-php) .priority-list-card + .card{
  margin-top:24px;
}
body:is(.route-priorites,.route-priorities,.route-priorities-php) .priority-list-card .section-head,
body:is(.route-priorites,.route-priorities,.route-priorities-php) .priority-list-card + .card .section-head{
  margin-bottom:16px;
}
body:is(.route-priorites,.route-priorities,.route-priorities-php) .ops-resolution-grid{
  gap:14px;
  margin-top:4px;
}
body:is(.route-rappels,.route-reminders,.route-reminders-php,.route-interventions,.route-interventions-php) .ops-filter-card{
  margin:0 0 18px;
  padding:17px 18px;
}
body:is(.route-rappels,.route-reminders,.route-reminders-php,.route-interventions,.route-interventions-php) .ops-filter-grid{
  gap:13px;
}
body:is(.route-rappels,.route-reminders,.route-reminders-php,.route-interventions,.route-interventions-php) .ops-list-toolbar{
  margin:0 0 14px;
  gap:14px;
}
body:is(.route-rappels,.route-reminders,.route-reminders-php,.route-interventions,.route-interventions-php) .ops-list-toolbar .tabs,
body:is(.route-rappels,.route-reminders,.route-reminders-php,.route-interventions,.route-interventions-php) .ops-list-toolbar .tabs.mt{
  margin:0;
}
body:is(.route-rappels,.route-reminders,.route-reminders-php,.route-interventions,.route-interventions-php) .ops-table-card{
  margin-top:0;
}
body:is(.route-echeances,.route-deadlines,.route-deadlines-php) .deadlines-head,
body:is(.route-calendrier,.route-calendar,.route-calendar-php) .calendar-head{
  margin-bottom:22px;
}
body:is(.route-echeances,.route-deadlines,.route-deadlines-php) .deadlines-stats,
body:is(.route-calendrier,.route-calendar,.route-calendar-php) .calendar-stats{
  gap:14px;
  margin-bottom:18px;
}
body:is(.route-echeances,.route-deadlines,.route-deadlines-php) .deadlines-filters,
body:is(.route-calendrier,.route-calendar,.route-calendar-php) .calendar-filters{
  margin:0 0 18px;
  padding:17px 18px;
}
body:is(.route-echeances,.route-deadlines,.route-deadlines-php) .deadline-focus-nav{
  margin:0 0 18px;
  gap:10px;
}
body:is(.route-echeances,.route-deadlines,.route-deadlines-php) .deadlines-card,
body:is(.route-calendrier,.route-calendar,.route-calendar-php) .calendar-card{
  margin-top:0;
}
body .section-head.compact{
  gap:12px;
}
body .empty-state.compact-empty{
  padding:18px;
}
@media(max-width:1180px){
  body:is(.route-priorites,.route-priorities,.route-priorities-php) .priority-control-stats,
  body:is(.route-rappels,.route-reminders,.route-reminders-php,.route-interventions,.route-interventions-php) .ops-stats-grid{
    gap:12px;
  }
  body:is(.route-priorites,.route-priorities,.route-priorities-php) .priority-lane-grid{
    gap:16px;
  }
}
@media(max-width:720px){
  body:is(.route-priorites,.route-priorities,.route-priorities-php) .priority-page-head,
  body:is(.route-rappels,.route-reminders,.route-reminders-php,.route-interventions,.route-interventions-php) .ops-page-head,
  body:is(.route-echeances,.route-deadlines,.route-deadlines-php) .deadlines-head,
  body:is(.route-calendrier,.route-calendar,.route-calendar-php) .calendar-head{
    gap:14px;
    margin-bottom:18px;
  }
  body:is(.route-priorites,.route-priorities,.route-priorities-php) .priority-control-stats,
  body:is(.route-rappels,.route-reminders,.route-reminders-php,.route-interventions,.route-interventions-php) .ops-stats-grid,
  body:is(.route-echeances,.route-deadlines,.route-deadlines-php) .deadlines-stats,
  body:is(.route-calendrier,.route-calendar,.route-calendar-php) .calendar-stats{
    margin-bottom:16px;
  }
  body:is(.route-priorites,.route-priorities,.route-priorities-php) .ops-advice-card,
  body:is(.route-priorites,.route-priorities,.route-priorities-php) .priority-lane,
  body:is(.route-rappels,.route-reminders,.route-reminders-php,.route-interventions,.route-interventions-php) .ops-filter-card,
  body:is(.route-echeances,.route-deadlines,.route-deadlines-php) .deadlines-filters,
  body:is(.route-calendrier,.route-calendar,.route-calendar-php) .calendar-filters{
    padding:16px;
  }
  body:is(.route-priorites,.route-priorities,.route-priorities-php) .priority-topline{
    align-items:flex-start;
    flex-direction:column;
    gap:4px;
  }
}

/* V189 — consolidation UI sans scope de version.
   Les composants sont désormais pilotés par leurs classes et le contexte de page,
   pas par un attribut data-ui-version fragile. */
.ui-icon{width:18px;height:18px;display:block;fill:none;stroke:currentColor;flex:none}
.side-icon .ui-icon{width:16px;height:16px}
.global-search button .ui-icon{width:17px;height:17px}
.app-user-menu-chevron .ui-icon,.user-nav-accordion-chevron .ui-icon{width:14px;height:14px}

body.app-logged .page-head{
  padding:2px 2px 0;
  margin:0 0 22px;
  border:0;
  border-radius:0;
  background:transparent;
  box-shadow:none;
}
body.app-logged .page-head h1{font-size:clamp(27px,2.4vw,36px)}
body.app-logged .page-head p:not(.eyebrow){font-size:14.5px;line-height:1.55}
body.app-logged .card,
body.app-logged .feature,
body.app-logged .stat,
body.app-logged .quick-panel{
  border-radius:16px;
  border-color:rgba(15,23,42,.09);
  box-shadow:0 1px 2px rgba(15,23,42,.025),0 8px 22px rgba(15,23,42,.025);
}
body.app-logged .card{padding:20px}
body.app-logged .stat,
body.app-logged .quick-tile,
body.app-logged .setup-action,
body.app-logged .portfolio-metric,
body.app-logged .portfolio-risk{
  border-radius:14px;
  background:#fff;
  box-shadow:none;
}
body.app-logged .filters,
body.app-logged .inline-filters,
body.app-logged .compact-filter-grid,
body.app-logged .ops-filter-card,
body.app-logged .activity-filter-card,
body.app-logged .security-filter-card{
  border-radius:16px;
  box-shadow:none;
}
body.app-logged .section-head{margin-bottom:16px}
body.app-logged .section-head.compact{margin-bottom:14px}
body.app-logged .section-head h2{margin-bottom:4px}
body.app-logged .table-card{border-radius:16px;box-shadow:none}
body.app-logged .list-row,
body.app-logged .priority-item,
body.app-logged .action-item{border-radius:13px}

@media (min-width:1101px){
  body.app-logged .app-top-menu{min-height:64px;padding:10px 24px}
  body.app-logged .app-top-context strong{font-size:13.5px}
  body.app-logged .app-top-context span{font-size:12px;color:#64748b}
  body.app-logged .app-top-actions{flex:0 0 auto}
  body.app-logged .app-top-lang{margin-left:4px!important}
  body.app-logged .sidebar{border-radius:0 20px 20px 0!important;box-shadow:8px 0 24px rgba(15,23,42,.035)!important}
  body.app-logged .user-nav-accordion-stack{border-radius:16px!important;box-shadow:none!important}
  body.app-logged .side-icon,
  body.app-logged .sidebar-dashboard-menu-entry .side-link .side-icon,
  body.app-logged .user-nav-accordion-panel .side-icon{
    width:28px!important;height:28px!important;min-width:28px!important;border-radius:9px!important;box-shadow:none!important
  }
}

.ag-workflow-nav{
  display:grid;
  grid-template-columns:repeat(6,minmax(0,1fr));
  gap:8px;
  margin:0 0 20px;
  padding:8px;
  border:1px solid rgba(15,23,42,.09);
  border-radius:16px;
  background:#fff;
}
.ag-workflow-step{
  min-width:0;
  min-height:48px;
  display:flex;
  align-items:center;
  gap:8px;
  padding:9px 10px;
  border-radius:11px;
  color:#475569;
  text-decoration:none;
  font-size:12.5px;
  font-weight:600;
}
.ag-workflow-step:hover{background:#f8fafc;color:#0f172a}
.ag-workflow-step.active{background:#eff6ff;color:#1d4ed8}
.ag-workflow-index{width:22px;height:22px;display:grid;place-items:center;border-radius:999px;background:#f1f5f9;color:#64748b;font-size:10px;font-weight:600;flex:none}
.ag-workflow-step.active .ag-workflow-index{background:#dbeafe;color:#1d4ed8}
.ag-workflow-icon{width:16px;height:16px}

.dashboard-focus-metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:18px}
.dashboard-focus-metric{display:flex;align-items:center;gap:12px;min-height:84px;padding:16px;border:1px solid rgba(15,23,42,.09);border-radius:15px;background:#fff;text-decoration:none}
.dashboard-focus-metric>.ui-icon{width:22px;height:22px;color:#64748b}
.dashboard-focus-metric span{display:grid;gap:2px}
.dashboard-focus-metric strong{font-size:24px;line-height:1;color:#0f172a}
.dashboard-focus-metric em{font-style:normal;font-size:12px;font-weight:600;color:#64748b}
.dashboard-focus-metric.danger{border-color:#fecaca;background:#fffafa}.dashboard-focus-metric.danger>.ui-icon{color:#b91c1c}
.dashboard-focus-metric.warn{border-color:#fde68a;background:#fffdf5}.dashboard-focus-metric.warn>.ui-icon{color:#b45309}
.dashboard-primary-grid,.dashboard-secondary-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin-bottom:16px}
.dashboard-cycle-card{margin-bottom:16px}
.dashboard-action-list{display:grid;gap:8px}
.dashboard-action-row{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:56px;padding:11px 12px;border:1px solid rgba(15,23,42,.08);border-radius:12px;background:#fff;text-decoration:none}
.dashboard-action-row:hover{border-color:#cbd5e1;background:#f8fafc}
.dashboard-action-row.is-static{cursor:default}.dashboard-action-row.is-static:hover{background:#fff;border-color:rgba(15,23,42,.08)}
.dashboard-action-copy{display:grid;gap:3px;min-width:0}.dashboard-action-copy strong{font-size:13.5px;color:#0f172a}.dashboard-action-copy em{font-style:normal;font-size:12px;color:#64748b;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.dashboard-action-row>.ui-icon{width:16px;height:16px;color:#94a3b8}
.dashboard-cycle-strip{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:8px}
.dashboard-cycle-strip a{display:grid;gap:4px;padding:14px 12px;border:1px solid rgba(15,23,42,.08);border-radius:12px;background:#f8fafc;text-decoration:none}
.dashboard-cycle-strip a:hover{border-color:#bfdbfe;background:#eff6ff}
.dashboard-cycle-strip strong{font-size:22px;line-height:1;color:#0f172a}.dashboard-cycle-strip span{font-size:11.5px;font-weight:600;color:#64748b}
.dashboard-portfolio-compact{display:grid;grid-template-columns:150px minmax(0,1fr);gap:16px;align-items:stretch}
.dashboard-score{display:grid;place-content:center;text-align:center;min-height:150px;border:1px solid #fde68a;border-radius:14px;background:#fffdf5}.dashboard-score.ok{border-color:#bbf7d0;background:#f0fdf4}.dashboard-score.danger{border-color:#fecaca;background:#fffafa}
.dashboard-score strong{font-size:42px;line-height:1}.dashboard-score span{margin-top:7px;font-size:11.5px;font-weight:600;color:#64748b}
.dashboard-portfolio-compact dl{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:0}.dashboard-portfolio-compact dl>div{padding:12px;border:1px solid rgba(15,23,42,.08);border-radius:12px;background:#f8fafc}.dashboard-portfolio-compact dt{font-size:11px;font-weight:600;color:#64748b}.dashboard-portfolio-compact dd{margin:3px 0 0;font-size:22px;font-weight:600;color:#0f172a}
.dashboard-ops-columns{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.dashboard-ops-columns h3{margin:0 0 8px;font-size:13px}.dashboard-mini-row{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:9px 0;border-bottom:1px solid rgba(15,23,42,.07);text-decoration:none}.dashboard-mini-row:last-child{border-bottom:0}.dashboard-mini-row span{display:grid;gap:2px;min-width:0}.dashboard-mini-row strong{font-size:12.5px;color:#0f172a}.dashboard-mini-row em{font-size:11.5px;font-style:normal;color:#64748b}.dashboard-mini-row b{font-size:10.5px;color:#64748b;white-space:nowrap}
.dashboard-setup-bar{display:flex;align-items:center;justify-content:space-between;gap:16px;margin:0 0 16px;padding:14px 16px;border:1px solid rgba(15,23,42,.09);border-radius:14px;background:#fff}.dashboard-setup-bar>div{display:flex;align-items:center;gap:12px}.dashboard-setup-bar p{display:grid;gap:2px;margin:0}.dashboard-setup-bar p strong{font-size:13px}.dashboard-setup-bar p em{font-size:12px;font-style:normal;color:#64748b}.dashboard-setup-progress{width:92px;height:7px;border-radius:999px;background:#e2e8f0;overflow:hidden;flex:none}.dashboard-setup-progress i{display:block;width:var(--progress);height:100%;background:#2563eb}
.dashboard-quick-actions{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:10px}.dashboard-quick-actions>a{display:flex;align-items:center;gap:10px;min-height:72px;padding:13px;border:1px solid rgba(15,23,42,.09);border-radius:14px;background:#fff;text-decoration:none}.dashboard-quick-actions>a:hover{border-color:#bfdbfe;background:#f8fbff}.dashboard-quick-actions .ui-icon{width:20px;height:20px;color:#475569}.dashboard-quick-actions span{display:grid;gap:2px}.dashboard-quick-actions strong{font-size:12.5px}.dashboard-quick-actions em{font-size:11px;font-style:normal;color:#64748b}

@media(max-width:1180px){
  .ag-workflow-nav{grid-template-columns:repeat(3,minmax(0,1fr))}
  .dashboard-cycle-strip{grid-template-columns:repeat(3,minmax(0,1fr))}
  .dashboard-quick-actions{grid-template-columns:repeat(3,minmax(0,1fr))}
}
@media(max-width:800px){
  body.app-logged .page-head{display:block;padding:0;margin-bottom:18px}
  body.app-logged .page-head .head-actions{margin-top:14px}
  .dashboard-focus-metrics,.dashboard-primary-grid,.dashboard-secondary-grid{grid-template-columns:1fr 1fr}
  .dashboard-primary-grid,.dashboard-secondary-grid{gap:12px}
  .dashboard-cycle-strip{grid-template-columns:repeat(2,minmax(0,1fr))}
  .dashboard-portfolio-compact,.dashboard-ops-columns{grid-template-columns:1fr}
  .dashboard-quick-actions{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:560px){
  .ag-workflow-nav{display:flex;overflow-x:auto;scroll-snap-type:x proximity}.ag-workflow-step{min-width:165px;scroll-snap-align:start}
  .dashboard-focus-metrics,.dashboard-primary-grid,.dashboard-secondary-grid{grid-template-columns:1fr}
  .dashboard-cycle-strip,.dashboard-quick-actions{grid-template-columns:1fr}
  .dashboard-setup-bar{align-items:stretch;flex-direction:column}.dashboard-setup-bar .btn{width:100%}
}


/* V190 — front controller unique et finition d'accessibilité.
   Le rendu reste indépendant de la version ; ce bloc ne contient que des règles durables. */
:root{--focus-ring:0 0 0 4px rgba(37,99,235,.14)}
:where(.btn,.sidebar-link,.app-top-link,.user-menu-trigger,.language-switcher select,.quick-tile,.dashboard-quick-actions a):focus-visible{
    outline:3px solid rgba(37,99,235,.32);
    outline-offset:3px;
}
@media (prefers-reduced-motion:reduce){
    *,*::before,*::after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}
}

/* V192 — réponses techniques traçables et UI compatible CSP stricte */
.response-error-card{max-width:760px;margin:clamp(32px,8vh,96px) auto;}
.response-reference{font-size:13px;color:var(--muted,#64748b);}
.response-reference code{display:inline-block;padding:4px 8px;border:1px solid var(--line,#e2e8f0);border-radius:8px;background:var(--soft,#f8fafc);font-size:12px;letter-spacing:.03em;}
.email-preview-faux-link{cursor:default;user-select:none;}

/* V193 — stockage privé et téléchargements avec contrôle d’intégrité ; aucun changement visuel. */

/* V194 — expiration, rotation et révocation centralisées des sessions ; aucun changement visuel. */

/* V195 — confirmation récente de l’identité avant les opérations sensibles. */
.reauth-layout {
  display: grid;
  grid-template-columns: minmax(0, 1.45fr) minmax(260px, .75fr);
  gap: 22px;
  align-items: start;
}
.reauth-card { max-width: none; }
.reauth-explainer { position: sticky; top: 92px; }
.reauth-explainer .check-list { margin-top: 16px; }
.account-security-card .account-card-actions { flex-wrap: wrap; }
@media (max-width: 900px) {
  .reauth-layout { grid-template-columns: 1fr; }
  .reauth-explainer { position: static; }
}

/* V200 — refonte typographique et allègement visuel global.
   Une hiérarchie courte remplace les anciens poids 750–950 :
   texte 400, interface 500, emphase 600, chiffres structurants 700. */
:root{
  --bg:#f6f7f9;
  --panel:#ffffff;
  --panel-soft:#fafbfc;
  --text:#182230;
  --muted:#667085;
  --soft:#98a2b3;
  --line:#e7eaf0;
  --line-strong:#d7dce5;
  --brand:#182230;
  --accent:#2563eb;
  --accent-soft:#f1f6ff;
  --radius:12px;
  --radius-sm:9px;
  --shadow:0 1px 2px rgba(16,24,40,.025),0 4px 12px rgba(16,24,40,.025);
  --sidebar:276px;
}
html,body{background:var(--bg)}
body{
  color:var(--text);
  font-size:15px;
  line-height:1.56;
  font-weight:400;
  letter-spacing:0;
}
body :where(strong,b){font-weight:600}
body :where(p,li,dd,td,input,select,textarea){font-weight:400}
body :where(.muted,.soft,.form-help,.priority-meta,.activity-meta){font-weight:400}

/* Titres : contraste par taille et espace, pas par graisse excessive. */
h1,h2,h3,h4,h5,h6{
  color:var(--text);
  font-weight:600;
  letter-spacing:-.018em;
  line-height:1.24;
}
h1{font-size:clamp(28px,2.7vw,36px);margin:0 0 8px}
h2{font-size:21px;margin:0 0 14px}
h3{font-size:16px;margin:16px 0 8px;letter-spacing:-.01em}
h4{font-size:14px;margin:14px 0 7px}
p{color:#475467;line-height:1.62}
.eyebrow{
  margin:0 0 6px;
  color:#7b8493;
  font-size:11px;
  font-weight:600;
  letter-spacing:.085em;
  text-transform:uppercase;
}
.muted{color:var(--muted);font-size:13.5px;line-height:1.55}

/* Structure principale plus calme et plus dense. */
.container{max-width:1220px;padding:30px 30px 52px}
.page-head{gap:18px;margin-bottom:20px}
body.app-logged .page-head{margin-bottom:20px;padding:0}
body.app-logged .page-head h1{font-size:clamp(27px,2.3vw,34px);font-weight:600;letter-spacing:-.022em}
body.app-logged .page-head p:not(.eyebrow){font-size:14px;line-height:1.55;color:var(--muted)}
.section-head{gap:14px;margin-bottom:14px}
.section-head h2{font-size:19px}
.mt{margin-top:18px}
.grid{gap:14px;margin-top:18px}
.dash{gap:16px}
.row{gap:12px}

/* Cartes : frontières fines, ombres presque absentes, rayons contenus. */
.card,.feature,.stat,
body.app-logged .card,
body.app-logged .feature,
body.app-logged .stat{
  border-color:var(--line);
  border-radius:12px;
  box-shadow:var(--shadow);
  background:#fff;
}
.card,body.app-logged .card{padding:20px}
.feature{padding:17px}
.table-card,body.app-logged .table-card{border-radius:12px;box-shadow:none}
.list-row,
.priority-item,
.action-item,
body.app-logged .list-row,
body.app-logged .priority-item,
body.app-logged .action-item{border-radius:10px}
.empty-state,
body.app-logged .empty-state,
body.app-logged .empty-card,
body.app-logged .compact-empty{
  border-radius:11px!important;
  padding:17px!important;
  background:#fafbfc!important;
}
.success-card,.warning-card,.danger-card,
body.app-logged .success-card,
body.app-logged .warning-card,
body.app-logged .danger-card{border-radius:12px!important}

/* Navigation latérale : texte normal, actif lisible sans effet massif. */
.sidebar{
  gap:15px;
  padding:19px 14px;
  border-right:1px solid var(--line);
  border-radius:0 16px 16px 0;
  box-shadow:5px 0 18px rgba(16,24,40,.025);
}
.side-brand{padding:0 8px 13px}
.brand{font-weight:600;letter-spacing:-.015em}
.brand-text{font-size:19px;font-weight:600}
.brand-text span{font-weight:400}
.side-section{gap:3px}
.side-title{
  margin:1px 0 5px;
  padding:0 10px;
  color:#98a2b3;
  font-size:10.5px;
  font-weight:600;
  letter-spacing:.075em;
}
.side-link,
body.app-logged .sidebar .side-link,
body.app-logged .sidebar-dashboard-menu-entry .side-link{
  min-height:39px;
  gap:10px;
  padding:8px 10px;
  border-radius:9px;
  color:#475467;
  font-size:14px;
  font-weight:500;
}
.side-link:hover{background:#f6f7f9;color:#182230;transform:none}
.side-link.active,
body.app-logged .sidebar .side-link.active{
  background:#eef4ff;
  color:#2459b8;
  font-weight:600;
}
.side-icon,
body.app-logged .side-icon,
body.app-logged .sidebar-dashboard-menu-entry .side-link .side-icon,
body.app-logged .user-nav-accordion-panel .side-icon{
  width:27px!important;
  height:27px!important;
  min-width:27px!important;
  border-radius:8px!important;
  background:#f2f4f7;
  color:#667085;
  box-shadow:none!important;
}
.side-link.active .side-icon{background:#dfeaff;color:#2459b8}
.user-nav-accordion-stack{border-radius:12px!important}
.user-nav-accordion-summary{font-weight:500!important}
.user-nav-accordion-panel{padding:3px 5px 6px!important}
.menu-highlight strong,.menu-highlight span,.menu-highlight em{font-weight:500!important}
body.app-logged .menu-utility-highlights .menu-highlight{padding:9px 10px!important;border-radius:11px!important}

/* Barre supérieure : contexte discret et actions compactes. */
.topbar{min-height:64px;padding:0 26px}
body.app-logged .app-top-menu{
  min-height:62px;
  padding:9px 24px;
  border-bottom:1px solid var(--line);
  border-radius:0;
  box-shadow:none;
  background:rgba(255,255,255,.92);
}
body.app-logged .app-top-context strong{font-size:13px;font-weight:600;color:#344054}
body.app-logged .app-top-context span{font-size:12px;font-weight:400;color:#98a2b3}
.app-top-link,.app-user-menu-trigger,.user-menu-trigger{font-weight:500!important}
.app-top-link.active{font-weight:600!important}
.language-switcher select,.app-top-lang select{
  height:37px;
  border-radius:9px;
  font-size:12.5px;
  font-weight:500;
}

/* Boutons et contrôles : priorité donnée au libellé, pas à l'épaisseur. */
.btn,button{
  min-height:40px;
  border-radius:9px;
  padding:10px 14px;
  font-size:13.5px;
  font-weight:600;
  box-shadow:none;
  transition:background .12s ease,border-color .12s ease,color .12s ease;
}
.btn:hover,button:hover{transform:none}
.btn.small{min-height:34px;padding:7px 10px;font-size:12.5px}
.btn.secondary{color:#344054;background:#fff}
.link-button{min-height:auto;font-weight:500}
label{margin:13px 0 6px;color:#344054;font-size:13px;font-weight:500}
input[type=text],input[type=email],input[type=password],input[type=date],input[type=time],input[type=number],input[type=file],input[type=search],select,textarea{
  border-radius:9px;
  padding:10px 12px;
  font-size:14px;
  color:#344054;
}
textarea{min-height:108px}
.checklist-lite label{font-weight:400}

/* Données : chiffres encore visibles, libellés beaucoup plus légers. */
.stats{gap:10px;margin-bottom:18px}
.stat{padding:15px}
.stat span{font-size:27px;font-weight:700;letter-spacing:-.035em;margin-bottom:6px}
.stat strong{font-size:13px;font-weight:500;color:#344054}
.stat em{font-size:12px;font-weight:400}
.metric{border-radius:10px;padding:13px}
.metric span{font-size:21px;font-weight:700;letter-spacing:-.025em}
.metric strong{font-size:11px;font-weight:500;letter-spacing:.045em}
.dashboard-focus-metric strong,
.dashboard-cycle-strip strong,
.dashboard-score strong,
.dashboard-portfolio-compact dd,
.portfolio-metric strong,
.coproperty-sheet-metrics strong{font-weight:700!important}
.dashboard-focus-metric em,
.dashboard-cycle-strip span,
.dashboard-score span,
.dashboard-portfolio-compact dt,
.portfolio-metric span,
.coproperty-sheet-metrics span{font-weight:500!important}

/* Tableaux et listes : moins de capitales, densité stable. */
table{font-size:13.5px}
th,td{padding:12px 14px}
th{
  color:#667085;
  background:#fafbfc;
  font-size:11.5px;
  font-weight:600;
  letter-spacing:.035em;
  text-transform:none;
}
td.actions a{font-weight:500}
.list{gap:8px}
.list-row{padding:12px}
.pill,.badge{
  padding:5px 9px;
  font-size:11.5px;
  font-weight:500;
}
.tabs{gap:6px;margin-bottom:15px}
.tabs a{padding:7px 11px;border-radius:8px;font-size:13px;font-weight:500}
.tabs a.active{font-weight:600}
.details dt{font-weight:500;color:#667085}
.details dd{color:#344054}
.alert{border-radius:10px;font-size:13.5px;font-weight:500}
.errors{border-radius:10px!important}

/* Workflows et tableaux de bord : repères légers, priorité au contenu. */
.ag-workflow-nav{gap:6px;padding:6px;border-radius:11px}
.ag-workflow-step{min-height:44px;padding:8px;border-radius:8px;font-size:12px;font-weight:500}
.ag-workflow-step.active{font-weight:600}
.ag-workflow-index{font-weight:600}
.dashboard-focus-metrics{gap:10px;margin-bottom:16px}
.dashboard-focus-metric{min-height:78px;padding:14px;border-radius:11px}
.dashboard-action-row{min-height:52px;padding:10px 11px;border-radius:9px}
.dashboard-action-copy strong{font-weight:500}
.dashboard-cycle-strip a{padding:12px 11px;border-radius:9px}
.dashboard-portfolio-compact dl>div{padding:11px;border-radius:9px}
.dashboard-quick-actions>a{min-height:66px;padding:11px;border-radius:10px}
.dashboard-quick-actions strong{font-weight:500}
.dashboard-mini-row strong{font-weight:500}
.dashboard-mini-row b{font-weight:500}
.dashboard-setup-bar{padding:12px 14px;border-radius:10px}

/* Priorités et opérations : niveaux visibles par couleur, pas par graisse. */
.priority-topline strong{font-weight:600}
.priority-topline em,.priority-date{font-weight:500}
.priority-mini-stats strong{font-weight:700}
.ops-stat strong,.ops-stat b{font-weight:500}
.ops-stat span{font-weight:700}
.activity-line strong{font-weight:600}
.activity-line code{font-weight:400}

/* Administration : même échelle typographique que l'application. */
.app-admin.admin-console{
  --admin-bg:#111827;
  --admin-panel:#172033;
  --admin-panel-2:#1d2940;
  --admin-line:rgba(203,213,225,.14);
  --admin-text:#f8fafc;
  --admin-muted:#a9b4c6;
  background:linear-gradient(145deg,#0f172a,#172033 54%,#111827);
}
.admin-sidebar{gap:15px;padding:20px 16px;border-radius:0 16px 16px 0!important;box-shadow:12px 0 32px rgba(0,0,0,.13)}
.admin-brand{padding:8px 9px 14px}
.admin-brand-mark{width:42px;height:42px;border-radius:13px;box-shadow:none}
.admin-brand strong{font-size:17px;font-weight:600;letter-spacing:-.015em}
.admin-brand em{font-size:10px;font-weight:500;letter-spacing:.075em}
.admin-return-btn{padding:11px 12px;border-radius:10px;font-weight:600;box-shadow:none}
.admin-nav{gap:15px}
.admin-nav-group{gap:5px}
.admin-nav-group p{padding:0 9px;font-size:10.5px;font-weight:600;letter-spacing:.075em}
.admin-nav-link{min-height:40px;padding:8px 10px;border-radius:9px;font-size:13.5px;font-weight:500}
.admin-nav-link.active{font-weight:600;box-shadow:none;background:rgba(99,102,241,.2)}
.admin-nav-icon{width:27px;height:27px;border-radius:8px}
.admin-logout{padding:10px 11px;border-radius:9px;font-weight:500}
.admin-topbar{padding:13px 24px;border-radius:0!important;box-shadow:none!important}
.admin-topbar strong{font-size:18px;font-weight:600;letter-spacing:-.015em}
.admin-top-eyebrow{font-size:10.5px;font-weight:500;letter-spacing:.075em}
.admin-user-pill{font-weight:500}
.admin-container{padding:26px 24px 48px}
.admin-console .page-head{
  padding:20px;
  border-radius:14px;
  box-shadow:none;
  background:rgba(255,255,255,.055);
}
.admin-console .card{box-shadow:0 2px 10px rgba(0,0,0,.08);border-radius:12px}
.admin-hardening-list .launch-check em,
.admin-monitoring-checks .launch-check em,
.admin-runtime-list dt,
.admin-runtime-list dd{font-weight:400}
.admin-runtime-list dt{font-weight:500}

/* Responsive : conserver des espaces lisibles sans gonfler les textes. */
@media(max-width:1100px){
  .container{padding:24px 20px 44px}
  .mobile-topbar{font-weight:500}
  .mobile-menu-button{font-weight:500}
}
@media(max-width:720px){
  .container{padding:20px 15px 38px}
  h1{font-size:27px}
  h2{font-size:19px}
  .card,body.app-logged .card{padding:17px}
  .page-head{margin-bottom:17px}
  .head-actions{justify-content:flex-start}
  .btn,button{min-height:39px}
  th,td{padding:11px 12px}
}
@media(max-width:520px){
  body{font-size:14.5px}
  h1{font-size:25px}
  .muted{font-size:13px}
  .stats{gap:8px}
  .stat{padding:13px}
  .stat span{font-size:24px}
}


/* V201 — structure sidebar, menu mobile et alignement des cellules d'actions.
   Le séparateur est un élément réel entre recherche et navigation. Les cellules
   de tableau restent des table-cell afin d'occuper toute la hauteur de la ligne. */
.sidebar-navigation-divider{
  display:block;
  flex:0 0 1px;
  width:auto;
  height:1px;
  margin:0 2px;
  background:var(--line);
}
body.app-logged .sidebar-utility-blocks,
body.app-logged .side-bottom-blocks{
  border-top:0!important;
  padding-top:0!important;
}
body.app-logged .sidebar-main-scroll{
  padding-top:0!important;
}

/* Ne jamais transformer une cellule de tableau en conteneur flex : cela casse
   le calcul de hauteur des lignes et crée l'effet d'escalier. */
td.actions,
body.app-logged td.actions{
  display:table-cell!important;
  height:100%;
  min-width:150px;
  vertical-align:middle!important;
  text-align:right;
  white-space:normal;
}
td.actions > a,
td.actions > button,
td.actions > form,
td.actions > span,
td.actions > .btn,
body.app-logged td.actions > a,
body.app-logged td.actions > button,
body.app-logged td.actions > form,
body.app-logged td.actions > span,
body.app-logged td.actions > .btn{
  display:inline-flex;
  align-items:center;
  vertical-align:middle;
  margin:3px 0 3px 6px;
}
td.actions > form,
body.app-logged td.actions > form{margin-left:6px!important;}
td.actions > form:first-child,
td.actions > :first-child,
body.app-logged td.actions > form:first-child,
body.app-logged td.actions > :first-child{margin-left:0!important;}

@media(max-width:1100px){
  body.app-logged{overflow-x:hidden;}
  body.app-logged .app-shell,
  body.app-logged .main-shell{display:block!important;width:100%;min-width:0;}
  body.app-logged aside.sidebar{display:none!important;}
  body.app-logged .app-top-menu{display:none!important;}

  body.app-logged .mobile-topbar{
    display:flex!important;
    width:100%;
    min-width:0;
    min-height:58px;
    align-items:center;
    justify-content:space-between;
    gap:10px;
    padding:10px 14px;
    position:sticky;
    top:0;
    z-index:50;
    background:rgba(255,255,255,.96);
    border-bottom:1px solid var(--line);
    backdrop-filter:saturate(1.08) blur(12px);
  }
  body.app-logged .mobile-brand{
    display:flex;
    flex:1 1 auto;
    min-width:0;
    max-width:calc(100% - 112px);
    overflow:hidden;
  }
  body.app-logged .mobile-brand .brand-text{
    display:block;
    min-width:0;
    max-width:100%;
    overflow:hidden;
    text-overflow:ellipsis;
    white-space:nowrap;
  }
  body.app-logged .mobile-actions{
    display:flex!important;
    flex:0 0 auto;
    width:auto!important;
    min-width:0;
    align-items:center;
    justify-content:flex-end;
    gap:7px;
  }
  body.app-logged .mobile-actions > *,
  body.app-logged .mobile-actions form,
  body.app-logged .mobile-actions button,
  body.app-logged .mobile-actions .btn,
  body.app-logged .mobile-actions select{
    flex:0 0 auto;
    width:auto!important;
    margin:0!important;
  }
  body.app-logged .mobile-command-button{
    width:38px!important;
    min-width:38px;
    height:38px;
    min-height:38px;
    padding:0!important;
    border-radius:9px;
  }
  body.app-logged .mobile-lang select{
    width:68px!important;
    max-width:68px!important;
    height:38px;
    min-height:38px;
    padding:0 24px 0 9px;
  }

  body.app-logged .mobile-page-menu{
    display:block!important;
    width:100%;
    min-width:0;
    position:relative;
    z-index:40;
    margin:0;
    border:0;
    border-bottom:1px solid var(--line);
    background:#fff;
  }
  body.app-logged .mobile-page-menu-summary{
    display:flex!important;
    width:100%;
    min-width:0;
    min-height:44px;
    align-items:center;
    gap:10px;
    margin:0;
    padding:10px 14px;
    border:0;
    background:#fff;
    color:#344054;
    cursor:pointer;
  }
  body.app-logged .mobile-page-menu-summary > span:nth-child(2){
    min-width:0;
    overflow:hidden;
    text-overflow:ellipsis;
    white-space:nowrap;
  }
  body.app-logged .mobile-page-menu-summary em{
    flex:0 0 auto;
    margin-left:auto;
    white-space:nowrap;
  }
  body.app-logged .mobile-page-menu:not([open]) .mobile-page-menu-inner{display:none!important;}
  body.app-logged .mobile-page-menu[open] .mobile-page-menu-inner{
    display:grid!important;
    grid-template-columns:minmax(0,1fr);
    width:100%;
    min-width:0;
    max-height:calc(100dvh - 102px);
    overflow-x:hidden;
    overflow-y:auto;
    overscroll-behavior:contain;
    padding:12px 14px 18px;
    background:#fff;
    box-shadow:inset 0 1px 0 var(--line),0 18px 34px rgba(15,23,42,.08);
  }
  body.app-logged .mobile-page-menu-top,
  body.app-logged .mobile-page-groups,
  body.app-logged .mobile-page-group,
  body.app-logged .mobile-page-links,
  body.app-logged .mobile-page-bottom-blocks,
  body.app-logged .mobile-page-footer{
    width:100%;
    min-width:0;
  }
  body.app-logged .mobile-page-links{
    display:grid;
    grid-template-columns:minmax(0,1fr)!important;
    gap:5px;
  }
  body.app-logged .mobile-page-links .side-link,
  body.app-logged .mobile-page-dashboard-link .side-link,
  body.app-logged .mobile-page-admin-shortcut .side-link,
  body.app-logged .mobile-page-footer .side-link{
    width:100%;
    min-width:0;
  }
  body.app-logged .mobile-page-command{
    width:100%!important;
    min-width:0;
  }

  td.actions,
  body.app-logged td.actions{
    text-align:left;
    min-width:150px;
  }
  td.actions > a,
  td.actions > button,
  td.actions > form,
  td.actions > span,
  td.actions > .btn,
  body.app-logged td.actions > a,
  body.app-logged td.actions > button,
  body.app-logged td.actions > form,
  body.app-logged td.actions > span,
  body.app-logged td.actions > .btn{
    margin-left:0;
    margin-right:6px;
  }
}

@media(max-width:560px){
  body.app-logged .mobile-topbar{padding:9px 11px;}
  body.app-logged .mobile-brand{max-width:calc(100% - 104px);}
  body.app-logged .mobile-brand .brand-mark{width:31px;height:31px;}
  body.app-logged .mobile-brand .brand-text{font-size:17px;}
  body.app-logged .mobile-page-menu-summary{padding:9px 12px;}
  body.app-logged .mobile-page-menu-summary em{display:none;}
  body.app-logged .mobile-page-menu[open] .mobile-page-menu-inner{
    max-height:calc(100dvh - 94px);
    padding:11px 12px 16px;
  }
}


/* V202 — retour de Support dans le top menu et hauteur complète des cellules table-actions. */
body.app-logged .app-top-link.support{
  display:inline-flex;
  align-items:center;
  gap:7px;
}
body.app-logged .app-top-link.support .app-top-link-icon{
  display:inline-flex;
  width:17px;
  height:17px;
  flex:0 0 17px;
}
body.app-logged .app-top-link.support .app-top-link-icon svg{
  width:100%;
  height:100%;
}

/* .table-actions était historiquement un conteneur flex. Sur un td cela retire la
   cellule du modèle de tableau et produit des hauteurs en escalier. Le td reste
   donc une table-cell et occupe automatiquement toute la hauteur de sa ligne. */
td.table-actions,
body.app-logged td.table-actions{
  display:table-cell!important;
  box-sizing:border-box;
  height:100%!important;
  min-width:150px;
  vertical-align:middle!important;
  text-align:right;
  white-space:normal;
}
td.table-actions > a,
td.table-actions > button,
td.table-actions > form,
td.table-actions > span,
td.table-actions > .btn,
body.app-logged td.table-actions > a,
body.app-logged td.table-actions > button,
body.app-logged td.table-actions > form,
body.app-logged td.table-actions > span,
body.app-logged td.table-actions > .btn{
  display:inline-flex;
  align-items:center;
  vertical-align:middle;
  margin:3px 0 3px 6px;
}
td.table-actions > form,
body.app-logged td.table-actions > form{margin-left:6px!important;}
td.table-actions > :first-child,
body.app-logged td.table-actions > :first-child{margin-left:0!important;}

@media(max-width:1100px){
  td.table-actions,
  body.app-logged td.table-actions{
    text-align:left;
  }
  td.table-actions > a,
  td.table-actions > button,
  td.table-actions > form,
  td.table-actions > span,
  td.table-actions > .btn,
  body.app-logged td.table-actions > a,
  body.app-logged td.table-actions > button,
  body.app-logged td.table-actions > form,
  body.app-logged td.table-actions > span,
  body.app-logged td.table-actions > .btn{
    margin-left:0;
    margin-right:6px;
  }
}

/* V205 — alignement uniforme des cartes dans les grilles.
   Les espacements verticaux appartiennent au conteneur (gap), jamais aux cartes
   individuelles. Cela empêche les deuxième et troisième cartes de descendre. */
body.app-logged :where(
  .grid,
  .dash,
  .row,
  .stats,
  .stats-grid,
  .metric-row,
  .quick-grid,
  .two-one,
  [class*="-grid"]
){
  align-items:stretch;
}
body.app-logged :where(
  .grid,
  .dash,
  .row,
  .stats,
  .stats-grid,
  .metric-row,
  .quick-grid,
  .two-one,
  [class*="-grid"]
) > :where(
  .card,
  .feature,
  .stat,
  .stat-card,
  .metric,
  .metric-card,
  .quick-panel,
  .record-card,
  .table-card
){
  box-sizing:border-box;
  align-self:stretch;
  margin-top:0!important;
  margin-bottom:0;
  min-width:0;
}
body.app-logged :where(.card,.feature,.stat,.stat-card,.metric,.metric-card,.quick-panel,.record-card) > :first-child{
  margin-top:0;
}



/* V208 — cohérence visuelle pré-RC : icônes SVG homogènes et contrôles stables. */
.app-admin .admin-nav-icon .admin-menu-icon,
.app-admin .admin-return-icon,
.app-admin .admin-logout-icon,
.app-admin .admin-site-button-icon{
  width:18px;
  height:18px;
  flex:0 0 18px;
}
.app-admin .admin-nav-icon .admin-menu-icon{width:17px;height:17px;}
.app-admin .admin-return-btn,
.app-admin .admin-logout,
.app-admin .admin-site-button{align-items:center;}
.app-admin .admin-site-button{display:inline-flex;gap:7px;}
body.app-logged .mobile-command-icon{width:18px;height:18px;}
body.app-logged .mobile-command-button{line-height:1;}
@media(max-width:560px){
  body.app-logged .mobile-command-icon{width:17px;height:17px;}
}

/* V210 RC2 — lisibilité des petits boutons et largeur complète du suivi post-AG. */
body a.btn.small,
body button.btn.small{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:34px;
  height:auto;
  padding:7px 10px;
  font-size:12.5px;
  line-height:1.25;
  font-weight:600;
  white-space:nowrap;
  overflow:visible;
  text-indent:0;
  opacity:1;
  visibility:visible;
  color:#fff;
  background:var(--brand);
  border-color:var(--brand);
}
body a.btn.small > :where(span,strong,em),
body button.btn.small > :where(span,strong,em){
  display:inline;
  color:inherit;
  opacity:1;
  visibility:visible;
}
body a.btn.small > svg,
body button.btn.small > svg{
  flex:0 0 auto;
  color:inherit;
}
body a.btn.small.secondary,
body a.btn.secondary.small,
body button.btn.small.secondary,
body button.btn.secondary.small{
  color:#344054;
  background:#fff;
  border-color:var(--line-strong);
}
body a.btn.small.danger,
body a.btn.danger.small,
body button.btn.small.danger,
body button.btn.danger.small{
  color:#fff;
  background:var(--danger);
  border-color:var(--danger);
}
body a.btn.small[aria-disabled="true"],
body button.btn.small:disabled{
  opacity:.55;
}

body.app-logged .post-meeting-pilot-board,
body.app-logged .post-meeting-priority-decisions{
  width:100%;
  max-width:none!important;
  justify-self:stretch;
  align-self:stretch;
}


/* V211 RC3 — filtres sur une ligne et sections AG en pleine largeur.
   Sur desktop, les filtres restent dans une seule rangée. Lorsque les actions
   dépassent la largeur disponible, la barre filtre défile horizontalement au
   lieu de créer une deuxième ligne. Sur mobile, les champs redeviennent empilés. */
@media (min-width:1101px){
  body:is(.app-logged,.app-admin) form.filters,
  body:is(.app-logged,.app-admin) form.list-filters{
    display:flex;
    flex-wrap:nowrap;
    align-items:flex-end;
    gap:10px;
    width:100%;
    max-width:none;
  }
  body:is(.app-logged,.app-admin) form.filters > :where(.row,.filter-inline-grid,.compact-filter-grid,.ops-filter-grid,.calendar-filter-grid,.deadlines-filter-grid,.documents-filter-grid,.suppliers-filter-grid),
  body:is(.app-logged,.app-admin) form.list-filters > .row{
    flex:1 1 auto;
    width:auto;
    min-width:0;
    margin:0;
  }

  body:is(.app-logged,.app-admin) :where(
    .filter-inline-grid,
    .compact-filter-grid,
    .quality-filter-grid,
    .ops-filter-grid,
    .calendar-filter-grid,
    .deadlines-filter-grid,
    .documents-filter-grid,
    .suppliers-filter-grid,
    .email-campaign-filter-grid,
    .filter-form-inline,
    .security-filter-grid,
    .action-filter-grid,
    .launch-filter-grid,
    .postdeploy-filter-grid,
    .admin-monitoring-filter-grid,
    .admin-alerts-filter-grid,
    .admin-resolution-filter-grid,
    .admin-security-filter-grid
  ){
    display:flex!important;
    flex-flow:row nowrap!important;
    align-items:flex-end!important;
    gap:10px!important;
    width:100%!important;
    max-width:none!important;
    min-width:0;
    overflow-x:auto;
    overflow-y:hidden;
    overscroll-behavior-inline:contain;
    scrollbar-width:thin;
    padding-bottom:2px;
  }

  body:is(.app-logged,.app-admin) :where(
    .filter-inline-grid,
    .compact-filter-grid,
    .quality-filter-grid,
    .ops-filter-grid,
    .calendar-filter-grid,
    .deadlines-filter-grid,
    .documents-filter-grid,
    .suppliers-filter-grid,
    .email-campaign-filter-grid,
    .filter-form-inline,
    .security-filter-grid,
    .action-filter-grid,
    .launch-filter-grid,
    .postdeploy-filter-grid,
    .admin-monitoring-filter-grid,
    .admin-alerts-filter-grid,
    .admin-resolution-filter-grid,
    .admin-security-filter-grid
  ) > :where(.filter-field,label,div:not(.filter-actions-inline):not(.form-actions-inline):not(.documents-filter-actions)){
    flex:1 1 170px;
    min-width:145px;
    max-width:none;
    margin:0!important;
  }

  body:is(.app-logged,.app-admin) :where(.filter-field){
    display:grid!important;
    gap:6px!important;
    align-content:end;
  }
  body:is(.app-logged,.app-admin) :where(.filter-field) > :where(input,select,textarea){
    width:100%;
    min-width:0;
  }

  body:is(.app-logged,.app-admin) :where(.filter-actions-inline,.form-actions-inline,.documents-filter-actions){
    display:flex;
    flex:0 0 auto;
    flex-wrap:nowrap!important;
    align-items:flex-end;
    gap:8px;
    margin:0;
    white-space:nowrap;
  }
  body:is(.app-logged,.app-admin) :where(
    .filter-inline-grid,
    .compact-filter-grid,
    .quality-filter-grid,
    .ops-filter-grid,
    .calendar-filter-grid,
    .deadlines-filter-grid,
    .documents-filter-grid,
    .suppliers-filter-grid,
    .email-campaign-filter-grid,
    .filter-form-inline,
    .security-filter-grid,
    .action-filter-grid,
    .launch-filter-grid,
    .postdeploy-filter-grid,
    .admin-monitoring-filter-grid,
    .admin-alerts-filter-grid,
    .admin-resolution-filter-grid,
    .admin-security-filter-grid
  ) > :where(button,.btn){
    flex:0 0 auto;
    width:auto!important;
    white-space:nowrap;
  }
}

/* Toutes les vues du cycle AG utilisent la largeur disponible du contenu.
   Le sélecteur de préfixe couvre également /ag/{id} et ses sous-pages. */
body.app-logged:is(
  .route-ag,
  [class*="route-ag-"],
  .route-registre-ag,
  .route-preparation-ag,
  .route-convocation-ag,
  .route-presence-ag,
  .route-votes-ag,
  .route-pv-ag,
  .route-diffusion-pv,
  .route-cloture-ag,
  .route-pilotage-post-ag,
  .route-suivi-decisions,
  .route-relances-decisions,
  .route-plan-execution-decisions
) #main-content > :where(.page-head,section,form,.stats,.stats-grid,.grid,.two-one,.ag-workflow-nav),
body.app-logged:is(
  .route-ag,
  [class*="route-ag-"],
  .route-registre-ag,
  .route-preparation-ag,
  .route-convocation-ag,
  .route-presence-ag,
  .route-votes-ag,
  .route-pv-ag,
  .route-diffusion-pv,
  .route-cloture-ag,
  .route-pilotage-post-ag,
  .route-suivi-decisions,
  .route-relances-decisions,
  .route-plan-execution-decisions
) :where(.card.wide,.meeting-minutes-generator,.meeting-closure-board,.decision-follow-up-board,.decision-execution-board,.post-meeting-pilot-board,.post-meeting-priority-decisions){
  box-sizing:border-box;
  width:100%;
  max-width:none!important;
  justify-self:stretch;
  align-self:stretch;
}

@media (max-width:1100px){
  body:is(.app-logged,.app-admin) :where(.filter-actions-inline,.form-actions-inline,.documents-filter-actions){
    display:flex;
    flex-wrap:wrap;
    gap:8px;
  }
  body:is(.app-logged,.app-admin) :where(.quality-filter-grid,.filter-inline-grid,.compact-filter-grid,.ops-filter-grid){
    max-width:none!important;
  }
}
@media (max-width:720px){
  body:is(.app-logged,.app-admin) :where(.filter-actions-inline,.form-actions-inline,.documents-filter-actions){
    display:grid;
    grid-template-columns:1fr;
    width:100%;
  }
  body:is(.app-logged,.app-admin) :where(.filter-actions-inline,.form-actions-inline,.documents-filter-actions) > :where(button,.btn){
    width:100%!important;
  }
}


/* V212 RC4 — .card.wide signifie largeur pleine partout. */
.card.wide,
.card.wide.form-card{
  box-sizing:border-box;
  width:100%!important;
  max-width:none!important;
  margin-left:0;
  margin-right:0;
  justify-self:stretch;
  align-self:stretch;
}

/* V213 RC5 — alignement systématique des boutons dans tous les filtres.
   Tous les contrôles et toutes les actions partagent la même ligne de base et
   la même hauteur, quelle que soit la structure historique du filtre. */
body:is(.app-logged,.app-admin) :where(
  form.filters,
  form.list-filters,
  form.filter-form,
  form.filter-card,
  form.quality-filter-grid,
  form[class*="filter-grid"],
  form[class*="-filters"],
  form[class*="filters-"]
){
  --filter-control-height:42px;
}

body:is(.app-logged,.app-admin) :where(
  form.filters,
  form.list-filters,
  form.filter-form,
  form.filter-card,
  form.quality-filter-grid,
  form[class*="filter-grid"],
  form[class*="-filters"],
  form[class*="filters-"]
) :where(.filter-field,label:not(.check):not(.checkline)){
  align-self:end;
  margin-top:0!important;
  margin-bottom:0!important;
}

body:is(.app-logged,.app-admin) :where(
  form.filters,
  form.list-filters,
  form.filter-form,
  form.filter-card,
  form.quality-filter-grid,
  form[class*="filter-grid"],
  form[class*="-filters"],
  form[class*="filters-"]
) :where(.filter-field,label:not(.check):not(.checkline)) > :where(
  input[type=text],
  input[type=email],
  input[type=date],
  input[type=time],
  input[type=number],
  input[type=search],
  select
){
  box-sizing:border-box;
  height:var(--filter-control-height);
  min-height:var(--filter-control-height);
  margin:0;
}

body:is(.app-logged,.app-admin) :where(
  form.filters,
  form.list-filters,
  form.filter-form,
  form.filter-card,
  form.quality-filter-grid,
  form[class*="filter-grid"],
  form[class*="-filters"],
  form[class*="filters-"]
) :where(
  .filter-actions,
  .filter-actions-inline,
  .form-actions-inline,
  .documents-filter-actions,
  .portfolio-correction-actions
){
  align-self:end!important;
  align-items:stretch!important;
  min-height:var(--filter-control-height);
  margin-top:0!important;
  margin-bottom:0!important;
}

body:is(.app-logged,.app-admin) :where(
  form.filters,
  form.list-filters,
  form.filter-form,
  form.filter-card,
  form.quality-filter-grid,
  form[class*="filter-grid"],
  form[class*="-filters"],
  form[class*="filters-"]
) > :where(button,.btn),
body:is(.app-logged,.app-admin) :where(
  form.filters,
  form.list-filters,
  form.filter-form,
  form.filter-card,
  form.quality-filter-grid,
  form[class*="filter-grid"],
  form[class*="-filters"],
  form[class*="filters-"]
) :where(
  .filter-actions,
  .filter-actions-inline,
  .form-actions-inline,
  .documents-filter-actions,
  .portfolio-correction-actions
) > :where(button,.btn){
  box-sizing:border-box;
  align-self:end!important;
  height:var(--filter-control-height);
  min-height:var(--filter-control-height);
  margin:0!important;
  white-space:nowrap;
}

/* Les boutons directement placés dans une grille de filtres doivent également
   utiliser la même hauteur, même sans conteneur d'actions dédié. */
body:is(.app-logged,.app-admin) :where(
  .filter-inline-grid,
  .compact-filter-grid,
  .quality-filter-grid,
  .ops-filter-grid,
  .calendar-filter-grid,
  .deadlines-filter-grid,
  .documents-filter-grid,
  .suppliers-filter-grid,
  .email-campaign-filter-grid,
  .filter-form-inline,
  .security-filter-grid,
  .action-filter-grid,
  .launch-filter-grid,
  .postdeploy-filter-grid,
  .admin-monitoring-filter-grid,
  .admin-alerts-filter-grid,
  .admin-resolution-filter-grid,
  .admin-security-filter-grid,
  .email-filter-grid
) > :where(button,.btn){
  box-sizing:border-box;
  align-self:end!important;
  height:var(--filter-control-height,42px);
  min-height:var(--filter-control-height,42px);
  margin:0!important;
}

@media(max-width:720px){
  body:is(.app-logged,.app-admin) :where(
    form.filters,
    form.list-filters,
    form.filter-form,
    form.filter-card,
    form.quality-filter-grid,
    form[class*="filter-grid"],
    form[class*="-filters"],
    form[class*="filters-"]
  ) :where(
    .filter-actions,
    .filter-actions-inline,
    .form-actions-inline,
    .documents-filter-actions
  ){
    width:100%;
  }
}

/* V214 RC6 — synchronisation du parcours AG et de la navigation latérale.
   Une seule navigation contextuelle est rendue par le layout sur toutes les routes AG. */
body.app-logged .ag-context-navigation{
  position:sticky;
  top:62px;
  z-index:14;
  margin:-8px 0 18px;
  padding:8px 0;
  background:rgba(248,250,252,.94);
  backdrop-filter:saturate(1.15) blur(10px);
}
body.app-logged .ag-context-navigation .ag-workflow-nav{
  width:100%;
  margin:0;
  box-shadow:0 8px 22px rgba(15,23,42,.045);
}
body.app-logged .ag-workflow-step{
  border:1px solid transparent;
}
body.app-logged .ag-workflow-step.active{
  border-color:#bfdbfe;
  background:#eff6ff;
  color:#1d4ed8;
}
body.app-logged .user-nav-group[data-sidebar-accordion="meetings"] .side-link.active{
  border-color:#bfdbfe;
  background:#eff6ff;
  color:#1d4ed8;
}
body.app-logged .user-nav-group[data-sidebar-accordion="meetings"] .side-link.active .side-icon{
  background:#dbeafe;
  color:#1d4ed8;
}
@media(max-width:1100px){
  body.app-logged .ag-context-navigation{
    position:relative;
    top:auto;
    z-index:auto;
    margin:0 0 14px;
    padding:0;
    background:transparent;
    backdrop-filter:none;
  }
  body.app-logged .ag-context-navigation .ag-workflow-nav{box-shadow:none}
}


/* V215 RC7 — fondation de l'identité visuelle MySyndic.
   Territoire : architecture, rigueur administrative et technologie discrète.
   Signature : Le syndic, enfin piloté. */
:root{
  --brand-ink:#202A33;
  --brand-slate:#183B56;
  --brand-action:#2867A8;
  --brand-brass:#B98A45;
  --brand-stone:#F5F6F4;
  --brand-surface:#FFFFFF;
  --brand-schist:#66717C;
  --brand-limestone:#DCE1E4;
}
html,body{background:var(--brand-stone);color:var(--brand-ink)}
body{font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;letter-spacing:0}

/* Signature de marque */
.brand{gap:9px;color:var(--brand-ink);font-weight:400;letter-spacing:-.025em}
.brand-mark{width:34px;height:34px;border-radius:7px;background:var(--brand-slate);box-shadow:none}
.brand-text{display:inline-flex;align-items:baseline;font-size:19px;line-height:1;color:var(--brand-ink)}
.brand-text .brand-my{font-weight:400;color:var(--brand-ink)}
.brand-text .brand-syndic{font-weight:600;color:var(--brand-slate)}
.side-brand{padding:0 8px 15px}

/* Architecture calme : surfaces bordées, ombres réservées aux couches flottantes */
.card,.feature,.stat,.list-row,.table-card{border-color:var(--brand-limestone);border-radius:10px;box-shadow:none}
.card,.feature,.stat{background:var(--brand-surface)}
.card{padding:22px}
.list-row{border-radius:9px}
.command-dialog,.user-menu-panel,.app-top-user-menu[open] .app-top-user-panel,.modal,.dropdown{box-shadow:var(--shadow)}

/* Navigation latérale inspirée d'une table des matières */
.sidebar{background:#FBFCFA;border-right:1px solid var(--brand-limestone);padding-right:12px}
.sidebar-navigation-divider{background:var(--brand-limestone)}
.side-title,.sidebar-menu-zone-title{color:var(--brand-schist);font-weight:500;letter-spacing:.1em}
.side-link{min-height:39px;border-radius:7px;border-left:3px solid transparent;padding:8px 10px 8px 9px;color:#43515D;font-weight:500}
.side-link:hover{background:#F0F3F2;color:var(--brand-slate)}
.side-link.active,
.user-nav-group[data-sidebar-accordion="meetings"] .side-link.active{
  background:var(--accent-soft)!important;
  color:var(--brand-slate)!important;
  border-left-color:var(--brand-action)!important;
}
.side-icon,.side-link.active .side-icon,
.user-nav-group[data-sidebar-accordion="meetings"] .side-link.active .side-icon{
  width:23px;height:23px;border-radius:6px;background:transparent!important;color:currentColor!important;
}
.nav-accordion-summary{border-radius:7px}

/* Topbar : contexte, compte et actions — sans second menu dominant */
.app-top-menu,.topbar,.mobile-topbar{background:rgba(255,255,255,.94);border-color:var(--brand-limestone);box-shadow:none}
.app-top-menu{min-height:62px}
.app-top-link,.app-user-trigger{font-weight:500;color:#43515D;border-radius:7px}
.app-top-link:hover,.app-user-trigger:hover{background:#F0F3F2;color:var(--brand-slate)}

/* Hiérarchie typographique */
h1,h2,h3{color:var(--brand-ink);letter-spacing:-.035em}
h1{font-weight:600}
h2,h3{font-weight:600}
p{color:#4F5D68}
.muted{color:var(--brand-schist)}
.eyebrow,.lp-section-kicker,.lp-card-label{color:var(--brand-action);font-weight:600;letter-spacing:.1em}

/* Boutons : un primaire bleu ardoise, le reste recule visuellement */
.btn,button{min-height:42px;border-radius:7px;border-color:var(--brand-slate);background:var(--brand-slate);color:#fff;font-weight:600;box-shadow:none;transform:none!important}
.btn:hover,button:hover{background:#102F47;border-color:#102F47}
.btn.secondary{background:#fff;color:var(--brand-slate);border-color:var(--line-strong)}
.btn.secondary:hover{background:#F7F8F6;border-color:#AEB9C0}
.btn.danger,.btn.delete,.danger-actions .btn{background:#fff;color:var(--danger);border-color:#D9AAA5}
.btn.danger:hover,.btn.delete:hover,.danger-actions .btn:hover{background:var(--danger-soft);border-color:var(--danger)}
.btn.small{min-height:36px;height:auto;border-radius:7px;padding:8px 12px}
.link-button,.btn.tertiary{color:var(--brand-action)}

/* Formulaires : précision et lisibilité */
label{color:#43515D;font-weight:500}
input[type=text],input[type=email],input[type=password],input[type=date],input[type=time],input[type=number],input[type=file],input[type=search],select,textarea{
  border-color:var(--line-strong);border-radius:7px;background:#fff;color:var(--brand-ink)
}
input:focus,select:focus,textarea:focus{border-color:var(--brand-action);box-shadow:0 0 0 3px rgba(40,103,168,.13)}

/* Tableaux : le composant central de pilotage */
table{color:var(--brand-ink)}
th{background:#F1F3F1;color:#4C5964;font-size:12px;font-weight:600;text-transform:none;letter-spacing:0}
th,td{border-bottom-color:var(--brand-limestone)}
tbody tr:hover td{background:#FAFBF9}
td.actions,td.table-actions{vertical-align:middle!important}

/* États et badges : la couleur porte le sens, pas une graisse excessive */
.pill,.badge{font-weight:500;border-radius:999px}
.alert,.errors{border-radius:9px;font-weight:500}
.tabs a{border-radius:999px;font-weight:500}
.tabs a.active{background:var(--brand-slate);border-color:var(--brand-slate)}

/* Parcours AG aligné sur la nouvelle identité */
body.app-logged .ag-context-navigation{background:rgba(245,246,244,.94)}
body.app-logged .ag-workflow-step{border-radius:7px;color:#53616C}
body.app-logged .ag-workflow-step.active{border-color:#B8CCE0;background:var(--accent-soft);color:var(--brand-slate)}

/* Landing : preuve produit, pierre claire, laiton discret */
body.app-public{background:var(--brand-stone)}
.public-topbar{border-color:var(--brand-limestone)}
.lp-hero{min-height:680px}
.lp-hero h1{color:var(--brand-slate);font-size:clamp(50px,5.5vw,76px);line-height:.98;letter-spacing:-.055em}
.lp-hero-lead{color:#52616C}
.lp-eyebrow{color:var(--brand-slate);background:#EEF1EE;border-color:var(--brand-limestone);font-weight:600}
.lp-eyebrow-dot{background:var(--brand-brass);box-shadow:0 0 0 5px rgba(185,138,69,.14)}
.lp-primary-cta{background:var(--brand-slate);border-color:var(--brand-slate)}
.lp-text-link{color:var(--brand-action);font-weight:500}
.lp-hero-assurances .ui-icon{color:var(--ok)}
.lp-product-stage::before,.lp-stage-glow{display:none!important}
.lp-app-window{border-color:#CBD3D7;border-radius:12px;box-shadow:0 22px 50px rgba(24,59,86,.12)}
.lp-window-bar{background:#F0F2EF;border-color:var(--brand-limestone)}
.lp-preview-sidebar{background:var(--brand-slate)}
.lp-preview-brand span{font-weight:600}
.lp-preview-sidebar nav span{border-radius:6px}
.lp-preview-sidebar nav span.active{background:rgba(255,255,255,.12);box-shadow:inset 3px 0 0 var(--brand-brass)}
.lp-preview-main,.lp-preview-card,.lp-preview-metrics article{background:#fff}
.lp-preview-card,.lp-preview-metrics article{border-color:var(--brand-limestone);border-radius:8px;box-shadow:none}
.lp-floating-card{border-radius:8px;border-color:var(--brand-limestone);box-shadow:var(--shadow)}
.lp-proof-bar,.lp-before-card,.lp-after-card,.lp-feature-card,.lp-security-card,.lp-faq details{border-color:var(--brand-limestone);border-radius:10px;box-shadow:none;background:#fff}
.lp-proof-bar strong,.lp-feature-card strong,.lp-after-grid strong{color:var(--brand-slate)}
.lp-section-kicker{color:var(--brand-action)}
.lp-workflow-line article>span{color:var(--brand-brass)}
.lp-feature-icon{color:var(--brand-action);background:var(--accent-soft);border-radius:7px}
.lp-final-cta{background:var(--brand-slate);border-radius:12px;box-shadow:none}
.public-footer{background:#EEF0ED;border-top:1px solid var(--brand-limestone)}

/* Administration : même marque, contraste renforcé, sans univers violet concurrent */
.app-admin.admin-console{
  --admin-bg:#132C40;--admin-panel:#183B56;--admin-panel-2:#204B68;
  --admin-line:rgba(220,225,228,.2);--admin-text:#F8FAFB;--admin-muted:#B8C5CE;
  --admin-accent:#B98A45;--admin-accent-2:#6EA0C8;--admin-danger:#D4776E;
  background:#10293C;color:var(--admin-text)
}
.admin-sidebar{background:#132F45;border-right-color:rgba(220,225,228,.16)}
.admin-nav-link{border-radius:7px;font-weight:500}
.admin-nav-link.active{background:rgba(255,255,255,.1);box-shadow:inset 3px 0 0 var(--brand-brass)}
.admin-topbar{background:#fff;border-color:var(--brand-limestone)}
.admin-main{background:var(--brand-stone)}

@media(max-width:720px){
  .lp-hero h1{font-size:42px;letter-spacing:-.045em}
  .card{padding:18px}
  .brand-text{font-size:18px}
}

/* V216 RC8 — landing premium et recalibrage chromatique.
   Le bleu porte la confiance, la pierre donne de l'espace et le laiton reste un accent rare. */
body.public-page-landing{
  --lp-ink:#1F2D36;
  --lp-navy:#213C49;
  --lp-blue:#3E7288;
  --lp-blue-strong:#2E5D70;
  --lp-blue-soft:#E8EFF1;
  --lp-brass:#B8894A;
  --lp-brass-soft:#F3EBDD;
  --lp-stone:#F6F3ED;
  --lp-paper:#FEFEFC;
  --lp-line:#D8DFE1;
  --lp-muted:#60707A;
  background:var(--lp-stone);
  color:var(--lp-ink);
}

body.public-page-landing .public-container{max-width:1360px;padding-inline:40px;padding-bottom:88px}




body.public-page-landing .lp-hero{
  grid-template-columns:minmax(0,.84fr) minmax(560px,1.16fr);
  gap:68px;
  min-height:760px;
  padding:78px 0 70px;
}
body.public-page-landing .lp-hero::before{display:none}
body.public-page-landing .lp-hero-copy{max-width:620px}
body.public-page-landing .lp-eyebrow{
  border-color:rgba(184,137,74,.28);
  background:rgba(243,235,221,.72);
  color:var(--lp-navy);
  box-shadow:none;
  letter-spacing:.08em;
  text-transform:uppercase;
}
body.public-page-landing .lp-eyebrow-dot{background:var(--lp-brass);box-shadow:0 0 0 5px rgba(184,137,74,.13)}
body.public-page-landing .lp-hero h1{
  max-width:610px;
  color:var(--lp-navy);
  font-size:clamp(54px,5.7vw,78px);
  line-height:.98;
  letter-spacing:-.058em;
}
body.public-page-landing .lp-hero-lead{max-width:590px;color:var(--lp-muted);font-size:clamp(17px,1.45vw,20px);line-height:1.65}
body.public-page-landing .lp-primary-cta{
  min-height:54px;
  background:var(--lp-blue);
  border-color:var(--lp-blue);
  border-radius:8px;
  box-shadow:0 14px 30px rgba(62,114,136,.16);
}
body.public-page-landing .lp-primary-cta:hover{background:var(--lp-blue-strong);border-color:var(--lp-blue-strong);transform:none}
body.public-page-landing .lp-text-link{color:var(--lp-navy)}
body.public-page-landing .lp-hero-assurances{gap:10px;color:var(--lp-muted)}
body.public-page-landing .lp-hero-assurances span{
  min-height:32px;
  padding:6px 9px;
  border:1px solid rgba(216,223,225,.85);
  border-radius:999px;
  background:rgba(254,254,252,.78);
}
body.public-page-landing .lp-hero-assurances .ui-icon{color:#3D7C63}

body.public-page-landing .lp-product-stage{padding:24px 8px 34px}
body.public-page-landing .lp-app-window{
  border-color:#C9D4D8;
  border-radius:14px;
  box-shadow:0 34px 80px rgba(33,60,73,.15),0 10px 24px rgba(33,60,73,.07);
  transform:none;
}
body.public-page-landing .lp-window-bar{background:#F2F3F0;border-color:var(--lp-line)}
body.public-page-landing .lp-window-address{border-color:var(--lp-line);color:#7B8991}
body.public-page-landing .lp-preview-sidebar{background:var(--lp-navy);border-color:rgba(255,255,255,.08)}
body.public-page-landing .lp-preview-brand{border-color:rgba(255,255,255,.12);color:#fff}
body.public-page-landing .lp-preview-search{border-color:rgba(255,255,255,.12);background:rgba(255,255,255,.07)}
body.public-page-landing .lp-preview-sidebar nav span{color:#C6D1D8}
body.public-page-landing .lp-preview-sidebar nav span.active{background:rgba(255,255,255,.1);color:#fff;box-shadow:inset 3px 0 0 var(--lp-brass)}
body.public-page-landing .lp-preview-main{background:#F6F7F5}
body.public-page-landing .lp-preview-card,
body.public-page-landing .lp-preview-metrics article{border-color:var(--lp-line);background:var(--lp-paper)}
body.public-page-landing .lp-preview-metrics span,
body.public-page-landing .lp-preview-title h2{color:var(--lp-navy)}
body.public-page-landing .lp-floating-card{border-color:var(--lp-line);background:rgba(254,254,252,.95);box-shadow:0 18px 42px rgba(33,60,73,.12)}
body.public-page-landing .lp-floating-card .ui-icon{color:var(--lp-blue)}

body.public-page-landing .lp-proof-bar{
  position:relative;
  z-index:4;
  margin:0 0 12px;
  overflow:hidden;
  border:1px solid var(--lp-line);
  border-radius:14px;
  background:var(--lp-paper);
  box-shadow:0 14px 36px rgba(33,60,73,.055);
}
body.public-page-landing .lp-proof-bar div{border-color:var(--lp-line);padding:24px 26px}
body.public-page-landing .lp-proof-bar strong{color:var(--lp-navy)}
body.public-page-landing .lp-proof-bar span{color:var(--lp-muted)}

body.public-page-landing .lp-section{padding:102px 0}
body.public-page-landing .lp-section-heading h2,
body.public-page-landing .lp-control-intro h2,
body.public-page-landing .lp-ag-copy h2,
body.public-page-landing .lp-security-intro h2{color:var(--lp-navy);line-height:1.08}
body.public-page-landing .lp-section-heading p,
body.public-page-landing .lp-control-intro p,
body.public-page-landing .lp-ag-copy p,
body.public-page-landing .lp-security-intro p{color:var(--lp-muted);line-height:1.7}
body.public-page-landing .lp-section-kicker{color:var(--lp-blue);letter-spacing:.12em}

body.public-page-landing .lp-control-section{
  display:grid;
  grid-template-columns:minmax(290px,.72fr) minmax(0,1.28fr);
  gap:70px;
  align-items:start;
  padding-top:112px;
}
body.public-page-landing .lp-control-intro{position:sticky;top:116px;max-width:430px}
body.public-page-landing .lp-control-intro h2{margin:10px 0 16px;font-size:clamp(38px,4.1vw,58px);letter-spacing:-.05em}
body.public-page-landing .lp-control-grid{display:grid;gap:14px}
body.public-page-landing .lp-control-grid article{
  position:relative;
  display:grid;
  grid-template-columns:58px minmax(0,1fr);
  gap:6px 20px;
  min-height:170px;
  padding:26px 30px;
  border:1px solid var(--lp-line);
  border-radius:14px;
  background:var(--lp-paper);
}
body.public-page-landing .lp-control-grid article::after{
  content:"";
  position:absolute;
  inset:0 auto 0 0;
  width:3px;
  background:var(--lp-brass);
  opacity:.68;
}
body.public-page-landing .lp-control-number{position:absolute;right:22px;top:17px;color:#C9D2D5;font-size:12px;font-weight:600;letter-spacing:.1em}
body.public-page-landing .lp-control-icon{
  grid-row:1/3;
  display:grid;
  place-items:center;
  width:50px;
  height:50px;
  border-radius:10px;
  background:var(--lp-blue-soft);
  color:var(--lp-blue);
}
body.public-page-landing .lp-control-icon .ui-icon{width:23px;height:23px}
body.public-page-landing .lp-control-grid strong{align-self:end;color:var(--lp-navy);font-size:18px;font-weight:600}
body.public-page-landing .lp-control-grid p{margin:0;color:var(--lp-muted);font-size:14px;line-height:1.6}

body.public-page-landing .lp-problem-section{
  position:relative;
  margin:20px 0;
  padding:84px 72px;
  border:1px solid var(--lp-line);
  border-radius:20px;
  background:var(--lp-paper);
}
body.public-page-landing .lp-before-after{gap:16px}
body.public-page-landing .lp-before-card,
body.public-page-landing .lp-after-card{border-color:var(--lp-line);border-radius:14px;box-shadow:none}
body.public-page-landing .lp-before-card{background:#F8F5F0}
body.public-page-landing .lp-after-card{background:#F3EFE7}
body.public-page-landing .lp-after-grid .ui-icon{color:var(--lp-blue)}

body.public-page-landing .lp-workflow-line{
  overflow:hidden;
  border:1px solid var(--lp-line);
  border-radius:16px;
  background:var(--lp-paper);
}
body.public-page-landing .lp-workflow-line article{border-color:var(--lp-line);background:transparent}
body.public-page-landing .lp-workflow-line article>span{color:var(--lp-brass)}
body.public-page-landing .lp-workflow-line article>.ui-icon{color:var(--lp-blue)}
body.public-page-landing .lp-workflow-line strong{color:var(--lp-navy)}

body.public-page-landing .lp-feature-section{
  position:relative;
  background:#F1ECE4;
  box-shadow:0 0 0 100vmax #F1ECE4;
  clip-path:inset(0 -100vmax);
}
body.public-page-landing .lp-feature-grid{gap:16px}
body.public-page-landing .lp-feature-card{
  border-color:#D1DDE1;
  border-radius:14px;
  background:rgba(254,254,252,.92);
  box-shadow:none;
}
body.public-page-landing .lp-feature-card-large{background:var(--lp-navy);border-color:var(--lp-navy)}
body.public-page-landing .lp-feature-card-large strong,
body.public-page-landing .lp-feature-card-large p{color:#fff}
body.public-page-landing .lp-feature-card-large p{opacity:.76}
body.public-page-landing .lp-feature-card-large .lp-feature-icon{background:rgba(255,255,255,.1);color:#fff}
body.public-page-landing .lp-feature-icon{background:var(--lp-blue-soft);color:var(--lp-blue)}
body.public-page-landing .lp-feature-card strong{color:var(--lp-navy)}
body.public-page-landing .lp-mini-dashboard span{border-color:rgba(255,255,255,.15);background:rgba(255,255,255,.08)}
body.public-page-landing .lp-mini-dashboard b,
body.public-page-landing .lp-mini-dashboard small{color:#fff}

body.public-page-landing .lp-ag-showcase{
  position:relative;
  overflow:hidden;
  gap:70px;
  margin-block:38px;
  padding:76px 72px;
  border:0;
  border-radius:18px;
  background:var(--lp-navy);
  box-shadow:none;
}
body.public-page-landing .lp-ag-showcase::before{
  content:"";
  position:absolute;
  left:0;
  top:0;
  bottom:0;
  width:5px;
  background:var(--lp-brass);
}
body.public-page-landing .lp-ag-copy h2,
body.public-page-landing .lp-ag-copy p{color:#fff}
body.public-page-landing .lp-ag-copy p{opacity:.75}
body.public-page-landing .lp-section-kicker-light{color:#DDBB82}
body.public-page-landing .lp-inline-cta{color:#fff}
body.public-page-landing .lp-ag-steps article{border-color:rgba(255,255,255,.14);background:rgba(255,255,255,.045)}
body.public-page-landing .lp-ag-steps article.active{border-color:rgba(221,187,130,.5);background:rgba(184,137,74,.14)}
body.public-page-landing .lp-ag-steps article>span{background:rgba(255,255,255,.1);color:#fff}
body.public-page-landing .lp-ag-steps article.active>span{background:var(--lp-brass);color:#fff}

body.public-page-landing .lp-security-section{
  gap:70px;
  padding:92px 72px;
  border:1px solid var(--lp-line);
  border-radius:20px;
  background:#F9F7F2;
}
body.public-page-landing .lp-security-note,
body.public-page-landing .lp-security-grid article{border-color:var(--lp-line);border-radius:12px;background:var(--lp-paper)}
body.public-page-landing .lp-security-note .ui-icon,
body.public-page-landing .lp-security-grid .ui-icon{color:var(--lp-blue)}
body.public-page-landing .lp-security-grid strong{color:var(--lp-navy)}

body.public-page-landing .lp-faq-section{
  display:grid;
  grid-template-columns:minmax(280px,.68fr) minmax(0,1.32fr);
  gap:72px;
  align-items:start;
}
body.public-page-landing .lp-faq-section .lp-section-heading{position:sticky;top:116px;text-align:left;margin:0}
body.public-page-landing .lp-faq-list{max-width:none;margin:0;border-top-color:var(--lp-line)}
body.public-page-landing .lp-faq-list details{border-color:var(--lp-line)}
body.public-page-landing .lp-faq-list summary{color:var(--lp-navy);font-size:17px}
body.public-page-landing .lp-faq-list summary span{background:var(--lp-blue-soft);color:var(--lp-blue)}
body.public-page-landing .lp-faq-list details p{color:var(--lp-muted)}

body.public-page-landing .lp-final-cta{
  position:relative;
  overflow:hidden;
  margin:28px 0 14px;
  padding:54px 58px;
  border:1px solid var(--lp-line);
  border-radius:16px;
  background:var(--lp-paper);
}
body.public-page-landing .lp-final-cta::before{
  content:"";
  position:absolute;
  inset:0 0 auto;
  height:4px;
  background:linear-gradient(90deg,var(--lp-brass) 0 18%,var(--lp-blue) 18% 100%);
}
body.public-page-landing .lp-final-copy>span{color:var(--lp-blue)}
body.public-page-landing .lp-final-copy h2{color:var(--lp-navy)}
body.public-page-landing .lp-final-copy p{color:var(--lp-muted)}
body.public-page-landing .lp-final-primary{background:var(--lp-blue);border-color:var(--lp-blue);border-radius:8px}
body.public-page-landing .lp-final-primary:hover{background:var(--lp-blue-strong);border-color:var(--lp-blue-strong)}
body.public-page-landing .lp-final-login{color:var(--lp-navy)}

@media(max-width:1120px){
  body.public-page-landing .lp-hero{grid-template-columns:1fr;gap:34px;min-height:0}
  body.public-page-landing .lp-hero::before{right:-20vw;top:220px;width:90vw;height:610px}
  body.public-page-landing .lp-control-section,
  body.public-page-landing .lp-faq-section{grid-template-columns:1fr;gap:36px}
  body.public-page-landing .lp-control-intro,
  body.public-page-landing .lp-faq-section .lp-section-heading{position:static;max-width:760px}
  body.public-page-landing .lp-problem-section,
  body.public-page-landing .lp-ag-showcase,
  body.public-page-landing .lp-security-section{padding-inline:44px}
}
@media(max-width:720px){
  body.public-page-landing .public-container{padding-inline:16px;padding-bottom:54px}
  body.public-page-landing .lp-hero{padding:46px 0 54px}
  body.public-page-landing .lp-hero::before{display:none}
  body.public-page-landing .lp-hero h1{font-size:44px}
  body.public-page-landing .lp-hero-assurances span{width:100%}
  body.public-page-landing .lp-section{padding:70px 0}
  body.public-page-landing .lp-control-section{padding-top:78px}
  body.public-page-landing .lp-control-grid article{grid-template-columns:48px minmax(0,1fr);padding:22px 20px}
  body.public-page-landing .lp-control-icon{width:44px;height:44px}
  body.public-page-landing .lp-problem-section,
  body.public-page-landing .lp-ag-showcase,
  body.public-page-landing .lp-security-section{margin-inline:0;padding:38px 22px;border-radius:14px}
  body.public-page-landing .lp-feature-section{padding-block:72px}
  body.public-page-landing .lp-final-cta{padding:38px 24px}
}

/* V217 RC9 — preuve produit et adoption progressive.
   La landing montre désormais le travail réel avant d'énumérer les fonctions. */
body.public-page-landing .lp-product-proof-section{
  position:relative;
  padding-top:116px;
}
body.public-page-landing .lp-product-proof-section::before{
  content:"";
  position:absolute;
  left:50%;
  top:52px;
  width:118px;
  height:1px;
  transform:translateX(-50%);
  background:linear-gradient(90deg,transparent,var(--lp-brass),transparent);
}
body.public-page-landing .lp-product-proof{
  display:grid;
  grid-template-columns:minmax(250px,.35fr) minmax(0,1fr);
  gap:14px;
  padding:14px;
  overflow:hidden;
  border:1px solid rgba(33,60,73,.18);
  border-radius:20px;
  background:var(--lp-navy);
  box-shadow:0 28px 72px rgba(33,60,73,.14);
}
body.public-page-landing .lp-proof-navigation{
  display:grid;
  align-content:center;
  gap:8px;
  padding:14px 8px 14px 6px;
}
body.public-page-landing .lp-proof-navigation article{
  position:relative;
  display:grid;
  grid-template-columns:32px minmax(0,1fr);
  gap:12px;
  padding:18px 16px;
  border:1px solid transparent;
  border-radius:11px;
  color:rgba(255,255,255,.66);
}
body.public-page-landing .lp-proof-navigation article.active{
  border-color:rgba(221,187,130,.3);
  background:rgba(255,255,255,.075);
  color:#fff;
}
body.public-page-landing .lp-proof-navigation article.active::before{
  content:"";
  position:absolute;
  inset:12px auto 12px -7px;
  width:3px;
  border-radius:999px;
  background:var(--lp-brass);
}
body.public-page-landing .lp-proof-navigation article>span{
  padding-top:2px;
  color:rgba(221,187,130,.8);
  font-size:11px;
  font-weight:600;
  letter-spacing:.08em;
}
body.public-page-landing .lp-proof-navigation article>div{
  display:grid;
  grid-template-columns:22px minmax(0,1fr);
  gap:3px 10px;
  align-items:center;
}
body.public-page-landing .lp-proof-navigation .ui-icon{
  grid-row:1 / span 2;
  width:20px;
  height:20px;
  color:currentColor;
}
body.public-page-landing .lp-proof-navigation strong{
  color:inherit;
  font-size:14px;
  font-weight:600;
}
body.public-page-landing .lp-proof-navigation small{
  color:inherit;
  font-size:12px;
  line-height:1.45;
  opacity:.7;
}
body.public-page-landing .lp-proof-workspace{
  min-width:0;
  padding:26px;
  border:1px solid rgba(255,255,255,.18);
  border-radius:13px;
  background:var(--lp-paper);
}
body.public-page-landing .lp-proof-workspace-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:18px;
  padding-bottom:20px;
  border-bottom:1px solid var(--lp-line);
}
body.public-page-landing .lp-proof-workspace-head>div{
  display:grid;
  gap:4px;
}
body.public-page-landing .lp-proof-workspace-head span{
  color:var(--lp-blue);
  font-size:12px;
  font-weight:600;
  letter-spacing:.08em;
  text-transform:uppercase;
}
body.public-page-landing .lp-proof-workspace-head strong{
  color:var(--lp-navy);
  font-size:20px;
  font-weight:600;
}
body.public-page-landing .lp-proof-workspace-head em{
  display:inline-flex;
  align-items:center;
  gap:8px;
  color:var(--lp-muted);
  font-size:12px;
  font-style:normal;
  white-space:nowrap;
}
body.public-page-landing .lp-proof-workspace-head em i{
  width:8px;
  height:8px;
  border-radius:50%;
  background:#3B8A69;
  box-shadow:0 0 0 5px rgba(59,138,105,.11);
}
body.public-page-landing .lp-proof-summary{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:10px;
  margin:18px 0;
}
body.public-page-landing .lp-proof-summary article{
  display:flex;
  align-items:baseline;
  gap:9px;
  min-width:0;
  padding:14px 15px;
  border:1px solid var(--lp-line);
  border-radius:10px;
  background:#FAFAF7;
}
body.public-page-landing .lp-proof-summary span{
  color:var(--lp-navy);
  font-size:23px;
  font-weight:600;
  letter-spacing:-.04em;
}
body.public-page-landing .lp-proof-summary small{
  color:var(--lp-muted);
  font-size:11px;
  line-height:1.3;
}
body.public-page-landing .lp-proof-workspace-grid{
  display:grid;
  grid-template-columns:minmax(0,1.42fr) minmax(235px,.58fr);
  gap:12px;
  align-items:stretch;
}
body.public-page-landing .lp-proof-task-list,
body.public-page-landing .lp-proof-side-panel>div{
  border:1px solid var(--lp-line);
  border-radius:11px;
  background:#fff;
}
body.public-page-landing .lp-proof-task-list{
  overflow:hidden;
}
body.public-page-landing .lp-proof-task-list>header{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  padding:15px 16px;
  border-bottom:1px solid var(--lp-line);
  background:#F7F8F5;
}
body.public-page-landing .lp-proof-task-list>header strong{
  color:var(--lp-navy);
  font-size:13px;
  font-weight:600;
}
body.public-page-landing .lp-proof-task-list>header span{
  color:var(--lp-muted);
  font-size:10px;
  text-transform:uppercase;
  letter-spacing:.07em;
}
body.public-page-landing .lp-proof-task-list article{
  display:grid;
  grid-template-columns:8px minmax(0,1fr) auto;
  gap:12px;
  align-items:center;
  padding:15px 16px;
  border-bottom:1px solid #E8ECEC;
}
body.public-page-landing .lp-proof-task-list article:last-child{border-bottom:0}
body.public-page-landing .lp-proof-task-list article>i{
  width:8px;
  height:8px;
  border-radius:50%;
  background:#8A949D;
}
body.public-page-landing .lp-proof-task-list article.critical>i{background:#B4473D}
body.public-page-landing .lp-proof-task-list article.warning>i{background:#A96F18}
body.public-page-landing .lp-proof-task-list article.success>i{background:#31735A}
body.public-page-landing .lp-proof-task-list article>div{
  display:grid;
  gap:3px;
  min-width:0;
}
body.public-page-landing .lp-proof-task-list article strong{
  overflow:hidden;
  color:var(--lp-ink);
  font-size:12px;
  font-weight:600;
  text-overflow:ellipsis;
  white-space:nowrap;
}
body.public-page-landing .lp-proof-task-list article small{
  overflow:hidden;
  color:var(--lp-muted);
  font-size:10px;
  text-overflow:ellipsis;
  white-space:nowrap;
}
body.public-page-landing .lp-proof-task-list article>span{
  padding:5px 7px;
  border-radius:999px;
  background:#F2F4F3;
  color:#5E6A72;
  font-size:9px;
  font-weight:600;
  white-space:nowrap;
}
body.public-page-landing .lp-proof-task-list article.critical>span{background:#FBECE9;color:#923A33}
body.public-page-landing .lp-proof-task-list article.warning>span{background:#FBF2E3;color:#855611}
body.public-page-landing .lp-proof-task-list article.success>span{background:#EAF4EF;color:#286047}
body.public-page-landing .lp-proof-side-panel{
  display:grid;
  grid-template-rows:auto auto 1fr;
  gap:10px;
}
body.public-page-landing .lp-proof-side-panel>div{padding:15px}
body.public-page-landing .lp-proof-progress{
  display:grid;
  gap:6px;
}
body.public-page-landing .lp-proof-progress>span,
body.public-page-landing .lp-proof-next>span{
  color:var(--lp-blue);
  font-size:9px;
  font-weight:600;
  letter-spacing:.08em;
  text-transform:uppercase;
}
body.public-page-landing .lp-proof-progress strong,
body.public-page-landing .lp-proof-next strong{
  color:var(--lp-navy);
  font-size:12px;
  font-weight:600;
}
body.public-page-landing .lp-proof-progress>div{
  height:6px;
  overflow:hidden;
  border-radius:999px;
  background:#E7ECEC;
}
body.public-page-landing .lp-proof-progress>div i{
  display:block;
  height:100%;
  border-radius:inherit;
  background:linear-gradient(90deg,var(--lp-blue),#7899A6);
}
body.public-page-landing .lp-proof-progress>div .lp-progress-83{width:83%}
body.public-page-landing .lp-proof-progress small,
body.public-page-landing .lp-proof-next small{
  color:var(--lp-muted);
  font-size:10px;
  line-height:1.45;
}
body.public-page-landing .lp-proof-document{
  display:grid;
  grid-template-columns:26px minmax(0,1fr) 18px;
  gap:10px;
  align-items:center;
}
body.public-page-landing .lp-proof-document>.ui-icon:first-child{
  width:24px;
  height:24px;
  color:var(--lp-blue);
}
body.public-page-landing .lp-proof-document>.ui-icon:last-child{
  color:#31735A;
}
body.public-page-landing .lp-proof-document span{
  display:grid;
  gap:3px;
  min-width:0;
}
body.public-page-landing .lp-proof-document strong{
  overflow:hidden;
  color:var(--lp-ink);
  font-size:11px;
  font-weight:600;
  text-overflow:ellipsis;
  white-space:nowrap;
}
body.public-page-landing .lp-proof-document small{color:var(--lp-muted);font-size:9px;line-height:1.35}
body.public-page-landing .lp-proof-next{
  display:grid;
  align-content:center;
  gap:5px;
  background:var(--lp-brass-soft)!important;
  border-color:rgba(184,137,74,.22)!important;
}

body.public-page-landing .lp-adoption-section{
  display:grid;
  grid-template-columns:minmax(290px,.78fr) minmax(0,1.22fr);
  gap:64px;
  align-items:center;
  margin:28px 0;
  padding:72px;
  border:1px solid rgba(184,137,74,.24);
  border-radius:18px;
  background:linear-gradient(135deg,#F4ECE0 0%,#F8F5EF 58%,#EDF3F5 100%);
}
body.public-page-landing .lp-adoption-intro h2{
  margin:10px 0 16px;
  color:var(--lp-navy);
  font-size:clamp(36px,3.8vw,54px);
  line-height:1.06;
  letter-spacing:-.048em;
}
body.public-page-landing .lp-adoption-intro p{
  margin:0 0 24px;
  color:var(--lp-muted);
  line-height:1.7;
}
body.public-page-landing .lp-inline-cta-dark{color:var(--lp-navy)}
body.public-page-landing .lp-adoption-steps{
  display:grid;
  gap:10px;
}
body.public-page-landing .lp-adoption-steps article{
  display:grid;
  grid-template-columns:38px minmax(0,1fr);
  gap:16px;
  padding:19px 20px;
  border:1px solid rgba(33,60,73,.12);
  border-radius:12px;
  background:rgba(254,254,252,.82);
  backdrop-filter:blur(8px);
}
body.public-page-landing .lp-adoption-steps article>span{
  padding-top:3px;
  color:var(--lp-brass);
  font-size:11px;
  font-weight:600;
  letter-spacing:.08em;
}
body.public-page-landing .lp-adoption-steps article>div{
  display:grid;
  grid-template-columns:28px minmax(0,1fr);
  gap:3px 12px;
  align-items:center;
}
body.public-page-landing .lp-adoption-steps .ui-icon{
  grid-row:1 / span 2;
  width:23px;
  height:23px;
  color:var(--lp-blue);
}
body.public-page-landing .lp-adoption-steps strong{
  color:var(--lp-navy);
  font-size:15px;
  font-weight:600;
}
body.public-page-landing .lp-adoption-steps p{
  margin:0;
  color:var(--lp-muted);
  font-size:12px;
  line-height:1.5;
}

@media(max-width:1120px){
  body.public-page-landing .lp-product-proof{grid-template-columns:1fr}
  body.public-page-landing .lp-proof-navigation{grid-template-columns:repeat(3,minmax(0,1fr));padding:4px}
  body.public-page-landing .lp-proof-navigation article{grid-template-columns:26px minmax(0,1fr);padding:15px 12px}
  body.public-page-landing .lp-proof-navigation article.active::before{inset:auto 12px -5px;width:auto;height:3px}
  body.public-page-landing .lp-adoption-section{grid-template-columns:1fr;gap:36px;padding:52px 44px}
}
@media(max-width:780px){
  body.public-page-landing .lp-product-proof-section{padding-top:82px}
  body.public-page-landing .lp-product-proof{padding:8px;border-radius:15px}
  body.public-page-landing .lp-proof-navigation{grid-template-columns:1fr}
  body.public-page-landing .lp-proof-navigation article:not(.active){display:none}
  body.public-page-landing .lp-proof-workspace{padding:17px 14px}
  body.public-page-landing .lp-proof-workspace-head{align-items:flex-start}
  body.public-page-landing .lp-proof-workspace-head em{display:none}
  body.public-page-landing .lp-proof-summary{grid-template-columns:1fr}
  body.public-page-landing .lp-proof-summary article{justify-content:space-between}
  body.public-page-landing .lp-proof-workspace-grid{grid-template-columns:1fr}
  body.public-page-landing .lp-proof-task-list article{grid-template-columns:8px minmax(0,1fr)}
  body.public-page-landing .lp-proof-task-list article>span{grid-column:2;justify-self:start}
  body.public-page-landing .lp-adoption-section{padding:38px 22px;border-radius:14px}
  body.public-page-landing .lp-adoption-steps article{grid-template-columns:30px minmax(0,1fr);padding:17px 15px}
}

/* V218 RC10 — conversion, transparence produit et accessibilité publique.
   La landing clarifie la prochaine action sans rallonger artificiellement la promesse. */
body.public-page-landing .lp-secondary-cta{
  min-height:54px;
  border:1px solid rgba(33,60,73,.22);
  border-radius:8px;
  background:rgba(254,254,252,.74);
  color:var(--lp-navy);
  box-shadow:none;
}
body.public-page-landing .lp-secondary-cta:hover{
  border-color:rgba(62,114,136,.42);
  background:var(--lp-paper);
  color:var(--lp-blue-strong);
}
body.public-page-landing #product-demo{scroll-margin-top:104px}
body.public-page-landing .lp-boundary-section{
  display:grid;
  grid-template-columns:minmax(300px,.76fr) minmax(0,1.24fr);
  gap:68px;
  align-items:center;
  margin:30px 0;
  padding:76px 72px;
  border:1px solid var(--lp-line);
  border-radius:18px;
  background:linear-gradient(135deg,#F8F5EE 0%,#FEFEFC 54%,#F1ECE3 100%);
}
body.public-page-landing .lp-boundary-copy h2{
  margin:10px 0 17px;
  color:var(--lp-navy);
  font-size:clamp(36px,3.9vw,54px);
  line-height:1.06;
  letter-spacing:-.048em;
}
body.public-page-landing .lp-boundary-copy>p{
  margin:0;
  color:var(--lp-muted);
  line-height:1.72;
}
body.public-page-landing .lp-boundary-assurance{
  display:grid;
  grid-template-columns:28px minmax(0,1fr);
  gap:13px;
  margin-top:28px;
  padding-top:22px;
  border-top:1px solid rgba(33,60,73,.12);
}
body.public-page-landing .lp-boundary-assurance .ui-icon{
  width:24px;
  height:24px;
  color:#31735A;
}
body.public-page-landing .lp-boundary-assurance span{display:grid;gap:4px}
body.public-page-landing .lp-boundary-assurance strong{color:var(--lp-navy);font-size:14px;font-weight:600}
body.public-page-landing .lp-boundary-assurance small{color:var(--lp-muted);font-size:12px;line-height:1.55}
body.public-page-landing .lp-boundary-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:14px;
  align-items:stretch;
}
body.public-page-landing .lp-boundary-card{
  min-width:0;
  padding:25px 23px;
  border:1px solid var(--lp-line);
  border-radius:13px;
  background:rgba(254,254,252,.9);
}
body.public-page-landing .lp-boundary-card-primary{
  border-color:rgba(62,114,136,.22);
  background:var(--lp-navy);
}
body.public-page-landing .lp-boundary-card>span{
  display:block;
  margin-bottom:19px;
  color:var(--lp-blue);
  font-size:11px;
  font-weight:600;
  letter-spacing:.1em;
  text-transform:uppercase;
}
body.public-page-landing .lp-boundary-card-primary>span{color:#DDBB82}
body.public-page-landing .lp-boundary-card ul{
  display:grid;
  gap:15px;
  margin:0;
  padding:0;
  list-style:none;
}
body.public-page-landing .lp-boundary-card li{
  display:grid;
  grid-template-columns:22px minmax(0,1fr);
  gap:11px;
  align-items:start;
}
body.public-page-landing .lp-boundary-card .ui-icon{
  width:20px;
  height:20px;
  color:var(--lp-blue);
}
body.public-page-landing .lp-boundary-card strong{
  color:var(--lp-navy);
  font-size:13px;
  font-weight:600;
  line-height:1.45;
}
body.public-page-landing .lp-boundary-card-primary .ui-icon{color:#DDBB82}
body.public-page-landing .lp-boundary-card-primary strong{color:#fff}
body.public-page-landing :is(a,button,summary,select):focus-visible{
  outline:3px solid rgba(62,114,136,.28);
  outline-offset:3px;
}
body.public-page-landing .lp-faq-list summary{cursor:pointer}
body.public-page-landing .lp-faq-list details[open] summary span{transform:rotate(45deg)}
body.public-page-landing .lp-faq-list summary span{transition:transform .18s ease}
@media(max-width:1120px){
  body.public-page-landing .lp-boundary-section{grid-template-columns:1fr;gap:36px;padding:54px 44px}
}
@media(max-width:720px){
  body.public-page-landing .lp-hero-actions{align-items:stretch}
  body.public-page-landing .lp-primary-cta,
  body.public-page-landing .lp-secondary-cta{width:100%;justify-content:center}
  body.public-page-landing .lp-boundary-section{padding:38px 22px;border-radius:14px}
  body.public-page-landing .lp-boundary-grid{grid-template-columns:1fr}
}
@media(prefers-reduced-motion:reduce){
  body.public-page-landing *,
  body.public-page-landing *::before,
  body.public-page-landing *::after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important}
}


/* V219 RC11 — consolidation chromatique de la landing.
   Aucun bleu électrique historique ne doit rester visible dans la page publique. */
body.public-page-landing .lp-stage-glow-one{
  background:rgba(184,137,74,.12);
}
body.public-page-landing .lp-stage-glow-two{
  background:rgba(96,112,122,.10);
}
body.public-page-landing .lp-app-shell,
body.public-page-landing .lp-preview-main{
  background:#F5F6F3;
}
body.public-page-landing .lp-preview-sidebar nav span.active{
  background:rgba(255,255,255,.09);
  color:#fff;
  box-shadow:inset 3px 0 0 var(--lp-brass);
}
body.public-page-landing .lp-control-icon,
body.public-page-landing .lp-feature-icon,
body.public-page-landing .lp-faq-list summary span{
  background:var(--lp-blue-soft);
  color:var(--lp-blue-strong);
}
body.public-page-landing .lp-proof-progress>div i{
  background:linear-gradient(90deg,var(--lp-blue-strong),#7899A6);
}
body.public-page-landing .lp-boundary-card-primary .ui-icon,
body.public-page-landing .lp-section-kicker-light{
  color:#DDBB82;
}
body.public-page-landing .lp-final-cta::before{
  background:linear-gradient(90deg,var(--lp-brass) 0 22%,var(--lp-blue-strong) 22% 100%);
}
body.public-page-landing :is(a,button,summary,select):focus-visible{
  outline-color:rgba(184,137,74,.42);
}

/* V220 RC12 — grandes surfaces publiques harmonisées :
   suppression du panneau décoratif du hero, section fonctionnalités uniforme et grille équilibrée. */

/* V245 RC37 — centre documentaire unifié */
.document-command-head .page-actions{align-items:center}
.document-command-stats{margin-bottom:18px}
.document-command-stats .stat-card{min-height:96px;text-decoration:none;color:inherit;border-radius:12px;box-shadow:none}
.document-command-stats .stat-card.is-selected{border-color:var(--accent);box-shadow:inset 0 0 0 1px var(--accent)}
.document-status-tabs{margin:14px 0 18px}
.document-status-tabs a span{display:inline-grid;place-items:center;min-width:22px;height:22px;padding:0 7px;border-radius:999px;background:rgba(15,23,42,.07);font-size:12px}
.documents-filter-card{margin-bottom:0;box-shadow:none}
.share-filter-grid{grid-template-columns:minmax(260px,1fr) auto;align-items:end}
.operational-table-card{box-shadow:none;border-radius:12px}
.operational-actions{display:flex;align-items:center;justify-content:flex-end;gap:8px;flex-wrap:wrap}
.operational-actions .btn{min-height:36px;padding:8px 12px}
.action-menu{position:relative}
.action-menu>summary{min-height:36px;display:inline-flex;align-items:center;justify-content:center;padding:8px 12px;border:1px solid var(--line);border-radius:9px;background:var(--surface);font-weight:600;cursor:pointer;list-style:none}
.action-menu>summary::-webkit-details-marker{display:none}
.action-menu-panel{position:absolute;z-index:20;right:0;top:calc(100% + 7px);min-width:190px;padding:7px;border:1px solid var(--line);border-radius:10px;background:var(--surface);box-shadow:0 16px 36px rgba(15,23,42,.14)}
.action-menu-panel form{margin:0}
.action-menu-panel button{width:100%;justify-content:flex-start;background:transparent;color:var(--text);border:0;box-shadow:none;text-align:left}
.action-menu-panel button:hover{background:var(--surface-muted)}
.document-form-card{box-shadow:none;border-radius:12px}
@media(max-width:760px){
  .share-filter-grid{grid-template-columns:1fr}
  .operational-actions{justify-content:flex-start}
  .action-menu-panel{left:0;right:auto}
  .document-command-head .page-actions{width:100%}
  .document-command-head .page-actions .btn{flex:1}
}

/* V248 RC40 — unification complète des pages Outils et Support.
   Une seule hiérarchie : retour tertiaire, outil secondaire, action métier principale. */
.tools-command-shell,
.support-command-shell{display:block;min-width:0}
.tools-command-shell>.page-head,
.support-command-shell>.page-head{margin-bottom:20px}
.tools-command-head,
.support-command-head{align-items:flex-end}
.tools-command-head .page-actions,
.support-command-head .page-actions{display:flex;align-items:center;justify-content:flex-end;gap:8px;flex-wrap:wrap}
.tools-command-shell .card,
.support-command-shell .card{box-shadow:none;border-radius:12px}
.tools-command-shell .page-head h1,
.support-command-shell .page-head h1{font-size:clamp(28px,2.3vw,36px)}
.tools-command-shell .page-head p,
.support-command-shell .page-head p{max-width:760px}
.tool-header-menu{position:relative;margin:0}
.tool-header-menu>summary{list-style:none}
.tool-header-menu>summary::-webkit-details-marker{display:none}
.tool-header-menu .row-action-menu-panel{z-index:40;min-width:220px}
.tool-header-menu .row-action-menu-panel a{display:flex;align-items:center;min-height:38px;padding:9px 10px;border-radius:7px;text-decoration:none;color:var(--text);font-size:13px;font-weight:600}
.tool-header-menu .row-action-menu-panel a:hover{background:var(--panel-soft)}
.tool-guardrail{padding:18px 20px;border-left:3px solid var(--brass);background:#fbf9f4}
.tool-guardrail h2{margin:0 0 6px;font-size:17px}
.tool-guardrail p{margin:0;color:var(--muted)}
.tool-feature-card{padding:20px;border-left:3px solid var(--accent);background:linear-gradient(135deg,#fff,#f7fafc)}
.tool-feature-card .section-head{margin:0}
.tool-data-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
.tool-data-card{display:flex;flex-direction:column;min-height:330px;padding:20px}
.tool-data-card h2{margin-bottom:10px;font-size:20px}
.tool-data-card code{display:block;max-height:96px;overflow:auto;padding:10px;border-radius:8px;line-height:1.45}
.tool-card-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:auto;padding-top:15px}
.tool-upload-form{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;align-items:end;padding-top:14px;border-top:1px solid var(--line)}
.tool-upload-form label{grid-column:1/-1;margin-top:0}
.tool-upload-form button{min-height:44px}
.tool-result-card{max-width:860px;padding:24px}
.tool-result-stats{grid-template-columns:repeat(3,minmax(0,1fr));margin-bottom:20px}
.tool-result-stats .stat{box-shadow:none;border-radius:10px}
.tool-workflow-grid{grid-template-columns:minmax(0,1.55fr) minmax(280px,.65fr);align-items:start;gap:18px}
.tool-form-panel,.tool-side-panel,.tool-detail-panel,.tool-document-summary{box-shadow:none}
.tool-side-panel{position:sticky;top:84px}
.tool-command-summary{border-top:3px solid var(--brand);background:linear-gradient(145deg,#fff,#f8fafb)}
.tool-command-summary .portfolio-control-metrics a{box-shadow:none}
.tool-filter-card{padding:17px 18px;background:var(--panel-soft)}
.tool-filter-grid{display:grid;grid-template-columns:minmax(260px,1fr) auto;gap:14px;align-items:end}
.tool-filter-grid>label{margin:0}
.tool-filter-card .filter-submit{align-self:end}
.tool-control-layout{grid-template-columns:minmax(0,1.35fr) minmax(300px,.65fr);gap:18px;align-items:start}
.tool-link-list{display:grid;gap:8px}
.tool-link-list .quick-tile{min-height:64px;padding:13px 14px;border-radius:9px;box-shadow:none}
.tools-command-shell .portfolio-correction-section,
.tools-command-shell .portfolio-bulk-section{scroll-margin-top:84px}
.tools-command-shell .portfolio-correction-row{border-radius:9px;box-shadow:none}
.tools-command-shell .portfolio-correction-actions{min-width:210px}
.tools-command-shell .portfolio-correction-actions .btn,
.tools-command-shell .portfolio-correction-actions button{min-height:36px;padding:8px 11px}
.tools-command-shell .portfolio-bulk-toolbar{border-radius:10px;background:var(--panel-soft)}
.tools-command-shell .portfolio-bulk-check-card{border-radius:9px;box-shadow:none}
.tools-document-shares .document-command-head .page-actions{gap:8px}
.tools-document-mail .email-modern-grid{align-items:start}
.tools-document-mail .email-preview-shell,
.tools-document-mail .side-card{box-shadow:none}
.tools-email-campaigns .campaign-create-card{border-top:3px solid var(--accent)}
.tools-email-campaigns .campaign-create-grid{gap:14px}
.tools-email-campaigns .email-campaign-stats,
.tools-email-campaign-detail .email-campaign-detail-stats{grid-template-columns:repeat(5,minmax(0,1fr))}
.tools-email-campaigns .email-campaign-stats .stat,
.tools-email-campaign-detail .email-campaign-detail-stats .stat{box-shadow:none;border-radius:10px}
.tools-email-campaigns .email-campaign-filter-grid{grid-template-columns:minmax(260px,1fr) minmax(180px,.35fr) auto;align-items:end}
.tools-email-campaigns .email-campaign-filter-grid .filter-submit{align-self:end}
.tools-email-campaigns .operational-actions,
.tools-email-campaign-detail .operational-actions{min-width:150px}
.tools-email-campaigns .action-menu-panel a{display:block;padding:9px 10px;border-radius:7px;text-decoration:none;color:var(--text);font-weight:600}
.tools-email-campaigns .action-menu-panel a:hover{background:var(--panel-soft)}
.tools-email-campaign-detail .campaign-launch-card{margin-bottom:20px}
.tools-email-campaign-detail .campaign-draft-actions{gap:16px}
.tools-email-campaign-detail .campaign-actions .btn.danger{margin-left:auto}
.support-command-stats{grid-template-columns:repeat(3,minmax(0,1fr));margin-bottom:16px}
.support-command-stats .stat{display:block;text-decoration:none;color:inherit;box-shadow:none;border-radius:10px;transition:border-color .14s ease,background .14s ease}
.support-command-stats .stat:hover{border-color:var(--line-strong);background:var(--panel-soft)}
.support-command-stats .stat.is-selected{border-color:rgba(40,103,168,.46);background:var(--accent-soft)}
.support-filter-card{padding:17px 18px;background:var(--panel-soft)}
.support-filter-card .row{grid-template-columns:minmax(260px,1fr) minmax(180px,.35fr)}
.support-filter-card .filter-submit{margin-top:12px}
.support-status-tabs{margin:0}
.support-table-card{box-shadow:none}
.support-table-card td.actions{min-width:110px}
.support-form-card{max-width:900px;margin:0 auto;padding:22px}
.support-form-card .form-section{border-radius:10px;box-shadow:none}
.support-form-card .form-section-title{display:grid;grid-template-columns:32px minmax(0,1fr);justify-content:initial;gap:12px}
.form-step-index{width:30px;height:30px;display:grid;place-items:center;border-radius:50%;background:var(--brand);color:#fff;font-size:12px;font-weight:700}
.support-ticket-summary{grid-template-columns:repeat(3,minmax(0,1fr));margin-bottom:18px}
.support-ticket-summary .stat{box-shadow:none;border-radius:10px;min-width:0}
.support-ticket-summary .stat span{font-size:18px;line-height:1.25;overflow-wrap:anywhere}
.support-command-layout{grid-template-columns:minmax(0,1.55fr) minmax(280px,.55fr);gap:18px;align-items:start}
.support-thread-card,.support-pilot-card{box-shadow:none}
.support-thread-card .message-thread{display:grid;gap:10px}
.support-thread-card .message-bubble{border-radius:10px;box-shadow:none}
.support-reply-form{margin-top:18px;padding-top:18px;border-top:1px solid var(--line)}
.support-side{display:grid;gap:14px;position:sticky;top:84px}
.support-side>.card{margin:0}
.support-pilot-card .section-head{margin-bottom:10px}
@media(max-width:1080px){
  .tool-workflow-grid,.tool-control-layout,.support-command-layout{grid-template-columns:1fr}
  .tool-side-panel,.support-side{position:static}
  .tools-email-campaigns .email-campaign-stats,
  .tools-email-campaign-detail .email-campaign-detail-stats{grid-template-columns:repeat(3,minmax(0,1fr))}
}
@media(max-width:780px){
  .tools-command-head,.support-command-head{align-items:flex-start}
  .tools-command-head .page-actions,.support-command-head .page-actions{width:100%;justify-content:flex-start}
  .tools-command-head .page-actions>.btn,.support-command-head .page-actions>.btn{flex:1}
  .tool-header-menu{flex:1}
  .tool-header-menu>summary{width:100%}
  .tool-header-menu .row-action-menu-panel{left:0;right:auto;width:min(280px,calc(100vw - 44px))}
  .tool-data-grid{grid-template-columns:1fr}
  .tool-upload-form{grid-template-columns:1fr}
  .tool-upload-form label{grid-column:auto}
  .tool-result-stats,.support-command-stats,.support-ticket-summary{grid-template-columns:1fr}
  .tool-filter-grid,.tools-email-campaigns .email-campaign-filter-grid{grid-template-columns:1fr}
  .support-filter-card .row{grid-template-columns:1fr}
  .support-filter-card .filter-submit,.tool-filter-card .filter-submit{width:100%}
  .support-filter-card .filter-submit>* ,.tool-filter-card .filter-submit>*{flex:1}
  .tools-email-campaigns .email-campaign-stats,
  .tools-email-campaign-detail .email-campaign-detail-stats{grid-template-columns:repeat(2,minmax(0,1fr))}
  .support-form-card{padding:16px}
}
@media(max-width:520px){
  .tools-command-head .page-actions,.support-command-head .page-actions{display:grid;grid-template-columns:1fr}
  .tool-header-menu{width:100%}
  .tools-email-campaigns .email-campaign-stats,
  .tools-email-campaign-detail .email-campaign-detail-stats{grid-template-columns:1fr}
  .tool-card-actions{display:grid;grid-template-columns:1fr}
  .tool-card-actions .btn{width:100%}
}

/* V249 RC41 — portefeuille copropriétés, copropriétaires et lots. */
.portfolio-command-shell{display:grid;gap:18px;min-width:0}
.portfolio-command-head{margin:0;align-items:flex-start}
.portfolio-command-head>div:first-child{max-width:760px}
.portfolio-command-head .page-actions{display:flex;align-items:center;justify-content:flex-end;gap:9px;flex-wrap:wrap}
.portfolio-command-stats{margin:0;grid-template-columns:repeat(4,minmax(0,1fr))}
.portfolio-command-stats .stat-card{min-height:104px;border-radius:12px;box-shadow:none}
.portfolio-command-stats .stat-card.is-warn{border-color:rgba(180,83,9,.22);background:var(--warning-soft,#fffbeb)}
.portfolio-command-stats a.stat-card{text-decoration:none;color:inherit}
.portfolio-command-stats a.stat-card:hover{transform:none;border-color:var(--accent)}
.portfolio-filter-card{margin:0;padding:18px;box-shadow:none;border-radius:12px}
.portfolio-owner-filter-grid{grid-template-columns:minmax(260px,1fr) auto;align-items:end}
.portfolio-lot-filter-grid{grid-template-columns:minmax(260px,1fr) auto;align-items:end}
.portfolio-filter-actions{display:flex;align-items:center;justify-content:flex-end;gap:8px;flex-wrap:wrap}
.portfolio-list-toolbar{margin:0;gap:12px;align-items:center}
.portfolio-table-card{margin:0;border-radius:12px;box-shadow:none;overflow:visible}
.portfolio-table-card table{margin:0}
.portfolio-table-card th{white-space:nowrap}
.portfolio-table-card tr.is-warning-row td:first-child{box-shadow:inset 3px 0 0 rgba(180,83,9,.55)}
.portfolio-table-card tr.is-archived-row{opacity:.78}
.portfolio-actions{min-width:240px}
.portfolio-actions>.btn{min-height:36px;padding:8px 11px}
.portfolio-actions .action-menu{margin:0}
.portfolio-actions .action-menu>summary{min-height:36px}
.portfolio-record-meta{margin-top:13px}
.portfolio-detail-head{padding-bottom:2px}
.portfolio-detail-head .page-actions{max-width:620px}
.portfolio-detail-stats .stat-card strong{font-size:1.55rem}
.portfolio-detail-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;min-width:0}
.portfolio-panel-card{margin:0;border-radius:12px;box-shadow:none;min-width:0}
.portfolio-panel-card .section-head{margin-bottom:14px}
.portfolio-readiness-card{border-left:4px solid var(--line)}
.portfolio-readiness-card.ok{border-left-color:var(--success,#16a34a)}
.portfolio-readiness-card.warn{border-left-color:var(--warning,#d97706)}
.portfolio-readiness-card.danger{border-left-color:var(--danger,#dc2626)}
.portfolio-lot-register,.portfolio-attach-card,.portfolio-owner-lots,.portfolio-lot-owners,.portfolio-notes-card{margin:0}
.portfolio-detail-list{display:grid;gap:0}
.portfolio-detail-list .detail-row{padding:13px 0;border-bottom:1px solid var(--line)}
.portfolio-detail-list .detail-row:last-child{border-bottom:0}
.portfolio-operations-grid{align-items:start}
.portfolio-inline-form{margin:0}
.portfolio-inline-form-grid{display:grid;grid-template-columns:minmax(260px,1.4fr) minmax(170px,.8fr) minmax(150px,.65fr) auto;gap:12px;align-items:end}
.portfolio-inline-form-grid label{margin:0}
.portfolio-inline-form-grid .filter-submit{display:flex;align-items:flex-end}
.portfolio-form-head{padding-bottom:2px}
.portfolio-form-card{width:100%;max-width:none;margin:0;padding:22px;border-radius:12px;box-shadow:none}
.portfolio-form{gap:16px}
.portfolio-form .form-section{margin:0;border:1px solid var(--line);border-radius:12px;padding:20px;background:var(--panel,#fff);box-shadow:none}
.portfolio-form .form-section.soft{background:var(--panel-soft)}
.portfolio-form-section-title{display:flex;align-items:flex-start;gap:12px;margin-bottom:16px}
.portfolio-form-section-title>div{min-width:0}
.portfolio-form-section-title .form-step-index,.portfolio-lot-form details>summary .form-step-index{display:inline-flex;align-items:center;justify-content:center;flex:0 0 30px;width:30px;height:30px;border-radius:50%;background:var(--accent-soft);color:var(--accent-strong,var(--accent));font-weight:700;font-style:normal}
.portfolio-form .form-section-title h2{margin:0}
.portfolio-form .form-section-title p{margin:4px 0 0}
.portfolio-form .form-actions-sticky{margin:2px 0 0;padding:16px 0 0;background:transparent;border-top:1px solid var(--line);box-shadow:none}
.portfolio-lot-form .lot-advanced-section{padding:0;overflow:hidden}
.portfolio-lot-form .lot-advanced-section>summary{display:flex;align-items:center;gap:12px;padding:18px 20px;cursor:pointer;background:var(--panel-soft)}
.portfolio-lot-form .lot-advanced-section>summary>span{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.portfolio-lot-form .lot-advanced-section>summary em{width:100%;padding-left:42px}
.portfolio-lot-form .lot-advanced-content{padding:20px}

@media(max-width:1050px){
  .portfolio-command-stats{grid-template-columns:repeat(2,minmax(0,1fr))}
  .portfolio-inline-form-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .portfolio-inline-form-grid .filter-submit{justify-content:flex-start}
}
@media(max-width:820px){
  .portfolio-command-head{display:grid;grid-template-columns:1fr;gap:14px}
  .portfolio-command-head .page-actions{justify-content:flex-start;max-width:none}
  .portfolio-detail-grid{grid-template-columns:1fr}
  .portfolio-owner-filter-grid,.portfolio-lot-filter-grid{grid-template-columns:1fr}
  .portfolio-filter-actions{justify-content:flex-start}
  .portfolio-actions{min-width:210px}
}
@media(max-width:620px){
  .portfolio-command-shell{gap:14px}
  .portfolio-command-stats{grid-template-columns:1fr 1fr;gap:10px}
  .portfolio-command-stats .stat-card{min-height:88px;padding:14px}
  .portfolio-command-head .page-actions,.portfolio-command-head .page-actions>.btn,.portfolio-command-head .tool-header-menu,.portfolio-command-head .tool-header-menu>summary{width:100%}
  .portfolio-command-head .tool-header-menu .row-action-menu-panel{left:0;right:auto;width:min(300px,calc(100vw - 38px))}
  .portfolio-inline-form-grid{grid-template-columns:1fr}
  .portfolio-inline-form-grid .filter-submit,.portfolio-inline-form-grid .filter-submit button{width:100%}
  .portfolio-form-card{padding:14px}
  .portfolio-form .form-section{padding:16px}
  .portfolio-form .form-actions-sticky{display:grid;grid-template-columns:1fr;gap:8px}
  .portfolio-form .form-actions-sticky>.btn,.portfolio-form .form-actions-sticky>button{width:100%}
  .portfolio-panel-card .section-head{display:grid;grid-template-columns:1fr;gap:10px}
  .portfolio-panel-card .section-head>.btn,.portfolio-panel-card .section-head .page-actions,.portfolio-panel-card .section-head .page-actions>.btn{width:100%}
}
@media(max-width:430px){
  .portfolio-command-stats{grid-template-columns:1fr}
  .portfolio-command-stats .stat-card{min-height:78px}
}

/* V250 RC42 — cabinet, équipe, journal, sauvegardes et stockage. */
.organization-command-shell{display:grid;gap:18px;min-width:0}
.organization-command-head{margin:0;align-items:flex-start}
.organization-command-head>div:first-child{max-width:780px}
.organization-command-head .page-actions{display:flex;align-items:center;justify-content:flex-end;gap:9px;flex-wrap:wrap}
.organization-command-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;min-width:0}
.organization-command-stats .stat-card{display:flex;flex-direction:column;justify-content:center;min-height:104px;padding:17px;border:1px solid var(--line);border-radius:12px;background:var(--panel,#fff);box-shadow:none;text-decoration:none;color:inherit;min-width:0}
.organization-command-stats .stat-card:hover{transform:none;border-color:var(--accent)}
.organization-command-stats .stat-card>span{font-size:.78rem;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:.04em}
.organization-command-stats .stat-card>strong{display:block;margin-top:7px;font-size:1.45rem;line-height:1.15;overflow-wrap:anywhere}
.organization-command-stats .stat-card>small{display:block;margin-top:5px;color:var(--muted);font-size:.82rem}
.organization-command-stats .stat-card.is-warn{border-color:rgba(180,83,9,.24);background:var(--warning-soft,#fffbeb)}
.organization-command-stats .stat-card.is-danger{border-color:rgba(220,38,38,.24);background:var(--danger-soft,#fef2f2)}
.organization-backup-stats{grid-template-columns:repeat(5,minmax(0,1fr))}
.organization-form-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(270px,340px);gap:18px;align-items:start;min-width:0}
.organization-form-card{margin:0;padding:22px;border-radius:12px;box-shadow:none;min-width:0}
.organization-form{gap:16px}
.organization-form .form-section{margin:0;padding:20px;border:1px solid var(--line);border-radius:12px;background:var(--panel,#fff);box-shadow:none}
.organization-form .form-section.soft{background:var(--panel-soft)}
.organization-form-section-title{display:flex;align-items:flex-start;gap:12px;margin-bottom:16px}
.organization-form-section-title .form-step-index{display:inline-flex;align-items:center;justify-content:center;flex:0 0 30px;width:30px;height:30px;border-radius:50%;background:var(--accent-soft);color:var(--accent-strong,var(--accent));font-weight:700;font-style:normal}
.organization-form-section-title h2{margin:0}
.organization-form-section-title p{margin:4px 0 0;color:var(--muted)}
.organization-form-actions{margin-top:2px;padding-top:16px;border-top:1px solid var(--line);background:transparent;box-shadow:none}
.organization-command-side{display:grid;gap:16px;min-width:0}
.organization-command-side>.card,.organization-policy-card,.organization-alert-card{margin:0;border-radius:12px;box-shadow:none}
.organization-readiness-card{border-left:4px solid var(--line)}
.organization-readiness-card.ok{border-left-color:var(--success,#16a34a)}
.organization-readiness-card.warn{border-left-color:var(--warning,#d97706)}
.organization-missing-list{display:grid;gap:7px;margin:14px 0 0;padding-left:20px}
.organization-side-links{display:grid;gap:8px}
.organization-side-links a{display:flex;flex-direction:column;gap:3px;padding:12px;border:1px solid var(--line);border-radius:10px;text-decoration:none;color:inherit;background:var(--panel-soft)}
.organization-side-links a:hover{border-color:var(--accent)}
.organization-side-links span{font-size:.84rem;color:var(--muted)}
.organization-list-toolbar{margin:0;display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}
.organization-list-toolbar .selection-tabs a span{margin-left:5px;color:inherit;opacity:.72}
.organization-table-card{margin:0;border-radius:12px;box-shadow:none;overflow:visible}
.organization-table-card table{margin:0}
.organization-table-card th{white-space:nowrap}
.organization-table-card tr.is-warning-row td:first-child{box-shadow:inset 3px 0 0 rgba(180,83,9,.58)}
.organization-table-card tr.is-muted-row{opacity:.75}
.organization-row-actions{min-width:170px}
.organization-row-actions .row-action-group{display:flex;align-items:center;justify-content:flex-end;gap:8px;flex-wrap:wrap}
.organization-row-actions form{margin:0}
.organization-role-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:14px}
.organization-role-card{padding:14px;border:1px solid var(--line);border-radius:10px;background:var(--panel-soft)}
.organization-role-card p{margin:5px 0 0;color:var(--muted);font-size:.86rem}
.organization-stat-email{font-size:1rem!important;line-height:1.3!important}
.organization-filter-card{margin:0;padding:18px;border-radius:12px;box-shadow:none}
.organization-activity-filter-grid{display:grid;grid-template-columns:minmax(230px,1.4fr) minmax(180px,1fr) minmax(190px,1fr) minmax(145px,.65fr) minmax(145px,.65fr) auto;gap:12px;align-items:end}
.organization-filter-actions{display:flex;align-items:center;justify-content:flex-end;gap:8px;flex-wrap:wrap}
.organization-activity-card{margin:0;border-radius:12px;box-shadow:none}
.organization-activity-timeline{display:grid;gap:0}
.organization-activity-item{position:relative;display:grid;grid-template-columns:16px minmax(0,1fr);gap:12px;padding:16px 0;border-bottom:1px solid var(--line)}
.organization-activity-item:last-child{border-bottom:0}
.organization-activity-dot{width:10px;height:10px;margin-top:5px;border-radius:50%;background:var(--accent)}
.organization-activity-item.warning .organization-activity-dot{background:var(--warning,#d97706)}
.organization-activity-item.danger .organization-activity-dot{background:var(--danger,#dc2626)}
.organization-activity-main{min-width:0}
.organization-activity-line{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.organization-activity-meta{display:flex;align-items:center;gap:8px 14px;flex-wrap:wrap;margin-top:7px;color:var(--muted);font-size:.82rem}
.organization-activity-meta code{font-size:.76rem}
.organization-activity-details{margin:8px 0 0;overflow-wrap:anywhere}
.organization-backup-layout{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(280px,.75fr);gap:18px;align-items:start}
.organization-backup-create-card,.organization-backup-policy{margin:0}
.organization-backup-option{display:flex;align-items:flex-start;gap:10px;padding:15px;border:1px solid var(--line);border-radius:10px;background:var(--panel-soft)}
.organization-backup-option>span{display:flex;flex-direction:column;gap:4px}
.organization-backup-option small{color:var(--muted)}
.organization-backup-history{margin:0}
.organization-storage-hero{margin:0;padding:22px;border-radius:12px;box-shadow:none}
.organization-storage-hero.warn{border-color:rgba(180,83,9,.28);background:var(--warning-soft,#fffbeb)}
.organization-storage-hero.danger{border-color:rgba(220,38,38,.28);background:var(--danger-soft,#fef2f2)}
.organization-storage-main{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;margin-bottom:16px}
.organization-storage-main h2{margin:4px 0 6px}
.organization-storage-percent{font-size:2rem;line-height:1;font-weight:700}
.organization-storage-percent.warn{color:var(--warning,#d97706)}
.organization-storage-percent.danger{color:var(--danger,#dc2626)}
.organization-alert-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.organization-alert-grid .organization-alert-card{min-height:120px}
.organization-storage-breakdown-card{margin:0;border-radius:12px;box-shadow:none}
.organization-storage-breakdown{display:grid;gap:0}
.organization-storage-row{display:grid;grid-template-columns:minmax(180px,.75fr) minmax(0,1.25fr);gap:18px;align-items:center;padding:15px 0;border-bottom:1px solid var(--line)}
.organization-storage-row:last-child{border-bottom:0}
.organization-storage-row-copy{display:flex;flex-direction:column;gap:4px}
.organization-storage-row-main{display:grid;grid-template-columns:minmax(140px,1fr) auto auto;gap:12px;align-items:center}
.organization-storage-backups{margin:0}

@media(max-width:1150px){
  .organization-backup-stats{grid-template-columns:repeat(3,minmax(0,1fr))}
  .organization-activity-filter-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
  .organization-filter-actions{justify-content:flex-start}
}
@media(max-width:920px){
  .organization-command-stats{grid-template-columns:repeat(2,minmax(0,1fr))}
  .organization-form-layout,.organization-backup-layout{grid-template-columns:1fr}
  .organization-command-side{grid-template-columns:repeat(2,minmax(0,1fr))}
  .organization-activity-filter-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .organization-storage-row{grid-template-columns:1fr}
}
@media(max-width:720px){
  .organization-command-head{display:grid;grid-template-columns:1fr;gap:14px}
  .organization-command-head .page-actions{justify-content:flex-start;width:100%}
  .organization-command-side,.organization-alert-grid{grid-template-columns:1fr}
  .organization-role-grid{grid-template-columns:1fr}
  .organization-storage-row-main{grid-template-columns:1fr auto}
  .organization-storage-row-main .quota-bar{grid-column:1/-1}
}
@media(max-width:560px){
  .organization-command-shell{gap:14px}
  .organization-command-stats,.organization-backup-stats{grid-template-columns:1fr}
  .organization-command-stats .stat-card{min-height:84px;padding:14px}
  .organization-command-head .page-actions,.organization-command-head .page-actions>.btn,.organization-command-head .tool-header-menu,.organization-command-head .tool-header-menu>summary{width:100%}
  .organization-form-card{padding:14px}
  .organization-form .form-section{padding:16px}
  .organization-form-actions{display:grid;grid-template-columns:1fr;gap:8px}
  .organization-form-actions>.btn,.organization-form-actions>button{width:100%}
  .organization-activity-filter-grid{grid-template-columns:1fr}
  .organization-filter-actions,.organization-filter-actions>*{width:100%}
  .organization-list-toolbar{align-items:flex-start}
  .organization-list-toolbar .selection-tabs{width:100%}
  .organization-list-toolbar .selection-tabs a{flex:1;text-align:center}
  .organization-storage-main{display:grid;grid-template-columns:1fr}
  .organization-storage-percent{font-size:1.7rem}
  .organization-storage-row-main{grid-template-columns:1fr}
  .organization-storage-row-main .quota-bar{grid-column:auto}
}

/* V251 RC43 — accueil connecté, démarrage, recherche et aide. */
.home-command-shell{display:grid;gap:18px}
.home-command-head{margin:0}
.home-command-head .page-actions{display:flex;align-items:center;justify-content:flex-end;gap:8px;flex-wrap:wrap}
.dashboard-command-card,.onboarding-readiness-card,.onboarding-priority-card,.onboarding-warning-card,.onboarding-steps-card,.search-command-card,.search-guidance-card,.search-state-card,.help-workflow-card,.help-glossary-card,.help-control-card,.help-rule-card{margin:0;border-radius:12px;box-shadow:none}
.dashboard-command-card .section-head,.onboarding-command-shell .section-head,.search-command-shell .section-head,.help-command-shell .section-head{margin-bottom:14px}
.dashboard-command-card .btn,.onboarding-command-shell .btn,.search-command-shell .btn,.help-command-shell .btn{min-height:40px}
.home-progress-card{margin:0;border-radius:12px;box-shadow:none}
.home-quick-links{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:10px}
.home-quick-links>a{display:flex;align-items:center;gap:10px;min-height:70px;padding:13px;border:1px solid var(--line);border-radius:12px;background:#fff;text-decoration:none;transition:border-color .15s ease,background .15s ease,transform .15s ease}
.home-quick-links>a:hover{border-color:#bfdbfe;background:#f8fbff;transform:translateY(-1px)}
.home-quick-links .ui-icon{width:20px;height:20px;color:#475569;flex:none}
.home-quick-links span{display:grid;gap:2px;min-width:0}
.home-quick-links strong{font-size:12.5px;color:#0f172a}
.home-quick-links em{font-size:11px;font-style:normal;color:#64748b}
.home-link-list{display:grid;gap:0;border:1px solid var(--line);border-radius:12px;overflow:hidden;background:#fff}
.home-link-list>a{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:14px 15px;border-bottom:1px solid var(--line);text-decoration:none;background:#fff}
.home-link-list>a:last-child{border-bottom:0}
.home-link-list>a:hover{background:#f8fafc}
.home-link-list>a>span{display:grid;gap:3px;min-width:0}
.home-link-list strong{font-size:13px;color:#0f172a}
.home-link-list em{font-size:12px;font-style:normal;color:#64748b}
.home-link-list b{font-size:11px;font-weight:600;color:#2563eb;white-space:nowrap}

.onboarding-command-stats{grid-template-columns:repeat(4,minmax(0,1fr))}
.onboarding-readiness-card{padding:20px}
.onboarding-progress-value{display:inline-flex;align-items:center;justify-content:center;min-width:68px;padding:8px 11px;border:1px solid var(--line);border-radius:999px;background:#f8fafc;font-size:13px;font-weight:700;color:#0f172a}
.onboarding-progress-track{height:9px;margin:4px 0 18px;border-radius:999px;background:#e2e8f0;overflow:hidden}
.onboarding-progress-track i{display:block;width:var(--progress);height:100%;border-radius:inherit;background:#2563eb}
.onboarding-foundation-grid{margin-top:0}
.onboarding-priority-list{display:grid;gap:8px}
.onboarding-priority-row{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:14px 15px;border:1px solid var(--line);border-left-width:4px;border-radius:12px;background:#fff;text-decoration:none}
.onboarding-priority-row.info{border-left-color:#60a5fa}.onboarding-priority-row.warn{border-left-color:#f59e0b}.onboarding-priority-row.danger{border-left-color:#ef4444}.onboarding-priority-row.ok{border-left-color:#22c55e}
.onboarding-priority-row:hover{background:#f8fafc}
.onboarding-priority-row>span{display:grid;gap:3px;min-width:0}
.onboarding-priority-row strong{font-size:13.5px;color:#0f172a}
.onboarding-priority-row em{font-size:12px;font-style:normal;color:#64748b}
.onboarding-priority-row b{font-size:11.5px;font-weight:600;color:#2563eb;white-space:nowrap}
.onboarding-warning-card{border-color:#fde68a;background:#fffdf5}
.onboarding-steps-list{display:grid;gap:0;border:1px solid var(--line);border-radius:12px;overflow:hidden}
.onboarding-step-row{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:14px;align-items:center;padding:15px;background:#fff;border-bottom:1px solid var(--line)}
.onboarding-step-row:last-child{border-bottom:0}
.onboarding-step-row.done{background:#f8fdf9}
.onboarding-step-row>div{min-width:0}
.onboarding-step-row strong{display:block;font-size:13.5px;color:#0f172a}
.onboarding-step-row p{margin:3px 0 0;font-size:12px;color:#64748b}
.onboarding-step-row.done .form-step-index{background:#dcfce7;color:#047857;border-color:#bbf7d0}
.onboarding-reference-grid{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(320px,.85fr);gap:16px}
.onboarding-reference-grid>.card{margin:0;border-radius:12px;box-shadow:none}
.onboarding-ordered-plan{gap:8px}
.onboarding-ordered-plan li{border-radius:11px;background:#f8fafc}

.search-command-form{display:grid;gap:14px}
.search-command-form .form-section-title{margin:0}
.search-command-card{padding:20px}
.search-command-stats{grid-template-columns:repeat(3,minmax(0,1fr))}
.search-command-stats .ops-stat:nth-child(3) strong{font-size:1rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.search-command-results{margin:0}
.search-command-group{padding:18px}
.search-state-card{padding:22px}
.search-state-card.is-warn{border-color:#fde68a;background:#fffdf5}
.search-empty-actions{justify-content:flex-start;margin-top:16px}
.search-shortcut-list{grid-template-columns:repeat(2,minmax(0,1fr));border:0;gap:10px;overflow:visible;background:transparent}
.search-shortcut-list>a{border:1px solid var(--line);border-radius:12px}

.help-command-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
.help-command-card{display:grid;grid-template-columns:auto minmax(0,1fr);gap:14px;align-items:start;margin:0;padding:18px;border-radius:12px;box-shadow:none}
.help-command-card h2{margin:2px 0 6px;font-size:17px}
.help-command-card p{margin:0 0 13px;color:#64748b}
.help-workflow-list{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin:0;padding:0;list-style:none}
.help-workflow-list li{display:grid;grid-template-columns:auto minmax(0,1fr);gap:10px;align-items:start;padding:14px;border:1px solid var(--line);border-radius:12px;background:#f8fafc}
.help-workflow-list strong{display:block;font-size:13px;color:#0f172a}
.help-workflow-list p{margin:4px 0 0;font-size:12px;color:#64748b}
.help-reference-grid{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(320px,.9fr);gap:16px}
.help-glossary-list{display:grid;gap:8px}
.help-glossary-item{border:1px solid var(--line);border-radius:11px;background:#fff}
.help-glossary-item summary{cursor:pointer;padding:13px 14px;font-size:13px;font-weight:600;color:#0f172a}
.help-glossary-item p{margin:0;padding:0 14px 14px;font-size:12.5px;color:#64748b}
.help-rule-card{padding:20px;border-color:#bfdbfe;background:#f8fbff}
.help-rule-card h2{margin:4px 0 8px}
.help-rule-card p:last-child{margin-bottom:0;color:#475569}

@media(max-width:1100px){
  .home-quick-links{grid-template-columns:repeat(3,minmax(0,1fr))}
  .help-workflow-list{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:900px){
  .onboarding-command-stats{grid-template-columns:repeat(2,minmax(0,1fr))}
  .onboarding-reference-grid,.help-reference-grid{grid-template-columns:1fr}
  .help-command-grid{grid-template-columns:1fr}
}
@media(max-width:720px){
  .home-command-head{display:grid;grid-template-columns:1fr;gap:14px}
  .home-command-head .page-actions{justify-content:flex-start;width:100%}
  .onboarding-step-row{grid-template-columns:auto minmax(0,1fr)}
  .onboarding-step-row>.btn{grid-column:1/-1;width:100%}
  .search-shortcut-list{grid-template-columns:1fr}
}
@media(max-width:560px){
  .home-command-shell{gap:14px}
  .home-command-head .page-actions,.home-command-head .page-actions>.btn,.home-command-head .row-action-menu,.home-command-head .row-action-menu>summary{width:100%}
  .home-quick-links,.onboarding-command-stats,.search-command-stats,.help-workflow-list{grid-template-columns:1fr}
  .onboarding-priority-row{align-items:flex-start;flex-direction:column}
  .onboarding-priority-row b{white-space:normal}
  .onboarding-readiness-card,.search-command-card,.search-state-card{padding:16px}
  .help-command-card{grid-template-columns:1fr}
  .search-empty-actions,.search-empty-actions>.btn{width:100%}
}

/* V261 RC53 — landing publique consolidée selon le système visuel RC. */
body.public-page-landing{
  background:#f7f8fa;
}
body.public-page-landing .public-container{width:min(1240px,calc(100% - 32px));padding-top:0}
body.public-page-landing .landing-command-shell{display:grid;gap:0}
body.public-page-landing .lp-hero{
  grid-template-columns:minmax(0,.9fr) minmax(520px,1.1fr);
  gap:48px;
  min-height:0;
  padding:72px 0 58px;
  align-items:center;
}
body.public-page-landing .lp-hero-copy{max-width:620px;padding:0}
body.public-page-landing .lp-hero h1{max-width:620px;font-size:clamp(46px,6vw,72px);line-height:.98;letter-spacing:-.065em}
body.public-page-landing .lp-hero-lead{max-width:600px;font-size:17px;line-height:1.65}
body.public-page-landing .lp-hero-actions{gap:10px;margin:28px 0 20px}
body.public-page-landing .lp-primary-cta,
body.public-page-landing .lp-secondary-cta{
  min-height:46px;
  border-radius:10px;
  padding:0 18px;
  box-shadow:none;
}
body.public-page-landing .lp-hero-assurances{gap:10px 16px}
body.public-page-landing .lp-hero-assurances span{min-height:28px}
body.public-page-landing .lp-product-stage{padding:22px 0 30px}
body.public-page-landing .lp-app-window{
  transform:none;
  border-radius:14px;
  box-shadow:0 18px 46px rgba(15,23,42,.11);
}
body.public-page-landing .lp-window-bar{height:42px}
body.public-page-landing .lp-window-status{
  display:inline-flex;
  align-items:center;
  min-height:24px;
  padding:0 8px;
  border:1px solid rgba(62,114,136,.30);
  border-radius:999px;
  background:rgba(62,114,136,.08);
  color:#2E5D70;
  font-weight:600;
}
body.public-page-landing .lp-floating-card{border-radius:11px;box-shadow:0 12px 28px rgba(15,23,42,.1)}
body.public-page-landing .lp-product-stage-caption{
  position:relative;
  z-index:3;
  margin:12px 4px 0;
  color:#64748b;
  font-size:11px;
  line-height:1.5;
  text-align:right;
}
body.public-page-landing .lp-proof-bar{
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:12px;
  margin:0 0 12px;
  padding:0;
  border:0;
  background:transparent;
}
body.public-page-landing .lp-proof-bar div{
  min-height:86px;
  padding:17px 18px;
  border:1px solid #dbe2ea;
  border-radius:12px;
  background:#fff;
}
body.public-page-landing .lp-proof-bar div:last-child{border-right:1px solid #dbe2ea}
body.public-page-landing .lp-section{
  padding:72px 0;
  border-top:1px solid rgba(203,213,225,.72);
}
body.public-page-landing .lp-section-heading{margin-bottom:28px}
body.public-page-landing .lp-section-heading h2,
body.public-page-landing .lp-ag-copy h2,
body.public-page-landing .lp-security-intro h2,
body.public-page-landing .lp-final-copy h2{font-size:clamp(34px,4vw,52px);line-height:1.03}
body.public-page-landing .lp-control-grid,
body.public-page-landing .lp-workflow-line,
body.public-page-landing .lp-feature-grid,
body.public-page-landing .lp-security-grid{gap:12px}
body.public-page-landing .lp-control-grid article,
body.public-page-landing .lp-workflow-line article,
body.public-page-landing .lp-feature-card,
body.public-page-landing .lp-security-grid article,
body.public-page-landing .lp-before-card,
body.public-page-landing .lp-after-card,
body.public-page-landing .lp-boundary-card{
  border-radius:12px;
  box-shadow:none;
}
body.public-page-landing .lp-product-proof{border-radius:14px;box-shadow:none}
body.public-page-landing .lp-proof-workspace{border-radius:11px}
body.public-page-landing .lp-proof-workspace-head>div{display:grid;gap:3px}
body.public-page-landing .lp-proof-workspace-head>div>span{
  color:#64748b;
  font-size:10px;
  font-weight:600;
  letter-spacing:.06em;
  text-transform:uppercase;
}
body.public-page-landing .lp-proof-workspace-head>div>strong{font-size:14px}
body.public-page-landing .lp-ag-showcase,
body.public-page-landing .lp-adoption-section,
body.public-page-landing .lp-boundary-section,
body.public-page-landing .lp-final-cta{border-radius:16px;box-shadow:none}
body.public-page-landing .lp-faq-list{gap:8px}
body.public-page-landing .lp-faq-list details{border-radius:12px;box-shadow:none}
body.public-page-landing .lp-final-cta{margin-top:12px;padding:42px}
body.public-page-landing .lp-final-actions{gap:12px}
body.public-page-landing .lp-final-primary{min-height:46px;border-radius:10px;box-shadow:none}

@media(max-width:1080px){
  body.public-page-landing .lp-hero{grid-template-columns:1fr;gap:28px;padding-top:54px}
  body.public-page-landing .lp-hero-copy{max-width:760px}
  body.public-page-landing .lp-proof-bar{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:720px){
            body.public-page-landing .public-container{width:calc(100% - 24px)}
  body.public-page-landing .lp-hero{padding:42px 0 42px}
  body.public-page-landing .lp-hero h1{font-size:clamp(42px,13vw,58px)}
  body.public-page-landing .lp-product-stage{padding-top:8px}
  body.public-page-landing .lp-floating-card{display:none}
  body.public-page-landing .lp-product-stage-caption{text-align:left}
  body.public-page-landing .lp-proof-bar{grid-template-columns:1fr}
  body.public-page-landing .lp-proof-bar div{min-height:0}
  body.public-page-landing .lp-section{padding:54px 0}
  body.public-page-landing .lp-final-cta{padding:30px 22px}
}
@media(max-width:480px){
      body.public-page-landing .lp-window-address{padding-left:12px;padding-right:12px}
}

/* V262 RC54 — fiches opérationnelles unifiées : intervention, prestataire et support. */
.record-command-shell{display:block;min-width:0}
.record-command-head{align-items:flex-end;margin-bottom:18px}
.record-command-head .record-meta{margin-top:12px}
.record-command-actions{display:flex;align-items:center;justify-content:flex-end;gap:8px;flex-wrap:wrap}
.record-summary-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:18px}
.record-summary-card{min-width:0;min-height:108px;border:1px solid var(--line);border-radius:12px;background:#fff;padding:15px;display:flex;flex-direction:column;justify-content:space-between;box-shadow:none}
.record-summary-card>span{color:var(--muted);font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.075em}
.record-summary-card>strong{display:block;margin-top:8px;color:var(--text);font-size:21px;line-height:1.12;letter-spacing:-.035em;overflow-wrap:anywhere}
.record-summary-card>em{display:block;margin-top:6px;color:var(--muted);font-size:12px;font-style:normal}
.record-summary-card.is-ok{border-color:#bbf7d0;background:#f7fef9}
.record-summary-card.is-warn{border-color:#fde68a;background:#fffdf4}
.record-summary-card.is-danger{border-color:#fecaca;background:#fffafa}
.record-summary-card.is-info{border-color:#bfdbfe;background:#f8fbff}
.record-command-layout{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(300px,.55fr);gap:18px;align-items:start;min-width:0}
.record-main-stack,.record-side-stack{display:grid;gap:18px;min-width:0}
.record-side-stack{position:sticky;top:24px}
.record-command-card{min-width:0;border-radius:12px;box-shadow:none}
.record-command-card .section-head{margin-bottom:14px;padding-bottom:12px;border-bottom:1px solid var(--line)}
.record-command-card .section-head .btn{flex:none}
.record-details-list{margin:0}
.record-content-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}
.record-note-copy{color:var(--text);font-size:14px;line-height:1.65;overflow-wrap:anywhere}
.record-verdict{border:1px solid var(--line);border-left-width:4px;border-radius:11px;background:#fff;padding:13px;margin-bottom:12px}
.record-verdict strong{display:block;margin-bottom:4px}
.record-verdict p{margin:0;color:var(--muted);font-size:13px;line-height:1.5}
.record-verdict.is-ok{border-color:#bbf7d0;border-left-color:#16a34a;background:#f7fef9}
.record-verdict.is-warn{border-color:#fde68a;border-left-color:#f59e0b;background:#fffdf4}
.record-list{display:grid;gap:9px}
.record-list-item{display:flex;align-items:center;justify-content:space-between;gap:12px;min-width:0;border:1px solid var(--line);border-radius:11px;background:#fff;padding:12px;text-decoration:none;color:inherit;transition:border-color .14s ease,background .14s ease}
.record-list-item:hover{border-color:var(--line-strong);background:var(--panel-soft)}
.record-list-item>div{min-width:0}
.record-list-item strong{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.record-list-item p{margin:4px 0 0;color:var(--muted);font-size:12px;line-height:1.35}
.record-list-item.is-warn{border-left:4px solid #f59e0b}
.record-list-item.is-danger{border-left:4px solid #dc2626}
.record-action-list{display:grid;gap:8px}
.record-action-list a{display:grid;gap:2px;border:1px solid var(--line);border-radius:10px;background:#fff;padding:11px;text-decoration:none;color:inherit}
.record-action-list a:hover{border-color:var(--line-strong);background:var(--panel-soft)}
.record-action-list span{color:var(--muted);font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.065em}
.record-action-list strong{font-size:13px}
.record-control-form{margin-top:14px;padding-top:14px;border-top:1px solid var(--line)}
.record-timeline .timeline-body{box-shadow:none}
.support-record-thread{display:grid;gap:10px}
.support-record-thread .message-bubble{box-shadow:none;border-radius:11px}
.support-record-layout .support-reply-card .form-actions{justify-content:flex-end}
@media(max-width:1050px){.record-command-layout{grid-template-columns:1fr}.record-side-stack{position:static;grid-template-columns:repeat(2,minmax(0,1fr))}.support-record-layout .record-side-stack{grid-template-columns:1fr}}
@media(max-width:780px){.record-summary-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.record-content-grid,.record-side-stack{grid-template-columns:1fr}.record-command-head{align-items:flex-start}.record-command-actions{width:100%;justify-content:flex-start}.record-list-item{align-items:flex-start}}
@media(max-width:520px){.record-summary-grid{grid-template-columns:1fr}.record-summary-card{min-height:0}.record-command-actions{display:grid;grid-template-columns:1fr}.record-command-actions .btn{width:100%}.record-list-item{display:grid}.record-list-item .pill{justify-self:start}.record-command-card .section-head{display:grid;gap:10px}.record-command-card .section-head .btn{width:100%}}

/* V263 RC55 — headers structurels collés au viewport, sans coins arrondis. */
body.app-public .public-topbar,
body.app-logged .app-top-menu,
body.app-logged .mobile-topbar,
body.app-admin .admin-topbar{
  top:0!important;
  margin-top:0!important;
  border-radius:0!important;
  box-shadow:none!important;
}


/* V265 RC57 — gouttières internes uniformes sur toute la landing.
   Chaque section de premier niveau conserve un espace sûr entre son contenu et le bord. */
body.public-page-landing .landing-command-shell{
  --lp-section-gutter:clamp(30px,4.5vw,64px);
}
body.public-page-landing .landing-command-shell>section{
  box-sizing:border-box;
  padding-inline:var(--lp-section-gutter);
}
@media(max-width:860px){
  body.public-page-landing .landing-command-shell{
    --lp-section-gutter:clamp(22px,5vw,36px);
  }
}
@media(max-width:520px){
  body.public-page-landing .landing-command-shell{
    --lp-section-gutter:20px;
  }
}


/* V267 RC59 — barre de preuves landing sans ombre. */
body.public-page-landing .lp-proof-bar{
  box-shadow:none;
}

/* V276 - harden the authenticated shell grid when a later layer is missing or stale. */
@media (min-width:1101px){
  body.app-logged .app-shell{
    display:grid!important;
    grid-template-columns:264px minmax(0,1fr)!important;
    min-width:0!important;
  }

  body.app-logged aside.sidebar{
    grid-column:1!important;
    width:264px!important;
    max-width:264px!important;
    min-width:264px!important;
  }

  body.app-logged .main-shell{
    grid-column:2!important;
    width:auto!important;
    min-width:0!important;
    margin-left:0!important;
  }
  body.app-logged .app-top-menu{
    box-sizing:border-box!important;
    width:100%!important;
    max-width:none!important;
    margin:0!important;
  }
  body.app-logged main.container.app-container{
    box-sizing:border-box!important;
    width:1240px!important;
    max-width:calc(100% - 56px)!important;
    margin:0 0 0 56px!important;
  }
}
