:root{color-scheme:light;--font-sans: "Source Sans 3 Variable", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", Arial, sans-serif;--font-mono: ui-monospace, "Cascadia Mono", Consolas, Menlo, monospace;--fs-3xs: 10px;--fs-2xs: 11px;--fs-xs: 12px;--fs-sm: 13px;--fs-md: 14px;--fs-lg: 16px;--fs-xl: 19px;--fs-2xl: 23px;--fs-3xl: 28px;--lh-tight: 1.25;--lh-body: 1.55;--lh-ui: 1.4;--r-sm: 6px;--r-md: 10px;--r-lg: 16px;--r-pill: 999px;--focus-w: 2px;--focus-gap: 2px;--focus-reach: calc(var(--focus-w) + var(--focus-gap));--shadow-rgb: 44 36 28;--elev-1: 0 1px 2px rgb(var(--shadow-rgb) / .06), 0 1px 3px rgb(var(--shadow-rgb) / .05);--elev-2: 0 1px 2px rgb(var(--shadow-rgb) / .06), 0 4px 12px rgb(var(--shadow-rgb) / .09);--elev-3: 0 2px 4px rgb(var(--shadow-rgb) / .06), 0 12px 28px rgb(var(--shadow-rgb) / .13);--elev-4: 0 4px 8px rgb(var(--shadow-rgb) / .08), 0 24px 56px rgb(var(--shadow-rgb) / .2);--bg: #faf8f5;--surface: #f1ede7;--hover: #ebe5dc;--border: #d5cdc0;--text: #2a2622;--text-muted: #635a50;--muted: #635a50;--on-accent: #ffffff;--border-control: #8f8172;--hairline: color-mix(in srgb, var(--border) 55%, transparent);--btn: #fffdf9;--btn-h: color-mix(in srgb, var(--text) 6%, var(--btn));--btn-edge: inset 0 1px 0 rgb(255 255 255 / .6), 0 1px 0 rgb(var(--shadow-rgb) / .16), 0 1px 3px rgb(var(--shadow-rgb) / .1);--btn-press: inset 0 1px 3px rgb(var(--shadow-rgb) / .22);--accent-ink: #2b6340;--accent-ink-h: #215033;--accent-lit: #7cc496;--accent-lit-h: #96d3ac;--accent: var(--accent-ink);--accent-h: var(--accent-ink-h);--tint-base: var(--bg);--accent-tint: color-mix(in srgb, var(--accent) 18%, var(--tint-base));--accent-rule: color-mix(in srgb, var(--accent) 45%, var(--tint-base));--danger: #a32c22;--danger-bg: #fbe6e2;--warn: #764a0c;--warn-bg: #f8eeda;--info: #1f5f96;--info-bg: #e2eefa;--success: #2b6340;--success-bg: #e2f0e6;--ro-track: color-mix(in srgb, var(--text) 7%, var(--surface));--ro-work: color-mix(in srgb, var(--text) 17%, var(--surface));--ro-target: color-mix(in srgb, var(--text) 34%, var(--surface));--ro-fill: color-mix(in srgb, var(--text) 52%, var(--surface));--series-1: #2a78d6;--series-2: #eb6834;--series-3: #1baf7a;--series-4: #eda100;--series-5: #e87ba4;--series-6: #008300;--series-7: #6250d6;--series-8: #e34948;--hdr-h: 52px;--sidebar-w: 240px;--safe-t: env(safe-area-inset-top, 0px);--safe-r: env(safe-area-inset-right, 0px);--safe-b: env(safe-area-inset-bottom, 0px);--safe-l: env(safe-area-inset-left, 0px);--density-scale: 1;--motion: .15s;--motion-in: .18s;--ease: cubic-bezier(.2, 0, 0, 1);--help-r: 20px;--help-clear: 0px;--help-clear-b: 0px}:root[data-density=compact]{--density-scale: .58}:root[data-theme=light]{color-scheme:light}:root[data-theme=dim]{color-scheme:light;--bg: #ddd6c9;--surface: #e8e2d7;--border: #b3a894;--text: #24211d;--text-muted: #4e4740;--muted: #4e4740;--hover: #d1c9b9;--border-control: #7d7263;--tint-base: #f4efe6;--btn: #f7f3ec;--danger: #9c2a20;--danger-bg: #f0dcd6;--warn: #6f460b;--warn-bg: #eee0c6;--info: #1c5789;--info-bg: #dbe6f2;--success: #275b3b;--success-bg: #dcebe0}:root[data-theme=dark]{color-scheme:dark;--bg: #1b1917;--surface: #24211e;--border: #423c37;--text: #ece7e0;--text-muted: #a79e94;--muted: #a79e94;--hover: #2f2b27;--border-control: #746a61;--on-accent: #1b1917;--accent: var(--accent-lit);--accent-h: var(--accent-lit-h);--danger: #f0857a;--danger-bg: #3a201c;--warn: #e0b45f;--warn-bg: #382b16;--info: #7fb8e6;--info-bg: #1c2b3a;--success: #7cc496;--success-bg: #1c2f22;--series-1: #3987e5;--series-2: #d95926;--series-3: #199e70;--series-4: #c98500;--series-5: #d55181;--series-6: #008300;--series-7: #9085e9;--series-8: #e66767;--shadow-rgb: 0 0 0;--elev-1: 0 1px 2px rgb(0 0 0 / .3), 0 1px 3px rgb(0 0 0 / .2);--elev-2: 0 1px 2px rgb(0 0 0 / .3), 0 4px 12px rgb(0 0 0 / .34);--elev-3: 0 2px 4px rgb(0 0 0 / .3), 0 12px 28px rgb(0 0 0 / .42);--elev-4: 0 4px 8px rgb(0 0 0 / .34), 0 24px 56px rgb(0 0 0 / .55);--hairline: color-mix(in srgb, var(--border) 80%, transparent);--btn: #36322d;--btn-edge: inset 0 1px 0 rgb(255 255 255 / .07), 0 1px 0 rgb(0 0 0 / .55), 0 1px 3px rgb(0 0 0 / .35);--btn-press: inset 0 1px 3px rgb(0 0 0 / .55)}:root[data-accent=blue]{--accent-ink: #1f5f96;--accent-ink-h: #184a76;--accent-lit: #7fb8e6;--accent-lit-h: #9bcaf0}:root[data-accent=purple]{--accent-ink: #6a4a9c;--accent-ink-h: #543a7d;--accent-lit: #b79ae4;--accent-lit-h: #c9b0ee}:root[data-accent=amber]{--accent-ink: #7a4e0d;--accent-ink-h: #613d09;--accent-lit: #e0b45f;--accent-lit-h: #ecc87e}:root[data-accent=rose]{--accent-ink: #98304f;--accent-ink-h: #7d243f;--accent-lit: #ef9bb8;--accent-lit-h: #f6b5ca}:root[data-accent=teal]{--accent-ink: #10615d;--accent-ink-h: #0c4b48;--accent-lit: #63c6bd;--accent-lit-h: #82d6ce}:root[data-magnify=large]{zoom:1.15}:root[data-magnify=larger]{zoom:1.3}:root[data-magnify=large] .app{height:calc(100vh / 1.15);height:calc(100svh / 1.15)}:root[data-magnify=larger] .app{height:calc(100vh / 1.3);height:calc(100svh / 1.3)}:root[data-contrast=high]{--bg: #ffffff;--surface: #ffffff;--border: #201d1a;--text: #000000;--text-muted: #201d1a;--muted: #201d1a;--hover: #ebe5dc;--tint-base: var(--bg)}:root[data-contrast=high][data-theme=dark]{--bg: #000000;--surface: #131110;--border: #f2ede6;--text: #ffffff;--text-muted: #ded7cf;--muted: #ded7cf;--hover: #2b2724}:root[data-contrast=high]{--elev-1: none;--elev-2: none;--elev-3: none;--elev-4: none;--hairline: var(--border);--border-control: var(--border);--btn: var(--surface);--btn-edge: none;--btn-press: none}:root[data-contrast=high] :focus-visible{outline:var(--focus-w) solid var(--text);outline-offset:var(--focus-gap)}@media print{:root:root:root{color-scheme:light;--bg: #fff;--surface: #fff;--hover: #fff;--tint-base: #fff;--text: #000;--text-muted: #333;--muted: #333;--border: #999;--hairline: #bbb;--border-control: #999;--accent: var(--accent-ink);--accent-h: var(--accent-ink-h);--on-accent: #fff;--danger: #a32c22;--warn: #764a0c;--info: #1f5f96;--success: #2b6340;--elev-1: none;--elev-2: none;--elev-3: none;--elev-4: none;--btn: #fff;--btn-edge: none;--btn-press: none}}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html,body,#root{height:100%}body{font-family:var(--font-sans);font-size:var(--fs-md);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:var(--bg);color:var(--text);overflow:hidden}a{color:var(--accent)}table,input[type=number],.tabular{font-variant-numeric:tabular-nums}h1,.h-page{font-size:var(--fs-xl);font-weight:700;line-height:var(--lh-tight);color:var(--text)}h2,.h-section{font-size:var(--fs-lg);font-weight:600;line-height:var(--lh-tight);color:var(--text)}h3,.h-sub{font-size:var(--fs-md);font-weight:600;line-height:var(--lh-ui);color:var(--text)}.h-eyebrow{font-size:var(--fs-2xs);font-weight:600;line-height:var(--lh-ui);letter-spacing:.6px;text-transform:uppercase;color:var(--muted)}select,input:where(:not([type=checkbox]):not([type=radio]):not([type=range]):not([type=file]):not([type=color]):not([type=submit]):not([type=button]):not([type=reset])),textarea{background:var(--bg);color:var(--text);border:1px solid var(--border-control);border-radius:var(--r-sm);padding:6px 10px;font-size:var(--fs-sm);font-family:inherit}select:focus,input:focus,textarea:focus{border-color:var(--accent)}textarea{resize:vertical}.mono{font-family:var(--font-mono)}input:read-only,textarea:read-only{cursor:default}.field-grid input:read-only,.field-grid textarea:read-only{background:var(--surface)}input[type=file]{background:var(--bg);color:var(--text);border:1px solid var(--border-control);border-radius:var(--r-sm);padding:5px 8px;font-size:var(--fs-sm);font-family:inherit;max-width:100%}input[type=file]::file-selector-button{background:var(--surface);color:var(--text);border:1px solid var(--border);border-radius:var(--r-sm);padding:4px 10px;margin-right:10px;font-size:var(--fs-xs);font-family:inherit;cursor:pointer}input[type=checkbox],input[type=radio]{flex:none;width:16px;height:16px;accent-color:var(--accent);cursor:pointer}:focus{outline:none}:focus-visible{outline:var(--focus-w) solid var(--accent-h);outline-offset:var(--focus-gap);border-radius:var(--r-sm)}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}.print-only{display:none}.skip-link{position:fixed;top:8px;left:8px;z-index:10000;background:var(--accent);color:var(--on-accent);padding:8px 14px;border-radius:var(--r-sm);font-weight:600;text-decoration:none;transform:translateY(-250%);transition:transform .15s}.skip-link:focus{transform:translateY(0)}:where(button,a,select,textarea,input,.tab,.seg-btn,.list-row,.nav-link):where(:hover,:focus-visible,:focus-within){transition:background-color var(--motion) var(--ease),border-color var(--motion) var(--ease),color var(--motion) var(--ease)}@keyframes panel-in{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:none}}.panel-in,.menu-panel,.help-panel{animation:panel-in var(--motion-in) var(--ease)}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}button{background:var(--btn);color:var(--text);border:1px solid var(--border-control);border-radius:var(--r-sm);box-shadow:var(--btn-edge);padding:4px 11px;font-size:var(--fs-sm);font-weight:500;font-family:inherit;cursor:pointer}button:hover{background:var(--btn-h);border-color:var(--muted)}button:active:not(:disabled){box-shadow:var(--btn-press)}button.primary{background:var(--accent);color:var(--on-accent);border-color:var(--accent);font-weight:600}button.primary:hover{background:var(--accent-h);border-color:var(--accent-h)}button.danger{color:var(--danger);border-color:var(--danger)}button.danger:hover{background:var(--danger-bg)}.icon-btn{padding:4px 8px;font-size:var(--fs-md)}.pill-btn{display:inline-flex;align-items:center;border:1px solid var(--accent);border-radius:var(--r-pill);padding:4px 11px;font-size:var(--fs-xs);font-family:inherit;background:transparent;color:var(--accent);cursor:pointer;text-decoration:none;white-space:nowrap}.pill-btn:hover{background:var(--accent);color:var(--on-accent)}.link-btn,button.linklike{background:none;border:none;padding:0;color:var(--accent);box-shadow:none;cursor:pointer;text-decoration:underline;font:inherit}.link-btn:hover,button.linklike:hover{background:none}.link-btn.danger{color:var(--danger);border:none;background:none}.row-actions{display:flex;gap:14px;align-items:center;flex-wrap:wrap}button:disabled,input:disabled,select:disabled,textarea:disabled{cursor:not-allowed}button:disabled{color:var(--muted);border-color:var(--hairline);background:var(--surface);box-shadow:none}button:disabled:hover{background:var(--surface);color:var(--muted);border-color:var(--hairline)}button.primary:disabled,button.primary:disabled:hover{background:var(--surface);border-color:var(--hairline)}select:disabled,textarea:disabled,input:where(:not([type=checkbox]):not([type=radio]):not([type=range]):not([type=file]):not([type=color]):not([type=submit]):not([type=button]):not([type=reset])):disabled{background:var(--surface);color:var(--muted);border-color:var(--hairline)}.btn-spinner{display:inline-block;width:12px;height:12px;margin-right:7px;border:2px solid currentColor;border-top-color:transparent;border-radius:50%;vertical-align:-2px;animation:btn-spin .6s linear infinite}@keyframes btn-spin{to{transform:rotate(360deg)}}.app{height:100vh;height:100svh;display:flex;flex-direction:column}.app-header{min-height:var(--hdr-h);background:var(--surface);border-bottom:1px solid var(--border);display:flex;align-items:center;gap:10px;flex-shrink:0;z-index:10;padding:4px max(14px,var(--safe-r)) 4px max(14px,var(--safe-l))}.app-header nav{display:flex;gap:2px;align-items:center;flex-wrap:wrap}.nav-link{color:var(--muted);text-decoration:none;padding:6px 10px;border-radius:var(--r-sm);font-size:var(--fs-sm);font-weight:600}.nav-link:hover{color:var(--text);background:var(--hover)}.nav-link[aria-current=page]{color:var(--accent);background:var(--accent-tint)}.app-menu{background:var(--surface);border-bottom:1px solid var(--border);box-shadow:var(--elev-2);padding:8px max(10px,var(--safe-r)) 12px max(10px,var(--safe-l))}.app-menu nav{display:flex;flex-direction:column;align-items:stretch;gap:2px}.app-menu .nav-link{min-height:42px;display:flex;align-items:center}.app-body{flex:1;display:flex;min-height:0}.route-outlet{flex:1;display:flex;min-width:0;min-height:0}.page{--pad-y: calc(28px * var(--density-scale));--pad-x: calc(44px * var(--density-scale));flex:1;min-width:0;min-height:0;overflow-y:auto;width:100%;padding:var(--pad-y) var(--pad-x) calc(var(--pad-y) + var(--safe-b))}.page-fixed{flex:1;min-width:0;min-height:0;display:flex;flex-direction:column;overflow:hidden}.page,.modal-box{line-height:1.45}.page-hdr{display:flex;align-items:center;gap:12px;margin-bottom:calc(24px * var(--density-scale))}.page-hdr .spacer{flex:1}.sub{color:var(--muted);font-size:var(--fs-sm);margin-top:4px}.panel{margin-bottom:calc(28px * var(--density-scale));background:var(--surface);border:1px solid var(--hairline);border-radius:var(--r-md);box-shadow:var(--elev-1);padding:calc(20px * var(--density-scale)) calc(22px * var(--density-scale))}.panel>h2{margin-bottom:calc(14px * var(--density-scale));display:flex;align-items:center;justify-content:space-between}.back-btn{display:inline-flex;align-items:center;font-size:var(--fs-sm);color:var(--text);background:var(--btn);text-decoration:none;border:1px solid var(--border-control);border-radius:var(--r-sm);box-shadow:var(--btn-edge);padding:4px 10px;white-space:nowrap;flex-shrink:0}.back-btn:hover{color:var(--text);background:var(--btn-h);border-color:var(--muted)}.back-btn:active{box-shadow:var(--btn-press)}.filter-bar{display:flex;align-items:center;gap:12px;margin-bottom:18px;flex-wrap:wrap}.filter-bar .search-input{flex:1;min-width:200px;padding:7px 12px}.surface-intro-full{margin-top:6px;max-width:78ch;line-height:var(--lh-body)}.stack{display:flex;flex-direction:column;gap:calc(18px * var(--density-scale))}.stack>p{margin-bottom:0}.field-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:calc(18px * var(--density-scale)) 18px;align-items:end}.field-grid.full{grid-template-columns:1fr}.field-grid label,.field,.field>label{display:flex;flex-direction:column;gap:6px;min-width:0;font-size:var(--fs-xs);color:var(--muted)}.field-grid input:where(:not([type=checkbox]):not([type=radio])),.field-grid select,.field-grid textarea{width:100%;min-width:0}.check-field{display:flex;gap:8px;align-items:flex-start}.check-field>span{min-width:0}.field-error{color:var(--danger);font-size:var(--fs-xs)}.field-req{color:var(--danger);font-weight:600}.field-opt{color:var(--muted);font-weight:400;font-style:italic}.panel-actions{display:flex;align-items:center;justify-content:flex-end;gap:8px;flex-wrap:wrap;margin-top:calc(22px * var(--density-scale));padding-top:calc(14px * var(--density-scale));border-top:1px solid var(--hairline)}.panel-actions-aside{display:flex;gap:8px;flex-wrap:wrap;margin-right:auto}.tabs{display:flex;gap:4px;box-shadow:inset 0 -1px 0 var(--border);margin-bottom:calc(28px * var(--density-scale));overflow-x:auto;scrollbar-width:thin}.tab{background:none;border:none;border-bottom:2px solid transparent;border-radius:0;box-shadow:none;color:var(--muted);font-size:var(--fs-sm);font-weight:600;padding:8px 14px;flex-shrink:0;white-space:nowrap}.tab:hover{color:var(--text);background:none}.tab.active{color:var(--text);border-bottom-color:var(--accent)}.tab:focus-visible{outline:2px solid var(--accent);outline-offset:-2px;border-radius:var(--r-sm)}.tab-select{display:flex;align-items:center;gap:10px;border-bottom:1px solid var(--border);padding-bottom:calc(10px * var(--density-scale));margin-bottom:calc(20px * var(--density-scale))}.tab-select-label{display:flex;align-items:center;gap:8px;flex:1;min-width:0;font-size:var(--fs-xs);text-transform:uppercase;letter-spacing:.04em;color:var(--muted)}.tab-select-label select{flex:1;min-width:0;font-weight:600}.seg-toggle{display:flex;gap:4px;flex-wrap:wrap;align-items:center;margin-bottom:calc(18px * var(--density-scale))}.seg-btn{padding:5px 12px;font-size:var(--fs-xs)}.seg-btn.active,.seg-btn.active:hover{background:var(--accent-tint);border-color:var(--accent);color:var(--accent);box-shadow:var(--btn-press)}.dt-scroll{overflow-x:auto}.data-table{width:100%;border-collapse:collapse;font-size:var(--fs-sm)}.data-table th,.data-table td{padding:10px 12px;text-align:left;border-bottom:1px solid var(--border);vertical-align:top}.data-table thead th{font-size:var(--fs-2xs);font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);white-space:nowrap}.data-table th.dt-rowhead{font-size:inherit;text-transform:none;letter-spacing:normal;color:var(--text);font-weight:400}.dt-right{text-align:right}.dt-center{text-align:center}.dt-title{font-weight:600;color:var(--text);display:flex;align-items:center;flex-wrap:wrap;gap:6px}.dt-sub{font-size:var(--fs-xs);color:var(--muted)}.dt-row-actions{text-align:right;white-space:nowrap}.dt-row-actions>*+*{margin-left:6px}.table-sort{background:none;border:none;box-shadow:none;padding:0;font:inherit;color:inherit;text-transform:inherit;letter-spacing:inherit}tr.row-quiet td,tr.row-quiet th{color:var(--muted)}.dt-cards{list-style:none;margin:12px 0 0;padding:0;display:flex;flex-direction:column;gap:10px}.dt-card{border:1px solid var(--hairline);border-radius:var(--r-md);background:var(--surface);box-shadow:var(--elev-1);padding:calc(12px * var(--density-scale)) 12px}.dt-card-hd{display:flex;flex-direction:column;gap:2px;margin-bottom:8px}.dt-card-hd .dt-title{font-size:var(--fs-lg)}.dt-card-facts{display:grid;grid-template-columns:max-content 1fr;gap:4px 12px;margin:0}.dt-fact{display:contents}.dt-fact dt{font-size:var(--fs-2xs);text-transform:uppercase;letter-spacing:.03em;color:var(--muted);align-self:baseline}.dt-fact dd{margin:0;font-size:var(--fs-sm);color:var(--text);min-width:0;overflow-wrap:anywhere}.dt-card-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px;padding-top:10px;border-top:1px solid var(--border)}.dt-card-actions:empty{display:none}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1000;background:#00000080;display:flex;align-items:center;justify-content:center}.modal-box{background:var(--surface);border:1px solid var(--hairline);border-radius:var(--r-lg);box-shadow:var(--elev-4);padding:20px 22px;width:360px;max-width:calc(100vw - 32px);max-height:70vh;display:flex;flex-direction:column}.modal-box.modal-wide{width:560px;max-width:calc(100vw - 32px)}.modal-box>h2{margin-bottom:12px}.modal-scroll{flex:1;min-height:0;overflow-y:auto;padding:var(--focus-reach);margin:calc(-1 * var(--focus-reach))}.modal-actions{display:flex;justify-content:flex-end;gap:8px;flex-wrap:wrap;flex:none}.field-grid+.modal-actions,.modal-scroll+.modal-actions,.stack+.modal-actions{margin-top:calc(16px * var(--density-scale))}.toast-region{position:fixed;z-index:3000;bottom:calc(16px + var(--safe-b));right:calc(16px + var(--safe-r));display:flex;flex-direction:column;gap:8px;max-width:min(380px,calc(100vw - 32px - var(--safe-l) - var(--safe-r)));pointer-events:none}.toast{pointer-events:auto;display:flex;align-items:flex-start;gap:10px;padding:10px 12px;border-radius:var(--r-md);border:1px solid var(--hairline);background:var(--surface);color:var(--text);box-shadow:var(--elev-3);font-size:var(--fs-md);line-height:1.35;animation:toast-in .18s ease-out}@keyframes toast-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}.toast-error{border-color:var(--danger);background:var(--danger-bg)}.toast-success{border-color:var(--success);background:var(--success-bg)}.toast-info{border-color:var(--info);background:var(--info-bg)}.toast-msg{flex:1;overflow-wrap:anywhere}.toast-action{font-weight:600}.toast-close{flex:none;margin:-4px -4px -4px 0;padding:0 6px;background:none;border:none;box-shadow:none;color:inherit;font-size:var(--fs-xl);line-height:1}.toast-close:hover{background:none}.empty-state{display:flex;flex-direction:column;align-items:center;text-align:center;gap:6px;padding:calc(34px * var(--density-scale)) 16px;color:var(--muted)}.empty-sm{padding:calc(20px * var(--density-scale)) 12px}.empty-state-mark{color:var(--muted);opacity:.2;margin-bottom:4px}.empty-state-title{margin:0;font-size:var(--fs-md);font-weight:600;color:var(--text)}.empty-state-hint{margin:0;max-width:46ch;font-size:var(--fs-sm);line-height:var(--lh-body);color:var(--muted)}.empty-state-action{margin-top:8px}.status-pill{font-size:var(--fs-2xs);padding:2px 9px;border-radius:var(--r-md);white-space:nowrap;flex-shrink:0}.status-pill.on{background:var(--accent-tint);color:var(--accent)}.status-pill.off{background:var(--warn-bg);color:var(--warn)}.status-pill.info{background:var(--info-bg);color:var(--info)}.status-pill.danger{background:var(--danger-bg);color:var(--danger)}.status-pill.quiet{background:var(--hover);color:var(--muted)}.pill-row{display:flex;flex-wrap:wrap;align-items:center;gap:4px}.badge{display:inline-block;margin-left:6px;min-width:16px;padding:0 5px;font-size:var(--fs-2xs);line-height:16px;text-align:center;border-radius:var(--r-md);background:var(--accent);color:var(--on-accent)}.list-row{display:flex;align-items:center;gap:10px;padding:calc(10px * var(--density-scale)) 0}.list-row+.list-row{border-top:1px solid var(--border)}.list-row .grow{flex:1;min-width:0}.infotip{display:inline-flex}.infotip-btn{display:inline-flex;align-items:center;color:var(--muted);cursor:help;font-size:var(--fs-xs);line-height:1;-webkit-user-select:none;user-select:none}.infotip-btn:hover,.infotip-btn:focus-visible{color:var(--accent)}.infotip-bubble{position:fixed;top:0;left:0;width:max-content;max-width:min(260px,calc(100vw - 16px));padding:7px 10px;border-radius:var(--r-sm);background:var(--surface);border:1px solid var(--hairline);box-shadow:var(--elev-2);color:var(--text);font-size:var(--fs-2xs);line-height:1.4;z-index:4000;opacity:0;visibility:hidden;transition:opacity var(--motion) var(--ease)}.infotip-bubble:after{content:"";position:absolute;top:100%;left:0;right:0;height:6px}.infotip-bubble.below:after{top:auto;bottom:100%}.infotip-bubble.open{opacity:1;visibility:visible}.log-catchup{position:sticky;bottom:0;align-self:center;margin-top:4px;padding:4px 12px;border:1px solid var(--hairline);border-radius:var(--r-pill);background:var(--surface);color:var(--accent);font-size:var(--fs-xs);box-shadow:var(--elev-2)}.log-catchup:hover{background:var(--accent-tint)}.help-fab{position:fixed;z-index:50;right:calc(var(--help-r) + var(--safe-r));bottom:calc(20px + var(--safe-b));border-radius:var(--r-pill);padding:10px 16px;font-weight:600;background:var(--accent);color:var(--on-accent);border-color:var(--accent);box-shadow:var(--elev-3)}.help-fab:hover{background:var(--accent-h);border-color:var(--accent-h)}.help-panel{position:fixed;z-index:50;right:calc(var(--help-r) + var(--safe-r));bottom:calc(20px + var(--safe-b));width:min(360px,calc(100vw - 40px - var(--safe-l) - var(--safe-r)));height:min(480px,calc(100dvh - 40px - var(--safe-t) - var(--safe-b)));display:flex;flex-direction:column;background:var(--surface);border:1px solid var(--hairline);border-radius:var(--r-lg);box-shadow:var(--elev-3);overflow:hidden}.help-hd{display:flex;align-items:baseline;gap:8px;padding:10px 12px;border-bottom:1px solid var(--border)}.help-hd .spacer{flex:1}.help-log{flex:1;min-height:0;overflow-y:auto;padding:12px;display:flex;flex-direction:column;gap:8px}.help-msg{max-width:85%;padding:8px 10px;border-radius:var(--r-md);font-size:var(--fs-sm);white-space:pre-wrap;word-break:break-word}.help-msg.user{align-self:flex-end;background:var(--accent);color:var(--on-accent)}.help-msg.assistant{align-self:flex-start;background:var(--bg);border:1px solid var(--border)}.help-msg.error{align-self:flex-start;background:var(--danger-bg);color:var(--danger);border:1px solid var(--danger)}.help-msg.note{align-self:center;padding:2px 0;color:var(--muted);font-size:var(--fs-xs)}.help-input{display:flex;gap:6px;padding:10px;border-top:1px solid var(--border)}.help-input input{flex:1}.help-goto{margin-top:6px}.help-report{padding:0 12px 10px;text-align:left;font-size:var(--fs-xs)}.logo{display:inline-flex;align-items:center;gap:8px;color:var(--accent);text-decoration:none}.logo svg{display:block;flex:none}.logo-name{font-size:var(--fs-lg);font-weight:650;letter-spacing:-.012em;white-space:nowrap}.cmdk-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1200;background:#00000080;display:flex;align-items:flex-start;justify-content:center;padding:10vh 16px 16px}.cmdk-box{display:flex;flex-direction:column;width:100%;max-width:620px;max-height:min(70vh,560px);background:var(--surface);border:1px solid var(--hairline);border-radius:var(--r-lg);box-shadow:var(--elev-4);overflow:hidden}.cmdk-input{flex:none;width:100%;border:none;border-bottom:1px solid var(--border);border-radius:var(--r-lg) var(--r-lg) 0 0;background:transparent;color:var(--text);font-size:var(--fs-lg);padding:16px 18px}.cmdk-input:focus-visible{outline:var(--focus-w) solid var(--accent);outline-offset:calc(-1 * var(--focus-w))}.cmdk-results{flex:1 1 auto;min-height:0;overflow-y:auto;padding:6px 0}.cmdk-panel{padding:10px 18px}.cmdk-group+.cmdk-group{border-top:1px solid var(--border)}.cmdk-group-label{font-size:var(--fs-2xs);text-transform:uppercase;letter-spacing:.06em;color:var(--muted);padding:8px 18px 4px}.cmdk-hit{display:flex;align-items:baseline;gap:10px;padding:7px 18px;cursor:pointer;border-left:3px solid transparent}.cmdk-hit.active{background:var(--hover);border-left-color:var(--accent)}.cmdk-hit-kind{flex:0 0 82px;font-size:var(--fs-2xs);color:var(--muted);text-transform:uppercase;letter-spacing:.04em}.cmdk-hit-body{flex:1 1 auto;min-width:0}.cmdk-hit-label{display:block;color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cmdk-hit-sub{display:block;font-size:var(--fs-xs);color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cmdk-foot{flex:none;display:flex;justify-content:space-between;gap:12px;border-top:1px solid var(--border);padding:8px 18px;font-size:var(--fs-xs);color:var(--muted)}.cmdk-error{color:var(--danger)}.cmdk-hint{white-space:nowrap}@media (max-width: 700px){.cmdk-overlay{padding:5vh 10px 10px}.cmdk-box{max-height:80vh}.cmdk-hit{flex-direction:column;gap:2px}.cmdk-hit-kind{flex:none}.cmdk-hint{display:none}}.kbdref{display:flex;flex-direction:column;gap:18px}.kbdref.compact{gap:12px}.kbdref-group-title{display:flex;align-items:baseline;gap:8px;margin-bottom:6px}.kbdref-where{font-size:var(--fs-xs);font-weight:400;color:var(--muted)}.kbdref-list{display:grid;grid-template-columns:max-content 1fr;gap:6px 16px;margin:0}.kbdref-row{display:contents}.kbdref-keys{white-space:nowrap}.kbdref-what{margin:0;font-size:var(--fs-sm)}.kbdref-note{display:block;color:var(--muted);font-size:var(--fs-xs)}.kbdref-or,.kbdref-plus{color:var(--muted);font-size:var(--fs-xs);margin:0 3px}kbd{display:inline-block;min-width:1.6em;padding:1px 6px;text-align:center;font-family:inherit;font-size:var(--fs-xs);color:var(--text);background:var(--bg);border:1px solid var(--border-control);border-bottom-width:2px;border-radius:var(--r-sm)}.modal-box.phone-sheet{width:360px}.phone-sheet-actions{display:flex;flex-direction:column;gap:8px;overflow-y:auto;min-height:0;margin-bottom:14px}.phone-sheet-actions>*{width:100%;display:flex;align-items:center;justify-content:flex-start;gap:6px;flex:none;min-height:42px;padding:9px 12px;font-size:var(--fs-sm);text-align:left}.desk-gate-why{font-size:var(--fs-lg);line-height:1.5;color:var(--text);margin-bottom:10px}.desk-gate-actions{display:flex;flex-wrap:wrap;gap:10px}.desk-gate-list{margin:8px 0 0 18px;line-height:1.7}@media (hover: none){.reveal-on-hover{opacity:1!important}}@media (max-width: 900px){.page{--pad-y: 20px;--pad-x: 16px}}@media (max-width: 600px){select,input:where(:not([type=checkbox]):not([type=radio]):not([type=range]):not([type=file]):not([type=color]):not([type=submit]):not([type=button]):not([type=reset])),textarea{font-size:16px;padding:7px 9px}.page{--pad-y: 14px;--pad-x: 10px}.panel{padding:14px 12px;margin-bottom:18px}.page-hdr{flex-wrap:wrap;gap:8px;margin-bottom:16px}.field-grid{grid-template-columns:1fr}.list-row{flex-wrap:wrap;row-gap:4px}button{min-height:34px}.link-btn,button.linklike,.toast-close,.table-sort,.dense-by-design button{min-height:0}.tab,.seg-btn,.pill-btn,.back-btn,.icon-btn{min-height:34px}th:has(>.table-sort){padding-top:0;padding-bottom:0}th>.table-sort{display:block;width:100%;padding:10px 0}label:has(>input[type=checkbox]),label:has(>input[type=radio]){min-height:34px;display:inline-flex;align-items:center}.help-fab{right:calc(12px + var(--safe-r));bottom:calc(12px + var(--safe-b))}.help-panel{right:calc(8px + var(--safe-r));left:calc(8px + var(--safe-l));width:auto;bottom:calc(8px + var(--safe-b));height:min(70dvh,calc(100dvh - 16px - var(--safe-t) - var(--safe-b)))}}@media (max-height: 480px){.modal-box{max-height:calc(100dvh - 24px);padding:14px 16px}.help-panel{height:calc(100dvh - 24px - var(--safe-t) - var(--safe-b))}}@media (max-width: 400px){.page{--pad-y: 12px;--pad-x: 8px}.modal-box{padding:16px 14px}.app-header .logo-name{display:none}}@media (max-width: 380px){.dt-card-facts{grid-template-columns:1fr;gap:2px 0}.dt-fact dd{margin-bottom:6px}}@media print{html,body,#root{height:auto;overflow:visible;background:#fff;color:#000}.app{height:auto;display:block}.app-body,.route-outlet{display:block;min-height:0}#main,#main *{overflow:visible!important;max-height:none!important}.skip-link,.toast-region,.help-fab,.help-panel,.app-header,.app-menu,.sidebar,.no-print,.tabs,.tab-select,.seg-toggle,.filter-bar,.row-actions,.panel-actions,.modal-actions,.dt-actions,.back-btn,.empty-state-action,.page-hdr>button,.page-hdr>a{display:none!important}.print-only{display:block}.filter-print-note{margin:0 0 10px;font-size:var(--fs-sm);color:var(--text-muted)}.seg-print-caption{margin:0 0 10px;font-weight:600}thead{display:table-header-group}tr{break-inside:avoid}h1,h2,h3{break-after:avoid}body:has(.print-doc) :not(:has(.print-doc)):not(.print-doc):not(.print-doc *){display:none!important}body:has(.print-doc) :has(.print-doc){display:block!important;position:static!important;overflow:visible!important;width:auto!important;max-width:none!important;height:auto!important;max-height:none!important}.print-doc{color:#000;background:#fff}}.brand{display:flex;align-items:center;gap:10px;min-width:0}.site-picker select{min-height:32px}.site-name{font-weight:600;color:var(--text)}.brand-stacked{flex-direction:column;align-items:flex-start;gap:0}.brand-stacked .site-name,.brand-stacked .site-picker{margin-left:30px}.brand-stacked .site-name{font-size:var(--fs-sm);color:var(--muted);line-height:1.4}.brand-stacked .site-picker select{min-height:0;margin-left:-4px;padding:1px 4px;font-size:var(--fs-sm);font-weight:600;color:var(--muted);background-color:transparent;border-color:transparent}.brand-stacked .site-picker select:hover{color:var(--text);background-color:var(--hover)}:root[data-contrast=high] .brand-stacked .site-picker select{border-color:var(--border-control)}.nav-count{display:inline-block;margin-left:6px;min-width:18px;padding:0 5px;border-radius:var(--r-pill);background:var(--danger);color:var(--on-accent);font-size:var(--fs-2xs);line-height:18px;text-align:center;font-variant-numeric:tabular-nums}.signin{min-height:100dvh;display:grid;place-items:center;padding:16px;background:var(--bg)}.signin-box{width:min(380px,100%);display:flex;flex-direction:column;gap:14px;margin:0}.field{display:flex;flex-direction:column;gap:4px;font-size:var(--fs-sm);color:var(--muted)}.field input,.field select{font-size:var(--fs-md)}.demo-users{font-size:var(--fs-sm)}.demo-users ul{margin:6px 0 0;padding-left:18px}.fresh-banner{border:1px solid var(--warn);background:var(--warn-bg);color:var(--warn);border-radius:var(--r-md);padding:8px 12px;margin-bottom:14px;font-size:var(--fs-sm)}.fresh-banner.offline,.fresh-banner.lost{border-color:var(--danger);background:var(--danger-bg);color:var(--danger)}.is-stale .live-value,.is-stale .reading-value{color:var(--muted)}.is-stale .ro-value.big:after,.is-stale .reading-value:after{content:" (old)";font-size:var(--fs-2xs);font-weight:400}.wx-strip{display:flex;flex-wrap:wrap;gap:6px 22px;padding:10px 14px;margin-bottom:18px;background:var(--surface);border:1px solid var(--hairline);border-radius:var(--r-md);font-size:var(--fs-sm);color:var(--muted)}.wx-strip b{color:var(--text);font-weight:600;font-variant-numeric:tabular-nums}.wx-flag{color:var(--warn);font-weight:600}.wx-flag.danger{color:var(--danger)}.house{margin-bottom:22px}.house-hd{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap;margin-bottom:8px}.zone-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:12px}.zone-tile{display:flex;flex-direction:column;gap:6px;padding:12px 14px;min-height:150px;background:var(--surface);border:1px solid var(--hairline);border-radius:var(--r-md);box-shadow:var(--elev-1);color:var(--text);text-decoration:none;transition:border-color var(--motion) var(--ease),background var(--motion) var(--ease)}.zone-tile:hover{border-color:var(--border-control);background:var(--hover)}.zone-tile.alarm{border-color:var(--danger)}.tile-hd{display:flex;align-items:center;gap:6px}.tile-name{font-weight:700;font-size:var(--fs-lg)}.tile-sp{font-size:var(--fs-xs);color:var(--muted);font-variant-numeric:tabular-nums}.tile-outs{display:flex;flex-wrap:wrap;gap:4px 12px;font-size:var(--fs-xs);color:var(--muted)}.tile-outs b{color:var(--text);font-variant-numeric:tabular-nums;font-weight:600}.tile-why{font-size:var(--fs-xs);color:var(--muted);margin-top:auto;line-height:var(--lh-tight)}.pill-alarm{background:var(--danger-bg);color:var(--danger)}.pill-manual{background:var(--warn-bg);color:var(--warn)}.ro-rows{display:grid;grid-template-columns:auto minmax(40px,1fr) auto;gap:3px 10px;align-items:center}.ro-label{font-size:var(--fs-xs);color:var(--muted)}.ro-value{font-size:var(--fs-md);font-weight:600;font-variant-numeric:tabular-nums;text-align:right;white-space:nowrap}.ro-value.big{font-size:var(--fs-xl)}.ro-value small{font-size:var(--fs-2xs);font-weight:400;color:var(--muted)}.ro-tag{font-size:var(--fs-3xs);font-weight:700;margin-right:3px}.ro-track,.fp-scale{position:relative;background:var(--ro-track);border-radius:2px;box-shadow:inset 0 0 0 1px var(--hairline)}.ro-track{height:10px}.ro-track.out{height:8px}.ro-band,.ro-fill,.ro-cap{position:absolute;top:0;bottom:0}.ro-band.work{background:var(--ro-work)}.ro-band.target{background:var(--ro-target)}.ro-fill{left:0;top:2px;bottom:2px;background:var(--ro-fill)}.ro-cap,.fp-cap{background:repeating-linear-gradient(45deg,transparent 0 3px,var(--border-control) 3px 4px)}.ro-cap{right:0;border-left:2px solid var(--text)}.ro-limit{position:absolute;top:-3px;bottom:-3px;width:2px;margin-left:-1px;background:var(--danger)}.ro-target-tick{position:absolute;top:-2px;bottom:-2px;width:2px;margin-left:-1px;background:var(--text);opacity:.55}.ro-ptr{position:absolute;top:-1px;bottom:-1px;width:2px;margin-left:-1px;background:currentColor;color:var(--text)}.ro-ptr:before{content:"";position:absolute;left:-4px;top:-6px;border:5px solid transparent;border-top-color:currentColor;border-bottom-width:0}.is-alarm>.ro-ptr,.is-alarm>.fp-ptr,.ro-value.is-alarm,.fp-value.is-alarm,.ro-value.is-failed,.fp-value.is-failed,.ro-failed{color:var(--danger)}.ro-failed{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;font-size:var(--fs-3xs);line-height:1}.mode-1>.ro-fill,.mode-1>.fp-fill{background:var(--warn)}.mode-2>.ro-fill,.mode-3>.ro-fill,.mode-2>.fp-fill,.mode-3>.fp-fill{background:var(--danger)}.ro-track.mode-1,.fp-scale.mode-1{box-shadow:inset 0 0 0 1.5px var(--warn)}.ro-value.mode-1{color:var(--warn)}.ro-value.mode-2,.ro-value.mode-3{color:var(--danger)}.is-stale .ro-value,.is-stale .fp-value,.is-stale .ro-ptr,.is-stale .fp-ptr{color:var(--muted)}.is-stale .ro-fill,.is-stale .fp-fill{background:var(--ro-work)}.glance{display:grid;grid-template-columns:auto minmax(0,1fr);gap:16px 28px;align-items:start;padding:12px 14px;margin-bottom:18px;background:var(--surface);border:1px solid var(--hairline);border-radius:var(--r-md);box-shadow:var(--elev-1)}.fp{display:flex;flex-wrap:wrap;gap:16px 22px}.fp-group{display:flex;gap:4px}.fp-col{display:flex;flex-direction:column;gap:2px}.fp-col.measure{width:88px;align-items:flex-start}.fp-col.output{width:52px;align-items:center}.fp-label{font-size:var(--fs-xs);color:var(--muted)}.fp-value{font-size:var(--fs-lg);font-weight:600;font-variant-numeric:tabular-nums;white-space:nowrap}.fp-value small{font-size:var(--fs-2xs);font-weight:400;color:var(--muted)}.fp-scale{width:16px;height:132px;margin-top:6px}.fp-col.measure .fp-scale{margin-left:12px}.fp-band,.fp-fill,.fp-cap{position:absolute;left:0;right:0}.fp-band.work{background:var(--ro-work)}.fp-band.target{background:var(--ro-target)}.fp-fill{left:3px;right:3px;bottom:0;background:var(--ro-fill)}.fp-cap{top:0;border-bottom:2px solid var(--text)}.fp-limit{position:absolute;left:-3px;right:-3px;height:2px;margin-bottom:-1px;background:var(--danger)}.fp-target-tick{position:absolute;left:-2px;right:-2px;height:2px;margin-bottom:-1px;background:var(--text);opacity:.55}.fp-ptr{position:absolute;left:0;right:0;height:2px;margin-bottom:-1px;background:currentColor;color:var(--text)}.fp-ptr:before{content:"";position:absolute;left:-11px;top:-5px;border:6px solid transparent;border-left:9px solid currentColor;border-right-width:0}.fp-mark{position:absolute;left:22px;transform:translateY(50%);white-space:nowrap;font-size:var(--fs-3xs);color:var(--muted);font-variant-numeric:tabular-nums;line-height:1}.fp-failed{position:absolute;top:0;right:0;bottom:0;left:0;writing-mode:vertical-rl;transform:rotate(180deg);display:grid;place-items:center;font-size:var(--fs-3xs);color:var(--danger)}.fp-tag{font-size:var(--fs-3xs);font-weight:700;min-height:1.2em}.fp-tag.mode-1{color:var(--warn)}.fp-tag.mode-2,.fp-tag.mode-3{color:var(--danger)}.ts{display:grid;grid-template-columns:auto minmax(60px,1fr) auto;gap:8px 10px;align-items:center;min-width:0}.ts-plot{position:relative}.ts-plot svg{display:block;width:100%}.ts-plot .band-work{fill:var(--ro-work)}.ts-plot .band-target{fill:var(--ro-target)}.ts-plot .bg{fill:var(--ro-track);stroke:var(--hairline)}.ts-plot .line{fill:none;stroke:var(--text);stroke-width:1.8}.ts-plot .area{fill:var(--ro-fill)}.ts-plot .limit{stroke:var(--danger);stroke-width:1.2;stroke-dasharray:4 3}.ts-plot .cap{stroke:var(--text);stroke-width:1.5;stroke-dasharray:2 2}.ts-plot.is-alarm .line{stroke:var(--danger)}.ts-plot.mode-1 .area{fill:var(--warn)}.ts-plot.mode-2 .area,.ts-plot.mode-3 .area{fill:var(--danger)}.ts-dot{position:absolute;right:-4px;width:8px;height:8px;margin-top:-4px;border-radius:50%;background:var(--text);box-shadow:0 0 0 2px var(--surface)}.ts-plot.is-alarm .ts-dot{background:var(--danger)}.is-stale .ts-plot .line{stroke:var(--muted)}.is-stale .ts-dot{background:var(--muted)}.ts-axis{grid-column:2;display:flex;justify-content:space-between;font-size:var(--fs-3xs);color:var(--muted);margin-top:-4px}.readings{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px;margin-bottom:18px}.reading{padding:10px 12px;background:var(--surface);border:1px solid var(--hairline);border-radius:var(--r-md)}.reading-label{font-size:var(--fs-xs);color:var(--muted)}.reading-value{font-size:var(--fs-xl);font-weight:600;font-variant-numeric:tabular-nums}.reading-sub{font-size:var(--fs-2xs);color:var(--muted);line-height:var(--lh-tight)}.outputs{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:12px}.out-card{display:flex;flex-direction:column;gap:6px;padding:12px 14px;background:var(--surface);border:1px solid var(--hairline);border-radius:var(--r-md);box-shadow:var(--elev-1)}.out-card.mode-1{border-color:var(--warn)}.out-card.mode-2,.out-card.mode-3{border-color:var(--danger)}.out-hd{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.out-hd-actions{display:flex;gap:6px;margin-left:auto}.out-hd-actions button{font-size:var(--fs-xs);min-height:28px;padding:2px 10px}.out-hd-actions button.is-open{background:var(--accent-tint);border-color:var(--accent);color:var(--accent);box-shadow:var(--btn-press)}.out-label{font-weight:600;flex:1}.out-value{font-size:var(--fs-xl);font-weight:600;font-variant-numeric:tabular-nums}.out-units{font-size:var(--fs-sm);color:var(--muted)}.out-reason{font-size:var(--fs-sm);line-height:var(--lh-tight)}.out-actions{display:flex;flex-wrap:wrap;gap:6px;margin-top:2px}.out-actions button{font-size:var(--fs-xs);min-height:28px;padding:2px 10px}.why{margin:4px 0 0;padding:8px 10px;background:var(--bg);border:1px solid var(--hairline);border-radius:var(--r-sm)}.why table{width:100%;border-collapse:collapse;font-size:var(--fs-xs)}.why td{padding:3px 4px;border-bottom:1px solid var(--hairline)}.why td:last-child{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}.why tr.binding td{color:var(--warn);font-weight:600}.why-note{font-size:var(--fs-2xs);color:var(--muted);margin-top:6px}.param-group{margin-bottom:18px}.param-group-hd{display:flex;align-items:center;gap:10px;margin-bottom:4px}.param-row{display:grid;grid-template-columns:minmax(160px,2fr) minmax(90px,1fr) minmax(120px,1.4fr) auto;gap:4px 12px;align-items:center;padding:7px 0;border-bottom:1px solid var(--hairline);font-size:var(--fs-sm)}.param-row.off{color:var(--muted)}.param-label{line-height:var(--lh-tight)}.param-desc{display:block;font-size:var(--fs-2xs);color:var(--muted)}.param-value{font-weight:600;font-variant-numeric:tabular-nums}.param-source{font-size:var(--fs-2xs);color:var(--muted);line-height:var(--lh-tight)}.src-badge{display:inline-block;padding:0 6px;border-radius:var(--r-sm);font-size:var(--fs-2xs);background:var(--hover);color:var(--muted);margin-right:4px}.src-badge.zone{background:var(--accent-tint);color:var(--accent)}.src-badge.temp{background:var(--warn-bg);color:var(--warn)}.sync-bad{color:var(--danger);font-size:var(--fs-2xs);display:block}.param-row button{font-size:var(--fs-xs);min-height:28px;padding:2px 10px}.preview-table{width:100%;border-collapse:collapse;font-size:var(--fs-xs);margin-top:6px}.preview-table th,.preview-table td{text-align:left;padding:4px 6px;border-bottom:1px solid var(--hairline);vertical-align:top}.preview-table td.num{font-variant-numeric:tabular-nums;white-space:nowrap}.preview-kept{color:var(--muted)}.derived{color:var(--muted);display:block}.layer-choice{display:flex;flex-direction:column;gap:6px;margin:10px 0;font-size:var(--fs-sm)}.layer-choice label{display:flex;gap:8px;align-items:flex-start}.layer-choice input[type=radio]{margin-top:3px}.inline-fields{display:flex;flex-wrap:wrap;gap:10px;align-items:flex-end}.inline-fields .field{min-width:120px}.names-block{border:0;margin:16px 0 0;padding:12px 0 0;border-top:1px solid var(--hairline);min-width:0}.names-block legend{padding:0;margin-bottom:8px}.names-block .inline-fields{align-items:flex-start}.names-block .field{min-width:0;width:9em}.names-block .field input{width:100%}.preview-summary{font-size:var(--fs-sm);margin:8px 0 0}.activity-list{list-style:none;margin:0;padding:0}.activity-list li{padding:8px 0;border-bottom:1px solid var(--hairline);font-size:var(--fs-sm)}.activity-when{color:var(--muted);font-size:var(--fs-xs);font-variant-numeric:tabular-nums}.kv{display:grid;grid-template-columns:max-content 1fr;gap:4px 16px;font-size:var(--fs-sm)}.kv dt{color:var(--muted)}.kv dd{margin:0;font-variant-numeric:tabular-nums}.sim-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:12px}.btn-row{display:flex;flex-wrap:wrap;gap:6px}@media (max-width: 600px){.param-row{grid-template-columns:1fr auto}.param-row .param-source{grid-column:1 / -1}.outputs{grid-template-columns:1fr}.zone-grid{grid-template-columns:1fr 1fr;gap:8px}.zone-tile{min-height:0;padding:10px}.ro-rows{grid-template-columns:auto 1fr;grid-auto-flow:row dense;row-gap:2px}.ro-rows .ro-track{grid-column:1 / -1;margin-bottom:4px}.tile-why{display:none}}@media (max-width: 900px){.glance{grid-template-columns:minmax(0,1fr)}}@media (max-width: 380px){.zone-grid{grid-template-columns:1fr}}.chart{margin-bottom:18px}.chart-hd{display:flex;align-items:baseline;gap:12px}.chart-box{width:100%}.chart .u-legend{font-size:var(--fs-xs);color:var(--text);text-align:left}.chart .u-legend .u-marker{border-radius:var(--r-sm)}.chart .u-select{background:var(--accent-tint)}.custom-bar{margin-bottom:8px;align-items:flex-start}.custom-bar .field select{max-width:340px}.custom-full{align-self:center;margin:0}.custom-status{margin:4px 0 8px}.custom-actions{margin-bottom:12px}.pen-swatch{display:inline-block;flex:none;width:18px;height:0;border-top:3px solid var(--pen);vertical-align:middle}.pen-swatch.dashed{border-top-style:dashed}.pen-pick{display:inline-flex;align-items:center;gap:8px;min-height:32px;cursor:pointer}.pen-pick input:disabled+.pen-swatch{opacity:.5}.pen-list tr.is-axis td{background:var(--accent-tint)}.pen-chart .dt-scroll{position:relative}.pen-value{font-variant-numeric:tabular-nums;white-space:nowrap}.pen-axis{display:flex;flex-wrap:wrap;align-items:flex-end;gap:10px;margin:4px 0 10px}.pen-axis-name{display:inline-flex;align-items:center;gap:8px;align-self:center;color:var(--text);font-weight:600}.pen-axis input{width:8em}.pen-axis .field-error{flex-basis:100%;margin:0}.modal-form{display:contents}.modal-box.modal-wide{width:min(760px,calc(100vw - 32px))}.help-proposals{margin-top:8px;display:flex;flex-direction:column;gap:6px}.help-proposals .check-field{align-items:flex-start;font-size:var(--fs-sm)}.help-results{margin:4px 0 0;padding-left:18px;font-size:var(--fs-xs)}.route-outlet>.page{padding-bottom:calc(24px + var(--help-clear-b, 0px))}.account{position:relative}.account-btn{min-width:34px;min-height:34px;padding:0 8px;border-radius:var(--r-pill);font-size:var(--fs-xs);font-weight:700;letter-spacing:.02em}.account-menu{position:absolute;right:0;top:calc(100% + 6px);z-index:30;min-width:220px;display:flex;flex-direction:column;gap:4px;padding:10px;background:var(--surface);border:1px solid var(--hairline);border-radius:var(--r-md);box-shadow:var(--elev-2)}.account-who{display:flex;flex-direction:column;padding:2px 4px 8px;border-bottom:1px solid var(--hairline);margin-bottom:4px}.account-menu button{text-align:left}.zone-switcher select{font-size:var(--fs-sm);min-height:32px}.room{display:grid;grid-template-columns:minmax(150px,200px) 1fr;gap:12px;align-items:start}.room-fresh .vessel{margin:6px 0}.room-tanks{display:flex;flex-direction:column;gap:12px}.room-row{display:grid;grid-template-columns:auto minmax(0,1fr) auto minmax(110px,160px);gap:8px;align-items:center}.room-pipe{color:var(--muted);font-size:var(--fs-xs);white-space:nowrap}.room-feeds{display:flex;flex-direction:column;font-size:var(--fs-sm)}.room-tank-body{display:flex;gap:14px;align-items:stretch;margin:6px 0}.vessel{position:relative;width:44px;min-height:96px;border:1px solid var(--border-control);border-top:none;border-radius:0 0 var(--r-sm) var(--r-sm);background:var(--bg);flex:none;overflow:visible}.vessel-fill{position:absolute;left:0;right:0;bottom:0;background:var(--border)}.vessel-mark{position:absolute;left:-4px;right:-4px;border-top:1px dashed var(--muted)}.vessel-mark span{position:absolute;left:calc(100% + 4px);top:-.7em;font-size:var(--fs-3xs);color:var(--muted);white-space:nowrap}.room-tank-body .vessel{margin-right:34px}.feas{margin:6px 0 10px}.feas ul,ul.feas{margin:4px 0 0;padding-left:18px;font-size:var(--fs-sm)}.warn-text{color:var(--warn)}@media (max-width: 760px){.room,.room-row{grid-template-columns:1fr}.room-pipe{display:none}}.notice-banner{border:1px solid var(--warn);background:var(--warn-bg);color:var(--warn);border-radius:var(--r-md);padding:8px 12px;margin:0 0 14px;font-size:var(--fs-sm)}.btn-link{display:inline-flex;align-items:center;font-size:var(--fs-sm);font-weight:500;color:var(--text);background:var(--btn);text-decoration:none;border:1px solid var(--border-control);border-radius:var(--r-sm);box-shadow:var(--btn-edge);padding:4px 11px;white-space:nowrap}.btn-link:hover{background:var(--btn-h);border-color:var(--muted)}.btn-link:active{box-shadow:var(--btn-press)}.app-list{list-style:none;margin:0;padding:0}.app-list>li{display:flex;gap:16px;align-items:flex-start;justify-content:space-between;flex-wrap:wrap;padding:calc(14px * var(--density-scale)) 0;border-bottom:1px solid var(--hairline)}.app-list>li:first-child{padding-top:0}.app-list>li:last-child{border-bottom:0;padding-bottom:0}.app-list-main{flex:1;min-width:240px}.app-list-main .sub{margin:4px 0 0;max-width:72ch}.app-list-name{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.app-list-actions{display:flex;gap:8px;flex-wrap:wrap;align-items:center}.app-page-bar{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:calc(12px * var(--density-scale)) calc(24px * var(--density-scale));border-bottom:1px solid var(--hairline);background:var(--surface)}.app-page-bar .status-pill{text-decoration:none}.app-page-title{margin:0}.app-page-body{flex:1;min-height:0;display:flex;flex-direction:column}.app-frame{display:block;width:100%;border:0;background:var(--bg)}.app-page-body .app-frame{flex:1;min-height:0}.app-frame-zone{min-height:200px;border:1px solid var(--hairline);border-radius:var(--r-md)}.app-frame-msg{padding:16px 0}.proposal-list{list-style:none;margin:8px 0 0;padding:0;display:flex;flex-direction:column;gap:10px}.proposal-list .check-field{font-size:var(--fs-sm)}.app-zone-bar{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:10px}.wi-intro{max-width:80ch;margin-top:0}.wi-changes{list-style:none;margin:0 0 12px;padding:0;display:flex;flex-direction:column;gap:6px}.wi-changes>li{display:flex;gap:12px;align-items:center;justify-content:space-between;flex-wrap:wrap;padding:6px 0;border-bottom:1px solid var(--hairline);font-size:var(--fs-sm)}.wi-changes-ro>li{justify-content:flex-start}.wi-add{display:flex;flex-wrap:wrap;gap:10px;align-items:flex-end;margin-bottom:16px}.wi-add .wi-hint,.wi-add .field-error{flex-basis:100%;margin:0}.wi-field{min-width:180px}.wi-hint{margin:6px 0 0;max-width:80ch}.wi-run-opts{display:flex;flex-wrap:wrap;gap:24px;margin-bottom:8px}.wi-run-opts .h-sub{margin:0 0 6px}.wi-run-hd{display:flex;gap:12px;align-items:baseline;justify-content:space-between;flex-wrap:wrap}.wi-progress-wrap{margin:8px 0 4px;max-width:520px}.wi-progress{height:8px;border-radius:var(--r-md);background:var(--surface);border:1px solid var(--border);overflow:hidden}.wi-progress>span{display:block;height:100%;background:var(--muted);transition:width var(--motion-in) var(--ease)}.wi-delta b{font-weight:600;color:var(--text)}.wi-delta{white-space:nowrap}.wi-site{max-width:760px;margin-bottom:20px}.wi-zones-hd{display:flex;gap:12px;align-items:baseline;flex-wrap:wrap;margin-bottom:8px}.wi-zones-hd .h-sub,.wi-zones-hd .sub{margin:0}tr.wi-selected>*,.dt-card.wi-selected{background:var(--surface)}tr.wi-same>*{color:var(--muted)}.wi-charts{margin-top:16px}
