:root{--canvas:oklch(95.43% .001 230.67);--surface-1:oklch(100% 0 0);--surface-2:oklch(98.48% .0003 230.66);--layer-1:oklch(96.96% .0007 230.67);--layer-1-hover:oklch(95.43% .001 230.67);--layer-2:oklch(100% 0 0);--border-subtle:oklch(93.89% .0014 230.68);--border-subtle-1:oklch(92.35% .0017 230.69);--border-strong:oklch(89.25% .0024 230.7);--txt-primary:oklch(23.78% .0029 230.83);--txt-secondary:oklch(43.77% .0066 230.87);--txt-tertiary:oklch(52.88% .0083 230.88);--txt-placeholder:oklch(61.61% .0092 230.87);--accent:oklch(47.99% .1158 242.91);--accent-hover:oklch(43.47% .1041 242.48);--accent-soft:oklch(47.99% .1158 242.91/.1);--on-accent:oklch(98.48% .0003 230.66);--success:oklch(44.68% .1187 151.4);--success-soft:oklch(63.2% .186 147.37/.12);--danger:oklch(44.46% .1774 26.79);--danger-soft:oklch(58.3% .2387 28.48/.1);--warning:oklch(55% .13 70);--warning-soft:oklch(75% .15 75/.15);--shadow:0 1px 2px oklch(0% 0 0/.05);--radius:6px;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;color:var(--txt-primary);background:var(--surface-1);-webkit-font-smoothing:antialiased;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif;font-size:14px;line-height:1.45}:root[data-theme=dark]{--canvas:oklch(16.89% .0021 230.81);--surface-1:oklch(19.32% .002 230.81);--surface-2:oklch(21.58% .0025 230.82);--layer-1:oklch(21.58% .0025 230.82);--layer-1-hover:oklch(23.78% .0029 230.83);--layer-2:oklch(23.78% .0029 230.83);--border-subtle:oklch(25.93% .0033 230.84);--border-subtle-1:oklch(30.11% .0041 230.85);--border-strong:oklch(34.15% .0049 230.86);--txt-primary:oklch(92.35% .0017 230.69);--txt-secondary:oklch(84.55% .0035 230.72);--txt-tertiary:oklch(76.55% .0054 230.76);--txt-placeholder:oklch(68.35% .0074 230.81);--accent:oklch(63.11% .1263 238.01);--accent-hover:oklch(58% .12 238);--accent-soft:oklch(63.11% .1263 238.01/.16);--on-accent:oklch(16.89% .0021 230.81);--success:oklch(79.14% .2091 151.66);--success-soft:oklch(79.14% .2091 151.66/.14);--danger:oklch(70.22% .1892 22.23);--danger-soft:oklch(70.22% .1892 22.23/.14);--warning:oklch(80% .14 80);--warning-soft:oklch(80% .14 80/.14);--shadow:none;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--canvas:oklch(16.89% .0021 230.81);--surface-1:oklch(19.32% .002 230.81);--surface-2:oklch(21.58% .0025 230.82);--layer-1:oklch(21.58% .0025 230.82);--layer-1-hover:oklch(23.78% .0029 230.83);--layer-2:oklch(23.78% .0029 230.83);--border-subtle:oklch(25.93% .0033 230.84);--border-subtle-1:oklch(30.11% .0041 230.85);--border-strong:oklch(34.15% .0049 230.86);--txt-primary:oklch(92.35% .0017 230.69);--txt-secondary:oklch(84.55% .0035 230.72);--txt-tertiary:oklch(76.55% .0054 230.76);--txt-placeholder:oklch(68.35% .0074 230.81);--accent:oklch(63.11% .1263 238.01);--accent-hover:oklch(58% .12 238);--accent-soft:oklch(63.11% .1263 238.01/.16);--on-accent:oklch(16.89% .0021 230.81);--success:oklch(79.14% .2091 151.66);--success-soft:oklch(79.14% .2091 151.66/.14);--danger:oklch(70.22% .1892 22.23);--danger-soft:oklch(70.22% .1892 22.23/.14);--warning:oklch(80% .14 80);--warning-soft:oklch(80% .14 80/.14);--shadow:none;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}}*{box-sizing:border-box}body{background:var(--surface-1);min-width:320px;margin:0}h1,h2,h3,h4{color:var(--txt-primary);letter-spacing:-.01em;margin:0;font-weight:600}h1{font-size:20px;line-height:1.3}h2{font-size:15px;line-height:1.35}h3{font-size:14px}p{color:var(--txt-secondary);margin:0}small{color:var(--txt-tertiary);font-size:12px}a{color:inherit;text-decoration:none}b,strong{color:var(--txt-primary);font-weight:600}ul{margin:0;padding:0;list-style:none}svg{flex:none;width:16px;height:16px}button,input,select,textarea{font:inherit;color:inherit}button{cursor:pointer}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.visually-hidden{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.eyebrow{display:none}hr{border:0;border-top:1px solid var(--border-subtle);margin:12px 0}label{color:var(--txt-secondary);gap:6px;font-size:13px;font-weight:500;display:grid}input,select,textarea{border:1px solid var(--border-subtle-1);border-radius:var(--radius);background:var(--layer-2);width:100%;height:32px;color:var(--txt-primary);padding:0 10px;font-size:13px;font-weight:400}textarea{resize:vertical;height:auto;min-height:72px;padding:8px 10px}select[multiple]{height:auto}input::placeholder,textarea::placeholder{color:var(--txt-placeholder)}input:focus,select:focus,textarea:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft);outline:none}input[type=checkbox],input[type=radio]{width:auto;min-height:0;accent-color:var(--accent)}input[type=file]{padding:5px}.button,button:not(.text-button):not(.close-button):not(.line-remove):not([role=tab]):not(.fin-plain){border:1px solid var(--border-subtle-1);border-radius:var(--radius);background:var(--layer-2);min-height:32px;color:var(--txt-primary);white-space:nowrap;justify-content:center;align-items:center;gap:6px;padding:0 12px;font-size:13px;font-weight:500;transition:background .12s,border-color .12s;display:inline-flex}.button:hover,button:not(.text-button):not(.close-button):not(.line-remove):not(.fin-plain):hover{background:var(--layer-1-hover)}.button-primary,button.button-primary{background:var(--accent)!important;border-color:var(--accent)!important;color:var(--on-accent)!important}.button-primary:hover,button.button-primary:hover{background:var(--accent-hover)!important;border-color:var(--accent-hover)!important}button:disabled,.button[aria-disabled=true]{opacity:.55;cursor:not-allowed}.text-button{color:var(--accent);background:0 0;border:0;padding:0;font-size:13px;font-weight:500}.text-button:hover{text-decoration:underline}.close-button,.line-remove{color:var(--txt-tertiary);background:0 0;border:0;padding:4px;font-size:18px;line-height:1}.close-button:hover,.line-remove:hover{color:var(--txt-primary)}.danger-text,.fin-bad{color:var(--danger)!important}.report-alert{border:1px solid var(--border-subtle);border-radius:var(--radius);background:var(--surface-2);color:var(--txt-secondary);flex-wrap:wrap;gap:6px 16px;margin:0;padding:8px 12px;font-size:13px;display:flex}.report-alert-error{border-color:var(--danger-soft);background:var(--danger-soft);color:var(--danger)}.form-error,.export-error,.record-payment-denied{border:1px solid var(--danger-soft);border-radius:var(--radius);background:var(--danger-soft);color:var(--danger);margin:8px 0;padding:8px 12px;font-size:13px}.settings-note,.bank-notice,.settings-success,.form-hint,.invoice-calculation-note,.report-footnote,.bank-review-hint,.gate-note{color:var(--txt-tertiary);margin:8px 0 0;font-size:12px}.settings-success{color:var(--success)}.fin-muted,.commercial-empty,.accounting-empty,.bank-empty,.approval-empty,.invoice-detail-empty,.commercial-detail-empty,.commercial-loading{color:var(--txt-tertiary);padding:4px 0;font-size:13px}.finance-app{background:var(--surface-1);flex-direction:column;min-height:100vh;display:flex}.fin-header{z-index:10;border-bottom:1px solid var(--border-subtle);background:var(--surface-1);align-items:center;gap:16px;min-height:44px;padding:0 20px;display:flex;position:sticky;top:0}.mark-lockup{color:var(--txt-primary);align-items:center;gap:8px;font-size:14px;font-weight:600;display:inline-flex}.fin-tabs{scrollbar-width:none;align-self:stretch;gap:4px;display:flex;overflow-x:auto}.fin-tabs a{color:var(--txt-tertiary);white-space:nowrap;border-bottom:2px solid #0000;align-items:center;padding:0 10px;font-size:13px;font-weight:500;display:flex}.fin-tabs a:hover{color:var(--txt-primary)}.fin-tabs a.active{color:var(--txt-primary);border-bottom-color:var(--accent)}.fin-header-end{align-items:center;gap:8px;margin-left:auto;display:flex}.fin-header-end select{width:auto;min-width:180px}.fin-chip{border:1px solid var(--border-subtle);color:var(--txt-secondary);white-space:nowrap;border-radius:999px;padding:3px 8px;font-size:12px}.fin-main{flex:1;width:100%;max-width:1280px;margin:0 auto;padding:20px}.fin-page{gap:16px;display:grid}.fin-subnav{flex-wrap:wrap;gap:4px;display:flex}.fin-subnav a{border-radius:var(--radius);color:var(--txt-secondary);padding:5px 10px;font-size:13px;font-weight:500}.fin-subnav a:hover{background:var(--layer-1);color:var(--txt-primary)}.fin-subnav a.active{background:var(--layer-1);color:var(--txt-primary);box-shadow:inset 0 0 0 1px var(--border-subtle)}.fin-quick{flex-wrap:wrap;gap:8px;display:flex}.fin-stats{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;display:grid}.fin-stat{border:1px solid var(--border-subtle);background:var(--surface-1);border-radius:8px;align-content:start;gap:4px;padding:14px 16px;display:grid}.fin-stat>span{color:var(--txt-tertiary);font-size:12px;font-weight:500}.fin-stat>b{font-variant-numeric:tabular-nums;font-size:20px;font-weight:600}.fin-columns{grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:start;gap:16px;display:grid}.fin-rows li{border-top:1px solid var(--border-subtle);justify-content:space-between;align-items:center;gap:12px;padding:10px 0;display:flex}.fin-rows li:first-child{border-top:0}.fin-rows li>span{gap:2px;min-width:0;display:grid}.fin-row-end{text-align:right;font-variant-numeric:tabular-nums;justify-items:end}.fin-setup{place-items:start center;padding-top:32px;display:grid}.fin-setup .fin-card{gap:12px;width:min(520px,100%)}.fin-card,.sales-layout>*,.approvals-panel,.commercial-card,.settings-card,.reports-workspace,.export-history,.finance-periods,.journal-activity,.opening-balances,.receivables-workspace,.bank-workspace,.quotes-layout>*,.billing-schedules,.purchases-layout>*,.receipts-layout>*,.entity-dialog{border:1px solid var(--border-subtle);background:var(--surface-1);min-width:0;box-shadow:var(--shadow);border-radius:8px;align-content:start;gap:12px;padding:16px;display:grid}.sales-workspace,.receipts-workspace,.purchases-workspace,.finance-settings,.commercial-workspace{align-content:start;gap:16px;display:grid}.fin-card .fin-card,.settings-card .settings-card,.invoice-detail-card,.sales-list-card,.payment-list-card,.bank-upload-card,.bank-lines-card,.period-card,.journal-card{align-content:start;gap:12px;min-width:0;display:grid}.fin-card-head,.panel-heading,.sales-page-heading,.settings-page-heading,.settings-heading,.commercial-card-heading,.invoice-detail-heading,.invoice-editor-head,.sales-list-heading,.quotes-list-heading,.schedule-heading,.bank-card-title,.approved-time-heading,.commercial-detail-head,.invoice-list-title{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;display:flex}.sales-page-heading p,.settings-page-heading p,.panel-heading p{font-size:13px}.sales-page-heading h2,.settings-page-heading h2{font-size:15px}.sales-entity-chip,.data-label,.commercial-count,.settings-page-heading>span{color:var(--txt-tertiary);font-size:12px}.invoice-list-rows,.commercial-list,.approval-list,.export-list,.period-list,.journal-list,.quotes-list,.schedule-table,.settings-rows,.entity-table,.invoice-line-rows,.approved-time-list,.opening-line-list,.credit-note-history,.finance-documents{border:1px solid var(--border-subtle);border-radius:var(--radius);gap:0;display:grid;overflow:hidden}.invoice-list-row,.commercial-list-row,.approval-list>li,.export-row,.payment-row,.quote-list-row,.schedule-row,.settings-rows li,.entity-row,.finance-document-row,.approved-time-row{border-top:1px solid var(--border-subtle);text-align:left;width:100%;color:var(--txt-primary);align-items:center;gap:10px;padding:9px 12px;font-size:13px;display:grid}.invoice-list-row:first-child,.commercial-list-row:first-child,.approval-list>li:first-child,.export-row:first-child,.payment-row:first-child,.quote-list-row:first-child,.schedule-row:first-child,.settings-rows li:first-child,.entity-row:first-child,.finance-document-row:first-child,.approved-time-row:first-child{border-top:0!important}button.invoice-list-row,button.commercial-list-row,button.payment-row,button.quote-list-row,.invoice-list-rows>button,.commercial-list>button,.quotes-list>button{text-align:left;border:0!important;border-top:1px solid var(--border-subtle)!important;white-space:normal!important;background:0 0!important;border-radius:0!important;justify-content:stretch!important;height:auto!important;min-height:0!important;padding:9px 12px!important;display:grid!important}.invoice-list-row:hover,.commercial-list-row:hover,.payment-row:hover,.quote-list-row:hover{background:var(--layer-1)!important}.is-selected,.selected{background:var(--accent-soft)!important}.invoice-list-row{grid-template-columns:8px minmax(0,1fr) auto}.invoice-list-row small,.commercial-list-row small,.payment-row small,.quote-list-row small{display:block}.approval-list>li{grid-template-columns:minmax(0,1fr) auto auto}.approval-list>li>div:first-child{gap:2px;display:grid}.approval-actions{gap:6px;display:flex}.settings-rows li{grid-template-columns:minmax(70px,.6fr) 1fr auto}.entity-row{grid-template-columns:28px 1fr auto auto}.schedule-row{grid-template-columns:minmax(0,1fr) 130px auto}.approved-time-row{grid-template-columns:16px minmax(0,1fr) auto}.row-avatar,.commercial-avatar,.entity-badge,.project-symbol{border-radius:var(--radius);background:var(--layer-1);width:26px;height:26px;color:var(--txt-secondary);place-items:center;font-size:12px;font-weight:600;display:grid}.invoice-status-pill,.invoice-status-label,.approval-status,.period-status,.bank-state,.document-state{background:var(--layer-1);width:max-content;color:var(--txt-secondary);text-transform:capitalize;white-space:nowrap;border-radius:999px;align-items:center;padding:1px 8px;font-size:11px;font-weight:500;display:inline-flex}.invoice-status-issued,.invoice-status-paid,.invoice-status-accepted,.invoice-status-active,.status-approved,.period-open,.bank-state-matched{background:var(--success-soft);color:var(--success)}.invoice-status-draft,.status-pending,.pending,.bank-state-duplicate_review,.invoice-status-partially_paid{background:var(--warning-soft);color:var(--warning)}.invoice-status-void,.invoice-status-declined,.status-returned,.rejected,.invoice-status-overdue{background:var(--danger-soft);color:var(--danger)}.invoice-status-dot{background:var(--border-strong);border-radius:50%;width:8px;height:8px}.invoice-status-dot.invoice-status-issued,.invoice-status-dot.invoice-status-paid{background:var(--success)}.invoice-status-dot.invoice-status-draft{background:var(--warning)}.bank-negative{color:var(--danger);font-variant-numeric:tabular-nums}.bank-positive{color:var(--success);font-variant-numeric:tabular-nums}form,.invoice-editor,.quote-editor,.purchase-editor,.settings-form,.budget-form,.refund-form,.record-payment-form,.credit-note-form,.commercial-add-form,.project-add-form,.schedule-create-form,.export-create,.period-create,.settings-inline-form,.supplier-inline-form,.receipt-action-form,.entity-form,.budget-editor{align-content:start;gap:12px;display:grid}.form-columns,.invoice-form-grid,.settings-form,.budget-form,.quote-milestone-fields{grid-template-columns:1fr 1fr;gap:12px;display:grid}.commercial-fields{grid-template-columns:90px 1fr;gap:6px 12px;font-size:13px;display:grid}.commercial-fields dt{color:var(--txt-tertiary)}dl,dd{margin:0}.invoice-editor-actions,.invoice-workflow-actions,.quote-actions,.schedule-actions,.opening-actions,.bank-row-actions,.bank-page-actions,.bank-upload-actions,.reports-controls,.bank-toolbar,.journal-controls{flex-wrap:wrap;align-items:end;gap:8px;display:flex}.reports-controls>label,.journal-controls>label{flex:140px}.invoice-lines-head,.invoice-line-row{grid-template-columns:minmax(130px,1.5fr) .45fr .8fr .9fr 24px;align-items:end;gap:8px;display:grid}.invoice-lines-head,.quote-line-head{color:var(--txt-tertiary);font-size:12px}.quote-line-head,.quote-line-row{grid-template-columns:minmax(130px,1.4fr) .4fr .8fr .8fr;gap:8px;display:grid}.purchase-lines{gap:8px;display:grid}.purchase-line{grid-template-columns:1.2fr 1.2fr 1fr .65fr .9fr auto;align-items:end;gap:8px;display:grid}.supplier-inline-form{grid-template-columns:1fr 1fr auto;align-items:end}.credit-note-form{grid-template-columns:1fr 1.4fr auto;align-items:end}.settings-checkbox{align-items:center;gap:8px;display:flex}.bank-mapping-grid{grid-template-columns:repeat(4,minmax(120px,1fr));gap:8px;display:grid}.opening-line{grid-template-columns:minmax(220px,2fr) 1fr 1fr;gap:8px;display:grid}.budget-current{grid-template-columns:1fr 1fr auto;gap:8px;display:grid}.invoice-total-strip,.receivable-summary,.billing-summary,.bank-preview-summary,.report-metrics{grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:8px;display:grid}.invoice-total-strip>*,.receivable-summary>*,.report-metrics>*,.billing-summary>*,.bank-preview-summary>*{border:1px solid var(--border-subtle);border-radius:var(--radius);background:var(--surface-2);gap:2px;padding:10px 12px;display:grid}.invoice-total-strip small,.receivable-summary small,.report-metrics small{text-transform:uppercase;letter-spacing:.03em;font-size:11px}.invoice-preview-table{border:1px solid var(--border-subtle);border-radius:var(--radius);display:grid;overflow:hidden}.invoice-preview-row{border-top:1px solid var(--border-subtle);grid-template-columns:minmax(100px,1.3fr) .4fr .8fr .7fr .8fr;gap:8px;padding:8px 12px;font-size:13px;display:grid}.invoice-preview-row:first-child{border-top:0}.invoice-preview-header{background:var(--surface-2);color:var(--txt-tertiary);font-size:12px;font-weight:500}.invoice-preview-row>:not(:first-child){text-align:right;font-variant-numeric:tabular-nums}.invoice-preview-totals{font-variant-numeric:tabular-nums;justify-items:end;gap:4px;padding:10px 12px;display:grid}.purchases-workspace .invoice-preview-row{grid-template-columns:2fr .6fr 1fr 1fr 1fr}.quote-milestone-list{gap:4px;padding:10px 12px;display:grid}.quote-milestone-list span{justify-content:space-between;display:flex}.invoice-empty-mark{display:none}.report-table-wrap,.receivable-table-wrap,.bank-table-scroll{border:1px solid var(--border-subtle);border-radius:var(--radius);overflow-x:auto}table{border-collapse:collapse;width:100%;font-size:13px}th,td{border-top:1px solid var(--border-subtle);text-align:left;vertical-align:top;padding:8px 12px}thead th{background:var(--surface-2);color:var(--txt-tertiary);border-top:0;font-size:12px;font-weight:500}td:last-child,th:last-child{text-align:right}td{font-variant-numeric:tabular-nums}.sales-layout,.quotes-layout,.purchases-layout{grid-template-columns:minmax(260px,.75fr) minmax(0,1.4fr);align-items:start;gap:16px;display:grid}.receipts-layout{grid-template-columns:minmax(300px,1fr) minmax(300px,1fr);align-items:start;gap:16px;display:grid}.commercial-client-layout,.project-list-layout{grid-template-columns:minmax(240px,.85fr) minmax(0,1.15fr);align-items:start;gap:16px;display:grid}.settings-grid{grid-template-columns:repeat(2,minmax(0,1fr));align-items:start;gap:16px;display:grid}dialog.entity-dialog{width:min(520px,100vw - 32px);color:var(--txt-primary)}dialog::backdrop{background:oklch(0% 0 0/.4)}.dialog-bar{justify-content:flex-end;display:flex}.gate-page,.loading-page{background:var(--surface-1);place-items:center;min-height:100vh;padding:16px;display:grid}.gate-card{border:1px solid var(--border-subtle);background:var(--surface-1);border-radius:10px;justify-items:start;gap:12px;width:min(420px,100%);padding:24px;display:grid}.gate-card h1{font-size:18px}.gate-copy{font-size:13px}.gate-button{margin-top:4px}.loading-page{color:var(--txt-tertiary);align-content:center;gap:12px;font-size:13px}.loading-indicator{border:2px solid var(--border-strong);border-top-color:var(--accent);border-radius:50%;width:20px;height:20px;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}@media (width<=960px){.fin-stats{grid-template-columns:repeat(2,minmax(0,1fr))}.fin-columns,.sales-layout,.quotes-layout,.purchases-layout,.receipts-layout,.commercial-client-layout,.project-list-layout,.settings-grid{grid-template-columns:1fr}.purchase-line{grid-template-columns:1fr 1fr}.bank-mapping-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=600px){.fin-main{padding:12px}.fin-header{flex-wrap:wrap;padding:0 12px}.fin-header-end{margin-left:0}.fin-stats,.form-columns,.invoice-form-grid,.settings-form,.budget-form,.supplier-inline-form,.credit-note-form,.opening-line,.bank-mapping-grid{grid-template-columns:1fr}.invoice-line-row{grid-template-columns:minmax(0,1fr) .55fr .85fr 24px}}@media (prefers-reduced-motion:reduce){.loading-indicator{animation:none}}form>button,form>.button,.settings-form>button,.invoice-form-grid>button,.budget-form>button,.form-columns>button{place-self:end start;height:32px}.fin-setup-banner{border-color:var(--accent-soft);background:var(--accent-soft)}.fin-setup-banner .fin-card-head>div{gap:4px;max-width:720px;display:grid}
