:root{--font-display:var(--font-display,"Bricolage Grotesque"),"Helvetica Neue",sans-serif;--font-body:var(--font-body,"Onest"),-apple-system,BlinkMacSystemFont,sans-serif;--font-mono:var(--font-mono,"JetBrains Mono"),ui-monospace,monospace;--fs-xs:0.75rem;--fs-sm:0.8125rem;--fs-base:0.9375rem;--fs-md:1.0625rem;--fs-lg:1.375rem;--fs-xl:1.875rem;--fs-2xl:2.5rem;--bg:#f7f8fa;--surface:#fff;--surface-2:#f2f4f7;--surface-3:#eaecf0;--ink:#101828;--ink-2:#344054;--ink-3:#475467;--muted:#667085;--muted-2:#98a2b3;--border:#e4e7ec;--border-2:#d0d5dd;--border-3:#98a2b3;--brand:#0f4a3a;--brand-2:#0e7a5a;--brand-ink:#06241b;--brand-soft:#e6f4ef;--brand-soft-2:#c7e4d9;--brand-line:#b3d6c7;--brand-fg:#fff;--ok:#027a48;--ok-soft:#ecfdf3;--ok-line:#a6f4c5;--warn:#b54708;--warn-soft:#fffaeb;--warn-line:#fedf89;--bad:#b42318;--bad-soft:#fef3f2;--bad-line:#fecdca;--info:#175cd3;--info-soft:#eff8ff;--info-line:#b2ddff;--s-1:4px;--s-2:8px;--s-3:12px;--s-4:16px;--s-5:24px;--s-6:32px;--s-7:48px;--s-8:64px;--s-9:96px;--r-sm:6px;--r-md:8px;--r-lg:12px;--r-xl:16px;--ease:cubic-bezier(0.4,0,0.2,1);--t-fast:100ms;--t-med:160ms;--t-slow:240ms;--shadow-xs:0 1px 2px rgba(16,24,40,.05);--shadow-sm:0 1px 3px rgba(16,24,40,.1),0 1px 2px rgba(16,24,40,.06);--shadow-md:0 4px 8px -2px rgba(16,24,40,.1),0 2px 4px -2px rgba(16,24,40,.06);--shadow-lg:0 12px 16px -4px rgba(16,24,40,.08),0 4px 6px -2px rgba(16,24,40,.03)}*,:after,:before{box-sizing:border-box}*{margin:0;padding:0}body,html{height:100%}body{font-family:var(--font-body);font-size:var(--fs-base);font-weight:400;line-height:1.5;color:var(--ink);background:var(--bg);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility}h1,h2,h3,h4{font-family:var(--font-display);font-weight:600;letter-spacing:-.02em;color:var(--ink);line-height:1.2}h1{font-size:var(--fs-xl);font-variation-settings:"opsz" 32;letter-spacing:-.025em}h2{font-size:var(--fs-lg)}h3{font-size:var(--fs-md);letter-spacing:-.01em}h3,h4{font-weight:600}h4,p{font-size:var(--fs-base)}p{line-height:1.55;color:var(--ink-2)}a{color:var(--brand-2);text-decoration:none;font-weight:500;transition:color var(--t-fast) var(--ease)}a:hover{color:var(--brand)}strong{font-weight:600;color:var(--ink)}.muted{color:var(--muted)}.error,.muted{font-size:var(--fs-sm)}.error{color:var(--bad);margin:var(--s-2) 0}.eyebrow{font-family:var(--font-body);font-size:.6875rem;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);font-weight:600}.serif-italic{font-family:var(--font-display);font-style:italic;font-weight:500}.mono,.num{font-family:var(--font-mono);font-feature-settings:"tnum" on}@keyframes rise{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:none}}[data-stagger]>*{opacity:0;animation:rise .28s var(--ease) forwards}[data-stagger]>:first-child{animation-delay:30ms}[data-stagger]>:nth-child(2){animation-delay:80ms}[data-stagger]>:nth-child(3){animation-delay:.13s}[data-stagger]>:nth-child(4){animation-delay:.18s}[data-stagger]>:nth-child(5){animation-delay:.23s}[data-stagger]>:nth-child(n+6){animation-delay:.28s}.centered{min-height:100vh;align-items:center;justify-content:center;padding:var(--s-5);background:radial-gradient(circle at 25% 20%,rgba(15,74,58,.04),transparent 50%),radial-gradient(circle at 75% 80%,rgba(14,122,90,.03),transparent 60%),var(--bg)}.card,.centered{display:flex;position:relative}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);padding:var(--s-6) var(--s-6);width:400px;flex-direction:column;gap:var(--s-3);box-shadow:var(--shadow-md)}.card h1{font-size:var(--fs-2xl);font-weight:600;letter-spacing:-.035em;color:var(--ink);margin-bottom:var(--s-1);line-height:1.05}.card h1 em{font-style:normal;color:var(--brand-2);font-weight:600}label{display:flex;flex-direction:column;gap:6px;font-family:var(--font-body);font-size:var(--fs-sm);font-weight:500;color:var(--ink-2);letter-spacing:0;text-transform:none}input[type=date],input[type=email],input[type=number],input[type=password],input[type=search],input[type=tel],input[type=text],select,textarea{font-family:var(--font-body);font-size:var(--fs-base);font-weight:400;color:var(--ink);background:var(--surface);padding:10px var(--s-3);border:1px solid var(--border-2);border-radius:var(--r-sm);text-transform:none;letter-spacing:0;box-shadow:var(--shadow-xs);transition:border-color var(--t-fast) var(--ease),box-shadow var(--t-fast) var(--ease)}input::placeholder,textarea::placeholder{color:var(--muted-2)}input:focus,select:focus,textarea:focus{outline:none;border-color:var(--brand-2);box-shadow:0 0 0 3px rgba(14,122,90,.15),var(--shadow-xs)}textarea{resize:vertical;min-height:84px;line-height:1.5}input[type=number]{-moz-appearance:textfield;-webkit-appearance:textfield;appearance:textfield}input[type=number]::-webkit-inner-spin-button,input[type=number]::-webkit-outer-spin-button{-webkit-appearance:none;appearance:none;margin:0}input[type=color]{padding:2px;height:40px;width:56px;border-radius:var(--r-sm);cursor:pointer;background:var(--surface)}input[type=checkbox]{width:16px;height:16px;accent-color:var(--brand);cursor:pointer}button{font-family:var(--font-body);font-size:var(--fs-sm);font-weight:600;letter-spacing:0;padding:9px 14px;border:1px solid var(--brand);border-radius:var(--r-sm);background:var(--brand);color:var(--brand-fg);cursor:pointer;box-shadow:var(--shadow-xs);transition:background var(--t-fast) var(--ease),border-color var(--t-fast) var(--ease),transform var(--t-fast) var(--ease),box-shadow var(--t-fast) var(--ease)}button:hover:not(:disabled){background:var(--brand-2);border-color:var(--brand-2);box-shadow:var(--shadow-sm)}button:active:not(:disabled){transform:translateY(1px);box-shadow:var(--shadow-xs)}button:disabled{opacity:.5;cursor:not-allowed;box-shadow:none}.toolbar button,.toolbar label.upload,button.ghost{background:var(--surface);color:var(--ink-2);border:1px solid var(--border-2);box-shadow:var(--shadow-xs)}.toolbar button:hover:not(:disabled),.toolbar label.upload:hover,button.ghost:hover:not(:disabled){background:var(--surface-2);color:var(--ink);border-color:var(--border-2)}.toolbar .primary,button.primary{background:var(--brand);color:var(--brand-fg);border-color:var(--brand)}.toolbar .primary:hover:not(:disabled),button.primary:hover:not(:disabled){background:var(--brand-2);border-color:var(--brand-2)}button.danger{background:var(--surface);color:var(--bad);border-color:var(--bad-line)}button.danger:hover:not(:disabled){background:var(--bad-soft);color:var(--bad);border-color:var(--bad)}.shell{display:grid;grid-template-columns:260px 1fr;min-height:100vh;background:var(--bg)}.nav{background:var(--surface);border-right:1px solid var(--border);padding:var(--s-5) var(--s-3) var(--s-4);display:flex;flex-direction:column;gap:var(--s-3);position:-webkit-sticky;position:sticky;top:0;height:100vh}.nav .brand{font-family:var(--font-display);font-size:1.5rem;font-weight:700;font-variation-settings:"opsz" 32;letter-spacing:-.035em;color:var(--ink);line-height:1;margin:0 var(--s-2) var(--s-4);padding:var(--s-2) 0;display:block;position:relative}.nav .brand:after{content:"";position:absolute;left:0;bottom:-2px;width:28px;height:3px;background:var(--brand-2);border-radius:2px}.nav .brand em{font-style:normal;color:var(--brand-2);font-weight:700}.nav .brand-link{text-decoration:none}.nav .brand-link:hover{color:var(--ink)}.nav .brand-link:hover em{color:var(--brand)}.nav .nav-eyebrow{font-family:var(--font-body);font-size:.6875rem;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-3);font-weight:600;padding:0 var(--s-3) 6px;margin-top:var(--s-3)}.nav nav{display:flex;flex-direction:column;gap:1px}.nav nav a{display:flex;align-items:center;color:var(--ink-2);padding:9px var(--s-3);border-radius:var(--r-sm);font-size:var(--fs-sm);font-weight:500;letter-spacing:0;position:relative;transition:background var(--t-fast) var(--ease),color var(--t-fast) var(--ease),padding-left var(--t-fast) var(--ease)}.nav nav a:hover{background:var(--surface-2);color:var(--ink)}.nav nav a.active{background:var(--brand-soft);color:var(--brand-ink);font-weight:600;padding-left:calc(var(--s-3) + 4px)}.nav nav a.active:before{content:"";position:absolute;left:4px;top:18%;bottom:18%;width:3px;background:var(--brand);border-radius:2px}.nav .sign-out{margin-top:auto;background:transparent;color:var(--muted);border:1px solid transparent;padding:7px var(--s-3);font-weight:500;font-size:var(--fs-xs);text-align:left;box-shadow:none;border-radius:var(--r-sm)}.nav .sign-out:hover:not(:disabled){background:var(--surface-2);color:var(--ink-2)}.content{padding:var(--s-7) var(--s-7);max-width:1360px;width:100%}.content>section+section{margin-top:var(--s-7)}.page-header{display:flex;flex-direction:column;gap:6px;margin-bottom:var(--s-6);padding-bottom:var(--s-4);position:relative;border-bottom:1px solid var(--border)}.page-header:after{content:"";position:absolute;left:0;bottom:-1px;width:40px;height:2px;background:var(--brand-2);border-radius:2px}.page-header h1{margin:0}.page-header .lede{color:var(--ink-3);font-size:var(--fs-base);max-width:70ch}.page-header.with-action{display:grid;grid-template-columns:1fr auto;align-items:end;grid-gap:var(--s-5);gap:var(--s-5)}.page-header.with-action>.header-text{display:flex;flex-direction:column;gap:6px}.page-header.with-action>.header-action{display:flex;align-items:center;gap:var(--s-2);align-self:end}.customer-picker,.line-desc-autocomplete{position:relative}.customer-picker .picker-row input,.line-desc-autocomplete>input{width:100%}.dropdown{position:absolute;top:calc(100% + 4px);left:0;right:0;z-index:20;background:var(--surface);border:1px solid var(--border);border-radius:var(--r-md);box-shadow:var(--shadow-lg);padding:4px;max-height:280px;overflow-y:auto;display:flex;flex-direction:column;gap:1px;animation:dropdown-in .14s var(--ease)}@keyframes dropdown-in{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:none}}.dropdown .row{display:flex;align-items:center;gap:var(--s-3);width:100%;padding:9px 12px;background:transparent;border:none;border-radius:var(--r-sm);color:var(--ink);font-family:var(--font-body);font-size:var(--fs-sm);font-weight:500;text-align:left;cursor:pointer;transition:background var(--t-fast) var(--ease),color var(--t-fast) var(--ease);min-height:0}.dropdown .row>span:first-child{flex:1 1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dropdown .row .muted{font-family:var(--font-mono);font-feature-settings:"tnum" on;font-size:.75rem;color:var(--muted);font-weight:400;flex-shrink:0}.dropdown .row:focus-visible,.dropdown .row:hover{background:var(--surface-2);outline:none}.dropdown .row:active{background:var(--surface-3)}.dropdown>.row.muted{cursor:default;color:var(--muted);font-style:italic;font-weight:400}.dropdown>.row.muted:hover{background:transparent}.dropdown .row.add-new{margin-top:2px;padding-top:12px;border-top:1px solid var(--border);color:var(--brand);font-weight:600;border-radius:0 0 var(--r-sm) var(--r-sm)}.customer-picker-chip,.dropdown .row.add-new:hover{background:var(--brand-soft)}.customer-picker-chip{display:inline-flex;align-items:center;gap:10px;padding:8px 8px 8px 12px;border:1px solid var(--brand-line);border-radius:var(--r-sm);color:var(--brand-ink);font-family:var(--font-body);font-size:var(--fs-sm)}.customer-picker-chip-name{font-weight:500}.customer-picker-chip-clear{background:transparent;border:1px solid transparent;color:var(--brand-ink);cursor:pointer;font-size:var(--fs-xs);font-weight:500;padding:3px 8px;border-radius:4px;opacity:.7;transition:opacity var(--t-fast) var(--ease),background var(--t-fast) var(--ease),border-color var(--t-fast) var(--ease)}.customer-picker-chip-clear:hover{opacity:1;background:var(--surface);border-color:var(--brand-line)}@keyframes copy-spin{to{transform:rotate(1turn)}}.copy-icon{flex-shrink:0;vertical-align:-2px}.copy-icon-spinning{animation:copy-spin .7s linear infinite;transform-origin:50% 50%}.row-actions .ghost-action{display:inline-flex;align-items:center;gap:5px}.header-duplicate{display:inline-flex;align-items:center;gap:6px;padding:7px 12px;background:transparent;border:1px solid var(--border);border-radius:var(--r-sm);color:var(--ink-2);font-family:var(--font-body);font-size:var(--fs-sm);font-weight:500;cursor:pointer;transition:color var(--t-fast) var(--ease),background var(--t-fast) var(--ease),border-color var(--t-fast) var(--ease)}.header-duplicate:hover:not(:disabled){color:var(--brand);border-color:var(--brand-line);background:var(--brand-soft)}.header-duplicate:disabled{cursor:not-allowed;opacity:.55}@keyframes copy-banner-in{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:none}}.copy-banner{display:flex;align-items:center;gap:var(--s-3);padding:10px 14px;margin-bottom:var(--s-3);background:var(--brand-soft);border:1px solid var(--brand-line);border-left:3px solid var(--brand);border-radius:var(--r-md);font-size:var(--fs-sm);color:var(--brand-ink);animation:copy-banner-in .22s var(--ease)}.copy-banner .copy-banner-source{font-family:var(--font-mono);font-feature-settings:"tnum" on;font-weight:600}.copy-banner-spacer{flex:1 1}.copy-banner-dismiss{background:transparent;border:none;color:var(--brand-ink);cursor:pointer;font-size:var(--fs-xs);font-weight:500;padding:4px 8px;border-radius:var(--r-sm);opacity:.7;transition:opacity var(--t-fast) var(--ease),background var(--t-fast) var(--ease)}.copy-banner-dismiss:hover{opacity:1;background:var(--brand-soft-2,var(--brand-soft))}.pagination{display:flex;align-items:center;gap:var(--s-3);margin-top:var(--s-4);font-size:var(--fs-sm)}.pagination .info{color:var(--muted);font-family:var(--font-mono);font-size:var(--fs-xs)}.pagination button{padding:6px 12px;font-size:var(--fs-sm)}.filter-bar{display:flex;gap:var(--s-2);align-items:center;margin-bottom:var(--s-4);flex-wrap:wrap}.filter-bar input,.filter-bar select{padding:8px var(--s-3);font-size:var(--fs-sm)}.filter-bar input{min-width:280px}.links-row{display:flex;align-items:center;gap:var(--s-2);flex-wrap:wrap;margin-top:var(--s-3)}.links-row a{display:inline-flex;align-items:center;gap:6px;padding:6px var(--s-3);border:1px solid var(--border-2);border-radius:var(--r-sm);background:var(--surface);color:var(--ink-2);font-size:var(--fs-sm);font-weight:500;text-decoration:none;box-shadow:var(--shadow-xs);transition:background var(--t-fast) var(--ease),border-color var(--t-fast) var(--ease),color var(--t-fast) var(--ease)}.links-row a:before{font-family:var(--font-body);font-size:.85em;font-weight:500;opacity:.7}.links-row a.pdf-link:before{content:"↗"}.links-row a.pay-link:before{content:"$"}.links-row a:hover{background:var(--brand-soft);border-color:var(--brand-line);color:var(--brand-ink)}.links-row>span{font-size:var(--fs-xs);color:var(--muted);margin-left:var(--s-2)}.list{list-style:none;display:flex;flex-direction:column;gap:var(--s-2);margin-top:var(--s-4)}.list .card{width:100%;padding:0;background:var(--surface);border:1px solid var(--border);border-radius:var(--r-md);box-shadow:var(--shadow-xs);transition:border-color var(--t-fast) var(--ease),box-shadow var(--t-fast) var(--ease),transform var(--t-fast) var(--ease)}.list .card:hover{border-color:var(--border-2);box-shadow:var(--shadow-sm);transform:translateY(-1px)}.card-link{display:grid;grid-template-columns:1.5fr auto auto auto;align-items:center;grid-gap:var(--s-5);gap:var(--s-5);padding:var(--s-4) var(--s-5);color:inherit}.card-link .primary-text{font-weight:600;color:var(--ink);font-size:var(--fs-base)}.card-link .amount{font-family:var(--font-mono);font-feature-settings:"tnum" on;font-size:var(--fs-base);font-weight:500;color:var(--ink);text-align:right}.pill{display:inline-flex;align-items:center;font-size:.6875rem;font-weight:600;letter-spacing:.04em;text-transform:uppercase;padding:3px 8px;border-radius:6px;font-family:var(--font-body);border:1px solid transparent}.pill.pill-draft{background:var(--surface-2);color:var(--ink-3);border-color:var(--border)}.pill.pill-awaiting{background:var(--warn-soft);color:var(--warn);border-color:var(--warn-line)}.pill.pill-active,.pill.pill-issued{background:var(--info-soft);color:var(--info);border-color:var(--info-line)}.pill.pill-paid{background:var(--ok-soft);color:var(--ok);border-color:var(--ok-line)}.pill.pill-partial,.pill.pill-partially-paid{background:var(--info-soft);color:var(--info);border-color:var(--info-line)}.pill.pill-cancelled,.pill.pill-failed,.pill.pill-overdue{background:var(--bad-soft);color:var(--bad);border-color:var(--bad-line)}.pill.pill-confidence{background:var(--brand-soft);color:var(--brand-ink);border-color:var(--brand-line)}.pill.pill-suspended{background:var(--warn-soft);color:var(--warn);border-color:var(--warn-line)}.pill.pill-deleted{background:var(--bad-soft);color:var(--bad);border-color:var(--bad-line)}.badge{display:inline-flex;align-items:center;font-size:.6875rem;font-weight:600;letter-spacing:.04em;text-transform:uppercase;padding:3px 8px;border-radius:6px;border:1px solid var(--border)}.badge,.badge-draft{background:var(--surface-2);color:var(--ink-3)}.badge-draft{border-color:var(--border)}.badge-awaiting,.badge-awaiting_approval{background:var(--warn-soft);color:var(--warn);border-color:var(--warn-line)}.badge-active,.badge-issued{background:var(--info-soft);color:var(--info);border-color:var(--info-line)}.badge-paid{background:var(--ok-soft);color:var(--ok);border-color:var(--ok-line)}.badge-partially_paid{background:var(--info-soft);color:var(--info);border-color:var(--info-line)}.badge-cancelled,.badge-overdue{background:var(--bad-soft);color:var(--bad);border-color:var(--bad-line)}.detail{display:flex;flex-direction:column;gap:var(--s-5)}.split{display:grid;grid-template-columns:2fr 1fr;grid-gap:var(--s-4);gap:var(--s-4);margin-top:var(--s-4)}.split>aside,.split>div{display:flex;flex-direction:column;gap:var(--s-4);min-width:0}.editor-section{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-md);padding:var(--s-4) var(--s-5);box-shadow:var(--shadow-xs)}.editor-section+.editor-section{margin-top:0}.editor-section>h2{font-family:var(--font-display);font-size:var(--fs-md);font-weight:600;letter-spacing:-.01em;color:var(--ink);margin:0 0 var(--s-3);padding-bottom:var(--s-2);position:relative;border-bottom:1px solid var(--border)}.editor-section>h2:after{content:"";position:absolute;left:0;bottom:-1px;width:24px;height:2px;background:var(--brand-2);border-radius:2px}.editor-section>.eyebrow{display:block;margin-bottom:4px}.notes-terms-section .notes-terms-grid{display:grid;grid-template-columns:1fr 1fr;grid-gap:var(--s-4);gap:var(--s-4);margin-top:var(--s-3)}@media (max-width:820px){.notes-terms-section .notes-terms-grid{grid-template-columns:1fr}}.notes-terms-section .field-block{display:flex;flex-direction:column;gap:var(--s-1)}.notes-terms-section .field-block>span{font-family:var(--font-body);font-size:.6875rem;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-3);font-weight:600}.notes-terms-section textarea{width:100%;font-family:inherit;font-size:var(--fs-sm);line-height:1.55;resize:vertical}table.lines,table.product-table{width:100%;border-collapse:separate;border-spacing:0;font-size:var(--fs-sm)}table.lines td,table.lines th,table.product-table td,table.product-table th{text-align:left;padding:10px var(--s-3);border-bottom:1px solid var(--border)}table.lines th,table.product-table th{font-family:var(--font-body);font-size:.6875rem;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-3);font-weight:600;background:var(--surface-2);border-bottom:1px solid var(--border-2)}table.product-table{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-md);overflow:hidden;box-shadow:var(--shadow-xs)}table.product-table tr:hover td{background:var(--surface-2)}table.product-table tr:last-child td{border-bottom:none}table.lines tr.needs-price td{color:var(--bad);font-style:italic}table.product-table tr.inactive td{color:var(--muted)}table.product-table input,table.product-table select{width:100%;padding:5px 8px;font-size:var(--fs-sm);border:1px solid transparent;background:transparent;border-radius:var(--r-sm);box-shadow:none}table.product-table input:focus,table.product-table select:focus{background:var(--surface);border-color:var(--brand-2);box-shadow:0 0 0 3px rgba(14,122,90,.12)}.totals{margin-top:var(--s-4);padding-top:var(--s-3);border-top:1px solid var(--border-2);font-family:var(--font-mono);font-size:var(--fs-md);font-weight:500;text-align:right;color:var(--ink)}.totals .label{font-family:var(--font-body);font-size:.6875rem;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);font-weight:600;margin-right:var(--s-3)}.amount{font-family:var(--font-mono);font-feature-settings:"tnum" on;font-weight:500}table .amount,table td.amount{text-align:right;white-space:nowrap}table th.amount{text-align:right}.source-message{background:var(--surface-2);border-left:3px solid var(--brand-line);padding:var(--s-3) var(--s-4);border-radius:0 var(--r-sm) var(--r-sm) 0;white-space:pre-wrap;word-break:break-word;font-size:var(--fs-sm);line-height:1.6;color:var(--ink-2)}.toolbar{display:flex;gap:var(--s-2);align-items:center;margin:var(--s-3) 0;flex-wrap:wrap}.empty-state{padding:var(--s-7) var(--s-5);text-align:center;background:var(--surface);border:1px solid var(--border);border-radius:var(--r-md)}.empty-state .headline{font-family:var(--font-display);font-size:var(--fs-lg);font-weight:600;color:var(--ink);letter-spacing:-.02em}.empty-state .sub{color:var(--muted);margin-top:var(--s-2)}.customer-form{display:flex;flex-direction:column;gap:var(--s-3);max-width:480px}.customer-form .actions{display:flex;gap:var(--s-2);margin-top:var(--s-3)}.form-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-md);padding:var(--s-5) var(--s-5);gap:var(--s-3);box-shadow:var(--shadow-xs)}.form-card,.form-card label.block{display:flex;flex-direction:column}.form-card label.block{gap:6px}.form-section-title{font-family:var(--font-body);font-size:.6875rem;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);font-weight:700;margin-top:var(--s-4);padding-top:var(--s-3);border-top:1px solid var(--border)}.form-card .form-section-title:first-child{margin-top:0;padding-top:0;border-top:none}.form-footer{display:flex;gap:var(--s-2);justify-content:flex-end;margin-top:var(--s-4);padding-top:var(--s-4);border-top:1px solid var(--border)}.button-primary{padding:9px 16px;background:var(--brand);color:var(--brand-fg);border:1px solid var(--brand);border-radius:var(--r-sm);cursor:pointer;font-size:var(--fs-sm);font-weight:600;box-shadow:var(--shadow-xs);transition:background var(--t-fast) var(--ease)}.button-primary:hover:not(:disabled){background:var(--brand-2);border-color:var(--brand-2)}.button-primary:disabled{opacity:.5;cursor:not-allowed}.button-secondary{display:inline-block;padding:8px var(--s-3);background:var(--surface);border:1px solid var(--border-2);border-radius:var(--r-sm);cursor:pointer;font-size:var(--fs-sm);color:var(--ink-2);box-shadow:var(--shadow-xs);transition:background var(--t-fast) var(--ease),border-color var(--t-fast) var(--ease)}.button-secondary:hover{background:var(--surface-2);color:var(--ink)}.button-danger{padding:8px var(--s-3);background:var(--surface);border:1px solid var(--bad-line);color:var(--bad);border-radius:var(--r-sm);cursor:pointer;font-size:var(--fs-sm);box-shadow:var(--shadow-xs);transition:background var(--t-fast) var(--ease)}.button-danger:hover{background:var(--bad-soft);border-color:var(--bad)}.button-danger:disabled{opacity:.4;cursor:not-allowed}.button-link{display:inline-flex;padding:9px 16px;border-radius:var(--r-sm);background:var(--brand);color:var(--brand-fg);font-size:var(--fs-sm);font-weight:600;text-decoration:none;box-shadow:var(--shadow-xs)}.button-link:hover{background:var(--brand-2);color:var(--brand-fg)}.kpi-grid{display:grid;grid-template-columns:repeat(3,1fr);grid-gap:var(--s-3);gap:var(--s-3);margin-top:var(--s-4)}.kpi{display:flex;flex-direction:column;gap:var(--s-2);padding:var(--s-4) var(--s-5);background:var(--surface);border:1px solid var(--border);border-radius:var(--r-md);box-shadow:var(--shadow-xs);text-decoration:none;transition:border-color var(--t-fast) var(--ease),transform var(--t-fast) var(--ease),box-shadow var(--t-fast) var(--ease)}.kpi,.kpi:hover{color:var(--ink)}.kpi:hover{border-color:var(--border-2);transform:translateY(-1px);box-shadow:var(--shadow-sm)}.kpi-label{font-family:var(--font-body);font-size:.6875rem;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);font-weight:600}.kpi-value{font-family:var(--font-display);font-size:1.875rem;font-weight:600;letter-spacing:-.03em;color:var(--ink);line-height:1.05}.kpi-value.amount{font-family:var(--font-mono);font-weight:500}.kpi-warn .kpi-value{color:var(--bad)}.kpi-ok .kpi-value{color:var(--ok)}.quick-links{display:flex;flex-wrap:wrap;gap:var(--s-2);margin-top:var(--s-3)}.quick-links a{display:inline-flex;padding:8px var(--s-3);border:1px solid var(--border);border-radius:var(--r-sm);background:var(--surface);color:var(--ink-2);font-size:var(--fs-sm);font-weight:500;text-decoration:none;box-shadow:var(--shadow-xs);transition:background var(--t-fast) var(--ease),border-color var(--t-fast) var(--ease),color var(--t-fast) var(--ease)}.quick-links a:hover{background:var(--brand-soft);border-color:var(--brand-line);color:var(--brand-ink)}.onboarding{list-style:none;counter-reset:step;display:flex;flex-direction:column;gap:var(--s-3);margin-top:var(--s-5)}.onboarding li{counter-increment:step;position:relative;padding:var(--s-5) var(--s-5) var(--s-5) var(--s-8);background:var(--surface);border:1px solid var(--border);border-radius:var(--r-md);box-shadow:var(--shadow-xs);transition:border-color var(--t-fast) var(--ease),box-shadow var(--t-fast) var(--ease)}.onboarding li:before{content:counter(step);position:absolute;left:var(--s-4);top:22px;font-size:1rem;color:var(--muted);width:28px;height:28px;display:flex;align-items:center;justify-content:center;background:var(--surface);border:1px solid var(--border-2);border-radius:50%}.onboarding li strong,.onboarding li:before{font-family:var(--font-display);font-weight:600}.onboarding li strong{font-size:var(--fs-md);letter-spacing:-.01em;color:var(--ink);display:block;margin-bottom:var(--s-2)}.onboarding li.active{border-color:var(--brand-2);box-shadow:0 0 0 4px rgba(14,122,90,.08),var(--shadow-sm)}.onboarding li.active:before{color:var(--brand-fg);background:var(--brand-2);border-color:var(--brand-2)}.onboarding li.done:before{content:"✓";color:var(--brand-fg);background:var(--ok);border-color:var(--ok)}.onboarding li.done strong{color:var(--muted);font-weight:500}.branding-page header{margin-bottom:var(--s-4)}.branding-layout{display:grid;grid-template-columns:minmax(360px,480px) 1fr;grid-gap:var(--s-6);gap:var(--s-6);align-items:flex-start}.branding-controls{display:flex;flex-direction:column;gap:var(--s-5)}.branding-preview .preview-frame{position:-webkit-sticky;position:sticky;top:var(--s-5);background:var(--surface-2);border:1px solid var(--border);border-radius:var(--r-md);box-shadow:var(--shadow-sm);overflow:hidden}.branding-preview iframe{display:block;width:100%;height:80vh;border:none;background:var(--surface)}.branding-preview .preview-loading,.branding-preview .preview-overlay{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;background:hsla(0,0%,100%,.7);backdrop-filter:blur(2px);-webkit-backdrop-filter:blur(2px);pointer-events:none;animation:fadeIn .12s var(--ease)}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.branding-preview .preview-loading{background:var(--surface-2);height:80vh;position:static}.control-group h2{font-family:var(--font-body);font-size:.6875rem;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);font-weight:700;margin:0 0 var(--s-3) 0}.template-gallery{display:grid;grid-template-columns:repeat(3,1fr);grid-gap:var(--s-3);gap:var(--s-3)}.template-card{position:relative;background:var(--surface);border:1px solid var(--border);border-radius:var(--r-md);padding:0;cursor:pointer;text-align:left;overflow:hidden;box-shadow:var(--shadow-xs);transition:border-color var(--t-fast) var(--ease),transform var(--t-fast) var(--ease)}.template-card:hover{border-color:var(--border-2);transform:translateY(-1px);box-shadow:var(--shadow-sm)}.template-card.selected{border-color:var(--brand-2);box-shadow:0 0 0 3px rgba(14,122,90,.12),var(--shadow-sm)}.template-card img{display:block;width:100%;height:110px;object-fit:cover;background:var(--surface-2);border-bottom:1px solid var(--border)}.template-card-body{display:flex;flex-direction:column;padding:var(--s-2) var(--s-3) var(--s-3);gap:2px}.template-card-body strong{font-family:var(--font-display);font-size:var(--fs-base);font-weight:600;letter-spacing:-.01em;color:var(--ink)}.template-card-body .muted{font-size:var(--fs-xs)}.template-card .badge{position:absolute;top:var(--s-2);right:var(--s-2);background:var(--brand);color:var(--brand-fg);font-size:.625rem;letter-spacing:.06em;border:none}.logo-control{display:flex;flex-direction:column;gap:var(--s-2)}.logo-preview{display:flex;align-items:center;justify-content:center;width:260px;height:78px;border:1px dashed var(--border-2);border-radius:var(--r-sm)}.logo-preview img{max-width:100%;max-height:100%;object-fit:contain}.logo-actions{display:flex;gap:var(--s-2)}.accent-control{display:flex;align-items:center;gap:var(--s-3)}.hex-input{font-family:var(--font-mono);width:120px;padding:8px var(--s-3);border:1px solid var(--border-2);border-radius:var(--r-sm);box-shadow:var(--shadow-xs)}.error-inline{color:var(--bad);font-size:var(--fs-xs)}.customer-header{display:flex;flex-direction:column;gap:var(--s-1)}.customer-header h1{margin:0}.customer-details{display:flex;flex-direction:column;gap:var(--s-2)}.banner-paused{background:var(--bad-soft);border:1px solid var(--bad-line);border-left:3px solid var(--bad);padding:var(--s-4) var(--s-4);border-radius:var(--r-md);margin:var(--s-4) 0}.banner-paused h3{font-family:var(--font-body);font-size:var(--fs-sm);font-weight:700;letter-spacing:.02em;color:var(--bad);text-transform:uppercase;margin-bottom:var(--s-2)}.banner-paused ul{list-style:none;display:flex;flex-direction:column;gap:var(--s-1);font-size:var(--fs-sm)}.banner-paused a{color:var(--ink);font-weight:600}.tabs{display:flex;gap:0;margin:var(--s-5) 0 var(--s-4);border-bottom:1px solid var(--border)}.tabs a,.tabs button{padding:10px var(--s-4);background:transparent;border:none;border-bottom:2px solid transparent;color:var(--ink-3);font-size:var(--fs-sm);font-weight:500;cursor:pointer;box-shadow:none;margin-bottom:-1px;transition:color var(--t-fast) var(--ease),border-color var(--t-fast) var(--ease);border-radius:0}.tabs a:hover,.tabs button:hover{color:var(--ink)}.tabs a.active,.tabs a[aria-current=page],.tabs button.active{color:var(--brand-2);border-bottom-color:var(--brand-2);font-weight:600}.sticky-header{position:-webkit-sticky;position:sticky;top:0;background:var(--bg);padding:var(--s-3) 0 var(--s-4);z-index:1}.import-summary{background:var(--brand-soft);border:1px solid var(--brand-line);border-left:3px solid var(--brand-2);padding:var(--s-4);margin:var(--s-4) 0;border-radius:var(--r-md);font-size:var(--fs-sm);color:var(--brand-ink)}.import-summary strong{display:block;font-size:var(--fs-md);margin-bottom:var(--s-2);font-family:var(--font-display);font-weight:600;color:var(--brand-ink)}.import-summary ul{list-style:none;margin-top:var(--s-2);font-family:var(--font-mono);font-size:var(--fs-xs)}.picker-input{position:relative}.picker-input input{padding-right:var(--s-7)}.picker-dropdown{position:absolute;top:100%;left:0;right:0;background:var(--surface);border:1px solid var(--border-2);border-radius:var(--r-sm);box-shadow:var(--shadow-lg);max-height:320px;overflow-y:auto;margin-top:4px;z-index:20}.picker-option{padding:8px var(--s-3);cursor:pointer;font-size:var(--fs-sm);border-bottom:1px solid var(--border)}.picker-option:last-child{border-bottom:none}.picker-option.selected,.picker-option:hover{background:var(--brand-soft);color:var(--brand-ink)}.catalogue-toolbar{display:flex;align-items:center;gap:var(--s-2);margin-bottom:var(--s-4);flex-wrap:wrap}.catalogue-toolbar .search{position:relative;flex:1 1;min-width:280px;max-width:420px}.catalogue-toolbar .search input{width:100%;padding:8px 12px 8px 32px;font-size:var(--fs-sm)}.catalogue-toolbar .search:before{content:"⌕";position:absolute;left:12px;top:50%;transform:translateY(-50%);color:var(--muted);font-size:1rem;pointer-events:none}.catalogue-toolbar .spacer{flex:1 1;min-width:0}.catalogue-toolbar .segmented{display:inline-flex;background:var(--surface);border:1px solid var(--border);border-radius:var(--r-sm);box-shadow:var(--shadow-xs);padding:2px}.catalogue-toolbar .segmented button{background:transparent;border:1px solid transparent;color:var(--ink-3);font-size:var(--fs-sm);font-weight:500;padding:5px 12px;border-radius:4px;box-shadow:none}.catalogue-toolbar .segmented button.active,.catalogue-toolbar .segmented button:hover{background:var(--surface-2);color:var(--ink)}.catalogue-toolbar .segmented button.active{font-weight:600}.add-drawer{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-md);box-shadow:var(--shadow-sm);margin-bottom:var(--s-4);overflow:hidden;animation:drawer-in .18s var(--ease)}@keyframes drawer-in{0%{opacity:0;transform:translateY(-4px);max-height:0}to{opacity:1;transform:none;max-height:600px}}.add-drawer-head{display:flex;align-items:center;justify-content:space-between;padding:var(--s-3) var(--s-5);background:var(--surface-2);border-bottom:1px solid var(--border)}.add-drawer-head h2{font-size:var(--fs-md);font-weight:600;letter-spacing:-.005em;color:var(--ink);text-transform:none}.add-drawer-head h2:before{content:"+";display:inline-block;width:18px;height:18px;line-height:16px;text-align:center;background:var(--brand-soft);color:var(--brand-2);border-radius:50%;font-weight:700;margin-right:var(--s-2);font-size:.875rem}.add-drawer-body{display:grid;grid-template-columns:1fr 2fr 2fr 120px auto;grid-gap:var(--s-3);gap:var(--s-3);padding:var(--s-4) var(--s-5);align-items:end}.add-drawer-body label{font-size:var(--fs-xs);color:var(--ink-3);letter-spacing:0;text-transform:none;font-weight:500}.add-drawer-body label .req{color:var(--bad);margin-left:2px}.add-drawer-body .gst-toggle{display:flex;align-items:center;gap:6px;padding:10px 0;font-size:var(--fs-sm);font-weight:500;color:var(--ink-2);text-transform:none;letter-spacing:0;flex-direction:row}.add-drawer-foot{display:flex;justify-content:flex-end;gap:var(--s-2);padding:var(--s-3) var(--s-5);background:var(--surface-2);border-top:1px solid var(--border)}.add-drawer-section{grid-column:1/-1;margin-top:8px}.add-drawer-section-label{font-size:var(--fs-xs);color:var(--ink-3);font-weight:500;text-transform:uppercase;letter-spacing:.4pt;margin-bottom:6px}.product-table.catalogue td.sku,.product-table.catalogue th.sku{width:110px}.product-table.catalogue td.sku{font-family:var(--font-mono);font-feature-settings:"tnum" on;font-size:.8125rem;color:var(--ink-3)}.product-table.catalogue td.name{font-weight:500;color:var(--ink)}.product-table.catalogue td.keywords{color:var(--ink-3);font-size:var(--fs-sm);max-width:280px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.product-table.catalogue td.unit-price,.product-table.catalogue th.unit-price{text-align:right;width:120px}.product-table.catalogue td.unit-price{font-family:var(--font-mono);font-feature-settings:"tnum" on;font-weight:500;white-space:nowrap}.product-table.catalogue td.gst,.product-table.catalogue th.gst{width:56px;text-align:center}.product-table.catalogue td.gst .glyph{display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;border-radius:4px;font-size:.75rem}.product-table.catalogue td.gst .glyph.yes{background:var(--ok-soft);color:var(--ok);font-weight:700}.product-table.catalogue td.gst .glyph.no{background:var(--surface-2);color:var(--muted-2)}.product-table.catalogue td.status,.product-table.catalogue th.status{width:80px}.product-table.catalogue td.row-actions,.product-table.catalogue th.row-actions{width:200px;text-align:right;white-space:nowrap}.product-table.catalogue td.row-actions{opacity:0;transition:opacity var(--t-fast) var(--ease)}.product-table.catalogue tr:focus-within td.row-actions,.product-table.catalogue tr:hover td.row-actions{opacity:1}.product-table.catalogue td.row-actions button{background:transparent;border:1px solid var(--border-2);color:var(--ink-2);padding:4px 10px;font-size:.8125rem;font-weight:500;border-radius:var(--r-sm);margin-left:var(--s-1);box-shadow:none}.product-table.catalogue td.row-actions button:hover:not(:disabled){background:var(--surface-2);color:var(--ink);border-color:var(--border-2)}.product-table.catalogue td.row-actions button.danger{color:var(--bad);border-color:var(--bad-line)}.product-table.catalogue td.row-actions button.danger:hover:not(:disabled){background:var(--bad-soft);color:var(--bad);border-color:var(--bad)}.product-table.catalogue td.row-actions button.primary{background:var(--brand);color:var(--brand-fg);border-color:var(--brand)}.product-table.catalogue td.row-actions button.primary:hover:not(:disabled){background:var(--brand-2);border-color:var(--brand-2)}.product-table.catalogue tr.is-editing td{background:var(--brand-soft)}.product-table.catalogue tr.is-editing td.row-actions{opacity:1}.product-table.catalogue tr.is-editing input,.product-table.catalogue tr.is-editing select{border-color:var(--border-2);background:var(--surface);padding:6px 10px}.product-table.catalogue tr.inactive td.name,.product-table.catalogue tr.inactive td.sku{color:var(--muted-2)}.catalogue-empty{padding:var(--s-8) var(--s-5);text-align:center;background:var(--surface);border:1px solid var(--border);border-radius:var(--r-md);box-shadow:var(--shadow-xs)}.catalogue-empty .icon{display:inline-flex;align-items:center;justify-content:center;width:48px;height:48px;border-radius:50%;background:var(--brand-soft);color:var(--brand-2);font-size:1.5rem;margin-bottom:var(--s-3);font-family:var(--font-display)}.catalogue-empty .headline{font-family:var(--font-display);font-size:var(--fs-md);font-weight:600;letter-spacing:-.01em;color:var(--ink);margin-bottom:6px}.catalogue-empty .sub{color:var(--muted);font-size:var(--fs-sm);max-width:420px;margin:0 auto}.inline-check{display:inline-flex;align-items:center;gap:6px;font-size:var(--fs-sm);color:var(--ink-3);font-weight:500;cursor:pointer;text-transform:none;letter-spacing:0;flex-direction:row;padding:6px 10px;border-radius:var(--r-sm);transition:background var(--t-fast) var(--ease)}.inline-check:hover{background:var(--surface-2)}.product-table.ledger{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-md);overflow:hidden;box-shadow:var(--shadow-xs)}.product-table.ledger tbody tr{cursor:pointer}.product-table.ledger tbody tr:hover td{background:var(--surface-2)}.product-table.ledger td.no,.product-table.ledger th.no{width:150px}.product-table.ledger td.no{font-family:var(--font-mono);font-feature-settings:"tnum" on;font-size:.8125rem;color:var(--ink);font-weight:600}.product-table.ledger td.no .draft{color:var(--muted-2);font-style:italic}.product-table.ledger td.customer{color:var(--ink);font-weight:500}.product-table.ledger td.customer .anon{color:var(--muted-2);font-style:italic;font-weight:400}.product-table.ledger td.amount,.product-table.ledger td.status,.product-table.ledger th.amount,.product-table.ledger th.status{width:130px}.product-table.ledger td.created,.product-table.ledger th.created{width:140px;text-align:right;color:var(--muted);font-size:var(--fs-sm)}.product-table.ledger td.amount{text-align:right;font-family:var(--font-mono);font-feature-settings:"tnum" on;font-size:var(--fs-sm);color:var(--ink)}.product-table.ledger.static tbody tr{cursor:default}.product-table.ledger td.tenant,.product-table.ledger th.tenant{width:110px}.product-table.ledger td.tenant{font-family:var(--font-mono);font-size:.8125rem;color:var(--muted)}.product-table.ledger td.when,.product-table.ledger th.when{width:170px;font-family:var(--font-mono);font-feature-settings:"tnum" on;font-size:var(--fs-xs);color:var(--muted)}.product-table.ledger td.action{font-family:var(--font-mono);font-size:.8125rem;color:var(--ink)}.product-table.ledger td.detail{font-family:var(--font-mono);font-size:.75rem;color:var(--muted);max-width:320px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.product-table.ledger td.metric,.product-table.ledger th.metric{width:78px;text-align:right;font-family:var(--font-mono);font-feature-settings:"tnum" on;font-size:var(--fs-sm);color:var(--ink)}.product-table.ledger td.metric.zero{color:var(--muted-2)}.product-table.ledger td.uen{font-family:var(--font-mono);font-size:.8125rem;color:var(--muted)}.product-table.ledger td.email{font-family:var(--font-mono);font-size:.8125rem;color:var(--ink)}.product-table.ledger td.row-actions,.product-table.ledger th.row-actions{width:88px;text-align:right;opacity:0;transition:opacity .12s ease}.product-table.ledger tr:focus-within td.row-actions,.product-table.ledger tr:hover td.row-actions{opacity:1}.product-table.ledger td.row-actions button{padding:4px 10px;font-size:var(--fs-xs);border-radius:var(--r-sm);background:var(--surface);color:var(--ink-2);border:1px solid var(--border)}.product-table.ledger td.row-actions button:hover:not(:disabled){background:var(--surface-2);color:var(--ink)}.product-table.ledger td.row-actions button.danger{color:var(--bad);border-color:var(--bad-line)}.product-table.ledger td.row-actions button.danger:hover:not(:disabled){background:var(--bad-soft)}.row-actions .ghost-action{background:transparent;border:1px solid transparent;color:var(--ink-3);padding:3px 10px;font-size:var(--fs-xs);font-weight:500;border-radius:var(--r-sm);cursor:pointer;opacity:0;transition:opacity var(--t-fast) var(--ease),background var(--t-fast) var(--ease),border-color var(--t-fast) var(--ease),color var(--t-fast) var(--ease)}tr:focus-within .row-actions .ghost-action,tr:hover .row-actions .ghost-action{opacity:1}.row-actions .ghost-action:hover:not(:disabled){color:var(--brand);border-color:var(--brand-line);background:var(--brand-soft)}.row-actions .ghost-action:disabled{cursor:not-allowed;opacity:.5}.pill.pill-conf-low,.row-actions .ghost-action.danger:hover:not(:disabled){color:var(--bad);border-color:var(--bad-line);background:var(--bad-soft)}.pill.pill-conf-mid{background:var(--warn-soft);color:var(--warn);border-color:var(--warn-line)}.pill.pill-conf-ok{background:var(--ok-soft);color:var(--ok);border-color:var(--ok-line)}@keyframes shimmer{0%{background-position:-200px 0}to{background-position:calc(200px + 100%) 0}}.skeleton-bar{display:inline-block;height:12px;background:linear-gradient(90deg,var(--surface-2) 0,var(--surface-3) 50%,var(--surface-2) 100%);background-size:200px 100%;border-radius:4px;animation:shimmer 1.2s linear infinite;vertical-align:middle}.skeleton-bar.w-sm{width:60px}.skeleton-bar.w-md{width:120px}.skeleton-bar.w-lg{width:200px}.skeleton-bar.w-pill{width:64px;height:18px;border-radius:999px}.info-banner{background:var(--info-soft);border:1px solid var(--info-line);border-left:3px solid var(--info);color:var(--info);padding:var(--s-3) var(--s-4);border-radius:var(--r-md);font-size:var(--fs-sm)}div.breakdown-editor{position:relative;margin:4px 0 4px 16px;padding:2px 0 6px 18px;border-left:1px solid var(--border);display:flex;flex-direction:column;gap:2px}.breakdown-editor-row{position:relative;display:grid;grid-template-columns:18px 18px 1fr 64px 56px 88px 92px 22px;grid-column-gap:4px;column-gap:4px;align-items:center;min-height:30px;padding:1px 2px;border-radius:var(--r-sm);transition:background var(--t-fast) var(--ease)}.breakdown-editor-row:before{content:"";position:absolute;left:-18px;top:50%;width:14px;height:1px;background:var(--border)}.breakdown-editor-row:hover{background:var(--surface-2)}.breakdown-editor-row input{font-size:var(--fs-sm);padding:5px 7px;background:transparent;border:1px solid transparent;border-radius:var(--r-sm);color:var(--ink);height:28px;transition:background var(--t-fast) var(--ease),border-color var(--t-fast) var(--ease),box-shadow var(--t-fast) var(--ease)}.breakdown-editor-row input::placeholder{color:var(--muted-2);font-weight:400}.breakdown-editor-row input:hover:not(:disabled):not(:focus){background:var(--surface);border-color:var(--border)}.breakdown-editor-row input:focus{background:var(--surface);border-color:var(--brand-2);outline:none;box-shadow:0 0 0 3px rgba(14,122,90,.12)}.breakdown-editor-row input:disabled{color:var(--ink-2);cursor:default}.breakdown-editor-description{min-width:0;font-weight:500}.breakdown-editor-num,.breakdown-editor-unit{font-family:var(--font-mono);font-feature-settings:"tnum" on;font-size:.8125rem}.breakdown-editor-num{text-align:right}.breakdown-editor-drag,.breakdown-editor-remove{background:transparent;border:none;color:var(--muted-2);border-radius:var(--r-sm);padding:0;height:22px;cursor:pointer;font-size:12px;line-height:1;opacity:0;transition:opacity var(--t-fast) var(--ease),color var(--t-fast) var(--ease),background var(--t-fast) var(--ease)}.breakdown-editor-row:focus-within .breakdown-editor-drag:not(:disabled),.breakdown-editor-row:focus-within .breakdown-editor-remove,.breakdown-editor-row:hover .breakdown-editor-drag:not(:disabled),.breakdown-editor-row:hover .breakdown-editor-remove{opacity:1}.breakdown-editor-drag:hover:not(:disabled){background:var(--surface-3);color:var(--ink-2)}.breakdown-editor-remove:hover{background:var(--bad-soft);color:var(--bad)}.breakdown-editor-drag:disabled{cursor:default}.breakdown-editor-add{margin-top:4px;margin-left:4px;background:transparent;border:none;color:var(--ink-3);padding:4px 6px;border-radius:var(--r-sm);cursor:pointer;font-size:var(--fs-sm);font-weight:500;align-self:flex-start;display:inline-flex;align-items:center;gap:6px;transition:color var(--t-fast) var(--ease),background var(--t-fast) var(--ease)}.breakdown-editor-add:before{content:"+";display:inline-flex;align-items:center;justify-content:center;width:14px;height:14px;border-radius:999px;background:var(--brand-soft);color:var(--brand);font-weight:700;font-size:11px;line-height:1}.breakdown-editor-add:hover{color:var(--ink);background:var(--surface-2)}.breakdown-editor-add:hover:before{background:var(--brand);color:var(--brand-fg)}.line-add-breakdown{gap:4px;margin-top:4px;padding:3px 8px 3px 6px;border:1px solid transparent;border-radius:var(--r-sm);color:var(--muted);font-family:var(--font-body);font-size:.75rem;font-weight:500;cursor:pointer;transition:color var(--t-fast) var(--ease),background var(--t-fast) var(--ease),border-color var(--t-fast) var(--ease)}.line-add-breakdown,.line-add-breakdown span[aria-hidden]{display:inline-flex;align-items:center;background:transparent}.line-add-breakdown span[aria-hidden]{justify-content:center;width:12px;height:12px;border-radius:999px;color:var(--muted-2);font-weight:700;font-size:10px;line-height:1;transition:background var(--t-fast) var(--ease),color var(--t-fast) var(--ease)}.line-add-breakdown:focus-visible,tr:hover .line-add-breakdown{color:var(--brand);background:var(--brand-soft)}.line-add-breakdown:focus-visible span[aria-hidden],tr:hover .line-add-breakdown span[aria-hidden]{background:var(--brand);color:var(--brand-fg)}.line-add-breakdown:hover{border-color:var(--brand-line)}.name-toggle{display:inline-flex;align-items:center;gap:6px;padding:2px 4px 2px 2px;margin:-2px -4px -2px -2px;background:transparent;border:1px solid transparent;border-radius:var(--r-sm);color:inherit;font:inherit;text-align:left;cursor:pointer;transition:background var(--t-fast) var(--ease),border-color var(--t-fast) var(--ease)}.name-toggle:hover{background:var(--surface-2);border-color:var(--border)}.name-toggle:focus-visible{outline:none;border-color:var(--brand-2);box-shadow:0 0 0 3px rgba(14,122,90,.18)}.name-toggle-chevron{display:inline-flex;align-items:center;justify-content:center;width:14px;height:14px;color:var(--muted);font-size:10px;line-height:1;flex-shrink:0;transition:transform var(--t-med) var(--ease),color var(--t-fast) var(--ease)}.name-toggle.is-expanded .name-toggle-chevron,.name-toggle:hover .name-toggle-chevron{color:var(--brand)}.name-toggle.is-expanded .name-toggle-chevron{transform:rotate(90deg)}.name-toggle-text{font-weight:500}.template-chip{margin-left:4px;transition:background var(--t-fast) var(--ease)}.name-toggle.is-expanded .template-chip,.name-toggle:hover .template-chip{background:var(--brand-soft-2,var(--brand-soft))}.catalogue-template-view td{background:linear-gradient(to bottom,var(--brand-soft) 0,var(--brand-soft) 2px,var(--surface-2) 2px);padding:12px 18px 14px;border-bottom:1px solid var(--border)}.catalogue-template-view-label{font-family:var(--font-body);font-size:.6875rem;color:var(--muted);font-weight:600;text-transform:uppercase;letter-spacing:.08em;margin-bottom:6px}.template-chip{margin-left:8px;display:inline-flex;align-items:center;gap:4px;padding:1px 8px;border-radius:10px;background:var(--brand-soft);color:var(--brand-ink);border:1px solid var(--brand-line);font-size:.6875rem;font-family:var(--font-mono);font-feature-settings:"tnum" on;cursor:help;vertical-align:middle}.mobile-bar,.nav-backdrop{display:none}@media (max-width:1440px){.split{grid-template-columns:1fr}}@media (max-width:1024px){.branding-layout,.page-header.with-action,.split{grid-template-columns:1fr}.page-header.with-action{align-items:flex-start}.page-header.with-action>.header-action{align-self:flex-start;margin-top:var(--s-3)}.catalogue-toolbar{flex-wrap:wrap;gap:var(--s-3)}.catalogue-toolbar .search{flex:1 1 100%}.catalogue-toolbar .spacer{display:none}}@media (max-width:1920px){table.lines.lines-editor{display:block;max-width:100%}table.lines.lines-editor>thead{display:none}table.lines.lines-editor>tbody{display:block}table.lines.lines-editor tr.line-row{display:grid;grid-template-columns:minmax(180px,1fr) 80px 72px 104px 104px 52px 112px;grid-column-gap:var(--s-3);column-gap:var(--s-3);grid-row-gap:var(--s-2);row-gap:var(--s-2);align-items:end;padding:var(--s-3) var(--s-4);margin:0 0 var(--s-3);background:var(--surface);border:1px solid var(--border);border-radius:var(--r-md);box-shadow:var(--shadow-xs)}table.lines.lines-editor tr.line-row:not(:has(>td.cell-gst)){grid-template-columns:minmax(180px,1fr) 80px 72px 104px 104px 0 112px}table.lines.lines-editor tr.line-row.needs-price{border-color:rgba(217,45,32,.45);background:linear-gradient(180deg,hsla(5,86%,97%,.55),var(--surface))}table.lines.lines-editor tr.line-row>td{display:block;padding:0;border-bottom:none;color:var(--ink);font-style:normal;min-width:0}table.lines.lines-editor tr.line-row>td.cell-serial{display:none}table.lines.lines-editor tr.line-row>td.cell-desc{grid-column:1}table.lines.lines-editor tr.line-row>td.cell-unit-text{grid-column:2}table.lines.lines-editor tr.line-row>td.cell-qty{grid-column:3}table.lines.lines-editor tr.line-row>td.cell-unit{grid-column:4}table.lines.lines-editor tr.line-row>td.cell-total{grid-column:5;font-weight:600}table.lines.lines-editor tr.line-row>td.cell-gst{grid-column:6;align-self:end}table.lines.lines-editor tr.line-row>td.cell-actions{grid-column:7;align-self:end;display:flex;flex-direction:column;align-items:stretch;gap:6px}table.lines.lines-editor tr.line-row>td.cell-actions button{width:100%}table.lines.lines-editor tr.line-row>td.cell-desc>*,table.lines.lines-editor tr.line-row>td.cell-qty input,table.lines.lines-editor tr.line-row>td.cell-total input,table.lines.lines-editor tr.line-row>td.cell-unit input,table.lines.lines-editor tr.line-row>td.cell-unit-text input{width:100%;box-sizing:border-box;min-width:0}table.lines.lines-editor tr.line-row>td[data-label]:not(.cell-actions):before{content:attr(data-label);display:block;font-family:var(--font-body);font-size:.6875rem;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-3);font-weight:600;margin-bottom:4px}table.lines.lines-editor tr.line-row.line-row-summary{display:block;grid-template-columns:none;padding:0;margin:0 0 var(--s-3);background:transparent;border:none;border-radius:0;box-shadow:none}table.lines.lines-editor tr.line-row.line-row-summary>td{display:block;width:100%;padding:0}body,html{overflow-x:hidden}}@media (max-width:720px){input[type=date],input[type=email],input[type=number],input[type=password],input[type=search],input[type=tel],input[type=text],select,textarea{font-size:16px}button:not(.row-action):not(.ghost-action):not(.breakdown-editor-drag):not(.breakdown-editor-remove):not(.breakdown-editor-add):not(.mobile-bar-toggle):not(.copy-banner-dismiss):not(.template-chip){min-height:44px}.shell{grid-template-columns:1fr;padding-top:56px}.mobile-bar{display:flex;align-items:center;justify-content:space-between;position:fixed;top:0;left:0;right:0;height:56px;padding:0 var(--s-4);background:var(--surface);border-bottom:1px solid var(--border);z-index:50}.mobile-bar .brand{font-family:var(--font-display);font-size:1.25rem;font-weight:700;color:var(--ink);letter-spacing:-.03em;text-decoration:none;padding:0;margin:0}.mobile-bar .brand em{font-style:normal;color:var(--brand-2)}.mobile-bar-toggle{width:44px;height:44px;background:transparent;border:1px solid var(--border);border-radius:var(--r-sm);display:inline-flex;align-items:center;justify-content:center;cursor:pointer;padding:0;min-height:0!important}.mobile-bar-toggle:hover{background:var(--surface-2)}.mobile-bar-toggle-bars{position:relative;display:inline-block;width:18px;height:12px}.mobile-bar-toggle-bars span{position:absolute;left:0;right:0;height:2px;background:var(--ink);border-radius:1px;transition:transform var(--t-fast) var(--ease),opacity var(--t-fast) var(--ease),top var(--t-fast) var(--ease)}.mobile-bar-toggle-bars span:first-child{top:0}.mobile-bar-toggle-bars span:nth-child(2){top:5px}.mobile-bar-toggle-bars span:nth-child(3){top:10px}.mobile-bar-toggle-bars.open span:first-child{top:5px;transform:rotate(45deg)}.mobile-bar-toggle-bars.open span:nth-child(2){opacity:0}.mobile-bar-toggle-bars.open span:nth-child(3){top:5px;transform:rotate(-45deg)}.mobile-bar{padding-top:env(safe-area-inset-top,0);height:calc(56px + env(safe-area-inset-top, 0px))}.shell{padding-top:calc(56px + env(safe-area-inset-top, 0px))}.nav{position:fixed;top:calc(56px + env(safe-area-inset-top, 0px));left:0;width:280px;height:calc(100vh - 56px - env(safe-area-inset-top, 0px));height:calc(100dvh - 56px - env(safe-area-inset-top, 0px));transform:translateX(-100%);transition:transform var(--t-med) var(--ease);z-index:40;border-right:1px solid var(--border);box-shadow:var(--shadow-lg);padding:var(--s-4) var(--s-3) max(var(--s-4),env(safe-area-inset-bottom,16px));overflow-y:auto}.nav.is-open{transform:translateX(0)}.nav .brand{display:none}.nav-backdrop{display:block;position:fixed;top:calc(56px + env(safe-area-inset-top, 0px));right:0;bottom:0;left:0;background:rgba(16,24,40,.4);z-index:35;animation:rise .16s var(--ease)}.content{padding:var(--s-4) var(--s-4);max-width:100%}.content>section+section{margin-top:var(--s-5)}.page-header h1{font-size:var(--fs-lg)}.page-header{margin-bottom:var(--s-4)}.page-header.with-action>.header-action button.button-primary{width:100%}.card{width:92%;max-width:400px;padding:var(--s-5) var(--s-5)}.card h1{font-size:var(--fs-xl)}.row-actions{white-space:nowrap}.modal-card{width:94%;max-height:90vh;overflow-y:auto;padding:var(--s-4) var(--s-4)}.add-drawer-body{grid-template-columns:1fr!important}.breakdown-editor{margin-left:8px;padding-left:10px;max-width:100%;overflow-x:hidden}.breakdown-editor-row{grid-template-columns:1fr 48px 36px 66px 70px 20px;column-gap:3px}.breakdown-editor-row>button.breakdown-editor-drag{display:none}.breakdown-editor-row input{padding:5px;font-size:13px}.product-table.catalogue td.gst,.product-table.catalogue td.status,.product-table.catalogue th.gst,.product-table.catalogue th.status{display:none}.product-table.catalogue td.row-actions,.product-table.catalogue th.row-actions{opacity:1!important;width:auto;white-space:nowrap}.product-table.catalogue td.row-actions button{padding:4px 8px;font-size:var(--fs-xs)}.catalogue-select-bar{flex-wrap:wrap}.catalogue-select-bar-spacer{display:none}.copy-banner{flex-wrap:wrap}.catalogue-toolbar .segmented{width:100%}.catalogue-toolbar .segmented button{flex:1 1}.card-link{grid-template-columns:1fr}.pagination{flex-wrap:wrap;row-gap:var(--s-2)}.links-row{flex-wrap:wrap;gap:var(--s-2)}.product-table.ledger:not(.customers) td.created,.product-table.ledger:not(.customers) th.created{display:none}.product-table.ledger td.no,.product-table.ledger th.no{width:110px}.product-table.ledger td.no{font-size:.75rem}.product-table.ledger td.amount,.product-table.ledger td.status,.product-table.ledger th.amount,.product-table.ledger th.status{width:92px}.product-table.ledger td.customer{max-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:var(--fs-sm)}.product-table.ledger .row-actions .ghost-action{opacity:1;padding:3px 7px;font-size:.6875rem}.product-table.catalogue td.keywords,.product-table.catalogue th.keywords,.product-table.ledger .row-actions .ghost-action .copy-icon,.product-table.ledger.customers td.created,.product-table.ledger.customers th.created,.product-table.ledger.tenants td.amount,.product-table.ledger.tenants td.metric,.product-table.ledger.tenants td.uen,.product-table.ledger.tenants th.amount,.product-table.ledger.tenants th.metric,.product-table.ledger.tenants th.uen{display:none}body,html{overflow-x:hidden}.split>aside,.split>div{padding:var(--s-3)}table.lines.lines-editor{display:block;max-width:100%}table.lines.lines-editor>thead{display:none}table.lines.lines-editor>tbody{display:block}table.lines.lines-editor tr.line-row{display:grid;grid-template-columns:1fr 1fr auto;grid-column-gap:var(--s-3);column-gap:var(--s-3);grid-row-gap:var(--s-3);row-gap:var(--s-3);align-items:end;padding:var(--s-3) var(--s-3) calc(var(--s-3) + 2px);margin:0 0 var(--s-3);background:var(--surface);border:1px solid var(--border);border-radius:var(--r-md);box-shadow:var(--shadow-xs)}table.lines.lines-editor tr.line-row.needs-price{border-color:rgba(217,45,32,.45);background:linear-gradient(180deg,hsla(5,86%,97%,.55),var(--surface))}table.lines.lines-editor tr.line-row>td{display:block;padding:0;border-bottom:none;color:var(--ink);font-style:normal}table.lines.lines-editor tr.line-row>td.cell-desc{grid-column:1/-1}table.lines.lines-editor tr.line-row>td.cell-qty{grid-column:1/span 1}table.lines.lines-editor tr.line-row>td.cell-unit{grid-column:2/span 1}table.lines.lines-editor tr.line-row>td.cell-gst{grid-column:3/span 1;min-width:56px}table.lines.lines-editor tr.line-row>td.cell-total{grid-column:1/span 2;align-self:center}table.lines.lines-editor tr.line-row>td.cell-actions{grid-column:3/span 1;display:flex;flex-direction:column;align-items:flex-end;gap:6px}table.lines.lines-editor tr.line-row.line-row-summary{display:block;grid-template-columns:none;padding:0;margin:0 0 var(--s-3);background:transparent;border:none;border-radius:0;box-shadow:none}table.lines.lines-editor tr.line-row.line-row-summary>td{display:block;width:100%;padding:0}table.lines.lines-editor tr.line-row>td[data-label]:not(.cell-actions):before{content:attr(data-label);display:block;font-family:var(--font-body);font-size:.6875rem;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-3);font-weight:600;margin-bottom:4px}table.lines.lines-editor tr.line-row>td.cell-desc input,table.lines.lines-editor tr.line-row>td.cell-qty input,table.lines.lines-editor tr.line-row>td.cell-unit input{width:100%;box-sizing:border-box}table.lines.lines-editor tr.line-row>td.cell-gst input[type=checkbox]{margin:6px 0 0}table.lines.lines-editor tr.line-row>td.cell-total{font-family:var(--font-mono);font-feature-settings:"tnum" on;font-size:var(--fs-md);font-weight:600;color:var(--ink);letter-spacing:-.01em}table.lines.lines-editor tr.line-row.needs-price>td.cell-total{color:var(--bad);font-style:italic}table.lines.lines-editor tr.line-row>td.cell-actions button{padding:6px 10px;font-size:var(--fs-xs);min-height:0}table.lines.lines-editor tr.line-row>td.cell-actions .line-add-breakdown{font-size:var(--fs-xs);white-space:nowrap}table.lines.lines-editor tr.line-breakdown-row{display:block;margin:calc(-1 * var(--s-3)) 0 var(--s-3)}table.lines.lines-editor tr.line-breakdown-row>td{display:block;padding:0 0 0 var(--s-3);border-bottom:none;border-left:3px solid var(--brand-line);margin-left:var(--s-3)}table.lines.lines-editor tr.line-breakdown-row .breakdown-editor{margin-left:0;padding-left:0}.editor-section>h2{font-size:var(--fs-md)}.editor-section{padding:var(--s-3) var(--s-4)}.page-header>div{row-gap:var(--s-2)}}.catalogue-edit-expanded td{background:linear-gradient(to bottom,var(--brand-soft) 0,var(--brand-soft) 2px,var(--surface-2) 2px);padding:14px 18px 18px;border-bottom:1px solid var(--border-2)}.catalogue-edit-expanded-label{font-family:var(--font-body);font-size:.6875rem;color:var(--muted);font-weight:600;text-transform:uppercase;letter-spacing:.08em;margin-bottom:8px}.catalogue-select-bar{position:-webkit-sticky;position:sticky;top:8px;z-index:5;display:flex;align-items:center;gap:14px;padding:10px 16px 10px 14px;background:var(--surface);border:1px solid var(--border);border-left:3px solid var(--brand);border-radius:var(--r-md);margin:12px 0;box-shadow:var(--shadow-md);animation:rise .22s var(--ease)}.catalogue-select-bar-count{display:inline-flex;align-items:baseline;gap:6px}.catalogue-select-bar-count .num{font-family:var(--font-mono);font-feature-settings:"tnum" on;font-size:var(--fs-md);font-weight:600;color:var(--brand);line-height:1}.catalogue-select-bar-count .label{color:var(--ink-2);font-size:var(--fs-sm)}.catalogue-select-bar-spacer{flex:1 1}.product-table .select-cell input[type=checkbox]{-moz-appearance:none;appearance:none;-webkit-appearance:none;width:16px;height:16px;border:1.5px solid var(--border-2);border-radius:4px;background:var(--surface);transition:background var(--t-fast) var(--ease),border-color var(--t-fast) var(--ease);display:inline-block;position:relative;vertical-align:middle}.product-table .select-cell input[type=checkbox]:hover{border-color:var(--brand-2)}.product-table .select-cell input[type=checkbox]:checked{background:var(--brand);border-color:var(--brand)}.product-table .select-cell input[type=checkbox]:checked:after{content:"";position:absolute;left:4px;top:1px;width:5px;height:9px;border:solid var(--brand-fg);border-width:0 2px 2px 0;transform:rotate(45deg)}.product-table .select-cell input[type=checkbox]:focus-visible{outline:none;box-shadow:0 0 0 3px rgba(14,122,90,.18)}@keyframes modal-in{0%{opacity:0;transform:translateY(6px) scale(.98)}to{opacity:1;transform:none}}.modal-backdrop{background:rgba(16,24,40,.5);backdrop-filter:blur(2px);-webkit-backdrop-filter:blur(2px);display:flex;align-items:center;justify-content:center;animation:rise .16s var(--ease)}.modal-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);padding:24px 26px 22px;max-width:480px;width:92%;box-shadow:var(--shadow-lg);animation:modal-in .2s var(--ease)}.modal-card h2{margin:0 0 4px;font-family:var(--font-display);font-size:var(--fs-lg);letter-spacing:-.015em}.modal-card>.muted{margin-bottom:14px}.modal-actions{gap:8px;margin-top:18px}.apply-template-list{list-style:none;padding:4px;margin:10px 0 0;max-height:280px;overflow-y:auto;border:1px solid var(--border);border-radius:var(--r-md);background:var(--surface-2);display:flex;flex-direction:column;gap:4px}.apply-template-list li label{display:flex;align-items:center;gap:10px;padding:10px 12px;cursor:pointer;background:var(--surface);border:1px solid transparent;border-radius:var(--r-sm);transition:background var(--t-fast) var(--ease),border-color var(--t-fast) var(--ease),box-shadow var(--t-fast) var(--ease)}.apply-template-list li label:hover{border-color:var(--border-2)}.apply-template-list li label:has(input:checked){border-color:var(--brand);background:var(--brand-soft);box-shadow:0 0 0 1px var(--brand) inset}.apply-template-list li label strong{flex:1 1;font-weight:500;color:var(--ink);font-size:var(--fs-base)}.apply-template-list li label .muted{font-family:var(--font-mono);font-feature-settings:"tnum" on;font-size:.75rem}.apply-template-list li label input[type=radio]{-moz-appearance:none;appearance:none;-webkit-appearance:none;width:14px;height:14px;border:1.5px solid var(--border-2);border-radius:50%;background:var(--surface);cursor:pointer;position:relative;flex-shrink:0}.apply-template-list li label:has(input:checked) input[type=radio]{border-color:var(--brand);background:var(--brand)}.apply-template-list li label:has(input:checked) input[type=radio]:after{content:"";position:absolute;inset:3px;border-radius:50%;background:var(--brand-fg)}.totals-editor{border-top:1px solid var(--border);padding-top:var(--s-3);margin-top:var(--s-3);max-width:360px;margin-left:auto}.totals-row{display:flex;justify-content:space-between;padding:var(--s-2) 0;font-size:var(--fs-sm)}.totals-row .value{font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.totals-row-discount{color:var(--muted)}.totals-row-grand{border-top:1px solid var(--border);margin-top:var(--s-2);padding-top:var(--s-3);font-size:var(--fs-md)}.token-chips{display:flex;flex-wrap:wrap;gap:var(--s-2);margin-top:var(--s-2)}.token-chip{font-family:monospace;font-size:var(--fs-xs);padding:2px 6px;border-radius:3px;background:var(--surface-2);cursor:pointer;border:1px solid var(--border);color:var(--ink)}.token-chip:hover{background:var(--surface-3)}.logo-placement-control{display:flex;flex-direction:column;gap:var(--s-2)}table.lines tr.line-row-summary>td{padding:var(--s-3) 0;background:transparent;border-bottom:none}.line-summary-card{background:var(--surface);padding:var(--s-4);border:1px solid var(--border);border-left:3px solid var(--brand-2);border-radius:var(--r-md);box-shadow:var(--shadow-xs)}.summary-card-header{display:flex;align-items:center;gap:var(--s-3);margin-bottom:var(--s-4);padding-bottom:var(--s-3);border-bottom:1px solid var(--border-2)}.summary-card-header>.summary-desc{flex:1 1 auto;min-width:0;display:flex;flex-direction:column;gap:4px}.summary-card-header>.summary-desc>span{font-family:var(--font-body);font-size:.6875rem;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-3);font-weight:600}.summary-card-header>.summary-desc input[type=text]{width:100%;padding:10px 12px;font-size:var(--fs-base);border:1px solid var(--border);border-radius:var(--r-sm);background:var(--surface)}.summary-card-header>.summary-desc input[type=text]:focus{outline:none;border-color:var(--brand-2);box-shadow:0 0 0 3px rgba(14,122,90,.12)}.summary-card-header .gst-toggle{display:inline-flex;align-items:center;gap:6px;font-size:var(--fs-sm);font-weight:500;padding:8px 12px;border:1px solid var(--border);border-radius:var(--r-sm);background:var(--surface-2);cursor:pointer;white-space:nowrap}table.breakdown-editor{width:100%;table-layout:fixed;border-collapse:separate;border-spacing:0;font-size:var(--fs-sm);margin-bottom:var(--s-3);background:var(--surface-2);border:1px solid var(--border-2);border-radius:var(--r-sm);overflow:hidden}table.breakdown-editor td,table.breakdown-editor th{padding:8px 10px;border-bottom:1px solid var(--border-2);text-align:left;vertical-align:middle}table.breakdown-editor tbody tr:last-child td{border-bottom:none}table.breakdown-editor thead th{font-family:var(--font-body);font-size:.6875rem;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-3);font-weight:600;background:var(--surface);border-bottom:1px solid var(--border);padding-top:10px;padding-bottom:10px}table.breakdown-editor td.amount,table.breakdown-editor th.amount{text-align:right;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;font-weight:500;color:var(--ink-2);white-space:nowrap}table.breakdown-editor td.remove,table.breakdown-editor th.remove{width:40px;text-align:center}table.breakdown-editor col.col-desc{width:42%}table.breakdown-editor col.col-qty,table.breakdown-editor col.col-unit{width:12%}table.breakdown-editor col.col-amount,table.breakdown-editor col.col-unit-price{width:14%}table.breakdown-editor col.col-remove{width:6%}table.breakdown-editor input{width:100%;min-width:0;padding:8px 10px;font-size:var(--fs-sm);border:1px solid var(--border);border-radius:var(--r-sm);background:var(--surface);color:var(--ink)}table.breakdown-editor input::placeholder{color:var(--ink-3)}table.breakdown-editor input:focus{outline:none;border-color:var(--brand-2);box-shadow:0 0 0 3px rgba(14,122,90,.12)}table.breakdown-editor input[type=number]{text-align:right;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}table.breakdown-editor td.remove button{width:28px;height:28px;border-radius:999px;padding:0;border:1px solid var(--border);background:var(--surface);color:var(--ink-2);cursor:pointer;font-size:.875rem;line-height:1}table.breakdown-editor td.remove button:hover{border-color:var(--bad-line,#f5c1c1);color:var(--bad,#b00020);background:var(--bad-soft,#fdecea)}.summary-card-footer{display:flex;align-items:center;justify-content:space-between;gap:var(--s-3);margin-top:var(--s-2)}.summary-card-footer button.add-row{padding:8px 14px;border:1px dashed var(--border);background:transparent;border-radius:var(--r-sm);color:var(--brand-2);font-weight:500;cursor:pointer}.summary-card-footer button.add-row:hover:not(:disabled){border-color:var(--brand-2);background:rgba(14,122,90,.04)}.summary-card-footer button.add-row:disabled{opacity:.5;cursor:not-allowed}.summary-line-total{text-align:right;font-weight:700;font-size:var(--fs-lg);color:var(--ink);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.summary-line-total .label{font-family:var(--font-body);font-size:.6875rem;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-3);font-weight:600;margin-right:var(--s-2)}.row-counter{display:inline-block;padding:2px 8px;border-radius:999px;background:var(--surface-2);color:var(--ink-3);font-size:.75rem;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;margin-left:var(--s-3)}.row-counter-near{background:#fff3cd;color:#7a5800}.row-counter-full{background:#f8d7da;color:#7a1f24}.simulator-grid{display:grid;grid-template-columns:minmax(0,1fr) 320px;grid-gap:1.5rem;gap:1.5rem;margin-top:1.5rem}@media (max-width:900px){.simulator-grid{grid-template-columns:1fr}}.simulator-conversation{gap:.75rem}.field,.simulator-conversation{display:flex;flex-direction:column}.field{gap:.25rem}.field input{padding:.5rem .75rem;border:1px solid var(--border,#ddd);border-radius:6px;font-family:inherit}.simulator-transcript{min-height:360px;max-height:520px;overflow-y:auto;padding:1rem;border:1px solid var(--border,#ddd);border-radius:8px;background:var(--surface-muted,#fafafa);display:flex;flex-direction:column;gap:.5rem}.bubble{padding:.5rem .75rem;border-radius:8px;max-width:85%}.bubble pre{margin:0;white-space:pre-wrap;word-wrap:break-word;font-family:inherit;font-size:.95rem}.bubble-kind{display:block;font-size:.7rem;letter-spacing:.04em;opacity:.6;margin-bottom:.25rem}.bubble-in{align-self:flex-end;background:#d6f0d6}.bubble-out{align-self:flex-start;background:#fff;border:1px solid var(--border,#e0e0e0)}.bubble a{display:inline-block;margin-top:.25rem;font-size:.85rem}.simulator-composer{display:flex;flex-wrap:wrap;gap:.5rem}.simulator-composer input{flex:1 1 240px;min-width:200px;padding:.5rem .75rem;font-family:inherit}.simulator-composer button,.simulator-composer input{border:1px solid var(--border,#ddd);border-radius:6px}.simulator-composer button{padding:.5rem .85rem;background:#fff;cursor:pointer}.simulator-composer button:disabled{opacity:.5;cursor:not-allowed}.simulator-composer button.danger{color:#b00020;border-color:#f5c1c1}.simulator-cheatsheet{font-size:.9rem;padding:.5rem .75rem;background:var(--surface-muted,#fafafa);border-radius:6px}.simulator-cheatsheet ol{margin:.5rem 0 0;padding-left:1.25rem}.simulator-state{padding:1rem;border:1px solid var(--border,#ddd);border-radius:8px;background:var(--surface-muted,#fafafa);font-size:.92rem}.simulator-state h2{margin-top:0;font-size:1rem}.simulator-state pre{font-size:.78rem;max-height:240px;overflow:auto;background:#fff;padding:.5rem;border:1px solid var(--border,#e0e0e0);border-radius:4px}.line-form .segmented{display:inline-flex;gap:1px;padding:2px;background:var(--surface-2);border-radius:var(--r-sm);margin-bottom:var(--s-3)}.line-form .segmented button{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:none;background:transparent;padding:4px 12px;font-size:var(--fs-xs);font-weight:500;border-radius:6px;cursor:pointer;color:var(--ink-2)}.line-form .segmented button.active{background:var(--surface);color:var(--ink);box-shadow:var(--shadow-xs)}.line-form .segmented button:disabled{cursor:not-allowed;opacity:.6}.line-form-simple-row{display:grid;grid-template-columns:minmax(180px,1fr) 80px 72px 104px 104px 52px;grid-column-gap:var(--s-3);column-gap:var(--s-3);align-items:end}.line-form-simple-row.no-gst{grid-template-columns:minmax(180px,1fr) 80px 72px 104px 104px}.line-form-simple-row>label{display:flex;flex-direction:column;gap:4px;min-width:0}.line-form-simple-row>label>span{font-family:var(--font-body);font-size:.6875rem;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-3);font-weight:600}.line-form-simple-row>label.gst-cell{align-items:center;justify-content:end}.line-form-simple-row>label.gst-cell input[type=checkbox]{width:18px;height:18px}.line-form-confirm{margin-top:var(--s-3);padding:var(--s-3) var(--s-4);background:var(--surface-2);border:1px solid var(--border);border-radius:var(--r-sm);display:flex;justify-content:space-between;align-items:center;gap:var(--s-3)}.line-form-confirm .actions{display:flex;gap:var(--s-2)}.line-form-row.needs-price>td>.line-form{background:linear-gradient(180deg,hsla(5,86%,97%,.55),var(--surface));border:1px solid rgba(217,45,32,.45);border-radius:var(--r-md);padding:var(--s-3)}.product-table .mode{width:90px}.mode-pill{display:inline-block;padding:2px 8px;border-radius:999px;font-size:.6875rem;font-weight:500;letter-spacing:.02em}.mode-pill.mode-simple{background:#e8f5e9;color:#2e7d32}.mode-pill.mode-detailed{background:#fff3e0;color:#ef6c00}.catalogue-banner{position:relative;display:flex;align-items:center;gap:var(--s-3);padding:var(--s-3) var(--s-4) var(--s-3) var(--s-4);margin:var(--s-3) 0 var(--s-4);background:var(--surface-2);border:1px solid var(--border);border-left:3px solid var(--brand-2);border-radius:var(--r-md)}.catalogue-banner .banner-close{position:absolute;top:6px;right:8px;-webkit-appearance:none;-moz-appearance:none;appearance:none;background:transparent;border:none;font-size:18px;line-height:1;cursor:pointer;color:var(--ink-3);padding:4px 8px}.catalogue-banner .banner-close:hover{color:var(--ink)}.catalogue-banner .banner-body{font-size:var(--fs-sm);color:var(--ink)}.catalogue-banner .banner-actions{margin-left:auto;display:flex;gap:var(--s-3);align-items:center}.catalogue-banner .banner-actions .primary{padding:6px 14px;border-radius:var(--r-sm);background:var(--brand-2);color:#fff;border:none;font-weight:500;cursor:pointer}.catalogue-banner .banner-actions .primary:hover{filter:brightness(.95)}.catalogue-banner .banner-actions .link{background:transparent;border:none;color:var(--brand-2);cursor:pointer;font-size:var(--fs-sm)}.catalogue-banner .banner-actions .link:hover{text-decoration:underline}.modal-backdrop{position:fixed;inset:0;background:rgba(0,0,0,.5);display:grid;place-items:center;z-index:100}.modal.catalogue-modal{background:var(--surface);border-radius:var(--r-md);padding:var(--s-5);max-width:760px;width:90vw;max-height:80vh;overflow-y:auto;box-shadow:0 12px 32px rgba(0,0,0,.18)}.catalogue-modal h2{margin-top:0;margin-bottom:var(--s-4);font-size:var(--fs-lg)}.catalogue-modal-list{list-style:none;padding:0;margin:0}.catalogue-modal-list li{padding:var(--s-3) 0;border-bottom:1px solid var(--border-2)}.catalogue-modal-list li:last-child{border-bottom:none}.catalogue-modal-list .row{display:grid;grid-template-columns:1fr auto auto auto;grid-gap:var(--s-3);gap:var(--s-3);align-items:center}.catalogue-modal-list .row-main{display:flex;align-items:center;gap:var(--s-2);cursor:pointer}.catalogue-modal-list .row-main .name{font-weight:500}.catalogue-modal-list .amount{font-feature-settings:"tnum";font-variant-numeric:tabular-nums;color:var(--ink-2)}.catalogue-modal-list .expander{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:transparent;border:1px dashed var(--border);padding:2px 10px;border-radius:var(--r-sm);font-size:var(--fs-xs);cursor:pointer;color:var(--ink-2)}.catalogue-modal-list .expander:hover{border-color:var(--brand-2);color:var(--brand-2)}.catalogue-modal-list .row-expanded{margin-top:var(--s-2);margin-left:26px;display:grid;grid-template-columns:1fr 2fr;grid-gap:var(--s-3);gap:var(--s-3)}.catalogue-modal-list .row-expanded label{display:flex;flex-direction:column;gap:4px}.catalogue-modal-list .row-expanded label>span{font-size:.6875rem;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-3);font-weight:600}.catalogue-modal-list .row-expanded input{padding:8px 10px;border:1px solid var(--border);border-radius:var(--r-sm);font-size:var(--fs-sm)}.modal-actions{display:flex;gap:var(--s-3);justify-content:flex-end;margin-top:var(--s-4);padding-top:var(--s-3);border-top:1px solid var(--border-2)}.modal-actions button{padding:8px 16px;border-radius:var(--r-sm);font-weight:500;cursor:pointer;border:1px solid var(--border);background:var(--surface)}.modal-actions button.primary{background:var(--brand-2);color:#fff;border-color:var(--brand-2)}.modal-actions button:disabled{opacity:.5;cursor:not-allowed}.logo-size-readout{margin-left:var(--s-2);font-size:var(--fs-sm);font-feature-settings:"tnum";font-variant-numeric:tabular-nums;color:var(--ink-2);font-weight:500;letter-spacing:0;text-transform:none}.logo-size-control{display:flex;flex-direction:column;gap:6px;margin-top:var(--s-2)}.logo-size-control input[type=range]{width:100%;accent-color:var(--brand-2);cursor:pointer}.logo-size-control input[type=range]:disabled{opacity:.5;cursor:not-allowed}.logo-size-ticks{display:flex;justify-content:space-between;font-size:.6875rem;color:var(--ink-3);letter-spacing:.04em;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.branding-page,.settings-page{display:flex;flex-direction:column;gap:var(--s-4)}.form-card .form-section{display:flex;flex-direction:column;gap:var(--s-3);padding-top:var(--s-4);margin-top:var(--s-2);border-top:1px solid var(--border)}.form-card .form-section:first-child{margin-top:0;padding-top:0;border-top:none}.form-card .form-section .form-section-title{margin:0;padding:0;border:none;font-family:var(--font-body);font-size:.75rem;letter-spacing:.12em;text-transform:uppercase;color:var(--ink);font-weight:700}.form-card .form-section .form-section-hint{margin:0 0 var(--s-2);font-size:var(--fs-sm);color:var(--ink-3);letter-spacing:0;text-transform:none;font-weight:400;max-width:60ch}.form-card .form-row{display:grid;grid-template-columns:1fr 1fr;grid-gap:var(--s-4);gap:var(--s-4)}@media (max-width:720px){.form-card .form-row{grid-template-columns:1fr}}.form-card .block-hint{font-size:var(--fs-xs);color:var(--ink-3);margin-top:4px}.form-card .block-hint a{color:var(--brand-2);font-weight:500}.form-card .block-hint a:hover{text-decoration:underline}.form-card .block-indented{padding-left:var(--s-4);border-left:2px solid var(--border-2)}.form-card .toggle-row{display:flex;flex-direction:row;align-items:flex-start;gap:var(--s-3);padding:var(--s-3) var(--s-4);background:var(--surface-2);border:1px solid var(--border);border-radius:var(--r-sm);cursor:pointer;transition:border-color var(--t-fast) var(--ease),background var(--t-fast) var(--ease)}.form-card .toggle-row:hover{border-color:var(--border-2)}.form-card .toggle-row:has(input:checked){border-color:rgba(14,122,90,.4);background:rgba(14,122,90,.04)}.form-card .toggle-row>input[type=checkbox]{margin-top:2px;flex:0 0 auto;width:16px;height:16px;accent-color:var(--brand-2)}.form-card .toggle-text{display:flex;flex-direction:column;gap:2px}.form-card .toggle-text .toggle-title{font-weight:500;color:var(--ink);font-size:var(--fs-base)}.form-card .toggle-text .toggle-hint{font-size:var(--fs-sm);color:var(--ink-3);line-height:1.4}.form-card .mono,.form-card input.mono{font-family:var(--font-mono);font-size:.875em;letter-spacing:-.01em}.form-footer .saved-pill{display:inline-flex;align-items:center;gap:6px;padding:4px 12px;background:rgba(14,122,90,.08);border:1px solid rgba(14,122,90,.25);border-radius:999px;color:var(--brand-2);font-size:var(--fs-xs);font-weight:500;letter-spacing:.02em;margin-right:auto;animation:savedPillIn .24s var(--ease)}@keyframes savedPillIn{0%{opacity:0;transform:translateY(2px)}to{opacity:1;transform:translateY(0)}}.form-card.form-card-secondary{background:var(--surface);border:1px solid var(--border-2);box-shadow:none;padding:var(--s-4) var(--s-5);gap:var(--s-2)}.form-card.form-card-secondary .form-section-title{font-family:var(--font-body);font-size:.75rem;letter-spacing:.12em;text-transform:uppercase;color:var(--ink);font-weight:700;border:none;padding:0;margin:0}.form-card.form-card-secondary .form-section-hint{color:var(--ink-3);font-size:var(--fs-sm);font-weight:400;letter-spacing:0;text-transform:none;margin:0}.card-link-row{display:flex;align-items:center;justify-content:space-between;padding:var(--s-3) var(--s-4);background:var(--surface-2);border:1px solid var(--border);border-radius:var(--r-sm);text-decoration:none;color:var(--ink);font-weight:500;margin-top:var(--s-2);transition:transform var(--t-fast) var(--ease),border-color var(--t-fast) var(--ease),background var(--t-fast) var(--ease)}.card-link-row>span:last-child{color:var(--brand-2);font-size:1.125rem;transition:transform var(--t-fast) var(--ease)}.card-link-row:hover{border-color:var(--brand-2);background:var(--surface)}.card-link-row:hover>span:last-child{transform:translateX(3px)}.linked-numbers{list-style:none;margin:var(--s-2) 0 0;padding:0;display:flex;flex-direction:column;gap:var(--s-2)}.linked-numbers li{display:flex;align-items:center;justify-content:space-between;padding:10px var(--s-4);background:var(--surface-2);border:1px solid var(--border-2);border-radius:var(--r-sm)}.linked-numbers li strong{font-size:var(--fs-base)}.page-header .eyebrow .eyebrow-link{color:inherit;text-decoration:none;transition:color var(--t-fast) var(--ease)}.page-header .eyebrow .eyebrow-link:hover{color:var(--brand-2)}.page-header .eyebrow .eyebrow-sep{display:inline-block;margin:0 var(--s-2);color:var(--ink-3);opacity:.5}.control-group .control-group-hint{margin:-2px 0 var(--s-3);font-size:var(--fs-sm);color:var(--ink-3);letter-spacing:0;text-transform:none;font-weight:400;max-width:56ch}.radio-row-group{display:flex;flex-direction:column;gap:var(--s-2)}.radio-row{display:flex;flex-direction:row;align-items:flex-start;gap:var(--s-3);padding:var(--s-3) var(--s-4);background:var(--surface);border:1px solid var(--border);border-radius:var(--r-sm);cursor:pointer;transition:border-color var(--t-fast) var(--ease),background var(--t-fast) var(--ease),box-shadow var(--t-fast) var(--ease)}.radio-row:hover{border-color:var(--border-2)}.radio-row.selected{border-color:var(--brand-2);background:rgba(14,122,90,.04);box-shadow:0 0 0 3px rgba(14,122,90,.1)}.radio-row>input[type=radio]{margin-top:3px;width:16px;height:16px;accent-color:var(--brand-2);flex:0 0 auto}.radio-row .radio-text{display:flex;flex-direction:column;gap:2px}.radio-row .radio-text .radio-title{font-weight:500;color:var(--ink);font-size:var(--fs-base)}.radio-row .radio-text .radio-hint{font-size:var(--fs-sm);color:var(--ink-3)}.form-footer.branding-footer{align-items:center}.form-footer.branding-footer>.dirty-hint,.form-footer.branding-footer>.saved-pill{margin-right:auto}.dirty-hint{font-style:italic}.dirty-hint,.link-button{font-size:var(--fs-sm);color:var(--ink-3)}.link-button{background:transparent;border:none;padding:6px 10px;cursor:pointer;font-weight:500;border-radius:var(--r-sm);transition:color var(--t-fast) var(--ease),background var(--t-fast) var(--ease)}.link-button:hover:not(:disabled){color:var(--ink);background:var(--surface-2)}.link-button:disabled{opacity:.4;cursor:not-allowed}.logo-preview{width:100%;max-width:320px;height:96px;background:var(--surface);background-image:linear-gradient(45deg,rgba(0,0,0,.025) 25%,transparent 0),linear-gradient(-45deg,rgba(0,0,0,.025) 25%,transparent 0),linear-gradient(45deg,transparent 75%,rgba(0,0,0,.025) 0),linear-gradient(-45deg,transparent 75%,rgba(0,0,0,.025) 0);background-size:12px 12px;background-position:0 0,0 6px,6px -6px,-6px 0}.branding-controls{gap:var(--s-4)}.control-group h2+.control-group-hint{margin-top:-2px}.product-table tr.row-selected{background:rgba(14,122,90,.06)}.product-table tr.row-selected:hover{background:rgba(14,122,90,.1)}.product-table .select-cell{width:36px;text-align:center}.product-table .select-cell input[type=checkbox]{accent-color:var(--brand-2);cursor:pointer}.pilot-banner{display:flex;gap:var(--s-3);align-items:baseline;flex-wrap:wrap;padding:var(--s-3) var(--s-4);margin:var(--s-3) 0 var(--s-4);background:var(--surface-2);border:1px solid var(--border);border-left:3px solid var(--brand-2);border-radius:var(--r-md);font-size:var(--fs-sm)}.pilot-banner strong{font-weight:600;color:var(--ink)}.pilot-banner span{color:var(--ink-2)}.pilot-banner-soon{border-left-color:#f59e0b}.pilot-banner-expired{border-left-color:var(--bad);background:rgba(217,45,32,.04)}.auth-page{max-width:420px;margin:64px auto;padding:0 24px}.auth-page h1{font-size:28px;font-weight:600;margin-bottom:8px}.auth-page .lede{color:#4f5b6b;margin-bottom:24px;line-height:1.5}.auth-page form{gap:16px;margin:24px 0}.auth-page form,.auth-page label{display:flex;flex-direction:column}.auth-page label{gap:6px;font-weight:500}.auth-page input{padding:10px 12px;border:1px solid #d0d6dc;border-radius:6px;font:inherit}.auth-page input:focus{outline:2px solid #635bff;outline-offset:1px;border-color:#635bff}.auth-page button.primary{padding:12px 16px;background:#635bff;color:#fff;border:none;border-radius:6px;font-weight:600;cursor:pointer}.auth-page button.primary:disabled{opacity:.5;cursor:not-allowed}.auth-page button.link{background:none;border:none;color:#635bff;cursor:pointer;padding:0;text-decoration:underline;font:inherit}.auth-page .hint{font-size:13px;color:#4f5b6b;margin:-8px 0 0}.auth-page .error{color:#c44f3b;margin:0;font-size:14px}.auth-page .below{text-align:center;color:#4f5b6b;margin-top:24px}.auth-page .muted{color:#97a0ab;font-size:13px}.auth-page .checkbox{flex-direction:row;align-items:center;gap:8px;font-weight:400}.password-field{display:flex;flex-direction:column;gap:8px}.password-field label{display:flex;flex-direction:column;gap:4px;font-weight:500}.password-field input{padding:10px 12px;border:1px solid #d0d6dc;border-radius:6px}.password-field .hint{font-size:12px;margin:0}.password-field .hint.warn{color:#c44f3b}.password-field .hint.ok{color:#1f7a4a}.password-field .show-toggle{flex-direction:row;align-items:center;gap:6px;font-weight:400}.benefit-list{list-style:none;padding:0;display:flex;flex-direction:column;gap:8px}.benefit-list li{display:flex;gap:8px;align-items:flex-start}.benefit-list .check{color:#1f7a4a;font-weight:700}.oauth-buttons{display:flex;flex-direction:column;gap:10px;margin-bottom:16px}.oauth-btn{display:flex;align-items:center;justify-content:center;gap:8px;padding:10px 16px;border:1px solid #d0d6dc;background:#fff;border-radius:6px;font-weight:500;cursor:pointer;font-size:15px}.oauth-btn:hover{background:#f7f8fa}.oauth-btn .provider-icon{width:20px;height:20px;display:inline-flex;align-items:center;justify-content:center;font-weight:700}.oauth-divider{display:flex;align-items:center;gap:12px;margin:16px 0 8px;color:#97a0ab;font-size:13px}.oauth-divider:after,.oauth-divider:before{content:"";flex:1 1;height:1px;background:#d0d6dc}