@font-face{font-family:Montserrat;font-style:normal;font-weight:700;font-display:swap;src:url(/fonts/montserrat-700-latin.woff2)format("woff2")}:root{--bg:#f4f6f8;--surface:#fff;--surface-2:#eef2f5;--text:#14202b;--muted:#556270;--border:#dce2e8;--border-strong:#7d8893;--accent:#1d6b87;--accent-strong:#155069;--on-accent:#fff;--accent-ink:#1a6480;--ok:#1e7f4f;--warn:#b7791f;--bad:#c0392b;--info:#2b6cb0;--row-hover:#f1f5f8;--focus:#1d6b87;--nav-bg:transparent;--nav-text:var(--text);--nav-muted:var(--muted);--nav-active-bg:var(--surface-2);--nav-active-text:var(--text);--font-ui:system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--font-head:var(--font-ui);--font-num:var(--font-ui);--radius:8px;--cell-y:10px;--cell-x:12px;--shadow:0 8px 24px #0000001f;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{background:var(--bg);color:var(--text);font-family:var(--font-ui);margin:0;font-size:.9375rem;line-height:1.5}h1,h2,h3{font-family:var(--font-head);margin:0;line-height:1.25}h1{font-size:1.625rem;font-weight:650}h2{margin-bottom:12px;font-size:1.0625rem;font-weight:650}h3{margin-bottom:6px;font-size:.875rem;font-weight:650}p{margin:0 0 8px}a{color:var(--accent-ink);text-underline-offset:2px}a:hover{color:var(--accent-strong)}:focus-visible{outline:2px solid var(--focus);outline-offset:2px}.boot{color:var(--muted);padding:32px}.muted{color:var(--muted)}.small{font-size:.8125rem}.num{text-align:right;font-family:var(--font-num);font-variant-numeric:tabular-nums;white-space:nowrap}.stack{flex-direction:column;gap:1px;display:flex}.block-line{display:block}.visually-hidden{clip:rect(0 0 0 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;position:absolute!important}.skip-link{z-index:10;background:var(--surface);border:1px solid var(--border-strong);border-radius:var(--radius);padding:8px 12px;position:absolute;top:-48px;left:8px}.skip-link:focus{top:8px}[hidden]{display:none!important}.print-only{display:none}.app{grid-template-rows:auto auto 1fr;grid-template-columns:minmax(0,1fr);min-height:100vh;display:grid}.masthead{background:var(--surface);border-bottom:1px solid var(--border);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px 24px;padding:12px 24px;display:flex}.brand{align-items:center;gap:10px;min-width:0;display:flex}.brand-mark{border-radius:calc(var(--radius) - 2px);background:var(--accent);height:30px;color:var(--on-accent);letter-spacing:.06em;place-items:center;padding:0 10px;font-size:.8125rem;font-weight:750;display:inline-grid}.brand-mark svg{fill:currentColor;width:auto;height:18px;display:block}.brand-name{font-family:"Montserrat", var(--font-ui);letter-spacing:.06em;white-space:nowrap;font-size:1.25rem;font-weight:700;line-height:1}.tag{color:var(--muted);border:1px solid var(--border);white-space:nowrap;border-radius:999px;padding:1px 8px;font-size:.75rem}.masthead-controls{flex-wrap:wrap;align-items:center;gap:8px 16px;display:flex}.control{align-items:center;gap:8px;display:flex}.control-label{color:var(--muted);font-size:.8125rem}.control-link{font-size:.8125rem}.nav{background:var(--nav-bg);gap:4px;padding:8px 24px;display:flex;overflow-x:auto}.nav-link{border-radius:calc(var(--radius) - 2px);min-height:36px;color:var(--nav-text);white-space:nowrap;align-items:center;padding:6px 12px;text-decoration:none;display:inline-flex}.nav-link:hover{background:var(--nav-active-bg);color:var(--nav-active-text)}.nav-link[aria-current=page]{background:var(--nav-active-bg);color:var(--nav-active-text);font-weight:650}.view{outline:none;min-width:0;padding:24px}.view>*+*{margin-top:24px}.page-header{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:12px;display:flex}.page-header>div{min-width:0}.page-header h1,.page-header p{overflow-wrap:anywhere}.page-header p{margin:4px 0 0}.page-actions{gap:8px;display:flex}.block{min-width:0}.input{font:inherit;color:var(--text);background:var(--surface);border:1px solid var(--border-strong);border-radius:calc(var(--radius) - 2px);max-width:100%;min-height:36px;padding:6px 10px}.input:hover{border-color:var(--muted)}select.input{appearance:none;background-image:linear-gradient(45deg, transparent 50%, var(--muted) 50%), linear-gradient(135deg, var(--muted) 50%, transparent 50%);background-position:calc(100% - 19px),calc(100% - 14px);background-repeat:no-repeat;background-size:5px 5px;padding-right:36px}select.input:hover{background-image:linear-gradient(45deg, transparent 50%, var(--text) 50%), linear-gradient(135deg, var(--text) 50%, transparent 50%)}.textarea{resize:vertical;width:100%;font-family:ui-monospace,SF Mono,Menlo,Consolas,monospace;font-size:.8125rem}.input-search{flex:280px}.filters-catalogue .input-search{flex:0 300px}.input-money{text-align:right;width:110px}.input-qty{width:110px}.button{min-height:36px;font:inherit;color:var(--text);background:var(--surface);border:1px solid var(--border-strong);border-radius:calc(var(--radius) - 2px);cursor:pointer;white-space:nowrap;justify-content:center;align-items:center;gap:6px;padding:6px 14px;font-weight:600;text-decoration:none;display:inline-flex}.button:hover{border-color:var(--text);color:var(--text)}.button:disabled{opacity:.5;cursor:not-allowed}.button-primary{background:var(--accent);border-color:var(--accent);color:var(--on-accent)}.button-primary:hover{background:var(--accent-strong);border-color:var(--accent-strong);color:var(--on-accent)}.button .icon{fill:none;stroke:currentColor;stroke-width:1.8px;stroke-linecap:round;stroke-linejoin:round;width:18px;height:18px}.button-icon{padding:6px 9px}.button-small{min-height:30px;padding:3px 10px;font-size:.8125rem}.button-quiet{background:0 0;border-color:#0000}.link-button{font:inherit;color:var(--accent-ink);text-underline-offset:2px;cursor:pointer;background:0 0;border:0;padding:0;text-decoration:underline}.quiet-link{font-size:.875rem}.field{flex-direction:column;gap:4px;min-width:0;display:flex}.field label{font-size:.8125rem;font-weight:600}.hint{color:var(--muted);font-size:.8125rem}.field-grid{grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:12px 16px;display:grid}.field-error{color:var(--bad);font-size:.8125rem}.form-actions{flex-wrap:wrap;align-items:center;gap:8px 12px;display:flex}.draft-form{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);gap:16px;padding:20px;display:grid}.filters{flex-wrap:wrap;gap:8px;display:flex}.clear-filters{color:var(--accent-ink);align-self:center;padding:6px 4px;font-size:.875rem}.clear-filters:hover{text-decoration:underline}.table-wrap.is-loading{opacity:.6;transition:opacity .15s .1s}.segments{background:var(--surface-2);border-radius:var(--radius);flex-wrap:wrap;gap:4px;margin-bottom:12px;padding:3px;display:inline-flex}.segment{font:inherit;min-height:32px;color:var(--muted);border-radius:calc(var(--radius) - 3px);cursor:pointer;background:0 0;border:1px solid #0000;padding:4px 12px;font-size:.875rem}.segment:hover{color:var(--text)}.segment[aria-pressed=true]{color:var(--text);background:var(--surface);border-color:var(--border);font-weight:600}.segment .count{font-variant-numeric:tabular-nums;color:var(--muted)}.tabs{border-bottom:1px solid var(--border);gap:4px;margin-bottom:16px;display:flex;overflow-x:auto}.tab{font:inherit;min-height:40px;color:var(--muted);cursor:pointer;white-space:nowrap;background:0 0;border:0;border-bottom:2px solid #0000;margin-bottom:-1px;padding:8px 14px;font-weight:600}.tab:hover{color:var(--text)}.tab[aria-selected=true]{color:var(--text);border-bottom-color:var(--accent)}.menu{position:relative}.menu-list{z-index:5;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);min-width:230px;box-shadow:var(--shadow);padding:4px;position:absolute;top:calc(100% + 4px);right:0}.menu-item{text-align:left;width:100%;font:inherit;color:var(--text);border-radius:calc(var(--radius) - 3px);cursor:pointer;background:0 0;border:0;padding:8px 10px;display:block}.menu-item:hover,.menu-item:focus-visible{background:var(--surface-2)}.caret{font-size:.75rem}.switch{font:inherit;color:var(--text);cursor:pointer;background:0 0;border:0;align-items:center;gap:8px;padding:4px 0;font-size:.875rem;display:inline-flex}.switch-track{background:var(--border-strong);border-radius:999px;width:36px;height:20px;transition:background .15s;position:relative}.switch-thumb{background:var(--surface);border-radius:50%;width:16px;height:16px;transition:transform .15s;position:absolute;top:2px;left:2px}.switch[aria-checked=true] .switch-track,.switch.is-on .switch-track{background:var(--accent)}.switch[aria-checked=true] .switch-thumb,.switch.is-on .switch-thumb{transform:translate(16px)}.switch-word{min-width:24px}.status{white-space:nowrap;align-items:center;gap:6px;font-size:.8125rem;display:inline-flex}.dot{background:var(--muted);border-radius:50%;flex:none;width:8px;height:8px}.status-ok .dot{background:var(--ok)}.status-warn .dot{background:var(--warn)}.status-bad .dot{background:var(--bad)}.status-info .dot{background:var(--info)}.notice{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);align-items:baseline;gap:10px;padding:12px 14px;display:flex}.notice:before{content:"";background:var(--muted);border-radius:50%;flex:none;width:8px;height:8px;transform:translateY(-1px)}.notice-ok:before{background:var(--ok)}.notice-bad:before{background:var(--bad)}.notice-warn:before{background:var(--warn)}.empty{color:var(--muted);padding:12px 0}.table-wrap{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);overflow-x:auto}table{border-collapse:collapse;width:100%}th,td{padding:var(--cell-y) var(--cell-x);text-align:left;vertical-align:top;border-bottom:1px solid var(--border)}th{color:var(--muted);white-space:nowrap;background:var(--surface);font-size:.8125rem;font-weight:600}tbody tr:last-child td{border-bottom:0}th.num,td.num{text-align:right}.detail-row td{background:var(--row-hover);padding-top:0}.part-no{overflow-wrap:anywhere;font-family:ui-monospace,SF Mono,Menlo,Consolas,monospace;font-size:.8125rem;font-weight:600}.make{color:var(--muted);font-size:.75rem;display:block}.row-toggle{width:28px;height:28px;font:inherit;color:var(--muted);border-radius:calc(var(--radius) - 3px);cursor:pointer;background:0 0;border:1px solid #0000;place-items:center;display:inline-grid}.row-toggle:hover{border-color:var(--border-strong);color:var(--text)}.chevron{font-size:1.25rem;line-height:1;transition:transform .15s;display:inline-block}.row-toggle[aria-expanded=true] .chevron{transform:rotate(90deg)}.col-toggle{text-align:right}.slim-table{table-layout:fixed;font-size:.875rem}.lines-table{min-width:1000px}.slim-table th,.slim-table td{vertical-align:middle;padding:6px 8px;position:relative}.lines-table .col-no{width:36px}.lines-table .col-make{width:80px}.lines-table .col-part{width:140px}.lines-table .col-qty{width:48px}.slim-table .col-dot{text-align:center;width:28px;padding-left:4px;padding-right:4px}.lines-table .col-source{width:170px}.lines-table .col-unit{width:80px}.lines-table .col-total{width:104px}.slim-table col.col-toggle{width:36px}.slim-table th.col-toggle,.slim-table td.col-toggle{white-space:nowrap;overflow:hidden}.slim-table .clip{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.slim-table .part-no{overflow-wrap:normal}.lines-totals th,.lines-totals td{white-space:nowrap;border-bottom:0;overflow:visible}.lines-totals th{color:var(--text);background:0 0;font-size:.875rem;font-weight:600}.lines-totals .totals-gap{background:0 0!important;border-top:0!important}.lines-totals .totals-ex th,.lines-totals .totals-ex td{border-top:2px solid var(--border-strong);background:var(--surface-2);font-weight:600}.lines-totals .totals-gst th,.lines-totals .totals-gst td{color:var(--muted);background:var(--surface-2);font-weight:400}.lines-totals .totals-inc th,.lines-totals .totals-inc td{background:var(--accent);color:var(--on-accent);font-size:1rem;font-weight:700}.price-validity{margin:0}.line-open{opacity:0;width:1px;height:1px;margin:0;position:absolute;top:0;left:0}.line-toggle{vertical-align:middle;color:var(--accent-ink);white-space:nowrap;cursor:pointer;align-items:center;gap:4px;font-size:.8125rem;display:inline-flex}.line-toggle:hover{text-decoration:underline}.line-toggle.is-attention{color:var(--text);font-weight:600}.line-toggle.is-attention .chevron{color:var(--warn)}.line-open:focus-visible+.line-toggle{outline:2px solid var(--focus);outline-offset:2px;border-radius:3px}.line-toggle .chevron{fill:none;stroke:currentColor;stroke-width:1.8px;stroke-linecap:round;stroke-linejoin:round;width:16px;height:16px;transition:transform .15s}.line-open:checked+.line-toggle .chevron{transform:rotate(90deg)}.slim-table .detail-row{display:none}.slim-table .line-group:has(.line-open:checked) .detail-row{display:table-row}.slim-table .line-group:has(.line-open:checked) .line-row td{background:color-mix(in srgb, var(--accent) 20%, var(--surface));border-bottom:1px solid color-mix(in srgb, var(--accent) 30%, var(--surface));color:var(--text);font-weight:600}.slim-table .line-group:has(.line-open:checked) .line-row:hover td{background:color-mix(in srgb, var(--accent) 20%, var(--surface));border-bottom:1px solid color-mix(in srgb, var(--accent) 30%, var(--surface));color:var(--text);font-weight:600}.slim-table .line-group:has(.line-open:checked) .detail-row td{background:color-mix(in srgb, var(--accent) 4%, var(--surface));border-bottom:2px solid color-mix(in srgb, var(--accent) 40%, var(--surface))}:is(.slim-table .line-group:has(.line-open:checked) .line-row td:first-child,.slim-table .line-group:has(.line-open:checked) .detail-row td:first-child){box-shadow:inset 4px 0 0 var(--accent)}.slim-table .line-group:has(.line-open:checked) .line-toggle{color:var(--accent-ink)}.slim-table .line-row:hover td,.data-table tbody tr:hover td{background:var(--row-hover)}.slim-table .line-row td,.data-table tbody td{transition:background-color .12s}.data-table tbody tr.can-open,.slim-table .line-row.can-open{cursor:pointer}.line-headline{flex-wrap:wrap;align-items:center;gap:12px;margin:0;padding:8px 0 4px 44px;display:flex}@media (width<=640px){.line-headline{padding-left:0}}.line-detail{gap:12px;max-width:900px;padding:4px 0 8px 44px;display:grid}.detail-block h3{text-transform:uppercase;letter-spacing:.05em;color:var(--muted);font-size:.75rem}.notes{margin:0;padding-left:18px}.offer-list{gap:4px;margin:0;padding:0;list-style:none;display:grid}.offer-list li{background:var(--surface);border:1px solid var(--border);border-radius:calc(var(--radius) - 3px);grid-template-columns:minmax(0,1fr) 100px 220px;align-items:center;gap:12px;padding:6px 10px;display:grid}.inline-form{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.inline-label{font-size:.8125rem;font-weight:600}.money-prefix{align-items:center;gap:4px;display:inline-flex}.result-count{margin-bottom:8px}.pager{align-items:center;gap:12px;margin-top:12px;display:flex}.col-desc{min-width:220px}.price-results>*+*{margin-top:16px}.result-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:12px;display:flex}.result-head h2{margin:0;font-size:1.25rem}.result-head p{margin:2px 0 0}.totals{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:12px 24px;padding:16px 20px;display:flex}.totals-list{flex-wrap:wrap;gap:8px 32px;margin:0;display:flex}.totals-list dt,.order-totals dt{color:var(--muted);font-size:.8125rem}.totals-list dd,.order-totals dd{text-align:left;margin:0;font-size:1.125rem;font-weight:600}.totals-grand dd{font-size:1.5rem;font-weight:700}.totals-note{max-width:520px;color:var(--muted);margin:0;font-size:.875rem}.totals-note strong{color:var(--text)}.order-forms{gap:20px;display:grid}.order-form{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);min-width:0;padding:20px}.order-form .table-wrap{border-radius:calc(var(--radius) - 2px);margin:12px 0}.order-head{flex-wrap:wrap;justify-content:space-between;gap:12px;display:flex}.order-from{letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin:0;font-size:.75rem;font-weight:700}.order-head h3{margin:2px 0 0;font-size:1.125rem}.order-meta{flex-wrap:wrap;gap:8px 24px;margin:0;display:flex}.order-meta dt{color:var(--muted);font-size:.75rem}.order-meta dd{margin:0;font-weight:600}.order-totals{grid-template-columns:auto auto;justify-content:end;margin:12px 0 0;display:grid}.order-totals>div{display:contents}.order-totals dt,.order-totals dd{padding:4px 0}.order-totals dd{text-align:right;font-variant-numeric:tabular-nums;padding-left:32px;font-size:1rem}.order-totals .totals-grand dt,.order-totals .totals-grand dd{border-top:2px solid var(--text);color:var(--text);font-size:1.125rem;font-weight:700}.todo-list{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);margin:0;padding:0;list-style:none}.todo-list li{border-bottom:1px solid var(--border);flex-direction:column;gap:2px;padding:12px 14px;display:flex}.todo-list li:last-child{border-bottom:0}.todo-list li{transition:background-color .12s}.todo-list li:hover{background:var(--row-hover)}.todo-link{color:var(--accent-ink);font-weight:600}.todo-link:hover{text-decoration:underline}.todo-kind{color:var(--muted);text-transform:uppercase;letter-spacing:.05em;font-size:.75rem;font-weight:600}.strong-link{white-space:nowrap;font-weight:600}@media (width<=640px){.masthead,.nav,.view{padding-left:16px;padding-right:16px}.brand .tag{display:none}.offer-list li{grid-template-columns:minmax(0,1fr) auto}.offer-list li>:nth-child(3){grid-column:1/-1}.line-detail{padding-left:0}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition:none!important;animation:none!important}}@media print{body{color:#000;background:#fff}.masthead,.nav,.draft-form,.menu,.tabs,.segments,.col-toggle,.page-header,.skip-link,.notice{display:none!important}.print-only{display:block}.print-banner{font-size:1rem;font-weight:700}.view{padding:0}.table-wrap,.totals,.order-form{border-color:#999;overflow:visible}.lines-table{min-width:0}.detail-row{display:none!important}.layout-sidebar{display:block}.sidebar,.build-info-narrow,.page-actions,.form-actions,.screen-only{display:none!important}.order-form{break-after:page}@page{size:A4;margin:14mm 12mm}.view{font-size:9.5pt}.order-form,.order-form .table-wrap{background:0 0;border:0;border-radius:0;padding:0}.order-form th,.order-form td{background:0 0;border-bottom:.5pt solid #bbb;padding:3px 6px;font-size:8.5pt}.order-form th{color:#000;border-bottom:1pt solid #000}.order-form tr{break-inside:avoid}.order-form .part-no{font-size:8pt}@page costing{size:A4 landscape}.quote-sheet{page:costing}.quote-sheet .table-wrap{background:0 0;border:0;border-radius:0;padding:0}.quote-sheet .slim-table{table-layout:auto}.quote-sheet col{width:auto!important}.quote-sheet tfoot{display:table-row-group}.quote-sheet .small,.quote-sheet .status{font-size:8pt}.quote-sheet .lines-totals th,.quote-sheet .lines-totals td{color:#000;border-bottom:0}.quote-sheet .lines-totals .totals-inc th,.quote-sheet .lines-totals .totals-inc td:not(.totals-gap,.totals-end){border-top:1.5pt solid #000;font-size:10pt;font-weight:700}.quote-sheet th,.quote-sheet td{padding:3px 6px;font-size:8.5pt;box-shadow:none!important;background:0 0!important}.quote-sheet thead th{color:#000;border-bottom:1pt solid #000}.quote-sheet tbody td{border-bottom:.5pt solid #bbb}.quote-sheet tr{break-inside:avoid}.quote-sheet .clip{white-space:normal;text-overflow:clip;overflow:visible}.quote-sheet .part-no{white-space:nowrap;font-size:8pt}.quote-sheet td.num{white-space:nowrap}.quote-sheet .col-dot,.quote-sheet .col-state,.quote-sheet .line-open,.quote-sheet .line-toggle{display:none!important}.quote-sheet th.col-toggle,.quote-sheet td.col-toggle{text-align:left;white-space:normal;display:table-cell!important}.quote-sheet col.col-toggle{width:18%;display:table-column!important}.quote-sheet .print-only{display:inline}.quote-sheet .costing-head.print-only{margin-bottom:4px;display:block}.quote-sheet .figures{display:none}.order-form .part-no,.order-form td.num{white-space:nowrap;overflow-wrap:normal}.order-head{border-bottom:1.5pt solid #000;padding-bottom:8px}.order-from{letter-spacing:.04em;color:#000;font-size:14pt}.order-head h2{margin:4px 0 0;font-size:12pt}.order-totals dt,.order-totals dd{color:#000;font-size:9.5pt}.order-totals .totals-grand dt,.order-totals .totals-grand dd{border-top-color:#000;font-size:11pt}.order-form:last-child{break-after:auto}}.theme-icon{border-radius:50%;width:14px;height:14px;box-shadow:inset -4px -3px}.theme-icon-light{box-shadow:none;outline-offset:2px;background:currentColor;outline:2px dotted;transform:scale(.7)}.auth-view{width:100%;max-width:464px;margin:0 auto;padding:40px 32px 48px}.auth-form{max-width:400px}@media (width<=640px){.auth-view{padding:24px 16px 40px}}.narrow-form{max-width:440px}.plain-list{margin:0;padding:0;list-style:none}.user-menu{gap:12px}.user-name{align-items:center;gap:6px;font-size:.875rem;font-weight:600;display:inline-flex}.user-menu>summary{list-style:none}.user-menu>summary::-webkit-details-marker{display:none}.user-menu-button{gap:8px}.user-menu .menu-list{gap:2px;display:grid}.menu-heading{border-bottom:1px solid var(--border);color:var(--muted);align-items:center;gap:8px;margin:0 0 4px;padding:8px 10px 10px;font-size:.8125rem;display:flex}.menu-item{text-decoration:none}.menu-item.theme-toggle{align-items:center;gap:8px;display:flex}.build-info{color:var(--muted);gap:2px;margin:auto 0 0;padding:16px 24px 40px;font-size:.75rem;display:grid}.sidebar-logo{margin:auto 0 0;padding:24px 56px 4px 24px}.sidebar-logo img{width:100%;max-width:140px;height:auto;display:block}.sidebar-logo+.build-info{margin-top:0}.logo-dark,[data-scheme=harbour-dark] .logo-light{display:none!important}[data-scheme=harbour-dark] .logo-dark{display:block!important}.build-info-narrow{display:none}@media (width<=860px){.sidebar>.build-info,.sidebar-logo{display:none}.build-info-narrow{text-align:center;padding:32px 0 24px;display:grid}}@media (width<=640px){.user-menu .menu-list{max-width:calc(100vw - 32px);left:0;right:auto}}.price-start{grid-template-columns:minmax(0,1fr);gap:16px;max-width:860px;display:grid}.start-card>.hint{margin:0}.start-card{background:var(--surface);border:1px solid var(--border);border-radius:12px;grid-template-columns:minmax(0,1fr);gap:14px;padding:20px 22px;display:grid}.start-step{margin:0;font-size:1rem}.start-step .optional{color:var(--muted);margin-left:6px;font-size:.8125rem;font-weight:400}.drop-zone{text-align:center;border:1.5px dashed var(--border-strong);background:var(--bg);cursor:pointer;border-radius:12px;justify-items:center;gap:4px;padding:32px 16px;transition:border-color .12s,background-color .12s,box-shadow .15s,transform .15s;display:grid}.drop-zone:hover{border-color:var(--accent);background:color-mix(in srgb, var(--accent) 6%, var(--surface))}.drop-zone.is-ready{border:2px dashed var(--accent);background:color-mix(in srgb, var(--accent) 9%, var(--surface));animation:1.2s ease-in-out infinite drop-ready}.drop-zone.is-over{border:2px solid var(--accent);background:color-mix(in srgb, var(--accent) 14%, var(--surface));box-shadow:0 0 0 4px color-mix(in srgb, var(--accent) 25%, transparent);transform:scale(1.01)}.drop-zone.is-over .drop-icon{transform:translateY(-4px)}.drop-zone.is-ready .drop-title,.drop-zone.is-over .drop-title{color:var(--accent-ink)}.drop-zone.has-file{border-style:solid;border-color:var(--ok);background:color-mix(in srgb, var(--ok) 6%, var(--surface))}.drop-zone.is-wrong{border-style:solid;border-color:var(--bad)}.drop-zone.is-wrong .drop-hint{color:var(--bad)}@keyframes drop-ready{50%{box-shadow:0 0 0 6px color-mix(in srgb, var(--accent) 22%, transparent)}}@media (prefers-reduced-motion:reduce){.drop-zone,.drop-icon{transition:none!important;animation:none!important;transform:none!important}}.drop-zone:has(.drop-input:focus-visible){outline:2px solid var(--focus);outline-offset:2px}.drop-icon{fill:none;width:30px;height:30px;stroke:var(--accent);stroke-width:1.6px;stroke-linecap:round;stroke-linejoin:round;margin-bottom:4px;transition:transform .15s}.drop-title{overflow-wrap:anywhere;font-weight:600}.drop-hint{color:var(--muted);font-size:.8125rem}.drop-input{max-width:100%;color:var(--muted);margin-top:10px;font-size:.8125rem}.drop-input::file-selector-button{font:inherit;color:var(--text);background:var(--surface);border:1px solid var(--border-strong);cursor:pointer;border-radius:6px;margin-right:10px;padding:5px 12px;font-weight:600}.job-fields{grid-template-columns:repeat(4,minmax(0,1fr))}.start-actions{justify-content:flex-end;display:flex}.button-large{min-height:44px;padding:10px 32px;font-size:1rem}@media (width<=760px){.job-fields{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=520px){.job-fields{grid-template-columns:minmax(0,1fr)}.start-actions .button{width:100%}}.lines-bar{flex-wrap:wrap;align-items:center;gap:12px 16px;margin-bottom:12px;display:flex}.lines-summary{margin:0 auto 0 0}.view-switch{background:var(--surface-2);border-radius:9px;padding:3px;display:inline-flex}.view-switch label{cursor:pointer;position:relative}.view-switch input{opacity:0;width:1px;height:1px;position:absolute}.view-switch label>span{color:var(--muted);border-radius:7px;align-items:center;gap:6px;padding:5px 14px;font-size:.875rem;transition:background-color .12s,color .12s;display:inline-flex}.view-switch label:hover>span{color:var(--text)}.view-switch input:checked+span{background:var(--surface);color:var(--text);font-weight:600;box-shadow:0 1px 2px #0000001f}.view-switch input:focus-visible+span{outline:2px solid var(--focus);outline-offset:1px}.view-switch .count{text-align:center;background:var(--surface-2);border-radius:10px;min-width:20px;padding:0 6px;font-size:.75rem}.price-lines:has(.view-switch input[value=check]:checked) .line-group:not(.in-review){display:none}.all-checked{text-align:center;color:var(--muted);margin:0;padding:28px 16px;display:none}.price-lines:has(.view-switch input[value=check]:checked):not(:has(.line-group.in-review)) .all-checked{display:block}.price-lines:has(.view-switch input[value=check]:checked):not(:has(.line-group.in-review)) .table-wrap{display:none}.pill{white-space:nowrap;text-overflow:ellipsis;vertical-align:middle;border-radius:10px;max-width:100%;padding:2px 8px;font-size:.75rem;font-weight:600;line-height:1.4;display:inline-block;overflow:hidden}.pill-warn{color:color-mix(in srgb, var(--warn) 80%, var(--text));background:color-mix(in srgb, var(--warn) 16%, transparent)}.pill-bad{color:var(--bad);background:color-mix(in srgb, var(--bad) 13%, transparent)}.pill-info{color:var(--info);background:color-mix(in srgb, var(--info) 13%, transparent)}.lines-table .col-state{text-align:right;width:118px}.line-says{gap:4px;margin:0;padding:0;list-style:none;display:grid}.price-lines .line-detail{padding-top:12px}.line-edit{grid-template-columns:minmax(0,1fr) 140px;align-items:start;gap:16px;display:grid}.price-options{border:0;gap:6px;min-width:0;margin:0;padding:0;display:grid}.price-options legend{margin-bottom:6px;font-size:.8125rem;font-weight:600}.price-option{background:var(--surface);border:1px solid var(--border);cursor:pointer;border-radius:8px;grid-template-columns:auto minmax(0,1fr) auto 110px;align-items:center;gap:10px;min-height:40px;padding:6px 12px;transition:border-color .12s,background-color .12s;display:grid}.price-option:hover{border-color:var(--border-strong)}.price-option:has(input[type=radio]:checked){border-color:var(--accent);box-shadow:inset 0 0 0 1px var(--accent)}.price-option.is-disabled{cursor:not-allowed;opacity:.6}.price-option input[type=radio]{accent-color:var(--accent);margin:0}.price-option .option-main{overflow-wrap:anywhere;min-width:0}.price-option .option-desc{display:block}.best-mark{white-space:nowrap;color:var(--ok);background:color-mix(in srgb, var(--ok) 13%, transparent);border-radius:10px;margin-left:8px;padding:1px 7px;font-size:.75rem;font-weight:600;display:inline-block}.price-option .num{text-align:right;font-variant-numeric:tabular-nums}.option-manual .input-money{justify-self:end;width:110px}.line-qty .input-qty{width:100%}@media (width<=640px){.line-edit{grid-template-columns:minmax(0,1fr)}.price-option{grid-template-columns:auto minmax(0,1fr) auto}.price-option .option-tag{display:none}.option-manual .input-money{width:90px}}.choice{align-items:center;gap:8px;display:flex}.line-group.needs-attention>tr:first-child>td:first-child{box-shadow:inset 3px 0 0 var(--warn)}.line-details>summary{cursor:pointer;color:var(--accent-ink);padding:6px 0 6px 44px;font-size:.8125rem}.line-details>summary:hover{text-decoration:underline}.catalogue-table{min-width:960px}.catalogue-table .col-brand{width:90px}.catalogue-table .col-part{width:150px}.catalogue-table .col-supplier{width:170px}.catalogue-table .col-price{width:92px}.catalogue-table .col-source{width:160px}.catalogue-table .col-valid{width:104px}.quotes-table{min-width:900px}.quotes-table .col-ref{width:200px}.quotes-table .col-saved{width:140px}.quotes-table .col-customer{width:170px}.quotes-table .col-job{width:100px}.quotes-table .col-lines{width:56px}.quotes-table .col-total{width:112px}.expiring-table{min-width:480px}.expiring-table .col-supplier{width:30%}.expiring-table .col-parts{width:56px}.expiring-table .col-valid{width:104px}.review-table{min-width:880px}.review-table.review-table-new{min-width:640px}.review-table .col-row,.review-table .col-page,.review-table .col-sure{width:56px}.review-table .col-part{width:160px}.review-table .col-price{width:96px}.review-table .col-change{width:84px}.review-table .col-accept{text-align:right;width:88px}.review-table td.col-accept{padding-block:4px}.review-table .col-accept.col-keep{width:190px}.review-table td.col-keep .inline-form{white-space:nowrap;gap:6px;display:inline-flex}.list-name-form{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);flex-wrap:wrap;align-items:center;gap:10px;padding:12px 16px;display:flex}.list-name-form .column-pick{flex:360px;grid-template-columns:8rem minmax(0,1fr);max-width:40rem}.list-edit-form .column-pick{flex:260px;grid-template-columns:7.5rem minmax(0,1fr)}.list-edit-form .column-pick-date{flex:0 220px;grid-template-columns:5rem minmax(0,1fr)}.icon-link{color:var(--accent-ink);vertical-align:-3px;border-radius:4px;align-items:center;margin-left:6px;padding:2px;display:inline-flex}.icon-link:hover{background:var(--surface-2)}.icon-link .icon{fill:none;stroke:currentColor;stroke-width:1.8px;stroke-linecap:round;stroke-linejoin:round;width:16px;height:16px}.job-progress{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);gap:10px;max-width:640px;padding:20px;display:grid}.job-stage{margin:0;font-weight:600}.job-bar{width:100%;height:12px;accent-color:var(--accent)}.job-progress .hint{margin:0}.missing-table{min-width:1080px}.missing-table .col-brand{width:100px}.missing-table .col-category{width:130px}.missing-table .col-tick{text-align:center;width:40px}.missing-table .col-part,.missing-table .col-supplier{width:160px}.missing-table .col-source{width:150px}.missing-table .col-price{width:96px}.missing-table .col-since{width:110px}.missing-table input[type=checkbox]{vertical-align:middle;width:16px;height:16px;accent-color:var(--accent);cursor:pointer;margin:0}.missing-table tr:has(input[name=priceId]:checked) td{background:var(--row-hover)}.left-out-table{min-width:760px}.left-out-table .col-part{width:170px}.left-out-table .col-brand{width:110px}.left-out-table .col-category{width:150px}.left-out-table .col-price{width:110px}.users-table{min-width:720px}.users-table .col-name{width:220px}.users-table .col-access{width:80px}.users-table .col-added{width:110px}.activity-table{min-width:760px}.activity-table .col-when{width:150px}.activity-table .col-who{width:160px}.activity-table .col-kind{width:130px}.activity-detail{white-space:normal;overflow-wrap:anywhere;margin:0;padding-top:8px}.review-detail p{margin:0}.review-detail .row-check{flex-wrap:wrap;margin-top:4px}.review-detail .row-check .field{flex:none}.line-choices{grid-template-columns:minmax(0,1fr) auto auto;align-items:start;max-width:900px}.line-choices select{width:100%}.sticky-actions{z-index:2;background:var(--bg);border-top:1px solid var(--border);flex-wrap:wrap;align-items:center;padding:12px 0;position:sticky;bottom:0}.title-badge{vertical-align:middle;border-radius:12px;margin-left:12px;padding:3px 10px;font-size:.8125rem;font-weight:600;display:inline-block}.title-badge-warn{color:color-mix(in srgb, var(--warn) 80%, var(--text));background:color-mix(in srgb, var(--warn) 16%, transparent)}.title-badge-ok{color:color-mix(in srgb, var(--ok) 85%, var(--text));background:color-mix(in srgb, var(--ok) 15%, transparent)}.draft-note{margin-top:2px;display:block}.sticky-totals.totals-draft .totals-inc{color:var(--text);background:var(--surface-2);border-top:1px solid var(--border)}.totals-stack{gap:10px;min-width:260px;margin-left:auto;display:grid}.totals-stack .sticky-totals{margin:0}@media (width<=640px){.totals-stack{width:100%;margin-left:0}}.sticky-totals{font-variant-numeric:tabular-nums;min-width:260px;margin:0 0 0 auto;display:grid}.sticky-totals>div{justify-content:space-between;gap:24px;padding:2px 12px;display:flex}.sticky-totals dt,.sticky-totals dd{margin:0}.sticky-totals .totals-ex{background:var(--surface-2);border-top:2px solid var(--border-strong);font-weight:600}.sticky-totals .totals-gst{color:var(--muted);background:var(--surface-2)}.sticky-totals .totals-inc{color:var(--on-accent);background:var(--accent);padding-top:4px;padding-bottom:4px;font-size:1rem;font-weight:700}@media (width<=640px){.sticky-actions .hint{display:none}}.lines-table.lines-saved .col-source{width:210px}.quote-sheet+.sticky-actions{border-top:0;align-items:flex-end}.bar-start{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.quote-totals{font-variant-numeric:tabular-nums;width:430px;margin:0 1px 0 auto;display:grid}.quote-totals .totals-note{text-align:right;margin:0 0 4px;padding-right:44px}.quote-totals .sticky-totals{min-width:0;margin:0}.quote-totals .sticky-totals>div{grid-template-columns:minmax(0,1fr) 104px 36px;gap:0;padding:7px 0;display:grid}.quote-totals .sticky-totals dt,.quote-totals .sticky-totals dd{text-align:right;padding-right:8px}.quote-totals .sticky-totals .totals-inc{padding-top:8px;padding-bottom:8px}@media (width<=640px){.quote-totals{width:100%}}.quote-sheet .figures-quote{margin-bottom:20px}@media screen{.quote-sheet .lines-totals{display:none}}.costing-head p{margin:0 0 4px}.page-actions{flex-wrap:wrap}@media (width<=640px){.line-choices{grid-template-columns:minmax(0,1fr)}.line-details>summary,.line-detail{padding-left:0}}.row-actions{flex-wrap:wrap;gap:6px;display:flex}.add-person>summary{margin-bottom:12px;list-style:none}.add-person>summary::-webkit-details-marker{display:none}.temp-password{letter-spacing:.04em;background:var(--surface-2);-webkit-user-select:all;user-select:all;border-radius:4px;padding:2px 6px;font-size:1.05rem;font-weight:700}.part-actions{border-top:1px solid var(--border);gap:12px;padding-top:8px;display:grid}.action-form{flex-wrap:wrap;align-items:flex-end;gap:8px 12px;display:flex}.action-form .field{flex:220px}.action-form .field-money{flex:0 0 130px}.action-form .field>span{font-size:.8125rem;font-weight:600}.notice-list{margin:0;padding-left:1.25rem}.input-cell{width:11rem;min-height:32px;padding:4px 8px}.input-price{text-align:right;font-variant-numeric:tabular-nums;width:7rem}.row-check{white-space:nowrap;gap:6px;display:flex}.figures.figures-six{grid-template-columns:repeat(3,minmax(0,1fr))}@media (width>=1100px){.figures.figures-six{grid-template-columns:repeat(6,minmax(0,1fr))}}.view>.figures.figures-two{grid-template-columns:repeat(2,minmax(0,1fr));max-width:66.6667%}@media (width>=1100px){.view>.figures.figures-two{max-width:33.3333%}}@media (width<=520px){.figures.figures-six{grid-template-columns:repeat(2,minmax(0,1fr))}.view>.figures.figures-two{max-width:none}}.figures-compact .figure{padding:8px 14px}.figures-compact .figure dt{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.figures-compact .figure dd{margin-top:2px;font-size:1.125rem}.columns-used{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:12px 16px}.columns-title{margin:0;font-size:.9375rem;font-weight:600}summary.columns-title{cursor:pointer}summary.columns-title .muted{margin-left:6px;font-weight:400}.columns-used[open]>summary,.columns-used .columns-form{margin-bottom:10px}.columns-form{grid-template-columns:repeat(auto-fill,minmax(260px,1fr));align-items:center;gap:8px 24px;display:grid}.column-pick{color:var(--muted);white-space:nowrap;grid-template-columns:6.5rem minmax(0,1fr);align-items:center;gap:10px;font-size:.8125rem;display:grid}.column-pick .input{min-width:0}.columns-used .hint{margin:0}.upload-step{max-width:760px}.section-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);gap:12px;padding:20px;display:grid}.section-card h2{margin:0;font-size:1.125rem}.section-card .empty{padding:0}.list-facts-head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;display:flex}.list-facts{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px 24px;margin:0;display:grid}.list-facts dt{color:var(--muted);font-size:.8125rem}.list-facts dd{overflow-wrap:anywhere;margin:2px 0 0}.upload-step h2{align-items:center;gap:10px;margin:0;font-size:1.125rem;display:flex}.step-number{background:var(--accent);width:26px;height:26px;color:var(--on-accent);border-radius:50%;place-items:center;font-size:.875rem;font-weight:700;display:inline-grid}.two-choices{grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:stretch;gap:14px;display:grid}.choice-card{background:var(--bg);border:1.5px solid var(--border-strong);cursor:pointer;border-radius:12px;grid-template-columns:minmax(0,1fr);align-content:center;gap:14px;min-width:0;min-height:150px;padding:24px 22px;transition:border-color .12s,background-color .12s,box-shadow .15s,opacity .15s;display:grid}.choice-card:hover{border-color:var(--accent);background:color-mix(in srgb, var(--accent) 6%, var(--surface))}.choice-card .input{text-overflow:ellipsis;width:100%;min-width:0}.choice-card-title{text-align:center;font-size:1.125rem;font-weight:700}.choice-card-none{color:var(--muted);text-align:center;font-size:.875rem}.choice-card.is-empty{cursor:default;opacity:.55;border-style:dashed}.choice-card.is-empty:hover{border-color:var(--border-strong);background:var(--bg)}.choice-card.is-chosen{border:2px solid var(--accent);background:color-mix(in srgb, var(--accent) 10%, var(--surface));box-shadow:0 0 0 3px color-mix(in srgb, var(--accent) 18%, transparent)}.choice-card.is-other{opacity:.6}.choice-card.is-other:hover,.choice-card.is-other:focus-within{opacity:1}.two-choices-or{border:1px solid var(--border);background:var(--surface);width:36px;height:36px;color:var(--muted);border-radius:50%;align-self:center;place-items:center;font-size:.8125rem;font-weight:600;display:grid}@media (width<=640px){.two-choices{grid-template-columns:minmax(0,1fr)}.two-choices-or{justify-self:center}.choice-card{min-height:0}}.step-actions{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.step-actions>.button-primary{margin-left:auto}.step-actions>.hint{text-align:right;flex:200px}.step-summary{margin:0}.step-summary .tag{margin-left:8px}.remove-person>summary{list-style:none}.remove-person>summary::-webkit-details-marker{display:none}.person-panel{gap:12px;display:grid}.button-danger{background:var(--bad);border-color:var(--bad);color:#fff}.button-danger:hover{filter:brightness(.92);color:#fff}.delete-quote>summary{list-style:none}.delete-quote>summary::-webkit-details-marker{display:none}.delete-quote[open]>summary{border-color:var(--bad);color:var(--bad)}.delete-panel{gap:12px;width:300px;padding:14px;display:grid}.delete-panel p{margin:0;font-size:.875rem;line-height:1.45}.nav-heading{border-top:1px solid var(--border);letter-spacing:.1em;text-transform:uppercase;color:var(--muted);cursor:default;-webkit-user-select:none;user-select:none;margin:14px 0 2px;padding:14px 12px 4px;font-size:.6875rem;font-weight:700}.nav-group{flex-direction:column;gap:4px;display:flex}@media (width<=860px){.nav-heading{border-top:0;border-left:1px solid var(--border);align-self:center;margin:0 4px 0 12px;padding:0 0 0 12px}.nav-group{flex-direction:row}}.price-box{white-space:nowrap}.review-table .col-price.col-price-box,.catalogue-table .col-price.col-price-box,.missing-table .col-price.col-price-box,.left-out-table .col-price.col-price-box,.lines-table .col-unit.col-unit-box{width:144px}
