/* Police unique : Public Sans (licence OFL, static/fonts/PublicSans-LICENSE.md), hébergée localement. */
@font-face{font-family:"Public Sans";font-style:normal;font-weight:400;font-display:swap;src:url("/static/fonts/PublicSans-Regular.woff2") format("woff2")}
@font-face{font-family:"Public Sans";font-style:italic;font-weight:400;font-display:swap;src:url("/static/fonts/PublicSans-Italic.woff2") format("woff2")}
@font-face{font-family:"Public Sans";font-style:normal;font-weight:600;font-display:swap;src:url("/static/fonts/PublicSans-SemiBold.woff2") format("woff2")}
@font-face{font-family:"Public Sans";font-style:normal;font-weight:700;font-display:swap;src:url("/static/fonts/PublicSans-Bold.woff2") format("woff2")}
@font-face{font-family:"Public Sans";font-style:normal;font-weight:800;font-display:swap;src:url("/static/fonts/PublicSans-ExtraBold.woff2") format("woff2")}
@font-face{font-family:"Public Sans";font-style:normal;font-weight:900;font-display:swap;src:url("/static/fonts/PublicSans-Black.woff2") format("woff2")}
/* Jetons de design (lot 4, 2026-09). Toute nouvelle règle utilise ces variables
   plutôt que des valeurs codées en dur. */
