@import "https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&display=swap";@import "https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:wght,FILL@100..700,0..1&display=swap";html,body,#root{min-height:100%;margin:0}:root{--font:"Inter", system-ui, -apple-system, sans-serif;--bg:#f5f6fa;--surface:#fff;--surface-low:#f3f4f8;--surface-mid:#e9ebf2;--border:#e4e7ee;--border-strong:#cfd4e0;--text:#111827;--text-2:#4b5563;--text-3:#6b7280;--primary:#0052ff;--primary-hover:#0046db;--primary-text:#0040c4;--primary-soft:#e8efff;--primary-ring:#0052ff29;--success:#0f7a46;--success-soft:#e2f5ea;--warning:#8a4b09;--warning-soft:#fff4e0;--warning-border:#f3d9a4;--danger:#b3261e;--danger-soft:#fde9e7;--danger-border:#f5c6c2;--info:#2b4cb9;--info-soft:#e8ecfb;--shadow-1:0 1px 2px #1118270a, 0 8px 24px #1118270a;--shadow-2:0 20px 40px #11182714;--r-sm:4px;--r:8px;--r-lg:12px;--sidebar-w:248px}*{box-sizing:border-box}html{-webkit-font-smoothing:antialiased}body{font-family:var(--font);background:var(--bg);color:var(--text);margin:0;font-size:14px;line-height:1.5}a{color:var(--primary-text);text-decoration:none}a:hover{text-decoration:underline}h1,h2,h3,h4{color:var(--text);letter-spacing:-.01em;margin:0}p{margin:0}.material-symbols-outlined{font-variation-settings:"FILL" 0, "wght" 400, "GRAD" 0, "opsz" 20;vertical-align:middle;flex-shrink:0;font-size:20px;line-height:1}.num,td,.kpi-value,.summary strong{font-variant-numeric:tabular-nums}.app{min-height:100vh;display:flex}.nav-drawer{width:var(--sidebar-w);background:var(--surface);border-right:1px solid var(--border);flex-direction:column;flex-shrink:0;gap:24px;height:100vh;padding:20px 16px;display:flex;position:sticky;top:0}.drawer-brand{align-items:center;gap:12px;padding:4px 8px;display:flex}.avatar{border-radius:var(--r);background:var(--primary);color:#fff;letter-spacing:.02em;place-items:center;width:36px;height:36px;font-size:12px;font-weight:700;display:grid}.brand{letter-spacing:-.01em;color:var(--text);align-items:center;gap:8px;font-size:15px;font-weight:600;display:inline-flex}.drawer-brand p{color:var(--text-3);margin-top:1px;font-size:12px}.nav{flex-direction:column;gap:2px;display:flex}.nav button,.mobile-menu button{border-radius:var(--r);width:100%;color:var(--text-2);font:inherit;text-align:left;cursor:pointer;background:0 0;border:none;align-items:center;gap:10px;padding:9px 12px;font-weight:500;transition:background-color .12s,color .12s;display:flex}.nav button .material-symbols-outlined,.mobile-menu button .material-symbols-outlined{color:var(--text-3)}.nav button:hover,.mobile-menu button:hover{background:var(--surface-low);color:var(--text)}.nav button.active,.mobile-menu button.active{background:var(--primary-soft);color:var(--primary-text);font-weight:600}.nav button.active .material-symbols-outlined,.mobile-menu button.active .material-symbols-outlined{color:var(--primary)}.drawer-footer{border-top:1px solid var(--border);gap:10px;margin-top:auto;padding-top:16px;display:grid}.drawer-footer span{color:var(--text-3);text-overflow:ellipsis;white-space:nowrap;padding:0 8px;font-size:12px;display:block;overflow:hidden}.main-shell{flex-direction:column;flex:1;min-width:0;display:flex}.topbar{z-index:50;background:var(--surface);border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;gap:12px;min-height:56px;padding:8px 16px;display:flex;position:sticky;top:0}.icon-btn{border:1px solid var(--border-strong);background:var(--surface);width:36px;height:36px;color:var(--text);border-radius:var(--r);cursor:pointer;justify-content:center;align-items:center;display:inline-flex}.container{width:100%;max-width:1200px;margin:0 auto;padding:32px 32px 80px}.section{gap:24px;display:grid}.section-head{gap:4px;display:grid}.section-head.row{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:16px;display:flex}h1{letter-spacing:-.02em;font-size:28px;font-weight:600;line-height:1.2}.section-head>p,.section-head>div>p{color:var(--text-2);max-width:72ch;margin-top:4px;font-size:15px}.expense-summary-chip,.tax-year-select{border-radius:var(--r);border:1px solid var(--border);background:var(--surface);height:36px;color:var(--text-2);white-space:nowrap;align-items:center;gap:8px;padding:0 12px;font-size:13px;font-weight:500;display:inline-flex}.tax-year-select select{width:auto;height:28px;color:var(--text);background-color:#0000;border:none;padding:0 28px 0 8px;font-weight:600}.tax-year-select select:focus{box-shadow:none}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);box-shadow:var(--shadow-1);padding:24px}.card h3{margin-bottom:16px;font-size:16px;font-weight:600}.card>h3+.muted,.card .section-head p.muted{color:var(--text-3);max-width:72ch;font-size:13px}.card>h3+.muted{margin:-10px 0 16px}.card .section-head{margin-bottom:16px}.card .section-head h3{margin-bottom:0}.card .section-head p.muted{margin-top:4px}.card+.card,.card+.callout,.callout+.card,.table-card+.table-card{margin-top:0}.muted{color:var(--text-3)}.small,small{color:var(--text-3);font-size:13px}.panel{background:var(--surface-low);border:1px solid var(--border);border-radius:var(--r);padding:16px}.panel-accent{background:var(--primary-soft);border-color:#0000}.empty{text-align:center;color:var(--text-3);padding:32px 16px;font-size:14px}.kpis{grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:16px;display:grid}.hero-kpi{grid-column:span 2}.kpi-label{letter-spacing:.06em;text-transform:uppercase;color:var(--text-3);font-size:11px;font-weight:600;display:block}.hero-kpi h2,.side-kpi h3,.balance-account-card h2,.kpi-value{letter-spacing:-.02em;color:var(--text);font-variant-numeric:tabular-nums;margin:10px 0 4px;font-size:28px;font-weight:600;line-height:1.15}.hero-kpi h2{color:var(--primary-text);font-size:40px}.side-kpi h3{font-size:24px}.hero-kpi h2,.side-kpi h3,.balance-account-card h2{white-space:nowrap}.kpis>.card{padding:20px 24px}.hero-kpi small,.side-kpi small,.balance-account-card small{color:var(--text-3);font-size:13px;display:block}.btn{border-radius:var(--r);height:36px;font:inherit;white-space:nowrap;cursor:pointer;border:1px solid #0000;justify-content:center;align-items:center;gap:8px;padding:0 14px;font-size:14px;font-weight:500;line-height:1;transition:background-color .12s,border-color .12s,box-shadow .12s,color .12s;display:inline-flex}.btn:focus-visible{box-shadow:0 0 0 3px var(--primary-ring);outline:none}.btn:disabled{opacity:.55;cursor:not-allowed}.btn-primary{background:var(--primary);color:#fff}.btn-primary:hover:not(:disabled){background:var(--primary-hover);box-shadow:0 6px 16px #0052ff38}.btn-secondary{background:var(--surface);border-color:var(--border-strong);color:var(--text)}.btn-secondary:hover:not(:disabled){background:var(--surface-low);border-color:var(--text-3)}.btn-ghost{color:var(--primary-text);background:0 0;padding:0 10px}.btn-ghost:hover:not(:disabled){background:var(--primary-soft)}.btn-danger{color:var(--danger);background:0 0;padding:0 10px}.btn-danger:hover:not(:disabled){background:var(--danger-soft)}.btn-sm{height:30px;padding:0 10px;font-size:13px}.btn-block{width:100%}form .btn-block{margin-top:8px}.actions{flex-wrap:wrap;align-items:center;gap:4px;display:inline-flex}.link-btn{font:inherit;color:var(--primary-text);cursor:pointer;background:0 0;border:none;padding:0;font-size:12px}.link-btn:hover{text-decoration:underline}form.card,.form-stack{align-content:start;gap:16px;display:grid}form.card>h3,.form-stack>h3{margin-bottom:0}form.card>h3+.muted,.form-stack>h3+.muted{margin:-8px 0 0}label{color:var(--text-2);gap:6px;font-size:13px;font-weight:500;display:grid}label>small,label>.muted{font-size:12px;font-weight:400}input,select,textarea{border:1px solid var(--border-strong);border-radius:var(--r);background:var(--surface);width:100%;height:40px;font:inherit;color:var(--text);padding:0 12px;font-size:14px;transition:border-color .12s,box-shadow .12s}textarea{resize:vertical;height:auto;min-height:80px;padding:10px 12px}select{appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%236b7280' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");background-position:right 12px center;background-repeat:no-repeat;padding-right:36px}input::placeholder,textarea::placeholder{color:var(--text-3)}input:focus,select:focus,textarea:focus{border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-ring);outline:none}input:disabled,select:disabled{background:var(--surface-low);color:var(--text-3)}input[type=checkbox]{width:16px;height:16px;accent-color:var(--primary);margin:0}.grid2{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;display:grid}.grid3{grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;display:grid}.mileage-checkbox{grid-template-columns:auto 1fr;align-self:end;align-items:center;gap:10px;min-height:40px;font-weight:400}.receipt-upload-field{gap:8px;display:grid}.receipt-upload-label{color:var(--text-2);font-size:13px;font-weight:500}.receipt-dropzone{border:1px dashed var(--border-strong);border-radius:var(--r);background:var(--surface-low);text-align:center;cursor:pointer;gap:4px;padding:24px 16px;transition:border-color .12s,background-color .12s;display:grid;position:relative}.receipt-dropzone:hover,.receipt-dropzone.is-drag-active{border-color:var(--primary);background:var(--primary-soft)}.receipt-dropzone-input{opacity:0;cursor:pointer;position:absolute;inset:0}.receipt-dropzone-title{color:var(--text);font-size:14px;font-weight:600}.receipt-dropzone-subtitle{color:var(--text-3);font-size:12px}.receipt-dropzone-file{color:var(--primary-text);word-break:break-all;margin-top:4px;font-size:12px;font-weight:500}.expense-scan-status{font-size:12px}.line-items-header{justify-content:space-between;align-items:center;gap:12px;display:flex}.line-items-header h3{margin:0}.line-items-stack,.line-item-card{gap:12px;display:grid}.line-item-card-head{justify-content:space-between;align-items:center;gap:12px;display:flex}.line-item-card-head h4{color:var(--text-2);font-size:13px;font-weight:600}.summary{position:sticky;top:24px}.summary p{justify-content:space-between;gap:12px;padding:8px 0;display:flex}.summary p span{color:var(--text-2)}.summary p strong{font-weight:600}.summary p.total{border-top:1px solid var(--border);margin-top:8px;padding-top:16px;font-size:16px}.mileage-quote{gap:6px;display:grid}.mileage-quote-amount{justify-content:space-between;align-items:baseline;gap:12px;display:flex}.mileage-quote-amount strong{color:var(--primary-text);letter-spacing:-.01em;font-size:22px;font-weight:600}.mileage-quote p{font-size:13px}.mileage-warning{color:var(--warning);font-weight:500}.invoice-layout{grid-template-columns:minmax(0,2fr) minmax(280px,1fr);align-items:start;gap:24px;display:grid}.left-column{gap:24px;display:grid}.client-layout{grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);align-items:start;gap:24px;display:grid}.expense-layout{grid-template-columns:minmax(0,1fr) minmax(0,1.8fr);align-items:start;gap:24px;display:grid}table{border-collapse:collapse;width:100%;font-size:14px}.table-card{overflow:auto hidden}.table-card table{width:calc(100% + 48px);margin:0 -24px}.table-card>table:first-child{margin-top:-24px}.table-card>table:last-child,.table-card>.table-scroll:last-child{margin-bottom:-24px}.table-card .table-scroll table{margin-bottom:0}.table-card>table:not(:last-child){margin-bottom:24px}th{text-align:left;letter-spacing:.06em;text-transform:uppercase;color:var(--text-3);background:var(--surface-low);border-bottom:1px solid var(--border);white-space:nowrap;padding:10px 12px;font-size:11px;font-weight:600}td{border-bottom:1px solid var(--border);vertical-align:top;color:var(--text);white-space:nowrap;padding:12px}td.wrap,.tax-note-cell,td.wrap .fx-hint,td.wrap .balance-suggestion,td.wrap .vat-note{white-space:normal}tbody tr:last-child td{border-bottom:none}tbody tr:hover td{background:#f3f4f899}th:first-child,td:first-child{padding-left:24px}th:last-child,td:last-child{padding-right:24px}th.num,td.num{text-align:right}tfoot td,.total-row td{border-top:1px solid var(--border-strong);background:var(--surface-low);border-bottom:none;font-weight:600}tbody .total-row td,tbody tr.total-row:hover td{background:var(--surface-low)}.fx-hint,.balance-suggestion,.vat-note{color:var(--text-3);white-space:nowrap;margin-top:2px;font-size:12px;font-weight:400;display:block}.vat-note.warn{color:var(--danger)}.balance-issue{color:var(--danger);margin-top:4px;font-size:12px;display:block}.balance-counterpart{color:var(--info);margin-top:4px;font-size:12px;display:block}.balance-difference{color:var(--danger);font-variant-numeric:tabular-nums;font-weight:600;display:block}.tax-note-cell{white-space:normal;min-width:220px;color:var(--text-3);font-size:13px}.status{white-space:nowrap;background:var(--surface-mid);height:24px;color:var(--text-2);border-radius:999px;align-items:center;padding:0 10px;font-size:12px;font-weight:600;display:inline-flex}.status-paid,.status-sent,.status-matched,.status-settled{background:var(--success-soft);color:var(--success)}.status-suggested,.status-due{background:var(--warning-soft);color:var(--warning)}.status-failed,.status-unresolved,.status-overdue{background:var(--danger-soft);color:var(--danger)}.status-internal,.status-retainer,.status-repaid,.status-awaiting{background:var(--info-soft);color:var(--info)}.status-draft,.status-ignored,.status-open{background:var(--surface-mid);color:var(--text-2)}.callout{border-radius:var(--r-lg);border:1px solid var(--border);background:var(--surface-low);gap:6px;padding:16px 20px;display:grid}.callout h3{margin:0;font-size:14px;font-weight:600}.callout p{font-size:14px}.callout-warning{background:var(--warning-soft);border-color:var(--warning-border)}.callout-warning h3,.callout-warning p{color:var(--warning)}.callout-danger{background:var(--danger-soft);border-color:var(--danger-border)}.callout-danger h3,.callout-danger p{color:var(--danger)}.callout-info{background:var(--info-soft);border-color:#0000}.callout-info h3,.callout-info p{color:var(--info)}.error{color:var(--danger);font-weight:500}.tax-rules-card ul{color:var(--text-2);gap:8px;margin:0;padding-left:20px;display:grid}.client-row{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;gap:12px;padding:12px 0;display:flex}.client-row:first-child{padding-top:0}.client-row:last-child{border-bottom:none;padding-bottom:0}.client-row h3{margin:0;font-size:14px}.client-row p{color:var(--text-3);font-size:13px}.pdf-frame{border:1px solid var(--border);border-radius:var(--r);background:var(--surface-low);width:100%;height:560px;margin-bottom:16px;display:block}.detail .detail-row{border-bottom:1px solid var(--border);justify-content:space-between;gap:12px;padding:10px 0;display:flex}.detail .detail-row:last-of-type{border-bottom:none}.detail .detail-row span{color:var(--text-2)}.detail .detail-row strong{font-weight:600}.detail-actions{flex-wrap:wrap;justify-content:flex-end;gap:8px;margin-top:20px;display:flex}.vat-table th,.vat-table td{white-space:nowrap}.vat-row-empty td{color:var(--text-3)}.vat-row-expanded td{border-bottom:none}.vat-owed{color:var(--danger)}.vat-credit{color:var(--success)}.vat-remove{color:var(--text-3);cursor:pointer;background:0 0;border:none;padding:0 0 0 6px;font-size:13px;line-height:1}.vat-remove:hover:not(:disabled){color:var(--danger)}.vat-remove:disabled{opacity:.4;cursor:not-allowed}.vat-skat-toggle{color:var(--primary-text);font:inherit;cursor:pointer;background:0 0;border:none;margin-top:6px;padding:0;font-size:12px;font-weight:500;display:block}.vat-skat-toggle:hover{text-decoration:underline}.vat-table .vat-skat-row td{white-space:normal;background:var(--surface-low);padding:20px 24px 24px}.vat-table .vat-skat-row:hover td{background:var(--surface-low)}.vat-skat{gap:20px;display:grid}.vat-skat>.muted{max-width:80ch;font-size:13px}.vat-skat-section{gap:8px;display:grid}.vat-skat-section h4{letter-spacing:.06em;text-transform:uppercase;color:var(--text-3);margin-bottom:2px;font-size:11px;font-weight:600}.vat-skat-field{border:1px solid var(--border);border-radius:var(--r);background:var(--surface);justify-content:space-between;align-items:flex-start;gap:16px;padding:12px 16px;display:flex}.vat-skat-field.is-zero{opacity:.55}.vat-skat-field.is-zero:hover{opacity:1}.vat-skat-label{gap:2px;min-width:0;display:grid}.vat-skat-label strong{font-size:14px;font-weight:600}.vat-skat-label .vat-note{white-space:normal}.vat-skat-label details{margin-top:4px;font-size:12px}.vat-skat-label summary{cursor:pointer;color:var(--primary-text);font-weight:500;list-style:none}.vat-skat-label summary:before{content:"▸ "}.vat-skat-label details[open] summary:before{content:"▾ "}.vat-skat-label ul{gap:4px;margin:6px 0 0;padding:0;list-style:none;display:grid}.vat-skat-label li{color:var(--text-2);justify-content:space-between;gap:12px;display:flex}.vat-skat-label li .num{white-space:nowrap}.vat-skat-amount{white-space:nowrap;font-variant-numeric:tabular-nums;align-items:center;gap:6px;display:flex}.vat-skat-amount strong{letter-spacing:-.01em;font-size:20px;font-weight:600}.vat-skat-amount .vat-note{margin:0}.vat-skat-amount .btn{margin-left:8px}.vat-skat-total{border-color:var(--primary);background:var(--primary-soft)}.vat-skat-total .vat-skat-amount strong{color:var(--primary-text)}.balance-section{gap:24px;display:grid}.balance-filters{flex-wrap:wrap;gap:6px;display:flex}.balance-row-actions{flex-wrap:wrap;gap:4px;margin-top:6px;display:flex}div.balance-suggestion{white-space:normal;justify-items:start;gap:4px;margin:6px 0 2px;display:grid}.balance-suggestion em{color:var(--text-3);font-style:normal;display:block}.balance-compare-card td{font-variant-numeric:tabular-nums}.balance-accounts{grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:16px;display:grid}.balance-account-card{align-content:start;gap:10px;display:grid}.balance-account-card h2{color:var(--primary-text);margin-bottom:0}.balance-account-card label{margin-top:6px}.balance-account-card .status,.balance-account-card .btn{justify-self:start}.auth-shell{min-height:100vh;color:var(--text-2);place-items:center;padding:24px;display:grid}.landing{grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:center;gap:48px;width:min(1080px,100%);display:grid}.landing-copy{gap:16px;display:grid}.landing-kicker{color:var(--text-3);letter-spacing:.06em;text-transform:uppercase;align-items:center;gap:10px;font-size:13px;font-weight:600;display:inline-flex}.landing h1{letter-spacing:-.025em;font-size:40px;line-height:1.1}.landing-lead{color:var(--text-2);max-width:48ch;font-size:17px;line-height:1.6}.landing-points{gap:10px;margin-top:8px;display:grid}.landing-points p{color:var(--text-2);align-items:center;gap:10px;display:flex}.landing-points .material-symbols-outlined{color:var(--primary)}.landing-actions{flex-wrap:wrap;gap:8px;margin-top:8px;display:flex}.landing-visual{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);box-shadow:var(--shadow-2);padding:8px}.landing-visual img{border-radius:var(--r);width:100%;display:block}.mobile-only,.mobile-menu{display:none}@media (width<=980px){.app{display:block}.nav-drawer{display:none}.mobile-only{display:flex}.mobile-menu{background:var(--surface);border-bottom:1px solid var(--border);gap:2px;padding:8px;display:grid}.container{padding:20px 16px 64px}.section{gap:16px}h1{font-size:24px}.card{border-radius:var(--r-lg);padding:16px}.table-card table{width:calc(100% + 32px);margin:0 -16px}.table-card>table:first-child{margin-top:-16px}.table-card>table:last-child{margin-bottom:-16px}th:first-child,td:first-child{padding-left:16px}th:last-child,td:last-child{padding-right:16px}.kpis,.invoice-layout,.expense-layout,.client-layout,.grid2,.grid3,.landing{grid-template-columns:1fr}.hero-kpi{grid-column:auto}.hero-kpi h2{font-size:32px}.side-kpi h3{font-size:24px}.summary{position:static}.section-head.row{flex-direction:column;align-items:stretch}.card .section-head.row{flex-direction:row;justify-content:space-between;align-items:center}.detail-actions{flex-direction:column}.detail-actions .btn{width:100%}.table-card{-webkit-overflow-scrolling:touch;overflow-x:auto}.vat-skat-field{flex-direction:column}.vat-table .vat-skat-row td{padding:16px}.landing{gap:24px}.landing h1{font-size:30px}.landing-visual{order:-1}}
