.ntf-sr{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}.ntf-link{border:none;background:none;padding:0;color:var(--accent);font:inherit;font-size:var(--fs-sm);font-weight:600;text-decoration:none;cursor:pointer}.ntf-link:disabled{color:var(--text-muted);cursor:default}.ntf-item{position:relative;display:flex;align-items:flex-start;gap:12px;width:100%;border:none;background:none;font:inherit;text-align:left;cursor:pointer}.ntf-dot{flex:none;width:7px;height:7px;margin-top:6px;border-radius:50%}.ntf-text{display:flex;flex:1;flex-direction:column;gap:2px;min-width:0}.ntf-title{font-size:var(--fs-base);font-weight:500;color:var(--text-strong)}.ntf-item[data-unread=true] .ntf-title{font-weight:700}.ntf-body{font-size:var(--fs-sm);color:var(--text-muted)}.ntf-time{flex:none;font-size:var(--fs-xs);color:var(--text-muted);white-space:nowrap}.ntf-row{padding:10px 16px}.ntf-row:hover,.ntf-row:focus-visible{background:var(--surface-sunken)}.ntf-card{padding:14px 16px;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);box-shadow:var(--shadow-sm);transition:box-shadow var(--dur-fast) var(--ease)}.ntf-card:hover{box-shadow:var(--shadow)}.ntf-list{margin:0;padding:0;list-style:none}.ntf-quick{display:flex;flex-direction:column;width:360px;max-width:calc(100vw - 32px);max-height:70vh;border:1px solid var(--line);border-radius:var(--radius-lg);background:var(--surface);box-shadow:var(--shadow-hover);color:var(--text);overflow:hidden}.ntf-quick-head{display:flex;align-items:center;justify-content:space-between;padding:14px 16px 10px;border-bottom:1px solid var(--line)}.ntf-quick-head h2{margin:0;font-size:var(--fs-md);font-weight:700;color:var(--text-strong)}.ntf-quick .ntf-list{overflow-y:auto;padding:4px 0}.ntf-quick-foot{padding:10px 16px;border-top:1px solid var(--line);text-align:center}.ntf-page{width:100%;max-width:760px;margin:0 auto;padding:var(--space-6) var(--space-4)}.ntf-page .ui-pills{margin-bottom:var(--space-4)}.ntf-page .ntf-list{display:flex;flex-direction:column;gap:10px}:root{--purple: var(--status-to-finance);--purple-bg: #f2eff8;--tone-in_progress: var(--status-in-progress);--tone-signed: var(--status-signed);--tone-to_finance: var(--status-to-finance);--tone-abandoned: var(--status-abandoned)}.hub-shell{min-height:100vh;background-color:var(--surface-page);background-image:linear-gradient(rgba(99,102,106,.025) 1px,transparent 1px),linear-gradient(90deg,rgba(99,102,106,.025) 1px,transparent 1px);background-size:32px 32px}.hub-topbar{position:sticky;top:0;z-index:50;display:grid;grid-template-columns:auto auto 1fr auto;align-items:center;gap:var(--space-3);height:56px;padding:0 var(--space-6);background:#fffffff0;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-bottom:1px solid var(--border-soft)}.hub-brand{display:flex;align-items:center;gap:var(--space-2);text-decoration:none}.hub-brand-sep{font-size:var(--fs-sm);font-weight:500;letter-spacing:.08em;color:var(--text-muted)}.hub-divider{width:1px;height:22px;background:var(--border)}.hub-views{justify-self:center;display:flex;gap:2px;padding:3px;border-radius:var(--radius-pill);background:#eaecef}.hub-view{display:inline-flex;align-items:center;gap:5px;padding:6px 13px;border-radius:var(--radius-pill);font-size:11.5px;font-weight:600;color:var(--text-muted);text-decoration:none;white-space:nowrap;transition:background var(--dur-fast, .15s) var(--ease),color var(--dur-fast, .15s) var(--ease)}.hub-view:hover{color:var(--text-strong);background:#fff9}.hub-view[aria-current=page]{background:#fff;color:var(--text-strong);box-shadow:0 1px 3px #27252d1f}.hub-view[data-view=commerce][aria-current=page]{color:var(--accent)}.hub-view[data-view=developpement][aria-current=page]{color:var(--ok)}.hub-view[data-view=financement][aria-current=page]{color:var(--purple)}.hub-tools{justify-self:end;display:flex;align-items:center;gap:var(--space-2)}.hub-env{padding:2px 8px;border:1px solid var(--border);border-radius:var(--radius-sm);font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:10.5px;color:var(--text-muted);background:var(--neutral-25)}.hub-count{padding:4px 11px;border-radius:var(--radius-pill);background:#eaecef;font-size:var(--fs-sm);color:var(--text-muted);white-space:nowrap}.hub-count b{color:var(--text-strong)}.hub-tool{display:inline-flex;align-items:center;gap:6px;padding:7px 12px;border:1px solid var(--border-soft);border-radius:var(--radius);background:#fff;font-family:inherit;font-size:var(--fs-sm);font-weight:600;color:var(--text-body);text-decoration:none;white-space:nowrap;cursor:pointer}.hub-tool:hover:not(:disabled){border-color:var(--text-strong);color:var(--text-strong)}.hub-tool:disabled{opacity:.55;cursor:not-allowed}.hub-icon-tool{padding:7px}.hub-tool-purple{border-color:var(--purple);color:var(--purple);background:var(--purple-bg)}.hub-user{position:relative}.hub-avatar{display:grid;place-items:center;width:34px;height:34px;border:none;border-radius:50%;background:var(--accent);color:#fff;font-family:inherit;font-size:var(--fs-sm);font-weight:700;cursor:pointer}.hub-user-menu{position:absolute;top:calc(100% + 8px);right:0;z-index:60;display:flex;flex-direction:column;gap:4px;min-width:220px;padding:var(--space-3) var(--space-4);border:1px solid var(--border-soft);border-radius:var(--radius-lg);background:#fff;box-shadow:var(--shadow);font-size:var(--fs-sm)}.hub-user-roles{color:var(--accent);font-weight:600}.hub-user-logout{margin-top:var(--space-2);padding:7px 10px;border:1px solid var(--border-soft);border-radius:var(--radius);background:transparent;font-family:inherit;font-weight:600;color:var(--err);text-align:left;cursor:pointer}.hub-user-logout:hover:not(:disabled){background:var(--err-bg)}.hub-new h1{font-size:24px;font-weight:700;margin-bottom:4px}.hub-type-cards{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--space-4);margin-top:var(--space-5)}@media(max-width:1100px){.hub-type-cards{grid-template-columns:repeat(2,minmax(0,1fr))}}.hub-type-card{--type: var(--accent);--type-bg: rgba(0, 110, 182, .1);position:relative;display:flex;align-items:center;gap:var(--space-4);padding:20px;overflow:hidden;border:1.5px solid var(--border-soft);border-radius:var(--radius-lg);background:var(--surface);font-family:inherit;text-align:left;text-decoration:none;color:inherit;cursor:pointer;transition:transform .25s var(--ease),box-shadow .25s var(--ease),border-color .25s var(--ease)}.hub-type-card[data-type=bess]{--type: var(--warn);--type-bg: rgba(217, 138, 0, .1)}.hub-type-card[data-type=ev_charging]{--type: var(--ok);--type-bg: rgba(46, 158, 91, .1)}.hub-type-card[data-type=repowering]{--type: var(--purple);--type-bg: rgba(107, 79, 163, .1)}.hub-type-card:before{content:"";position:absolute;inset:0 0 auto;height:3px;background:var(--type);transform:scaleX(0);transform-origin:left;transition:transform .3s var(--ease)}.hub-type-card:hover,.hub-type-card[aria-pressed=true]{transform:translateY(-3px);box-shadow:var(--shadow-hover);border-color:transparent}.hub-type-card:hover:before,.hub-type-card[aria-pressed=true]:before{transform:scaleX(1)}.hub-type-card[aria-pressed=true]{border-color:var(--type)}.hub-type-icon{display:grid;place-items:center;flex-shrink:0;width:48px;height:48px;border-radius:10px;background:var(--type-bg);color:var(--type)}.hub-type-body{display:flex;flex-direction:column;gap:3px;min-width:0}.hub-type-body strong{font-size:14.5px;font-weight:600;color:var(--text-strong)}.hub-type-body span{display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;font-size:var(--fs-sm);line-height:1.4;color:var(--text-muted)}.hub-type-plus{display:grid;place-items:center;flex-shrink:0;width:28px;height:28px;margin-left:auto;border:1.5px solid var(--border-soft);border-radius:50%;color:var(--text-muted)}.hub-type-card:hover .hub-type-plus,.hub-type-card[aria-pressed=true] .hub-type-plus{border-color:var(--type);color:var(--type)}.hub-search{position:relative;display:inline-flex;align-items:center;color:var(--text-muted)}.hub-search .icon{position:absolute;left:10px;pointer-events:none}.hub-search input,.hub-select{padding:7px 12px;border:1px solid var(--border-soft);border-radius:var(--radius);background:#fff;font-family:inherit;font-size:13px;color:var(--text-strong)}.hub-search input{width:200px;padding-left:32px}.hub-select{font-weight:600;cursor:pointer}.hub-search input:focus,.hub-select:focus{outline:none;border-color:var(--accent);box-shadow:var(--ring)}.hub-projects-table .data-table th,.hub-projects-table .data-table td{padding-left:10px;padding-right:10px;white-space:nowrap}.hub-projects-table .data-table th:first-child,.hub-projects-table .data-table td:first-child{width:100%;max-width:0;padding-left:20px}.hub-projects-table .data-table td.num{font-variant-numeric:tabular-nums}.hub-project-cell,.hub-project-line{min-width:0}.hub-project-line{display:flex;align-items:center;gap:6px}.hub-project-name{overflow:hidden;font-weight:700;font-size:var(--fs-base);color:var(--text-strong);text-overflow:ellipsis}.hub-project-sub{margin-top:2px;overflow:hidden;font-size:var(--fs-sm);color:var(--text-muted);text-overflow:ellipsis;white-space:nowrap}.hub-tag{flex:none;padding:1px 6px;border-radius:4px;background:var(--accent-bg);color:var(--accent);font-size:9.5px;font-weight:700;letter-spacing:.06em;text-transform:uppercase}.hub-tag[data-tone=neutral]{background:var(--neutral-100);color:var(--text-muted)}.hub-filters{display:flex;flex-direction:column;gap:10px;margin-bottom:var(--space-4);padding:12px 14px;border:1px solid var(--border-soft);border-radius:var(--radius-lg);background:var(--surface);box-shadow:var(--shadow-xs)}.hub-filters-row{display:flex;flex-wrap:wrap;align-items:center;gap:10px}.hub-search-wide{flex:1 1 240px}.hub-search-wide input{width:100%}.hub-row-action{display:inline-grid;place-items:center;width:30px;height:30px;border:none;border-radius:var(--radius-sm);background:transparent;color:var(--text-muted);cursor:pointer}.hub-row-action:hover:not(:disabled){background:var(--accent-bg);color:var(--accent)}.hub-row-action[data-tone=danger]:hover:not(:disabled){background:var(--err-bg);color:var(--err)}.hub-new{display:flex;flex-direction:column;gap:var(--space-2)}.hub-back{display:inline-flex;align-items:center;gap:6px;align-self:flex-start;font-size:var(--fs-sm);font-weight:600;text-decoration:none}.hub-step{display:flex;align-items:center;gap:var(--space-2);margin-top:var(--space-5);font-size:var(--fs-md)}.hub-step span{display:grid;place-items:center;width:24px;height:24px;border-radius:50%;background:var(--accent);color:#fff;font-size:var(--fs-sm)}.hub-new .hub-type-cards{margin-top:0}.hub-new form .ui-grid+.ui-grid{margin-top:var(--space-3)}.hub-address{position:relative}.hub-address input{width:100%}.hub-address-list{position:absolute;top:calc(100% + 4px);left:0;right:0;z-index:20;margin:0;padding:4px;list-style:none;border:1px solid var(--border-soft);border-radius:var(--radius);background:#fff;box-shadow:var(--shadow)}.hub-address-list li{padding:7px 10px;border-radius:var(--radius-sm);font-size:13px;cursor:pointer}.hub-address-list li:hover{background:var(--accent-bg)}.hub-new-actions{display:flex;justify-content:flex-end;gap:var(--space-2);margin-top:var(--space-4)}.export-dialog{display:flex;flex-direction:column;gap:var(--space-4)}.export-formats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--space-3);border:none}.export-formats legend{margin-bottom:var(--space-2);font-size:var(--fs-xs);font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--text-muted)}.export-format{position:relative;display:flex;align-items:flex-start;gap:var(--space-3);padding:var(--space-3) var(--space-4);border:1.5px solid var(--border-soft);border-radius:var(--radius-lg);background:#fff;cursor:pointer}.export-format[data-checked]{border-color:var(--accent);background:var(--blue-50)}.export-format:focus-within{box-shadow:var(--ring)}.export-format input{position:absolute;opacity:0;pointer-events:none}.export-format-icon{display:grid;place-items:center;flex-shrink:0;width:36px;height:36px;border-radius:var(--radius);background:var(--accent-bg);color:var(--accent)}.export-format-text{display:flex;flex-direction:column;gap:2px;font-size:var(--fs-sm);color:var(--text-muted)}.export-format-text strong{font-size:14px;color:var(--text-strong)}.export-name{display:flex;flex-direction:column;gap:6px;font-size:var(--fs-sm);font-weight:600}.export-name-field{display:flex;align-items:center;border:1px solid var(--border);border-radius:var(--radius);background:#fff}.export-name-field:focus-within{border-color:var(--accent);box-shadow:var(--ring)}.export-name-field input{flex:1;min-width:0;padding:8px 11px;border:none;background:transparent;font-family:inherit;font-size:13px;outline:none}.export-name-ext{padding:0 11px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;color:var(--text-muted)}.export-preview h3{margin-bottom:var(--space-2);font-size:13.5px}.export-preview-table{max-height:320px;overflow:auto}.export-actions{display:flex;justify-content:flex-end;gap:var(--space-2)}@media(max-width:640px){.export-formats{grid-template-columns:1fr}}.hub-kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:var(--space-3);margin-bottom:var(--space-4)}.hub-kpi{display:block;padding:14px 16px;border:1px solid var(--border-soft);border-radius:var(--radius);background:var(--surface);box-shadow:var(--shadow-xs);color:inherit;text-decoration:none}a.hub-kpi{transition:border-color var(--dur-fast) var(--ease),box-shadow var(--dur-fast) var(--ease)}a.hub-kpi:hover,a.hub-kpi:focus-visible{border-color:var(--accent-border);box-shadow:var(--shadow)}.hub-dot[data-tone=in_progress]{--tone: var(--tone-in_progress)}.hub-dot[data-tone=signed]{--tone: var(--tone-signed)}.hub-dot[data-tone=to_finance],.hub-dot[data-tone=spv]{--tone: var(--purple)}.hub-dot[data-tone=total]{--tone: var(--text-strong)}.hub-dot[data-tone=neutral]{--tone: var(--neutral-400)}.hub-dot[data-tone=alert]{--tone: var(--err)}.hub-kpi-label{display:flex;align-items:center;gap:6px;font-size:10.5px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--text-muted)}.hub-dot{--tone: var(--accent);flex-shrink:0;width:7px;height:7px;border-radius:50%;background:var(--tone)}.hub-kpi-value{margin-top:7px;font-size:24px;font-weight:800;color:var(--text-strong);font-variant-numeric:tabular-nums;white-space:nowrap}.hub-kpi[data-trend=bad] .hub-kpi-value{color:var(--err)}.hub-kpi-sub{margin-top:3px;font-size:11.5px;color:var(--text-muted)}.hub-db-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,280px),1fr));gap:var(--space-4);margin-bottom:var(--space-4)}.hub-db-card{padding:18px 20px;border:1px solid var(--border-soft);border-radius:var(--radius-lg);background:var(--surface);box-shadow:var(--shadow-sm)}.hub-db-card h3{margin-bottom:var(--space-3);font-size:13.5px}.hub-bars{margin:0;padding:0;list-style:none}.hub-bars li{display:grid;grid-template-columns:118px 1fr 44px;align-items:center;gap:10px;padding:5px 0}.hub-bar-label{overflow:hidden;font-size:var(--fs-sm);font-weight:600;text-overflow:ellipsis;white-space:nowrap}.hub-bar-track{height:12px;overflow:hidden;border-radius:4px;background:#f0f1f3}.hub-bar-fill{display:block;height:100%;border-radius:0 4px 4px 0;background:var(--accent);transition:width .5s var(--ease)}.hub-bar-fill[data-tone=in_progress]{background:var(--tone-in_progress)}.hub-bar-fill[data-tone=signed]{background:var(--tone-signed)}.hub-bar-fill[data-tone=to_finance]{background:var(--tone-to_finance)}.hub-bar-fill[data-tone=abandoned],.hub-bar-fill[data-tone=neutral]{background:var(--neutral-500)}.hub-bar-value{font-size:var(--fs-sm);font-weight:700;color:var(--text-strong);text-align:right;font-variant-numeric:tabular-nums}.hub-spv-table{width:100%;border-collapse:collapse;font-size:12.5px}.hub-spv-table td{padding:9px 0;border-top:1px solid var(--border-soft)}.hub-spv-table tr:first-child td{border-top:none}.hub-spv-table .hub-spv-name{color:#6e4fb0;font-weight:600;text-decoration:none}.hub-spv-table .hub-spv-name:hover{text-decoration:underline}.hub-spv-table td:nth-child(2){width:160px}.hub-num{font-weight:700;color:var(--text-strong);text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums}.hub-spv-name{font-weight:700;color:var(--purple)}.hub-spv-check{width:16px;height:16px;accent-color:var(--purple)}.hub-spv-bar{display:flex;flex-wrap:wrap;align-items:flex-end;gap:var(--space-3);margin:var(--space-3) 0}.hub-spv-detail{border-left:3px solid var(--purple)}@media(max-width:900px){.hub-topbar{grid-template-columns:auto 1fr auto;height:auto;padding:var(--space-2) var(--space-4)}.hub-divider{display:none}.hub-views{grid-row:2;grid-column:1 / -1;overflow-x:auto}}.hub-body{padding:var(--space-5) var(--space-6)}.hub-sr{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}.hub-seg .ui-pills{flex-wrap:nowrap;gap:2px;padding:2px;border:1px solid var(--border-soft);border-radius:8px;background:var(--neutral-50)}.hub-seg .ui-pills-label{display:none}.hub-seg .ui-pill{padding:4px 10px;border:none;border-radius:6px;background:transparent;color:var(--text);white-space:nowrap}.hub-seg .ui-pill:hover{color:var(--text-strong)}.hub-seg .ui-pill[aria-pressed=true]{background:var(--surface);color:var(--text-strong);box-shadow:var(--shadow-xs)}.hub-seg .ui-pill-count{color:var(--text-muted);opacity:1}.hub-combo{position:relative;min-width:200px}.hub-combo input{width:100%;cursor:pointer}.hub-combo[data-open] input{cursor:text}.hub-combo-list{max-height:320px;overflow-y:auto}.hub-combo-list li{display:flex;justify-content:space-between;gap:12px}.hub-combo-list li[aria-selected=true]{font-weight:700}.hub-combo-list li[data-active],.hub-address-list li[aria-selected=true]{background:var(--accent-bg)}.export-subject{margin:0 0 var(--space-3);padding:8px 12px;border-radius:var(--radius-sm);background:var(--accent-bg);color:var(--text-strong);font-size:var(--fs-sm)}.hub-filter-chip{display:inline-flex;align-items:center;gap:6px}.hub-filter-chip button{border:0;background:none;padding:0 2px;font-size:15px;line-height:1;color:inherit;cursor:pointer}.hub-bar-fill[data-tone=alert]{background:var(--err)}a.hub-bar-label{color:inherit;text-decoration:none}a.hub-bar-label:hover{color:var(--accent);text-decoration:underline}:root{--shell-bg: #1b2030;--shell-active: #262c3f;--shell-text: #e4e4e4;--shell-accent: #4da3e8;--shell-w: 248px;--shell-rail: 64px;--shell-top: 48px}.ctx{position:sticky;top:0;z-index:20;background:#fff;border-bottom:1px solid var(--border-soft)}.ctx-bar{height:56px;display:flex;align-items:center;gap:16px;padding:0 24px}.ctx-heading{display:flex;flex-direction:column;justify-content:center;min-width:0;flex:1;white-space:nowrap}.ctx-titles{display:flex;align-items:baseline;gap:8px;min-width:0;overflow:hidden}.ctx-crumbs{display:flex;align-items:baseline;gap:6px;font-size:11px;line-height:1.3;color:var(--text-muted)}.ctx-crumbs a{color:inherit;text-decoration:none}.ctx-crumbs a:hover{color:var(--text-strong);text-decoration:underline}.ctx-title{margin:0;font-size:17px;font-weight:600;overflow:hidden;text-overflow:ellipsis}.ctx-subtitle{font-size:13px;color:var(--text-muted);overflow:hidden;text-overflow:ellipsis}.ctx-actions{display:flex;align-items:center;gap:8px;flex-shrink:0}.ctx-sub{min-height:40px;display:flex;align-items:center;gap:8px;padding:0 24px;border-top:1px solid var(--border-soft)}.ctx-title{color:var(--text-strong)}.shell{display:flex;flex-direction:column;height:100vh;height:100dvh;background:var(--surface-page)}.shell-body{display:flex;flex:1;min-height:0}.shell-main{flex:1;min-width:0;overflow:auto;display:flex;flex-direction:column}.shell-content{display:flex;flex-direction:column;flex:1 0 auto;min-height:0}.shell-content:has(>.ws){flex:1 1 0}.shell-content>.card:only-child,.shell-pad{margin:var(--space-5) var(--space-6)}.shell-sidebar{flex:none;width:var(--shell-w);height:100%;display:flex;flex-direction:column;gap:var(--space-2);padding:var(--space-3) var(--space-3) 0;background:var(--shell-bg);color:var(--shell-text);transition:width .18s var(--ease)}.shell-sidebar[data-rail]{width:var(--shell-rail);padding-inline:10px}.shell-head{display:flex;align-items:center;justify-content:space-between;gap:var(--space-2);min-height:36px;padding:0 2px 0 6px}.shell-sidebar[data-rail] .shell-head{flex-direction:column;padding:0}.shell-brand{display:flex;align-items:center;gap:var(--space-2);text-decoration:none;color:#fff}.shell-hub{font-size:11px;font-weight:500;letter-spacing:.14em;color:var(--shell-text)}.shell-mark{display:block;width:22px;height:22px;border:2px solid #fff;border-radius:50%}.shell-toggle{display:grid;place-items:center;width:24px;height:24px;border:1px solid #353c52;border-radius:var(--radius-sm);background:transparent;color:var(--shell-text);cursor:pointer}.shell-toggle:hover{color:#fff;background:var(--shell-active)}.shell-new{position:relative}.shell-new-btn{display:flex;align-items:center;justify-content:center;gap:6px;width:100%;height:36px;border:0;border-radius:var(--radius-sm);background:var(--accent);color:#fff;font:inherit;font-size:13px;font-weight:600;cursor:pointer}.shell-new-btn:hover{background:var(--accent-hover)}.shell-new-menu{position:absolute;z-index:60;top:calc(100% + 4px);left:0;min-width:200px;padding:4px;background:var(--surface);border:1px solid var(--border-soft);border-radius:var(--radius);box-shadow:var(--shadow)}.shell-sidebar[data-rail] .shell-new-menu{top:0;left:calc(100% + 8px)}.shell-new-menu a{display:flex;align-items:center;gap:var(--space-2);padding:8px 10px;border-radius:var(--radius-sm);color:var(--text-strong);text-decoration:none;font-size:13px}.shell-new-menu a:hover,.shell-new-menu a:focus-visible{background:var(--accent-bg);outline:none}.shell-search-btn{display:flex;align-items:center;gap:var(--space-2);width:100%;height:32px;padding:0 8px 0 10px;border:1px solid #353c52;border-radius:var(--radius-sm);background:#ffffff08;color:var(--shell-text);font:inherit;font-size:12.5px;cursor:pointer}.shell-sidebar[data-rail] .shell-search-btn{justify-content:center;padding:0}.shell-search-btn:hover{border-color:#4a5370;color:#fff}.shell-search-text{flex:1;text-align:left}.shell-search-btn kbd{padding:1px 5px;border:1px solid #4a5370;border-radius:4px;font:600 10px/1.4 var(--font-mono, ui-monospace, monospace)}.shell-nav{flex:1;overflow-y:auto;overflow-x:hidden;margin:var(--space-2) -4px 0;padding:0 4px var(--space-3)}.shell-group+.shell-group{margin-top:var(--space-3)}.shell-group-title{margin:0 0 4px;padding:0 10px;font-size:10px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:#6b7286}.shell-sidebar[data-rail] .shell-group-title{height:1px;margin:0 8px 8px;padding:0;overflow:hidden;color:transparent;background:#2c3346}.shell-group ul{margin:0;padding:0;list-style:none}.shell-item{position:relative;display:flex;align-items:center;gap:10px;width:100%;height:34px;padding:0 10px;border:0;border-radius:var(--radius-sm);background:transparent;color:var(--shell-text);font:inherit;font-size:13px;text-decoration:none;text-align:left;cursor:pointer}.shell-item:hover{color:#fff;background:#ffffff0a}.shell-item[aria-current=page]{color:#fff;font-weight:600;background:var(--shell-active)}.shell-item[aria-current=page] .icon{color:var(--shell-accent)}.shell-item:focus-visible,.shell-toggle:focus-visible,.shell-search-btn:focus-visible,.shell-new-btn:focus-visible{outline:2px solid var(--shell-accent);outline-offset:1px}.shell-label{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.shell-count{font-size:11.5px;font-variant-numeric:tabular-nums;color:#7c8396}.shell-badge{min-width:18px;height:18px;padding:0 5px;border-radius:9px;background:#e5484d;color:#fff;font-size:11px;font-weight:700;line-height:18px;text-align:center}.shell-sidebar[data-rail] .shell-item{justify-content:center;padding:0}.shell-sidebar[data-rail] .shell-label,.shell-sidebar[data-rail] .shell-count{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}.shell-sidebar[data-rail] .shell-badge{position:absolute;top:2px;right:6px;min-width:15px;height:15px;font-size:9.5px;line-height:15px}.shell-sidebar[data-rail] .shell-item:is(:hover,:focus-visible):after{content:attr(data-tip);position:absolute;z-index:70;left:calc(100% + 10px);top:50%;transform:translateY(-50%);padding:5px 8px;border-radius:var(--radius-sm);background:#0f131e;color:#fff;font-size:12px;font-weight:500;white-space:nowrap;pointer-events:none}.shell-sidebar[data-rail] .shell-nav{overflow:visible}.shell-foot{display:flex;align-items:center;gap:var(--space-2);margin:0 calc(-1 * var(--space-3));padding:var(--space-3);border-top:1px solid #2c3346}.shell-sidebar[data-rail] .shell-foot{justify-content:center;margin-inline:-10px}.shell-env{flex:none;padding:1px 6px;border:1px solid #4a5370;border-radius:4px;color:var(--shell-text);font:500 10.5px/1.5 var(--font-mono, ui-monospace, monospace)}.shell-user{position:relative;display:flex;align-items:center;gap:10px;flex:1;min-width:0}.shell-avatar{position:relative;flex:none;display:grid;place-items:center;width:32px;height:32px;border:0;border-radius:50%;background:var(--accent);color:#fff;font:700 12px/1 inherit;font-family:inherit;cursor:pointer}.shell-user-id{display:flex;flex-direction:column;min-width:0}.shell-user-id strong{overflow:hidden;color:#fff;font-size:13px;text-overflow:ellipsis;white-space:nowrap}.shell-user-links{font-size:11px;white-space:nowrap}.shell-user-links button{padding:0;border:0;background:none;color:var(--shell-text);font:inherit;cursor:pointer}.shell-user-links button:hover{color:#fff;text-decoration:underline}.shell-user-name{color:#fff;font-size:13px;font-weight:500;white-space:nowrap}.shell-user-menu{position:absolute;z-index:60;bottom:calc(100% + 8px);left:0;display:flex;flex-direction:column;gap:4px;min-width:220px;padding:var(--space-3);background:var(--surface);border:1px solid var(--border-soft);border-radius:var(--radius);box-shadow:var(--shadow);color:var(--text);font-size:13px}.shell-user[data-variant=topbar] .shell-user-menu{top:calc(100% + 8px);bottom:auto;left:auto;right:0}.shell-user-caption{font-size:11px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--text-muted)}.shell-user-menu strong{color:var(--text-strong)}.shell-muted{color:var(--text-muted);font-size:12px}.shell-user-nav{display:flex;flex-direction:column;margin:var(--space-2) calc(-1 * var(--space-2)) 0;padding-top:var(--space-2);border-top:1px solid var(--border-soft)}.shell-user-nav a{display:flex;align-items:center;gap:var(--space-2);padding:7px var(--space-2);border-radius:var(--radius-sm);color:var(--text);text-decoration:none}.shell-user-nav a:hover,.shell-user-nav a:focus-visible{background:var(--surface-sunken)}.shell-user-nav .shell-badge{margin-left:auto}.shell-user-logout{margin-top:var(--space-2);padding:6px 10px;border:1px solid var(--border-soft);border-radius:var(--radius-sm);background:var(--surface);color:var(--err);font:inherit;cursor:pointer}.shell-user-logout:hover{background:var(--err-bg)}.shell-topbar{flex:none;display:flex;align-items:center;gap:var(--space-4);height:var(--shell-top);padding:0 var(--space-4);background:var(--shell-bg);border-bottom:1px solid #2c3346}.shell-topbar-head{flex:none;display:flex;align-items:center;justify-content:space-between;gap:var(--space-2);width:var(--shell-w);margin-left:calc(-1 * var(--space-4));padding:0 calc(var(--space-3) + 2px) 0 calc(var(--space-3) + 6px);transition:width .18s var(--ease)}.shell-topbar-head[data-rail]{width:var(--shell-rail);justify-content:center;gap:6px;padding:0}.shell-topbar .shell-search-btn{width:260px}.shell-topbar .shell-new-btn{width:auto;height:30px;padding:0 12px}.shell-topbar .shell-new-menu{left:auto;right:0}.shell-topbar-tools{display:flex;align-items:center;gap:var(--space-3);margin-left:auto}.shell-topbar .shell-user{flex:none}.shell-topbar .shell-avatar{width:28px;height:28px;font-size:11px}.shell-bell{position:relative;display:grid;place-items:center;width:32px;height:32px;border:0;border-radius:var(--radius-sm);background:transparent;color:var(--shell-text);cursor:pointer}.shell-bell:hover{color:#fff;background:var(--shell-active)}.shell-bell[data-unread] .shell-badge:after{content:"";position:absolute;top:-3px;right:-3px;bottom:-3px;left:-3px;border-radius:inherit;border:2px solid #e5484d;animation:shell-pulse 1.8s var(--ease) infinite}@keyframes shell-pulse{0%{transform:scale(.8);opacity:.9}to{transform:scale(1.8);opacity:0}}@media(prefers-reduced-motion:reduce){.shell-bell[data-unread] .shell-badge:after{animation:none}}.shell-user-ext{margin-left:auto;color:var(--text-muted)}.shell-bell .shell-badge{position:absolute;top:0;right:-2px;min-width:15px;height:15px;font-size:9.5px;line-height:15px}.shell[data-layout=topbar] .shell-sidebar{padding-top:var(--space-4)}.shell-burger{display:grid;place-items:center;width:34px;height:34px;border:0;border-radius:var(--radius-sm);background:transparent;color:inherit;cursor:pointer}.shell-mobilebar{position:sticky;top:0;z-index:30;display:flex;align-items:center;gap:var(--space-3);height:48px;padding:0 var(--space-3);background:var(--shell-bg);color:#fff}.shell-topbar .shell-burger{color:#fff}.shell-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:80;background:#0f131e73}.shell-drawer{position:fixed;z-index:81;inset:0 auto 0 0;display:flex;max-width:86vw;box-shadow:var(--shadow)}.shell-drawer-x{position:absolute;top:10px;right:-40px;display:grid;place-items:center;width:32px;height:32px;border:0;border-radius:50%;background:var(--surface);color:var(--text-strong);cursor:pointer}.shell[data-narrow] .ctx-bar{padding:0 var(--space-4)}.shell-qp{position:fixed;z-index:90;width:380px;max-width:calc(100vw - 16px)}.shell[data-narrow] .shell-qp{width:auto}.shell-qp[hidden]{display:none}.shell-search{display:flex;flex-direction:column;gap:var(--space-3)}.shell-search-field{display:flex;align-items:center;gap:var(--space-2);padding:0 var(--space-3);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text-muted)}.shell-search-field:focus-within{border-color:var(--accent);box-shadow:var(--ring)}.shell-search-field input{flex:1;height:40px;border:0;outline:none;background:transparent;color:var(--text-strong);font:inherit;font-size:14px}.shell-search-list{max-height:50vh;margin:0;padding:0;overflow-y:auto;list-style:none}.shell-search-list li{display:grid;grid-template-columns:20px 1fr;column-gap:var(--space-2);align-items:center;padding:8px 10px;border-radius:var(--radius-sm);color:var(--text-muted);cursor:pointer}.shell-search-list li[aria-selected=true]{background:var(--accent-bg);color:var(--accent)}.shell-search-label{overflow:hidden;color:var(--text-strong);font-weight:500;text-overflow:ellipsis;white-space:nowrap}.shell-search-detail{grid-column:2;overflow:hidden;font-size:12px;color:var(--text-muted);text-overflow:ellipsis;white-space:nowrap}.shell-search-empty,.shell-search-hint{margin:0;font-size:12px;color:var(--text-muted)}.shell-search-empty{padding:var(--space-4) 0;text-align:center}@media(prefers-reduced-motion:reduce){.shell-sidebar{transition:none}}.table-wrap.data-table-wrap{overflow-x:auto;background:var(--surface);border:1px solid var(--border-soft);border-radius:var(--radius-lg);box-shadow:var(--shadow-xs)}.table-wrap--sticky{max-height:var(--table-max-height, 70vh);overflow:auto}.table-wrap--sticky .data-table thead th{position:sticky;top:0;z-index:1}.table.data-table{width:100%;border-collapse:collapse;font-size:var(--fs-base)}.table.data-table th{height:40px;padding:0 20px;text-align:left;font-size:var(--fs-xs);font-weight:700;text-transform:uppercase;letter-spacing:.8px;white-space:nowrap;color:var(--text-muted);background:var(--neutral-25);border-bottom:1px solid var(--border-soft)}.table.data-table td{height:48px;padding:8px 20px;border-bottom:1px solid var(--line-soft);color:var(--text-body);transition:background var(--dur-fast) var(--ease)}.data-table.table--dense th{height:34px;padding:0 12px}.data-table.table--dense td{height:36px;padding:4px 12px}.table.data-table tbody tr:last-child td{border-bottom:none}.table.data-table tbody tr:hover td,.table.data-table tbody tr:focus-within td{background:var(--blue-50)}.table.data-table th.num,.table.data-table td.num{text-align:right;font-variant-numeric:tabular-nums}.table.data-table th.center,.table.data-table td.center{text-align:center}.table.data-table .empty{height:auto;padding:var(--space-8);text-align:center;color:var(--text-muted)}.table.data-table tbody tr:hover td.empty{background:none}.table-sort{display:inline-flex;align-items:center;gap:4px;padding:0;border:0;background:none;font:inherit;letter-spacing:inherit;text-transform:inherit;color:inherit;cursor:pointer}.table-sort:hover,.table-sort[data-dir]{color:var(--text-strong)}.table-sort:focus-visible{outline:none;border-radius:var(--radius-sm);box-shadow:var(--ring)}.table-chevron{width:10px;height:10px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round;opacity:0;transition:opacity var(--dur-fast) var(--ease)}.table-sort:hover .table-chevron,.table-sort:focus-visible .table-chevron,.table-sort[data-dir] .table-chevron{opacity:1}.data-table.table--clickable tbody tr:not(:has(td.empty)){cursor:pointer}.data-table.table--clickable tbody tr:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}.table-actions-head,.table.data-table td.table-actions{width:1%;padding-left:0;white-space:nowrap;text-align:right}.table-row-actions{display:inline-flex;align-items:center;gap:4px;opacity:0;transition:opacity var(--dur-fast) var(--ease)}.table.data-table tbody tr:hover .table-row-actions,.table.data-table tbody tr:focus-within .table-row-actions{opacity:1}@media(hover:none){.table-row-actions{opacity:1}}.table-columns{position:relative;display:flex;justify-content:flex-end;margin-bottom:var(--space-2);font-size:var(--fs-sm)}.table-columns>summary{padding:4px 10px;border:1px solid var(--border-soft);border-radius:var(--radius-sm);background:var(--surface);color:var(--text-body);cursor:pointer;list-style:none}.table-columns>summary::-webkit-details-marker{display:none}.table-columns-menu{position:absolute;top:calc(100% + 4px);right:0;z-index:5;display:grid;gap:6px;min-width:180px;padding:var(--space-3);background:var(--surface);border:1px solid var(--border-soft);border-radius:var(--radius);box-shadow:var(--shadow)}.table-columns-menu label{display:flex;align-items:center;gap:8px;white-space:nowrap}.table-pager{display:flex;align-items:center;justify-content:flex-end;gap:var(--space-2);padding:var(--space-2) var(--space-1);font-size:var(--fs-sm);font-variant-numeric:tabular-nums;color:var(--text-muted)}.table-pager>span{margin-right:var(--space-2)}.table-pager-btn{display:inline-grid;place-items:center;width:28px;height:28px;padding:0;border:1px solid var(--border-soft);border-radius:var(--radius-sm);background:var(--surface);font-size:var(--fs-md);color:var(--text-body);cursor:pointer}.table-pager-btn:hover:not(:disabled){border-color:var(--accent-border);color:var(--accent)}.table-pager-btn:disabled{opacity:.4;cursor:default}.table-sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.shell-content:has(>.ws){display:flex;flex-direction:column;min-height:0}.ws{display:flex;flex:1;flex-direction:column;min-width:0;min-height:0;padding:0;background:var(--surface-page)}.ws-splash{display:grid;place-items:center;min-height:60vh}.ws-stack{display:flex;flex-direction:column;gap:18px}.ws-tags{display:inline-flex;align-items:center;gap:8px}.ws-spv{font-size:var(--fs-sm);font-weight:600;color:#6e4fb0;text-decoration:none}.ws-spv:hover{text-decoration:underline}.ws-saved{font-size:var(--fs-sm);color:var(--text-muted);white-space:nowrap}.ws-name-input{width:min(420px,36vw);padding:4px 10px;border:1px solid var(--accent);border-radius:var(--radius-sm);box-shadow:var(--ring);font:inherit;color:var(--text-strong)}.ws-workflow{display:flex;gap:6px}.ws-icon-btn{display:inline-grid;place-items:center;min-width:30px;height:30px;padding:0 6px;border:1px solid transparent;border-radius:var(--radius-sm);background:transparent;color:var(--text-muted);cursor:pointer}.ws-icon-btn:hover:not(:disabled){color:var(--accent);background:var(--accent-bg)}.ws-menu{position:relative}.ws-menu-btn{border-color:var(--border-strong);font-size:18px;line-height:1}.ws-menu-pop{position:absolute;top:calc(100% + 6px);right:0;z-index:40;display:flex;flex-direction:column;min-width:190px;padding:6px;background:var(--surface);border:1px solid var(--border-soft);border-radius:var(--radius);box-shadow:var(--shadow)}.ws-menu-pop button{padding:8px 12px;border:none;border-radius:var(--radius-sm);background:transparent;font:inherit;font-size:var(--fs-base);color:var(--text-strong);text-align:left;cursor:pointer}.ws-menu-pop button:hover,.ws-menu-pop button:focus-visible{background:var(--accent-bg);color:var(--accent)}.ws-menu-pop button[data-danger]{color:var(--err)}.ws-subbar{flex:1;display:flex;flex-wrap:wrap;align-items:center;column-gap:24px;row-gap:4px;min-height:40px}.ws-sub-field{display:flex;align-items:center;gap:10px}.ws-sub-field>span:first-child{font-size:10.5px;font-weight:700;letter-spacing:.6px;text-transform:uppercase;color:var(--text-muted)}.ws-sub-field select,.ws-sub-value{min-height:28px;padding:3px 10px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);font:inherit;font-size:var(--fs-base);font-weight:600;color:var(--text-strong)}.ws-sub-value{display:inline-flex;align-items:center;font-weight:500;color:var(--text-muted)}.ws-badge{display:inline-block;align-self:flex-start;padding:3px 10px;border:1px solid var(--accent-border);border-radius:var(--radius-pill);background:var(--accent-bg);color:var(--accent);font-size:var(--fs-xs);font-weight:700;white-space:nowrap}.ws-sub-text{font-size:var(--fs-base);font-weight:600;color:var(--text-strong)}.ws-lock{display:flex;align-items:center;gap:10px;padding:8px 20px;background:var(--warn-bg);border-bottom:1px solid var(--border-soft);color:var(--text-strong);font-size:var(--fs-base)}.ws-body{display:flex;flex:1;min-height:0}.ws-stepper{display:flex;flex:none;flex-direction:column;width:170px;padding:20px 8px;overflow-y:auto}.ws-step{position:relative;display:flex;align-items:center;gap:10px;padding:9px 10px;margin-bottom:14px;border:none;border-left:3px solid transparent;border-radius:var(--radius);background:transparent;font:inherit;font-size:var(--fs-base);font-weight:500;color:var(--text-body);text-align:left;cursor:pointer}.ws-step:not(:last-child):after{content:"";position:absolute;left:20px;top:calc(100% - 6px);width:1px;height:20px;background:var(--border)}.ws-step:hover:not([aria-disabled]){color:var(--accent)}.ws-step[data-state=current]{border-left-color:var(--accent);background:var(--surface);box-shadow:var(--shadow-sm);font-weight:600;color:var(--text-strong)}.ws-step[aria-disabled]{color:var(--neutral-400);cursor:not-allowed}.ws-step-dot{display:inline-grid;flex:none;place-items:center;width:22px;height:22px;border:1.5px solid var(--border-strong);border-radius:50%;background:var(--surface);font-size:var(--fs-xs);font-weight:600}.ws-step[data-state=current] .ws-step-dot{border-color:var(--accent);color:var(--accent)}.ws-step[data-state=done]:not([aria-disabled]) .ws-step-dot{border-color:var(--accent);background:var(--accent);color:#fff}.ws-step[aria-disabled] .ws-step-dot{border-color:var(--neutral-300)}.ws-main{display:flex;flex:1;flex-direction:column;min-width:0}.ws-content{flex:1;padding:22px 20px 28px;overflow-y:auto}.ws-footer{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;padding:12px 20px;background:var(--surface);border-top:1px solid var(--border-soft)}.ws-footer>div:last-child{display:flex;justify-content:flex-end}.ws-footer-step{font-size:var(--fs-sm);font-weight:600;letter-spacing:.6px;text-transform:uppercase;color:var(--text-muted)}.ws-summary{position:relative;flex:none;width:210px;padding:16px 14px;overflow-y:auto;background:var(--surface);border-left:1px solid var(--border-soft)}.ws-summary[data-collapsed]{width:44px;padding:16px 6px}.ws-summary-toggle{position:absolute;top:10px;right:8px}.ws-summary-body{display:flex;flex-direction:column;gap:10px}.ws-summary-title{font-size:var(--fs-xs);font-weight:700;letter-spacing:.6px;text-transform:uppercase;color:var(--text-muted)}.ws-kpis{display:flex;flex-direction:column}.ws-kpi{padding:8px 0 8px 10px;border-bottom:1px solid var(--border-soft);border-left:3px solid transparent}.ws-kpi[data-accent]{border-left-color:var(--accent)}.ws-kpi dt{font-size:var(--fs-sm);color:var(--text-muted)}.ws-kpi dd{font-size:var(--fs-md);font-weight:700;color:var(--text-strong);font-variant-numeric:tabular-nums}.ws-kpi[data-accent] dd{color:var(--accent)}.ws-fieldset{display:flex;flex-direction:column;gap:18px;min-width:0;border:none}.ws-form-foot{display:flex;align-items:center;justify-content:flex-end;gap:12px}.ws-row{display:flex;flex-wrap:wrap;align-items:flex-end;gap:12px}.ws-row>.ui-input-unit{flex:1 1 220px}.ws-textarea{width:100%;padding:9px 14px;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);font:inherit;color:var(--text-strong);resize:vertical}.ws-textarea:focus{outline:none;border-color:var(--accent);box-shadow:var(--ring)}.ws-textarea:disabled{background:var(--surface-sunken);color:var(--text-muted)}.ws-pan{display:flex;flex-direction:column;gap:10px;padding:14px;border:1px solid var(--border-soft);border-radius:var(--radius);background:var(--neutral-25)}.ws-pan-head{display:flex;align-items:center;justify-content:space-between;font-weight:600;color:var(--text-strong)}.ws-engines{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.ws-engine{display:flex;flex-direction:column;gap:6px;padding:14px;border:1px solid var(--border-soft);border-radius:var(--radius)}@media(max-width:900px){.shell-content:has(>.ws),.ws{min-height:auto}.ws-content{overflow:visible}.ws-body{flex-direction:column}.ws-stepper{flex-direction:row;width:auto;overflow-x:auto}.ws-step{margin:0 6px 0 0;white-space:nowrap}.ws-step:after{display:none}.ws-summary,.ws-summary[data-collapsed]{width:auto;border-left:none;border-top:1px solid var(--border-soft)}}.ws-timeline{display:flex;align-items:center;gap:14px;margin:0 0 0 auto;padding:0;list-style:none;font-size:var(--fs-xs);font-weight:600}.ws-timeline li{position:relative;display:flex;align-items:center;gap:4px;padding:3px 10px;border-radius:var(--radius-pill);color:var(--text-muted);background:var(--surface-sunken)}.ws-timeline li+li:before{content:"";position:absolute;top:50%;left:-14px;width:14px;height:1px;background:var(--border-strong)}.ws-timeline li[data-state=done]{color:var(--accent);background:var(--accent-bg)}.ws-timeline li[data-state=current]{color:var(--neutral-0);background:var(--accent)}.ws-timeline[data-abandoned] li[data-state=todo]{text-decoration:line-through}.ws-timeline li[data-state=abandoned]{color:var(--neutral-0);background:var(--status-abandoned)}.scn{--scn-aci: var(--ok);--scn-aci-bg: #e7f3ea;--scn-aci-bd: #9fd3ae;--scn-grid: var(--status-to-finance);--scn-grid-bg: #f1edf8;--scn-grid-bd: #cfc2e6;--scn-port: var(--warn);display:flex;flex-direction:column;gap:var(--space-5);min-width:0}.scn-form{display:flex;flex-direction:column;gap:18px;min-width:0;margin:0;padding:0;border:none}.scn-form .field select,.scn-form .field input{min-height:40px;font-size:var(--fs-md)}.scn-label{font-size:var(--fs-base);font-weight:600;color:var(--text-strong)}.scn-kind{display:flex;flex-direction:column;gap:8px}.scn-kind .ui-toggle{align-self:stretch}.scn-hint,.scn-note{margin:0;font-size:var(--fs-sm);color:var(--text-muted)}.scn-note{align-self:center}.scn-lead{margin:0;font-size:var(--fs-base);line-height:1.55;color:var(--text-body)}.scn-check{display:flex;align-items:flex-start;gap:10px;font-size:var(--fs-base);color:var(--text-strong);cursor:pointer}.scn-check input{width:16px;height:16px;margin-top:2px;accent-color:var(--accent)}.scn-check span{display:flex;flex-direction:column;gap:2px}.scn-check small{font-size:var(--fs-sm);color:var(--text-muted)}.scn-check-band{padding:12px 14px;border:1px solid var(--accent-border);border-radius:var(--radius);background:var(--accent-bg)}.scn-wiring{display:flex;flex-wrap:wrap;gap:10px 22px;padding:14px;border:1px solid var(--border-soft);border-radius:var(--radius);background:var(--surface-sunken)}.scn-wiring .scn-label{flex-basis:100%}.scn-actions{display:flex;flex-wrap:wrap;gap:10px}.scn-sub{margin:4px 0 0;font-size:var(--fs-base);font-weight:600;color:var(--text-strong)}.scn-finder,.scn-consent{display:flex;flex-direction:column;gap:14px;padding-top:16px;border-top:1px solid var(--border-soft)}.scn-meter{margin:0;font-weight:600;color:var(--text-strong)}.scn-remove{margin-right:auto;color:var(--err)}.scn-stale{display:flex;align-items:center;gap:8px;margin:0;padding:10px 14px;border-radius:var(--radius);background:var(--warn-bg);color:#8a5a00;font-size:var(--fs-sm);font-weight:600}.scn .kpis{margin-bottom:0}.scn-drop{position:relative;display:flex;align-items:center;gap:14px;padding:16px 18px;border:1.5px dashed var(--border);border-radius:var(--radius);background:var(--neutral-25);color:var(--text-muted);cursor:pointer;transition:border-color var(--dur-fast) var(--ease),background var(--dur-fast) var(--ease)}.scn-drop:hover,.scn-drop:focus-within{border-color:var(--accent);background:var(--accent-bg);color:var(--accent)}.scn-drop span{display:flex;flex-direction:column;gap:2px}.scn-drop strong{font-size:var(--fs-base);color:var(--text-strong)}.scn-drop small{font-size:var(--fs-sm)}.scn-drop input{position:absolute;top:0;right:0;bottom:0;left:0;opacity:0;cursor:pointer}.scn-drop[data-busy]{opacity:.6;pointer-events:none}.scn-schema{display:flex;flex-direction:column;gap:14px;padding:18px 16px 16px;border:1px solid var(--border-soft);border-radius:var(--radius-lg);background:var(--surface-sunken)}.scn-schema-scroll{overflow-x:auto}.scn-schema-inner{position:relative;display:grid;grid-template-columns:minmax(170px,1.15fr) minmax(150px,1fr) 130px minmax(180px,1.15fr);min-width:660px;padding:4px 0}.scn-cables{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;overflow:visible;pointer-events:none;z-index:0}.scn-cables path{fill:none;stroke-width:2;stroke-linecap:round;opacity:.75}.scn-cables path[data-tone=aci]{stroke:var(--scn-port)}.scn-cables path[data-tone=grid]{stroke:var(--scn-grid);stroke-dasharray:5 5}.scn-cables path[data-tone=acc]{stroke:var(--accent)}.scn-cables path[data-tone=ppa]{stroke:var(--scn-grid)}.scn-col,.scn-group{position:relative;z-index:1;display:flex;flex-direction:column;gap:12px;min-width:0}.scn-col{padding:0 14px}.scn-col-aci{border-left:1px solid var(--border-soft);padding-left:30px}.scn-col-head{display:flex;justify-content:space-between;align-items:baseline;gap:8px;font-size:10.5px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:var(--text-muted)}.scn-col-head[data-tone=aci]{color:var(--scn-aci)}.scn-col-head[data-tone=acc]{color:var(--accent)}.scn-col-head[data-tone=grid],.scn-col-head[data-tone=ppa]{color:var(--scn-grid)}.scn-sum{flex:none;font-weight:800;color:var(--accent);white-space:nowrap}.scn-sum[data-tone=aci]{color:var(--scn-aci)}.scn-sum[data-tone=grid]{color:var(--scn-grid)}.scn-stack{display:flex;flex-direction:column;align-items:center;gap:14px}.scn-subgroup{margin-top:6px;padding-top:10px;border-top:1px dashed var(--border)}.scn-empty{align-self:stretch;padding:14px 8px;border:1px dashed var(--border);border-radius:var(--radius-sm);font-size:var(--fs-sm);color:var(--text-muted);text-align:center}.scn-node,.scn-grid-node{display:flex;flex-direction:column;align-items:center;gap:4px;width:112px;padding:0;border:none;background:none;font-family:inherit;color:inherit;text-align:center}.scn-node{cursor:pointer}.scn-node-ic{position:relative;display:grid;place-items:center;width:64px;height:64px;margin-bottom:2px;border:1.5px solid var(--accent-border);border-radius:10px;background:var(--surface);box-shadow:var(--shadow-xs);color:var(--accent);transition:border-color var(--dur-fast) var(--ease),box-shadow var(--dur-fast) var(--ease),transform var(--dur-fast) var(--ease)}.scn-node:hover .scn-node-ic,.scn-node:focus-visible .scn-node-ic{border-color:var(--accent);box-shadow:0 3px 10px #006eb62e;transform:translateY(-2px)}.scn-node:focus-visible{outline:none}.scn-node:focus-visible .scn-node-ic{box-shadow:var(--ring)}.scn-node-name{max-width:100%;overflow-wrap:anywhere;font-size:var(--fs-sm);font-weight:700;line-height:1.2;color:var(--text-strong)}.scn-node-kpi{font-size:10px;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--text-muted)}.scn-node-warn{font-size:10px;color:#8a5a00}.scn-tag{padding:1px 7px;border:1px solid var(--accent-border);border-radius:var(--radius-pill);background:var(--accent-bg);color:var(--accent);font-size:9.5px;font-weight:700;letter-spacing:.03em}.scn-tag[data-tone=aci]{border-color:var(--scn-aci-bd);background:var(--scn-aci-bg);color:#1e7a38}.scn-tag[data-tone=grid],.scn-tag[data-tone=ppa]{border-color:var(--scn-grid-bd);background:var(--scn-grid-bg);color:var(--scn-grid)}.scn-port{position:absolute;top:50%;width:12px;height:12px;border:2.5px solid var(--scn-port);border-radius:50%;background:var(--surface);box-shadow:0 1px 3px #0000002e;transform:translateY(-50%)}.scn-port-out{right:-7px}.scn-port-in{left:-7px;border-color:var(--scn-aci)}.scn-port[data-tone=grid]{border-color:var(--scn-grid)}.scn-port-out[data-tone=grid]{background:var(--scn-grid)}.scn-col-grid-line{position:relative;z-index:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px}.scn-col-grid-line:before{content:"";position:absolute;top:0;bottom:0;left:50%;width:2px;background:repeating-linear-gradient(to bottom,var(--neutral-400) 0 6px,transparent 6px 12px);z-index:-1}.scn-grid-node .scn-node-ic{border-color:var(--scn-grid-bd);color:var(--scn-grid)}.scn-grid-label{padding:2px 4px;background:var(--surface-sunken);font-size:9.5px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--text-muted)}.scn-schema-foot,.scn-schema-foot-start,.scn-schema-foot-end{display:flex;flex-wrap:wrap;align-items:center;gap:10px}.scn-schema-foot{justify-content:space-between}.scn-btn-outline{border:1.5px solid var(--accent);background:var(--surface);color:var(--accent)}.scn-btn-outline:hover:not(:disabled),.scn-btn-outline[aria-expanded=true]{background:var(--accent-bg)}.scn-spin{width:13px;height:13px;border:2px solid rgba(255,255,255,.35);border-top-color:#fff;border-radius:50%;animation:scn-spin .7s linear infinite}@keyframes scn-spin{to{transform:rotate(360deg)}}@media(prefers-reduced-motion:reduce){.scn-spin{animation-duration:2s}}.scn-menu{position:relative}.scn-menu-pop{position:absolute;right:0;bottom:calc(100% + 6px);z-index:20;display:flex;flex-direction:column;min-width:250px;padding:6px;border:1px solid var(--border-soft);border-radius:10px;background:var(--surface);box-shadow:var(--shadow)}.scn-menu-pop button{display:flex;align-items:center;gap:10px;padding:9px 12px;border:none;border-radius:var(--radius-sm);background:none;font-family:inherit;font-size:var(--fs-base);font-weight:600;color:var(--text-strong);text-align:left;cursor:pointer}.scn-menu-pop button .icon{color:var(--accent)}.scn-menu-pop button:hover:not(:disabled),.scn-menu-pop button:focus-visible{outline:none;background:var(--accent-bg)}.scn-menu-pop button:disabled{color:var(--text-muted);cursor:not-allowed}.scn-menu-pop button:disabled .icon{color:var(--neutral-400)}.scn-menu-label{flex:1}.scn-menu-note{font-size:var(--fs-xs);font-weight:600;color:var(--text-muted)}@media(max-width:1100px){.scn-schema-inner{grid-template-columns:minmax(150px,1fr) minmax(140px,1fr) 110px minmax(160px,1fr);min-width:600px}.scn-col{padding:0 8px}.scn-col-aci{padding-left:22px}}.scn-bill{display:grid;gap:10px;padding-top:14px;border-top:1px solid var(--border-soft)}.fin-step{display:flex;flex-direction:column;gap:var(--space-5);min-width:0}.fin-scenario,.fin-select{display:flex;flex-direction:column;gap:6px;font-size:var(--fs-sm);font-weight:600;color:var(--text-strong)}.fin-scenario{max-width:420px}.fin-save{display:flex;align-items:center;justify-content:flex-end;gap:var(--space-3)}.fin-banner{display:flex;align-items:center;gap:var(--space-2);padding:10px 14px;border:1px solid var(--accent-border);border-radius:var(--radius);background:var(--accent-bg);font-size:var(--fs-sm);font-weight:600;color:var(--text-strong)}.fin-checks{display:flex;flex-wrap:wrap;gap:var(--space-2) var(--space-5)}.fin-toggle-row{display:flex;align-items:center;gap:var(--space-3);font-size:var(--fs-sm);font-weight:600;color:var(--text-strong)}.fin-views{display:grid;grid-template-columns:1fr 1fr;background:var(--surface);border:1px solid var(--border-soft);border-radius:var(--radius-lg);overflow:hidden}.fin-views button{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);padding:14px;border:none;border-bottom:3px solid transparent;background:none;font:inherit;font-weight:600;color:var(--text-muted);cursor:pointer}.fin-views button[aria-selected=true]{background:var(--accent-bg);border-bottom-color:var(--accent);color:var(--accent)}.fin-views button:focus-visible{outline:none;box-shadow:inset var(--ring)}.fin-views-count{min-width:20px;padding:1px 6px;border-radius:var(--radius-pill);background:var(--neutral-200);color:var(--text-muted);font-size:var(--fs-xs)}.fin-views button[aria-selected=true] .fin-views-count{background:var(--accent);color:var(--ss-blanc)}.fin-board{border-radius:var(--radius-lg);overflow:hidden;background:var(--surface);border:1px solid var(--border-soft);box-shadow:var(--shadow-sm)}.fin-board-head{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--space-2);padding:14px 18px;background:var(--ss-graphite);color:var(--ss-blanc)}.fin-board-head h3{font-size:var(--fs-md);font-weight:600;color:inherit}.fin-board-pill{padding:3px 12px;border-radius:var(--radius-pill);background:#ffffff24;font-size:var(--fs-xs)}.fin-kpis{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr))}.fin-kpi{--kpi-accent: var(--accent);padding:10px 12px 12px;border-left:3px solid var(--kpi-accent);border-bottom:1px solid var(--border-soft);min-width:0}.fin-kpi[data-accent=green]{--kpi-accent: var(--ok)}.fin-kpi[data-accent=red]{--kpi-accent: var(--err)}.fin-kpi[data-accent=orange]{--kpi-accent: var(--warn)}.fin-kpi-label{font-size:10px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--text-muted)}.fin-kpi-value{margin-top:4px;font-size:20px;font-weight:700;color:var(--accent);font-variant-numeric:tabular-nums}.fin-kpi-value small{margin-left:4px;font-size:var(--fs-xs);font-weight:500;color:var(--text-muted)}.fin-kpi[data-tone=bad] .fin-kpi-value{color:var(--err)}.fin-kpi[data-tone=good] .fin-kpi-value{color:var(--ok)}.fin-kpi-caption{margin-top:2px;font-size:11px;color:var(--text-muted)}.fin-block{display:flex;flex-direction:column;gap:var(--space-4);min-width:0}.fin-block-title{padding-bottom:8px;border-bottom:2px solid var(--accent-border);font-size:var(--fs-sm);font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:var(--accent)}.fin-levers{display:flex;flex-wrap:wrap;gap:var(--space-4);align-items:flex-start}.fin-lever{display:flex;flex-direction:column;gap:var(--space-2);min-width:240px;padding:12px 14px;background:var(--surface);border:1px solid var(--border-soft);border-radius:var(--radius);box-shadow:var(--shadow-sm)}.fin-solver{flex:1 1 360px}.fin-lever-head{display:flex;align-items:center;gap:4px;font-size:11px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--text-muted)}.fin-lever-value{color:var(--accent);font-size:var(--fs-md)}.fin-lever-slider{display:flex;align-items:center;gap:var(--space-2)}.fin-lever-slider input{flex:1;accent-color:var(--accent)}.fin-lever-slider button{width:24px;height:24px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);color:var(--accent);font-weight:700;cursor:pointer}.fin-lever-slider button:disabled{opacity:.5;cursor:default}.fin-solver-row{display:flex;flex-wrap:wrap;align-items:flex-end;gap:var(--space-3)}.fin-solver-row .ui-input-unit{flex:0 1 220px}.fin-bp-bar{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--space-3)}.fin-bp-wrap{overflow-x:auto;border-radius:var(--radius);border:1px solid var(--border-soft);background:var(--surface)}.fin-bp{border-collapse:separate;border-spacing:0;min-width:100%;font-size:12px;font-variant-numeric:tabular-nums}.fin-bp th,.fin-bp td{padding:6px 10px;border-bottom:1px solid var(--line-soft);white-space:nowrap}.fin-bp thead th{position:sticky;top:0;background:var(--ss-graphite);color:var(--ss-blanc);font-size:11px;font-weight:700;text-transform:uppercase}.fin-bp thead th small{display:block;font-weight:500;opacity:.75}.fin-bp th[data-capex],.fin-bp td[data-capex]{background:var(--neutral-900);color:var(--neutral-400)}.fin-bp thead th[data-capex]{color:var(--warn)}.fin-bp tbody th[scope=row],.fin-bp thead th:first-child{position:sticky;left:0;z-index:1;min-width:200px;text-align:left}.fin-bp tbody th[scope=row]{background:var(--surface);font-weight:600;color:var(--text-strong)}.fin-bp thead th:first-child{z-index:2}.fin-bp td{text-align:right;color:var(--text-body)}.fin-bp td[data-neg]{color:var(--err)}.fin-bp-section th{background:var(--ss-graphite);color:var(--ss-blanc);font-size:11px;font-weight:700;text-transform:uppercase;text-align:left;position:sticky;left:0}.fin-bp tr[data-style=total] td,.fin-bp tr[data-style=total] th{font-weight:700;color:var(--accent);background:var(--blue-50)}.fin-bp tr[data-style=total] td[data-neg]{color:var(--err)}.fin-bp tr[data-style=sub] th[scope=row]{padding-left:24px;font-weight:400;font-style:italic;color:var(--text-muted)}.fin-bp tr[data-style=sub] td{color:var(--text-muted)}.fin-dscr td{font-weight:600;color:var(--ok)}strong[data-neg]{color:var(--err)}@media(max-width:720px){.fin-bp tbody th[scope=row],.fin-bp thead th:first-child{min-width:140px}}.fin-donuts{display:grid;grid-template-columns:repeat(auto-fit,minmax(420px,1fr));gap:var(--space-4)}.chart-head{gap:var(--space-3)}.chart-titles{display:flex;flex-direction:column;gap:2px;min-width:0}.chart-subtitle{font-size:var(--fs-xs);color:var(--text-muted)}.chart-tools{display:flex;align-items:center;gap:var(--space-3);flex-wrap:wrap;justify-content:flex-end}.chart-legend--top{margin:0}.chart-legend--top li{display:inline-flex;align-items:center}.chart-legend .chart-key{box-sizing:border-box;border-radius:50%}.chart-key--dot{background:var(--key)}.chart-key--ring{border:2px solid var(--key);background:var(--surface)}.chart-plot{width:100%;min-width:0}.works .field>span,.works-fieldset .field>span{font-size:var(--fs-base)}.works-fieldset{min-width:0;margin:0;padding:0;border:0}.works-small{font-size:var(--fs-xs)}.works-caps{font-size:10.5px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--text-muted)}.works-toolbar{display:flex;align-items:flex-end;gap:12px}.works-toolbar .works-export,.works-toolbar>.works-export-main{margin-left:auto}.works-export{position:relative;display:inline-flex}.works-export-main{display:inline-flex;align-items:center;gap:6px;border:1.5px solid var(--accent);color:var(--accent);text-decoration:none}.works-export .works-export-main{border-top-right-radius:0;border-bottom-right-radius:0}.works-export-more{padding-inline:8px;border:1.5px solid var(--accent);border-left-width:0;border-top-left-radius:0;border-bottom-left-radius:0;color:var(--accent)}.works-export-menu{position:absolute;top:calc(100% + 4px);right:0;z-index:20;display:flex;flex-direction:column;min-width:180px;padding:4px;background:var(--surface);border:1px solid var(--border-soft);border-radius:var(--radius);box-shadow:var(--shadow)}.works-export-menu a{padding:8px 10px;border-radius:var(--radius-sm);color:var(--text-strong);text-decoration:none;font-size:var(--fs-base)}.works-export-menu a:hover,.works-export-menu a:focus-visible{background:var(--accent-bg)}.works-kva{display:flex;flex-wrap:wrap;align-items:flex-end;gap:12px 14px}.works-kva .ui-input-unit{width:240px}.works-pill{min-height:30px;margin-bottom:5px;padding:4px 12px;border:1px solid var(--accent-border);border-radius:var(--radius-pill);background:var(--surface);color:var(--accent);font:inherit;font-size:var(--fs-sm);font-weight:600;cursor:pointer}.works-pill:disabled{opacity:.5;cursor:default}.works-inverters{display:inline-flex;align-items:center;gap:4px;margin-bottom:10px;font-size:var(--fs-sm);color:var(--text-muted)}.works-inverters strong{color:var(--text-strong)}.works-grid-block{display:flex;flex-direction:column;gap:8px}.works-grid-block h4{font-size:var(--fs-base);font-weight:700;color:var(--text-strong)}.works-shelter{display:flex;flex-wrap:wrap;align-items:baseline;gap:6px 16px}.works-shelter .check{font-weight:600}.works-schema{margin:6px 0;padding:16px 18px 18px;border:1px solid var(--border-soft);border-radius:var(--radius-lg);background:var(--neutral-25)}.works-schema figcaption{margin-bottom:12px;font-size:10.5px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--text-muted)}.works-schema-row{display:flex;align-items:flex-start;gap:4px;overflow-x:auto}.works-node{display:flex;flex:0 0 auto;flex-direction:column;align-items:center;gap:6px;width:104px;text-align:center}.works-node-tile{display:grid;place-items:center;width:72px;height:72px;border:1.5px solid var(--blue-300);border-radius:10px;background:var(--surface);box-shadow:var(--shadow-xs);color:var(--accent)}.works-node strong{font-size:var(--fs-sm);line-height:1.2;color:var(--text-strong)}.works-node small{font-size:9px;font-weight:600;letter-spacing:.05em;text-transform:uppercase;color:var(--text-muted)}.works-link{display:flex;flex:1 1 120px;flex-direction:column;gap:4px;min-width:120px;padding-top:28px}.works-link-line{position:relative;display:flex;justify-content:flex-end;align-items:center;height:12px;color:var(--neutral-500)}.works-link-line:before{content:"";position:absolute;left:0;right:6px;top:50%;height:1.5px;background:currentColor}.works-link-inputs{display:flex;flex-direction:column;align-items:center;gap:4px}.works-cable{display:inline-flex;align-items:center;gap:6px}.works-cable span{min-width:62px;font-size:9.5px;font-weight:700;letter-spacing:.05em;text-align:right;text-transform:uppercase;color:var(--text-muted)}.works-cable input{width:64px;padding:3px 6px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);font:inherit;font-size:var(--fs-sm);text-align:right}.works-cable small{font-size:var(--fs-xs);color:var(--text-muted)}.works-roofs{width:100%;border-collapse:collapse;font-size:var(--fs-base)}.works-roofs th,.works-roofs td{padding:8px 10px;border-bottom:1px solid var(--border-soft);text-align:left;vertical-align:middle}.works-roofs thead th{font-size:10.5px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:var(--text-muted)}.works-roofs tbody th small{display:block;font-weight:400;color:var(--text-muted)}.works-roofs .num{text-align:right}.works-roofs select,.works-roofs input{min-height:32px;padding:4px 8px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);font:inherit}.works-roofs input{width:96px;text-align:right}.works-quote{display:flex;flex-direction:column;gap:22px}.works-sec-head{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:4px 16px;padding-bottom:6px;border-bottom:2px solid var(--text-strong)}.works-sec-toggle{display:inline-flex;align-items:center;gap:6px;padding:0;border:0;background:none;color:var(--text-strong);cursor:pointer}.works-sec-toggle h4{font-family:Georgia,Times New Roman,serif;font-size:var(--fs-md);font-weight:400;letter-spacing:.08em;text-transform:uppercase}.works-sec-sum{font-size:var(--fs-sm);color:var(--text-muted)}.works-sec-sum b{color:var(--accent)}.works-sec-sum strong{color:var(--text-strong)}.works-sec .table-wrap{margin-top:8px;border-radius:var(--radius-lg);background:var(--surface);box-shadow:var(--shadow-sm)}.works-table{width:100%;border-collapse:collapse;font-size:var(--fs-base)}.works-table th,.works-table td{padding:7px 10px;border-bottom:1px solid var(--border-soft);text-align:left;vertical-align:middle}.works-table thead th{font-size:10.5px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--text-muted);white-space:nowrap}.works-table .num{text-align:right;white-space:nowrap}.works-table .works-sold{color:var(--accent)}.works-table .works-lead{width:44px}.works-table .works-act{width:44px;text-align:center}.works-item-row th{font-weight:700;color:var(--text-strong)}.works-item-row th small{font-weight:400}.works-chevron{display:inline-flex;align-items:center;gap:4px;padding:2px;border:0;background:none;color:var(--text-muted);cursor:pointer}.works-bullet{width:8px;height:8px;border-radius:2px;background:var(--accent)}.works-sec[data-category=grid] .works-bullet{background:var(--neutral-600)}.works-sec[data-category=battery] .works-bullet{background:var(--ok)}.works-sec[data-category=extras] .works-bullet{background:var(--warn)}.works-line td{background:var(--neutral-25);font-size:var(--fs-sm)}.works-line td:nth-child(2){padding-left:22px}.works-line[data-off] td{color:var(--text-muted)}.works-line input[type=number],.works-label-input{min-height:28px;padding:3px 6px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);font:inherit}.works-line input[type=number]{width:96px;text-align:right}.works-label-input{width:100%}.works-line input.works-fixed{border-color:transparent;background:transparent;color:var(--text-strong);-moz-appearance:textfield}.works-line input.works-fixed::-webkit-inner-spin-button,.works-line input.works-fixed::-webkit-outer-spin-button{-webkit-appearance:none}.works-icon-btn{display:inline-grid;place-items:center;width:26px;height:26px;border:1px solid transparent;border-radius:var(--radius-sm);background:none;color:var(--text-muted);cursor:pointer}.works-icon-btn:hover{border-color:var(--border);color:var(--accent)}.works-summary{display:flex;flex-direction:column;gap:14px;padding:18px 20px;border:1px solid var(--border-soft);border-radius:var(--radius-lg);background:var(--surface);box-shadow:var(--shadow-sm)}.works-summary-controls{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));align-items:end;gap:14px}.works-strip{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));margin:0;border:1px solid var(--border-soft);border-radius:var(--radius);overflow:hidden}.works-strip>div{padding:10px 14px;border-left:1px solid var(--border-soft)}.works-strip>div:first-child{border-left:0}.works-strip>div[data-accent]{background:var(--accent-bg)}.works-strip dt{font-size:10.5px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:var(--text-muted)}.works-strip dd{margin:2px 0 0;font-size:var(--fs-lg);font-weight:700;color:var(--text-strong)}.works-strip>div[data-accent] dd{color:var(--accent)}.works-strip small{font-size:var(--fs-xs);color:var(--text-muted)}.works-actions{display:flex;flex-wrap:wrap;gap:10px}@media(max-width:720px){.works-summary-controls,.works-strip{grid-template-columns:minmax(0,1fr)}.works-strip>div{border-left:0;border-top:1px solid var(--border-soft)}.works-strip>div:first-child{border-top:0}.works-kva .ui-input-unit{width:100%}}.adm-online{padding:4px 12px;border:1px solid rgba(46,158,91,.6);border-radius:var(--radius-pill);background:#2e9e5b1a;color:#23794a;font-size:10.5px;font-weight:700;letter-spacing:.8px;text-transform:uppercase}.adm-nav{overflow-y:auto;padding:14px 12px 20px;border-right:1px solid var(--line);background:var(--card)}.adm-nav-group+.adm-nav-group{margin-top:9px;border-top:1px solid var(--line)}.adm-nav-title{padding:15px 12px 7px;font-size:9.5px;font-weight:700;letter-spacing:.9px;text-transform:uppercase;color:var(--ss-gris-u)}.adm-nav-group:first-child .adm-nav-title{padding-top:4px}.adm-tab{display:flex;align-items:center;gap:10px;width:100%;padding:8px 12px;border:none;border-radius:7px;background:transparent;color:var(--ss-gris);font:inherit;font-size:12.5px;font-weight:600;text-align:left;cursor:pointer}.adm-tab .icon{color:var(--ss-gris-u)}.adm-tab:hover{background:var(--bleu-bg);color:var(--ss-graphite)}.adm-tab[aria-current=page]{background:var(--ss-bleu);color:#fff}.adm-tab[aria-current=page] .icon{color:#fff}.adm-content{padding:28px 34px 36px}.adm-sec-head{position:relative;display:flex;align-items:flex-start;gap:16px;margin-bottom:22px;padding-bottom:16px;border-bottom:1px solid var(--line)}.adm-sec-head:after{content:"";position:absolute;left:0;bottom:-1px;width:48px;height:3px;border-radius:2px;background:var(--ss-bleu)}.adm-sec-head :is(h2,h3){font-size:var(--fs-lg);font-weight:700;color:var(--ss-graphite)}.adm-sec-head p{margin-top:5px;font-size:var(--fs-sm);line-height:1.55;color:var(--text-muted)}.adm-cards{display:flex;flex-direction:column;gap:18px}.adm-card{padding:18px 22px 20px;border:1px solid var(--line);border-radius:var(--radius-lg);background:var(--card);box-shadow:var(--shadow-sm)}.adm-card :is(h3,h4){display:flex;align-items:center;gap:8px;margin-bottom:12px;font-size:13px;font-weight:700;color:var(--ss-graphite)}.adm-card :is(h3,h4):before{content:"";flex:none;width:6px;height:6px;border-radius:50%;background:var(--ss-bleu)}.adm-card-head{display:flex;align-items:center;justify-content:space-between}.adm-hint{margin:-6px 0 14px;font-size:11.5px;line-height:1.55;color:var(--text-muted)}.adm-fields{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:10px}.adm-field{display:flex;flex-direction:column;gap:4px;padding:7px 12px;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface-sunken)}.adm-field[data-invalid=true]{border-color:var(--err);background:var(--err-bg)}.adm-field .ui-input-unit{flex-direction:row;align-items:center;gap:10px}.adm-field .ui-input-unit-head{flex:1;min-width:0}.adm-field .ui-input-unit-head label,.adm-select-field label{font-size:var(--fs-sm);font-weight:500;line-height:1.3;color:var(--text)}.adm-field .ui-input-unit-box input{width:84px;min-height:32px;padding:5px 8px;border-radius:var(--radius-sm);font-size:var(--fs-sm);text-align:right;font-variant-numeric:tabular-nums}.adm-field[data-type=text] .ui-input-unit-box input{width:220px;text-align:left}.adm-field .ui-input-unit-box[data-unit=true]{gap:8px}.adm-field .ui-input-unit-box[data-unit=true] input{padding-right:8px}.adm-field .ui-input-unit-suffix{position:static;min-width:42px;font-size:10.5px}.adm-select-field{display:flex;align-items:center;gap:10px}.adm-select-field select{min-height:32px;padding:5px 10px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);font:inherit;font-size:var(--fs-sm)}.adm-switch{display:flex;align-items:center;gap:10px;min-height:32px;font-size:var(--fs-sm);font-weight:500;color:var(--text);cursor:pointer}.adm-switch input{position:absolute;opacity:0;pointer-events:none}.adm-switch-track{position:relative;flex:none;width:34px;height:20px;border-radius:var(--radius-pill);background:var(--neutral-300);transition:background var(--dur-fast) var(--ease)}.adm-switch-track:after{content:"";position:absolute;top:2px;left:2px;width:16px;height:16px;border-radius:50%;background:#fff;box-shadow:var(--shadow-xs);transition:transform var(--dur-fast) var(--ease)}.adm-switch input:checked+.adm-switch-track{background:var(--ss-bleu)}.adm-switch input:checked+.adm-switch-track:after{transform:translate(14px)}.adm-switch input:focus-visible+.adm-switch-track{box-shadow:var(--ring)}.adm-error{font-size:var(--fs-xs);font-weight:600;color:var(--err)}.adm-table{display:flex;flex-direction:column;align-items:flex-start;gap:10px;margin-top:12px}.adm-table .table-wrap{align-self:stretch}.adm-cell{width:100px;padding:4px 8px;border:1px solid var(--border);border-radius:var(--radius-sm);font:inherit;font-size:var(--fs-sm);text-align:right}.adm-cell-text{width:100%;min-width:160px;text-align:left}.adm-cell[aria-invalid=true]{border-color:var(--err);background:var(--err-bg)}.adm-row-x{display:inline-flex;padding:5px;border:none;border-radius:var(--radius-sm);background:transparent;color:var(--neutral-500);cursor:pointer}.adm-row-x:hover{color:var(--err);background:var(--err-bg)}.adm-table-errors{padding-left:18px}.adm-facts{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:10px;margin:12px 0}.adm-facts dt{font-size:var(--fs-xs);color:var(--text-muted)}.adm-raw{max-height:360px;overflow:auto;padding:12px;border-radius:var(--radius-sm);background:var(--surface-sunken);font-size:11px}.adm-foot{display:flex;align-items:flex-end;gap:16px;padding:14px 24px;border-top:1px solid var(--line);background:var(--card)}.adm-motif{display:flex;flex:1;flex-direction:column;gap:4px}.adm-motif input{min-height:36px;padding:7px 12px;border:1px solid var(--border);border-radius:var(--radius-sm);font:inherit;font-size:var(--fs-sm)}.adm-motif input[aria-invalid=true]{border-color:var(--err)}.adm-route{display:flex;flex-direction:column;min-height:100%;padding:0;background:var(--bg)}.adm-layout{display:grid;flex:1;grid-template-columns:240px minmax(0,1fr)}.adm-layout .adm-nav{position:sticky;top:56px;align-self:start;height:calc(100vh - 56px)}.shell[data-layout=topbar] .adm-layout .adm-nav{height:calc(100vh - 56px - var(--shell-top))}a.adm-tab{text-decoration:none}.adm-body{display:flex;flex-direction:column;min-width:0;min-height:calc(100vh - 56px)}.adm-body .adm-content{flex:1;overflow:visible;padding:22px 28px 28px}.adm-body .adm-sec-head{display:block;margin-bottom:18px;padding-bottom:12px}.adm-body .adm-sec-head h2{font-size:var(--fs-md)}.adm-body .adm-foot{position:sticky;bottom:0;z-index:5;align-items:center}.adm-body .adm-foot>label{font-size:var(--fs-sm);font-weight:700;color:var(--text-strong)}.adm-team-help{display:flex;align-items:center;gap:6px;margin:0}.adm-card-head+.table-wrap,.adm-card-head+.alert{margin-top:14px}.adm-code{font-weight:700;letter-spacing:.04em;color:var(--ss-graphite)}.adm-inline{display:flex;flex-direction:column;gap:3px}.adm-inline input{width:100%;min-width:160px;min-height:30px;padding:4px 8px;border:1px solid transparent;border-radius:var(--radius-sm);background:transparent;font:inherit;font-size:var(--fs-sm)}.adm-inline input:hover{border-color:var(--line)}.adm-inline input:focus{border-color:var(--border);background:var(--surface);outline:none;box-shadow:var(--ring)}.adm-inline input[aria-invalid=true]{border-color:var(--err);background:var(--err-bg)}.adm-active{display:inline-flex;align-items:center;gap:8px}.adm-state{padding:2px 9px;border-radius:var(--radius-pill);background:var(--surface-sunken);color:var(--text-muted);font-size:var(--fs-xs);font-weight:700}.adm-state[data-active=true]{background:#2e9e5b1f;color:#23794a}.adm-team-add-row{display:flex;flex-wrap:wrap;align-items:flex-start;gap:12px}.adm-team-add-row>.btn{margin-top:21px}.adm-team-add-field{display:flex;flex-direction:column;gap:4px;width:170px}.adm-team-add-wide{flex:1;min-width:220px}.adm-team-add-field label{font-size:var(--fs-sm);font-weight:600;color:var(--text-strong)}.adm-team-add-field :is(input,select){min-height:36px;padding:7px 12px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);font:inherit;font-size:var(--fs-sm)}.adm-team-add-field input[aria-invalid=true]{border-color:var(--err)}@media(max-width:760px){.adm-layout{grid-template-columns:1fr}.adm-layout .adm-nav{position:static;max-height:30vh;border-right:none;border-bottom:1px solid var(--line)}.adm-body{min-height:0}.adm-body .adm-content{padding:18px 16px}.adm-body .adm-foot{flex-wrap:wrap;padding:12px 16px}}.adm-team-tools{display:flex;align-items:center;gap:16px}.adm-dir-search{margin-bottom:12px}.adm-dir-roles{display:inline-flex;flex-wrap:wrap;gap:4px}.adm-dir-linked{display:inline-flex;align-items:center;gap:4px;font-weight:600;color:var(--ok)}.adm-dir-assoc{display:inline-flex;align-items:center;gap:6px}.adm-users-bar{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-3) var(--space-5);margin-bottom:var(--space-3)}.adm-users-bar input[type=search]{flex:1 1 260px}:root{--spv-purple: #6e4fb0}.spv-page{padding:var(--space-5) var(--space-6)}.spv-name{color:var(--spv-purple);font-weight:500}.spv-amount{font-weight:600;color:var(--text-strong);font-variant-numeric:tabular-nums;white-space:nowrap}.spv-project-name{color:var(--text-strong);font-weight:500;text-decoration:none}.spv-project-name:hover{color:var(--accent);text-decoration:underline}.spv-check{width:16px;height:16px;accent-color:var(--spv-purple)}.spv-kpis{margin-bottom:0}.spv-kpis .k-value{font-variant-numeric:tabular-nums}.spv-new-name{max-width:420px}.spv-total{margin:var(--space-3) 0 0;text-align:right;font-variant-numeric:tabular-nums}.spv-form-actions{display:flex;justify-content:flex-end;gap:var(--space-2)}.spv-menu-button{font-size:18px;line-height:1}.spv-menu{position:fixed;z-index:50;min-width:160px;padding:4px;display:flex;flex-direction:column;background:var(--surface);border:1px solid var(--border-soft);border-radius:var(--radius);box-shadow:var(--shadow)}.spv-menu button{padding:8px 10px;border:none;border-radius:var(--radius-sm);background:none;color:var(--text);font:inherit;font-size:var(--fs-sm);text-align:left;cursor:pointer}.spv-menu button:hover,.spv-menu button:focus-visible{background:var(--accent-bg);color:var(--accent);outline:none}.spv-menu button[data-tone=danger]{color:var(--err)}.spv-menu button[data-tone=danger]:hover,.spv-menu button[data-tone=danger]:focus-visible{background:var(--err-bg)}@media(max-width:640px){.spv-page{padding:var(--space-4)}}:root{--ss-gris: #63666a;--ss-bleu: #006eb6;--ss-graphite: #27252d;--ss-blanc: #ffffff;--ss-bleu-h: #004aad;--ss-gris-u: #8c8d92;--line: #e6e8ec;--line-soft: #eef0f3;--bg: #f5f6f8;--card: #ffffff;--ok: #2e9e5b;--err: #c0392b;--warn: #d98a00;--bleu-bg: #eaf3fb;--bleu-bd: #b3d6ef;--ok-bg: #edf7f0;--err-bg: #fef0ee;--warn-bg: #fff6ec;--radius-sm: 6px;--radius: 9px;--radius-lg: 14px;--radius-pill: 999px;--shadow-sm: 0 1px 2px rgba(39, 37, 45, .05), 0 1px 3px rgba(39, 37, 45, .06);--shadow: 0 6px 24px rgba(39, 37, 45, .1);--shadow-hover: 0 10px 30px rgba(39, 37, 45, .13);--ring: 0 0 0 3px rgba(0, 110, 182, .16);--ease: cubic-bezier(.22, .61, .36, 1);--blue-50: #f2f8fc;--blue-100: #eaf3fb;--blue-200: #cfe4f4;--blue-300: #b3d6ef;--blue-500: #006eb6;--blue-600: #005c99;--blue-700: #004aad;--blue-900: #0b2e4e;--neutral-0: #ffffff;--neutral-25: #fafbfc;--neutral-50: #f5f6f8;--neutral-100: #eef0f3;--neutral-200: #e6e8ec;--neutral-300: #d3d5da;--neutral-400: #a9abb1;--neutral-500: #8c8d92;--neutral-600: #63666a;--neutral-700: #4a4c51;--neutral-900: #27252d;--surface: #ffffff;--surface-sunken: var(--neutral-50);--surface-page: var(--neutral-100);--text-strong: var(--neutral-900);--text: var(--neutral-700);--text-body: var(--neutral-700);--text-muted: #6e7076;--border: var(--neutral-300);--border-soft: var(--neutral-200);--border-strong: #b4b7bd;--accent: var(--blue-500);--accent-hover: var(--blue-600);--accent-press: var(--blue-700);--accent-bg: var(--blue-100);--accent-border: var(--blue-300);--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 20px;--space-6: 24px;--space-8: 32px;--space-10: 40px;--fs-xs: 11px;--fs-sm: 12px;--fs-base: 13.5px;--fs-md: 15px;--fs-lg: 18px;--fs-xl: 22px;--fs-2xl: 28px;--dur-fast: .14s;--dur: .2s;--shadow-xs: 0 1px 3px rgba(39, 37, 45, .09);--status-in-progress: #006eb6;--status-signed: #2e9e5b;--status-to-finance: #6b4fa3;--status-abandoned: #8c8d92}*{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth}body{font-family:Montserrat,sans-serif;font-size:14px;background:var(--surface-page);color:var(--text-body);-webkit-font-smoothing:antialiased}h1,h2,h3{font-weight:600;color:var(--text-strong)}h1{font-size:var(--fs-xl)}h2{font-size:var(--fs-lg)}a{color:var(--accent)}:focus-visible{outline:none;box-shadow:var(--ring)}.num{font-variant-numeric:tabular-nums;text-align:right}.muted{color:var(--text-muted)}input[type=number]{-webkit-appearance:textfield;-moz-appearance:textfield;appearance:textfield}input[type=number]::-webkit-outer-spin-button,input[type=number]::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}@media(prefers-reduced-motion:reduce){*{transition-duration:.01ms!important;animation:none!important}}.page{max-width:1180px;margin:0 auto;padding:var(--space-6) var(--space-8)}.page-head{display:flex;align-items:center;justify-content:space-between;gap:var(--space-4);margin-bottom:var(--space-5)}.card{background:var(--surface);border:1px solid var(--border-soft);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);padding:var(--space-6)}.btn{display:inline-flex;align-items:center;gap:8px;min-height:36px;padding:9px 20px;border:none;border-radius:var(--radius);font-family:inherit;font-size:14px;font-weight:600;cursor:pointer;text-decoration:none;transition:background var(--dur-fast) var(--ease),border-color var(--dur-fast) var(--ease),color var(--dur-fast) var(--ease)}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background:var(--accent);color:#fff;box-shadow:var(--shadow-xs)}.btn-primary:hover:not(:disabled){background:var(--accent-hover);box-shadow:var(--shadow-sm)}.btn-primary:active{background:var(--accent-press)}.btn-ghost{background:transparent;color:var(--text-body);border:1.5px solid var(--border-strong)}.btn-ghost:hover:not(:disabled){border-color:var(--accent);color:var(--accent);background:var(--accent-bg)}.btn-danger{background:var(--err);color:#fff}.btn-sm{min-height:30px;padding:5px 12px;font-size:var(--fs-sm)}.field{display:flex;flex-direction:column;gap:6px}.field>span{font-size:var(--fs-sm);font-weight:600;color:var(--text-strong)}.field input,.field select,.field textarea{min-height:36px;padding:8px 12px;border:1.5px solid var(--border);border-radius:var(--radius);background:var(--surface);font-family:inherit;font-size:var(--fs-base);color:var(--text-strong);transition:border-color var(--dur-fast) var(--ease)}.field input:focus,.field select:focus,.field textarea:focus{outline:none;border-color:var(--accent);box-shadow:var(--ring)}.field[data-invalid=true] input,.field[data-invalid=true] select{border-color:var(--err)}.field .hint{font-size:var(--fs-xs);color:var(--text-muted)}.field .error{font-size:var(--fs-xs);color:var(--err)}.tabs{display:flex;gap:6px;border-bottom:1px solid var(--border-soft);margin-bottom:var(--space-4)}.tab{padding:10px 16px;border:none;border-bottom:2px solid transparent;background:transparent;font-family:inherit;font-size:var(--fs-base);font-weight:600;color:var(--text-muted);cursor:pointer}.tab:hover:not([aria-selected=true]){color:var(--text-body);background:var(--neutral-100)}.tab[aria-selected=true]{color:var(--accent);border-bottom-color:var(--accent)}.tab .count{margin-left:6px;font-size:var(--fs-xs);color:var(--text-muted)}.table-wrap{overflow-x:auto;background:var(--surface);border:1px solid var(--border-soft);border-radius:var(--radius-lg)}.table{width:100%;border-collapse:collapse;font-size:var(--fs-base)}.table th{padding:10px 14px;text-align:left;font-size:var(--fs-xs);font-weight:700;text-transform:uppercase;letter-spacing:.4px;color:var(--text-muted);background:var(--neutral-25);border-bottom:1px solid var(--border-soft)}.table td{padding:12px 14px;border-bottom:1px solid var(--line-soft);color:var(--text-body)}.table tbody tr:last-child td{border-bottom:none}.table tbody tr:hover td{background:var(--blue-50)}.table .empty{padding:var(--space-8);text-align:center;color:var(--text-muted)}.status{display:inline-flex;align-items:center;gap:6px;padding:3px 10px 3px 8px;border-radius:var(--radius-pill);background:color-mix(in srgb,var(--dot, var(--neutral-500)) 11%,var(--surface));color:color-mix(in srgb,var(--dot, var(--neutral-500)) 70%,var(--text-strong));font-size:var(--fs-sm);font-weight:600;line-height:1.4;white-space:nowrap}.status:before{content:"";flex:none;width:7px;height:7px;border-radius:50%;background:var(--dot)}.status[data-status=in_progress]{--dot: var(--status-in-progress)}.status[data-status=signed]{--dot: var(--status-signed)}.status[data-status=to_finance]{--dot: var(--status-to-finance)}.status[data-status=abandoned]{--dot: var(--status-abandoned)}.pill{display:inline-block;font-size:9px;font-weight:700;text-transform:uppercase;letter-spacing:.4px;color:var(--accent);background:var(--accent-bg);border-radius:var(--radius-pill);padding:2px 7px}.centered{min-height:100vh;display:grid;place-items:center;padding:var(--space-6)}.centered .card{max-width:440px;text-align:center;display:flex;flex-direction:column;gap:var(--space-4);align-items:center}.alert{padding:var(--space-3) var(--space-4);border-radius:var(--radius);font-size:var(--fs-sm);background:var(--err-bg);color:var(--err)}.gallery section{margin-bottom:var(--space-8)}.gallery .row{display:flex;flex-wrap:wrap;gap:var(--space-3);align-items:flex-end;margin-top:var(--space-3)}.actions,.inline-form{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-2)}.actions{justify-content:flex-end}.inline-form{align-items:flex-end}.facts{display:flex;flex-wrap:wrap;gap:var(--space-6);margin:var(--space-3) 0 0}.facts dt{font-size:var(--fs-xs);color:var(--text-muted)}.facts dd{margin:2px 0 0;font-weight:600;color:var(--text-strong)}.stack{display:flex;flex-direction:column;gap:var(--space-4)}.check{display:flex;align-items:center;gap:var(--space-2);font-size:var(--fs-sm);font-weight:600}.kpis{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:var(--space-3);margin-bottom:var(--space-5)}.kpi{background:var(--surface);border:1px solid var(--border-soft);border-radius:var(--radius-lg);padding:var(--space-4)}.k-label{font-size:var(--fs-xs);font-weight:600;color:var(--text-muted)}.k-value{margin-top:4px;font-size:22px;font-weight:600;color:var(--text-strong)}.kpi[data-tone=bad] .k-value{color:var(--err)}.kpi[data-tone=good] .k-value{color:var(--ok)}.k-sub{margin-top:4px;font-size:var(--fs-xs);color:var(--text-muted)}.bars,.spv-list{list-style:none;margin:var(--space-3) 0 0;padding:0;display:flex;flex-direction:column;gap:var(--space-2)}.bars li{display:grid;grid-template-columns:120px 1fr 32px;align-items:center;gap:var(--space-2);font-size:var(--fs-sm)}.bar-track{height:8px;background:var(--neutral-100);border-radius:var(--radius-pill);overflow:hidden}.bar-fill{display:block;height:100%;background:var(--accent)}.bar-value{text-align:right;font-weight:600}.spv-list li{display:flex;justify-content:space-between;gap:var(--space-3);font-size:var(--fs-sm)}.bars-wide li{grid-template-columns:48px 1fr 150px}.check{display:inline-flex;align-items:center;gap:var(--space-2);font-size:var(--fs-sm)}.chart{margin:0}.chart svg{display:block;width:100%;height:auto}.chart-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--space-2)}.chart-legend{display:flex;flex-wrap:wrap;gap:var(--space-3);list-style:none;margin:var(--space-2) 0 0;padding:0;font-size:var(--fs-xs);color:var(--text-muted)}.chart-legend span{display:inline-block;width:10px;height:10px;margin-right:6px;border-radius:2px}.works-item summary{display:flex;justify-content:space-between;gap:var(--space-3);cursor:pointer}.works-item .table input[type=number]{width:96px;text-align:right}.site-map{height:420px;border-radius:var(--radius);border:1px solid var(--border-soft)}.site-pin{cursor:move}.site-pin path{fill:var(--accent);stroke:#fff;stroke-width:2.5;filter:drop-shadow(0 2px 3px rgb(0 0 0 / 50%))}.site-pin circle{fill:#fff}.arrow-base,.arrow-head{border-radius:50%;border:3px solid #006eb6;box-shadow:0 1px 3px #00000073;cursor:move}.arrow-base{background:#fff}.arrow-head{background:#006eb6}fieldset.inline-form{border:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:var(--space-4);align-items:start}.person-badge{display:inline-flex;align-items:center;justify-content:center;min-width:30px;height:26px;padding:0 6px;border-radius:var(--radius-pill);font-size:11px;font-weight:700;letter-spacing:.4px;color:var(--accent);background:var(--accent-bg);border:1px solid var(--accent-border)}.person-badge[data-role=project_manager]{color:var(--status-signed);background:var(--surface);border-color:currentColor}.person-badge-empty{color:var(--text-muted)}.event-list{margin:0;padding:0;list-style:none}.event-list li{display:grid;grid-template-columns:130px 1fr auto;gap:12px;align-items:baseline;padding:8px 0;border-bottom:1px solid var(--border-soft);font-size:var(--fs-sm)}.event-list li:last-child{border-bottom:0}.event-list time{color:var(--text-muted);font-variant-numeric:tabular-nums}.event-what{color:var(--text-strong)}.event-project{margin-right:8px;font-weight:700}.event-who{color:var(--text-muted);white-space:nowrap}@media(max-width:640px){.event-list li{grid-template-columns:1fr;gap:2px}}.adm-history-search{width:min(100%,320px);margin-bottom:12px;padding:7px 12px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);font:inherit;font-size:var(--fs-sm);color:var(--text-strong)}.adm-head-actions{display:inline-flex;gap:8px}.rates-pin{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);flex-wrap:wrap;padding:var(--space-3) var(--space-4);border:1px solid var(--accent-border);border-radius:var(--radius);background:var(--accent-bg);font-size:var(--fs-sm)}.icon{flex:none;vertical-align:middle}.ui-chip,.ui-square{display:inline-flex;flex:none;align-items:center;justify-content:center;color:var(--accent);background:var(--accent-bg)}.ui-chip{width:40px;height:40px;border:1px solid var(--accent-border);border-radius:10px}.ui-square{width:28px;height:28px;border-radius:8px}.ui-modal{margin:auto;padding:0;border:none;background:transparent;max-width:calc(100vw - 32px);max-height:calc(100vh - 40px);overflow:visible}.ui-modal[data-size=sm]{width:440px}.ui-modal[data-size=md]{width:600px}.ui-modal[data-size=lg]{width:880px}.ui-modal[data-size=full]{width:min(1240px,96vw)}.ui-modal::backdrop{background:#14121a8c}.ui-modal[open] .ui-modal-card{animation:ui-rise var(--dur) var(--ease)}.ui-modal-card{display:flex;flex-direction:column;max-height:calc(100vh - 40px);background:var(--surface);border-radius:var(--radius-lg);box-shadow:0 20px 60px #0000004d}.ui-modal[data-size=full] .ui-modal-card{height:92vh}.ui-modal-head{display:flex;align-items:center;gap:var(--space-3);padding:20px 24px;border-bottom:1px solid var(--border-soft)}.ui-modal-head h2{flex:1;font-size:var(--fs-lg);font-weight:700}.ui-modal-x{display:inline-flex;padding:6px;border:none;border-radius:var(--radius-sm);background:transparent;color:var(--neutral-500);cursor:pointer}.ui-modal-x:hover{color:var(--err);background:var(--err-bg)}.ui-modal-body{flex:1;padding:22px 24px;overflow-y:auto;color:var(--text-body);line-height:1.55}.ui-modal-foot{display:flex;justify-content:flex-end;gap:10px;padding:14px 24px;border-top:1px solid var(--border-soft)}.ui-confirm-message{font-size:var(--fs-base)}@keyframes ui-rise{0%{opacity:0;transform:translateY(8px)}}.ui-toasts{position:fixed;z-index:9500;display:flex;flex-direction:column;align-items:center;gap:8px;transform:translate(-50%);pointer-events:none;margin:0;padding:0;border:0;background:transparent;overflow:visible;inset:auto auto 22px 50%}.ui-toast{display:flex;align-items:center;gap:9px;max-width:min(560px,calc(100vw - 32px));padding:10px 10px 10px 18px;border-radius:var(--radius-pill);background:var(--ss-graphite);color:#fff;font-size:var(--fs-base);font-weight:500;box-shadow:var(--shadow);pointer-events:auto;animation:ui-rise .3s var(--ease)}.ui-toast-icon{color:#7ed3a0}.ui-toast[data-tone=info] .ui-toast-icon{color:var(--blue-300)}.ui-toast[data-tone=error]{background:#5c1d17}.ui-toast[data-tone=error] .ui-toast-icon{color:#ffb4a8}.ui-toast-x{display:inline-flex;padding:4px;border:none;border-radius:50%;background:transparent;color:#fff9;cursor:pointer}.ui-toast-x:hover{color:#fff;background:#ffffff1f}.ui-input-unit{display:flex;flex-direction:column;gap:6px;min-width:0}.ui-input-unit-head{display:flex;align-items:center;gap:8px}.ui-input-unit-head label{font-size:var(--fs-base);font-weight:600;color:var(--text-strong)}.ui-auto{padding:2px 7px;border-radius:var(--radius-pill);background:var(--accent-bg);color:var(--accent);font-size:9.5px;font-weight:700;letter-spacing:.4px}.ui-input-unit-box{position:relative;display:flex;align-items:center}.ui-input-unit-box input,.ui-input-unit-box select{width:100%;min-height:40px;padding:9px 14px;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);font-family:inherit;font-size:var(--fs-md);color:var(--text-strong);transition:border-color var(--dur-fast) var(--ease)}.ui-input-unit-box[data-unit=true] input{padding-right:72px}.ui-input-unit-box input:focus,.ui-input-unit-box select:focus{outline:none;border-color:var(--accent);box-shadow:var(--ring)}.ui-input-unit-box input[readonly]{background:var(--blue-50);border-color:var(--blue-200);color:var(--text)}.ui-input-unit-box input:disabled,.ui-input-unit-box select:disabled{background:var(--surface-sunken);color:var(--text-muted)}.ui-input-unit-suffix{position:absolute;right:14px;color:var(--text-muted);font-size:var(--fs-sm);font-weight:500;white-space:nowrap;pointer-events:none}.ui-input-unit-hint{font-size:var(--fs-xs);color:var(--text-muted)}.ui-grid{display:grid;gap:18px 16px;grid-template-columns:repeat(var(--cols, 2),minmax(0,1fr))}.ui-grid[data-cols="1"]{--cols: 1}.ui-grid[data-cols="3"]{--cols: 3}.ui-grid[data-cols="4"]{--cols: 4}@media(max-width:720px){.ui-grid{--cols: 1 !important}}.ui-section{display:flex;flex-direction:column;gap:16px;padding:20px 22px 22px;background:var(--surface);border:1px solid var(--border-soft);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm)}.ui-section-head{display:flex;align-items:center;gap:10px}.ui-section-head h3{flex:1;font-size:var(--fs-md);font-weight:600}.ui-section-actions{display:flex;gap:8px}.ui-step-title{display:flex;align-items:center;gap:14px;margin-bottom:18px}.ui-step-chip{position:relative;width:40px;height:40px;border:none}.ui-step-chip:after{content:"";position:absolute;left:0;bottom:-10px;width:40px;height:3px;border-radius:2px;background:var(--accent)}.ui-step-title h2{font-size:var(--fs-xl);font-weight:600}.ui-step-actions{display:flex;gap:8px;margin-left:auto}.ui-toggle{display:inline-flex;gap:2px;padding:3px;background:var(--surface-sunken);border:1px solid var(--border-soft);border-radius:var(--radius-pill)}.ui-toggle button{display:inline-flex;align-items:center;gap:6px;padding:6px 14px;border:none;border-radius:var(--radius-pill);background:transparent;color:var(--text-body);font-family:inherit;font-size:12.5px;font-weight:600;cursor:pointer;transition:background var(--dur-fast) var(--ease),color var(--dur-fast) var(--ease)}.ui-toggle button:hover:not(:disabled,[aria-checked=true]){color:var(--text-strong)}.ui-toggle button[aria-checked=true]{background:var(--surface);color:var(--accent);box-shadow:var(--shadow-xs)}.ui-toggle button:disabled{opacity:.45;cursor:not-allowed}.ui-pills{display:flex;flex-wrap:wrap;align-items:center;gap:6px}.ui-pills-label{margin-right:4px;font-size:10.5px;font-weight:700;letter-spacing:.6px;text-transform:uppercase;color:var(--text-muted)}.ui-pill{display:inline-flex;align-items:center;gap:6px;padding:5px 12px;border:1px solid var(--border);border-radius:var(--radius-pill);background:var(--surface);color:var(--text-body);font-family:inherit;font-size:var(--fs-sm);font-weight:600;cursor:pointer;transition:background var(--dur-fast) var(--ease),border-color var(--dur-fast) var(--ease)}.ui-pill:hover{border-color:var(--accent-border);color:var(--accent)}.ui-pill[aria-pressed=true]{background:var(--accent);border-color:var(--accent);color:#fff}.ui-pill-count{font-size:var(--fs-xs);opacity:.75}.ui-type{display:inline-flex;align-items:center;gap:5px;padding:3px 9px;border:1px solid var(--accent-border);border-radius:var(--radius-sm);background:var(--blue-50);color:var(--blue-700);font-size:var(--fs-sm);font-weight:600;white-space:nowrap}.ui-infotip{position:relative;display:inline-flex}.ui-infotip-btn{display:inline-flex;padding:2px;border:none;border-radius:50%;background:transparent;color:var(--accent);cursor:help}.ui-infotip-pop{position:absolute;top:calc(100% + 8px);left:50%;z-index:50;display:flex;flex-direction:column;gap:4px;width:max-content;max-width:300px;padding:10px 12px;border-radius:var(--radius);background:var(--ss-graphite);color:#fff;font-size:var(--fs-sm);font-weight:400;line-height:1.5;box-shadow:var(--shadow);transform:translate(-50%)}.ui-infotip-pop[hidden]{display:none}.ui-empty{display:flex;flex-direction:column;align-items:center;gap:8px;padding:40px 24px;text-align:center}.ui-empty-icon{width:56px;height:56px;margin-bottom:6px;border-radius:14px}.ui-empty h3{font-size:var(--fs-md)}.ui-empty p{max-width:420px;color:var(--text-muted);font-size:var(--fs-base);line-height:1.55}.ui-empty-action{margin-top:10px}.ui-summary{width:100%;border-collapse:collapse;font-size:var(--fs-base)}.ui-summary caption{padding-bottom:8px;text-align:left;font-size:10.5px;font-weight:700;letter-spacing:.6px;text-transform:uppercase;color:var(--text-muted)}.ui-summary th,.ui-summary td{padding:9px 12px;border-bottom:1px solid var(--border-soft)}.ui-summary th{text-align:left;font-weight:500;color:var(--text-body)}.ui-summary th small{display:block;font-size:var(--fs-xs);color:var(--text-muted)}.ui-summary td{font-weight:600;color:var(--text-strong)}.ui-summary tfoot th,.ui-summary tfoot td{border-bottom:none;background:var(--accent-bg);color:var(--accent);font-weight:700}.ui-summary tfoot th{border-radius:var(--radius-sm) 0 0 var(--radius-sm)}.ui-summary tfoot td{border-radius:0 var(--radius-sm) var(--radius-sm) 0}.ui-logo{display:block;width:auto}
