:root{--pf-basalt:#141110;--pf-ink:#0f0d0b;--pf-surface:#191510;--pf-surface-raised:#1e1811;--pf-surface-card:#1c1610;--pf-surface-nested:#221b14;--pf-umber:#3d342a;--pf-slate:#4a4133;--pf-clay:#6b5d49;--pf-stone:#8a7d6b;--pf-dust:#b9ad9c;--pf-text:#f5f1ea;--pf-text-strong:#f7f3ec;--pf-text-muted:#a79a88;--pf-text-subtle:#8a7d6b;--pf-subtle-raised:#968a77;--pf-orange:#ff5a1f;--pf-orange-lifted:#e9834f;--pf-orange-deep:#a83405;--pf-go:#3e9b6c;--pf-go-text:#5cc48d;--pf-caution:#e0a32e;--pf-stop:#d8442e;--pf-stop-text:#e4685a;--pf-line:#ffffff14;--pf-line-strong:#ffffff1f;--pf-line-input:#ffffff61;--pf-shadow-card:0 12px 26px -14px #000c;--pf-shadow-float:0 24px 50px -24px #000c;--pfd-canvas:#f1ebe0;--pfd-card:#faf6ee;--pfd-sink:#e5dccc;--pfd-text:#1b1712;--pfd-muted:#6b5d49;--pfd-accent:#a83405;--pfd-go:#257247;--pfd-caution:#7a5800;--pfd-stop:#b3261e;--pfd-line:#1b17122e;--pfd-line-input:#6b5d49;--pfd-focus:#a83405;--pfd-shadow-card:0 8px 20px -12px #1b171240;--pf-r-sm:8px;--pf-r-md:11px;--pf-r-lg:14px;--pf-r-xl:18px;--pf-r-2xl:24px;--pf-r-pill:999px;--pf-hit-min:44px;--pf-hit-field:48px;--pf-type-min-ui:12px;--pf-font-sans:"Sora", system-ui, sans-serif;--pf-font-mono:"JetBrains Mono", ui-monospace, monospace;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-6:24px;--space-8:32px;--space-12:48px;--space-16:64px}:root,:root[data-theme=daylight]{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--surface-canvas:var(--pfd-canvas);--surface-card:var(--pfd-card);--surface-sink:var(--pfd-sink);--text:var(--pfd-text);--text-muted:var(--pfd-muted);--accent:var(--pfd-accent);--accent-contrast:#faf6ee;--go:var(--pfd-go);--caution:var(--pfd-caution);--stop:var(--pfd-stop);--go-soft:#e3efe8;--caution-soft:#f3e7ce;--stop-soft:#f6e0dd;--line:var(--pfd-line);--line-input:var(--pfd-line-input);--focus:var(--pfd-focus);--shadow-card:var(--pfd-shadow-card)}:root[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--surface-canvas:var(--pf-basalt);--surface-card:var(--pf-surface-raised);--surface-sink:var(--pf-ink);--text:var(--pf-text);--text-muted:var(--pf-text-muted);--accent:var(--pf-orange);--accent-contrast:#0f0d0b;--go:var(--pf-go-text);--caution:var(--pf-caution);--stop:var(--pf-stop-text);--go-soft:#3e9b6c2e;--caution-soft:#e0a32e2e;--stop-soft:#d8442e2e;--line:var(--pf-line);--line-input:var(--pf-line-input);--focus:var(--pf-orange);--shadow-card:var(--pf-shadow-card)}:root{--pf-canvas:var(--surface-canvas);--pf-card:var(--surface-card);--pf-sink:var(--surface-sink);--pf-ink-muted:var(--text-muted);--pf-accent:var(--accent);--pf-sage:var(--go);--pf-sage-soft:var(--go-soft);--pf-amber:var(--caution);--pf-amber-soft:var(--caution-soft);--pf-red:var(--stop);--pf-red-soft:var(--stop-soft);--pf-input-border:var(--line-input);--pf-hairline:var(--line)}
html{height:100%}html,body{max-width:100vw;overflow-x:hidden}body{min-height:100%;color:var(--text);background:var(--surface-canvas);font-family:var(--pf-font-sans);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;flex-direction:column;font-size:15px;line-height:1.5;display:flex}*{box-sizing:border-box;margin:0;padding:0}a{color:inherit;text-decoration:none}:focus-visible{outline:2px solid var(--focus);outline-offset:2px}.mono,.num{font-family:var(--pf-font-mono);font-variant-numeric:tabular-nums}.btn{min-height:var(--pf-hit-min);padding:0 var(--space-4);border-radius:var(--pf-r-md);border:1px solid var(--line-input);background:var(--surface-card);color:var(--text);font:inherit;cursor:pointer;align-items:center;gap:var(--space-2);font-weight:600;display:inline-flex}.btn-primary{background:var(--accent);border-color:var(--accent);color:var(--accent-contrast)}.btn-ghost{background:0 0;border-color:#0000}.review-shell{background:var(--pf-canvas);color:var(--text);flex-direction:column;gap:1rem;padding:1rem;display:flex}.review-tabs{border-bottom:1px solid var(--pf-hairline);flex-wrap:wrap;gap:.5rem;padding-bottom:.5rem;display:flex}.review-tab{border:1px solid var(--pf-input-border);background:var(--pf-card);min-height:44px;color:var(--text);font:inherit;cursor:pointer;border-radius:6px;padding:.5rem 1rem}.review-tab[aria-selected=true],.review-tab[aria-current=page]{background:var(--pf-accent);border-color:var(--pf-accent);color:var(--pf-card);font-weight:600}.review-toolbar{background:var(--pf-card);border:1px solid var(--pf-hairline);border-radius:8px;flex-wrap:wrap;align-items:center;gap:1rem;padding:.75rem 1rem;display:flex}.review-filters{flex-wrap:wrap;flex:auto;align-items:center;gap:.75rem;display:flex}.review-filters-empty{color:var(--pf-ink-muted)}.review-sort{align-items:center;gap:.5rem;display:flex}.review-sort select{border:1px solid var(--pf-input-border);background:var(--pf-sink);min-height:44px;color:var(--text);border-radius:6px;padding:0 .5rem}.review-search{align-items:center;gap:.5rem;display:flex}.review-search input{border:1px solid var(--pf-input-border);background:var(--pf-sink);min-height:44px;color:var(--text);border-radius:6px;padding:0 .75rem}.review-export{align-items:center;gap:.5rem;display:flex}.review-export p:not(.sr-only){color:var(--pf-ink-muted);margin:0}.review-footer{flex-wrap:wrap;align-items:center;gap:.75rem;margin-top:.75rem;display:flex}.review-loading-all{color:var(--pf-ink-muted);margin:0}.review-cap-note{color:var(--pf-ink-muted);flex-basis:100%;margin:0}.review-table-wrapper{background:var(--pf-card);border:1px solid var(--pf-hairline);border-radius:8px;overflow-x:auto}.review-table-wrapper table{border-collapse:collapse;width:100%}.review-table-wrapper th,.review-table-wrapper td{text-align:left;border-bottom:1px solid var(--pf-hairline);padding:.75rem}.review-table-wrapper tr.review-row-link{cursor:pointer}.review-table-wrapper tr.review-row-link:hover{background:var(--surface-sink)}.review-table-wrapper tr.login-failed{background:var(--pf-red-soft)}.review-table-wrapper tr.login-failed td:first-child{box-shadow:inset 3px 0 0 var(--pf-red)}.review-row-anchor{color:var(--accent);font-weight:600;text-decoration:none}.review-row-anchor:hover{text-decoration:underline}.sort-button{min-height:var(--pf-hit-min);color:inherit;font:inherit;cursor:pointer;background:0 0;border:0;align-items:center;gap:.35rem;padding:0;font-weight:700;display:inline-flex}.sort-mobile{align-items:center;gap:.5rem;display:none}@media (max-width:640px){.sort-mobile{flex-wrap:wrap;display:flex}.review-table-wrapper .sort-button{visibility:hidden}}.review-table-wrapper th[aria-sort=ascending] .sort-button,.review-table-wrapper th[aria-sort=descending] .sort-button{color:var(--accent)}.rate-cell-button{min-height:var(--pf-hit-min);color:inherit;font:inherit;text-align:inherit;cursor:text;background:0 0;border:1px solid #0000;border-radius:6px;padding:0 .5rem}.rate-cell-button:hover,.rate-cell-button:focus-visible{border-color:var(--pf-input-border);background:var(--pf-sink)}@media (hover:none){.rate-cell-button{-webkit-text-decoration:underline dotted;text-decoration:underline dotted;-webkit-text-decoration-color:var(--pf-ink-muted);text-decoration-color:var(--pf-ink-muted);text-underline-offset:4px}}.rate-cell-button[aria-disabled=true]{cursor:progress;opacity:.6}.rate-cell-editor{flex-wrap:wrap;align-items:center;gap:.35rem;display:inline-flex}.rate-cell-editor input{min-height:var(--pf-hit-min);border:1px solid var(--pf-input-border);background:var(--pf-sink);width:7rem;color:var(--text);font:inherit;text-align:right;border-radius:6px;padding:0 .5rem}.rate-cell-editor input[aria-invalid=true]{border-color:var(--stop)}.rate-cell-link{color:var(--accent);text-decoration:underline}.review-filters label{align-items:center;gap:.5rem;font-weight:600;display:inline-flex}.review-filters input:not([type=checkbox]),.review-filters select{border:1px solid var(--pf-input-border);background:var(--pf-sink);min-height:44px;color:var(--text);font:inherit;border-radius:6px;padding:0 .5rem;font-weight:400}.review-filters input[type=checkbox]{width:20px;height:20px;accent-color:var(--accent)}.review-filters>div{align-items:center;gap:var(--space-3);flex-wrap:wrap;display:flex}.review-filters .hint{flex-basis:100%;margin:0}.review-status{align-items:center;gap:.35rem;font-weight:600;display:inline-flex}.review-status[data-tone=sage]{color:var(--pf-sage)}.review-status[data-tone=amber]{color:var(--pf-amber)}.review-status[data-tone=red]{color:var(--pf-red)}.review-status[data-tone=neutral]{color:var(--pf-ink-muted)}.sign-off-verification-note{color:var(--pf-ink-muted);margin-top:.25rem;font-size:.85rem}@media (max-width:640px){.review-table-wrapper table,.review-table-wrapper thead,.review-table-wrapper tbody,.review-table-wrapper th,.review-table-wrapper td,.review-table-wrapper tr{width:100%;display:block}.review-table-wrapper thead{position:absolute;left:-9999px}.review-table-wrapper tr{border-bottom:1px solid var(--pf-hairline);padding:.5rem 0}.review-table-wrapper td{border-bottom:none;justify-content:space-between;gap:1rem;padding:.35rem .75rem;display:flex}.review-table-wrapper td[data-label]:before{content:attr(data-label);color:var(--pf-ink-muted);font-weight:600}}.shell{grid-template-columns:240px 1fr;min-height:100vh;display:grid}.shell-sidebar{background:var(--surface-card);border-right:1px solid var(--line);padding:var(--space-4);gap:var(--space-6);flex-direction:column;display:flex}.shell-brand{column-gap:var(--space-2);grid-template-columns:24px 1fr;align-items:center;display:grid}.shell-mark{border:3px solid var(--accent);width:24px;height:24px;box-shadow:inset 0 0 0 4px var(--surface-card), inset 0 0 0 8px var(--accent);border-radius:50%}.shell-wordmark{letter-spacing:-.01em;font-size:18px;font-weight:800}.shell-product{font-size:var(--pf-type-min-ui);letter-spacing:.16em;color:var(--text-muted);grid-column:2}.shell-sidebar nav ul{gap:var(--space-1);flex-direction:column;list-style:none;display:flex}.shell-sidebar nav a{min-height:var(--pf-hit-min);padding:0 var(--space-3);border-radius:var(--pf-r-sm);align-items:center;font-weight:500;display:flex}.shell-sidebar nav a:hover{background:var(--surface-sink)}.shell-sidebar nav a[aria-current=page]{color:var(--accent);background:var(--surface-sink);box-shadow:inset 3px 0 0 var(--accent);font-weight:700}.shell-nav-divider{border:0;border-top:1px solid var(--line);margin:var(--space-2) 0}.nav-badge{border-radius:var(--pf-r-pill);background:var(--accent);color:var(--accent-contrast);letter-spacing:.06em;text-transform:uppercase;margin-left:auto;padding:0 .4em;font-size:10px;font-weight:700;line-height:1.6}.shell-body{flex-direction:column;min-width:0;display:flex}.shell-header{align-items:center;gap:var(--space-4);padding:var(--space-3) var(--space-6);border-bottom:1px solid var(--line);background:var(--surface-card);flex-wrap:wrap;display:flex}.shell-org{letter-spacing:.12em;text-transform:uppercase;color:var(--text-muted);font-size:12px}select.shell-org{text-transform:none;letter-spacing:normal;border:1px solid var(--pf-input-border);background:var(--pf-sink);max-width:240px;min-height:32px;color:var(--text);border-radius:6px;padding:0 .25rem}.shell-user{text-overflow:ellipsis;white-space:nowrap;min-width:0;color:var(--text-muted);margin-left:auto;font-size:13px;overflow:hidden}.shell-main{padding:var(--space-6)}.shell-main:focus{outline:none}.shell-scope-notice .notice{justify-content:space-between;align-items:center;gap:var(--space-3);margin:var(--space-4) var(--space-6) 0;flex-wrap:wrap;display:flex}@media (max-width:800px){.shell{grid-template-columns:1fr}.shell-sidebar{border-right:none;border-bottom:1px solid var(--line)}.shell-sidebar nav ul{flex-flow:wrap}}.login{min-height:100dvh;padding:var(--space-6);background:radial-gradient(60% 50% at 50% 0%, color-mix(in srgb, var(--accent) 14%, transparent), transparent 70%), var(--surface-canvas);place-items:center;display:grid;position:relative}.login-tools{top:var(--space-4);right:var(--space-4);position:absolute}.login-card{background:var(--surface-card);border:1px solid var(--line);border-radius:var(--pf-r-xl);width:100%;max-width:420px;box-shadow:var(--shadow-card);padding:var(--space-8) var(--space-8) var(--space-6);gap:var(--space-6);display:grid}.login-brand{column-gap:var(--space-3);grid-template-columns:40px 1fr;align-items:center;display:grid}.login-mark{border:4px solid var(--accent);width:40px;height:40px;box-shadow:inset 0 0 0 6px var(--surface-card), inset 0 0 0 12px var(--accent);border-radius:50%}.login-wordmark{letter-spacing:-.01em;font-size:24px;font-weight:800;line-height:1.1}.login-product{font-size:var(--pf-type-min-ui);letter-spacing:.16em;color:var(--text-muted);grid-column:2}.login-heading{gap:var(--space-1);display:grid}.login-heading h1{font-size:22px;font-weight:700}.login-form{max-width:none}.form.login-form input:not([type=checkbox]):not([type=radio]){min-height:var(--pf-hit-field)}.login-submit{min-height:var(--pf-hit-field);margin-top:var(--space-2);justify-content:center}.login-foot{text-align:center}.login-foot a,.login-legal a{text-underline-offset:2px;text-decoration:underline}.login-legal{text-align:center;margin-top:calc(-1 * var(--space-4))}.login-notice{color:var(--text-muted);font-size:13px;font-weight:500}.login-switch{min-height:var(--pf-hit-min);padding:0 var(--space-2);color:var(--accent);font:inherit;text-underline-offset:2px;cursor:pointer;background:0 0;border:0;justify-self:center;font-size:14px;font-weight:600;text-decoration:underline}.login-switch:disabled{opacity:.6;cursor:default}@media (max-width:480px){.login{padding:var(--space-4);padding-top:var(--space-16);align-items:start}.login-card{padding:var(--space-6) var(--space-4);border-radius:var(--pf-r-lg)}}.card{background:var(--surface-card);border:1px solid var(--line);border-radius:var(--pf-r-lg);padding:var(--space-4) var(--space-6);box-shadow:var(--shadow-card);gap:var(--space-3);flex-direction:column;display:flex}.card h2{font-size:20px;font-weight:700}.card ul,.card ol{gap:var(--space-2);flex-direction:column;list-style:none;display:flex}.page-header{justify-content:space-between;align-items:center;gap:var(--space-4);margin-bottom:var(--space-6);display:flex}.page-header h1{font-size:28px;font-weight:800}.stack>.page-header{margin-bottom:0}.form{gap:var(--space-4);min-width:0;max-width:640px;display:grid}.form label{gap:var(--space-1);font-weight:600;display:grid}.form .form-field{gap:var(--space-1);min-width:0;display:grid}.form input:not([type=checkbox]):not([type=radio]),.form select,.form textarea{width:100%;min-width:0;min-height:var(--pf-hit-min);padding:0 var(--space-3);border:1px solid var(--line-input);border-radius:var(--pf-r-sm);background:var(--surface-sink);color:var(--text);font:inherit;font-weight:400}.form input[type=file][type=file]{padding:calc((var(--pf-hit-min) - 26px) / 2) var(--space-3);cursor:pointer;line-height:26px}.form input[type=file][type=file]::file-selector-button{min-height:26px;margin-right:var(--space-3);padding:0 var(--space-3);border:1px solid var(--line-input);border-radius:var(--pf-r-sm);background:var(--surface-card);color:var(--text);font:inherit;cursor:pointer;font-weight:600}.form fieldset{border:1px solid var(--line);border-radius:var(--pf-r-md);min-inline-size:0;padding:var(--space-3) var(--space-4);gap:var(--space-2);display:grid}.form fieldset legend{padding:0 var(--space-2);font-weight:700}.form .check{align-items:center;gap:var(--space-2);min-height:var(--pf-hit-min);font-weight:500;display:flex}.form .check input{width:20px;height:20px;accent-color:var(--accent)}.field-error{color:var(--stop);font-size:13px;font-weight:500}.hint{color:var(--text-muted);font-size:13px}.service-note{display:block}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.form-actions{gap:var(--space-3);flex-wrap:wrap;display:flex}.form.form-inline{align-items:end;gap:var(--space-3);max-width:none;display:flex}.btn-danger{border-color:var(--stop);color:var(--stop)}.notice{padding:var(--space-3) var(--space-4);border-radius:var(--pf-r-md);border:1px solid var(--line);background:var(--surface-card)}.notice[data-tone=amber]{background:var(--caution-soft)}.notice[data-tone=sage]{background:var(--go-soft)}.licence-row{gap:var(--space-2);grid-template-columns:1fr 1fr 1fr 1fr auto;align-items:end;display:grid}.licence-row>*{min-width:0}@media (max-width:560px){.licence-row{grid-template-columns:1fr 1fr}}.preset-row{justify-content:space-between;align-items:start;gap:var(--space-3);flex-wrap:wrap;display:flex}.stack{gap:var(--space-6);grid-template-columns:minmax(0,1fr);display:grid}.quoting-wide .form{max-width:none}.quoting-wide .form:not(.quote-form) .form-field{max-width:40rem}.card-columns{columns:2 24rem;column-gap:var(--space-6)}.card-columns>*{break-inside:avoid;margin-bottom:var(--space-6)}.card-columns>:last-child{margin-bottom:0}@media (min-width:641px){.quoting-wide .review-table-wrapper td input[type=number]{min-width:5.5rem}.quoting-wide .review-table-wrapper td input[type=text],.quoting-wide .review-table-wrapper td input:not([type]){min-width:7.5rem}.quoting-wide .review-table-wrapper td select{min-width:11rem}.quoting-wide .review-table-wrapper td .check{min-width:9rem}.quoting-wide .review-table-wrapper :is(th,td):has(input,select){padding-inline:.5rem}}.field-grid{gap:var(--space-4);grid-template-columns:repeat(auto-fill,minmax(min(100%,14rem),1fr));display:grid}.pattern-plan{gap:var(--space-2);max-width:800px;margin:0;display:grid}.pattern-plan-toolbar{justify-content:space-between;align-items:center;gap:var(--space-4);flex-wrap:wrap;display:flex}.pattern-plan-legend{align-items:center;gap:var(--space-2);color:var(--text-muted);font-size:13px;display:inline-flex}.pattern-plan-swatch{border:2px solid var(--text-muted);border-radius:50%;width:12px;height:12px;display:inline-block}.pattern-plan-swatch-drilled{background:var(--go);border-color:var(--go)}.pattern-plan-svg{background:var(--surface-sink);border:1px solid var(--line);border-radius:var(--pf-r-md);width:100%;height:auto;font-family:var(--pf-font-mono);display:block}.pattern-plan-swatch-toe{border-top:2px solid var(--accent);width:18px;height:0;margin-left:var(--space-2);display:inline-block}.pattern-plan-direction line{stroke:var(--accent);stroke-width:2px;stroke-linecap:round}.pattern-plan-direction circle{fill:var(--accent);stroke:none}.pattern-plan-hole circle{fill:var(--surface-card);stroke:var(--text-muted);stroke-width:2px}.pattern-plan-hole.is-drilled>circle{fill:var(--go);stroke:var(--go)}.pattern-plan-hole text{fill:var(--text)}.pattern-plan-swatch-flagged{border:2px dashed var(--caution);background:0 0}.pattern-plan-hole>circle.pattern-plan-flag{fill:var(--caution-soft);stroke:var(--caution);stroke-width:2.5px;stroke-dasharray:4 2}.review-table-wrapper tr.hole-flagged{background:var(--caution-soft)}.review-table-wrapper tr.hole-flagged>:first-child{box-shadow:inset 3px 0 0 var(--caution)}.review-table-wrapper tr[data-has-note]>*{border-bottom:none}.review-table-wrapper tr.hole-note td{color:var(--text);white-space:pre-wrap;overflow-wrap:anywhere;padding-top:0}.hole-note-label{color:var(--text-muted);font-weight:600}.pattern-plan-north line,.pattern-plan-scale line{stroke:var(--text-muted);stroke-width:2px}.pattern-plan-north polygon{fill:var(--text-muted)}.pattern-plan-north text,.pattern-plan-scale text{fill:var(--text-muted);font-weight:600}.file-upload{gap:var(--space-2);display:grid}.file-upload-row{align-items:center;gap:var(--space-3);flex-wrap:wrap;display:flex}.file-upload input:focus-visible+.file-upload-row>label{outline:2px solid var(--focus);outline-offset:2px}.logo-preview{align-items:center;gap:var(--space-4);flex-wrap:wrap;display:flex}.logo-small,.logo-mark{object-fit:contain;border:1px solid var(--line);border-radius:var(--pf-r-sm);background:var(--surface-card);width:40px;height:40px}.logo-large{object-fit:contain;border:1px solid var(--line);border-radius:var(--pf-r-sm);background:var(--surface-card);max-width:160px;max-height:160px}.logo-mark{color:var(--accent);justify-content:center;align-items:center;font-weight:800;display:inline-flex}.file-upload label.btn{cursor:pointer}.file-upload label.btn:before{content:"⬆"}.file-upload label.btn.is-disabled{opacity:.55;cursor:not-allowed;pointer-events:none}.file-upload-progress{gap:var(--space-1);display:grid}.file-upload-progress progress{width:100%;max-width:480px;height:8px;accent-color:var(--accent)}.card-header{justify-content:space-between;align-items:flex-start;gap:var(--space-4);flex-wrap:wrap;display:flex}.card-header .badges{margin-top:var(--space-1)}.detail-title{margin-bottom:var(--space-2);font-size:24px;font-weight:800}.card h3{margin-top:var(--space-2);font-size:16px;font-weight:700}.review-table-wrapper td.num,.review-table-wrapper th.num{text-align:right}.review-table-wrapper th[scope=row]{font-weight:600}.kv{gap:var(--space-2) var(--space-4);grid-template-columns:max-content 1fr;display:grid}.kv dt{color:var(--text-muted);font-weight:600}.badges{gap:var(--space-3);flex-wrap:wrap;display:flex}@media (max-width:640px){.licence-row{grid-template-columns:1fr}}.dashboard-grid{gap:var(--space-4);grid-template-columns:repeat(auto-fit,minmax(300px,1fr));display:grid}.dashboard-grid+.dashboard-grid{margin-top:var(--space-4)}@media (min-width:1100px){.dashboard-grid-activity{grid-template-columns:1fr 1fr}}.dashboard-card-head{justify-content:space-between;align-items:baseline;gap:var(--space-3);display:flex}.dashboard-card .dashboard-card-head h2{font-size:17px}.dashboard-count{min-width:1.6em;margin-left:var(--space-2);vertical-align:2px;background:var(--surface-sink);color:var(--text-muted);font-variant-numeric:tabular-nums;border-radius:999px;justify-content:center;align-items:center;padding:0 .45em;font-size:12px;font-weight:700;line-height:1.6;display:inline-flex}.dashboard-card-link{white-space:nowrap;font-size:13px;font-weight:600}.dashboard-empty{color:var(--text-muted)}.card ul.dashboard-rows{gap:0}.dashboard-rows>li+li{border-top:1px solid var(--line)}.dashboard-row{justify-content:space-between;align-items:center;gap:var(--space-3);padding:var(--space-2) 0;display:flex}.dashboard-row-main{flex-direction:column;min-width:0;display:flex}.dashboard-row-primary{text-overflow:ellipsis;white-space:nowrap;font-weight:600;overflow:hidden}.dashboard-row-side{text-align:right;flex-direction:column;flex-shrink:0;align-items:flex-end;gap:2px;display:flex}.dashboard-row-detail{color:var(--text-muted);font-size:13px}.dashboard-row-part{white-space:nowrap}.card ul.dashboard-tiles{gap:var(--space-3);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.dashboard-tile{padding:var(--space-3);border-radius:var(--pf-r-md);background:var(--surface-sink);flex-direction:column;gap:2px;height:100%;display:flex}.dashboard-tile-value{font-variant-numeric:tabular-nums;font-size:26px;font-weight:800;line-height:1.15}.dashboard-tile-label,.dashboard-tile a{font-weight:600}.dashboard-tile-label,.dashboard-row a,.dashboard-tile a,.dashboard-card-link{min-height:var(--pf-hit-min);align-items:center;display:inline-flex}.dashboard-row-primary a{min-height:0;padding:4px 0}.link-button{font:inherit;color:inherit;text-align:left;cursor:pointer;min-height:var(--pf-hit-min);background:0 0;border:0;padding:0;font-weight:600}.link-button:hover{text-decoration:underline}.side-panel{top:var(--space-4);right:var(--space-4);bottom:var(--space-4);width:min(420px, calc(100vw - 2 * var(--space-4)));z-index:20;box-shadow:var(--pf-shadow-float);position:fixed;overflow-y:auto}.side-panel .kv dd{overflow-wrap:anywhere}.uid-row{align-items:center;gap:var(--space-2);flex-wrap:wrap;display:flex}.pending-codes{gap:var(--space-2);display:grid}.pending-codes-title{font-size:15px;font-weight:700}.pending-codes ul{gap:var(--space-2);list-style:none;display:grid}.pending-code{justify-content:space-between;align-items:center;gap:var(--space-3);flex-wrap:wrap;display:flex}.modal-backdrop{z-index:30;padding:var(--space-4);background:#0f0d0b8c;place-items:center;display:grid;position:fixed;inset:0}.modal{width:min(560px,100%);max-height:calc(100vh - 2 * var(--space-8));box-shadow:var(--pf-shadow-float);overflow-y:auto}.modal:focus{outline:none}.modal.modal-wide{width:min(960px,100%)}.tour-list{gap:var(--space-4);grid-template-columns:repeat(auto-fill,minmax(18rem,1fr));list-style:none;display:grid}.tour-card .btn{align-self:flex-start}.tour-player{gap:var(--space-6);grid-template-columns:minmax(0,1fr);align-items:start;display:grid}@media (min-width:1200px){.tour-player{grid-template-columns:minmax(0,3fr) minmax(16rem,1fr)}}.tour-shot{margin:0}.tour-shot-frame{border:1px solid var(--line);border-radius:var(--pf-r-md);line-height:0;position:relative;overflow:hidden}.tour-shot-frame img{width:100%;height:auto;display:block}.tour-highlight{outline:3px solid var(--pf-orange);outline-offset:0;pointer-events:none;border-radius:4px;position:absolute;box-shadow:0 0 0 9999px #0f0d0b80}.tour-shot-missing{aspect-ratio:1280/800;background:var(--surface-sink);border:1px dashed var(--line-input);border-radius:var(--pf-r-md);color:var(--text-muted);justify-content:center;align-items:center;display:flex}.tour-step-title:focus{outline:none}.first-run-card{border-color:var(--accent);margin-bottom:var(--space-6)}.pairing{gap:var(--space-3);display:grid}.pairing-code-row{justify-content:space-between;align-items:center;gap:var(--space-6);flex-wrap:wrap;display:flex}.pairing-code{letter-spacing:.08em;font-size:40px;font-weight:600}.pairing-qr{border-radius:var(--pf-r-sm);flex:none}.combobox{position:relative}.form .combobox input[role=combobox]{padding-right:calc(var(--pf-hit-min) + var(--space-1));cursor:pointer}.form .combobox input[role=combobox]:focus{cursor:text}.combobox-toggle{width:var(--pf-hit-min);height:100%;color:var(--text-muted);cursor:pointer;background:0 0;border:0;justify-content:center;align-items:center;font-size:16px;display:inline-flex;position:absolute;top:0;right:0}.combobox[data-open] .combobox-toggle span{transform:rotate(180deg)}.combobox-list{z-index:20;max-height:288px;padding:var(--space-1);background:var(--surface-card);border:1px solid var(--line);border-radius:var(--pf-r-sm);box-shadow:var(--pf-shadow-float);margin:0;list-style:none;position:absolute;top:calc(100% + 4px);left:0;right:0;overflow-y:auto}.combobox-list [role=option]{min-height:var(--pf-hit-min);padding:0 var(--space-3);border-radius:var(--pf-r-sm);cursor:pointer;align-items:center;font-weight:400;display:flex}.combobox-list [role=option][data-active]{background:var(--surface-sink)}.combobox-list [role=option][aria-selected=true]{font-weight:700}.combobox-list [role=option][aria-selected=true]:after{content:"✓";color:var(--accent);margin-left:auto}.combobox-list [role=option][data-create]{color:var(--accent);border-top:1px solid var(--line);margin-top:var(--space-1);border-radius:0;font-weight:600}.combobox-list [role=option][data-create]:first-child{border-top:0;margin-top:0}.combobox-empty{padding:var(--space-2) var(--space-3);color:var(--text-muted);font-size:13px}.plain-fieldset{gap:var(--space-6);border:0;min-inline-size:0;margin:0;padding:0;display:grid}.form.preview-form{max-width:none}.preview-grid{gap:var(--space-3) var(--space-4);grid-template-columns:repeat(auto-fit,minmax(11rem,1fr));display:grid}.preview-summary{gap:var(--space-6);grid-template-columns:repeat(auto-fit,minmax(min(18rem,100%),1fr));align-items:start;display:grid}.preview-line-name{align-items:center;gap:var(--space-2);flex-wrap:wrap;font-weight:600;display:flex}.review-table-wrapper tr[data-state=off] td{color:var(--text-muted)}.review-table-wrapper tr[data-state=off] .preview-line-name{font-weight:400}.review-table-wrapper tr[data-state=error]{background:var(--pf-red-soft)}.review-table-wrapper tr[data-state=error] td:first-child{box-shadow:inset 3px 0 0 var(--pf-red)}.review-table-wrapper tr[data-state=warning] td:first-child{box-shadow:inset 2px 0 0 var(--pf-amber)}.preview-warning{color:var(--caution);font-size:13px}.quote-figures{gap:var(--space-3);grid-template-columns:repeat(auto-fit,minmax(12rem,1fr));list-style:none;display:grid}.quote-figures .dashboard-tile-value{overflow-wrap:anywhere}.page-header-action{align-items:flex-end;gap:var(--space-1);text-align:right;flex-direction:column;display:flex}@media (max-width:640px){.quote-figures{grid-template-columns:repeat(2,minmax(0,1fr))}.quote-figures>li:first-child{grid-column:1/-1}.page-header:has(>.page-header-action){flex-wrap:wrap}.page-header-action{text-align:left;align-items:flex-start}}.quote-fieldset{gap:var(--space-4);border:0;grid-template-columns:minmax(0,1fr);min-inline-size:0;margin:0;padding:0;display:grid}.form.quote-form{max-width:none}.quote-fields{gap:var(--space-3) var(--space-4);grid-template-columns:repeat(auto-fit,minmax(min(12rem,100%),1fr));align-items:start;display:grid}.quote-label{font-weight:600}.quote-date{align-items:center;gap:var(--space-3);min-height:var(--pf-hit-min);flex-wrap:wrap;display:flex}.quote-block-actions{align-items:center}.quote-section-grid{gap:var(--space-6);grid-template-columns:minmax(0,3fr) minmax(0,2fr);align-items:start;display:grid}.quote-notes{border:1px solid var(--line);border-radius:var(--pf-r-md);padding:var(--space-3) var(--space-4);background:var(--surface-sink)}.quote-notes summary{min-height:var(--pf-hit-min);cursor:pointer;align-items:center;font-weight:700;display:flex}.quote-notes-text{white-space:pre-wrap;overflow-wrap:anywhere}@media (max-width:800px){.quote-section-grid{grid-template-columns:minmax(0,1fr)}}.quote-block{box-shadow:none}.quote-block-body{gap:var(--space-6);grid-template-columns:minmax(0,3fr) minmax(0,2fr);align-items:start;display:grid}.quote-calculated{gap:var(--space-3);padding:var(--space-3) var(--space-4);border-radius:var(--pf-r-md);background:var(--surface-sink);display:grid}.quote-calculated[data-stale]{opacity:.6}.quote-figures-list{gap:var(--space-2);margin:0;display:grid}.quote-figures-list>div{justify-content:space-between;align-items:baseline;gap:var(--space-1) var(--space-3);flex-wrap:wrap;display:flex}.quote-figures-list dt{color:var(--text-muted)}.quote-figures-list dd{justify-content:flex-end;align-items:center;gap:var(--space-1) var(--space-2);text-align:right;flex-wrap:wrap;margin:0;font-weight:600;display:flex}.quote-problems ul{color:var(--stop);padding-left:var(--space-4);list-style:outside}.quote-pattern{gap:var(--space-1);display:grid}@media (max-width:720px){.quote-block-body{grid-template-columns:minmax(0,1fr)}.quote-figures-list dd{text-align:left;justify-content:flex-start}}.quote-found{gap:var(--space-1);display:grid}.quote-found:empty{margin-top:calc(-1 * var(--space-4))}.quote-sizes{gap:var(--space-2);display:grid}.quote-lines{gap:var(--space-4);display:grid}.quote-lines[data-stale]{opacity:.6}.quote-lines-table caption{caption-side:top;text-align:left;padding:var(--space-3) .75rem 0;font-weight:700}.quote-lines-table th[scope=row]{min-width:12rem;font-weight:400}.quote-lines-table td{white-space:nowrap}.quote-lines-table td .form-field{white-space:normal;min-width:8rem}.quote-line th[scope=row]>*{display:block}.quote-line-block{font-size:13px}.quote-line[data-off] th,.quote-line[data-off] td{color:var(--text-muted)}.quote-line:focus{outline:2px solid var(--focus);outline-offset:-2px}.quote-line th[scope=row]>.quote-line-marks{gap:var(--space-1);margin-top:var(--space-1);flex-wrap:wrap;display:flex}.quote-line-checks{margin:var(--space-1) 0 0;gap:var(--space-1);white-space:normal;padding:0;font-size:13px;list-style:none;display:grid}.quote-line-checks li[data-level=error]{color:var(--stop)}.quote-line-actions{align-items:center;gap:var(--space-2);flex-wrap:wrap;display:flex}.quote-line-actions .check{white-space:nowrap}.quote-line-editor>td{white-space:normal;background:var(--surface-sink)}.quote-override{gap:var(--space-3);display:grid}.quote-figures-list dd.quote-figure-note{color:var(--text-muted);font-size:13px;font-weight:400}.quote-target{gap:var(--space-3);border-top:1px solid var(--line);padding-top:var(--space-4);display:grid}.quote-doc-text,.quote-doc-kind{gap:var(--space-3);display:grid}.quote-doc-copies{gap:var(--space-3);margin:0;padding:0;list-style:none;display:grid}.quote-doc-add{align-items:center}.quote-doc-add select{flex:14rem;width:auto;max-width:24rem}.quote-doc-preview{border:1px solid var(--line);border-radius:var(--pf-r-md);background:var(--surface-card);width:100%;height:75vh;min-height:24rem}.quote-send-layout{gap:var(--space-6);grid-template-columns:minmax(0,2fr) minmax(0,3fr);align-items:start;display:grid}.quote-send-layout .quote-doc-preview{height:60vh}@media (max-width:800px){.quote-send-layout{grid-template-columns:minmax(0,1fr)}.quote-send-layout .quote-doc-preview{height:50vh;min-height:18rem}}.quote-checks{gap:var(--space-2);margin:0;padding:0;list-style:none;display:grid}.quote-checks li{align-items:baseline;gap:var(--space-2);flex-wrap:wrap;display:flex}.quote-checks[data-stale]{opacity:.6}.quote-totals{top:var(--space-4);align-self:start;gap:var(--space-3);display:grid;position:sticky}.quote-totals .quote-figures-list[data-stale]{opacity:.6}.quote-figures-list dd.quote-margin-chip{gap:var(--space-2)}.quote-main-action{width:100%}@media (max-width:900px){.quote-totals{position:static}}.quote-editor-head{align-items:center;gap:var(--space-3);flex-wrap:wrap;margin:0;display:flex}.quote-editor-layout{gap:var(--space-6);grid-template-columns:minmax(0,1fr) minmax(16rem,22rem);align-items:start;display:grid}.quote-editor-main{grid-area:1/1;min-width:0}.quote-aside{top:var(--space-4);gap:var(--space-3);min-width:0;max-height:calc(100vh - 2 * var(--space-4));grid-area:1/2;padding:2px;display:grid;position:sticky;overflow-y:auto}.quote-aside .quote-totals{position:static}.quote-aside-actions{gap:var(--space-3);display:grid}@media (max-width:900px){.quote-editor-layout{grid-template-columns:minmax(0,1fr)}.quote-editor-main,.quote-aside{grid-area:auto/1}.quote-aside{max-height:none;position:static;overflow-y:visible}}.quote-detail-head{gap:var(--space-1);display:grid}.quote-detail-head p{margin:0}.quote-detail-head h1:focus{outline:none}.quote-detail-title{font-size:1.125rem;font-weight:600}[role=tabpanel]:focus-visible{outline:2px solid var(--focus);outline-offset:2px}.quote-accept-total{margin:0;font-weight:600}.quote-revisions{gap:var(--space-2);margin:0;padding:0;list-style:none;display:grid}.quote-revisions li{align-items:center;gap:var(--space-2) var(--space-3);padding-bottom:var(--space-2);border-bottom:1px solid var(--line);flex-wrap:wrap;display:flex}.quote-revisions .quote-line-marks{gap:var(--space-1);flex-wrap:wrap;flex:auto;display:flex}.quote-revision-head{justify-content:space-between;align-items:center;gap:var(--space-2) var(--space-3);flex-wrap:wrap;display:flex}.quote-revision-head h3{margin:0}.quote-activity{gap:var(--space-3);margin:0;padding:0;list-style:none;display:grid}.quote-activity li{gap:var(--space-1);padding-bottom:var(--space-3);border-bottom:1px solid var(--line);display:grid}.quote-activity p{overflow-wrap:anywhere;margin:0}.quote-activity .hint{gap:var(--space-1) var(--space-3);flex-wrap:wrap;display:flex}.shell-help{width:var(--pf-hit-min);border-color:var(--line-input);border-radius:999px;justify-content:center;padding:0;font-size:18px;font-weight:800;line-height:1}.shell-help[aria-current=page]{border-color:var(--accent);color:var(--accent)}.help-layout{gap:var(--space-6);grid-template-columns:minmax(0,1fr);align-items:start;display:grid}@media (min-width:1100px){.help-layout{grid-template-columns:220px minmax(0,1fr)}.help-toc{top:var(--space-6);position:sticky}}.help-toc-title{letter-spacing:.12em;text-transform:uppercase;color:var(--text-muted);font-size:12px;font-weight:700}.help-toc ol{gap:var(--space-2);list-style:none;display:grid}.help-toc a:hover,.help-toc a:focus-visible{color:var(--accent)}.help-article{gap:var(--space-4);max-width:820px;line-height:1.6}.help-article h2{margin-top:var(--space-6);padding-top:var(--space-4);border-top:1px solid var(--line);scroll-margin-top:var(--space-4);font-size:22px;font-weight:800}.help-article h2:first-of-type{border-top:none;margin-top:0;padding-top:0}.help-article h3{margin-top:var(--space-2);scroll-margin-top:var(--space-4);font-size:17px;font-weight:700}.help-article ul,.help-article ol{padding-left:var(--space-6);gap:var(--space-2);display:grid}.help-article ul{list-style:outside}.help-article ol{list-style:decimal}.help-article li::marker{color:var(--text-muted)}.help-article a{color:var(--accent);text-underline-offset:2px;text-decoration:underline}.help-article code{font-family:var(--pf-font-mono);padding:0 var(--space-1);background:var(--surface-sink);border-radius:4px;font-size:.9em}.help-table{border:1px solid var(--line);border-radius:var(--pf-r-md);overflow-x:auto}.help-table table{border-collapse:collapse;width:100%;font-size:14px}.help-table th,.help-table td{text-align:left;vertical-align:top;padding:var(--space-2) var(--space-3);border-bottom:1px solid var(--line)}.help-table th{background:var(--surface-sink);font-weight:700}.help-table tr:last-child td{border-bottom:none}.help>.hint a{color:var(--accent);text-decoration:underline}
