.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--sp-2);border:1px solid var(--border);background:var(--bg-surface);color:var(--text);border-radius:var(--radius);cursor:pointer;font-weight:500;white-space:nowrap;transition:background .12s ease,border-color .12s ease}.btn:hover:not(:disabled){background:var(--ink-050);border-color:var(--border-strong)}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background:var(--accent);border-color:var(--accent);color:var(--white)}.btn-primary:hover:not(:disabled){background:var(--accent-hover);border-color:var(--accent-hover)}.btn-ghost{background:transparent;border-color:transparent;color:var(--text-muted)}.btn-ghost:hover:not(:disabled){background:var(--ink-100);border-color:transparent;color:var(--text)}.btn-danger{color:var(--red-600);border-color:var(--border)}.btn-danger:hover:not(:disabled){background:var(--red-100)}.btn-sm{padding:3px var(--sp-2);font-size:var(--text-sm)}.btn-md{padding:6px var(--sp-3);font-size:var(--text-base)}.btn-lg{padding:10px var(--sp-4);font-size:var(--text-md)}.btn-xl{padding:var(--sp-4) var(--sp-5);font-size:var(--text-lg);border-radius:var(--radius-lg);min-height:60px}.btn-full{width:100%}.card{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-sm);overflow:hidden}.card-overflow{overflow:visible}.card-head{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-3);padding:var(--sp-3) var(--sp-4);border-bottom:1px solid var(--border);background:var(--ink-050)}.card-head h3{font-size:var(--text-base);font-weight:600}.card-body{padding:var(--sp-4)}.stat{background:var(--bg-surface);border:1px solid var(--border);border-left:3px solid var(--border-strong);border-radius:var(--radius);padding:var(--sp-3) var(--sp-4);min-width:0}.stat-accent{border-left-color:var(--accent)}.stat-warn{border-left-color:var(--amber-600)}.stat-danger{border-left-color:var(--red-600)}.stat-label{font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted);font-weight:600}.stat-value{font-size:var(--text-xl);font-weight:600;line-height:1.2;margin-top:2px}.stat-sub{font-size:var(--text-sm);color:var(--text-muted);margin-top:2px}.badge{display:inline-flex;align-items:center;padding:1px var(--sp-2);border-radius:999px;font-size:var(--text-xs);font-weight:600;line-height:1.6;white-space:nowrap}.badge-neutral{background:var(--ink-100);color:var(--ink-700)}.badge-accent{background:var(--green-100);color:var(--green-900)}.badge-warn{background:var(--amber-100);color:var(--amber-600)}.badge-danger{background:var(--red-100);color:var(--red-600)}.badge-info{background:var(--blue-100);color:var(--blue-600)}.tbl{width:100%;border-collapse:collapse;font-size:var(--text-base)}.tbl th{position:sticky;top:0;z-index:1;background:var(--ink-050);border-bottom:1px solid var(--border-strong);padding:var(--sp-2) var(--sp-3);font-size:var(--text-xs);font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted);white-space:nowrap}.tbl td{padding:var(--sp-2) var(--sp-3);border-bottom:1px solid var(--ink-100);white-space:nowrap}.tbl-dense td{padding:3px var(--sp-3);height:var(--row-h)}.tbl tbody tr:hover td{background:var(--green-050)}.tbl td.strong{font-weight:600}.tbl tr.group-head td{background:var(--ink-050);font-weight:700;border-top:1px solid var(--border-strong);border-bottom:1px solid var(--border);letter-spacing:.01em}.tbl tr.group-total td{background:var(--bg-surface);font-weight:600;border-bottom:2px solid var(--border-strong);color:var(--text-muted)}.tbl tr.group-total td.strong{color:var(--text)}.field{display:flex;flex-direction:column;gap:var(--sp-1)}.field-label{font-size:var(--text-xs);font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted)}.field-label strong{font-weight:800;color:var(--text);text-transform:none}.field-hint{font-size:var(--text-sm);color:var(--text-faint)}.input{width:100%;border:1px solid var(--border-strong);border-radius:var(--radius);background:var(--bg-surface);font-variant-numeric:tabular-nums}.input-md{padding:6px var(--sp-3);font-size:var(--text-base)}.input-lg{padding:var(--sp-3) var(--sp-4);font-size:var(--text-2xl);font-weight:600;text-align:center;border-width:2px;border-radius:var(--radius-lg)}.input:focus{border-color:var(--accent);outline:none;box-shadow:0 0 0 3px var(--green-100)}.state-msg{padding:var(--sp-5);color:var(--text-muted);text-align:center;font-size:var(--text-base)}.state-err{color:var(--red-600)}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:100;display:grid;place-items:center;padding:var(--sp-4);background:#00000073;overscroll-behavior:contain}.modal-panel{width:100%;max-width:34rem;max-height:88vh;overflow-y:auto}.modal-panel>.card{margin:0;box-shadow:var(--shadow-lg, 0 12px 32px rgb(0 0 0 / 28%))}.login-page{min-height:100%;display:grid;place-items:center;padding:var(--sp-5);background:linear-gradient(160deg,var(--green-900) 0%,var(--ink-900) 100%)}.login-card{width:100%;max-width:380px;display:flex;flex-direction:column;gap:var(--sp-4);background:var(--bg-surface);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);padding:var(--sp-6)}.login-brand{text-align:center;margin-bottom:var(--sp-2)}.login-mark{width:44px;height:52px;margin:0 auto var(--sp-3);border:3px solid var(--accent);border-radius:3px;position:relative;background:var(--green-050)}.login-mark:before{content:"";position:absolute;left:0;right:0;top:50%;height:3px;background:var(--accent);transform:translateY(-50%)}.login-mark:after{content:"";position:absolute;top:0;bottom:0;left:50%;width:3px;background:var(--accent);transform:translate(-50%)}.login-brand h1{font-size:var(--text-lg);letter-spacing:-.02em}.login-tagline{margin:var(--sp-1) 0 0;font-size:var(--text-sm);color:var(--text-muted);font-style:italic}.login-error{background:var(--red-100);color:var(--red-600);padding:var(--sp-2) var(--sp-3);border-radius:var(--radius);font-size:var(--text-sm);text-align:center}.login-note{margin:0;text-align:center;font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.08em;color:var(--text-faint)}.login-password{position:relative;display:flex;align-items:center}.login-password .input{padding-right:4.75rem;width:100%}.login-reveal{position:absolute;right:var(--sp-2);padding:var(--sp-2) var(--sp-3);border:0;background:none;font:inherit;font-size:var(--text-sm);font-weight:600;color:var(--text-muted);cursor:pointer;min-height:44px;min-width:44px}.login-reveal:hover,.login-reveal:focus-visible{color:var(--text);text-decoration:underline}.status-chip-wrap{position:relative;display:inline-flex;flex:none}.status-chip{display:inline-flex;align-items:center;gap:var(--sp-2);min-height:36px;padding:0 var(--sp-3);border:1px solid var(--chip-edge, transparent);border-radius:999px;background:var(--chip-fill, rgb(255 255 255 / .12));color:var(--chip-ink, inherit);font:inherit;font-size:var(--text-sm);font-weight:600;line-height:1;white-space:nowrap;cursor:pointer}.status-chip:hover,.status-chip:focus-visible{box-shadow:inset 0 0 0 999px #ffffff1a}.status-dot{width:10px;height:10px;flex:none;border-radius:50%;background:var(--chip-key, currentColor)}.status-chip-ready{--chip-key: #5fd39a;--chip-ink: #dff5ea;--chip-fill: rgb(74 157 118 / .3);--chip-edge: rgb(95 211 154 / .45)}.status-chip-held,.status-chip-busy,.status-chip-warn{--chip-key: #f0a92e;--chip-ink: #ffe3ad;--chip-fill: rgb(240 169 46 / .22);--chip-edge: rgb(240 169 46 / .5)}.status-chip-attention{--chip-key: #f4776a;--chip-ink: #ffd4cd;--chip-fill: rgb(244 119 106 / .24);--chip-edge: rgb(244 119 106 / .55)}@keyframes status-dot-breathe{50%{opacity:.3}}.status-chip-busy .status-dot{animation:status-dot-breathe 1.2s ease-in-out infinite}@media(prefers-reduced-motion:reduce){.status-chip-busy .status-dot{animation:none}}.status-scrim{position:fixed;top:0;right:0;bottom:0;left:0;z-index:40;border:0;padding:0;background:transparent;cursor:default}.status-panel{position:fixed;z-index:41;top:0;left:0;width:380px;max-height:60vh;overflow-y:auto;padding:var(--sp-4);border:1px solid var(--border-strong);border-radius:var(--radius-lg);background:var(--bg-surface);color:var(--text);box-shadow:0 12px 32px #00000038;text-align:left;font-size:var(--text-sm);line-height:1.5;white-space:normal}.status-panel-head{display:flex;align-items:center;gap:var(--sp-2);font-size:var(--text-md)}.status-dot-ready{--chip-key: var(--green-600)}.status-dot-held,.status-dot-busy,.status-dot-warn{--chip-key: var(--amber-600)}.status-dot-attention{--chip-key: var(--red-600)}.status-lines{margin:var(--sp-3) 0 0;padding-left:1.1em}.status-lines li+li{margin-top:var(--sp-2)}.status-lines-warn{color:var(--amber-600)}.status-allwell{margin:var(--sp-3) 0 0;color:var(--text-muted)}.status-failed,.status-drafts{margin-top:var(--sp-3);padding-top:var(--sp-3);border-top:1px solid var(--border)}.status-draft-row{display:flex;flex-wrap:wrap;align-items:center;gap:var(--sp-2);color:var(--text)}.status-draft-row+.status-draft-row{margin-top:var(--sp-2)}.status-action-armed{color:var(--red-600);border-color:var(--red-600)}.status-failed-row{display:flex;flex-direction:column;gap:var(--sp-2);padding:var(--sp-2) 0;color:var(--red-600)}.status-actions{display:flex;flex-wrap:wrap;align-items:center;gap:var(--sp-3);margin-top:var(--sp-4);padding-top:var(--sp-3);border-top:1px solid var(--border)}.status-action{border:0;padding:var(--sp-2) 0;background:none;font:inherit;font-size:var(--text-sm);font-weight:600;color:var(--accent);text-decoration:underline;cursor:pointer;min-height:44px;text-align:left}.status-action:disabled{color:var(--text-muted);cursor:default;text-decoration:none}.status-filename{color:var(--text-muted);font-size:var(--text-xs)}.go-unstarted{display:flex;align-items:center;gap:var(--sp-3);padding:var(--sp-2) var(--sp-3);margin-top:var(--sp-4);background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius-sm);font-size:var(--text-sm);color:var(--text-muted)}.go-toolbar{display:flex;align-items:center;gap:var(--sp-2);flex-wrap:wrap;padding:var(--sp-2) var(--sp-3);border-bottom:1px solid var(--border);background:var(--bg-surface)}.go-toolbar-actions{margin-left:auto;display:flex;align-items:center;gap:var(--sp-2);white-space:nowrap}.go-summary{font-size:var(--text-sm);color:var(--text-muted);white-space:nowrap}.go-toolbar-sep{width:1px;height:18px;background:var(--border)}.go-linkbtn{border:none;background:none;padding:0;font-size:var(--text-sm);color:var(--accent);cursor:pointer}.go-linkbtn:hover{text-decoration:underline}.go-warnings{display:flex;flex-direction:column;gap:var(--sp-2);margin-top:var(--sp-4)}.go-warning{display:flex;align-items:center;gap:var(--sp-3);padding:var(--sp-2) var(--sp-3);background:var(--red-100);border-radius:var(--radius-sm);font-size:var(--text-sm)}.go-bldg-letter{display:inline-grid;place-items:center;width:18px;height:18px;margin-left:var(--sp-2);border-radius:3px;background:var(--green-100);color:var(--green-900);font-size:var(--text-xs);font-weight:700}.go-project-total td{border-top:2px solid var(--border-strong);background:var(--green-050)}.go-excluded{color:var(--amber-600);font-weight:600}.go-varies,.go-reason{margin-left:var(--sp-2)}.go-reason:first-child{margin-left:0}.go-reason-tags{display:flex;gap:var(--sp-2);flex-wrap:wrap}.go-skipped{margin-top:var(--sp-5)}.go-toggle{border:none;background:none;padding:0 var(--sp-1) 0 0;width:18px;color:var(--text-faint);cursor:pointer;font-size:var(--text-xs)}.go-type-row td{cursor:default}.go-slice-row td{font-size:var(--text-sm);color:var(--text-muted)}.go-slice-label{padding-left:var(--sp-4)}.go-order-code{font-weight:600;color:var(--text)}.go-part{font-variant-numeric:tabular-nums;letter-spacing:.01em}.go-picker{position:relative;display:inline-block}.go-picker-trigger{display:inline-flex;align-items:center;justify-content:space-between;gap:var(--sp-1);width:100%;padding:var(--sp-1) var(--sp-2);border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg-surface);font-size:var(--text-sm);color:var(--text);text-align:left;cursor:pointer}.go-picker-trigger:hover{border-color:var(--border-strong)}.go-picker-trigger.is-overridden{border-color:var(--accent);background:var(--green-050);font-weight:600}.go-picker-value{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.go-picker-caret{flex:none;font-size:var(--text-xs);color:var(--text-faint)}.go-picker-menu{position:absolute;top:calc(100% + 4px);left:0;z-index:20;min-width:100%;max-height:280px;overflow-y:auto;padding:var(--sp-1);background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-lg)}.go-picker-option,.go-picker-reset{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-3);width:100%;padding:var(--sp-1) var(--sp-2);border:0;border-radius:var(--radius-sm);background:none;font-family:inherit;font-size:var(--text-sm);color:var(--text);text-align:left;white-space:nowrap;cursor:pointer}.go-picker-option:hover,.go-picker-reset:hover{background:var(--green-050)}.go-picker-option.is-selected{font-weight:700}.go-picker-reset{padding-bottom:var(--sp-2);margin-bottom:var(--sp-1);border-bottom:1px solid var(--ink-100);border-radius:0;color:var(--accent)}.go-picker-hint{font-variant-numeric:tabular-nums;color:var(--text-faint)}.go-order-summary{display:flex;flex-wrap:wrap;align-items:baseline;gap:var(--sp-4);padding:var(--sp-3);margin-bottom:var(--sp-4);background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius-sm);font-size:var(--text-sm);color:var(--text-muted);font-variant-numeric:tabular-nums}.go-order-summary strong{color:var(--text)}.go-order-customer{margin-left:auto}.go-pending{display:flex;align-items:flex-start;gap:var(--sp-3);padding:var(--sp-3);margin-bottom:var(--sp-4);background:var(--amber-100);border:1px solid var(--amber-600);border-radius:var(--radius-sm);font-size:var(--text-sm);color:var(--text);line-height:1.45}.go-vendor-wrap{margin-bottom:var(--sp-5)}.go-vendor{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius-sm);overflow:hidden}.go-vendor-head{display:flex;align-items:flex-start;gap:var(--sp-3);padding:var(--sp-3);border-bottom:1px solid var(--border)}.go-vendor-head h2{margin:0;font-size:var(--text-md);color:var(--text)}.go-vendor-sub{margin-top:2px;font-size:var(--text-sm);color:var(--text-muted);font-variant-numeric:tabular-nums}.go-vendor-actions{margin-left:auto;display:flex;align-items:center;gap:var(--sp-2);white-space:nowrap}.go-copy-failed{font-size:var(--text-sm);color:var(--red-600)}.go-po-note-row td{background:var(--bg-sunken);color:var(--text-muted);font-style:italic}.go-po-subline{color:var(--text-muted);font-variant-numeric:tabular-nums}.go-empty-section{margin:0;padding:var(--sp-3);font-size:var(--text-sm);color:var(--text-muted);line-height:1.5}.go-empty-section code{font-family:var(--font-mono);font-size:var(--text-xs);padding:1px 4px;background:var(--bg-sunken);border:1px solid var(--border);border-radius:var(--radius-sm)}.go-note{padding:var(--sp-3);border-top:1px solid var(--border);background:var(--bg-sunken)}.go-note-label{display:block;font-size:var(--text-sm);font-weight:600;color:var(--text);margin-bottom:var(--sp-2)}.go-note-hint{display:block;font-weight:400;font-size:var(--text-xs);color:var(--text-faint)}.go-note-box{display:block;width:100%;box-sizing:border-box;padding:var(--sp-2);font-family:var(--font-sans);font-size:var(--text-sm);color:var(--text);background:var(--bg-surface);border:1px solid var(--border-strong);border-radius:var(--radius-sm);resize:vertical}.go-note-box:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 2px var(--accent-soft)}.go-note-actions{display:flex;align-items:center;justify-content:flex-start;gap:var(--sp-3);margin-top:var(--sp-2)}.go-vendorpick{display:flex;flex-wrap:wrap;align-items:center;gap:var(--sp-2);padding:var(--sp-3);border-bottom:1px solid var(--border);background:var(--bg-sunken)}.go-vendorpick-label{font-size:var(--text-sm);font-weight:600;color:var(--text)}.go-vendorpick-select{font-size:var(--text-sm);padding:var(--sp-1) var(--sp-2);color:var(--text);background:var(--bg-surface);border:1px solid var(--border-strong);border-radius:var(--radius-sm);max-width:100%}.go-vendorpick-select:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 2px var(--accent-soft)}.go-vendorpick-input{font-family:var(--font-mono);font-size:var(--text-sm);padding:var(--sp-1) var(--sp-2);min-width:280px;flex:1 1 280px;color:var(--text);background:var(--bg-surface);border:1px solid var(--border-strong);border-radius:var(--radius-sm)}.go-vendorpick-input:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 2px var(--accent-soft)}.go-vendorpick-hint{font-size:var(--text-xs);color:var(--text-faint)}.go-detail-line{font-variant-numeric:tabular-nums;white-space:nowrap}.go-detail-line+.go-detail-line{margin-top:2px}.go-detail{padding:var(--sp-2) 0 0}.go-detail>.scroll-x{margin-top:var(--sp-2);border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg-surface)}.go-scope-basis{margin:0 0 var(--sp-5);font-size:var(--text-sm);color:var(--text-muted);line-height:1.5}.go-reconcile-head{display:flex;align-items:center;gap:var(--sp-3);flex-wrap:wrap;padding:var(--sp-3)}.go-reconcile-toggle{display:flex;align-items:center;gap:var(--sp-2);border:none;background:none;padding:0;font-family:inherit;font-size:var(--text-base);font-weight:600;color:var(--text);cursor:pointer}.go-reconcile-summary{margin-left:auto;font-size:var(--text-sm);color:var(--text-muted);font-variant-numeric:tabular-nums}.go-reconcile-body{border-top:1px solid var(--border)}@media(max-width:860px){.go-vendor-head{flex-wrap:wrap}.go-vendor-actions,.go-order-customer,.go-reconcile-summary{margin-left:0}}.go-vendor-basis{margin-top:2px;font-size:var(--text-xs);color:var(--text-faint);font-variant-numeric:tabular-nums}.go-ul-standard{display:flex;align-items:center;flex-wrap:wrap;gap:var(--sp-2);padding:0 var(--sp-4) var(--sp-3)}.go-ul-label{font-size:var(--text-sm);color:var(--text-muted)}.go-ul-mixed{font-size:var(--text-xs);color:var(--amber-600)}.go-ul-busy{font-size:var(--text-xs);color:var(--text-faint)}.go-ul-error{font-size:var(--text-xs);color:var(--red-600)}.na-filterbar{display:flex;align-items:center;gap:var(--sp-3);margin:0 0 var(--sp-3)}.na-clear-all,.na-clear-inline{border:0;background:none;padding:0;color:var(--green-700);font:inherit;font-weight:600;text-decoration:underline;cursor:pointer}.na-head{position:relative;display:flex;align-items:center;gap:var(--sp-1)}.na-head-sort{display:inline-flex;align-items:center;gap:var(--sp-1);min-height:36px;border:0;background:none;padding:0;color:inherit;font:inherit;text-transform:inherit;letter-spacing:inherit;cursor:pointer}.na-head-caret{color:var(--text-faint);font-size:.7em}.na-head-sort[aria-label]:hover .na-head-caret{color:var(--text-muted)}.na-head-filter{display:inline-flex;align-items:center;gap:2px;min-width:28px;min-height:36px;justify-content:center;border:1px solid transparent;border-radius:var(--radius-sm, 4px);background:none;color:var(--text-faint);font:inherit;cursor:pointer}.na-head-filter-on{border-color:var(--green-700);background:var(--green-050);color:var(--green-800)}.na-head-filter-n{font-size:var(--text-xs);font-weight:700}.na-colfilter{position:absolute;top:calc(100% + var(--sp-1));z-index:25;width:max-content;min-width:11rem;max-width:min(18rem,calc(100vw - 2 * var(--sp-4)));max-height:50vh;overflow-y:auto;padding:var(--sp-2);border:1px solid var(--border-strong);border-radius:var(--radius);background:var(--bg-surface);box-shadow:var(--shadow-lg);text-transform:none;letter-spacing:normal;font-weight:400}.na-colfilter-left{left:0;right:auto}.na-colfilter-right{left:auto;right:0}.na-colfilter-row{display:flex;align-items:center;gap:var(--sp-2);min-height:40px;padding:0 var(--sp-1);cursor:pointer}.na-colfilter-label{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.na-colfilter-n{color:var(--text-muted);font-size:var(--text-xs)}.na-colfilter-clear{width:100%;min-height:36px;margin-top:var(--sp-1);border:0;border-top:1px solid var(--border);background:none;color:var(--green-700);font:inherit;font-weight:600;cursor:pointer}.na-colfilter-clear:disabled{color:var(--text-faint);cursor:default}.na-empty{margin:var(--sp-4) 0 0}tr[data-bucket]>td:first-child{border-left-width:3px;border-left-style:solid}tr[data-bucket=undecided]>td:first-child{border-left-color:transparent}tr[data-bucket=included]>td:first-child{border-left-color:var(--green-700)}tr[data-bucket=excluded]>td:first-child{border-left-color:var(--red-600)}tr[data-bucket=unorderable]>td:first-child{border-left-color:var(--amber-600)}.na-decision{width:100%;min-height:44px;padding:0 var(--sp-2);border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg-surface);color:var(--ink-900);font:inherit;font-size:var(--text-sm)}.na-decision-included{border-color:var(--green-700);background:var(--green-050);color:var(--green-900);font-weight:600}.na-decision-excluded{border-color:var(--red-600);background:var(--red-100);color:var(--red-600);font-weight:600}.na-decision:disabled{opacity:.6}.ov-stack{display:flex;flex-direction:column;gap:var(--sp-5)}.ov-phases{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:var(--sp-4);padding:var(--sp-4)}.ov-phase-label{font-size:var(--text-sm);font-weight:600;margin-bottom:var(--sp-2)}.ov-phase-bar{height:6px;border-radius:999px;background:var(--ink-100);overflow:hidden}.ov-phase-fill{height:100%;background:var(--accent);border-radius:999px}.ov-phase-pending .ov-phase-bar{background:transparent;border:1px dashed var(--border-strong)}.ov-phase-pending .ov-phase-label{color:var(--text-muted);font-weight:500}.ov-phase-detail{margin-top:var(--sp-2);font-size:var(--text-xs);color:var(--text-faint)}.ov-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:var(--sp-4)}.ov-of{font-size:var(--text-md);font-weight:500;color:var(--text-faint)}.ov-progress{height:4px;margin-top:var(--sp-2);background:var(--ink-100);border-radius:999px;overflow:hidden}.ov-progress-fill{height:100%;background:var(--accent);border-radius:999px}.ov-lead{margin:0;padding:var(--sp-3) var(--sp-4);border-bottom:1px solid var(--border);color:var(--text-muted);font-size:var(--text-base)}.ov-lead strong{color:var(--text);font-weight:600}.ov-letter{display:inline-grid;place-items:center;width:18px;height:18px;margin-left:var(--sp-2);vertical-align:middle;border-radius:3px;background:var(--green-100);color:var(--green-900);font-size:var(--text-xs);font-weight:700}.ov-chips{display:flex;flex-wrap:wrap;gap:var(--sp-2)}.ov-group-sub{margin-left:var(--sp-2);color:var(--text-faint);font-size:var(--text-xs);font-weight:500;text-transform:uppercase;letter-spacing:.05em}.ov-room{display:inline-block;padding-left:var(--sp-3)}.ov-reserved{display:flex;gap:var(--sp-4);align-items:flex-start;max-width:620px}.ov-reserved-mark{flex:none;width:36px;height:36px;border-radius:var(--radius);border:2px dashed var(--border-strong);background:var(--bg-sunken)}.ov-reserved h3{margin-bottom:var(--sp-1);font-size:var(--text-md)}.ov-reserved p{margin:0;color:var(--text-muted);line-height:1.55}.st-time{display:inline-flex;flex-direction:column;align-items:flex-start;gap:2px}.st-time-input{width:6.5rem;padding:2px var(--sp-2);border:1px solid transparent;border-radius:var(--radius-sm);background:transparent;font-size:var(--text-sm);font-variant-numeric:tabular-nums;text-align:left}.st-time-input:hover:not(:disabled),.st-time-input:focus{border-color:var(--border-strong);background:var(--bg-surface)}.st-time-input:focus{outline:2px solid var(--accent);outline-offset:0}.st-time-untimed .st-time-input::placeholder{color:var(--amber-600);font-weight:500}.st-time-untimed .st-time-input{border-color:var(--amber-100);background:var(--amber-100)}.st-time-input.st-time-bad{border-color:var(--red-600);background:var(--red-100)}.st-time-error{color:var(--red-600);font-size:var(--text-xs)}.st-time-per{color:var(--text-muted);font-size:var(--text-xs)}.sc-levels{display:inline-flex;border:1px solid var(--border);border-radius:var(--radius-sm);overflow:hidden}.sc-level{padding:1px var(--sp-3);border:0;border-right:1px solid var(--border);background:var(--bg-surface);color:var(--text-muted);font:inherit;font-size:var(--text-xs);cursor:pointer}.sc-level:last-child{border-right:0}.sc-level:hover:not(:disabled):not(.sc-level-on){background:var(--green-050);color:var(--accent)}.sc-level-on{background:var(--accent);color:var(--white);font-weight:600}.sc-level:disabled{cursor:default;opacity:.6}.sc-add-row td{border-top:1px solid var(--border)}.sc-note-head{display:flex;align-items:center;gap:var(--sp-2);margin:0 0 var(--sp-2);font-size:var(--text-base)}.sc-note{margin:0;max-width:68ch;color:var(--text-muted);font-size:var(--text-sm);line-height:1.5}.sc-toggle{display:inline-grid;place-items:center;cursor:pointer}.sc-toggle input{cursor:pointer}.sc-toggle-off,.sc-toggle-off input{cursor:not-allowed;opacity:.35}.sc-empty{display:flex;flex-direction:column;align-items:flex-start;gap:var(--sp-3);padding:var(--sp-4)}.sc-untimed{color:var(--amber-600);font-weight:500}.st-form{display:grid;gap:var(--sp-4);max-width:720px}.st-chips{display:flex;flex-wrap:wrap;gap:var(--sp-2)}.st-split{display:flex;gap:var(--sp-2);align-items:center}.st-inches{width:5.5rem;text-align:right;font-variant-numeric:tabular-nums}.st-sixteenths{width:6.5rem;flex:0 0 auto}.st-unit{color:var(--text-muted);font-variant-numeric:tabular-nums}.st-weighing{display:grid;gap:var(--sp-2);padding:var(--sp-3);border:1px solid var(--border);border-radius:var(--radius);background:var(--bg-sunken)}.st-weighing-row{display:flex;flex-wrap:wrap;gap:var(--sp-4)}.field-inline{max-width:8rem}.st-actions{display:flex;align-items:center;gap:var(--sp-3)}.st-hint{margin:var(--sp-2) 0 0;font-size:var(--text-sm);color:var(--ink-500);line-height:1.5}.st-warn{font-size:var(--text-sm);color:var(--amber-600)}.st-linkbtn,.st-namebtn{background:none;border:none;padding:0;font:inherit;color:var(--green-600);cursor:pointer;text-align:left}.st-linkbtn:hover,.st-namebtn:hover{text-decoration:underline}.st-namebtn{font-weight:600;color:var(--ink-900)}.st-partsbtn{border:0;background:none;padding:var(--sp-1) var(--sp-2);font:inherit;font-size:var(--text-sm);color:var(--accent);cursor:pointer;text-decoration:underline}.style-parts{padding:var(--sp-4);background:var(--bg-sunken);position:sticky;left:0}.style-parts-head h3{font-size:var(--text-md)}.style-parts-head p{margin:var(--sp-1) 0 var(--sp-3);font-size:var(--text-sm)}.style-parts-table{width:100%;table-layout:fixed;max-width:min(960px,calc(100vw - 5rem));border-collapse:collapse}.style-parts-table .parts-col-name{width:11rem}.style-parts-table .parts-col-number{width:8rem}.style-parts-table th{text-align:left;font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted);padding-bottom:var(--sp-2)}.style-parts-table .num-col{text-align:right;width:7rem}.style-parts-table .parts-col-remove{width:2.5rem}.style-parts-table td .input{min-width:0;text-overflow:ellipsis}.style-parts-table td{padding:var(--sp-1) var(--sp-2) var(--sp-1) 0;vertical-align:middle}.input-qty{width:72px;text-align:right}.style-parts-remove{border:0;background:none;padding:var(--sp-2);font:inherit;color:var(--text-faint);cursor:pointer}.style-parts-remove:hover{color:var(--red-600)}.style-parts-actions{display:flex;align-items:center;gap:var(--sp-3);margin-top:var(--sp-3)}.glass-conv-intro{margin:0 0 var(--sp-4);line-height:1.5}.glass-conv-row{display:flex;flex-wrap:wrap;gap:var(--sp-4)}.glass-conv-row .field{flex:1 1 22rem;min-width:0}.glass-conv-active{margin:var(--sp-4) 0 0;color:var(--ink-700)}.glass-conv-note,.glass-conv-hint{margin:var(--sp-2) 0 0;font-size:var(--text-xs);color:var(--text-faint)}.glass-conv-done{margin:var(--sp-3) 0 0;color:var(--accent)}.glass-conv-confirm{margin-top:var(--sp-4);padding:var(--sp-4);border:1px solid var(--amber-600);border-radius:var(--radius);background:var(--amber-100)}.glass-conv-confirm p{margin:0 0 var(--sp-4);line-height:1.5}.glass-conv-actions{display:flex;align-items:center;gap:var(--sp-3);margin-top:var(--sp-4)}.sd-toolbar{display:flex;align-items:center;gap:var(--sp-2);flex-wrap:wrap;padding:var(--sp-2) var(--sp-3);border-bottom:1px solid var(--border);background:var(--bg-surface)}.sd-picker{position:relative;display:inline-block}.sd-select{display:inline-flex;align-items:center;gap:var(--sp-1);padding:var(--sp-1) var(--sp-2);border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg-surface);font-size:var(--text-sm);color:var(--text);cursor:pointer}.sd-select:hover{border-color:var(--border-strong)}.sd-select-active{border-color:var(--accent);background:var(--green-050);font-weight:600}.sd-select-caret{font-size:var(--text-xs);color:var(--text-faint)}.sd-picker-menu{position:absolute;top:calc(100% + 4px);left:0;z-index:20;min-width:170px;max-height:280px;overflow-y:auto;padding:var(--sp-1);background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-lg)}.sd-picker-head{display:flex;align-items:center;gap:var(--sp-2);padding:var(--sp-1) var(--sp-2) var(--sp-2);border-bottom:1px solid var(--ink-100);margin-bottom:var(--sp-1)}.sd-linkbtn:disabled{color:var(--text-faint);cursor:default;text-decoration:none}.sd-picker-item{display:flex;align-items:center;gap:var(--sp-2);padding:var(--sp-1) var(--sp-2);border-radius:var(--radius-sm);font-size:var(--text-sm);white-space:nowrap;cursor:pointer}.sd-picker-item:hover{background:var(--green-050)}.sd-picker-item input{accent-color:var(--accent);margin:0}.sd-applied{display:flex;align-items:center;gap:var(--sp-1);flex-wrap:wrap;padding:var(--sp-2) var(--sp-3);border-bottom:1px solid var(--border);background:var(--green-050)}.sd-chip-x{margin-left:var(--sp-1);font-weight:700;opacity:.6}.sd-chip:hover .sd-chip-x{opacity:1}.sd-chip{padding:2px var(--sp-2);border:1px solid var(--border);border-radius:999px;background:var(--bg-surface);font-size:var(--text-sm);color:var(--text-muted);cursor:pointer}.sd-chip:hover{border-color:var(--border-strong);color:var(--text)}.sd-chip-on{border-color:var(--accent);background:var(--green-050);color:var(--green-900);font-weight:600}.sd-linkbtn{border:none;background:none;padding:2px var(--sp-1);font-size:var(--text-sm);color:var(--accent);cursor:pointer}.sd-linkbtn:hover{text-decoration:underline}.sd-toolbar-sep{width:1px;height:18px;background:var(--border)}.sd-toolbar-actions{margin-left:auto;display:flex;align-items:center;gap:var(--sp-2);white-space:nowrap}.sd-summary{font-size:var(--text-sm);color:var(--text-muted);white-space:nowrap}.sd-scroll{--sd-thead-h: 31px;overflow:auto;max-height:calc(100vh - 15rem)}.sd-scroll thead th{z-index:3}.sd-bldg-row td{position:sticky;top:var(--sd-thead-h);z-index:2;height:38px;background:var(--green-050);border-top:2px solid var(--border-strong);border-bottom:1px solid var(--border);font-size:var(--text-md);font-weight:700;color:var(--green-900);cursor:pointer}.sd-unit-row td{cursor:pointer}.sd-bldg-name{margin-right:var(--sp-1)}.sd-bldg-letter{display:inline-grid;place-items:center;width:18px;height:18px;margin-right:var(--sp-1);border-radius:3px;background:var(--green-100);color:var(--green-900);font-size:var(--text-xs);font-weight:700}.sd-toggle{border:none;background:none;padding:0 var(--sp-1) 0 0;width:18px;color:var(--text-faint);cursor:pointer;font-size:var(--text-xs)}.sd-count{margin-left:var(--sp-2);font-size:var(--text-sm);font-weight:400;color:var(--text-muted)}.sd-project-total td{border-top:2px solid var(--border-strong)}.sd-scope{display:inline-block;padding:0 var(--sp-1);margin-right:2px;border:1px solid var(--border);border-radius:var(--radius-sm);font-size:var(--text-xs);color:var(--text-muted)}.sd-row-edit{cursor:pointer}.sd-row-edit:hover td{background:var(--green-050)}.sd-row-edit:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}.sd-add-row td{background:var(--bg-surface);border-bottom:1px solid var(--border)}.sd-add-indent{display:inline-block;padding-left:var(--sp-4)}.sd-add-indent-2{padding-left:var(--sp-6)}.sd-add{padding:1px var(--sp-2);border:1px dashed var(--border-strong);border-radius:var(--radius-sm);background:none;color:var(--text-muted);font:inherit;font-size:var(--text-xs);cursor:pointer}.sd-add:hover{border-color:var(--accent);border-style:solid;color:var(--accent)}.sd-add-plus{font-weight:700}.sd-add-form{display:inline-flex;align-items:center;gap:var(--sp-2)}.sd-add-input{padding:1px var(--sp-2);border:1px solid var(--accent);border-radius:var(--radius-sm);font:inherit;font-size:var(--text-sm)}.sd-add-go,.sd-add-cancel{padding:1px var(--sp-2);border-radius:var(--radius-sm);font:inherit;font-size:var(--text-xs);cursor:pointer}.sd-add-go{border:1px solid var(--accent);background:var(--accent);color:var(--white)}.sd-add-go:disabled{opacity:.5;cursor:default}.sd-add-cancel{border:1px solid var(--border);background:none;color:var(--text-muted)}.sd-add-error,.sd-del-error{color:var(--red-600);font-size:var(--text-xs)}.sd-del-error{cursor:pointer}.sd-empty-room td{color:var(--text-faint);font-style:italic}.sd-del{margin-left:var(--sp-2);padding:0 var(--sp-1);border:0;border-radius:var(--radius-sm);background:none;color:var(--text-faint);font:inherit;font-size:var(--text-xs);cursor:pointer}.sd-del:hover{background:var(--red-100);color:var(--red-600)}.sd-head-actions{display:flex;align-items:baseline;gap:var(--sp-3);flex:none}.sd-rename{display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;margin:-14px 0 -14px var(--sp-1);padding:0;border:0;border-radius:var(--radius-sm);background:none;color:var(--text-muted);font:inherit;font-size:var(--text-base);cursor:pointer}.sd-rename:hover{background:var(--ink-050);color:var(--ink-700)}.sd-rename-form{display:inline-flex;align-items:center;gap:var(--sp-1);margin-left:var(--sp-2);min-width:0}.sd-del-confirm{display:inline-flex;gap:var(--sp-1);margin-left:var(--sp-2)}.sd-del-yes,.sd-del-no{padding:0 var(--sp-2);border-radius:var(--radius-sm);font:inherit;font-size:var(--text-xs);cursor:pointer}.sd-del-yes{border:1px solid var(--red-600);background:var(--red-600);color:var(--white)}.sd-del-no{border:1px solid var(--border);background:none;color:var(--text-muted)}.sd-empty-project{display:grid;justify-items:center;gap:var(--sp-3);padding-bottom:var(--sp-5)}.sd-drawer-scrim{position:fixed;top:0;right:0;bottom:0;left:0;z-index:40;background:#14181b47}.sd-drawer{position:fixed;top:0;right:0;bottom:0;z-index:41;display:flex;flex-direction:column;width:min(30rem,100vw);background:var(--bg-surface);border-left:1px solid var(--border);box-shadow:var(--shadow-lg)}.sd-drawer-head{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--sp-3);padding:var(--sp-4) var(--sp-5);border-bottom:1px solid var(--border)}.sd-drawer-head h2{display:flex;align-items:center;gap:var(--sp-2);margin:0;font-size:var(--text-lg)}.sd-drawer-eyebrow{font-size:var(--text-xs);font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--text-muted)}.sd-drawer-type{padding:1px var(--sp-2);border-radius:var(--radius-sm);background:var(--green-100);color:var(--green-900);font-size:var(--text-sm);font-weight:600}.sd-drawer-x{border:0;background:none;color:var(--text-muted);font-size:var(--text-lg);line-height:1;cursor:pointer}.sd-drawer-body{flex:1;overflow-y:auto;padding:var(--sp-5)}.sd-drawer-sec+.sd-drawer-sec{margin-top:var(--sp-5);padding-top:var(--sp-5);border-top:1px solid var(--border)}.sd-drawer-sec h3{display:flex;align-items:center;gap:var(--sp-2);margin:0 0 var(--sp-1);font-size:var(--text-base)}.sd-drawer-hint{margin:0 0 var(--sp-3);color:var(--text-muted);font-size:var(--text-sm)}.sd-drawer-ok{margin-bottom:var(--sp-4);padding:var(--sp-2) var(--sp-3);border-radius:var(--radius-sm);background:var(--green-100);color:var(--green-900);font-size:var(--text-sm)}.sd-drawer-block{margin-bottom:var(--sp-3);padding:var(--sp-3);border-left:3px solid var(--red-600);border-radius:var(--radius-sm);background:var(--red-100);font-size:var(--text-sm)}.sd-drawer-block p{margin:var(--sp-1) 0 0}.sd-drawer-fields{margin:0 0 var(--sp-3);padding:0;border:0}.sd-drawer-fields[disabled]{opacity:.5}.sd-drawer-dlo{display:grid;grid-template-columns:1fr 1fr;gap:var(--sp-3)}.sd-drawer-dlo label,.sd-drawer-style,.sd-drawer-notes{display:block;font-size:var(--text-sm);color:var(--text-muted)}.sd-drawer-style{margin-bottom:var(--sp-3)}.sd-drawer-style select{display:block;width:100%;margin-top:var(--sp-1)}.sd-drawer-measure{display:flex;gap:var(--sp-1);margin-top:var(--sp-1)}.sd-drawer-measure input{width:4.5rem}.sd-drawer-measure input,.sd-drawer-measure select,.sd-drawer-style select,.sd-drawer-notes textarea{padding:var(--sp-1) var(--sp-2);border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--bg-surface);color:var(--text);font:inherit;font-size:var(--text-base)}.sd-drawer-notes{margin-top:var(--sp-3)}.sd-drawer-notes textarea{display:block;width:100%;margin-top:var(--sp-1);resize:vertical}.sd-drawer-derived{display:flex;flex-wrap:wrap;gap:var(--sp-4);margin:var(--sp-3) 0;padding:var(--sp-2) var(--sp-3);border-radius:var(--radius-sm);background:var(--bg-sunken);color:var(--text-muted);font-size:var(--text-sm)}.sd-drawer-preview{align-items:center;background:var(--green-050);border:1px solid var(--green-100);color:var(--green-900)}.sd-preview-match,.sd-preview-new{padding:1px var(--sp-2);border-radius:var(--radius-sm);font-weight:600}.sd-preview-match{background:var(--green-100);color:var(--green-900)}.sd-preview-new{background:var(--amber-100);color:var(--amber-600)}.sd-drawer-checks{display:flex;flex-wrap:wrap;gap:var(--sp-2) var(--sp-4);margin:var(--sp-3) 0}.sd-drawer-check{display:flex;align-items:center;gap:var(--sp-2);font-size:var(--text-base);cursor:pointer}.sd-drawer-scope-level{margin-left:var(--sp-1);padding:0 var(--sp-1);border-radius:var(--radius-sm);background:var(--amber-100);color:var(--amber-600);font-size:var(--text-xs)}.sd-drawer-confirm{padding:var(--sp-3);border-left:3px solid var(--amber-600);border-radius:var(--radius-sm);background:var(--amber-100);font-size:var(--text-sm)}.sd-drawer-confirm p{margin:0 0 var(--sp-3)}.sd-drawer-confirm-row{display:flex;align-items:center;gap:var(--sp-3)}.sd-drawer-foot{margin:var(--sp-5) 0 0;color:var(--text-faint);font-size:var(--text-xs)}.wl-toolbar{display:flex;align-items:center;gap:var(--sp-2);flex-wrap:wrap;padding:var(--sp-2) var(--sp-3);border-bottom:1px solid var(--border);background:var(--bg-surface)}.wl-picker{position:relative;display:inline-block}.wl-select{display:inline-flex;align-items:center;gap:var(--sp-1);padding:var(--sp-1) var(--sp-2);border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg-surface);font-size:var(--text-sm);color:var(--text);cursor:pointer}.wl-select:hover{border-color:var(--border-strong)}.wl-select-active{border-color:var(--accent);background:var(--green-050);font-weight:600}.wl-select-caret{font-size:var(--text-xs);color:var(--text-faint)}.wl-picker-menu{position:absolute;top:calc(100% + 4px);left:0;z-index:20;min-width:170px;max-height:280px;overflow-y:auto;padding:var(--sp-1);background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-lg)}.wl-picker-head{display:flex;align-items:center;gap:var(--sp-2);padding:var(--sp-1) var(--sp-2) var(--sp-2);border-bottom:1px solid var(--ink-100);margin-bottom:var(--sp-1)}.wl-picker-item{display:flex;align-items:center;gap:var(--sp-2);padding:var(--sp-1) var(--sp-2);border-radius:var(--radius-sm);font-size:var(--text-sm);white-space:nowrap;cursor:pointer}.wl-picker-item:hover{background:var(--green-050)}.wl-picker-item input{accent-color:var(--accent);margin:0}.wl-applied{display:flex;align-items:center;gap:var(--sp-1);flex-wrap:wrap;padding:var(--sp-2) var(--sp-3);border-bottom:1px solid var(--border);background:var(--green-050)}.wl-chip{padding:2px var(--sp-2);border:1px solid var(--border);border-radius:999px;background:var(--bg-surface);font-size:var(--text-sm);color:var(--text-muted);cursor:pointer}.wl-chip:hover{border-color:var(--border-strong);color:var(--text)}.wl-chip-on{border-color:var(--accent);background:var(--green-050);color:var(--green-900);font-weight:600}.wl-chip-x{margin-left:var(--sp-1);font-weight:700;opacity:.6}.wl-chip:hover .wl-chip-x{opacity:1}.wl-linkbtn{border:none;background:none;padding:2px var(--sp-1);font-size:var(--text-sm);color:var(--accent);cursor:pointer}.wl-linkbtn:hover{text-decoration:underline}.wl-linkbtn:disabled{color:var(--text-faint);cursor:default;text-decoration:none}.wl-toolbar-sep{width:1px;height:18px;background:var(--border)}.wl-toolbar-actions{margin-left:auto;display:flex;align-items:center;gap:var(--sp-2);white-space:nowrap}.wl-summary{font-size:var(--text-sm);color:var(--text-muted);white-space:nowrap}.wl-progress{display:inline-flex;align-items:center;gap:var(--sp-2)}.wl-progress-track{width:90px;height:6px;border-radius:999px;background:var(--ink-100);overflow:hidden}.wl-progress-fill{height:100%;background:var(--accent);transition:width .16s ease}.wl-warnings{padding:var(--sp-2) var(--sp-3);border-bottom:1px solid var(--border);background:var(--amber-100);font-size:var(--text-sm);color:var(--text)}.wl-warnings ul{margin:0;padding-left:var(--sp-4)}.wl-scroll{--wl-thead-h: 31px;overflow:auto;max-height:calc(100vh - 16rem)}.wl-scroll thead th{z-index:3}.wl-bldg-row td{position:sticky;top:var(--wl-thead-h);z-index:2;height:38px;background:var(--green-050);border-top:2px solid var(--border-strong);border-bottom:1px solid var(--border);font-size:var(--text-md);font-weight:700;color:var(--green-900);cursor:pointer}.wl-unit-row td{cursor:pointer}.wl-bldg-name{margin-right:var(--sp-1)}.wl-bldg-letter{display:inline-grid;place-items:center;width:18px;height:18px;margin-right:var(--sp-1);border-radius:3px;background:var(--green-100);color:var(--green-900);font-size:var(--text-xs);font-weight:700}.wl-toggle{border:none;background:none;padding:0 var(--sp-1) 0 0;width:18px;color:var(--text-faint);cursor:pointer;font-size:var(--text-xs)}.wl-count{margin-left:var(--sp-2);font-size:var(--text-sm);font-weight:400;color:var(--text-muted)}.wl-project-total td{border-top:2px solid var(--border-strong)}.room-label{padding-left:var(--sp-3);display:inline-block}.wl-scope{display:inline-block;padding:0 var(--sp-1);margin-right:2px;border:1px solid var(--border);border-radius:var(--radius-sm);font-size:var(--text-xs);color:var(--text-muted);background:none;cursor:pointer}.wl-scope:hover{border-color:var(--accent);color:var(--green-900)}.wl-scope-done{border-color:var(--accent);background:var(--green-100);color:var(--green-900);font-weight:600}.wl-scope-extra{border-style:dashed;border-color:var(--accent);background:var(--green-050);color:var(--green-900)}.wl-scope[disabled]{cursor:default;opacity:.55}.wl-status{display:inline-flex;gap:2px}.wl-status-btn{width:24px;height:22px;display:grid;place-items:center;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg-surface);font-size:var(--text-xs);color:var(--text-faint);cursor:pointer}.wl-status-btn:hover{border-color:var(--border-strong);color:var(--text)}.wl-status-done{border-color:var(--accent);background:var(--accent);color:#fff;font-weight:700}.wl-status-unable{border-color:var(--red-600);background:var(--red-600);color:#fff;font-weight:700}.wl-when{font-size:var(--text-xs);color:var(--text-muted);white-space:nowrap}.wl-excluded td{background:var(--ink-050);color:var(--text-faint)}.wl-saving{opacity:.55}.wl-cant{margin-left:var(--sp-2);width:22px;height:22px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg-surface);font-size:var(--text-xs);color:var(--text-faint);cursor:pointer}.wl-cant:hover{border-color:var(--red-600);color:var(--red-600)}.wl-cant-on{border-color:var(--red-600);background:var(--red-600);color:#fff;font-weight:700}.wl-room-done{margin-left:var(--sp-1);color:var(--accent);font-weight:800}.wl-reason{display:inline-block;margin-right:var(--sp-1);padding:0 var(--sp-1);border-radius:var(--radius-sm);background:var(--red-100);color:var(--red-600);font-size:var(--text-xs);font-weight:600}.wl-reason-survey{background:var(--amber-100);color:var(--amber-600)}.wl-held-notice{margin:0 0 var(--sp-3);padding:var(--sp-2) var(--sp-3);border:1px solid var(--amber-600);border-radius:var(--radius-sm);background:var(--amber-100);color:var(--amber-600);font-size:var(--text-sm)}.app{display:grid;grid-template-columns:var(--nav-w) 1fr;height:100%}.app-nav{display:flex;flex-direction:column;background:var(--green-900);color:var(--ink-100);padding:var(--sp-4) 0;overflow-y:auto}.app-brand{display:flex;align-items:center;gap:var(--sp-3);padding:0 var(--sp-4) var(--sp-5)}.app-brand strong{display:block;font-size:var(--text-base);color:var(--white);letter-spacing:-.01em}.app-brand em{display:block;font-style:normal;font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.08em;color:var(--green-500);margin-top:1px}.app-mark{width:22px;height:26px;flex:none;border:2px solid var(--green-500);border-radius:2px;position:relative}.app-mark:before,.app-mark:after{content:"";position:absolute;background:var(--green-500)}.app-mark:before{left:0;right:0;top:50%;height:2px;transform:translateY(-50%)}.app-mark:after{top:0;bottom:0;left:50%;width:2px;transform:translate(-50%)}.nav-section{padding:0 var(--sp-4) var(--sp-3);border-bottom:1px solid rgba(255,255,255,.08);margin-bottom:var(--sp-3)}.nav-back{font-size:var(--text-xs);color:var(--green-500);display:inline-block;margin-bottom:var(--sp-2)}.nav-back:hover{color:var(--white)}.nav-project{font-size:var(--text-sm);font-weight:600;color:var(--white);line-height:1.35}.nav-list{display:flex;flex-direction:column;gap:1px;padding:0 var(--sp-2);flex:1}.nav-item{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-2);padding:var(--sp-2) var(--sp-3);border-radius:var(--radius);font-size:var(--text-base);color:var(--ink-200);cursor:pointer}.nav-item:hover{background:#ffffff12;color:var(--white)}.nav-item-active{background:var(--green-700);color:var(--white);font-weight:600}.nav-item-planned{color:#ffffff57;cursor:default}.nav-item-planned:hover{background:transparent;color:#ffffff57}.nav-item-planned .badge{background:#ffffff1a;color:#ffffff80;font-size:10px}.nav-signout{margin:auto var(--sp-2) 0;padding:var(--sp-2);background:transparent;border:1px solid rgba(255,255,255,.16);border-radius:var(--radius);color:var(--ink-300);font-size:var(--text-sm);cursor:pointer}.nav-signout:hover{background:#ffffff12;color:var(--white)}.app-nav>.nav-signout{margin:auto var(--sp-4) 0}.app-nav>.status-chip-wrap{align-self:start;margin:var(--sp-3) var(--sp-4) 0}.app-nav>.status-chip-wrap+.nav-signout{margin-top:var(--sp-3)}.app-burger{display:none;width:44px;height:44px;flex:none;align-items:center;justify-content:center;background:transparent;border:1px solid rgba(255,255,255,.16);border-radius:var(--radius);cursor:pointer}.app-burger:hover,.app-burger[aria-expanded=true]{border-color:var(--green-500)}.app-burger-bars,.app-burger-bars:before,.app-burger-bars:after{display:block;width:18px;height:2px;background:var(--white);border-radius:1px}.app-burger-bars{position:relative}.app-burger-bars:before,.app-burger-bars:after{content:"";position:absolute;left:0}.app-burger-bars:before{top:-6px}.app-burger-bars:after{top:6px}.app-main{overflow:auto;min-width:0}.page{padding:var(--sp-5) var(--sp-6);max-width:1500px}.page-head{margin-bottom:var(--sp-5)}.page-head h1{font-size:var(--text-lg)}.page-head p{margin:var(--sp-1) 0 0;color:var(--text-muted);font-size:var(--text-base)}@media(max-width:900px){.app{grid-template-columns:1fr;grid-template-rows:auto 1fr}.app-nav{position:relative;flex-direction:row;align-items:center;gap:var(--sp-3);padding:var(--sp-2) var(--sp-3);overflow:visible}.app-brand,.nav-section{padding:0;border:none;margin:0}.nav-section{flex:1;min-width:0}.nav-project{font-size:var(--text-base);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.nav-back{margin-bottom:0}.app-burger{display:inline-flex}.nav-item{white-space:nowrap;min-height:44px}.nav-list{flex-direction:row;padding:0;flex:none}.nav-projects{flex:1}.app-nav>.nav-signout{margin:0;min-height:44px}.app-nav>.status-chip-wrap+.nav-signout{margin-top:0}.app-nav>.status-chip-wrap{align-self:center;margin:0}.nav-modules{display:none;position:absolute;top:calc(100% - var(--sp-1));right:var(--sp-3);z-index:50;flex-direction:column;min-width:240px;max-width:calc(100vw - 2 * var(--sp-3));max-height:calc(100vh - 72px);overflow-y:auto;padding:var(--sp-2);background:var(--green-900);border:1px solid rgba(255,255,255,.16);border-radius:var(--radius);box-shadow:var(--shadow-lg)}.nav-modules[data-open=true]{display:flex}.nav-modules .nav-signout{margin:var(--sp-2) 0 0;min-height:44px}.page{padding:var(--sp-4)}}.survey-shell{height:100%;display:flex;flex-direction:column;background:var(--bg-app);padding:env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left)}.survey-bar{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-3);padding:var(--sp-3) var(--sp-4);background:var(--green-900);color:var(--white);flex:none}.survey-bar-crumbs{display:flex;align-items:baseline;gap:var(--sp-2);font-size:var(--text-md);min-width:0}.survey-bar-crumbs strong{font-size:var(--text-lg);font-weight:600}.survey-bar-crumbs span{color:var(--green-500)}.survey-body{flex:1;min-height:0;overflow-y:auto;padding:var(--sp-4)}.survey-footer{flex:none;padding:var(--sp-3) var(--sp-4);border-top:1px solid var(--border);background:var(--bg-surface);display:flex;gap:var(--sp-3)}.survey-tiles{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:var(--sp-3)}.survey-tile{background:var(--bg-surface);border:2px solid var(--border);border-radius:var(--radius-lg);padding:var(--sp-4);min-height:104px;display:flex;flex-direction:column;justify-content:space-between;cursor:pointer;text-align:left}.survey-tile:hover,.survey-tile:focus-visible{border-color:var(--accent)}.survey-tile-label{font-size:var(--text-xl);font-weight:700;line-height:1}.survey-tile-meta{font-size:var(--text-sm);color:var(--text-muted)}.survey-tile-filled{border-color:var(--green-500);background:var(--green-050)}.work-shell{height:100%;display:flex;flex-direction:column;background:var(--bg-app);padding:env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left)}.work-bar{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-3);padding:var(--sp-3) var(--sp-4);background:var(--ink-900);color:var(--white);flex:none}.work-bar-crumbs{display:flex;align-items:baseline;gap:var(--sp-2);font-size:var(--text-md);min-width:0}.work-bar-crumbs strong{font-size:var(--text-lg);font-weight:600}.work-bar-crumbs span{color:var(--ink-300)}.work-body{flex:1;min-height:0;overflow-y:auto;padding:var(--sp-4)}.work-footer{flex:none;padding:var(--sp-3) var(--sp-4);border-top:1px solid var(--border);background:var(--bg-surface);display:flex;gap:var(--sp-3)}.voice-status{min-height:var(--sp-5);display:flex;align-items:center;gap:var(--sp-2);font-size:var(--text-sm);color:var(--text-muted)}.voice-status-listening{color:var(--accent);font-weight:600}.voice-status-listening:before{content:"";width:var(--sp-2);height:var(--sp-2);border-radius:50%;background:var(--accent);animation:voice-pulse 1.2s ease-in-out infinite}.voice-status-error{color:var(--red-600)}.voice-heard{color:var(--text);font-style:italic}@keyframes voice-pulse{0%,to{opacity:1}50%{opacity:.3}}.sm-heading{font-size:var(--text-md);color:var(--text-muted);font-weight:600;margin-bottom:var(--sp-3)}.sm-room{font-size:var(--text-lg)!important}.sm-back{background:#ffffff24;border:none;color:var(--white);width:40px;height:40px;border-radius:var(--radius);font-size:var(--text-lg);cursor:pointer;flex:none}.sm-back:hover{background:#ffffff3d}.sm-crumb{display:inline-flex;align-items:baseline;gap:var(--sp-2)}.sm-sep{color:var(--green-600)}.sm-bar-right{display:flex;align-items:center;gap:var(--sp-3);flex:none}.sm-meta{font-size:var(--text-sm);color:var(--green-500);white-space:nowrap}.sm-exit{padding:var(--sp-2) var(--sp-3);border:1px solid rgba(255,255,255,.24);border-radius:var(--radius);background:transparent;color:var(--white);font-size:var(--text-sm);font-weight:500;cursor:pointer;white-space:nowrap}.sm-exit:hover{background:#ffffff1f}.sm-capture{display:flex;flex-direction:column;gap:var(--sp-4);padding-bottom:var(--sp-5)}.sm-capture>*{flex:none}.sm-inputs{display:flex;align-items:center;gap:var(--sp-3)}.sm-times{font-size:var(--text-xl);color:var(--text-faint);flex:none}.vd{flex:1;display:flex;align-items:stretch;gap:0;border:2px solid var(--border);border-radius:var(--radius-lg);background:var(--bg-surface);overflow:hidden;min-width:0}.vd-active{border-color:var(--accent);box-shadow:0 0 0 3px var(--green-100)}.vd-main{flex:1;display:flex;flex-direction:column;align-items:flex-start;justify-content:center;gap:0;padding:var(--sp-2) var(--sp-4);background:transparent;border:none;cursor:pointer;min-width:0}.vd-label{font-size:var(--text-xs);font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted)}.vd-value{font-size:var(--text-2xl);font-weight:700;line-height:1;letter-spacing:-.02em}.vd-empty{color:var(--ink-300)}.vd-mic{flex:none;width:60px;border:none;border-left:1px solid var(--border);background:var(--ink-050);color:var(--text-muted);cursor:pointer;display:grid;place-items:center}.vd-mic:disabled{color:var(--ink-300);cursor:default}.vd-mic:not(:disabled):hover{background:var(--green-100);color:var(--accent)}.sm-derived{background:var(--green-050);border:2px solid var(--green-500);border-radius:var(--radius-lg);padding:var(--sp-4)}.sm-derived-type{display:flex;align-items:center;gap:var(--sp-3);padding-bottom:var(--sp-3);border-bottom:1px solid var(--green-100);margin-bottom:var(--sp-3)}.sm-type-code{font-size:var(--text-2xl);font-weight:700;line-height:1;color:var(--green-900)}.sm-derived-grid{display:grid;grid-template-columns:1fr 1fr;gap:var(--sp-4)}.sm-derived-item{display:flex;flex-direction:column;gap:2px;min-width:0}.sm-derived-label{font-size:var(--text-xs);font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--green-700)}.sm-derived-value{font-size:var(--text-xl);font-weight:700;line-height:1.15;color:var(--green-900)}.sm-derived-sub{font-size:var(--text-sm);color:var(--text-muted)}.sm-saved{background:var(--bg-surface);border:1px solid var(--border);border-left:3px solid var(--green-500);border-radius:var(--radius);padding:var(--sp-3) var(--sp-4);font-size:var(--text-md);color:var(--text-muted)}.chip{padding:var(--sp-2) var(--sp-4);border:2px solid var(--border);border-radius:999px;background:var(--bg-surface);color:var(--text-muted);font-size:var(--text-md);font-weight:500;cursor:pointer;min-height:48px}.chip-on{border-color:var(--accent);background:var(--green-100);color:var(--green-900);font-weight:600}.chip-warn.chip-on{border-color:var(--amber-600);background:var(--amber-100);color:var(--amber-600)}.sm-history{border-top:1px solid var(--border);padding-top:var(--sp-3)}.sm-history-head{font-size:var(--text-xs);font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--text-faint);margin-bottom:var(--sp-2)}.sm-history-row{display:grid;grid-template-columns:32px 1fr auto;gap:var(--sp-3);padding:var(--sp-2) 0;border-bottom:1px solid var(--ink-100);font-size:var(--text-md)}.sm-history-row .num:first-child{color:var(--text-faint)}.sm-history-type{font-weight:700;color:var(--green-700)}.keypad{display:grid;grid-template-columns:230px 1fr 400px;grid-template-areas:"grid center fracs";gap:var(--sp-3);align-items:stretch}.keypad-center{grid-area:center;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;gap:var(--sp-4);min-width:0}.keypad-fracs{grid-area:fracs;display:grid;grid-template-columns:repeat(4,1fr);gap:var(--sp-2)}.frac{padding:var(--sp-2) 0;border:2px solid var(--border);border-radius:var(--radius);background:var(--bg-surface);font-size:var(--text-md);font-weight:600;font-variant-numeric:tabular-nums;cursor:pointer;min-height:56px;color:var(--text-muted)}.frac-on{border-color:var(--accent);background:var(--green-100);color:var(--green-900);font-weight:700}.keypad-grid{grid-area:grid;display:grid;grid-template-columns:repeat(3,1fr);gap:var(--sp-2)}.key{min-height:52px;border:1px solid var(--border-strong);border-radius:var(--radius);background:var(--bg-surface);font-size:var(--text-lg);font-weight:600;font-variant-numeric:tabular-nums;cursor:pointer}.key:active{background:var(--green-100)}.key-alt{background:var(--ink-050);color:var(--text-muted)}.keypad-next{width:100%;max-width:460px;min-height:60px;border:none;border-radius:var(--radius-lg);background:var(--accent);color:var(--white);font-size:var(--text-lg);font-weight:600;cursor:pointer}.keypad-next:disabled{background:var(--ink-200);color:var(--text-faint);cursor:not-allowed}.sm-calibrate{display:flex;flex-direction:column;gap:var(--sp-4)}.sm-cal-intro h2{font-size:var(--text-lg)}.sm-cal-intro p{margin:var(--sp-2) 0 0;color:var(--text-muted);font-size:var(--text-md);line-height:1.5;max-width:62ch}.sm-cal-steps{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:var(--sp-2)}.sm-cal-step{display:flex;flex-direction:column;align-items:flex-start;gap:2px;padding:var(--sp-3);border:2px solid var(--border);border-radius:var(--radius);background:var(--bg-surface);cursor:pointer;text-align:left}.sm-cal-step-on{border-color:var(--accent);box-shadow:0 0 0 3px var(--green-100)}.sm-cal-step-done{background:var(--green-050)}.sm-cal-step-label{font-size:var(--text-xs);font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted)}.sm-cal-step-value{font-size:var(--text-md);font-weight:700}.sm-cal-current{display:flex;flex-direction:column;gap:var(--sp-2)}.sm-cal-help{margin:0;color:var(--text-muted);font-size:var(--text-md)}.sm-cal-done{margin-top:var(--sp-2)}@media(max-width:1100px){.keypad{grid-template-columns:230px 1fr 280px}.sm-now-eyebrow{font-size:var(--text-md)}}@media(max-width:700px){.keypad{grid-template-columns:1fr;grid-template-areas:"grid" "fracs" "center"}.keypad-center{justify-content:center}.sm-inputs{flex-direction:column;align-items:stretch}.sm-times{display:none}.sm-derived-grid{grid-template-columns:1fr}}.sm-bldg-select{background:#ffffff24;border:1px solid rgba(255,255,255,.24);color:var(--white);font-size:var(--text-lg);font-weight:600;padding:var(--sp-2) var(--sp-3);border-radius:var(--radius);cursor:pointer;max-width:60vw}.sm-bldg-select option{color:var(--text);background:var(--white)}.sm-units{display:flex;flex-direction:column;gap:var(--sp-3)}.sm-unit{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius-lg);overflow:hidden}.sm-unit-head{display:flex;align-items:center;gap:var(--sp-3);padding:var(--sp-2) var(--sp-3);background:var(--ink-050);border-bottom:1px solid var(--border)}.sm-unit-label{font-size:var(--text-xl);font-weight:700;background:none;border:none;padding:0;cursor:pointer;color:var(--text);line-height:1.1}.sm-unit-label:hover{color:var(--accent)}.sm-unit-count{font-size:var(--text-sm);color:var(--text-muted);margin-right:auto}.sm-unit-rooms{display:flex;flex-direction:column}.sm-room-line{display:flex;align-items:baseline;gap:var(--sp-3);padding:var(--sp-2) var(--sp-3);background:none;border:none;border-bottom:1px solid var(--ink-100);cursor:pointer;text-align:left;width:100%}.sm-room-line:last-child{border-bottom:none}.sm-room-line:hover{background:var(--green-050)}.sm-room-name{flex:none;width:140px;font-size:var(--text-md);font-weight:600}.sm-room-none,.sm-room-empty{font-size:var(--text-sm);color:var(--text-faint);font-style:italic;padding:var(--sp-2) var(--sp-3)}.sm-room-wins{display:flex;flex-wrap:wrap;gap:var(--sp-2)}.sm-win-chip{display:inline-flex;align-items:baseline;gap:var(--sp-1);padding:2px var(--sp-2);background:var(--green-050);border:1px solid var(--green-100);border-radius:var(--radius-sm);font-size:var(--text-sm)}.sm-win-dlo{font-weight:500}.sm-win-type{font-weight:700;color:var(--green-700)}.sm-add-row{display:flex;flex-wrap:wrap;gap:var(--sp-3);margin-top:var(--sp-4)}.sm-empty-hint{color:var(--text-muted);font-size:var(--text-md);margin:var(--sp-4) 0 0}.sm-unit-banner{display:flex;align-items:baseline;gap:var(--sp-3);margin-bottom:var(--sp-4)}.sm-unit-banner-eyebrow{font-size:var(--text-sm);text-transform:uppercase;letter-spacing:.08em;color:var(--text-muted);font-weight:600}.sm-unit-banner-label{font-size:var(--text-3xl);font-weight:700;line-height:1;letter-spacing:-.02em}.sm-rooms{display:flex;flex-direction:column;gap:var(--sp-3)}.sm-room-block{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius-lg);overflow:hidden}.sm-room-block-head{display:flex;align-items:center;gap:var(--sp-3);padding:var(--sp-2) var(--sp-3);background:var(--ink-050);border-bottom:1px solid var(--border)}.sm-room-block-name{font-size:var(--text-lg);font-weight:600;background:none;border:none;padding:0;cursor:pointer;color:var(--text)}.sm-room-block-name:hover{color:var(--accent)}.sm-room-block-count{font-size:var(--text-sm);color:var(--text-muted);margin-right:auto}.sm-room-block-empty{display:block;width:100%;padding:var(--sp-4);background:none;border:none;color:var(--text-faint);font-size:var(--text-md);font-style:italic;cursor:pointer;text-align:left}.sm-room-block-empty:hover{background:var(--green-050)}.sm-room-block-grid{display:flex;flex-wrap:wrap;gap:var(--sp-2);padding:var(--sp-3);background:none;border:none;cursor:pointer;width:100%;text-align:left}.sm-room-block-grid:hover{background:var(--green-050)}.sm-win-card{display:inline-flex;align-items:baseline;gap:var(--sp-2);padding:var(--sp-2) var(--sp-3);background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius);font-size:var(--text-md)}.sm-win-card-seq{color:var(--text-faint);font-size:var(--text-sm)}.sm-win-card-dlo{font-weight:600}.sm-win-card-type{font-weight:700;color:var(--green-700)}.sm-editing-banner{display:flex;align-items:center;gap:var(--sp-4);padding:var(--sp-3) var(--sp-4);background:var(--bg-surface);border:2px solid var(--accent);border-radius:var(--radius-lg)}.sm-eb-unit,.sm-eb-win{display:flex;flex-direction:column;gap:0}.sm-eb-eyebrow{font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.07em;color:var(--text-muted);font-weight:600}.sm-eb-value{font-size:var(--text-2xl);font-weight:700;line-height:1.05}.sm-eb-div{width:1px;align-self:stretch;background:var(--border)}.sm-eb-room{font-size:var(--text-lg);color:var(--text-muted);margin-left:auto}.sm-winlist{display:flex;flex-direction:column;border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--bg-surface);max-height:clamp(160px,38vh,520px);overflow-y:auto;-webkit-overflow-scrolling:touch}.sm-winlist-title,.sm-winlist-head{position:sticky;top:0;z-index:1;background:var(--bg-surface)}.sm-winlist-head{top:42px}.sm-winrow{display:grid;grid-template-columns:40px 120px 44px 120px 150px 1fr auto minmax(36px,auto);align-items:center;gap:var(--sp-3);padding:var(--sp-3);background:none;border:none;border-bottom:1px solid var(--ink-100);cursor:pointer;text-align:left;font-size:var(--text-md);min-height:56px}.sm-winrow:last-child{border-bottom:none}.sm-winrow:hover{background:var(--ink-050)}.sm-winrow-active{background:var(--green-050);box-shadow:inset 3px 0 0 var(--accent)}.sm-winrow-active:hover{background:var(--green-100)}.sm-winrow-seq{color:var(--text-faint);font-weight:600}.sm-winrow-dlo{font-weight:600}.sm-winrow-type{font-weight:700;color:var(--green-700)}.sm-winrow-make{color:var(--text-muted);font-size:var(--text-sm)}.sm-winrow-flags{display:flex;gap:var(--sp-1)}.sm-winrow-new{grid-template-columns:40px 1fr;color:var(--accent);font-weight:600}.sm-winrow-newlabel{grid-column:2 / -1;color:var(--accent)}.sm-footer{flex-direction:column;gap:var(--sp-3)}.sm-now{display:flex;flex-direction:column;align-items:center;gap:var(--sp-1);margin:auto 0;text-align:center}.sm-now-eyebrow{font-size:var(--text-lg);font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--green-700)}.sm-now-num{font-size:clamp(4.5rem,9vw,6.5rem);font-weight:700;line-height:.95;letter-spacing:-.02em}.sm-now-where{font-size:var(--text-md);color:var(--text-muted)}.sm-now-editing .sm-now-eyebrow{color:var(--amber-600)}.sm-cal-cancel{float:right;margin-left:var(--sp-3);padding:var(--sp-1) var(--sp-3);border:1px solid var(--amber-600);border-radius:var(--radius);background:var(--bg-surface);color:var(--amber-600);font-size:var(--text-sm);font-weight:600;cursor:pointer}.sm-add{display:inline-flex;align-items:center;gap:var(--sp-2);padding:var(--sp-3) var(--sp-4);border:2px dashed var(--border-strong);border-radius:var(--radius);background:var(--bg-surface);color:var(--accent);font-size:var(--text-md);font-weight:600;cursor:pointer;min-height:52px}.sm-add:hover{border-color:var(--accent);background:var(--green-050)}.sm-add-plus{font-size:var(--text-lg);line-height:1}.sm-add-form{display:flex;align-items:center;gap:var(--sp-2);flex-wrap:wrap}.sm-add-input{padding:var(--sp-3);font-size:var(--text-lg);border:2px solid var(--accent);border-radius:var(--radius);min-width:200px}.sm-add-go,.sm-add-cancel{padding:var(--sp-3) var(--sp-4);border-radius:var(--radius);font-size:var(--text-md);font-weight:600;cursor:pointer;min-height:52px;border:1px solid var(--border)}.sm-add-go{background:var(--accent);color:var(--white);border-color:var(--accent)}.sm-add-go:disabled{background:var(--ink-200);border-color:var(--ink-200);color:var(--text-faint);cursor:not-allowed}.sm-add-cancel{background:var(--bg-surface);color:var(--text-muted)}.sm-add-error{color:var(--red-600);font-size:var(--text-sm);width:100%}.sm-del{display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;border:none;border-radius:var(--radius);background:transparent;color:var(--ink-300);font-size:var(--text-md);cursor:pointer;flex:none;user-select:none;-webkit-user-select:none}.sm-del:hover{background:var(--red-100);color:var(--red-600)}.sm-typepick{position:relative;display:inline-flex;flex:none}.sm-typepick-trigger{padding:var(--sp-2) var(--sp-3);border:1px dashed var(--ink-300);border-radius:999px;background:transparent;color:var(--ink-700);font:inherit;font-size:var(--text-sm);cursor:pointer;white-space:nowrap}.sm-typepick-menu{position:absolute;bottom:calc(100% + var(--sp-2));left:0;z-index:20;min-width:16rem;max-height:50vh;overflow-y:auto;padding:var(--sp-2);border:1px solid var(--ink-200);border-radius:var(--radius);background:var(--bg-surface);box-shadow:var(--shadow-lg, 0 8px 24px rgb(0 0 0 / 18%))}.sm-typepick-option{display:flex;align-items:baseline;gap:var(--sp-3);width:100%;padding:var(--sp-3);border:0;border-radius:var(--radius-sm);background:none;font:inherit;text-align:left;cursor:pointer}.sm-typepick-option:hover{background:var(--ink-050)}.sm-typepick-code{min-width:3ch;font-weight:600;font-variant-numeric:tabular-nums}.sm-typepick-size{font-variant-numeric:tabular-nums;color:var(--ink-700)}.sm-typepick-style{margin-left:auto;font-size:var(--text-xs);color:var(--text-faint)}.sm-rename{display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;border:none;border-radius:var(--radius);background:transparent;color:var(--ink-300);font-size:var(--text-md);cursor:pointer;flex:none;user-select:none;-webkit-user-select:none}.sm-rename:hover{background:var(--ink-050);color:var(--ink-700)}.sm-rename-form{display:flex;align-items:center;gap:var(--sp-2);flex-wrap:wrap;flex:1 1 auto;min-width:0}.sm-del-confirm{display:inline-flex;gap:var(--sp-1);flex:none}.sm-del-yes,.sm-del-no{display:inline-flex;align-items:center;padding:var(--sp-1) var(--sp-2);border-radius:var(--radius-sm);font-size:var(--text-sm);font-weight:600;cursor:pointer;border:1px solid transparent;user-select:none;-webkit-user-select:none}.sm-del-yes{background:var(--red-600);color:var(--white)}.sm-del-no{background:var(--bg-surface);border-color:var(--border);color:var(--text-muted)}.sm-del-error{font-size:var(--text-xs);color:var(--red-600);max-width:190px;cursor:pointer}@media(max-width:700px){.sm-winrow{grid-template-columns:34px 1fr auto minmax(36px,auto)}.sm-winrow-make,.sm-winrow-style,.sm-winrow-flags{display:none}.sm-room-name{width:100px}}.sm-uncal{padding:2px var(--sp-2);border-radius:999px;background:#ffffff29;color:var(--white);font-size:var(--text-xs);font-weight:600;white-space:nowrap}.sm-place{display:flex;align-items:baseline;gap:var(--sp-3);flex-wrap:wrap}.sm-place-item{display:flex;align-items:baseline;gap:var(--sp-2)}.sm-place-eyebrow{font-size:var(--text-sm);text-transform:uppercase;letter-spacing:.08em;color:var(--text-muted);font-weight:600}.sm-place-value{font-size:var(--text-2xl);font-weight:700;line-height:1.05;letter-spacing:-.02em}.sm-place-sep{font-size:var(--text-xl);color:var(--ink-300)}.sm-winlist-head{display:grid;grid-template-columns:40px 120px 44px 120px 150px 1fr auto 36px;gap:var(--sp-3);padding:var(--sp-2) var(--sp-3);background:var(--ink-050);border-bottom:1px solid var(--border-strong);font-size:var(--text-xs);font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted)}.sm-cal-strip{border:2px solid var(--amber-600);border-radius:var(--radius-lg);background:var(--amber-100);padding:var(--sp-3);display:flex;flex-direction:column;gap:var(--sp-3)}.sm-cal-note{font-size:var(--text-md);color:var(--amber-600);line-height:1.4}.sm-cal-note strong{color:var(--ink-900)}.sm-cal-fields{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:var(--sp-3)}.sm-construction{display:flex;flex-wrap:wrap;gap:var(--sp-2)}.sm-style-text{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:var(--sp-2)}.sm-style-input{font:inherit;font-size:var(--text-md);padding:var(--sp-2) var(--sp-3);border:1px solid var(--border);border-radius:var(--radius);background:var(--bg-surface);color:var(--ink-900);min-height:44px}.sm-style-input:focus{outline:2px solid var(--green-600);outline-offset:1px}.vd-compact .vd-main{padding:var(--sp-2) var(--sp-3)}.vd-compact .vd-value{font-size:var(--text-xl)}@media(max-width:700px){.sm-cal-fields{grid-template-columns:1fr}.sm-winlist-head{grid-template-columns:34px 1fr auto 36px}.sm-winlist-head span:nth-child(4),.sm-winlist-head span:nth-child(5),.sm-winlist-head span:nth-child(6){display:none}}.sm-winlist-title{display:flex;align-items:center;gap:var(--sp-2);padding:var(--sp-3);font-size:var(--text-md);font-weight:700;border-bottom:1px solid var(--border);background:var(--bg-surface)}.sm-winlist-count{display:inline-grid;place-items:center;min-width:22px;height:22px;padding:0 6px;border-radius:999px;background:var(--ink-100);color:var(--text-muted);font-size:var(--text-xs);font-weight:700}.sm-bldg-tiles{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:var(--sp-4)}.sm-bldg-tile{display:flex;flex-direction:column;justify-content:space-between;gap:var(--sp-4);min-height:160px;padding:var(--sp-5);background:var(--bg-surface);border:2px solid var(--border);border-radius:var(--radius-lg);cursor:pointer;text-align:left}.sm-bldg-tile:hover,.sm-bldg-tile:focus-visible{border-color:var(--accent)}.sm-bldg-tile-top{display:flex;flex-direction:column;align-items:flex-start;gap:var(--sp-2)}.sm-bldg-tile-name{font-size:var(--text-xl);font-weight:700;line-height:1.2}.sm-bldg-tile-letter{flex:none;display:inline-grid;place-items:center;width:26px;height:26px;border-radius:var(--radius);background:var(--green-100);color:var(--green-900);font-size:var(--text-sm);font-weight:700}.sm-bldg-tile-stats{display:flex;gap:var(--sp-6)}.sm-bldg-stat{display:flex;flex-direction:column;gap:2px}.sm-bldg-stat-num{font-size:var(--text-lg);font-weight:700;line-height:1}.sm-bldg-stat-label{font-size:var(--text-sm);color:var(--text-muted)}.sm-bldg-tile-none{font-size:var(--text-md);color:var(--text-faint);font-style:italic}.sm-tag{flex:none;padding:3px var(--sp-3);border-radius:999px;font-size:var(--text-xs);font-weight:600;white-space:nowrap}.sm-tag-green{background:var(--green-100);color:var(--green-700)}.sm-tag-amber{background:var(--amber-100);color:var(--amber-600)}.sm-sheet-tools{display:flex;justify-content:flex-start;margin-bottom:var(--sp-2)}.sm-toggle-all{padding:var(--sp-1) var(--sp-2);border:none;background:none;color:var(--accent);font-size:var(--text-sm);font-weight:600;text-decoration:underline;text-underline-offset:3px;cursor:pointer}.sm-toggle-all:hover{color:var(--green-700)}.sm-sheet{border:1px solid var(--border);border-radius:var(--radius-lg);overflow:hidden;background:var(--bg-surface)}.sm-sheet-head,.sm-sheet-row,.sm-sheet-total{display:grid;grid-template-columns:150px 56px 120px 48px 150px 140px 1fr auto;gap:var(--sp-3);align-items:center;padding:var(--sp-2) var(--sp-3);text-align:left}.sm-sheet-head{background:var(--ink-050);border-bottom:1px solid var(--border-strong);font-size:var(--text-xs);font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted);position:sticky;top:0;z-index:1}.sm-sheet-unit{display:flex;align-items:center;gap:var(--sp-3);padding:var(--sp-2) var(--sp-3);background:var(--green-050);border-top:2px solid var(--green-100);border-bottom:1px solid var(--border)}.sm-sheet-toggle{width:32px;height:32px;flex:none;border:none;border-radius:var(--radius);background:transparent;color:var(--text-muted);font-size:var(--text-md);cursor:pointer}.sm-sheet-toggle:hover{background:var(--green-100);color:var(--green-900)}.sm-sheet-unit-label{font-size:var(--text-lg);font-weight:700;background:none;border:none;padding:0;cursor:pointer;color:var(--text);line-height:1.1}.sm-sheet-unit-label:hover{color:var(--accent)}.sm-sheet-unit-count{font-size:var(--text-sm);color:var(--text-muted);margin-right:auto}.sm-sheet-row{width:100%;background:none;border:none;border-bottom:1px solid var(--ink-100);cursor:pointer;font-size:var(--text-md);min-height:44px}.sm-sheet-row:hover{background:var(--green-050)}.sm-sheet-room{font-weight:600}.sm-sheet-seq,.sm-sheet-make{color:var(--text-muted)}.sm-sheet-type{font-weight:700;color:var(--green-700)}.sm-sheet-flags{display:flex;gap:var(--sp-2)}.sm-sheet-flags em{font-style:normal;font-size:var(--text-xs);font-weight:600;padding:1px var(--sp-2);border-radius:999px;background:var(--amber-100);color:var(--amber-600);white-space:nowrap}.sm-sheet-none{color:var(--text-faint);font-style:italic;grid-column:2 / -1}.sm-sheet-empty{display:block;width:100%;padding:var(--sp-3);background:none;border:none;border-bottom:1px solid var(--ink-100);color:var(--text-faint);font-style:italic;font-size:var(--text-md);cursor:pointer;text-align:left}.sm-sheet-empty:hover{background:var(--green-050)}.sm-sheet-total{background:var(--bg-surface);border-bottom:2px solid var(--border-strong);font-weight:600;color:var(--text-muted);font-size:var(--text-sm)}@media(max-width:820px){.sm-sheet-head,.sm-sheet-row,.sm-sheet-total{grid-template-columns:110px 40px 100px 44px 110px 1fr auto}.sm-sheet-make,.sm-sheet-head span:nth-child(6){display:none}}.sm-back{display:inline-flex;align-items:center;gap:var(--sp-2);width:auto;min-width:40px;padding:0 var(--sp-3);white-space:nowrap}.sm-back-label{font-size:var(--text-sm);font-weight:500}.sm-place-window{padding-left:var(--sp-2)}.sm-derived-strip{display:flex;align-items:center;gap:var(--sp-5);flex-wrap:wrap;padding:var(--sp-3) var(--sp-4);background:var(--green-050);border:2px solid var(--green-500);border-radius:var(--radius-lg)}.sm-ds-type,.sm-ds-item{display:flex;align-items:baseline;gap:var(--sp-2)}.sm-ds-label{font-size:var(--text-xs);font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--green-700)}.sm-ds-code{font-size:var(--text-xl);font-weight:700;color:var(--green-900);line-height:1}.sm-ds-value{font-size:var(--text-md);font-weight:700;color:var(--green-900)}.sm-scopes{display:flex;flex-wrap:wrap;gap:3px}.sm-scope-mark{padding:1px 6px;border:1px solid var(--green-100);border-radius:var(--radius-sm);background:var(--green-050);color:var(--green-900);font-size:var(--text-xs);font-weight:600;white-space:nowrap}.sm-scopes-none{color:var(--text-faint)}.sm-winrow-scopes,.sm-sheet-scopes{overflow:hidden}.capture-blocked{padding:var(--space-5, 1.25rem);max-width:34rem;margin:0 auto}.capture-blocked p{margin-top:var(--space-3, .75rem);color:var(--text-muted);font-size:var(--text-base);line-height:1.5}.sm-sheet-style,.sm-winrow-style{color:var(--text-muted);font-size:var(--text-sm);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.survey-tiles-projects{grid-template-columns:repeat(auto-fill,minmax(260px,1fr))}.survey-tiles-projects .survey-tile-label{font-size:var(--text-lg);line-height:1.2}.sm-cal-actions{display:inline-flex;gap:var(--sp-2);float:right;margin-left:var(--sp-3)}.sm-cal-save{padding:var(--sp-2) var(--sp-3);border:none;border-radius:var(--radius);background:var(--accent);color:var(--white);font-size:var(--text-sm);font-weight:600;cursor:pointer}.sm-cal-save:disabled{background:var(--ink-200);color:var(--text-faint);cursor:default}.sm-cal-needs{display:block;margin-top:var(--sp-2);font-size:var(--text-sm);color:var(--amber-600)}.sm-pinned{display:flex;align-items:center;gap:var(--sp-3);padding:var(--sp-2) 0 var(--sp-3);border-bottom:1px solid var(--border);margin-bottom:var(--sp-3);min-height:44px}.sm-pinned-style{display:inline-flex;align-items:center;gap:var(--sp-2);flex:none}.sm-pinned-label{font-size:var(--text-xs);font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted)}.sm-style-select{min-height:44px;max-width:230px;padding:var(--sp-2) var(--sp-3);border:2px solid var(--border);border-radius:var(--radius);background:var(--bg-surface);font-size:var(--text-md);font-weight:600;cursor:pointer}.sm-marks{position:relative;display:flex;align-items:center;gap:var(--sp-2);flex:1;min-width:0;flex-wrap:nowrap}.sm-marks-chosen{display:flex;align-items:center;gap:var(--sp-2);flex:1;min-width:0;overflow-x:auto;flex-wrap:nowrap;-webkit-overflow-scrolling:touch}.sm-marks-chosen .chip{flex:none}.sm-marks-label{font-size:var(--text-xs);font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted);flex:none}.sm-marks-none{font-size:var(--text-sm);color:var(--text-faint);font-style:italic}.sm-marks-add{min-height:36px;padding:0 var(--sp-3);border:1px dashed var(--border-strong);border-radius:999px;background:transparent;font:inherit;font-size:var(--text-sm);font-weight:600;color:var(--text-muted);cursor:pointer;flex:none}.sm-marks-add-open{border-style:solid;border-color:var(--accent);color:var(--accent)}.sm-marks-menu{position:absolute;bottom:calc(100% + var(--sp-2));left:auto;right:0;z-index:30;width:min(520px,calc(100vw - 2 * var(--sp-4)));max-height:46vh;overflow-y:auto;padding:var(--sp-3);border:1px solid var(--border-strong);border-radius:var(--radius-lg);background:var(--bg-surface);box-shadow:var(--shadow-lg)}.sm-marks-group{display:flex;flex-wrap:wrap;gap:var(--sp-2)}.sm-marks-divider{margin:var(--sp-3) 0 var(--sp-2);padding-top:var(--sp-3);border-top:1px solid var(--border);font-size:var(--text-xs);font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted)}.sm-marks-done{width:100%;min-height:44px;margin-top:var(--sp-3);border:none;border-radius:var(--radius);background:var(--accent);color:var(--white);font:inherit;font-weight:600;cursor:pointer}.sm-place-rename-wrap{display:inline-flex;align-items:center;gap:var(--sp-1)}.sm-place-value-text{font:inherit;color:inherit}.sm-place-rename{display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;flex:none;border:0;border-radius:999px;background:none;color:var(--text-muted);cursor:pointer;margin:-10px 0 -10px calc(-1 * var(--sp-1))}.sm-place-rename:active{background:var(--ink-050);color:var(--ink-700)}.sm-place-rename-form{display:inline-flex;align-items:center;gap:var(--sp-2);flex-wrap:wrap}.sm-place-rename-input{min-width:6ch;max-width:16ch;padding:var(--sp-1) var(--sp-2);border:2px solid var(--green-700);border-radius:var(--radius);background:var(--bg-surface);color:var(--text);font:inherit}.sm-place-rename-ok,.sm-place-rename-cancel{min-height:44px;padding:0 var(--sp-3);border-radius:var(--radius);font-size:var(--text-sm);font-weight:600;cursor:pointer}.sm-place-rename-ok{border:0;background:var(--green-700);color:#fff}.sm-place-rename-cancel{border:1px solid var(--border-strong);background:var(--bg-surface);color:var(--ink-700)}.sm-place-rename-error{flex-basis:100%;color:var(--red-600);font-size:var(--text-sm)}.wm-heading{font-size:var(--text-md);color:var(--text-muted);font-weight:600;margin-bottom:var(--sp-3)}.wm-back{display:inline-flex;align-items:center;gap:var(--sp-1);border:none;background:none;padding:0 var(--sp-2) 0 0;color:var(--white);font-size:var(--text-lg);cursor:pointer}.wm-back:hover{color:var(--ink-300)}.wm-back-label{font-size:var(--text-md)}.wm-crumb{color:var(--ink-300)}.wm-sep{margin-right:var(--sp-2);color:var(--ink-300)}.wm-bar-right{display:flex;align-items:center;gap:var(--sp-3);white-space:nowrap;flex:none}.wm-meta{font-size:var(--text-sm);color:var(--green-500);white-space:nowrap}.wm-exit{border:1px solid var(--ink-300);border-radius:var(--radius-sm);background:none;padding:var(--sp-1) var(--sp-3);color:var(--white);font-size:var(--text-sm);cursor:pointer}.wm-exit:hover{background:var(--ink-700)}.wm-bldg-tiles{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:var(--sp-3);margin-bottom:var(--sp-4)}.wm-bldg-tile{display:flex;flex-direction:column;gap:var(--sp-3);padding:var(--sp-4);background:var(--bg-surface);border:2px solid var(--border);border-radius:var(--radius-lg);text-align:left;cursor:pointer}.wm-bldg-tile:hover:not(:disabled),.wm-bldg-tile:focus-visible{border-color:var(--accent)}.wm-bldg-tile:disabled{cursor:default;background:var(--ink-050)}.wm-bldg-tile-top{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-2)}.wm-bldg-tile-name{font-size:var(--text-xl);font-weight:700;line-height:1.1}.wm-bldg-tile-stats{display:flex;gap:var(--sp-4)}.wm-bldg-stat{display:flex;flex-direction:column}.wm-bldg-stat-num{font-size:var(--text-lg);font-weight:700;line-height:1}.wm-bldg-stat-label{font-size:var(--text-xs);color:var(--text-muted)}.wm-bldg-tile-none{font-size:var(--text-sm);color:var(--text-muted)}.wm-progress-track{height:6px;border-radius:999px;background:var(--ink-100);overflow:hidden}.wm-progress-fill{height:100%;background:var(--accent);transition:width .16s ease}.wm-tag{padding:2px var(--sp-2);border-radius:999px;font-size:var(--text-xs);font-weight:600;white-space:nowrap}.wm-tag-green{background:var(--green-100);color:var(--green-900)}.wm-tag-amber{background:var(--amber-100);color:var(--amber-600)}.wm-tag-red{background:var(--red-100);color:var(--red-600)}.wm-tag-grey{background:var(--ink-100);color:var(--text-muted)}.wm-load{margin-bottom:var(--sp-4)}.wm-materials{display:flex;flex-wrap:wrap;gap:var(--sp-2)}.wm-material{display:inline-flex;align-items:baseline;gap:var(--sp-2);padding:var(--sp-2) var(--sp-3);background:var(--bg-surface);border:1px solid var(--border);border-left:3px solid var(--accent);border-radius:var(--radius)}.wm-materials-inline .wm-material{padding:var(--sp-1) var(--sp-2);font-size:var(--text-sm)}.wm-material-balance{border-left-color:var(--amber-600)}.wm-material-scope{border-left-color:var(--ink-700)}.wm-material-qty{font-size:var(--text-lg);font-weight:700;line-height:1}.wm-materials-inline .wm-material-qty{font-size:var(--text-md)}.wm-material-label{font-weight:600}.wm-material-size{color:var(--text-muted);font-size:var(--text-sm)}.wm-units{display:flex;flex-direction:column;gap:var(--sp-3)}.wm-unit{display:flex;flex-direction:column;gap:var(--sp-2);padding:var(--sp-3);background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius-lg);text-align:left;cursor:pointer}.wm-unit:hover,.wm-unit:focus-visible{border-color:var(--accent)}.wm-unit-done{background:var(--green-050);border-color:var(--green-500)}.wm-unit-unstarted{background:var(--ink-050)}.wm-unit-closed{padding:0 var(--sp-2);border:1px solid var(--amber-600);border-radius:var(--radius-sm);background:var(--amber-100);color:var(--amber-600);font-size:var(--text-xs);font-weight:600;white-space:nowrap}.wm-unit-head{display:flex;align-items:center;gap:var(--sp-3)}.wm-unit-label{font-size:var(--text-xl);font-weight:700;line-height:1.1}.wm-unit-count{font-size:var(--text-sm);color:var(--text-muted);margin-right:auto}.wm-unit-carry{display:flex;align-items:center;gap:var(--sp-2);flex-wrap:wrap}.wm-carry-label{font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.04em;color:var(--text-faint);min-width:64px}.wm-unit-banner{margin-bottom:var(--sp-4)}.wm-unit-banner-eyebrow{font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.06em;color:var(--text-faint)}.wm-unit-banner-label{font-size:var(--text-2xl, 2rem);font-weight:800;line-height:1}.wm-unit-actions{display:flex;gap:var(--sp-3);margin-bottom:var(--sp-3)}.wm-block{margin-bottom:var(--sp-4)}.wm-windows{display:flex;flex-direction:column;gap:var(--sp-3)}.wm-window{display:flex;flex-direction:column;gap:var(--sp-2);padding:var(--sp-3);background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius-lg)}.wm-window-done{background:var(--green-050);border-color:var(--green-500)}.wm-window-unable{background:var(--red-100);border-color:var(--red-600)}.wm-window-excluded{background:var(--ink-050);color:var(--text-faint)}.wm-busy{opacity:.55}.wm-window-head{display:flex;align-items:baseline;justify-content:space-between;gap:var(--sp-3)}.wm-window-title{display:flex;align-items:baseline;gap:var(--sp-2);font-size:var(--text-lg);font-weight:700}.wm-window-room{font-weight:600}.wm-window-meta{font-size:var(--text-sm);color:var(--text-muted)}.wm-window-sizes{display:flex;gap:var(--sp-3);font-size:var(--text-sm);color:var(--text-muted)}.wm-excluded-note{margin:0;font-size:var(--text-sm)}.wm-checks{display:flex;flex-wrap:wrap;gap:var(--sp-2)}.wm-check{display:inline-flex;align-items:center;gap:var(--sp-2);min-height:44px;padding:var(--sp-2) var(--sp-3);background:var(--bg-surface);border:2px solid var(--border);border-radius:var(--radius);font-size:var(--text-md);color:var(--text);cursor:pointer}.wm-check:hover:not(:disabled){border-color:var(--accent)}.wm-check-box{display:grid;place-items:center;width:22px;height:22px;border:2px solid var(--border-strong);border-radius:var(--radius-sm);font-size:var(--text-sm);font-weight:800;line-height:1}.wm-check-done{border-color:var(--green-500);background:var(--green-050);font-weight:700}.wm-check-done .wm-check-box{border-color:var(--accent);background:var(--accent);color:var(--white)}.wm-check:disabled{cursor:default;opacity:.6}.wm-bigbtn{flex:1;min-height:52px;padding:var(--sp-2) var(--sp-3);background:var(--bg-surface);border:2px solid var(--border);border-radius:var(--radius);font-size:var(--text-md);font-weight:600;color:var(--text);cursor:pointer}.wm-bigbtn:hover:not(:disabled){border-color:var(--border-strong)}.wm-bigbtn-done{border-color:var(--accent);background:var(--accent);color:var(--white)}.wm-bigbtn-unable{border-color:var(--red-600);background:var(--red-600);color:var(--white)}.wm-bigbtn:disabled{cursor:default;opacity:.6}.wm-window-actions{display:flex;gap:var(--sp-2)}.wm-reasons{display:flex;flex-wrap:wrap;gap:var(--sp-2)}.wm-reason{min-height:40px;padding:var(--sp-1) var(--sp-3);background:var(--bg-surface);border:1px solid var(--border);border-radius:999px;font-size:var(--text-sm);cursor:pointer}.wm-reason-on{border-color:var(--red-600);background:var(--red-600);color:var(--white);font-weight:600}.wm-note{width:100%;padding:var(--sp-2);border:1px solid var(--border);border-radius:var(--radius);font:inherit;font-size:var(--text-md);resize:vertical}.wm-when{font-size:var(--text-xs);color:var(--text-muted)}.wm-empty-hint{font-size:var(--text-md);color:var(--text-muted)}.wm-sheet-tools{display:flex;justify-content:flex-end;margin-bottom:var(--sp-2)}.wm-toggle-all{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg-surface);padding:var(--sp-1) var(--sp-3);font-size:var(--text-sm);color:var(--text);cursor:pointer}.wm-toggle-all:hover{border-color:var(--border-strong)}.wm-sheet{border:1px solid var(--border);border-radius:var(--radius-lg);overflow:hidden;background:var(--bg-surface)}.wm-sheet-head,.wm-sheet-row{display:grid;grid-template-columns:28px 56px 96px 40px 1fr;gap:var(--sp-3);align-items:center;padding:var(--sp-2) var(--sp-3);text-align:left}.wm-sheet-roomhead{padding:var(--sp-2) var(--sp-3) var(--sp-1) calc(var(--sp-3) + 28px);font-weight:600;font-size:var(--text-sm);color:var(--text-muted)}.wm-sheet-total{display:flex;align-items:baseline;justify-content:space-between;gap:var(--sp-3);padding:var(--sp-2) var(--sp-3);font-weight:600}.wm-total-count{color:var(--text-muted);font-weight:400;margin-right:auto;margin-left:var(--sp-4)}.wm-sheet-head{background:var(--ink-050);border-bottom:1px solid var(--border-strong);font-size:var(--text-xs);font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted);position:sticky;top:0;z-index:1}.wm-sheet-unit{display:flex;align-items:center;gap:var(--sp-2);padding:var(--sp-2) var(--sp-3);background:var(--ink-050);border-top:1px solid var(--border);border-bottom:1px solid var(--ink-100)}.wm-sheet-unit-done{background:var(--green-050)}.wm-sheet-toggle{border:none;background:none;width:24px;padding:0;color:var(--text-faint);font-size:var(--text-sm);cursor:pointer}.wm-sheet-unit-label{font-size:var(--text-xl);font-weight:700;line-height:1.1;border:none;background:none;padding:0;color:var(--text);cursor:pointer}.wm-sheet-unit-label:hover{color:var(--accent)}.wm-sheet-unit-count{font-size:var(--text-sm);color:var(--text-muted);margin-right:auto}.wm-sheet-carry{display:flex;gap:var(--sp-2);padding:var(--sp-2) var(--sp-3);background:var(--bg-surface);border-bottom:1px solid var(--ink-100);font-size:var(--text-sm)}.wm-carry-items{display:flex;flex-wrap:wrap;gap:var(--sp-2)}.wm-carry-item{padding:1px var(--sp-2);border:1px solid var(--border);border-left:3px solid var(--accent);border-radius:var(--radius-sm)}.wm-sheet-row{width:100%;border:none;border-bottom:1px solid var(--ink-100);background:none;font:inherit;color:inherit;cursor:pointer}.wm-sheet-row:hover{background:var(--green-050)}.wm-sheet-row-done{color:var(--text-muted)}.wm-sheet-row-unable{background:var(--red-100)}.wm-sheet-row-excluded{background:var(--ink-050);color:var(--text-faint)}.wm-sheet-room{font-weight:600}.wm-sheet-seq,.wm-sheet-type{color:var(--text-muted)}.wm-sheet-left{display:flex;flex-wrap:wrap;gap:4px}.wm-sheet-left em{font-style:normal;color:var(--red-600);font-size:var(--text-sm)}.wm-sheet-scope{flex:none;white-space:nowrap;padding:0 var(--sp-1);border:1px solid var(--border);border-radius:var(--radius-sm);font-size:var(--text-xs);color:var(--text-muted)}.wm-sheet-scope-done{border-color:var(--accent);background:var(--green-050);color:var(--accent);font-weight:600}.wm-sheet-state{text-align:center;color:var(--accent);font-weight:700}.wm-sheet-total{background:var(--ink-050);border-bottom:1px solid var(--border);font-weight:600;font-size:var(--text-sm)}.wm-sheet-empty{display:block;width:100%;padding:var(--sp-3);border:none;background:none;font:inherit;color:var(--text-muted);text-align:left;cursor:pointer}.wm-load-count{margin-left:var(--sp-2);font-weight:400;color:var(--text-faint)}.wm-checklist{display:flex;flex-direction:column;border:1px solid var(--border);border-radius:var(--radius-lg);overflow:hidden;background:var(--bg-surface)}.wm-checkline{display:grid;grid-template-columns:44px 48px 1fr auto;gap:var(--sp-3);align-items:center;min-height:56px;padding:var(--sp-2) var(--sp-3);border:none;border-bottom:1px solid var(--ink-100);border-left:4px solid var(--accent);background:none;font:inherit;color:inherit;text-align:left;cursor:pointer}.wm-checkline-balance{border-left-color:var(--amber-600)}.wm-checkline-scope{border-left-color:var(--ink-700)}.wm-checkline:last-child{border-bottom:none}.wm-checkline-on{background:var(--green-050);color:var(--text-muted)}.wm-checkbox{display:grid;place-items:center;width:32px;height:32px;border:2px solid var(--border-strong);border-radius:var(--radius-sm);font-size:var(--text-md);font-weight:800;line-height:1}.wm-checkline-on .wm-checkbox{border-color:var(--accent);background:var(--accent);color:var(--white)}.wm-checkline-qty{font-size:var(--text-xl);font-weight:700;line-height:1}.wm-checkline-label{font-weight:600}.wm-checkline-size{color:var(--text-muted);font-size:var(--text-sm)}.wm-room{margin-bottom:var(--sp-4)}.wm-room-head{display:flex;align-items:baseline;gap:var(--sp-2);font-size:var(--text-lg);font-weight:700;margin-bottom:var(--sp-2)}.wm-room-count{font-size:var(--text-sm);font-weight:400;color:var(--text-muted)}.wm-rows{display:flex;flex-direction:column;border:1px solid var(--border);border-radius:var(--radius-lg);overflow:hidden;background:var(--bg-surface)}.wm-row{border-bottom:1px solid var(--ink-100);padding:var(--sp-2) var(--sp-3)}.wm-row:last-child{border-bottom:none}.wm-row-done{background:var(--green-050)}.wm-row-unable{background:var(--red-100)}.wm-row-excluded{display:flex;gap:var(--sp-3);align-items:baseline;background:var(--ink-050);color:var(--text-faint);font-size:var(--text-sm)}.wm-row-main{display:flex;align-items:center;gap:var(--sp-3);flex-wrap:wrap}.wm-row-seq{font-size:var(--text-lg);font-weight:700;min-width:44px}.wm-row-meta{font-size:var(--text-sm);color:var(--text-muted);min-width:120px}.wm-row-checks{display:flex;flex-wrap:wrap;gap:var(--sp-2);flex:1}.wm-row-nothing{font-style:normal;font-size:var(--text-sm);color:var(--amber-600)}.wm-row-more,.wm-row-cant{min-height:44px;padding:var(--sp-1) var(--sp-3);border:2px solid var(--border);border-radius:var(--radius);background:var(--bg-surface);font:inherit;font-size:var(--text-sm);font-weight:600;color:var(--text-muted);cursor:pointer}.wm-row-more{width:44px;font-size:var(--text-lg)}.wm-row-more-on{border-color:var(--accent);color:var(--green-900)}.wm-row-cant-on{border-color:var(--red-600);background:var(--red-600);color:var(--white)}.wm-row-extras{display:flex;flex-wrap:wrap;align-items:center;gap:var(--sp-2);margin-top:var(--sp-2);padding-top:var(--sp-2);border-top:1px dashed var(--border)}.wm-row-extras-label{font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.04em;color:var(--text-faint)}.wm-row-why{margin-top:var(--sp-2);display:flex;flex-direction:column;gap:var(--sp-2)}.wm-row-note{font-size:var(--text-sm)}@media(max-width:834px){.wm-sheet-head,.wm-sheet-row,.wm-sheet-total{grid-template-columns:110px 44px 100px 40px 1fr 28px;gap:var(--sp-2)}.wm-row-meta{min-width:0}}.wm-load-head{font-size:var(--text-xl);font-weight:700;color:var(--text);text-transform:none;letter-spacing:0;margin-bottom:var(--sp-2);display:flex;align-items:baseline;gap:var(--sp-3)}.wm-checkline{display:flex;align-items:center;gap:var(--sp-3);grid-template-columns:none}.wm-checkline-qty{min-width:44px;text-align:right}.wm-checkline-size{font-size:var(--text-lg);color:var(--text);font-weight:600}.wm-checkline-static{cursor:default;padding-left:var(--sp-3)}.wm-checkline-static:hover{background:none}.wm-row-notes{min-height:44px;padding:var(--sp-1) var(--sp-3);border:2px solid var(--border);border-radius:var(--radius);background:var(--bg-surface);font:inherit;font-size:var(--text-sm);font-weight:600;color:var(--text-muted);cursor:pointer}.wm-row-notes-on{border-color:var(--accent);background:var(--green-050);color:var(--green-900)}.wm-row-notes-has{border-color:var(--accent);color:var(--green-900)}.wm-sheet-carry{display:block;padding:var(--sp-2) var(--sp-3) var(--sp-3)}.wm-sheet-carry .wm-carry-label{display:block;margin-bottom:var(--sp-2)}.wm-room{margin-bottom:var(--sp-4);border:1px solid var(--border);border-radius:var(--radius-lg);overflow:hidden;background:var(--bg-surface)}.wm-room-head{display:flex;align-items:baseline;gap:var(--sp-3);margin:0;padding:var(--sp-2) var(--sp-3);background:var(--ink-900);color:var(--white);font-size:var(--text-xl);font-weight:700}.wm-room-count{font-size:var(--text-md);font-weight:400;color:var(--ink-300);margin-left:auto}.wm-room .wm-rows{border:none;border-radius:0}.wm-sheet-head,.wm-sheet-row,.wm-sheet-total{grid-template-columns:40px 150px 56px 120px 52px 1fr}.wm-sheet-state{display:grid;place-items:center;font-size:var(--text-lg);font-weight:800;line-height:1;color:var(--text-faint)}.wm-sheet-row-done{background:var(--green-050);color:var(--text);box-shadow:inset 4px 0 0 var(--accent)}.wm-sheet-row-done .wm-sheet-state{color:var(--accent)}.wm-sheet-row-unable{box-shadow:inset 4px 0 0 var(--red-600)}.wm-sheet-row-unable .wm-sheet-state{color:var(--red-600)}.wm-sheet-unit{border-top:3px solid var(--ink-900);background:var(--bg-surface);padding:var(--sp-3);gap:var(--sp-3)}.wm-sheet-unit-label{font-size:var(--text-2xl, 1.75rem);letter-spacing:-.01em}.wm-sheet-unit-count{font-size:var(--text-md)}.wm-sheet-unit-done{background:var(--green-100);border-top-color:var(--accent)}.wm-sheet-unit-closed{background:var(--amber-100)}.wm-sheet-row{padding-left:var(--sp-4)}.wm-sheet-total{padding-left:var(--sp-4);border-bottom:none}.wm-unit-done{display:inline-flex;align-items:center;gap:var(--sp-1);padding:var(--sp-1) var(--sp-3);border-radius:var(--radius);background:var(--accent);color:var(--white);font-size:var(--text-lg);font-weight:800;letter-spacing:.04em}.proj-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:var(--sp-4);max-width:900px}.proj-card{display:block;width:100%;text-align:left;background:transparent;border:none;padding:var(--sp-4);cursor:pointer}.proj-card:hover{background:var(--green-050)}.proj-name{font-size:var(--text-md);font-weight:600}.proj-addr{font-size:var(--text-sm);color:var(--text-muted);margin-top:2px}.proj-stats{display:flex;gap:var(--sp-4);margin-top:var(--sp-3);font-size:var(--text-sm);color:var(--text-muted)}.proj-stats strong{color:var(--text);font-size:var(--text-md)}.proj-actions{display:flex;justify-content:flex-end;gap:var(--sp-3);padding:0 var(--sp-4) var(--sp-3)}.proj-edit{border:0;background:none;padding:var(--sp-2);font:inherit;font-size:var(--text-sm);color:var(--accent);cursor:pointer;text-decoration:underline}.proj-add{margin-top:var(--sp-4)}.proj-form{display:flex;flex-direction:column;gap:var(--sp-4);padding:var(--sp-4);max-width:520px}.proj-form-title{font-size:var(--text-md)}.proj-form-actions{display:flex;gap:var(--sp-3)}.proj-delete{border:0;background:none;padding:var(--sp-2);font:inherit;font-size:var(--text-sm);color:var(--text-muted);cursor:pointer}.proj-delete:hover{color:var(--red-600);text-decoration:underline}.proj-delete-warn,.proj-copy-what{margin:0 0 var(--sp-4);line-height:1.5;color:var(--text-muted)}.roadmap{display:flex;gap:var(--sp-4);align-items:flex-start;max-width:620px}.roadmap-mark{flex:none;width:36px;height:36px;border-radius:var(--radius);border:2px dashed var(--border-strong);background:var(--bg-sunken)}.roadmap h3{font-size:var(--text-md);margin-bottom:var(--sp-1)}.roadmap p{margin:0 0 var(--sp-2);color:var(--text-muted);line-height:1.55}.roadmap-note{font-size:var(--text-sm);color:var(--text-faint)}:root{--green-900: #1b3d2c;--green-700: #2f6b4f;--green-600: #3a8462;--green-500: #4a9d76;--green-100: #e3f0e9;--green-050: #f2f8f5;--ink-900: #14181b;--ink-700: #333c42;--ink-500: #5c686f;--ink-400: #7d878d;--ink-300: #aab2b7;--ink-200: #d5dade;--ink-100: #e8ecee;--ink-050: #f4f6f7;--white: #ffffff;--amber-600: #a8730f;--amber-100: #fdf0d5;--red-600: #a33232;--red-100: #fbe4e4;--blue-600: #2f5f8a;--blue-100: #e2edf6;--bg-app: var(--ink-050);--bg-surface: var(--white);--bg-sunken: var(--ink-050);--border: var(--ink-200);--border-strong: var(--ink-300);--text: var(--ink-900);--text-muted: var(--ink-500);--text-faint: var(--ink-400);--accent: var(--green-700);--accent-hover: var(--green-600);--accent-soft: var(--green-050);--font-sans: ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--font-mono: ui-monospace, SFMono-Regular, "SF Mono", Menlo, Consolas, "Liberation Mono", monospace;--text-xs: .6875rem;--text-sm: .8125rem;--text-base: .875rem;--text-md: 1rem;--text-lg: 1.25rem;--text-xl: 1.75rem;--text-2xl: 2.5rem;--text-3xl: 3.5rem;--sp-1: .25rem;--sp-2: .5rem;--sp-3: .75rem;--sp-4: 1rem;--sp-5: 1.5rem;--sp-6: 2rem;--sp-8: 3rem;--radius-sm: 3px;--radius: 6px;--radius-lg: 10px;--shadow-sm: 0 1px 2px rgba(20, 24, 27, .06);--shadow: 0 1px 3px rgba(20, 24, 27, .1), 0 1px 2px rgba(20, 24, 27, .06);--shadow-lg: 0 10px 24px rgba(20, 24, 27, .12);--row-h: 30px;--nav-w: 232px}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{font-family:var(--font-sans);font-size:var(--text-base);color:var(--text);background:var(--bg-app);-webkit-font-smoothing:antialiased;font-variant-numeric:tabular-nums}h1,h2,h3,h4{margin:0;font-weight:600;letter-spacing:-.01em}a{color:inherit;text-decoration:none}button,input,select{font:inherit;color:inherit}:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.num{font-variant-numeric:tabular-nums}.muted{color:var(--text-muted)}.faint{color:var(--text-faint)}.stack{display:flex;flex-direction:column;gap:var(--sp-4)}.row{display:flex;align-items:center;gap:var(--sp-3)}.spread{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-3)}.scroll-x{overflow-x:auto}