:root{
  --color-primary:#176551;
  --color-text:#1b2d2a;
  --color-text-muted:#52665d;
  --color-warning-bg:#fff0d2;
  --color-warning-text:#765012;
  --color-danger:#b42318;
  --color-tint:#e8eee9;
  --dark-bg:#14221e;
  --dark-surface:#1d302a;
  --dark-raised:#294139;
  --dark-border:#385148;
  --dark-text:#e5eee9;
  --text-xs:.72rem;
  --text-sm:.78rem;
  --text-base:.85rem;
  --text-md:1rem;
  --text-lg:1.35rem;
  --text-xl:2rem;
  --radius-sm:8px;
  --radius-md:12px;
  --radius-lg:18px;
  --radius-pill:999px;
  --space-1:.25rem;
  --space-2:.5rem;
  --space-3:.75rem;
  --space-4:1rem;
  --space-5:1.5rem;
  --space-6:2rem;
}
:root{font-family:"Public Sans",system-ui,sans-serif;color:var(--color-text);background:#f4f6f4;font-size:15px;line-height:1.5;font-synthesis:none}*{box-sizing:border-box}body{margin:0;min-width:320px}button,input,select,textarea{font:inherit}button{cursor:pointer}a{color:inherit}h1,h2,h3,p{margin-top:0}h1{font-size:clamp(1.8rem,3vw,2.55rem);line-height:1.15;letter-spacing:-.035em}h2{font-size:1.15rem;line-height:1.3;letter-spacing:-.02em}small{font-size:var(--text-sm)}[hidden]{display:none!important}.muted{color:#667873}.eyebrow{font-size:var(--text-xs);letter-spacing:.15em;font-weight:800;color:#508075;margin:0 0 .55rem;text-transform:uppercase}.button{display:inline-flex;align-items:center;justify-content:center;gap:.65rem;min-height:42px;padding:.66rem 1.05rem;border-radius:var(--radius-sm);border:1px solid transparent;font-weight:750;text-decoration:none;white-space:nowrap;transition:background .15s ease,transform .15s ease,box-shadow .15s ease}.button:hover{transform:translateY(-1px);box-shadow:0 5px 14px #163d3421}.button:disabled{opacity:.52;cursor:not-allowed;transform:none}.button.primary{background:var(--color-primary);color:#fff}.button.primary:hover{background:#104d3f}.button.dark{background:var(--brand-forest);color:#fff}.button.light{background:#f4fcf7;color:#164b3e}.button.outline{background:#fff;border-color:#cddbd4;color:#245748}.button.wide{width:100%}.button.small-button{min-height:37px;padding:.45rem .85rem;font-size:var(--text-base)}.text-button,.link-button,.back-button{border:0;background:none;color:#1d6958;font-weight:750;padding:.25rem 0}.text-button:hover,.link-button:hover,.back-button:hover{text-decoration:underline}.icon-button{border:0;background:var(--color-tint);border-radius:var(--radius-sm);width:32px;height:32px;font-size:1.4rem;line-height:1}.form-error{color:#a73f32;min-height:1.2rem;font-weight:650}

/* Sign in */
.login-screen{min-height:100vh;display:grid;grid-template-columns:minmax(300px,.9fr) minmax(390px,1.1fr);background:#fff}.login-art{background:var(--brand-forest);position:relative;overflow:hidden;display:flex;align-items:flex-end;padding:3.8rem;color:var(--color-tint)}.login-art p{position:relative;z-index:2;font-size:clamp(3.2rem,6.5vw,7.4rem);line-height:.9;font-weight:850;letter-spacing:-.07em;margin:0}.art-grid{position:absolute;inset:0;background:linear-gradient(#ffffff0e 1px,transparent 1px),linear-gradient(90deg,#ffffff0e 1px,transparent 1px);background-size:52px 52px;transform:rotate(-12deg) scale(1.3)}.art-building{position:absolute;width:57%;height:42%;right:-2%;top:17%;background:var(--brand-green);transform:skewY(-7deg);border:2px solid #77a48b;box-shadow:-24px 25px 0 #164d42}.art-building span{position:absolute;top:17%;width:17%;height:34%;background:#acd2b8;box-shadow:0 14px 0 #7aac91}.art-building span:nth-child(1){left:13%}.art-building span:nth-child(2){left:42%}.art-building span:nth-child(3){left:71%}.art-sun{width:155px;height:155px;border-radius:50%;background:#d9bb78;position:absolute;right:10%;top:7%;filter:blur(.5px)}.login-panel{display:flex;flex-direction:column;justify-content:center;max-width:560px;width:100%;padding:4rem min(7vw,6rem);margin:auto}.brand-mark{width:51px;height:51px;display:grid;place-items:center;background:var(--color-primary);color:#fff;border-radius:var(--radius-md);font-size:1.2rem;font-weight:900;letter-spacing:-.1em;margin-bottom:2.5rem}.brand-mark span{color:#c6d980}.brand-mark.small{width:42px;height:42px;margin:0;font-size:var(--text-md);border-radius:var(--radius-md);background:#2f7662}.login-panel h1{max-width:510px;font-size:clamp(2.5rem,4vw,4.1rem);margin-bottom:1rem}.login-panel .muted{max-width:470px;margin-bottom:2.5rem}.login-form{display:grid;gap:.65rem}.login-form label{font-weight:750;margin-top:.45rem}.login-form input{height:48px;border-radius:var(--radius-sm);border:1px solid #cfdbd4;padding:.75rem .9rem;background:#fff}.login-form button{margin-top:.75rem;height:49px}.demo-help{background:#eef7f1;color:#235343;border:1px solid #cde6d4;padding:1rem;border-radius:var(--radius-sm);margin-top:1rem;font-size:var(--text-base)}

/* Shell */
.app-shell{min-height:100vh;display:grid;grid-template-columns:234px minmax(0,1fr)}.sidebar{background:var(--brand-forest);color:var(--brand-border);padding:1.65rem 1rem;display:flex;flex-direction:column;min-height:100vh;position:sticky;top:0;height:100vh}.side-brand{display:flex;align-items:center;gap:.75rem;padding:.2rem .55rem 2rem}.side-brand strong{display:block;color:#fff;font-size:1.25rem;line-height:1}.side-brand small{display:block;letter-spacing:.1em;font-size:.58rem;font-weight:800;margin-top:.35rem;color:#9ecab1}.side-nav{display:grid;gap:.42rem}.nav-button{display:flex;align-items:center;gap:.8rem;width:100%;text-align:left;border:0;border-radius:var(--radius-sm);background:transparent;color:#c3d8cc;padding:.72rem .85rem;font-weight:700}.nav-button span{font-size:1.25rem;width:22px;text-align:center}.nav-button.active,.nav-button:hover{background:#2c6555;color:#fff}.sidebar-bottom{margin-top:auto;padding:.7rem .55rem}.demo-badge{display:inline-block;background:#e9f1cb;color:#415b2d;padding:.28rem .55rem;border-radius:var(--radius-sm);font-size:.68rem;font-weight:850;letter-spacing:.06em;text-transform:uppercase}.user-card{border-top:1px solid #ffffff24;margin-top:1.1rem;padding-top:1.15rem;display:flex;align-items:center;gap:.65rem}.user-card strong,.user-card small{display:block}.user-card strong{font-size:var(--text-base);color:#fff}.user-card small{font-size:var(--text-xs);color:#b5d1c1}.avatar{display:grid;place-items:center;border-radius:50%;width:37px;height:37px;flex:0 0 37px;background:var(--brand-border);color:#235040;font-weight:850}.sidebar-bottom .text-button{color:#bddec8;margin-top:.9rem;font-size:var(--text-sm)}.main-content{min-width:0}.topbar{height:78px;background:#fff;border-bottom:1px solid #e1e8e3;display:flex;justify-content:space-between;align-items:center;padding:0 clamp(1.3rem,3vw,3.2rem);gap:1rem}.topbar .eyebrow{margin:0}.topbar strong{font-size:var(--text-md)}.top-actions{display:flex;align-items:center;gap:.75rem}.view{width:100%;max-width:none;margin:0;padding:2rem clamp(1.3rem,3vw,3.2rem) 4rem}.page-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:1.5rem;margin:0 0 1.5rem}.page-heading h1{margin:0 0 .35rem}.page-heading .muted{margin:0}.panel{background:#fff;border:1px solid var(--brand-border);border-radius:var(--radius-lg);box-shadow:0 5px 24px #214c3510}.panel-heading{display:flex;justify-content:space-between;align-items:center;gap:.7rem;margin-bottom:1.2rem}.panel-heading h2{margin:0}.panel-heading .eyebrow{margin-bottom:.25rem}.stack-list{display:grid;gap:.65rem}.empty-state{padding:2rem;color:#667873;text-align:center;border:1px dashed #cbd9d1;border-radius:var(--radius-md);background:var(--brand-paper)}
.user-switcher{margin-top:1rem}.user-switcher label{display:block;margin-bottom:.35rem;color:#b5d1c1;font-size:var(--text-xs);font-weight:800;text-transform:uppercase;letter-spacing:.05em}.user-switcher select{width:100%;min-height:38px;border:1px solid #ffffff38;border-radius:var(--radius-sm);background:#0f332b;color:#fff;padding:.45rem .55rem}.user-switcher[hidden],.impersonation-banner[hidden]{display:none}.impersonation-banner{display:flex;align-items:center;justify-content:center;gap:.8rem;min-height:54px;padding:.55rem clamp(1rem,3vw,3rem);background:#fff0c7;color:#664c00;border-bottom:1px solid #e6c86c}.impersonation-banner span{font-size:var(--text-base)}.impersonation-banner .button{margin-left:auto;min-height:34px;padding:.4rem .8rem;background:#fff;color:#5d4600;border-color:#d5b446}
@media(max-height:800px) and (min-width:821px){.sidebar{padding-top:1rem}.side-brand{padding-bottom:1rem}.side-nav{gap:.16rem}.nav-button{padding:.5rem .7rem}.user-card{margin-top:.65rem;padding-top:.7rem}.user-switcher{margin-top:.55rem}.sidebar-bottom .text-button{margin-top:.5rem}}
@media(max-width:820px){.user-switcher{display:flex;align-items:center;gap:.45rem;margin:0}.user-switcher label{margin:0;white-space:nowrap}.user-switcher select{width:min(220px,38vw)}.impersonation-banner{align-items:flex-start;flex-wrap:wrap;justify-content:flex-start}.impersonation-banner .button{margin-left:0}.impersonation-banner span{flex:1 1 220px}}
@media(max-width:600px){.user-switcher label{display:none}.user-switcher select{width:45vw;min-width:150px}.impersonation-banner{gap:.3rem .7rem}.impersonation-banner strong{flex:1 1 100%}.impersonation-banner .button{width:100%}}

/* Dashboard */
.hero-card{background:#1b5a4b;border-radius:var(--radius-lg);color:#fff;min-height:230px;overflow:hidden;display:flex;justify-content:space-between;padding:2.25rem 2.45rem;position:relative}.hero-card>div:first-child{position:relative;z-index:1;max-width:535px}.hero-card h1{margin:.55rem 0}.hero-card p{color:#d4e7d9;max-width:460px;margin-bottom:1.4rem}.hero-kicker{color:#c9df9e;letter-spacing:.16em;font-size:.67rem;font-weight:850}.hero-illustration{width:37%;min-width:240px;position:absolute;right:0;top:0;bottom:0}.hero-circle{position:absolute;width:250px;height:250px;background:#acd5952b;border-radius:50%;right:3%;top:-7%}.hero-tower{position:absolute;width:100px;height:150px;background:#2c7661;border:1px solid #7ab891;right:21%;bottom:-9%;transform:skewY(-9deg);box-shadow:-18px 18px 0 #124b3f}.hero-tower:after{content:"";position:absolute;inset:18px 18px 25px;background:repeating-linear-gradient(90deg,#acd7bb 0 13px,#367964 13px 28px)}.hero-tower.small-tower{right:55%;width:65px;height:100px;background:#497f69}.hero-line{position:absolute;border:1px solid #a4d6b3;border-radius:50%;width:270px;height:80px;transform:rotate(-20deg);right:1%;top:35%}.hero-line.two{top:52%;right:25%;width:180px}.metrics-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem;margin:1.25rem 0}.metric-card{background:#fff;border:1px solid var(--brand-border);border-radius:15px;padding:1.25rem 1.4rem}.metric-card span,.metric-card small{display:block;color:#697b75}.metric-card span{font-weight:750}.metric-card strong{display:block;font-size:2.65rem;line-height:1.2;color:#194d40;letter-spacing:-.05em;margin:.35rem 0}.metric-card.warning strong{color:#ab642c}.dashboard-grid{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.dashboard-grid .panel{padding:1.45rem}.list-row{display:flex;align-items:center;justify-content:space-between;gap:.75rem;text-align:left;padding:.85rem .25rem;border:0;border-bottom:1px solid var(--color-tint);background:#fff;width:100%;color:#203d35}.list-row:last-child{border-bottom:0}.list-row:hover strong{color:#13705a}.list-row strong,.list-row small{display:block}.list-row strong{font-size:.91rem}.list-row small{color:#73847c;font-size:var(--text-sm);margin-top:.15rem}.list-row .arrow{color:#7fa294;font-size:1.2rem}.date-pill{border-radius:var(--radius-sm);background:#eef5ee;color:#32674f;padding:.35rem .55rem;font-weight:800;font-size:var(--text-xs);white-space:nowrap}

/* Archive */
.filters-panel{background:#fff;border:1px solid var(--brand-border);border-radius:var(--radius-md);padding:.7rem;display:flex;gap:.65rem;align-items:center;margin:0 0 1.2rem}.filters-panel select{min-height:40px;max-width:190px}.filters-panel.compact{justify-content:space-between}.filter-hint{color:#718179;font-size:var(--text-base)}.search-field{display:flex;align-items:center;gap:.55rem;flex:1;color:#678778;padding:0 .7rem}.search-field span{font-size:1.6rem;line-height:1}.search-field input{border:0!important;outline:none;min-width:0;width:100%;background:transparent!important}.report-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:1rem}.report-card{border:1px solid var(--brand-border);border-radius:var(--radius-md);background:#fff;padding:1.25rem;display:flex;flex-direction:column;min-height:205px;text-align:left;color:var(--color-text)}.report-card:hover{border-color:#79aa91;box-shadow:0 9px 25px #194d4020;transform:translateY(-2px)}.report-card-top{display:flex;justify-content:space-between;gap:.8rem;align-items:center;margin-bottom:1.15rem}.report-card h2{font-size:1.1rem;margin:0 0 .55rem}.report-card p{color:#6a7b73;font-size:var(--text-base);margin:0}.report-card-footer{display:flex;align-items:center;justify-content:space-between;border-top:1px solid var(--color-tint);margin-top:auto;padding-top:.9rem;color:#72827a;font-size:var(--text-sm)}.status-badge{border-radius:var(--radius-lg);padding:.33rem .65rem;font-weight:800;font-size:var(--text-xs);white-space:nowrap;background:var(--color-tint);color:#276347}.status-badge.draft{background:var(--color-warning-bg);color:#835c24}.status-badge.archived{background:#eef0f1;color:#626e73}

/* Kanban */
.kanban-board{display:grid;grid-template-columns:repeat(4,minmax(220px,1fr));gap:.9rem;overflow-x:auto;align-items:start}.kanban-column{background:var(--color-tint);border:1px solid var(--brand-border);border-radius:var(--radius-md);min-height:420px;padding:.85rem}.kanban-column[data-status="blocked"]{background:#f7eee9;border-color:#efdcd1}.kanban-column[data-status="done"]{background:#ebf1f1}.kanban-heading{display:flex;justify-content:space-between;align-items:center;margin:.1rem .15rem 1rem}.kanban-heading h2{font-size:.93rem;margin:0}.kanban-count{background:#fff;border-radius:var(--radius-lg);padding:.13rem .5rem;font-size:var(--text-xs);font-weight:800;color:#466b59}.kanban-cards{display:grid;gap:.65rem;min-height:300px}.task-card{background:#fff;border:1px solid var(--brand-border);border-radius:var(--radius-sm);padding:1rem;box-shadow:0 2px 9px #214c350d;cursor:grab}.task-card:active{cursor:grabbing}.task-card h3{font-size:.92rem;margin:.65rem 0 .5rem;line-height:1.35}.task-card p{font-size:var(--text-sm);color:#667b70;margin:.18rem 0}.task-card .task-top{display:flex;justify-content:space-between;align-items:flex-start;gap:.4rem}.priority{font-size:.68rem;font-weight:850;padding:.2rem .43rem;border-radius:5px;background:var(--color-tint);color:#4d7257}.priority.high{background:#fae9d9;color:#a15b25}.priority.low{background:#eaf0f4;color:#597287}.task-card .task-footer{display:flex;justify-content:space-between;align-items:center;gap:.5rem;margin-top:1rem}.due{font-size:var(--text-sm);font-weight:750;color:#507765}.due.overdue{color:#b54532}.task-card select{font-size:var(--text-xs);max-width:120px;min-height:31px;padding:.2rem .35rem}.task-open{background:none;border:0;color:var(--color-primary);font-weight:800;font-size:var(--text-sm);padding:.25rem 0}

/* Editor */
.back-button{margin-bottom:1rem}.report-heading{align-items:center}.editor-layout{display:grid;grid-template-columns:minmax(0,1fr) 265px;gap:1.2rem;align-items:start}.editor-main{display:grid;gap:1rem}.editor-panel{padding:1.5rem}.section-heading{display:flex;gap:.8rem;align-items:flex-start;margin-bottom:1.25rem}.section-heading.separated{border-top:1px solid var(--color-tint);margin-top:1.75rem;padding-top:1.75rem}.section-number{display:grid;place-items:center;background:var(--color-tint);border-radius:var(--radius-sm);width:34px;height:34px;flex:0 0 34px;color:var(--brand-green);font-size:var(--text-sm);font-weight:900}.section-heading h2{margin:0}.section-heading p{color:#718279;font-size:var(--text-base);margin:.15rem 0 0}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}.editor-panel label,.task-dialog label{display:grid;gap:.4rem;font-size:var(--text-base);font-weight:750;color:#40594e}.full-label{display:grid;gap:.4rem;margin-top:1rem;font-size:var(--text-base);font-weight:750;color:#40594e}.label-text{font-size:var(--text-base);font-weight:750;color:#40594e}input,select,textarea{border:1px solid #cddbd2;border-radius:var(--radius-sm);min-height:41px;padding:.58rem .7rem;color:var(--color-text);background:#fff;outline:none}input:focus,select:focus,textarea:focus{border-color:#2f8066;box-shadow:0 0 0 3px #2f806621}input:disabled,textarea:disabled,select:disabled{background:#f1f4f1;color:#65786e}textarea{resize:vertical;line-height:1.5}.building-picker{border:1px solid #cddbd2;border-radius:var(--radius-sm);background:#fff}.building-picker summary{padding:.58rem .7rem;cursor:pointer;color:#2c5144}.building-choices{border-top:1px solid var(--color-tint);padding:.5rem;display:grid;gap:.1rem;max-height:210px;overflow:auto}.building-choices label{display:flex;align-items:center;gap:.6rem;padding:.35rem .4rem;border-radius:var(--radius-sm);font-weight:600}.building-choices label:hover{background:#f0f5f0}.building-choices input{min-height:auto;width:17px;height:17px}.participants-list{display:grid;gap:.55rem}.participant-row{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr) 32px;gap:.55rem;align-items:end}.participant-row label{font-size:var(--text-sm)}.participant-remove{height:41px;border:1px solid var(--brand-border);border-radius:var(--radius-sm);background:#fff;color:#a8564b;font-size:1.25rem}.participant-remove:hover{background:#fff3ef}.sticky-panel{position:sticky;top:1rem;padding:1.2rem;display:grid;gap:.7rem}.sticky-panel .button{min-width:0;white-space:normal;overflow-wrap:anywhere}.sticky-panel h2{margin:0;font-size:var(--text-lg)}.save-state{font-size:var(--text-base);color:#557568;margin:0}.save-state.error{color:#b34334;font-weight:750}.aside-divider{height:1px;background:var(--color-tint);margin:.4rem 0}.aside-note{font-size:var(--text-xs);color:#75857b;margin:.4rem 0 0}.upload-zone{border:1px dashed #9ab6a4;background:#f7faf7;border-radius:var(--radius-md);padding:1.2rem;text-align:center;display:flex!important;align-items:center;flex-direction:column;cursor:pointer;gap:.25rem!important}.upload-zone:hover{background:#edf5ee}.upload-zone input{display:none}.upload-zone strong{color:#205642}.upload-zone small{color:#728375}.upload-zone.disabled{opacity:.55;pointer-events:none}.upload-icon{font-size:1.7rem;color:#32765b}.attachment-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:.7rem;margin-top:1rem}.attachment-item{border:1px solid var(--brand-border);border-radius:var(--radius-sm);overflow:hidden;background:#fff}.attachment-item img{width:100%;height:105px;object-fit:cover;background:var(--color-tint);display:block}.attachment-item a{display:block;text-decoration:none;color:var(--color-primary);font-weight:750;padding:.55rem;font-size:var(--text-sm);overflow-wrap:anywhere}.attachment-item small{display:block;color:#77887d;padding:0 .55rem .55rem}.report-tasks{display:grid;gap:.55rem;margin-bottom:.8rem}.report-task-row{border:1px solid var(--color-tint);border-radius:var(--radius-sm);padding:.75rem;display:flex;justify-content:space-between;gap:.6rem;align-items:center}.report-task-row strong{font-size:var(--text-base)}.report-task-row small{display:block;color:#718279}.amendment-list{display:grid;gap:.6rem}.amendment-item{padding:.8rem;background:#f5f8f5;border-left:3px solid #6f9d7b;border-radius:4px}.amendment-item p{margin:.3rem 0 0;white-space:pre-wrap}.amendment-item small{color:#65786d}

/* Dialog and feedback */
.task-dialog{border:0;border-radius:15px;padding:0;width:min(560px,calc(100vw - 1.5rem));box-shadow:0 20px 90px #0e2a2790}.task-dialog::backdrop{background:#0d2528a6}.task-dialog form{padding:1.5rem;display:grid;gap:.85rem;max-height:90vh;overflow:auto}.dialog-heading{display:flex;justify-content:space-between;align-items:start}.dialog-heading h2{font-size:1.55rem;margin:0}.dialog-actions{display:flex;justify-content:flex-end;gap:.6rem;margin-top:.5rem}.toast{position:fixed;bottom:108px;right:1.3rem;background:var(--brand-forest);color:#fff;max-width:420px;padding:.85rem 1.1rem;border-radius:var(--radius-sm);box-shadow:0 8px 25px #153e3560;z-index:100}.toast.error{background:#8e3d30}.print-page{max-width:850px;margin:2rem auto;padding:1rem 2rem;background:#fff}.print-page h1{border-bottom:3px solid #205c4c;padding-bottom:.7rem}.print-page h2{margin-top:1.7rem}.print-page p{white-space:normal}.print-photo{max-width:420px;max-height:330px;object-fit:contain;margin:.5rem 1rem .5rem 0}.print-button{background:var(--color-primary);color:#fff;border:0;border-radius:var(--radius-sm);padding:.7rem 1rem;float:right}

@media(max-width:1100px){.kanban-board{grid-template-columns:repeat(4,minmax(245px,1fr))}.editor-layout{grid-template-columns:minmax(0,1fr) 230px}.hero-illustration{opacity:.55}}@media(max-width:820px){.app-shell{display:block}.sidebar{position:static;height:auto;min-height:0;padding:.7rem 1rem;display:flex;flex-direction:row;align-items:center;gap:1rem;flex-wrap:wrap}.side-brand{padding:0}.side-brand small{display:none}.side-nav{display:flex;gap:.2rem;overflow:auto;flex:1}.nav-button{white-space:nowrap;width:auto;padding:.5rem .65rem;font-size:var(--text-sm)}.nav-button span{font-size:var(--text-md);width:auto}.sidebar-bottom{margin:0;padding:0}.sidebar-bottom .demo-badge,.user-card,.sidebar-bottom .text-button{display:none}.topbar{height:65px}.dashboard-grid{grid-template-columns:1fr}.editor-layout{grid-template-columns:1fr}.editor-aside{order:-1}.sticky-panel{position:static;display:flex;flex-wrap:wrap;align-items:center}.sticky-panel .button{width:auto}.sticky-panel .eyebrow,.sticky-panel h2,.sticky-panel .save-state{flex:1 1 100%}.sticky-panel .aside-divider,.sticky-panel .aside-note{display:none}}@media(max-width:600px){.login-screen{display:block}.login-art{min-height:145px;padding:1rem 1.5rem}.login-art p{font-size:3.2rem}.art-building{height:75%;width:34%;top:18%}.art-sun{width:80px;height:80px}.login-panel{padding:2rem 1.4rem}.brand-mark{margin-bottom:1.5rem}.login-panel h1{font-size:2.25rem}.sidebar{align-items:stretch;gap:.5rem}.side-brand{padding:0 .15rem}.side-nav{order:2;width:100%}.topbar{padding:0 1rem}.topbar .eyebrow{display:none}.topbar .button{font-size:var(--text-xs);padding:.5rem .65rem;min-height:36px}.view{padding:1.35rem 1rem 3rem}.hero-card{padding:1.5rem;min-height:220px}.hero-illustration{opacity:.25}.hero-card h1{font-size:var(--text-xl)}.metrics-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:.45rem}.metric-card{padding:.8rem}.metric-card span{font-size:var(--text-xs);min-height:2.1em}.metric-card strong{font-size:var(--text-xl)}.metric-card small{display:none}.page-heading{display:block}.page-heading .button{margin-top:1rem}.filters-panel{flex-wrap:wrap}.filters-panel .search-field{flex:1 1 100%;height:40px}.filters-panel select{flex:1 1 130px;max-width:none}.filter-hint{display:none}.form-grid{grid-template-columns:1fr}.editor-panel{padding:1rem}.participant-row{grid-template-columns:1fr 32px}.participant-row label:nth-child(2){grid-column:1;grid-row:2}.participant-row .participant-remove{grid-column:2;grid-row:1 / 3;align-self:center}.sticky-panel{padding:1rem}.sticky-panel .button{flex:1 1 calc(50% - .7rem);white-space:normal;font-size:var(--text-sm)}.report-heading{display:flex}.report-heading h1{font-size:1.65rem}.kanban-board{margin-right:-1rem;padding-right:1rem}.task-dialog form{padding:1rem}}
@media print{body{background:#fff}.print-page{margin:0;max-width:none;padding:0}.print-button{display:none}.print-photo{break-inside:avoid}h2{break-after:avoid}}
.add-building{justify-self:start;font-size:var(--text-sm)}
@media(max-width:820px){.sidebar-bottom{order:1;margin-left:auto}.sidebar-bottom .text-button{display:inline-block;margin:0;font-size:var(--text-xs)}}
@media(max-width:600px){.side-nav{flex:0 0 100%;width:100%;order:3;overflow-x:auto;justify-content:space-between}.nav-button{font-size:var(--text-xs);gap:.3rem;padding:.45rem .35rem}.nav-button span{font-size:.9rem}}

/* Navigation grouped by operational area */
@media(min-width:821px){.side-nav{min-height:0;overflow-y:auto;overscroll-behavior:contain;padding-right:.2rem}}
.nav-section-title{margin:.65rem .75rem .05rem;color:#8fbcaa;font-size:.62rem;font-weight:850;letter-spacing:.11em;text-transform:uppercase}
.nav-button .nav-count{flex:0 0 auto;width:auto;min-width:22px;margin-left:auto;padding:.08rem .4rem;border-radius:var(--radius-pill);background:var(--brand-energy);color:var(--brand-forest);font-size:.68rem;font-weight:900;line-height:1.45}
.sidebar-compact .nav-section-title{display:none}
.sidebar-compact .nav-button .nav-count{position:absolute;transform:translate(14px,-13px);min-width:18px;padding:.02rem .3rem;font-size:.6rem}

/* Creation entry points aligned with the navigation */
.top-quick-create .quick-create-trigger{display:grid;place-items:center;width:44px;min-width:44px;padding:0;border-radius:50%;font-size:1.7rem;font-weight:800}
.quick-create-heading{margin:.55rem .7rem .2rem;color:#667d73;font-size:.62rem;font-weight:900;letter-spacing:.11em;text-transform:uppercase}
.quick-create-heading:first-child{margin-top:.25rem}
.hero-actions{display:flex;align-items:center;flex-wrap:wrap;gap:.65rem}
.hero-actions .button{margin:0}

@media(max-width:820px){
  .nav-section-title{grid-column:1/-1;margin:.55rem .35rem 0}
  .top-quick-create .quick-create-trigger{width:40px;min-width:40px}
}

.address-search-wrap{position:relative}.address-search-results{position:absolute;z-index:40;left:0;right:0;top:100%;display:grid;max-height:220px;overflow:auto;border:1px solid #bfd1c6;border-radius:var(--radius-sm);background:#fff;box-shadow:0 10px 24px #173e3526}.address-search-results button{border:0;border-bottom:1px solid var(--color-tint);background:#fff;padding:.65rem .75rem;text-align:left;color:var(--color-text)}.address-search-results button:hover,.address-search-results button[aria-selected="true"]{background:var(--color-tint)}.address-search-status{display:block;min-height:1.2em;margin-top:.3rem;color:#667873;font-size:var(--text-sm);font-weight:600}.address-search-note{margin:.35rem 0 0;color:#718279;font-size:var(--text-xs)}
@media(max-width:600px){
  .hero-actions{display:grid;grid-template-columns:1fr 1fr}
  .hero-actions .hero-quick-create{grid-column:1/-1}
  .hero-actions .button{width:100%;min-height:42px;white-space:normal}
}
.detail-panel{margin-top:1.5rem;padding:1.5rem}.detail-panel h3{margin:1.2rem 0 .45rem;color:#1f594b}.detail-panel ul{margin:.3rem 0 0;padding-left:1.2rem}.detail-panel li{margin:.3rem 0}.task-dialog fieldset{border:1px solid var(--brand-border);border-radius:var(--radius-sm)}.task-dialog legend{font-weight:700}.task-dialog .building-choices{max-height:180px;overflow:auto}.status-badge.pending{background:#e6eefb;color:#22507d}.status-badge.rejected{background:#fff0e9;color:#9a4938}.status-badge.approved{background:#e5f5e8;color:#286043}
.project-detail{width:100%;max-width:none;margin-top:1rem}.project-detail-heading{display:flex;justify-content:space-between;align-items:start;gap:1rem}.project-detail-heading h1{margin-bottom:.7rem}.project-description{margin:1.3rem 0;white-space:pre-wrap;color:#42584d}.project-facts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.8rem;margin:1rem 0 1.5rem}.project-facts p{padding:.9rem;background:#f2f7f3;border-radius:var(--radius-sm);margin:0}.project-facts strong{font-size:var(--text-sm);color:#476a60}.project-detail h2{color:#1f594b;font-size:1.06rem;border-top:1px solid var(--color-tint);padding-top:1rem;margin:1.3rem 0 .45rem}.project-detail ul{margin:.3rem 0;padding-left:1.2rem}.project-detail li{margin:.45rem 0}.project-open{font-weight:800;color:#1d6958;margin-top:auto;padding-top:1rem}.project-detail .muted{font-size:var(--text-base)}.project-detail .link-button{text-align:left}@media(max-width:600px){.project-facts{grid-template-columns:1fr}.project-detail-heading{flex-wrap:wrap}}
.project-mentioned-person{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:.5rem 1rem}.project-mentioned-person .button{flex:0 0 auto}
.print-page{max-width:900px;margin:2rem auto;padding:1.4rem 2.3rem;color:var(--color-text)}.print-header{display:flex;justify-content:space-between;gap:1rem;border-bottom:4px solid var(--color-primary);padding-bottom:1.1rem;margin-bottom:1.4rem}.print-header small{font-weight:800;letter-spacing:.13em;color:var(--color-primary)}.print-header h1{border:0;padding:0;margin:.4rem 0;font-size:var(--text-xl)}.print-header p{color:#667873;margin:0}.print-state{align-self:flex-start;border:1px solid var(--color-primary);border-radius:var(--radius-lg);padding:.4rem .8rem;color:var(--color-primary);font-weight:800;white-space:nowrap}.print-meta{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.8rem;margin:0 0 1.5rem}.print-meta div{background:#eef4f0;padding:.8rem;border-radius:var(--radius-sm)}.print-meta b{display:block;font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.08em;color:#476a60}.print-meta span{display:block;margin-top:.3rem}.print-section{margin:1.4rem 0;break-inside:avoid-page}.print-section h2{font-size:1.05rem;color:var(--color-primary);border-bottom:1px solid var(--brand-border);padding-bottom:.3rem;margin-bottom:.6rem}.print-section p{margin:0;line-height:1.6}.print-section li{padding:.15rem 0}.print-section li span{color:#61736d}.print-section table{width:100%;border-collapse:collapse;font-size:var(--text-base)}.print-section th,.print-section td{text-align:left;padding:.55rem;border-bottom:1px solid var(--brand-border);vertical-align:top}.print-section th{background:#eef4f0}.print-photo-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}.print-photo-grid figure{margin:0;break-inside:avoid}.print-photo-grid img{max-width:100%;max-height:260px;object-fit:contain}.print-photo-grid figcaption{font-size:var(--text-sm);color:#61736d}.print-footer{border-top:1px solid var(--brand-border);padding-top:.5rem;color:#6a7d74;font-size:var(--text-xs);margin-top:2rem}
@media print{@page{size:A4;margin:15mm 14mm 18mm}.print-page{padding:0;margin:0;max-width:none;color:#111}.print-button{display:none}.print-meta div,.print-section th{print-color-adjust:exact;-webkit-print-color-adjust:exact}.print-header{break-after:avoid}.print-section{break-inside:auto}.print-section h2{break-after:avoid}.print-section tr,.print-photo-grid figure{break-inside:avoid}.print-footer{position:fixed;bottom:-12mm;left:0;right:0;background:white}}
@media(max-width:820px){.side-nav{flex-wrap:wrap;overflow:visible}.nav-button{font-size:var(--text-xs)}.sidebar{align-items:center}}
.task-card.drop-before{border-top:4px solid var(--color-primary)}.task-card.drop-after{border-bottom:4px solid var(--color-primary)}

/* Clear landmarks and collapsible reading areas */
.mobile-menu-toggle{display:none;border:1px solid #6f9986;border-radius:var(--radius-sm);background:#275d4e;color:#fff;min-height:40px;padding:.5rem .75rem;font-weight:800;gap:.45rem;align-items:center}
.nav-button span{flex:0 0 24px;width:24px;font-size:1.05rem}
.metric-card>span>span{display:inline;margin-right:.2rem}
.dashboard-disclosure summary,.report-disclosure>summary{list-style:none;cursor:pointer}
.dashboard-disclosure summary::-webkit-details-marker,.report-disclosure>summary::-webkit-details-marker{display:none}
.dashboard-disclosure summary{display:flex;align-items:center;justify-content:space-between;gap:.75rem}
.dashboard-disclosure summary small,.dashboard-disclosure summary strong{display:block}
.dashboard-disclosure summary small{font-size:var(--text-xs);letter-spacing:.15em;font-weight:800;color:#508075;margin-bottom:.25rem}
.dashboard-disclosure summary strong{font-size:1.15rem;color:#203d35}
.dashboard-disclosure-body{padding-top:1rem}
.dashboard-more{display:block;margin:.9rem 0 0 auto}
.disclosure-chevron{margin-left:auto;flex:0 0 auto;color:#39735f;font-size:var(--text-lg);font-weight:800;line-height:1;transition:transform .15s ease}
.dashboard-disclosure[open] .disclosure-chevron,.report-disclosure[open]>.section-heading .disclosure-chevron{transform:rotate(180deg)}
summary:focus-visible,.mobile-menu-toggle:focus-visible{outline:3px solid #92bda3;outline-offset:3px}
#report-form{padding:0;overflow:hidden}
#report-form>.report-disclosure{padding:1.35rem 1.5rem}
#report-form>.report-disclosure+.report-disclosure{border-top:1px solid var(--color-tint)}
.panel.editor-panel.report-disclosure{padding:1.35rem 1.5rem}
.report-disclosure>.section-heading{align-items:center;margin:0}
.report-disclosure>.section-heading>div{flex:1}
.report-disclosure>.section-heading h2{font-size:1.13rem}
.report-disclosure>.section-heading p{margin:.15rem 0 0}
.report-section-body{padding-top:1.1rem}
.report-section-body>.full-label:first-child{margin-top:0}
.required-hint{font-size:var(--text-xs);font-weight:800;color:#8b5a22;background:#fff4df;border-radius:5px;padding:.12rem .38rem;justify-self:end}
.editor-panel label:has(.required-hint),.task-dialog label:has(.required-hint){grid-template-columns:minmax(0,1fr) auto}
.editor-panel label:has(.required-hint)>input,.editor-panel label:has(.required-hint)>textarea,.task-dialog label:has(.required-hint)>input{grid-column:1/-1}
.dialog-intro{color:#63796e;font-size:var(--text-base);margin:0}
.dialog-section{padding:1rem;background:#f6faf7;border:1px solid var(--color-tint);border-radius:var(--radius-md)}
.form-group-title{font-size:var(--text-base);font-weight:850;color:#245849;margin:0 0 .8rem}
.task-dialog .dialog-section .form-grid{gap:.8rem}
.task-dialog .dialog-actions{position:sticky;bottom:-1.5rem;background:#fff;padding:.8rem 0 .1rem;border-top:1px solid var(--color-tint);z-index:1}
.mobile-report-bar{display:none}
.metrics-grid{grid-template-columns:repeat(4,minmax(0,1fr))}
.metric-link{text-align:left;width:100%;transition:border-color .15s ease,box-shadow .15s ease,transform .15s ease}
.metric-link:hover{border-color:#91b8a1;box-shadow:0 7px 18px #153e3518;transform:translateY(-2px)}
.metric-link:focus-visible{outline:3px solid #2f8066;outline-offset:3px}
.metric-link small{line-height:1.4}
.overdue-panel{padding:1.2rem 1.5rem}
.overdue-date{background:#fff1e6;color:#9b4d28}
.section-icon{display:grid;place-items:center;background:var(--color-tint);border-radius:var(--radius-sm);width:38px;height:38px;flex:0 0 38px;font-size:1.12rem}
.attachment-list{grid-template-columns:repeat(auto-fill,minmax(235px,1fr))}
.photo-comment-editor{display:grid;gap:.45rem;padding:.15rem .7rem .8rem;border-top:1px solid var(--color-tint)}
.photo-comment-editor label,.photo-comment strong{font-size:var(--text-sm);font-weight:800;color:#315849}
.photo-comment-editor textarea{font-size:var(--text-base);min-height:75px}
.photo-comment-editor button{justify-self:start;min-height:35px}
.photo-comment{display:grid;gap:.2rem;margin:0;padding:.2rem .7rem .8rem;white-space:pre-wrap;font-size:var(--text-base);color:#3c554a;border-top:1px solid var(--color-tint)}
@media(max-width:1100px){.metrics-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:820px){
  .mobile-menu-toggle{display:inline-flex;order:1;margin-left:auto}
  .sidebar-bottom{order:2;margin-left:0}
  .side-nav{display:none;order:3;flex:0 0 100%;width:100%;padding:.5rem 0 0}
  .side-nav.open{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.35rem}
  .side-nav .nav-button{width:100%;white-space:normal;min-height:43px;padding:.55rem .65rem;font-size:var(--text-base)}
  .editor-aside{order:0}
  .sticky-panel{display:grid;padding:1rem}
  .sticky-panel .button{width:100%;font-size:var(--text-base)}
  .sticky-panel .eyebrow,.sticky-panel h2,.sticky-panel .save-state{flex:none}
  .mobile-report-bar:not([hidden]){display:flex;align-items:center;justify-content:space-between;gap:.7rem;position:fixed;bottom:0;left:0;right:0;z-index:25;background:#fff;border-top:1px solid var(--brand-border);box-shadow:0 -7px 26px #153e3520;padding:.65rem 1rem calc(.65rem + env(safe-area-inset-bottom))}
  .mobile-report-bar>span{font-size:var(--text-sm);color:#4d7060;min-width:0}
  .mobile-report-bar>span.error{color:#a6382b;font-weight:800}
  .mobile-report-bar>div{display:flex;gap:.5rem;flex:0 0 auto}
  .mobile-report-bar .button{min-height:39px;padding:.5rem .7rem;font-size:var(--text-sm)}
  #report-view:not([hidden]){padding-bottom:7rem}
}
@media(max-width:600px){
  .metrics-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .metric-card.warning{grid-column:auto}
  .metric-card span{min-height:0}
  .metric-link small{display:block}
  #report-form>.report-disclosure,.panel.editor-panel.report-disclosure{padding:1rem}
  .mobile-report-bar{flex-wrap:wrap}
  .mobile-report-bar>span{flex:1 1 100%}
  .mobile-report-bar>div{width:100%}
  .mobile-report-bar .button{flex:1}
}
.brand-mark{display:flex;align-items:center;justify-content:center;white-space:nowrap;flex-shrink:0}
.print-button{float:none;display:block;margin:0 0 1rem auto}

/* Approval states keep their meaning in cards, tables, details and history. */
.status-badge{display:inline-flex;align-items:center;gap:.15rem}
.status-badge.status-neutral{background:#eef0f1;color:#4b5c60}
.status-badge.status-pending{background:var(--color-warning-bg);color:var(--color-warning-text)}
.status-badge.status-approved{background:#e5f5e8;color:#245d3b}
.status-badge.status-rejected{background:#ffebe8;color:#913428}
.status-badge>span[aria-hidden="true"]{line-height:1}
.date-pill.due-soon{background:var(--color-warning-bg);color:var(--color-warning-text)}
.date-pill.overdue-date{background:#ffebe8;color:#913428}
.list-row>span:first-child{min-width:0}
.list-row .status-badge{flex-shrink:0}
.dashboard-validations .list-row>span:first-child{flex:1}
.decision-callout{border-radius:var(--radius-md);border:1px solid #e6a79e;background:#fff2ef;color:#783629;padding:.9rem 1.1rem;margin:0 0 1rem}
.decision-callout[hidden]{display:none}
.decision-callout p{margin:.35rem 0;white-space:pre-wrap}
.decision-callout small{display:block;color:#78483e}
@media(max-width:600px){.list-row .status-badge{font-size:.68rem}.list-row:has(.status-badge) .arrow{display:none}}

/* Shared directory */
.directory-tabs{display:inline-flex;gap:.3rem;padding:.3rem;border:1px solid var(--brand-border);background:var(--color-tint);border-radius:var(--radius-md);margin-bottom:1rem}
.directory-tabs button{border:0;background:transparent;color:#345a4d;padding:.6rem 1rem;border-radius:var(--radius-sm);font-weight:800}
.directory-tabs button[aria-selected="true"]{background:#fff;color:#164e3e;box-shadow:0 2px 8px #173d3517}
.directory-tabs button:focus-visible,.directory-inline-link:focus-visible,.directory-person:focus-visible{outline:3px solid #2f8066;outline-offset:2px}
.directory-toolbar{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:1rem}
.directory-toolbar .search-field{flex:1;max-width:520px}
.directory-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;align-items:start}
.directory-grid>.empty-state{grid-column:1/-1}
.directory-card{padding:1.3rem;min-width:0}
.directory-card-heading{display:flex;align-items:start;justify-content:space-between;gap:1rem}
.directory-card-heading h2{font-size:var(--text-lg);margin:0 0 .2rem}
.directory-card-heading p:last-child{color:#657a6d;font-size:var(--text-base);margin:0}
.directory-card-heading .button{flex:0 0 auto}
.directory-inline-link{border:0;background:none;color:var(--color-primary);font-weight:800;padding:.7rem 0;text-align:left}
.directory-inline-link:hover{text-decoration:underline}
.directory-contact-details{display:flex;flex-wrap:wrap;gap:.35rem 1rem;color:var(--color-text-muted);font-size:var(--text-base);overflow-wrap:anywhere}
.directory-card-section{margin-top:1rem;padding-top:.85rem;border-top:1px solid var(--color-tint)}
.directory-card-section h3{font-size:var(--text-base);color:#294c3e;margin:0 0 .55rem}
.directory-pills{display:flex;flex-wrap:wrap;gap:.4rem}
.directory-pill{display:inline-flex;align-items:center;background:var(--color-tint);color:#245b45;border:1px solid #d2e5d8;border-radius:var(--radius-sm);padding:.3rem .55rem;font-size:var(--text-sm);font-weight:750}
.directory-person{cursor:pointer}
.directory-person:hover{background:#daecdd}
.directory-suggestions{background:#f7f9f1;border:1px solid #e4ebd9;border-radius:var(--radius-sm);padding:.85rem;margin-top:1rem}
.directory-suggestions h3{margin:0 0 .2rem}
.directory-suggestions>p{color:#63745e;font-size:var(--text-sm);margin:0 0 .55rem}
.directory-suggestion{display:flex;align-items:center;justify-content:space-between;gap:.6rem;padding:.5rem 0;border-top:1px solid var(--brand-border)}
.directory-suggestion strong,.directory-suggestion small{display:block}
.directory-suggestion strong{font-size:var(--text-base)}
.directory-suggestion small{color:#6b7d66}
@media(max-width:900px){.directory-grid{grid-template-columns:1fr}}
@media(max-width:600px){.directory-toolbar{align-items:stretch;flex-direction:column}.directory-toolbar .search-field{width:100%;max-width:none}.directory-toolbar .button{width:100%}.directory-card-heading{flex-wrap:wrap}.directory-card-heading .button{margin-left:auto}.directory-suggestion{align-items:flex-start;flex-direction:column}.directory-suggestion .button{align-self:flex-end}}

/* Full-list search, mode switch and sortable tables. */
.list-toolbar{display:flex;align-items:center;gap:.8rem;background:#fff;border:1px solid var(--brand-border);border-radius:var(--radius-md);padding:.7rem;margin-bottom:1rem}
.list-toolbar .search-field{min-height:40px}
.list-mode{display:inline-flex;flex:none;gap:2px;background:var(--color-tint);border-radius:var(--radius-sm);padding:3px}
.list-mode button{border:0;border-radius:var(--radius-sm);background:transparent;color:#365b4c;font-size:var(--text-base);font-weight:750;padding:.45rem .7rem;white-space:nowrap}
.list-mode button[aria-pressed="true"]{background:var(--color-primary);color:#fff;box-shadow:0 1px 5px #173e3526}
.list-mode button:focus-visible,.list-table button:focus-visible{outline:3px solid #dbb76d;outline-offset:2px}
.list-table-wrap{width:100%;overflow-x:auto;background:#fff;border:1px solid var(--brand-border);border-radius:var(--radius-md)}
.list-table-wrap>.empty-state{padding:1.5rem}
.list-table{border-collapse:collapse;width:100%;min-width:760px;text-align:left;font-size:var(--text-base)}
.list-table th{position:sticky;top:0;background:var(--color-tint);color:#285342;white-space:nowrap}
.list-table th button{width:100%;border:0;background:transparent;color:inherit;text-align:left;font-size:var(--text-sm);font-weight:800;padding:.9rem .75rem;white-space:nowrap}
.list-table th button:hover{background:#e1ece3}
.list-table td{border-top:1px solid var(--color-tint);padding:.7rem .75rem;vertical-align:top;min-width:130px;max-width:320px;overflow-wrap:break-word}
.list-table th:first-child,.list-table td:first-child{min-width:200px}
.list-table tbody tr:hover{background:#f6faf7}
.list-cell-action{border:0;background:transparent;color:var(--color-primary);text-align:left;font-weight:750;padding:0}
.list-cell-action:hover{text-decoration:underline}
.list-inline-action{display:flex;justify-content:space-between;gap:.6rem;margin-bottom:.25rem}
.list-person-action{display:block;margin-bottom:.2rem}
@media(max-width:700px){.list-toolbar{flex-wrap:wrap}.list-toolbar .search-field{flex:1 1 100%}.list-mode{margin-left:auto}.filters-panel .list-mode{margin-left:auto}.directory-toolbar .list-mode{align-self:flex-end}}

#building-panel-operations,#building-panel-operations>.panel{min-width:0;max-width:100%}
#building-panel-operations>.panel{overflow:hidden}
#building-detail{max-width:none}
.intervention-section{padding:0}
.intervention-section-heading{display:grid;gap:.75rem;padding:1.3rem 1rem .9rem}
.intervention-section-heading h2,.intervention-section-heading p{margin:0}.intervention-section-heading p{margin-top:.25rem}.intervention-section-heading .button{justify-self:start}
.intervention-workspace{min-width:0}
.intervention-toolbar{display:grid;grid-template-columns:minmax(0,1fr);align-items:center;gap:.55rem;padding:.35rem 1rem .9rem;border-bottom:1px solid var(--brand-border);background:var(--brand-paper)}
.intervention-toolbar label,.intervention-toolbar input{width:100%}.intervention-toolbar input{min-height:42px}
.intervention-toolbar label{grid-column:1/-1}
.intervention-filter-group{display:flex;align-items:center;gap:.25rem;padding:.2rem;border-radius:var(--radius-sm);background:var(--color-tint)}
.intervention-filter-group button{min-height:36px;padding:.4rem .7rem;border:0;border-radius:var(--radius-sm);background:transparent;color:#345d4d;font-size:var(--text-sm);font-weight:800;white-space:nowrap}
.intervention-filter-group button[aria-pressed="true"]{background:var(--color-primary);color:#fff;box-shadow:0 1px 5px #173e3526}
.intervention-filter-group button:focus-visible,.intervention-list-item:focus-visible{outline:3px solid #dbb76d;outline-offset:2px}
.intervention-sort{justify-self:end;font-size:var(--text-sm);font-weight:800;color:#5d7168;white-space:nowrap}
.intervention-master-detail{display:grid;grid-template-columns:minmax(280px,.82fr) minmax(0,1.55fr);min-height:500px}
.intervention-master-pane{min-width:0;border-right:1px solid var(--brand-border);background:var(--brand-paper)}.intervention-master{min-width:0;padding:.8rem}
.intervention-list-item{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:start;gap:.65rem;width:100%;min-height:88px;padding:.8rem;border:1px solid transparent;border-bottom-color:var(--color-tint);background:transparent;color:inherit;text-align:left;cursor:pointer}
.intervention-list-item:hover{background:#f2f7f3}.intervention-list-item.is-selected{border-color:#71ad98;border-left:4px solid #2174d7;border-radius:var(--radius-sm);background:#f2f8f5;box-shadow:0 3px 10px #173e3510}
.intervention-list-body{display:grid;min-width:0;gap:.22rem}.intervention-list-body strong{color:#174c3f;overflow-wrap:anywhere}.intervention-list-body small{color:#5d7168}.intervention-list-body>span{display:-webkit-box;overflow:hidden;color:var(--color-text-muted);font-size:var(--text-sm);line-height:1.35;-webkit-box-orient:vertical;-webkit-line-clamp:2}
.intervention-document-count{display:inline-grid;place-items:center;min-width:25px;height:25px;border-radius:var(--radius-pill);background:var(--color-tint);color:#315f50;font-size:var(--text-xs);font-weight:850}
.intervention-filter-empty{padding:1rem}
.intervention-details{min-width:0;padding:1.2rem 1.35rem;background:#fff}
.intervention-detail-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;padding-bottom:1rem;border-bottom:1px solid var(--color-tint)}.intervention-detail-heading h3{margin:.15rem 0 0;font-size:1.2rem;color:var(--brand-forest)}.intervention-detail-heading .eyebrow{margin:0}
.intervention-detail-controls{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap;justify-content:flex-end}.intervention-detail-controls select{width:auto;min-width:145px;min-height:42px;font-weight:800;color:#174c3f;background:#edf5f0}
.intervention-next-action{margin:1rem 0;padding:1rem 1.1rem;border-radius:var(--radius-sm);background:#edf7f0;color:#214d3d}.intervention-next-action p{margin:.3rem 0 0;line-height:1.45}
.intervention-detail-section{margin-top:1.05rem}.intervention-detail-section h4{margin:0 0 .55rem;color:#263b34}
.intervention-facts{margin:0}.intervention-facts>div{display:grid;grid-template-columns:minmax(150px,1fr) minmax(120px,1fr);gap:1rem;padding:.48rem 0;border-bottom:1px solid var(--color-tint)}.intervention-facts dt{color:#586d63}.intervention-facts dd{margin:0;font-weight:750}
.intervention-comment{max-width:68ch;margin:0;padding:.8rem .9rem;border:1px solid var(--brand-border);border-radius:var(--radius-sm);background:#f7f9f8;line-height:1.5;overflow-wrap:anywhere}
.intervention-documents{display:grid;gap:.5rem;margin:0;padding:0;list-style:none}.intervention-documents li{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.65rem .75rem;border:1px solid var(--brand-border);border-radius:var(--radius-sm)}.intervention-documents strong,.intervention-documents small{display:block;overflow-wrap:anywhere}.intervention-documents small{margin-top:.2rem;color:#667970}.intervention-document-actions{display:flex;gap:.4rem;flex-wrap:wrap;justify-content:flex-end}
.intervention-save{display:flex;justify-content:flex-end;margin-top:1.1rem;padding-top:1rem;border-top:1px solid var(--brand-border)}.intervention-save .button{min-width:220px}
.intervention-status{display:inline-flex;align-items:center;border-radius:var(--radius-pill);padding:.24rem .55rem;font-size:var(--text-xs);font-weight:800;white-space:nowrap;background:var(--color-tint);color:var(--color-text-muted)}
.intervention-status.status-in_progress{background:#e7f0f8;color:#2e668d}
.intervention-status.status-waiting{background:var(--color-warning-bg);color:#8a5b0c}
.intervention-status.status-closed{background:var(--color-tint);color:#286c3e}
:root[data-theme="dark"] .intervention-toolbar,:root[data-theme="dark"] .intervention-master-pane,:root[data-theme="dark"] .intervention-master{background:var(--dark-surface);border-color:var(--dark-border)}:root[data-theme="dark"] .intervention-details{background:var(--dark-surface)}:root[data-theme="dark"] .intervention-list-item.is-selected{background:var(--dark-raised);border-color:#6aa78d}:root[data-theme="dark"] .intervention-list-body strong,:root[data-theme="dark"] .intervention-detail-heading h3{color:var(--dark-text)}:root[data-theme="dark"] .intervention-list-body small,:root[data-theme="dark"] .intervention-list-body>span,:root[data-theme="dark"] .intervention-sort{color:#b8ccc2}:root[data-theme="dark"] .intervention-next-action{background:var(--dark-raised);color:var(--dark-text)}:root[data-theme="dark"] .intervention-comment{background:#243a33;border-color:var(--dark-border)}:root[data-theme="dark"] .intervention-documents li,:root[data-theme="dark"] .intervention-detail-heading,:root[data-theme="dark"] .intervention-facts>div,:root[data-theme="dark"] .intervention-save,:root[data-theme="dark"] .intervention-section-heading{border-color:var(--dark-border)}
@media(max-width:900px){.intervention-filter-group{justify-self:start;max-width:100%;overflow-x:auto}.intervention-master-detail{grid-template-columns:1fr}.intervention-master-pane{border-right:0;border-bottom:1px solid var(--brand-border)}.intervention-details{padding:1rem}.intervention-detail-heading{align-items:stretch;flex-direction:column}.intervention-detail-controls{justify-content:flex-start}}
@media(max-width:600px){.intervention-section-heading{align-items:stretch;flex-direction:column}.intervention-section-heading .button{width:100%}.intervention-filter-group{width:100%}.intervention-filter-group button{flex:1;padding:.4rem}.intervention-list-item{grid-template-columns:1fr auto}.intervention-list-item>.intervention-status{grid-column:1/-1;justify-self:start}.intervention-detail-controls{display:grid;grid-template-columns:1fr}.intervention-detail-controls select{width:100%}.intervention-facts>div{grid-template-columns:1fr;gap:.2rem}.intervention-documents li{align-items:stretch;flex-direction:column}.intervention-document-actions{justify-content:stretch}.intervention-document-actions .button{flex:1}.intervention-save .button{width:100%;min-width:0}}

/* Unified list cards and detail pages, following the report editor. */
.report-card{min-height:0;gap:.55rem;transition:border-color .15s ease,box-shadow .15s ease,transform .15s ease}
.report-card:focus-visible{outline:3px solid #2f8066;outline-offset:3px}
.report-card-top{margin-bottom:.3rem}
.report-card-footer{margin-top:.75rem;width:100%}
.directory-summary-card{min-height:170px}
.directory-summary-card .project-open{margin-top:auto;padding-top:.45rem}
.directory-summary-card small{color:#72827a}
.card-kicker{font-size:var(--text-xs);font-weight:850;letter-spacing:.12em;color:#4b7f68}
.card-counts{display:flex;flex-wrap:wrap;gap:.35rem;margin-top:.55rem}
.card-counts span{font-size:var(--text-xs);color:#3d6956;background:#edf5ee;border-radius:var(--radius-pill);padding:.2rem .55rem}
.detail-layout{display:grid;width:100%;max-width:none;gap:1rem}
.detail-overview{padding:1.5rem}
.detail-overview h1{margin-bottom:.5rem}
.detail-overview .project-description{margin:1rem 0}
.detail-overview .project-facts{margin:1rem 0 0}
.detail-disclosure{padding:1.25rem 1.5rem}

/* Personal and administrator settings */
.user-card-button{width:100%;border:0;background:transparent;color:inherit;text-align:left;padding-left:0;padding-right:0}.user-card-button:hover strong{text-decoration:underline}.user-settings-arrow{margin-left:auto;color:#b5d1c1}.user-card-button:focus-visible{outline:3px solid #92bda3;outline-offset:4px;border-radius:var(--radius-sm)}
.dashboard-layout{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;margin-top:1.25rem}.dashboard-layout>[data-dashboard-block][data-dashboard-width="100"],.dashboard-layout>.metrics-grid:not([data-dashboard-width]),.dashboard-layout>.market-home-panel:not([data-dashboard-width]),.dashboard-layout>.dashboard-validations:not([data-dashboard-width]){grid-column:1/-1}.dashboard-layout>.metrics-grid{margin:0}.dashboard-layout>.dashboard-disclosure{padding:1.45rem}.dashboard-layout>[data-dashboard-width="50"].metrics-grid{grid-template-columns:repeat(2,minmax(0,1fr))}@media(min-width:761px){.dashboard-layout>[data-dashboard-width="50"] .market-home-stats{grid-template-columns:repeat(auto-fit,minmax(150px,1fr))}}
.dashboard-layout>[data-dashboard-block]{transition:box-shadow .15s ease,opacity .15s ease}.dashboard-layout[data-dashboard-editing="true"]>[data-dashboard-block]{box-shadow:0 0 0 2px #2f806633}.dashboard-block-toolbar{grid-column:1/-1;display:flex;justify-content:flex-end;margin-bottom:-.25rem}.dashboard-summary-actions,.dashboard-panel-actions,.dashboard-widget-controls{display:flex;align-items:center;gap:.35rem}.dashboard-summary-actions .disclosure-chevron{margin-left:0}#dashboard-layout:not([data-dashboard-editing="true"]) .dashboard-widget-controls,#dashboard-layout:not([data-dashboard-editing="true"]) .dashboard-block-toolbar{display:none}.dashboard-width-toggle,.dashboard-drag-handle{display:inline-grid;place-items:center;width:28px;height:28px;min-height:28px;padding:0;border:1px solid #cbdad1;border-radius:var(--radius-sm);background:#f4f8f5;color:#426b5c;font-size:var(--text-base);font-weight:900;line-height:1}.dashboard-drag-handle{letter-spacing:-.16em;cursor:grab}.dashboard-drag-handle:active{cursor:grabbing}.dashboard-width-toggle:focus-visible,.dashboard-drag-handle:focus-visible,.dashboard-edit-toggle:focus-visible{outline:3px solid #2f8066;outline-offset:2px}.dashboard-edit-toggle{position:absolute;right:1rem;top:1rem;z-index:3;display:inline-grid;place-items:center;width:32px;height:32px;padding:0;border:1px solid #ffffff80;border-radius:var(--radius-sm);background:#f4fcf7;color:#164b3e;font-size:var(--text-md);font-weight:900}.dashboard-edit-toggle[aria-pressed="true"]{background:#c9df9e;color:var(--brand-forest)}.dashboard-dragging{opacity:.5}.dashboard-drop-before{box-shadow:inset 0 4px 0 var(--color-primary),0 8px 24px #17655120!important}.dashboard-drop-after{box-shadow:inset 0 -4px 0 var(--color-primary),0 8px 24px #17655120!important}#dashboard-layout[data-dashboard-saving="true"] .dashboard-width-toggle,#dashboard-layout[data-dashboard-saving="true"] .dashboard-drag-handle{opacity:.45;cursor:wait;pointer-events:none}.settings-dashboard-reset{display:flex;justify-content:flex-end;border-top:1px solid var(--color-tint);margin-top:1rem;padding-top:1rem}
.settings-layout,.settings-preferences-stack{display:grid;gap:1rem}.settings-panel{padding:1.4rem}.settings-fieldset{border:0;padding:0;margin:0;display:grid;gap:1.2rem}.settings-form{display:grid;gap:.9rem}.settings-form+.settings-form{border-top:1px solid var(--color-tint);padding-top:1.2rem}.settings-form label,.settings-panel>label,.settings-preferences-stack label{display:grid;gap:.35rem;font-size:var(--text-base);font-weight:750;color:#40594e}.settings-inline-actions,.settings-checks,.settings-save-bar{display:flex;align-items:center;gap:.7rem;flex-wrap:wrap}.settings-checks label{display:flex;align-items:center;gap:.45rem}.settings-checks input,.settings-dashboard-row input,.settings-active-control input{width:17px;height:17px;min-height:auto}.settings-list-options,.settings-dashboard-options,.settings-user-list{display:grid;gap:.6rem}.settings-list-row{display:grid;grid-template-columns:minmax(165px,1.4fr) repeat(3,minmax(125px,1fr));gap:.7rem;align-items:end;border:1px solid var(--color-tint);border-radius:var(--radius-sm);padding:.75rem}.settings-list-row>strong{align-self:center}.settings-dashboard-row{display:grid;grid-template-columns:minmax(180px,1fr) auto auto auto;gap:1rem;align-items:center;border-bottom:1px solid var(--color-tint);padding:.65rem 0}.settings-dashboard-row label{display:flex;align-items:center;gap:.4rem}.settings-order-actions{display:flex;gap:.3rem}.settings-order-actions .icon-button{font-size:var(--text-md)}.settings-dashboard-numbers{margin-top:1rem}.settings-save-bar{position:sticky;bottom:1rem;z-index:5;justify-content:flex-end;background:#f4f6f4dd;border:1px solid var(--brand-border);border-radius:var(--radius-md);padding:.75rem;backdrop-filter:blur(8px)}.settings-section-heading{margin-bottom:1rem}.settings-user-row{display:flex;align-items:center;justify-content:space-between;gap:1rem;border:1px solid #e1e9e3;border-radius:var(--radius-md);padding:1rem}.settings-user-row strong,.settings-user-row small{display:block}.settings-user-row small{color:#667a70;margin-top:.18rem}.settings-user-actions{display:flex;justify-content:flex-end;gap:.4rem;flex-wrap:wrap}.settings-assignment-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:.6rem}.settings-assignment-list p{background:#f5f8f5;border-radius:var(--radius-sm);padding:.75rem;margin:0}.settings-admin-events{list-style:none;padding:0;margin:0;display:grid;gap:.5rem}.settings-admin-events li{display:flex;justify-content:space-between;gap:1rem;border-bottom:1px solid var(--color-tint);padding:.55rem 0}.settings-admin-events span{color:#667a70;text-align:right}.settings-active-control>span:last-child{display:flex;align-items:center;gap:.45rem;min-height:41px}.settings-tabs{margin-bottom:1.2rem}
.settings-dashboard-row{grid-template-columns:minmax(180px,1fr) auto auto minmax(105px,auto) auto}.density-compact .view{padding-top:1.25rem}.density-compact .panel,.density-compact .report-card{border-radius:var(--radius-md)}.density-compact .settings-panel,.density-compact .report-card,.density-compact .dashboard-layout>.dashboard-disclosure{padding:1rem}.reduce-motion *{scroll-behavior:auto!important;transition:none!important;animation:none!important}
@media(min-width:821px){.sidebar-compact .app-shell{grid-template-columns:86px minmax(0,1fr)}.sidebar-compact .sidebar{padding-left:.75rem;padding-right:.75rem}.sidebar-compact .side-brand>div,.sidebar-compact .nav-button:not(.active){font-size:0}.sidebar-compact .side-brand{justify-content:center;padding-left:0;padding-right:0}.sidebar-compact .nav-button{justify-content:center;padding-left:.45rem;padding-right:.45rem}.sidebar-compact .nav-button.active{font-size:0}.sidebar-compact .nav-button span{font-size:1.05rem}.sidebar-compact .user-card-button>div:nth-child(2),.sidebar-compact .user-settings-arrow,.sidebar-compact .user-switcher label{display:none}.sidebar-compact .user-card-button{justify-content:center}.sidebar-compact .user-switcher select{font-size:var(--text-xs);padding:.25rem;width:100%}}
:root[data-theme="dark"]{color-scheme:dark;color:var(--dark-text);background:var(--dark-bg)}:root[data-theme="dark"] body,:root[data-theme="dark"] .main-content{background:var(--dark-bg)}:root[data-theme="dark"] .topbar,:root[data-theme="dark"] .panel,:root[data-theme="dark"] .metric-card,:root[data-theme="dark"] .report-card,:root[data-theme="dark"] .list-row,:root[data-theme="dark"] .filters-panel,:root[data-theme="dark"] .list-toolbar,:root[data-theme="dark"] .list-table-wrap,:root[data-theme="dark"] input,:root[data-theme="dark"] select,:root[data-theme="dark"] textarea{background:var(--dark-surface);color:var(--dark-text);border-color:var(--dark-border)}:root[data-theme="dark"] .muted,:root[data-theme="dark"] small,:root[data-theme="dark"] .list-row small{color:#adbbb4}:root[data-theme="dark"] .button.outline,:root[data-theme="dark"] .directory-tabs button[aria-selected="true"]{background:var(--dark-raised);color:var(--dark-text);border-color:#4e6c60}:root[data-theme="dark"] .list-table th{background:var(--dark-raised);color:#dceae2}:root[data-theme="dark"] .settings-save-bar{background:#14221edd;border-color:var(--dark-border)}
@media(max-width:900px){.settings-list-row{grid-template-columns:1fr 1fr}.settings-list-row>strong{grid-column:1/-1}.settings-user-row{align-items:flex-start;flex-direction:column}.settings-user-actions{justify-content:flex-start}.settings-dashboard-row{grid-template-columns:1fr auto}.settings-dashboard-row>strong{grid-column:1/-1}.dashboard-layout{grid-template-columns:1fr}.dashboard-layout>*{grid-column:1!important}}
@media(max-width:820px){.sidebar-bottom{display:none;width:100%;order:3;padding:.75rem 0 0;border-top:1px solid #ffffff24}.side-nav.open + .sidebar-bottom{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:.65rem 1rem;align-items:center}.side-nav.open + .sidebar-bottom .user-card{display:flex;margin:0;padding:.65rem .75rem;border:1px solid #ffffff24;border-radius:var(--radius-sm)}.side-nav.open + .sidebar-bottom .user-switcher{display:flex;grid-column:1/-1;margin:0}.side-nav.open + .sidebar-bottom .text-button{display:block;grid-column:2;grid-row:1;margin:0;justify-self:end}}
@media(max-width:600px){.settings-list-row{grid-template-columns:1fr}.settings-list-row>strong{grid-column:auto}.settings-dashboard-row{grid-template-columns:1fr}.settings-dashboard-row>strong{grid-column:auto}.settings-order-actions{justify-content:flex-end}.settings-admin-events li{display:block}.settings-admin-events span{display:block;text-align:left;margin-top:.2rem}.settings-save-bar .button{flex:1}}
.detail-disclosure>.report-section-body{border-top:1px solid var(--color-tint);margin-top:1rem;padding-top:1rem}
.source-settings-note{margin-bottom:1rem}.source-settings-wrap{max-width:100%;overflow-x:auto}.source-settings-table{width:100%;border-collapse:collapse;min-width:760px}.source-settings-table th,.source-settings-table td{text-align:left;vertical-align:top;padding:.8rem;border-bottom:1px solid #e1e9e3}.source-settings-table th{font-size:var(--text-sm);text-transform:uppercase;letter-spacing:.04em;color:#65796f}.source-settings-table td:first-child{min-width:240px}.source-settings-table strong,.source-settings-table small,.source-test-status{display:block}.source-settings-table small{margin-top:.24rem;color:#667a70}.source-origin{font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:var(--text-xs);overflow-wrap:anywhere}.source-enabled{display:flex!important;align-items:center;gap:.45rem}.source-enabled input{width:18px;height:18px;min-height:auto}.source-test-status{min-height:1.4rem;margin-bottom:.45rem}.source-settings-table .credibility-badge{display:inline-block}.source-settings-table button:disabled,.source-settings-table input:disabled{cursor:wait;opacity:.55}@media(max-width:700px){.source-settings-wrap{overflow:visible}.source-settings-table{display:block;min-width:0}.source-settings-table thead{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}.source-settings-table tbody,.source-settings-table tr,.source-settings-table td{display:block}.source-settings-table tr{border:1px solid #e1e9e3;border-radius:var(--radius-sm);margin-bottom:.75rem;padding:.35rem}.source-settings-table td{display:grid;grid-template-columns:110px minmax(0,1fr);gap:.35rem;border:0;padding:.55rem}.source-settings-table td::before{content:attr(data-label);font-size:var(--text-xs);font-weight:800;text-transform:uppercase;color:#65796f}.source-settings-table td>*{grid-column:2}}
.detail-disclosure .project-facts{margin:0;grid-template-columns:repeat(auto-fit,minmax(170px,1fr))}
.detail-list{list-style:none;margin:0;padding:0}
.detail-list li{padding:.65rem 0;border-bottom:1px solid var(--color-tint);overflow-wrap:anywhere}
.detail-list li:last-child{border-bottom:0;padding-bottom:0}
.detail-list li:first-child{padding-top:0}
.detail-list .link-button{text-align:left}
.detail-navigation{position:sticky;top:.75rem;z-index:35;display:flex;align-items:center;justify-content:space-between;gap:1rem;margin:0 0 1rem;padding:.65rem .8rem;background:var(--brand-paper,#fff);border:1px solid var(--brand-border,var(--brand-border));border-radius:var(--radius-md);box-shadow:0 8px 24px #163d3414}.detail-navigation .back-button{padding:.5rem .25rem}.detail-pager{display:flex;align-items:center;gap:.65rem}.detail-pager:focus-visible{outline:3px solid #92bdaa;outline-offset:3px}.detail-page-button{min-width:118px}.detail-page-position{min-width:68px;text-align:center;color:var(--color-text-muted);font-size:var(--text-base);font-weight:800;white-space:nowrap}:root[data-theme="dark"] .detail-navigation{background:var(--dark-surface);border-color:var(--dark-border)}:root[data-theme="dark"] .detail-page-position{color:#c7d6ce}@media(max-width:600px){.detail-navigation{position:static;align-items:stretch;flex-direction:column;gap:.55rem;padding:.65rem}.detail-navigation .back-button{align-self:flex-start}.detail-pager{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);gap:.4rem}.detail-page-button{min-width:0;padding:.55rem .65rem}.detail-page-position{min-width:58px;align-self:center}}
.project-detail{margin-top:0}
.project-detail .detail-disclosure h2{border:0;padding:0;margin:0;font-size:1.13rem}
.project-detail .detail-list{margin:0;padding:0}
.project-detail .detail-list li{margin:0}
.directory-toolbar{background:#fff;border:1px solid var(--brand-border);border-radius:var(--radius-md);padding:.7rem}
.directory-toolbar .search-field{min-height:40px}
.directory-suggestions>summary{display:flex;align-items:center;gap:.5rem;list-style:none;cursor:pointer;color:#294c3e;font-size:var(--text-base);font-weight:800}
.directory-suggestions>summary::-webkit-details-marker{display:none}
.directory-suggestions[open] .disclosure-chevron{transform:rotate(180deg)}
.directory-suggestions>p{margin:.6rem 0}
#assignment-list{margin-top:1rem}
#assignment-list .report-section-body p{margin:0 0 .65rem}
@media(max-width:600px){.detail-overview,.detail-disclosure{padding:1rem}.detail-overview .project-facts{grid-template-columns:1fr}.directory-summary-card{min-height:0}}
/* Procurement and market register */
.market-home-panel { margin-top: 1.5rem; padding: 1.3rem; }
.market-home-panel .page-heading { margin-bottom: 1rem; }
.market-home-panel h2, .market-two-col h2 { margin: .2rem 0 .8rem; }
.market-home-stats { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .8rem; margin-bottom: 1rem; }
.market-heading-actions, .market-section-heading { display: flex; flex-wrap: wrap; align-items: center; gap: .7rem; }
.market-section-heading { justify-content: space-between; }
.market-two-col { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.1rem; }
.market-two-col > div, .market-two-col > section { min-width: 0; }
.market-detail-panel { padding: 1.3rem; margin-bottom: 1rem; }
.market-detail-panel h2:not(:first-child) { margin-top: 1.3rem; }
.market-detail-panel ul { padding-left: 1.3rem; }
.market-detail-panel li { margin: .35rem 0; }
.market-milestone { border-top: 1px solid var(--border, var(--brand-border)); padding: .8rem 0; }
.market-milestone small { display: block; color: #5a6b64; margin-top: .25rem; }
.market-upload { display: block; margin-top: .8rem; padding: .8rem; border: 1px dashed #89a69b; border-radius: .7rem; }
.market-upload input { display: block; margin-top: .4rem; max-width: 100%; }
.market-work-dialog { width: min(700px, calc(100vw - 2rem)); max-height: calc(100vh - 2rem); overflow: auto; }
.market-work-dialog form { padding: 1.2rem; }
.market-work-dialog fieldset { margin: .8rem 0; }
.market-validation-heading { margin-top: 1.5rem; }
@media (max-width: 760px) { .market-home-stats, .market-two-col { grid-template-columns: 1fr; } .market-heading-actions { width: 100%; } }

/* Pilotage Énergie & CVC brand system */
:root{
  --brand-forest:#123f35;
  --brand-green:#24745f;
  --brand-flow:#36aa82;
  --brand-energy:#cfdd63;
  --brand-gold:#ddb75a;
  --brand-ivory:#f7f4e9;
  --brand-paper:#fffefa;
  --brand-border:#dce5dc;
  color:var(--color-text);
  background:var(--brand-ivory)
}
body{background:var(--brand-ivory)}
.main-content{background:var(--brand-ivory)}
.eyebrow,.hero-kicker,.card-kicker{color:#3d7767}
.button.primary{background:var(--brand-green);color:#fff}
.button.primary:hover{background:#185d4c}
.button.dark{background:var(--brand-forest)}
.button.outline{background:var(--brand-paper);border-color:#bdcec4;color:#1d5d4d}
.button.light{background:var(--brand-paper);color:var(--brand-forest)}
.button:focus-visible,.link-button:focus-visible,.text-button:focus-visible,.back-button:focus-visible{outline:3px solid var(--brand-gold);outline-offset:3px}
.panel,.metric-card,.report-card,.filters-panel,.list-toolbar,.directory-toolbar,.list-table-wrap{background:var(--brand-paper);border-color:var(--brand-border)}

.brand-lockup{display:flex;align-items:center;gap:.8rem}
.brand-lockup img{display:block;object-fit:contain}
.brand-lockup div{min-width:0}
.login-brand{margin-bottom:1.35rem}
.login-brand img{width:66px;height:66px}
.login-brand strong,.login-brand span{display:block}
.login-brand strong{color:var(--brand-forest);font-size:1.6rem;line-height:1;font-weight:850;letter-spacing:-.04em}
.login-brand span{margin-top:.35rem;color:#367160;font-size:var(--text-xs);font-weight:850;letter-spacing:.15em;text-transform:uppercase}

.login-screen{background:var(--brand-paper);grid-template-columns:minmax(360px,.95fr) minmax(390px,1.05fr)}
.login-art{background:var(--brand-forest);align-items:flex-start;flex-direction:column;justify-content:flex-end;isolation:isolate;height:100vh;min-height:650px}
.login-art:before{content:"";position:absolute;width:420px;height:420px;border-radius:50%;background:#285f50;right:-150px;bottom:-190px;z-index:-1}
.login-art-logo{position:absolute;top:7%;left:50%;width:min(76%,520px,max(280px,calc(100vh - 340px)));aspect-ratio:1;object-fit:contain;transform:translateX(-50%);background:var(--brand-paper);border-radius:42px;padding:1.2rem;box-shadow:0 24px 70px #061d1859}
.login-art p{font-size:clamp(3rem,5.8vw,6.5rem);letter-spacing:-.055em;line-height:.82}
.login-art p span{color:var(--brand-energy);font-size:.48em;letter-spacing:.08em}
.login-panel{padding-top:2rem;padding-bottom:2rem}
.login-panel h1{color:var(--brand-forest);font-size:clamp(2.25rem,3.15vw,3.2rem);margin-bottom:.7rem}
.login-panel .muted{margin-bottom:1.45rem}
.login-form{gap:.45rem}
.login-form input{height:46px;background:var(--brand-paper);border-color:#c8d6cd}
.login-form input:focus{border-color:var(--brand-flow);box-shadow:0 0 0 3px #36aa8226}
.demo-help{background:#f2f6dc;color:#43551f;border-color:#d9e495}
.env-banner{background:#c2410c;color:#fff;text-align:center;font-weight:700;font-size:.85rem;letter-spacing:.04em;padding:.3rem 1rem}

.app-shell{grid-template-columns:250px minmax(0,1fr)}
.sidebar{background:var(--brand-forest)}
.side-brand{padding:.1rem .45rem 1.7rem}
.side-brand img{width:52px;height:52px;background:var(--brand-paper);border-radius:var(--radius-md);padding:3px}
.side-brand strong{font-size:1.12rem;letter-spacing:-.025em}
.side-brand small{color:#cbdc78;letter-spacing:.12em}
.nav-button{color:#cfe0d9}
.nav-button.active,.nav-button:hover{background:#2b6756;color:#fff;box-shadow:inset 3px 0 0 var(--brand-energy)}
.mobile-menu-toggle{border-color:#6a9b88;background:#285f50}
.avatar{background:#eef2c8;color:#31523e}
.topbar{background:var(--brand-paper);border-bottom:1px solid var(--brand-border);box-shadow:0 1px 0 #ddb75a40}
.topbar .eyebrow{color:#6d7250}

.hero-card{background:var(--brand-forest);border-radius:22px;min-height:248px;box-shadow:0 18px 44px #123f3521}
.hero-card p{color:var(--brand-border)}
.hero-kicker{color:var(--brand-energy)}
.hero-illustration{width:39%;display:grid;place-items:center;padding:1.4rem}
.hero-illustration img{width:min(100%,210px);aspect-ratio:1;object-fit:contain;background:var(--brand-paper);border-radius:50%;padding:.5rem;box-shadow:0 16px 45px #061d183f}
.metric-card strong{color:var(--brand-forest)}
.metric-link:hover,.report-card:hover{border-color:#79a991;box-shadow:0 9px 25px #123f351c}
.list-row{background:var(--brand-paper)}
.list-row:hover strong,.project-open,.list-cell-action,.task-open{color:var(--brand-green)}
.date-pill,.card-counts span{background:var(--color-tint);color:#35604c}
input,select,textarea{border-color:#c9d7ce;background:var(--brand-paper)}
input:focus,select:focus,textarea:focus{border-color:var(--brand-flow);box-shadow:0 0 0 3px #36aa8226}
.list-mode button[aria-pressed="true"]{background:var(--brand-green)}
.section-icon{background:#edf3df;color:var(--brand-forest)}
.upload-zone{background:var(--brand-paper);border-color:#91ad9d}
.toast{background:var(--brand-forest)}

/* Personal notification centre */
.notification-trigger{position:relative;display:grid;place-items:center;width:44px;height:44px;flex:0 0 44px;padding:0;border:0;border-radius:50%;background:transparent;color:var(--brand-green);box-shadow:none;transition:color .15s ease,transform .15s ease}
.notification-trigger:hover{background:transparent;color:var(--brand-forest);transform:scale(1.06)}
.notification-bell-icon{display:block;width:36px;height:36px}
.notification-trigger:focus-visible,.notification-close:focus-visible,.notification-item:focus-visible{outline:3px solid var(--brand-gold);outline-offset:3px}
.notification-badge{position:absolute;top:-5px;right:-5px;display:grid;place-items:center;min-width:20px;height:20px;padding:0 5px;border:2px solid var(--brand-paper);border-radius:var(--radius-pill);background:#b44736;color:#fff;font-size:.67rem;font-weight:850;line-height:1}
.notification-drawer[hidden],.notification-backdrop[hidden]{display:none}
.notification-backdrop{position:fixed;inset:0;background:#0d252870;z-index:110}
.notification-drawer{position:fixed;inset:0 0 0 auto;width:min(420px,100vw);z-index:120;overflow:auto;padding:1.25rem;background:var(--brand-paper);border-left:1px solid var(--brand-border);box-shadow:-18px 0 52px #0d252840;transition:transform .18s ease}
.notification-drawer-header{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;padding-bottom:1rem;border-bottom:1px solid var(--brand-border)}
.notification-drawer-header .eyebrow{margin-bottom:.2rem}.notification-drawer-header h2{font-size:1.55rem;margin:0}.notification-drawer-header p:last-child{margin:.25rem 0 0}
.notification-close{flex:0 0 36px;width:36px;height:36px}
.notification-toolbar{display:flex;justify-content:flex-end;padding:.75rem 0 .25rem}.notification-toolbar .text-button:disabled{opacity:.48;cursor:not-allowed;text-decoration:none}
.notification-status{min-height:1.4rem;margin:.25rem 0;color:#8a5c20;font-size:var(--text-sm)}
.notification-list{display:grid;gap:.65rem;padding:.25rem 0 1.5rem}
.notification-item{display:grid;grid-template-columns:38px minmax(0,1fr);gap:.75rem;width:100%;padding:.9rem;border:1px solid var(--brand-border);border-radius:var(--radius-md);background:var(--brand-paper);color:#1b3d34;text-align:left}
.notification-item:hover{border-color:#8ead9f;box-shadow:0 5px 16px #123f3514}.notification-item.unread{border-left:4px solid var(--brand-flow);background:#eef7ec}
.notification-icon{display:grid;place-items:center;width:38px;height:38px;border-radius:var(--radius-sm);background:var(--color-tint);font-size:1.08rem}
.notification-copy,.notification-copy strong,.notification-copy span,.notification-copy time{display:block;min-width:0}.notification-copy strong{overflow-wrap:anywhere;font-size:var(--text-base)}.notification-message{margin-top:.18rem;overflow-wrap:anywhere;color:var(--color-text-muted);font-size:var(--text-sm)}.notification-copy time{margin-top:.38rem;color:#73847c;font-size:var(--text-xs)}.notification-empty{margin:1rem 0;padding:1.5rem;border:1px dashed var(--brand-border);border-radius:var(--radius-md);color:#667873;text-align:center}
.reduce-motion .notification-drawer{transition:none}
:root[data-theme="dark"] .notification-trigger{background:transparent;color:#fff;border-color:transparent}
:root[data-theme="dark"] .notification-trigger:hover{background:transparent;color:#fff}
:root[data-theme="dark"] .notification-drawer,:root[data-theme="dark"] .notification-item{background:var(--dark-surface);color:var(--dark-text);border-color:var(--dark-border)}
:root[data-theme="dark"] .notification-item.unread{background:var(--dark-raised)}
:root[data-theme="dark"] .notification-badge{border-color:var(--dark-surface)}:root[data-theme="dark"] .notification-icon{background:var(--dark-raised)}:root[data-theme="dark"] .notification-message,:root[data-theme="dark"] .notification-copy time{color:#adbbb4}

/* Global creation menu */
.quick-create{position:relative;width:max-content;max-width:100%}
.quick-create-trigger{display:grid;place-items:center;width:44px;height:44px;padding:0;border:0;border-radius:50%;background:var(--brand-green);color:#fff;font-size:1.9rem;font-weight:500;line-height:1;box-shadow:0 8px 20px #123f3530;transition:background .15s ease,transform .15s ease,box-shadow .15s ease}
.quick-create-trigger:hover{background:#185d4c;transform:translateY(-1px);box-shadow:0 10px 24px #123f3540}
.quick-create-trigger:focus-visible{outline:3px solid var(--brand-gold);outline-offset:3px}
.quick-create-menu{position:absolute;z-index:90;top:calc(100% + .65rem);right:0;width:min(340px,calc(100vw - 2rem));max-height:calc(100vh - 100px);overflow:auto;padding:.55rem;background:var(--brand-paper);border:1px solid var(--brand-border);border-radius:var(--radius-md);box-shadow:0 18px 48px #123f3540}
.hero-quick-create .quick-create-menu{right:auto;left:0;max-height:min(52vh,470px)}
.quick-create-item{display:grid;grid-template-columns:38px minmax(0,1fr);align-items:center;gap:.7rem;width:100%;padding:.65rem .7rem;border:0;border-radius:var(--radius-sm);background:transparent;color:#1b3d34;text-align:left}
.quick-create-item:hover,.quick-create-item:focus-visible{background:var(--color-tint);outline:none}
@media (prefers-reduced-motion: reduce){*,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:0s!important;scroll-behavior:auto!important}}
.quick-create-icon{display:grid;place-items:center;width:36px;height:36px;border-radius:var(--radius-sm);background:var(--color-tint);font-size:1.05rem}
.quick-create-item strong,.quick-create-item small{display:block}
.quick-create-item strong{font-size:var(--text-base)}
.quick-create-item small{margin-top:.08rem;color:#6b7c74;font-size:var(--text-xs)}
.hero-card{overflow:visible}
.hero-quick-create .button{position:relative;z-index:1}
:root[data-theme="dark"] .quick-create-menu{background:var(--dark-surface);border-color:var(--dark-border)}
:root[data-theme="dark"] .quick-create-item{color:var(--dark-text)}
:root[data-theme="dark"] .quick-create-item:hover,:root[data-theme="dark"] .quick-create-item:focus-visible{background:var(--dark-raised)}
:root[data-theme="dark"] .quick-create-icon{background:var(--dark-raised)}
:root[data-theme="dark"] .quick-create-item small{color:#adbbb4}

@media(max-width:820px){
  .app-shell{display:block}
  .side-brand img{width:46px;height:46px}
  .side-brand small{display:block}
  .hero-illustration{width:42%;right:-15px;opacity:.72;padding:.7rem}
  .hero-illustration img{width:160px}
}
@media(max-width:600px){
  .login-art{height:auto;min-height:235px;padding:1.25rem}
  .login-art-logo{width:180px;height:180px;top:-18px;left:auto;right:-10px;transform:none;border-radius:28px;padding:.3rem;opacity:.92}
  .login-art p{font-size:2.9rem;z-index:2}
  .login-panel{padding:2rem 1.4rem}
  .login-brand{margin-bottom:1.4rem}
  .login-brand img{width:62px;height:62px}
  .login-brand strong{font-size:var(--text-lg)}
  .side-brand strong{font-size:var(--text-md)}
  .hero-card{min-height:235px;display:flex;flex-direction:column}
  .hero-card>div:first-child{max-width:none}
  .hero-illustration{position:static;width:100%;height:96px;min-width:0;justify-content:center;opacity:1;padding:0;margin-top:.35rem}
  .hero-illustration img{width:96px}
  .quick-create-trigger{width:40px;height:40px;font-size:1.7rem}
  .notification-trigger{width:40px;height:40px;flex-basis:40px}
  .notification-bell-icon{width:32px;height:32px}
  .notification-drawer{width:100vw;padding:1rem}
  .top-quick-create .quick-create-menu{position:fixed;top:68px;right:1rem;left:1rem;width:auto;max-height:calc(100vh - 84px);overflow:auto}
  .hero-quick-create{width:100%}
  .hero-quick-create>.button{width:100%}
  .hero-quick-create .quick-create-menu{right:0;width:100%;max-height:55vh;overflow:auto}
}

/* Dark-theme contrast must override the later brand palette. */
:root[data-theme="dark"] .metric-card strong,
:root[data-theme="dark"] .panel h1,
:root[data-theme="dark"] .panel h2,
:root[data-theme="dark"] .panel h3,
:root[data-theme="dark"] .settings-form label,
:root[data-theme="dark"] .settings-panel>label,
:root[data-theme="dark"] .settings-preferences-stack label,
:root[data-theme="dark"] .settings-dashboard-row strong,
:root[data-theme="dark"] .settings-list-row strong{color:var(--dark-text)}
:root[data-theme="dark"] .metric-card span,
:root[data-theme="dark"] .metric-card small{color:#bdcbc4}
:root[data-theme="dark"] .eyebrow,
:root[data-theme="dark"] .card-kicker{color:#b8c987}
:root[data-theme="dark"] .settings-assignment-list p,
:root[data-theme="dark"] .empty-state{background:var(--dark-raised);color:#dce8e1}
:root[data-theme="dark"] .settings-user-row,
:root[data-theme="dark"] .settings-list-row{border-color:var(--dark-border)}
:root[data-theme="dark"] .dashboard-drag-handle,:root[data-theme="dark"] .dashboard-width-toggle{background:var(--dark-raised);color:#dce8e1;border-color:#4e6c60}
:root[data-theme="dark"] .settings-dashboard-reset{border-color:var(--dark-border)}
@media(max-width:600px){.dashboard-panel-actions{justify-content:space-between;margin-top:1rem}.dashboard-panel-actions .button{margin-top:0}.settings-dashboard-reset .button{width:100%;white-space:normal}}
/* Building identity and management forms. */
.building-heading { display: grid; grid-template-columns: minmax(0, 1fr) minmax(260px, 340px); gap: 24px; align-items: start; padding: 24px; }
.building-columns > .panel, #building-panel-operations > section.panel { padding: 24px; }
.building-heading h1 { overflow-wrap: anywhere; }
.building-map iframe { width: 100%; height: 210px; border: 1px solid #c9d8d2; border-radius: var(--radius-md); }
.building-map-empty { min-height: 180px; display: grid; place-items: center; padding: 20px; border: 1px dashed #98aaa2; border-radius: var(--radius-md); color: var(--color-text-muted); }
.building-map p { font-size: var(--text-sm); }
.list-map-wrap { width: 100%; }
.buildings-map-canvas { isolation: isolate; width: 100%; height: min(620px, 68vh); min-height: 460px; border: 1px solid #c9d8d2; border-radius: var(--radius-md); box-shadow: 0 7px 22px #153e3514; }
.building-map-notice, .building-map-error, .building-map-status { margin: 12px 0 0; padding: 12px 14px; border-radius: var(--radius-sm); }
.building-map-notice { color: var(--color-text-muted); background: #f1f5f2; }
.building-map-error { color: #8b3529; background: #fff0ed; border: 1px solid #e9b0a8; }
.building-map-status { color: var(--color-warning-text); background: var(--color-warning-bg); border: 1px solid #e8cd91; }
.building-map-popup { display: grid; gap: 8px; min-width: 220px; color: var(--brand-forest); }
.building-map-popup strong { font-size: var(--text-md); }
.building-map-popup p { margin: 0; }
.building-map-popup > div { display: grid; gap: 4px; padding: 8px 0; border-top: 1px solid var(--brand-border); }
.building-map-project { padding: 3px 0; }
.building-map-popup .button { justify-self: start; color: #fff; }
:root[data-theme="dark"] .building-map-notice { color: #dce8e1; background: var(--dark-raised); }
@media(max-width:600px){.buildings-map-canvas{height:62vh;min-height:390px}.building-map-popup{min-width:180px}.list-mode{flex-wrap:wrap}}
.building-columns { display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(0, 1fr); gap: 20px; }
.building-contact { display: grid; gap: 5px; padding: 12px 0; border-bottom: 1px solid var(--brand-border); overflow-wrap: anywhere; }
.building-tabs { flex-wrap: wrap; margin: 20px 0; }
.building-work-dialog { width: min(720px, calc(100vw - 24px)); }
.building-work-dialog .building-choices { max-height: 240px; overflow-y: auto; }
.building-enrichment-launch { margin-bottom: 16px; }
.building-enrichment-state { color: var(--color-text-muted); font-size: var(--text-base); }
.characteristic-group { margin-top: 18px; }
.characteristic-list { display: grid; grid-template-columns: repeat(auto-fit, minmax(250px, 1fr)); gap: 12px; }
.characteristic-card { min-width: 0; padding: 16px; border: 1px solid var(--brand-border); border-radius: var(--radius-md); background: var(--brand-paper); }
.characteristic-card > div:first-child { display: grid; gap: 4px; }
.characteristic-label { color: var(--color-text-muted); font-size: var(--text-sm); font-weight: 800; }
.characteristic-card > div:first-child strong { color: var(--brand-forest); font-size: 1.1rem; overflow-wrap: anywhere; }
.characteristic-meta { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 10px; margin-top: 10px; color: var(--color-text-muted); font-size: var(--text-xs); }
.characteristic-meta small { flex-basis: 100%; }
.credibility-badge { display: inline-flex; padding: 3px 8px; border-radius: var(--radius-pill); background: var(--color-tint); color: #345449; font-weight: 850; }
.credibility-reference { background: #dceac4; color: #31543d; }
.credibility-high { background: #dcebe5; color: #155544; }
.credibility-confirm { background: var(--color-warning-bg); color: var(--color-warning-text); }
.credibility-estimate { background: var(--color-tint); color: #62615d; }
.characteristic-card details { margin-top: 12px; }
.characteristic-alternatives { display: grid; gap: 8px; padding-left: 18px; }
.characteristic-alternatives li span,.characteristic-alternatives li small { display: block; color: var(--color-text-muted); font-size: var(--text-xs); }
.enrichment-counts { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 8px; margin: 14px 0; }
.enrichment-counts span { display: grid; gap: 3px; padding: 10px; border-radius: var(--radius-sm); background: var(--color-tint); font-size: var(--text-xs); }
.enrichment-counts strong { color: var(--brand-forest); font-size: 1.15rem; }
.enrichment-sources { display: grid; grid-template-columns: repeat(auto-fit,minmax(180px,1fr)); gap: 8px; padding: 0; list-style: none; }
.source-status { display: grid; gap: 3px; padding: 10px; border-left: 4px solid #8ba399; background: #f3f6f3; font-size: var(--text-xs); }
.source-success { border-left-color: #31846b; }.source-unavailable,.source-contract_error { border-left-color: #b65a48; }
.enrichment-table-wrap { max-width: 100%; overflow-x: auto; margin-top: 14px; }
.enrichment-table { width: 100%; min-width: 760px; border-collapse: collapse; }
.enrichment-table caption { padding: 8px 0; font-weight: 850; text-align: left; }
.enrichment-table th,.enrichment-table td { padding: 10px; border: 1px solid var(--brand-border); text-align: left; vertical-align: top; }
.enrichment-table td > small { display: block; margin-top: 4px; color: var(--color-text-muted); }
.enrichment-table fieldset { display: grid; gap: 5px; min-width: 175px; padding: 0; border: 0; }
.enrichment-table label,.rnb-match-list label { display: flex; align-items: flex-start; gap: 6px; font-size: var(--text-xs); }
.enrichment-inline-status { min-height: 1.3rem; color: #9a442f; }
.rnb-match-list { display: grid; gap: 8px; }
.risk-context { padding: 16px; border: 1px solid #d9c88d; border-radius: var(--radius-md); background: #fffaf0; }
.risk-disclaimer { color: #5e573f; font-size: var(--text-base); }
.risk-incomplete { padding: 10px; border-left: 4px solid #b47d28; background: var(--color-warning-bg); color: var(--color-warning-text); }
.risk-context-card { background: var(--brand-paper); }
:root[data-theme="dark"] .characteristic-card,:root[data-theme="dark"] .source-status { background: var(--dark-raised); color: var(--dark-text); border-color: var(--dark-border); }
:root[data-theme="dark"] .characteristic-card > div:first-child strong,:root[data-theme="dark"] .enrichment-counts strong { color: var(--dark-text); }
.building-document { padding: 18px 0; border-bottom: 1px solid var(--brand-border); overflow-wrap: anywhere; }
.building-files{margin-top:20px;padding:24px}.building-file-status{min-height:1.2rem;color:var(--color-warning-text)}.building-file-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:.65rem;margin:0;padding:0;list-style:none}.building-file-item{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:start;gap:.65rem;padding:.8rem;border:1px solid var(--brand-border);border-radius:var(--radius-sm);background:var(--brand-paper)}.building-file-item>span:last-child{display:grid;gap:.2rem;min-width:0}.building-file-item a{font-weight:800;overflow-wrap:anywhere}.building-file-item small{color:#60746a}.building-file-icon{display:grid;place-items:center;width:2rem;height:2rem;border-radius:var(--radius-sm);background:var(--color-tint);color:var(--color-primary)}.building-file-icon .ui-icon{width:1rem;height:1rem}:root[data-theme="dark"] .building-file-item{background:var(--dark-raised);border-color:var(--dark-border)}:root[data-theme="dark"] .building-file-item small{color:#b8ccc2}:root[data-theme="dark"] .building-file-icon{background:var(--dark-surface);color:#9bcab6}
.building-audit-document{padding:1rem 0;border-bottom:1px solid var(--brand-border)}.building-audit-document>div:first-child{display:flex;align-items:center;justify-content:space-between;gap:.7rem;flex-wrap:wrap}
.building-audit-details{display:grid;gap:1rem;margin-top:1rem;color:#193a31}
.audit-summary-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem}.audit-summary-heading h3{margin:.12rem 0;font-size:var(--text-lg)}.audit-summary-heading p{margin:.25rem 0 0}.audit-source{max-width:48%;padding:.45rem .65rem;border-radius:var(--radius-sm);background:var(--color-tint);color:var(--color-text-muted);font-size:var(--text-xs);overflow-wrap:anywhere}
.audit-key-figures{padding:1rem;border:1px solid var(--brand-border);border-radius:var(--radius-md);background:#fff}.audit-key-figures h4{margin:0 0 .85rem;font-size:.9rem}.audit-key-figures>div{display:grid;grid-template-columns:1.45fr repeat(3,minmax(130px,1fr));align-items:stretch}.audit-key-figures>div>span,.audit-key-figures .audit-energy-index{display:grid;align-content:center;gap:.2rem;min-width:0;padding:.25rem 1rem;border-left:1px solid var(--color-tint)}.audit-key-figures>div>:first-child{border-left:0;padding-left:0}.audit-key-figures small,.audit-scenario-metric small,.audit-energy-index small{display:block;color:#62756c;font-size:var(--text-xs);font-weight:750}.audit-key-figures strong{font-size:1.08rem;overflow-wrap:anywhere}
.audit-energy-index{display:flex!important;align-items:center!important;gap:.7rem!important}.audit-energy-scale{display:flex;align-items:center;gap:2px}.audit-energy-scale i{display:grid;place-items:center;width:19px;height:25px;color:#fff;font-size:.68rem;font-style:normal;font-weight:900}.audit-energy-scale .grade-a{background:#16854c}.audit-energy-scale .grade-b{background:#47a64f}.audit-energy-scale .grade-c{background:#9fc43a}.audit-energy-scale .grade-d{background:#f2ce24;color:#4c430d}.audit-energy-scale .grade-e{background:#ef9424}.audit-energy-scale .grade-f{background:#e86525}.audit-energy-scale .grade-g{background:#d8322f}.audit-energy-index>span:last-child{display:grid;gap:.15rem}.audit-energy-index>span:last-child strong{font-size:var(--text-sm);white-space:nowrap}
.audit-view-tabs{display:flex;align-items:center;gap:.25rem;margin-bottom:-.25rem}.audit-view-tabs button{min-width:180px;padding:.62rem .85rem;border:1px solid #cbd9d1;border-radius:var(--radius-sm);background:#fff;color:#225344;font-weight:850}.audit-view-tabs button[aria-selected="true"]{border-color:var(--color-primary);background:var(--color-primary);color:#fff}.audit-view-tabs button:focus-visible{outline:3px solid #dbb76d;outline-offset:2px}
.audit-scenario-headings{display:grid;grid-template-columns:2fr 1.35fr .9fr .9fr .75fr;gap:.75rem;padding:.55rem .85rem;color:#687b72;font-size:.68rem;font-weight:850;text-transform:uppercase;letter-spacing:.035em}.building-audit-scenario{margin:.45rem 0;border:1px solid var(--brand-border);border-radius:var(--radius-sm);background:#fff;overflow:hidden}.building-audit-scenario>summary{display:grid;grid-template-columns:2fr 1.35fr .9fr .9fr .75fr;align-items:center;gap:.75rem;min-height:82px;padding:.8rem .9rem;cursor:pointer;list-style:none}.building-audit-scenario>summary::-webkit-details-marker{display:none}.building-audit-scenario[open]{border-color:#82b79f;box-shadow:0 5px 15px #174d3c12}.building-audit-scenario[open]>summary{background:#f2f8f4}.audit-scenario-title{display:grid;gap:.2rem;min-width:0}.audit-scenario-title strong{font-size:.9rem}.audit-scenario-title small{display:-webkit-box;overflow:hidden;color:#60736a;font-size:var(--text-xs);line-height:1.35;-webkit-line-clamp:2;-webkit-box-orient:vertical}.audit-scenario-metric{display:grid;gap:.2rem}.audit-scenario-metric strong{font-size:var(--text-base)}.audit-priority{grid-column:1/-1;justify-self:start;margin-top:-.35rem;padding:.24rem .55rem;border-radius:var(--radius-pill);background:#ccebd6;color:#1f6840;font-size:.68rem;font-weight:850}.audit-scenario-actions{padding:.85rem 1rem 1rem;border-top:1px solid var(--brand-border)}.audit-scenario-actions h4{margin:0 0 .5rem}.audit-scenario-actions ul{display:grid;gap:.35rem;margin:0;padding:0;list-style:none}.audit-scenario-actions li{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;padding:.55rem 0;border-bottom:1px solid var(--color-tint)}.audit-scenario-actions li:last-child{border-bottom:0}.audit-scenario-actions li p{margin:.2rem 0;color:#60736a}.audit-scenario-actions li>span{white-space:nowrap;font-weight:850}.audit-scenario-actions>small{display:block;margin-top:.65rem;color:#65786f;overflow-wrap:anywhere}
.audit-existing-state{margin-bottom:1rem}.audit-existing-findings{padding:.9rem 1rem 1rem;border-top:1px solid var(--brand-border)}.audit-existing-findings>div:first-child h4,.audit-existing-findings>div:first-child p{margin:0}.audit-existing-findings>div:first-child p{margin-top:.2rem}
.audit-comparison-wrap{max-width:100%;overflow-x:auto;border:1px solid var(--brand-border);border-radius:var(--radius-sm);background:#fff}.audit-comparison{width:100%;min-width:760px;border-collapse:collapse;text-align:left}.audit-comparison caption{padding:.8rem;font-weight:850;text-align:left}.audit-comparison th,.audit-comparison td{padding:.75rem;border-top:1px solid var(--color-tint);vertical-align:top}.audit-comparison thead th{background:var(--color-tint);color:#315c4e;font-size:var(--text-xs)}.audit-comparison tbody th{max-width:240px}
.audit-disclaimer{margin:0;padding:.65rem .8rem;border-left:4px solid #8daa9b;background:#f1f5f2;color:var(--color-text-muted);font-size:var(--text-xs)}.audit-findings{padding:1rem;border:1px solid var(--brand-border);border-radius:var(--radius-md);background:#fff}.audit-findings>div:first-child h3,.audit-findings>div:first-child p{margin:0}.audit-findings>div:first-child p{margin-top:.2rem}.audit-findings-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:1.5rem;margin-top:.8rem}.audit-finding{padding:.7rem .1rem;border-top:1px solid var(--color-tint)}.audit-finding header{display:flex;align-items:center;justify-content:space-between;gap:.6rem}.audit-finding h4{margin:0;font-size:var(--text-base)}.audit-finding ul{display:grid;gap:.3rem;margin:.4rem 0 0;padding-left:1rem}.audit-finding li{color:var(--color-text-muted);font-size:var(--text-sm);line-height:1.45}.audit-finding li>span{display:block}.audit-evidence{flex:none;padding:.22rem .5rem;border-radius:var(--radius-pill);font-size:.65rem;font-weight:850}.audit-evidence.is-positive{background:#d9efdf;color:#28623d}.audit-evidence.is-watch{background:var(--color-warning-bg);color:#875914}.audit-evidence.is-action{background:#fde4d0;color:#8c481b}
:root[data-theme="dark"] .audit-key-figures,:root[data-theme="dark"] .building-audit-scenario,:root[data-theme="dark"] .audit-comparison-wrap,:root[data-theme="dark"] .audit-findings{background:var(--dark-raised);color:var(--dark-text);border-color:#4e6c60}:root[data-theme="dark"] .audit-summary-heading h3,:root[data-theme="dark"] .audit-key-figures strong,:root[data-theme="dark"] .audit-scenario-metric strong,:root[data-theme="dark"] .audit-scenario-title strong,:root[data-theme="dark"] .audit-finding h4{color:var(--dark-text)}:root[data-theme="dark"] .building-audit-scenario[open]>summary,:root[data-theme="dark"] .audit-comparison thead th{background:var(--dark-surface)}:root[data-theme="dark"] .audit-source,:root[data-theme="dark"] .audit-disclaimer{background:var(--dark-surface);color:#c4d6ce}:root[data-theme="dark"] .audit-view-tabs button{background:var(--dark-raised);color:var(--dark-text);border-color:#4e6c60}:root[data-theme="dark"] .audit-view-tabs button[aria-selected="true"]{background:#5d9d86}:root[data-theme="dark"] .audit-key-figures small,:root[data-theme="dark"] .audit-scenario-title small,:root[data-theme="dark"] .audit-scenario-metric small,:root[data-theme="dark"] .audit-finding li{color:#c4d6ce}
@media(max-width:1000px){.audit-key-figures>div{grid-template-columns:repeat(2,minmax(0,1fr));gap:.8rem}.audit-key-figures>div>span,.audit-key-figures .audit-energy-index{border-left:0;padding:.35rem}.audit-scenario-headings{display:none}.building-audit-scenario>summary{grid-template-columns:1.5fr 1fr 1fr}.building-audit-scenario>summary>.audit-energy-index{grid-column:1/-1}.audit-scenario-metric:nth-of-type(3){display:none}.audit-priority{grid-column:1/-1}.audit-findings-grid{grid-template-columns:1fr}}
@media(max-width:600px){.building-audit-document .button{width:100%}.audit-summary-heading{display:grid}.audit-source{max-width:none}.audit-key-figures>div{grid-template-columns:1fr}.audit-view-tabs{display:grid;grid-template-columns:1fr}.audit-view-tabs button{width:100%}.building-audit-scenario>summary{grid-template-columns:1fr}.building-audit-scenario>summary>.audit-energy-index,.audit-priority{grid-column:1}.audit-scenario-actions li{display:grid}.audit-scenario-actions li>span{white-space:normal}}
.building-filters { display: flex; gap: 12px; flex-wrap: wrap; margin: 12px 0; }
.building-filters select { max-width: 100%; }
.form-error { color: #ac2929; }
.preserve-lines { white-space: pre-wrap; }
@media (max-width: 700px) {
  .building-heading, .building-columns { grid-template-columns: minmax(0, 1fr); }
  .building-tabs { display: grid; grid-template-columns: 1fr 1fr; }
  .building-tabs button { white-space: normal; }
  .building-filters { display: grid; grid-template-columns: minmax(0, 1fr); }
  .enrichment-counts { grid-template-columns: 1fr 1fr; }
  .building-work-dialog { max-width: calc(100vw - 16px); padding: 14px; }
}

/* P'tit Watt — assistant de consultation */
.ptit-watt-mascot{width:72px;height:96px;flex:0 0 72px;background:url('/static/ptit-watt-sprite.png') 0 50% / 400% 100% no-repeat;animation:ptit-watt-cycle 3.2s steps(1,end) infinite}
@keyframes ptit-watt-cycle{0%,24%{background-position:0 50%}25%,49%{background-position:33.333% 50%}50%,74%{background-position:66.666% 50%}75%,100%{background-position:100% 50%}}
.chatbot-trigger{--chatbot-focus-color:#d9bb78;position:fixed;right:24px;bottom:24px;z-index:105;display:flex;align-items:center;gap:.65rem;min-width:174px;height:72px;padding:.35rem .95rem .35rem .25rem;border:1px solid #6f9986;border-radius:var(--radius-lg);background:var(--brand-forest);color:#fff;box-shadow:0 14px 38px #0d25284a;text-align:left;transition:transform .16s ease,box-shadow .16s ease}
.chatbot-trigger:hover{transform:translateY(-2px);box-shadow:0 18px 44px #0d25285c}.chatbot-trigger:focus-visible,.chatbot-close:focus-visible,.chatbot-panel button:focus-visible,.chatbot-panel textarea:focus-visible{outline:3px solid var(--chatbot-focus-color,#d9bb78);outline-offset:3px}.chatbot-trigger:disabled{opacity:.55;cursor:not-allowed;transform:none}.chatbot-trigger .ptit-watt-mascot{width:50px;height:66px;flex-basis:50px}.chatbot-trigger strong,.chatbot-trigger small{display:block}.chatbot-trigger strong{font-size:var(--text-md)}.chatbot-trigger small{margin-top:.1rem;color:#c6d8cf;font-size:var(--text-xs)}
.chatbot-backdrop{position:fixed;inset:0;z-index:130;background:#0d252878}.chatbot-panel{--chatbot-focus-color:#d9bb78;position:fixed;inset:0 0 0 auto;z-index:140;display:grid;grid-template-rows:auto minmax(0,1fr) auto;width:min(440px,100vw);overflow:hidden;background:#f7faf7;border-left:1px solid #cddbd4;box-shadow:-18px 0 52px #0d252847;color:var(--color-text)}.chatbot-header{display:grid;grid-template-columns:72px minmax(0,1fr) auto;align-items:center;gap:.8rem;padding:1rem 1.1rem;background:var(--brand-forest);color:#fff;border-bottom:1px solid #ffffff20}.chatbot-header .eyebrow{margin:0 0 .15rem;color:#c6d980;font-size:.58rem}.chatbot-header h2{margin:0;font-size:1.4rem}.chatbot-header p:last-child{margin:.15rem 0 0;color:#c6d8cf;font-size:var(--text-xs)}.chatbot-close{align-self:start;border:1px solid #ffffff54;border-radius:var(--radius-sm);background:transparent;color:#fff;padding:.42rem .62rem;font-size:var(--text-xs);font-weight:800}
.chatbot-body{min-height:0;overflow-y:auto;padding:1.05rem}.chatbot-messages{display:grid;gap:.85rem}.chatbot-message{max-width:91%;padding:.75rem .85rem;border:1px solid var(--brand-border);border-radius:14px 14px 14px 4px;background:#fff;box-shadow:0 3px 12px #173e350c;overflow-wrap:anywhere}.chatbot-message-user{justify-self:end;border-color:#397867;border-radius:14px 14px 4px 14px;background:var(--color-primary);color:#fff}.chatbot-message-label{display:block;margin-bottom:.25rem;color:#4f776a;font-size:.66rem;font-weight:850;text-transform:uppercase;letter-spacing:.08em}.chatbot-message-user .chatbot-message-label{color:#cde6da}.chatbot-message p{margin:0;white-space:pre-wrap}.chatbot-sources-label{display:block;margin-top:.65rem;color:#496c61;font-size:.68rem;text-transform:uppercase;letter-spacing:.06em}.chatbot-source{display:block;width:100%;margin-top:.4rem;padding:.48rem .6rem;border:1px solid #a9c6b7;border-radius:var(--radius-sm);background:#eff6f0;color:#155544;font-size:var(--text-xs);font-weight:800;text-align:left}.chatbot-source:hover{background:var(--color-tint)}.chatbot-suggestions{display:grid;gap:.45rem;margin-top:1rem}.chatbot-suggestions button{padding:.62rem .72rem;border:1px solid #bfd4c7;border-radius:var(--radius-sm);background:#fff;color:#245748;text-align:left;font-size:var(--text-sm);font-weight:750}.chatbot-suggestions button:hover{border-color:#6f9986;background:#eff6f0}
.chatbot-composer{padding:.85rem 1rem 1rem;border-top:1px solid var(--brand-border);background:#fff}.chatbot-status{min-height:1.3rem;margin:0 0 .35rem;color:#8a5c20;font-size:var(--text-sm)}.chatbot-form{display:grid;gap:.55rem}.chatbot-form label{font-size:var(--text-xs);font-weight:850;color:#355f53}.chatbot-form textarea{width:100%;min-height:74px;max-height:160px;resize:vertical;padding:.68rem .75rem;border:1px solid #b9cbc1;border-radius:var(--radius-sm);background:#fff;color:var(--color-text)}.chatbot-actions{display:flex;justify-content:flex-end;gap:.45rem}.chatbot-actions .button{min-height:38px;padding:.5rem .7rem;font-size:var(--text-xs)}.chatbot-actions #chatbot-reset{margin-right:auto}
:root[data-theme="dark"] .chatbot-panel,:root[data-theme="dark"] .chatbot-composer,:root[data-theme="dark"] .chatbot-message,:root[data-theme="dark"] .chatbot-suggestions button{background:var(--dark-surface);color:var(--dark-text);border-color:var(--dark-border)}:root[data-theme="dark"] .chatbot-body{background:var(--dark-bg)}:root[data-theme="dark"] .chatbot-message-user{background:#176551;color:#fff;border-color:#397867}:root[data-theme="dark"] .chatbot-message-label,:root[data-theme="dark"] .chatbot-form label{color:#b7c9c0}:root[data-theme="dark"] .chatbot-source{background:var(--dark-raised);color:var(--dark-text);border-color:#4e6c60}:root[data-theme="dark"] .chatbot-status{color:#e0bd78}
@media(max-width:720px){.toast{right:12px;bottom:88px;max-width:calc(100vw - 24px)}.chatbot-panel{width:100vw}.chatbot-trigger{right:12px;bottom:12px;min-width:0;width:64px;height:64px;padding:0;border-radius:var(--radius-lg)}.chatbot-trigger>span:last-child{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.chatbot-trigger .ptit-watt-mascot{width:58px;height:62px;flex-basis:58px;background-size:400% 100%}.chatbot-header{grid-template-columns:58px minmax(0,1fr) auto;padding:.75rem}.chatbot-header>.ptit-watt-mascot{width:58px;height:78px;flex-basis:58px}.chatbot-header p:last-child{display:none}.chatbot-body{padding:.8rem}.chatbot-composer{padding:.7rem}.chatbot-actions{flex-wrap:wrap}.chatbot-actions #chatbot-reset{margin-right:0}.chatbot-actions .button{flex:1 1 auto}}
@media(prefers-reduced-motion:reduce){.ptit-watt-mascot{animation:none}.chatbot-trigger{transition:none}}
.ui-icon{display:inline-block;width:1.15rem;height:1.15rem;flex:0 0 auto;vertical-align:-.18em}[data-icon]{display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto}
.eyebrow [data-icon],.card-kicker{align-items:center;gap:.35rem}.eyebrow .ui-icon,.card-kicker .ui-icon,.date-pill .ui-icon{width:1rem;height:1rem}.date-pill .ui-icon{margin-right:.2rem}
.distribution-actions { margin-top: 1rem; display: grid; gap: .75rem; }
.distribution-actions select { min-width: min(100%, 22rem); }
.variable-catalog { max-height: 18rem; overflow: auto; }
.email-template-preview { padding: .8rem; border: 1px solid var(--brand-border); border-radius: var(--radius-md); background: #f6f8f7; }
.email-template-preview pre { white-space: pre-wrap; font: inherit; margin: .5rem 0 0; }

/* Upload IA — dépôt, progression et historique. */
.upload-history-item.is-analyzing{background:#f0f1f2;color:#555b61;filter:grayscale(1);border-radius:var(--radius-sm);padding:1rem}.upload-history-item.is-analyzing .status-badge{background:#e0e2e5;color:#454b51}.upload-dropzone.upload-accepted{animation:upload-accepted .45s ease-out}@keyframes upload-accepted{0%{transform:scale(1)}40%{transform:scale(1.015);background:#dceee3;border-color:var(--color-primary)}100%{transform:scale(1)}}:root[data-theme="dark"] .upload-history-item.is-analyzing{background:#292d31;color:#c6cbd0}:root[data-theme="dark"] .upload-history-item.is-analyzing .status-badge{background:#40464c;color:#e0e3e6}@media(prefers-reduced-motion:reduce){.upload-dropzone.upload-accepted{animation:none}}
.upload-assistant{display:flex;align-items:flex-start;gap:1rem;margin:1rem 0;min-width:0}.upload-assistant>.ptit-watt-mascot{animation:none}.upload-assistant-bubble{position:relative;flex:1;min-width:0;padding:1rem 1.2rem;border:1px solid #bfd4c7;border-radius:0 16px 16px 16px;background:#edf6f1;color:var(--brand-forest);overflow-wrap:anywhere}.upload-assistant-bubble::before{content:"";position:absolute;left:-9px;top:20px;width:16px;height:16px;background:inherit;border-left:1px solid #bfd4c7;border-bottom:1px solid #bfd4c7;transform:rotate(45deg)}.upload-assistant-bubble h2,.upload-assistant-bubble h3{margin:0 0 .45rem;font-size:1.1rem}.upload-assistant-bubble p{margin:.35rem 0;line-height:1.55}.upload-assistant-name{font-size:var(--text-sm);font-weight:800;color:#31634f}.upload-assistant-steps{font-weight:700;font-size:var(--text-base)}.upload-clarification .upload-assistant{margin:0}.upload-clarification>label{margin-left:88px}.upload-clarification>button{justify-self:end;white-space:normal}:root[data-theme="dark"] .upload-assistant-bubble{background:var(--dark-raised);color:var(--dark-text);border-color:#628575}:root[data-theme="dark"] .upload-assistant-bubble::before{border-color:#628575}:root[data-theme="dark"] .upload-assistant-name{color:#bbd9ca}:root[data-theme="dark"] .upload-clarification{background:var(--dark-surface);border-color:#628575;color:var(--dark-text)}@media(max-width:600px){.upload-assistant{gap:.75rem}.upload-assistant>.ptit-watt-mascot{width:44px;height:60px;flex-basis:44px}.upload-assistant-bubble{padding:.8rem}.upload-clarification>label{margin-left:0}.upload-clarification>button{width:100%}}
.upload-tabs{margin-bottom:1rem}.upload-dropzone{display:grid;place-items:center;gap:.55rem;padding:2.5rem 1.25rem;border:2px dashed #8eaa9d;text-align:center;cursor:pointer}.upload-dropzone.dragover,.upload-dropzone:focus-visible{border-color:var(--color-primary);background:#edf6f1;outline:3px solid #b7d7c8;outline-offset:2px}.upload-dropzone>.ui-icon{width:2.6rem;height:2.6rem;color:var(--color-primary)}.upload-dropzone h2,.upload-dropzone p{margin:0}.visually-hidden{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}.upload-selection-heading,.upload-submit-bar,.upload-batch-card>header,.upload-history-item>div:first-child{display:flex;align-items:center;justify-content:space-between;gap:1rem}.upload-selection-heading{margin:1.25rem 0 .7rem}.upload-file-list,.upload-history-list{display:grid;gap:.8rem}.upload-file-row{display:grid;grid-template-columns:minmax(160px,1fr) minmax(240px,1.5fr) auto;gap:1rem;align-items:center;padding:1rem;border:1px solid var(--brand-border);border-radius:var(--radius-md);background:#fff}.upload-file-row strong,.upload-file-row small{display:block;overflow-wrap:anywhere}.upload-file-row label{font-size:var(--text-xs);font-weight:800}.upload-file-row textarea{width:100%;margin-top:.3rem}.upload-submit-bar{position:sticky;bottom:1rem;z-index:5;margin-top:1rem;padding:.85rem 1rem;border:1px solid var(--brand-border);border-radius:var(--radius-md);background:#f7faf7ee;backdrop-filter:blur(8px)}.upload-submit-bar p{margin:0}.upload-batch-card{padding:1rem}.upload-batch-card>header{padding-bottom:.8rem;border-bottom:1px solid var(--brand-border)}.upload-batch-card>header small{display:block;margin-top:.2rem}.upload-history-item{display:grid;gap:.55rem;padding:1rem 0;border-bottom:1px solid var(--color-tint)}.upload-history-item:last-child{border-bottom:0}.upload-history-item p,.upload-history-item small{margin:0}.upload-history-item>div:first-child{justify-content:flex-start;flex-wrap:wrap}.upload-item-actions{display:flex;gap:.5rem;flex-wrap:wrap}:root[data-theme="dark"] .upload-file-row,:root[data-theme="dark"] .upload-submit-bar{background:var(--dark-surface);border-color:var(--dark-border)}:root[data-theme="dark"] .upload-dropzone.dragover,:root[data-theme="dark"] .upload-dropzone:focus-visible{background:var(--dark-raised)}@media(max-width:700px){.upload-file-row{grid-template-columns:1fr}.upload-submit-bar{align-items:stretch;flex-direction:column}.upload-submit-bar .button{width:100%}.upload-selection-heading{align-items:flex-start;flex-direction:column}}
.upload-review-dialog{width:min(1180px,calc(100vw - 24px));max-width:none;height:min(900px,calc(100vh - 24px));max-height:none;padding:0;border:0;border-radius:var(--radius-lg);background:#f7faf7;color:var(--color-text)}.upload-review-dialog::backdrop{background:#0d252878}.upload-review-layout{display:grid;grid-template-columns:minmax(250px,320px) minmax(0,1fr);height:100%;min-height:0}.upload-batch-review{display:flex;flex-direction:column;gap:1rem;min-height:0;padding:1.1rem;border-right:1px solid var(--brand-border);background:var(--color-tint)}.upload-batch-review>header,.upload-review-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem}.upload-batch-review h2,.upload-review-heading h2{margin:.15rem 0}.upload-review-counts{display:grid;grid-template-columns:1fr 1fr;gap:.5rem}.upload-review-counts span{display:grid;padding:.65rem;border-radius:var(--radius-sm);background:#fff;font-size:var(--text-xs)}.upload-review-counts strong{font-size:1.1rem}.upload-batch-items{display:grid;gap:.4rem;min-height:0;overflow:auto}.upload-batch-item{display:grid;gap:.25rem;width:100%;padding:.7rem;border:1px solid transparent;border-radius:var(--radius-sm);background:#fff;text-align:left}.upload-batch-item.active{border-color:var(--color-primary);background:var(--color-tint)}.upload-batch-item span{font-size:var(--text-xs);color:var(--color-text-muted)}.upload-file-review{min-width:0;overflow-y:auto;padding:1.35rem}.upload-file-review>label{display:grid;gap:.35rem;margin-top:1rem;font-size:var(--text-sm);font-weight:800}.upload-proposal-summary,.upload-target-review,.upload-change-list,.upload-audit-editor{margin-top:1.2rem;padding-top:1.2rem;border-top:1px solid var(--brand-border)}.upload-proposal-summary dl{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.6rem}.upload-proposal-summary dl div{padding:.65rem;border-radius:var(--radius-sm);background:var(--color-tint)}.upload-proposal-summary dt{font-size:.68rem;font-weight:800;text-transform:uppercase}.upload-proposal-summary dd{margin:.2rem 0 0;overflow-wrap:anywhere}.upload-candidate{display:grid;gap:.15rem;width:100%;margin:.35rem 0;padding:.65rem .75rem;border:1px solid #bfd4c7;border-radius:var(--radius-sm);background:#fff;text-align:left}.upload-target-search{display:grid;grid-template-columns:160px minmax(0,1fr) auto;gap:.5rem;margin-top:.35rem}.upload-change-list{display:grid;gap:.75rem}.upload-change-card{padding:1rem;border:1px solid var(--brand-border);border-radius:var(--radius-md);background:#fff}.upload-change-card>header{display:flex;align-items:center;justify-content:space-between;gap:1rem}.upload-change-values{display:grid;grid-template-columns:1fr 1.3fr .8fr;gap:.7rem;margin-top:.7rem}.upload-change-values>div{min-width:0;padding:.7rem;border-radius:var(--radius-sm);background:#f3f6f3}.upload-change-values small,.upload-change-values span{display:block}.upload-change-values pre{white-space:pre-wrap;overflow-wrap:anywhere}.upload-change-values textarea{width:100%;resize:vertical}.upload-change-actions,.upload-audit-entry-actions{display:flex;gap:.5rem;flex-wrap:wrap;margin-top:.7rem}.upload-clarification{display:grid;gap:.65rem;margin-top:1rem;padding:1rem;border:1px solid #e8cd91;border-radius:var(--radius-sm);background:#fff8e6}.upload-clarification label{display:grid;gap:.35rem}.upload-review-status{min-height:1.4rem}.upload-audit-tabs{margin-top:.5rem}.upload-audit-section{margin:.6rem 0;border:1px solid var(--brand-border);border-radius:var(--radius-sm);background:#fff}.upload-audit-section>summary{padding:.8rem 1rem;font-weight:850;cursor:pointer}.upload-audit-section>div{display:grid;gap:1rem;padding:0 1rem 1rem}.upload-audit-group h4{margin:.5rem 0}.upload-audit-entry,.upload-audit-characteristic,.upload-audit-scenario{padding:.8rem;border:1px solid var(--color-tint);border-radius:var(--radius-sm);background:#f8faf8}.upload-audit-entry+ .upload-audit-entry{margin-top:.5rem}.upload-audit-entry label{display:grid;gap:.35rem}.upload-audit-entry textarea{width:100%;font-family:ui-monospace,SFMono-Regular,Consolas,monospace}.upload-audit-characteristics{display:grid;gap:.5rem}.upload-audit-characteristic{display:grid;grid-template-columns:minmax(0,1fr) 180px;gap:.7rem}.upload-audit-characteristic span,.upload-audit-characteristic small{display:block;margin-top:.2rem}.upload-audit-characteristic label{display:grid;gap:.3rem}.upload-audit-scenario{margin:.7rem 0}.upload-audit-scenario h4{margin:0}.upload-audit-scenario li{margin:.6rem 0}.upload-audit-scenario li span{display:block;margin-top:.2rem;color:var(--color-text-muted);font-weight:750}:root[data-theme="dark"] .upload-review-dialog,:root[data-theme="dark"] .upload-file-review{background:var(--dark-bg);color:var(--dark-text)}:root[data-theme="dark"] .upload-batch-review,:root[data-theme="dark"] .upload-proposal-summary dl div,:root[data-theme="dark"] .upload-change-values>div{background:var(--dark-surface);border-color:var(--dark-border)}:root[data-theme="dark"] .upload-batch-item,:root[data-theme="dark"] .upload-change-card,:root[data-theme="dark"] .upload-audit-section,:root[data-theme="dark"] .upload-audit-entry,:root[data-theme="dark"] .upload-audit-characteristic,:root[data-theme="dark"] .upload-audit-scenario,:root[data-theme="dark"] .upload-candidate{background:var(--dark-raised);color:var(--dark-text);border-color:#4e6c60}@media(max-width:800px){.upload-review-dialog{width:100vw;height:100vh;max-width:none;max-height:none;border-radius:0}.upload-review-layout{grid-template-columns:1fr;overflow-y:auto}.upload-batch-review{overflow:visible;border-right:0;border-bottom:1px solid var(--brand-border)}.upload-batch-items{grid-template-columns:repeat(2,minmax(0,1fr));overflow:visible}.upload-file-review{overflow:visible}.upload-proposal-summary dl,.upload-change-values{grid-template-columns:1fr}.upload-target-search,.upload-audit-characteristic{grid-template-columns:1fr}}@media(max-width:430px){.upload-batch-items{grid-template-columns:1fr}.upload-review-counts{grid-template-columns:1fr 1fr}.upload-file-review{padding:1rem}.upload-review-heading{flex-direction:column}.upload-review-heading .button{width:100%}.upload-change-actions .button{width:100%}}

/* Branded report cover shared by screen preview and browser PDF printing. */
.print-cover{min-height:780px;margin-bottom:2rem;padding:3rem;display:flex;flex-direction:column;align-items:flex-start;background:var(--brand-forest);color:#fff;border-top:14px solid var(--color-primary);position:relative;overflow:hidden}.print-cover::after{content:"";position:absolute;right:-70px;bottom:-90px;width:330px;height:330px;border:58px solid var(--color-primary);border-radius:50%;opacity:.34}.print-brand-lockup{display:flex;align-items:center;gap:1rem;position:relative;z-index:1;margin-bottom:3.6rem}.print-brand-symbol{display:grid;place-items:center;width:92px;height:92px;margin:0!important;border-radius:var(--radius-lg);background:#f6f5ec}.print-brand-symbol img{width:82px;height:82px;object-fit:contain}.print-brand-lockup>div strong,.print-brand-lockup>div span{display:block}.print-brand-lockup>div strong{color:#fff;font-size:1.55rem;line-height:1.05;letter-spacing:-.03em}.print-brand-lockup>div span{margin-top:.28rem;color:#c6d980;font-size:var(--text-xs);font-weight:850;letter-spacing:.12em}.print-cover-content{max-width:630px;position:relative;z-index:1}.print-cover small{display:block;color:#c6d980;font-weight:850;letter-spacing:.15em}.print-cover h1{border:0;padding:0;margin:1rem 0 .65rem;color:#fff;font-size:2.6rem;line-height:1.08}.print-cover p{color:var(--brand-border)}.print-cover .print-state{display:inline-block;margin-top:1rem;background:#c6d980;border:0;color:var(--brand-forest)}.print-cover dl{width:100%;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem;margin:auto 0 0;position:relative;z-index:1;border-top:1px solid #397867;padding-top:1rem}.print-cover dl div{margin:0}.print-cover dt{font-size:.68rem;color:#9ecab1;text-transform:uppercase;letter-spacing:.1em;font-weight:800}.print-cover dd{margin:.22rem 0 0;color:#fff;font-size:var(--text-base)}.print-detail-header{margin-top:0}
@media print{.print-cover{height:267mm;min-height:0;margin:0;padding:20mm 17mm;background:var(--brand-forest)!important;border-top:5mm solid var(--color-primary);break-after:page;page-break-after:always;print-color-adjust:exact;-webkit-print-color-adjust:exact}.print-cover::after,.print-brand-symbol{print-color-adjust:exact;-webkit-print-color-adjust:exact}.print-brand-lockup{margin-bottom:24mm}.print-brand-symbol{width:26mm;height:26mm;border-radius:4mm}.print-brand-symbol img{width:23mm;height:23mm}.print-brand-lockup>div strong{font-size:18pt}.print-brand-lockup>div span{font-size:8.5pt}.print-cover h1{font-size:26pt}.print-cover dl{margin-top:auto}.print-detail-header{break-after:avoid}}

/* Administration master-detail workspace */
.settings-page-heading{margin-bottom:1rem}.settings-admin-workspace{display:grid;grid-template-columns:minmax(260px,320px) minmax(0,1fr);gap:1rem;align-items:start}.settings-admin-master{position:sticky;top:94px;padding:1.15rem;min-height:650px}.settings-admin-master-heading h2{font-size:1.45rem;margin:0 0 .2rem}.settings-admin-master-heading p{margin:0 0 1rem}.settings-admin-search{margin-bottom:.75rem}.settings-admin-search .ui-icon{width:18px;height:18px}.settings-admin-navigation{display:grid;gap:.3rem}.settings-admin-nav-item{display:grid;grid-template-columns:28px minmax(0,1fr);gap:.75rem;align-items:center;width:100%;padding:.78rem .7rem;border:0;border-left:4px solid transparent;border-radius:var(--radius-sm);background:transparent;color:var(--brand-forest);text-align:left}.settings-admin-nav-item:hover{background:#f0f6f2}.settings-admin-nav-item.active{border-left-color:#168064;background:var(--color-tint);color:var(--brand-forest)}.settings-admin-nav-icon{display:grid;place-items:center;color:var(--color-primary)}.settings-admin-nav-icon .ui-icon{width:21px;height:21px}.settings-admin-nav-item strong,.settings-admin-nav-item small{display:block}.settings-admin-nav-item strong{font-size:.92rem}.settings-admin-nav-item small{margin-top:.12rem;color:#6b7d75;font-weight:500}.settings-admin-navigation-empty{padding:1rem;margin:.5rem 0 0}.settings-admin-detail{min-width:0}.settings-admin-detail>.panel{min-height:650px;padding:1.4rem}.settings-admin-detail>.panel[hidden]{display:none}.settings-admin-detail .settings-section-heading{align-items:center}.settings-assignment-summary{display:flex;gap:.55rem;flex-wrap:wrap;margin:-.35rem 0 1rem;color:#315e52}.settings-assignment-summary strong{font-size:var(--text-base)}.warning-text{color:#b66a19!important}.settings-assignment-list{display:grid;grid-template-columns:1fr;gap:.75rem}.settings-admin-disclosure{border:1px solid var(--brand-border);border-radius:var(--radius-md);background:#fff;overflow:hidden}.settings-admin-disclosure>summary{display:flex;justify-content:space-between;align-items:center;gap:1rem;padding:1rem 1.1rem;cursor:pointer;color:var(--brand-forest)}.settings-admin-disclosure>summary>span{display:flex;align-items:center;gap:.7rem}.settings-admin-disclosure>summary .ui-icon{width:21px;height:21px;color:var(--color-primary)}.settings-admin-disclosure>summary>span:last-child{color:#667a70;font-size:var(--text-base)}.settings-admin-disclosure[open]>summary{background:#f1f7f3;border-bottom:1px solid var(--brand-border)}.settings-admin-disclosure-body{padding:0 1.1rem}.settings-admin-disclosure-body>.muted{margin:1rem 0}.settings-assignment-row{display:grid;grid-template-columns:1.15fr 1fr 1fr;gap:1rem;align-items:center;padding:1rem 0;border-bottom:1px solid var(--color-tint)}.settings-assignment-row:last-child{border-bottom:0}.settings-assignment-row>div{display:flex;align-items:center;gap:.65rem;min-width:0}.settings-assignment-row span,.settings-assignment-row strong,.settings-assignment-row small{display:block;min-width:0}.settings-assignment-row strong{font-size:var(--text-base);white-space:normal}.settings-assignment-row small{color:#697c74}.settings-person-initial{display:grid!important;place-items:center;flex:0 0 38px;width:38px;height:38px;border-radius:50%;background:#e3efcf;color:#205344;font-weight:850}.settings-admin-detail #building-sector-admin,.settings-admin-detail #settings-email-templates{padding:1.4rem}
@media(max-width:1100px){.settings-admin-workspace{grid-template-columns:270px minmax(0,1fr)}.settings-assignment-row{grid-template-columns:1fr}.settings-assignment-row>div{padding-left:.25rem}}
@media(max-width:900px){.settings-admin-workspace{grid-template-columns:1fr}.settings-admin-master{position:static;min-height:0}.settings-admin-navigation{grid-template-columns:repeat(2,minmax(0,1fr))}.settings-admin-detail>.panel{min-height:0}}
@media(max-width:600px){.settings-admin-navigation{grid-template-columns:1fr}.settings-admin-detail>.panel,.settings-admin-master{padding:1rem}.settings-admin-disclosure>summary{align-items:flex-start;flex-direction:column}.settings-admin-detail .settings-section-heading{align-items:flex-start}.settings-admin-detail .settings-section-heading .button{width:100%}}
@media(max-height:1050px) and (min-width:821px){.sidebar{padding-top:1rem;padding-bottom:1rem}.side-brand{padding-bottom:1rem}.side-nav{gap:.16rem}.nav-section-title{margin-top:.4rem}.nav-button{padding:.5rem .7rem}.user-card{margin-top:.65rem;padding-top:.7rem}.user-switcher{margin-top:.55rem}.sidebar-bottom .text-button{margin-top:.5rem}}
:root[data-theme="dark"] .settings-admin-nav-item{color:#dceae2}:root[data-theme="dark"] .settings-admin-nav-item:hover{background:var(--dark-raised)}:root[data-theme="dark"] .settings-admin-nav-item.active{background:#315448;color:#fff}:root[data-theme="dark"] .settings-admin-disclosure{background:var(--dark-surface);border-color:var(--dark-border)}:root[data-theme="dark"] .settings-admin-disclosure[open]>summary{background:var(--dark-raised);border-color:var(--dark-border)}:root[data-theme="dark"] .settings-admin-disclosure>summary{color:var(--dark-text)}:root[data-theme="dark"] .settings-assignment-row{border-color:var(--dark-border)}

/* RNB–BAN reconciliation workspace */
.reconciliation-heading{align-items:flex-end}.reconciliation-heading-actions{display:flex;gap:.55rem;flex-wrap:wrap}.reconciliation-campaigns{display:flex;gap:.65rem;overflow-x:auto;margin:0 0 1rem;padding:.15rem .1rem .6rem}.reconciliation-campaign{display:grid;flex:0 0 min(18rem,80vw);gap:.2rem;padding:.8rem .9rem;border:1px solid #cddbd4;border-radius:var(--radius-md);background:#fff;color:var(--brand-forest);text-align:left}.reconciliation-campaign.active{border-color:var(--color-primary);box-shadow:0 0 0 2px #17655126}.reconciliation-campaign span,.reconciliation-campaign small{color:#597168}.reconciliation-workspace{display:grid;grid-template-columns:minmax(17rem,24rem) minmax(22rem,1fr) minmax(19rem,25rem);min-height:38rem;gap:var(--space-3,1rem)}.reconciliation-workspace>.panel{min-width:0;margin:0;padding:1rem}.reconciliation-queue,.reconciliation-detail{max-height:calc(100vh - 15rem);overflow:auto}.reconciliation-queue-toolbar{margin-bottom:.75rem}.reconciliation-queue-toolbar label{display:grid;gap:.3rem;font-size:var(--text-xs);font-weight:800}.reconciliation-case-list{display:grid;gap:.55rem}.reconciliation-case{border:1px solid var(--brand-border);border-radius:var(--radius-sm);background:#fff;overflow:hidden}.reconciliation-case[aria-current="true"]{outline:3px solid var(--focus,#168064);outline-offset:-3px}.reconciliation-case-heading{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:start}.reconciliation-case-heading>label{padding:.85rem .2rem .85rem .75rem}.reconciliation-case-heading>button{display:grid;gap:.22rem;width:100%;padding:.75rem;border:0;background:transparent;color:inherit;text-align:left}.reconciliation-case-heading>button:hover{background:#eff6f2}.reconciliation-case-heading strong,.reconciliation-case-heading small{overflow-wrap:anywhere}.reconciliation-case-heading small{color:#687c73}.reconciliation-state{display:block;min-height:1.1rem;color:#315f52;font-size:var(--text-xs)}.reconciliation-state::before{content:attr(data-state-label);font-weight:800}.reconciliation-map{display:grid;place-items:center;background:var(--color-tint);overflow:hidden}.reconciliation-detail-heading{padding-bottom:.75rem;border-bottom:1px solid var(--brand-border)}.reconciliation-detail-heading h2{margin:.2rem 0 .55rem}.reconciliation-bulk-bar{display:flex;justify-content:flex-end;margin-top:1rem}.reconciliation-bulk-bar .button{min-width:14rem}:root[data-theme="dark"] .reconciliation-campaign,:root[data-theme="dark"] .reconciliation-case{background:var(--dark-surface);color:var(--dark-text);border-color:var(--dark-border)}:root[data-theme="dark"] .reconciliation-map{background:#243a33}:root[data-theme="dark"] .reconciliation-case-heading>button:hover{background:var(--dark-raised)}
@media(max-width:1180px){.reconciliation-workspace{grid-template-columns:minmax(16rem,21rem) minmax(20rem,1fr)}.reconciliation-detail{grid-column:1/-1;max-height:none}}
@media(max-width:760px){.reconciliation-heading{align-items:flex-start}.reconciliation-heading-actions,.reconciliation-heading-actions .button{width:100%}.reconciliation-workspace{grid-template-columns:1fr}.reconciliation-queue{max-height:28rem}.reconciliation-map{min-height:22rem;order:2}.reconciliation-detail{grid-column:auto;order:3}.reconciliation-bulk-bar{position:sticky;bottom:.5rem}.reconciliation-bulk-bar .button{width:100%}}

/* RNB–BAN map, evidence and decisions */
.reconciliation-warning{margin:0 0 1rem}.reconciliation-map-panel{position:relative;display:grid!important;grid-template-rows:minmax(28rem,1fr) auto;place-items:stretch!important;padding:0!important;overflow:hidden}.reconciliation-map{z-index:0;min-height:28rem;background:var(--color-tint)}.reconciliation-map-warning{position:absolute;z-index:500;top:.75rem;left:.75rem;right:.75rem;margin:0;padding:.65rem .8rem;border:1px solid #bd7729;border-radius:var(--radius-sm);background:#fff5dd;color:#70440f;font-size:var(--text-sm);font-weight:750}.reconciliation-map-legend{z-index:1;display:flex;gap:.8rem;flex-wrap:wrap;margin:0;padding:.7rem .85rem;border-top:1px solid var(--brand-border);background:#fff;list-style:none;font-size:var(--text-xs);font-weight:750}.reconciliation-map-legend li{display:flex;align-items:center;gap:.35rem}.reconciliation-map-legend span{display:inline-block;width:18px;height:8px;border:2px solid;border-radius:5px}.legend-internal{border-color:#6c4a1f!important;background:#6c4a1f}.legend-rnb{border-color:var(--color-primary)!important;background:#17655122}.legend-ban{border-color:#245ca6!important;background:#245ca6}.legend-link{height:0!important;border-width:1px 0 0!important;border-style:dashed!important;border-color:#65776f!important;border-radius:0!important}.reconciliation-candidates{display:grid;gap:.65rem;margin:1rem 0}.reconciliation-candidate{border:1px solid var(--brand-border);border-radius:var(--radius-sm);background:#fff;overflow:hidden}.reconciliation-candidate.active{border-color:var(--color-primary);box-shadow:0 0 0 2px #17655120}.reconciliation-candidate-title{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:start}.reconciliation-candidate-title>label{padding:.9rem .2rem .9rem .75rem}.reconciliation-candidate-title>button{display:grid;gap:.2rem;width:100%;padding:.78rem;border:0;background:transparent;color:inherit;text-align:left}.reconciliation-candidate-title>button:hover{background:#eff6f2}.reconciliation-candidate-title small{color:#60756c}.reconciliation-evidence{display:grid;gap:.35rem;margin:0;padding:0 .8rem .8rem;list-style:none}.reconciliation-evidence li{display:flex;justify-content:space-between;gap:.8rem;padding:.48rem .55rem;border-radius:var(--radius-sm);background:#f3f7f4;font-size:var(--text-xs)}.reconciliation-evidence li span{text-align:right}.reconciliation-evidence .is-positive{border-left:4px solid #168064}.reconciliation-evidence .is-negative{border-left:4px solid #b85d37}.reconciliation-contradictions{margin:0 .8rem .8rem;padding:.65rem;border:1px solid #e2b49e;border-radius:var(--radius-sm);background:#fff5f0;font-size:var(--text-xs)}.reconciliation-contradictions ul{margin:.35rem 0 0;padding-left:1.2rem}.reconciliation-ban-choices{display:grid;gap:.35rem;padding:0 .8rem .8rem;font-size:var(--text-xs)}.reconciliation-ban-choice{display:flex;align-items:center;gap:.45rem}.reconciliation-note{display:grid;gap:.35rem;margin-top:1rem;font-size:var(--text-xs);font-weight:800}.reconciliation-note textarea{width:100%;resize:vertical}.reconciliation-secondary-actions{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:.55rem;margin:1rem 0}.reconciliation-secondary-actions label{display:grid;gap:.25rem;font-size:var(--text-xs);font-weight:800}.reconciliation-confirm{width:100%;margin-bottom:.7rem}:root[data-theme="dark"] .reconciliation-map-legend,:root[data-theme="dark"] .reconciliation-candidate{background:var(--dark-surface);color:var(--dark-text);border-color:var(--dark-border)}:root[data-theme="dark"] .reconciliation-evidence li{background:var(--dark-raised)}:root[data-theme="dark"] .reconciliation-contradictions{background:#472c25;border-color:#825544}:root[data-theme="dark"] .reconciliation-map-warning{background:#4b3820;color:#ffe2a7;border-color:#936629}
@media(max-width:1180px){.reconciliation-map-panel{min-height:34rem}}
@media(max-width:760px){.reconciliation-map-panel{min-height:24rem;order:2}.reconciliation-map{min-height:21rem}.reconciliation-map-legend{gap:.55rem}.reconciliation-secondary-actions{grid-template-columns:1fr}.reconciliation-secondary-actions .button{width:100%}}

/* Fit the workspace to its available width, including the application sidebar. */
#reconciliation-view{container-type:inline-size}
.reconciliation-workspace .sr-only,#reconciliation-live{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}
.reconciliation-workspace{grid-template-columns:minmax(0,.85fr) minmax(0,1.2fr) minmax(0,1.05fr);align-items:start;min-height:0}
.reconciliation-queue,.reconciliation-detail{max-height:calc(100vh - 15rem);overflow:auto;overflow-wrap:anywhere}
.reconciliation-detail{grid-column:auto;order:initial}
.reconciliation-workspace :is(button,select,textarea,label,strong,small){min-width:0;max-width:100%}
.reconciliation-workspace button{white-space:normal;overflow-wrap:anywhere}
.reconciliation-workspace select{width:100%}
.reconciliation-evidence li{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1fr)}
.reconciliation-ban-choice{display:block;overflow-wrap:anywhere}
.reconciliation-ban-choice input{vertical-align:middle;margin-right:.4rem}
.reconciliation-secondary-actions{grid-template-columns:minmax(0,1fr)}
.reconciliation-campaign{grid-template-columns:minmax(0,1fr) auto;align-items:start;padding:.5rem;gap:.2rem}
.reconciliation-campaign-select{display:grid;gap:.2rem;min-width:0;padding:.3rem;border:0;background:transparent;color:inherit;text-align:left}
.reconciliation-campaign-delete{color:#a13f32;flex-shrink:0}
.reconciliation-campaign-delete:disabled{opacity:.5;cursor:wait}
.reconciliation-heading{flex-wrap:wrap}
@container(max-width:68rem){
  .reconciliation-workspace{grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr)}
  .reconciliation-detail{grid-column:1/-1;max-height:none}
}
@container(max-width:44rem){
  .reconciliation-workspace{grid-template-columns:minmax(0,1fr)}
  .reconciliation-queue{max-height:28rem}
  .reconciliation-map-panel{order:2;min-height:24rem}
  .reconciliation-detail{grid-column:auto;order:3}
}

/* Validated RNB–BAN links on building details */
.building-reconciliation{margin-top:1rem}.building-reconciliation-list,.building-reconciliation-history ul{display:grid;gap:.6rem;margin:0;padding:0;list-style:none}.building-reconciliation-list>li,.building-reconciliation-history li{display:flex;justify-content:space-between;align-items:center;gap:1rem;padding:.8rem .9rem;border:1px solid var(--brand-border);border-radius:var(--radius-sm);background:#f8fbf9}.building-reconciliation-list li div,.building-reconciliation-history li div{display:grid;gap:.16rem;min-width:0}.building-reconciliation-list span,.building-reconciliation-history span{color:#507066;font-size:.68rem;font-weight:850;text-transform:uppercase;letter-spacing:.06em}.building-reconciliation-list strong,.building-reconciliation-history strong{overflow-wrap:anywhere}.building-reconciliation-list time,.building-reconciliation-history time,.building-reconciliation-history small{color:#667a71;font-size:var(--text-xs)}.building-reconciliation-history{margin-top:1rem}.building-reconciliation-history summary{cursor:pointer;font-weight:800;color:#174c3f}.building-reconciliation-history ul{margin-top:.7rem}:root[data-theme="dark"] .building-reconciliation-list>li,:root[data-theme="dark"] .building-reconciliation-history li{background:#243a33;border-color:var(--dark-border)}:root[data-theme="dark"] .building-reconciliation-history summary{color:#b9d7ca}
@media(max-width:600px){.building-reconciliation-list>li{align-items:flex-start;flex-direction:column}.building-reconciliation-list .button{width:100%}}

/* Shared business timeline */
.history-panel{margin-top:1rem}.history-panel>summary{cursor:pointer;padding:.9rem 1rem;font-weight:850;color:#174c3f}.history-body{display:grid;gap:1rem;padding:0 1rem 1rem}.history-list{display:grid;gap:.65rem;margin:0;padding:0;list-style:none}.history-item{padding:.75rem .85rem;border:1px solid var(--brand-border);border-left:4px solid var(--color-primary);border-radius:var(--radius-sm);background:#f8fbf9;overflow-wrap:anywhere}.history-item-heading{display:flex;align-items:baseline;gap:.45rem;flex-wrap:wrap}.history-item-heading small{margin-left:auto;color:#667a71}.history-source{font-size:var(--text-sm);color:#315f52}.history-changes{margin:.45rem 0 0;padding-left:1.25rem}.history-changes li{margin:.2rem 0}.history-comment{white-space:pre-wrap;margin:.5rem 0 0}.history-body form{display:grid;gap:.5rem;border-top:1px solid var(--brand-border);padding-top:1rem}.history-body form label{display:grid;gap:.3rem}.history-body form textarea{width:100%;resize:vertical}.history-body form .button{justify-self:start}.history-body [role="alert"]{margin:0;color:#a43d2d}.history-dialog{width:min(44rem,calc(100vw - 2rem));max-height:85vh;overflow:auto}.directory-card .history-panel{margin-top:.75rem}.directory-card .history-panel>summary{font-size:var(--text-base)}:root[data-theme="dark"] .history-panel>summary{color:#b9d7ca}:root[data-theme="dark"] .history-item{background:#243a33;border-color:var(--dark-border);border-left-color:#8ec8a6}:root[data-theme="dark"] .history-source{color:#b9d7ca}
@media(max-width:600px){.history-item-heading small{width:100%;margin-left:0}.history-body form .button{width:100%}}

/* Task cards: accessible colored priority symbols and close-to-save editor. */
#task-dialog{max-height:90dvh;overflow:auto}#task-dialog>#task-form{max-height:none;overflow:visible}#task-dialog>.dialog-heading{position:sticky;top:0;z-index:2;background:#fff;padding:1rem;border-bottom:1px solid var(--color-tint)}#task-blocking-reason>textarea{grid-column:1/-1}.task-symbol{flex:none;width:20px;height:20px;vertical-align:middle}.task-symbol.normal,.task-symbol.unlocked{color:#667085}.task-symbol.low{color:#1971c2}.task-symbol.high{color:#b85c00}.task-symbol.urgent,.task-symbol.locked{color:#c92a2a}.priority{display:inline-flex;align-items:center;gap:.35rem}.priority.normal{color:#525866;background:#f1f3f5}.priority.low{color:#155c9c;background:#e7f2ff}.priority.high{color:#984b00;background:#fff0dc}.priority.urgent{color:var(--color-danger);background:#ffebe9}.task-blocked-badge{display:inline-flex;align-items:center;gap:.25rem;font-size:var(--text-xs);color:var(--color-danger)}.task-card{cursor:pointer}.task-card:focus-visible{outline:3px solid #1971c2;outline-offset:3px}.task-dialog-heading-actions{display:flex;align-items:center;gap:.6rem}.task-dialog-heading-actions .small-button{font-size:var(--text-sm);white-space:normal}.task-priority-field{grid-column:1/-1;border:0;padding:0;margin:0;min-width:0}.task-priority-field legend{font-size:var(--text-base);font-weight:700;margin-bottom:.5rem}.task-priority-choices{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.4rem}.task-priority-choice{position:relative;cursor:pointer;margin:0}.task-priority-choice input{position:absolute;opacity:0;width:1px;height:1px;min-height:0}.task-priority-choice .priority{justify-content:center;width:100%;min-height:42px;border:2px solid transparent;font-size:var(--text-sm)}.task-priority-choice input:checked+.priority{border-color:currentColor}.task-priority-choice input:focus-visible+.priority{outline:3px solid #1971c2;outline-offset:2px}.task-block-field{display:grid;gap:.6rem;margin-top:1rem}.task-block-field>button{display:inline-flex;align-items:center;gap:.5rem;justify-self:start}.task-block-field>button.is-blocked{color:var(--color-danger);background:#ffebe9;border-color:#f3b3ac}.task-save-error{color:var(--color-danger)}.task-dialog[aria-busy="true"]{cursor:wait}@media(max-width:480px){.task-priority-choices{grid-template-columns:repeat(2,minmax(0,1fr))}.task-dialog-heading-actions{gap:.2rem}.task-dialog-heading-actions .small-button{max-width:125px}}

/* Linked entity details reuse the existing views inside one accessible dialog. */
.detail-modal { width: min(1280px, calc(100vw - 32px)); max-width: none; height: calc(100dvh - 40px); max-height: none; padding: 0; border: 1px solid #d2ddd6; border-radius: var(--radius-lg); color: inherit; background: #f5f7f5; }
.detail-modal[open] { display: flex; flex-direction: column; }
.detail-modal::backdrop { background: rgb(15 35 28 / 55%); }
.detail-modal-open { overflow: hidden; }
.detail-modal-toolbar { display: flex; align-items: center; flex-wrap: wrap; gap: 12px; padding: 16px 20px; border-bottom: 1px solid #d2ddd6; background: white; }
.detail-modal-toolbar h2 { margin: 0 auto 0 0; font-size: 1.1rem; }
.detail-modal-toolbar nav { display: flex; align-items: center; gap: 12px; }
.detail-modal-toolbar [data-modal-position] { white-space: nowrap; font-variant-numeric: tabular-nums; }
.detail-modal-body { flex: 1; min-height: 0; overflow: auto; padding: 20px; overscroll-behavior: contain; }
.detail-modal-body > .view { max-width: none; margin: 0; }
.detail-modal .detail-navigation { display: none; }
.detail-modal > .form-error { margin: 0; padding: 0 20px; }
@media (max-width: 640px) {
  .detail-modal { width: 100vw; height: 100dvh; border: 0; border-radius: 0; }
  .detail-modal-toolbar { gap: 8px; padding: 10px; }
  .detail-modal-toolbar nav { order: 3; width: 100%; justify-content: space-between; }
  .detail-modal-toolbar [data-modal-back] { order: 4; width: 100%; }
  .detail-modal-body { padding: 12px; }
}

/* Kanban card hierarchy and contextual metadata. */
.task-card{padding:1rem 1.05rem;border-radius:var(--radius-md);box-shadow:0 3px 12px #214c3510}.task-card:hover{border-color:#b8d1c2;box-shadow:0 9px 22px #214c3518}.task-card .task-top{min-height:25px;margin-bottom:.7rem}.task-card .task-top:has(.task-blocked-badge:only-child){justify-content:flex-end}.task-card h3{margin:0 0 .8rem;font-size:.96rem;line-height:1.4;color:#193a31}.task-meta{display:grid;gap:.42rem}.task-card .task-meta-item{display:flex;align-items:flex-start;gap:.5rem;min-width:0;margin:0;color:#60746a;font-size:var(--text-sm);line-height:1.4}.task-meta-item .ui-icon{width:16px;height:16px;flex:0 0 16px;margin-top:.08rem;color:#608274}.task-meta-item span{min-width:0;overflow-wrap:anywhere}.task-card .task-footer{min-height:25px;margin-top:.9rem;padding-top:.75rem;border-top:1px solid var(--color-tint)}.due,.task-conversation{display:inline-flex;align-items:center;gap:.38rem}.due .ui-icon,.task-conversation .ui-icon{width:16px;height:16px;flex:none}.task-conversation{color:#416b5e;font-size:var(--text-sm);font-weight:800}.task-conversation .ui-icon{color:#568173}:root[data-theme="dark"] .task-card h3{color:var(--dark-text)}:root[data-theme="dark"] .task-card .task-footer{border-top-color:var(--dark-border)}:root[data-theme="dark"] .task-card .task-meta-item,:root[data-theme="dark"] .task-conversation{color:#b8ccc2}:root[data-theme="dark"] .task-meta-item .ui-icon,:root[data-theme="dark"] .task-conversation .ui-icon{color:#8eb5a4}

/* Kanban drag feedback: make the source, destination and confirmed move unmistakable. */
.task-card[draggable="true"]{cursor:grab;transition:opacity .16s ease,transform .16s ease,box-shadow .16s ease,border-color .16s ease}.task-card[draggable="true"]:active{cursor:grabbing}.task-card.task-is-dragging{opacity:.38;transform:scale(.965);box-shadow:0 2px 5px #173f2d12}.kanban-column{transition:background-color .18s ease,border-color .18s ease,box-shadow .18s ease,transform .18s ease}.kanban-column.task-drop-target{background:#dcefe3;border-color:var(--color-primary);box-shadow:0 0 0 3px #17655135,0 14px 30px #17655122;transform:translateY(-3px)}.kanban-column.task-drop-target .kanban-heading{color:#124f3e}.task-card.drop-before{border-top-width:6px;box-shadow:0 -5px 0 #17655155}.task-card.drop-after{border-bottom-width:6px;box-shadow:0 5px 0 #17655155}.kanban-column.task-drop-pending{border-color:var(--color-primary);box-shadow:0 0 0 3px #1765512e;animation:task-drop-pending .7s ease-in-out infinite alternate}.kanban-column.task-move-destination{border-color:var(--color-primary);box-shadow:0 0 0 4px #17655142;animation:task-destination-confirmed 1.25s ease-out}.task-card.task-move-confirmed{border-color:var(--color-primary);box-shadow:0 12px 30px #17655138;animation:task-card-confirmed 1.25s cubic-bezier(.2,.8,.2,1)}
@keyframes task-drop-pending{from{background-color:var(--color-tint)}to{background-color:#dcefe3}}@keyframes task-destination-confirmed{0%{background-color:#d5efdf;transform:scale(1.012)}100%{background-color:var(--color-tint);transform:scale(1)}}@keyframes task-card-confirmed{0%{box-shadow:0 0 0 4px #17655155}100%{box-shadow:0 3px 12px #214c3510}}.task-card.task-move-saving{border-color:var(--color-primary);box-shadow:0 0 0 2px #17655133;cursor:progress}.task-card.task-move-rejected{border-color:var(--color-danger);box-shadow:0 0 0 3px #b4231833;animation:task-card-rejected .45s ease-in-out}.kanban-cards>.task-drop-placeholder{border:2px dashed var(--color-primary);border-radius:var(--radius-md);background:#17655114;animation:task-slot-open .18s ease-out}@keyframes task-slot-open{from{opacity:0}to{opacity:1}}:root[data-theme="dark"] .kanban-cards>.task-drop-placeholder{border-color:#8ec8a6;background:#8ec8a61f}@keyframes task-card-rejected{0%,100%{transform:translateX(0)}25%{transform:translateX(-6px)}75%{transform:translateX(6px)}}
:root[data-theme="dark"] .kanban-column.task-drop-target,:root[data-theme="dark"] .kanban-column.task-drop-pending,:root[data-theme="dark"] .kanban-column.task-move-destination{background:#25493c;border-color:#8ec8a6;box-shadow:0 0 0 3px #8ec8a64d}:root[data-theme="dark"] .task-card.task-move-confirmed{border-color:#8ec8a6;box-shadow:0 12px 30px #0006}:root[data-theme="dark"] .task-card.task-move-saving{border-color:#8ec8a6}:root[data-theme="dark"] .task-card.task-move-rejected{border-color:#f97066;box-shadow:0 0 0 3px #f9706640}
@media(prefers-reduced-motion:reduce){.kanban-column.task-drop-pending,.kanban-column.task-move-destination,.task-card.task-move-confirmed,.task-card.task-move-rejected,.kanban-cards>.task-drop-placeholder{animation:none}.kanban-column.task-drop-target{transform:none}}

/* Audit category pictograms. */
.audit-finding h4{display:flex;align-items:center;gap:.45rem}.audit-finding-icon{width:1.2rem;height:1.2rem;color:var(--color-primary)}:root[data-theme="dark"] .audit-finding-icon{color:#9bcab6}

/* ==========================================================================
   Ergonomie 2026-09 — lot 1 : corrections rapides.
   Règles regroupées ici et commentées par point de l'audit d'ergonomie.
   ========================================================================== */

/* 1. Menu latéral : la carte utilisateur et la déconnexion tiennent sur une ligne,
   le libellé « Agir comme » reste lisible par les lecteurs d'écran seulement,
   et un dégradé signale qu'il reste des entrées à faire défiler. */
.user-row{display:flex;align-items:center;gap:.35rem;border-top:1px solid #ffffff24;margin-top:.5rem;padding-top:.6rem}
.user-row .user-card{flex:1;min-width:0;border-top:0;margin-top:0;padding-top:0}
.user-row .user-card strong,.user-row .user-card small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.logout-button{flex:0 0 auto;display:inline-grid;place-items:center;width:36px;height:36px;border:0;border-radius:var(--radius-sm);background:transparent;color:#bddec8}
.logout-button:hover{background:#2b6756;color:#fff}
.logout-button:focus-visible{outline:3px solid #92bda3;outline-offset:2px}
.logout-button [data-icon]{display:inline-grid;width:20px;height:20px}
.logout-label,.user-switcher label{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.sidebar-bottom .user-switcher{margin-top:.5rem}
.sidebar-bottom .user-switcher select{min-height:34px;font-size:var(--text-sm)}
.side-nav.is-scrollable:not(.at-end){-webkit-mask-image:linear-gradient(to bottom,#000 calc(100% - 36px),transparent);mask-image:linear-gradient(to bottom,#000 calc(100% - 36px),transparent)}
@media(max-width:820px){
  .side-nav.open + .sidebar-bottom .user-row{grid-column:1/-1;border-top:0;margin:0;padding:0}
  .side-nav.open + .sidebar-bottom .user-row .user-card{display:flex;margin:0;padding:.65rem .75rem;border:1px solid #ffffff24;border-radius:var(--radius-sm)}
  .side-nav.open + .sidebar-bottom .logout-button{width:auto;padding:0 .75rem;gap:.4rem;display:inline-flex;align-items:center}
  .side-nav.open + .sidebar-bottom .logout-label{position:static;width:auto;height:auto;clip:auto;font-size:var(--text-sm);font-weight:750}
  .side-nav.is-scrollable:not(.at-end){-webkit-mask-image:none;mask-image:none}
}
.sidebar-compact .user-row{flex-direction:column}

/* 2. P'tit Watt : bulle ronde discrète partout ; le libellé apparaît au survol.
   Une marge basse évite que la bulle recouvre la fin des pages. */
.chatbot-trigger{right:20px;bottom:20px;min-width:0;width:64px;height:64px;padding:0;border-radius:50%;justify-content:center}
.chatbot-trigger>span:last-child{position:absolute;right:calc(100% + 10px);top:50%;transform:translateY(-50%);width:auto;height:auto;clip:auto;overflow:visible;white-space:nowrap;padding:.45rem .7rem;border-radius:var(--radius-sm);background:var(--brand-forest);color:#fff;box-shadow:0 8px 24px #0d25283d;opacity:0;pointer-events:none;transition:opacity .15s ease}
.chatbot-trigger:hover>span:last-child,.chatbot-trigger:focus-visible>span:last-child{opacity:1}
.chatbot-trigger .ptit-watt-mascot{width:54px;height:58px;flex-basis:54px}
.main-content{padding-bottom:104px}
.reconciliation-bulk-bar{padding-right:92px}
@media(prefers-reduced-motion:reduce){.chatbot-trigger>span:last-child{transition:none}}

/* 3. Fiche bâtiment : mêmes marges intérieures pour tous les panneaux,
   boutons de diffusion à leur largeur naturelle. */
.detail-layout .panel.building-reconciliation,.panel.distribution-actions{padding:1.45rem}
.panel.distribution-actions{display:flex;flex-wrap:wrap;align-items:center;gap:.65rem}
.panel.distribution-actions>h2,.panel.distribution-actions>p,.panel.distribution-actions>label{flex:0 0 100%;margin:0}
.panel.distribution-actions>.button{width:auto;flex:0 0 auto}

/* 13. Tableau de bord : bandeau d'accueil compact, logo réduit, chiffres clés de même hauteur. */
.hero-card{min-height:0;padding:1.5rem 2rem;align-items:center}
.hero-card h1{margin:.3rem 0}
.hero-card p{margin-bottom:.9rem}
.hero-illustration{position:static;width:auto;min-width:0;opacity:1;padding:0;display:grid;place-items:center}
.hero-illustration img{width:88px;padding:.35rem}
.metrics-grid{align-items:stretch}
.metrics-grid .metric-card{height:100%}
@media(max-width:820px){.hero-card{padding:1.25rem}.hero-illustration{height:auto;margin-top:.5rem}.hero-illustration img{width:72px}}

/* 18. Fiche bâtiment : la barre Précédent / Suivant reste visible et les onglets
   se placent juste dessous au lieu de passer derrière. */
.building-tabs{position:sticky;top:92px;z-index:30}
@media(max-width:820px){.building-tabs{top:0}}
/* Ergonomie 2026-09 — lot 2 : navigation homogène.
   Pastilles d’état métier (projets, marchés, devis) alignées sur celles des validations. */
.status-badge.status-active{background:#dff3ea;color:#1d5b48}
.status-badge.status-planned{background:#e4eef8;color:#2b4f73}
/* Une seule barre de liste : recherche à gauche, filtres en ligne, affichage à droite. */
.view .list-toolbar{display:flex;flex-wrap:wrap;align-items:center;gap:.65rem;background:var(--brand-paper);border:1px solid var(--brand-border);border-radius:var(--radius-md);padding:.7rem;margin:0 0 1rem}
.view .list-toolbar .search-field{flex:2 1 280px;max-width:none;width:auto;min-height:40px;height:auto}
.view .list-toolbar>select{flex:0 1 190px;min-height:40px;max-width:220px}
.view .list-toolbar .list-mode{margin-left:auto;align-self:center}
.view .intervention-filters.list-toolbar{align-items:flex-end}
.view .intervention-filters.list-toolbar>label:not(.search-field){flex:1 1 130px;min-width:0}
.view .intervention-filters.list-toolbar .search-field{flex:1 1 100%}
:root[data-theme="dark"] .view .list-toolbar{background:var(--dark-surface);border-color:var(--dark-border)}
/* Fil d’Ariane de la barre du haut (correctif : non stylé au lot 1). */
.topbar-breadcrumb{display:flex;align-items:center;gap:.45rem;min-width:0;font-size:var(--text-md)}
.topbar-breadcrumb ol{display:flex;align-items:center;list-style:none;margin:0;padding:0;flex:0 0 auto}
.topbar-breadcrumb ol[hidden]{display:none}
.topbar-breadcrumb li{display:flex;align-items:center;gap:.45rem}
.topbar-breadcrumb li::after{content:"›";color:#8a9a92;font-weight:600}
.breadcrumb-link{border:0;background:none;padding:.2rem 0;font:inherit;font-weight:650;color:var(--brand-green);cursor:pointer;white-space:nowrap}
.breadcrumb-link:hover,.breadcrumb-link:focus-visible{text-decoration:underline}
.topbar-breadcrumb #topbar-title{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
:root[data-theme="dark"] .breadcrumb-link{color:#8fd3b4}
/* Compte rendu non modifiable : lecture d’un document plutôt qu’un formulaire grisé. */
#report-form.is-readonly :is(#report-objective,#report-summary,#report-observations,#report-decisions){display:none}
#report-form.is-readonly .required-hint{display:none}
#report-form.is-readonly :is(input,select):disabled{font-weight:500;background:transparent;border-color:transparent;color:inherit;opacity:1;-webkit-text-fill-color:currentColor;appearance:none;padding-left:0;cursor:default;box-shadow:none}
#report-form.is-readonly .building-picker>summary{pointer-events:none}
.report-read-text{grid-column:1/-1;justify-self:stretch;text-align:left;margin:.35rem 0 0;white-space:pre-wrap;line-height:1.55;font-weight:400;color:inherit}
.report-read-text.is-empty{color:#6b7a75;font-style:italic}
#report-form.is-readonly .building-picker{border-color:transparent;background:transparent}
#report-form.is-readonly .building-picker>summary{padding-left:0;color:inherit}
#report-form.is-readonly .building-picker>summary{list-style:none;font-weight:500}
#report-form.is-readonly .building-picker>summary::-webkit-details-marker{display:none}
/* Ergonomie 2026-09 — lot 3 : mobile. */
.filters-toggle{display:none}
@media(max-width:820px){
  .app-shell.has-merged-header .topbar{display:none}
  .sidebar .top-actions{margin-left:auto;gap:.45rem}
  .sidebar .top-actions .notification-trigger{color:#fff}
  .sidebar .top-actions .quick-create-trigger{width:40px;height:40px;min-width:40px}
  .sidebar .top-actions .top-quick-create .quick-create-menu{top:64px}
  .view .list-toolbar .search-field,.view .intervention-filters.list-toolbar .search-field{flex:1 1 160px}
  .app-shell.has-merged-header .mobile-menu-toggle{margin-left:0}
  .app-shell.has-merged-header .sidebar{align-items:center}
  .app-shell.has-merged-header .side-brand{margin:0;align-self:center}
  .view .list-toolbar .filters-toggle{display:inline-flex;align-items:center;gap:.35rem;min-height:40px;padding:0 .85rem;border:1px solid var(--brand-border);border-radius:var(--radius-sm);background:#fff;color:var(--brand-forest);font:inherit;font-weight:750;cursor:pointer}
  .view .list-toolbar .filters-toggle[aria-expanded="true"]{background:var(--brand-forest);border-color:var(--brand-forest);color:#fff}
  .view .list-toolbar:not(.filters-open)>:not(.search-field):not(.list-mode):not(.filters-toggle){display:none}
  .view .list-toolbar.filters-open>select,.view .list-toolbar.filters-open>label:not(.search-field){flex:1 1 100%;max-width:none}
  .view .list-toolbar .list-mode [data-list-mode="table"]{display:none}
  .view .list-toolbar .list-mode:not(:has([data-list-mode="map"])){display:none}
  :root[data-theme="dark"] .view .list-toolbar .filters-toggle{background:var(--dark-surface);color:var(--dark-text);border-color:var(--dark-border)}
}
@media(max-width:480px){
  .sidebar .side-brand>div{display:none}
  .sidebar .top-actions .demo-badge{display:none}
}
/* Ergonomie 2026-09 — lot 4 : liens de tableau lisibles en thème sombre (contraste insuffisant auparavant). */
:root[data-theme="dark"] .list-table .list-cell-action,:root[data-theme="dark"] .list-table a{color:#8fd3b4}
/* Ergonomie 2026-09 — lot 5 : cartes homogènes (MapKit). */
.map-pin-host,.map-cluster-host{background:none;border:0}
.map-pin{display:block;width:24px;height:24px;margin:2px;border-radius:50% 50% 50% 0;transform:rotate(-45deg);border:2px solid #fff;box-shadow:0 2px 6px #0d252855;background:var(--brand-green)}
.map-pin::after{content:"";position:absolute;inset:6px;border-radius:50%;background:#fff}
.map-pin{position:relative}
.map-pin-brand{background:var(--brand-green)}
.map-pin-normal{background:#278a5b}
.map-pin-high{background:#e98121}
.map-pin-critical{background:#d93d3d}
.map-cluster{display:grid;place-items:center;width:100%;height:100%;border-radius:50%;border:3px solid #fff;box-shadow:0 2px 8px #0d252866;color:#fff;font-weight:800;font-size:var(--text-sm);font-style:normal;background:var(--brand-forest)}
.map-cluster-brand{background:var(--brand-forest)}
.map-cluster-normal{background:#1f6f49}
.map-cluster-high{background:#c96a12}
.map-cluster-critical{background:#b8302f}
.map-legend{display:flex;flex-wrap:wrap;gap:.5rem 1.1rem;align-items:center;margin:.6rem 0 0;font-size:var(--text-sm);color:var(--color-text-muted)}
.map-legend span{display:inline-flex;align-items:center;gap:.45rem}
.map-legend .map-pin{width:14px;height:14px;margin:0;border-width:2px;box-shadow:none}
.map-legend .map-pin::after{inset:3px}
.map-legend .map-cluster{width:22px;height:22px;border-width:2px;font-size:.65rem;box-shadow:none}
.buildings-map-layout{display:grid;grid-template-columns:minmax(0,1fr) clamp(260px,25%,420px);gap:1rem;align-items:stretch}
.buildings-map-list{background:var(--brand-paper);border:1px solid var(--brand-border);border-radius:var(--radius-md);padding:.9rem;min-height:0;overflow:auto}
.buildings-map-list h3{margin:0 0 .6rem;font-size:var(--text-base)}
.buildings-map-list ul{list-style:none;margin:0;padding:0;display:grid;gap:.5rem}
.buildings-map-list li{display:grid;gap:.1rem;padding-bottom:.5rem;border-bottom:1px solid var(--brand-border)}
.buildings-map-list li:last-child{border-bottom:0}
.buildings-map-list .link-button{text-align:left;padding:0}
.buildings-map-list small{color:var(--color-text-muted)}
.building-mini-map{width:100%;height:210px;border:1px solid var(--brand-border);border-radius:var(--radius-md);overflow:hidden;z-index:0}
/* Carte à 3/4 de la largeur et à hauteur d’écran ; la liste prend la même hauteur et défile. */
@media(min-width:821px){.buildings-map-layout{height:max(460px,calc(100vh - 150px))}.buildings-map-layout .buildings-map-canvas{height:100%;min-height:0}}
@media(max-width:820px){.buildings-map-layout{grid-template-columns:1fr}.buildings-map-list{max-height:260px}}
:root[data-theme="dark"] .buildings-map-list{background:var(--dark-surface);border-color:var(--dark-border)}

/* Kanban card: priority strip with icon, building overline, countdown deadline. */
.task-card{display:grid;grid-template-columns:20px minmax(0,1fr);padding:0;overflow:hidden;--prio:#dfe5e1;--prio-ink:#8a9a92}
.task-card.prio-urgent{--prio:#c0271b;--prio-ink:#fff}.task-card.prio-high{--prio:#c8641d;--prio-ink:#fff}.task-card.prio-low{--prio:#2f6fa8;--prio-ink:#fff}
.task-prio-strip{background:var(--prio);color:var(--prio-ink);display:flex;justify-content:center;padding-top:.85rem}
.task-prio-strip .priority{display:contents;color:inherit}.task-card .task-prio-strip svg{width:13px;height:13px;stroke-width:2.6;color:var(--prio-ink)}
.task-card .task-body{display:flex;flex-direction:column;gap:.4rem;padding:.8rem .9rem .75rem .85rem;min-width:0}
.task-card .task-building{font-size:.72rem;font-weight:800;letter-spacing:.05em;text-transform:uppercase;color:var(--brand-green)}
.task-card .task-building>span:not(.task-more-buildings){overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.task-more-buildings{flex:none;border-radius:var(--radius-pill);background:#e3f1ea;color:var(--brand-green);padding:0 .45rem;letter-spacing:0}
.task-card h3{margin:0;font-size:.95rem;line-height:1.35}
.task-card .task-meta-item .ui-icon,.task-card .task-meta-item svg{flex:none;width:14px;height:14px}
.task-blocking{display:flex;gap:.4rem;align-items:flex-start;margin:0;padding:.4rem .55rem;border-radius:var(--radius-sm);background:#fde8e6;color:#b42318!important;font-size:.8rem!important;font-weight:600}
.task-blocking .task-symbol{flex:none;width:14px;height:14px;margin-top:.1rem}
.task-card .task-footer{margin-top:.25rem;padding-top:.6rem;gap:.45rem;flex-wrap:wrap}.task-card .task-footer .task-due{margin-left:auto}
.task-card .task-footer [data-meta="assignee"]{align-items:center;flex:1 1 7rem;min-width:0}.task-card .task-footer [data-meta="assignee"]>span:last-child{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.task-avatar{flex:none;width:22px;height:22px;border-radius:50%;display:inline-grid;place-items:center;background:var(--brand-green);color:#fff;font-size:.62rem;font-weight:800}.task-avatar.unassigned{background:#8a9a92}
.task-due{flex:none;display:inline-flex;align-items:center;gap:.3rem;border-radius:var(--radius-pill);padding:.2rem .6rem;font-size:.74rem;font-weight:800;white-space:nowrap;background:#eef3ef;color:var(--brand-green)}
.task-due svg,.task-due .ui-icon{width:13px;height:13px;flex:none}
.task-due.late{background:#fde8e6;color:#b42318}.task-due.soon{background:#fff3dd;color:#a44d12}.task-due.none{background:#f1f3f2;color:#5d6b64}.task-due.done{background:#eef6d6;color:#4d6b12}
.kanban-column[data-status="done"] .task-card h3{text-decoration:line-through;text-decoration-color:#9aa6a0}
:root[data-theme="dark"] .task-card{--prio:#40504a;--prio-ink:#aab7b0}
:root[data-theme="dark"] .task-card.prio-urgent{--prio:#d9534a;--prio-ink:#fff}:root[data-theme="dark"] .task-card.prio-high{--prio:#d9823f;--prio-ink:#fff}:root[data-theme="dark"] .task-card.prio-low{--prio:#4f8cc4;--prio-ink:#fff}
:root[data-theme="dark"] .task-card .task-building,:root[data-theme="dark"] .task-more-buildings{color:#8ec8a6}:root[data-theme="dark"] .task-more-buildings{background:#25493c}
:root[data-theme="dark"] .task-blocking{background:#4a2420;color:#ffb4ab!important}
:root[data-theme="dark"] .task-due{background:#25493c;color:#b9e3c9}:root[data-theme="dark"] .task-due.late{background:#4a2420;color:#ffb4ab}:root[data-theme="dark"] .task-due.soon{background:#4a3417;color:#ffd08a}:root[data-theme="dark"] .task-due.none{background:var(--dark-raised);color:#c6cbd0}:root[data-theme="dark"] .task-due.done{background:#34431b;color:#d6ee9a}
.task-buildings-field{grid-column:1/-1}
.building-map-framing{margin:0 0 .75rem}
.building-map-framing .link-button{margin-left:.35rem}
.buildings-map-list .buildings-map-list-heading{margin-top:.4rem;padding:.4rem 0 .2rem;border-bottom:0;font-size:var(--text-xs);font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--color-text-muted)}
