nav{display:flex;gap:4px;flex-wrap:wrap}.stats.four{grid-template-columns:repeat(4,1fr)}.paid{color:var(--green)}.spent{color:var(--amber)}.loss,.required,.receipt-missing{color:var(--accent)}button:disabled{opacity:.45;cursor:not-allowed}.error{background:#e0492b1a;border:1px solid #762b1c;color:#f2b9ab;padding:10px 14px;border-radius:3px;font-size:12px;margin:12px 0}.receipt-drop{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;border:1px dashed var(--border);border-radius:4px;padding:22px 14px;text-align:center;font-size:12px;color:var(--muted);cursor:pointer}.receipt-attached{display:flex;align-items:center;gap:12px;border:1px solid var(--border);border-radius:4px;padding:10px}.receipt-attached img,.file-chip{width:56px;height:56px;object-fit:cover;border-radius:3px;border:1px solid var(--border)}.file-chip{display:grid;place-items:center}.receipt-attached p{margin:0 0 4px;max-width:260px;overflow:hidden;text-overflow:ellipsis}.receipt-pill{display:inline-flex;align-items:center;gap:4px;color:var(--green);border-color:#6e9b6e59;padding:3px 8px;border-radius:20px;font-size:11px;min-height:28px}.receipt-missing{font-size:11px}.receipt-preview{width:100%;border-radius:4px;border:1px solid var(--border)}.download{display:inline-block;background:var(--accent);color:#fff;text-decoration:none;padding:10px 14px;border-radius:3px}.expense-table{width:100%}.expense-head,.expense-row{display:grid;grid-template-columns:110px minmax(130px,1fr) minmax(90px,.7fr) auto auto auto;gap:10px;align-items:center}.expense-head{color:var(--muted);font-size:11px;padding:8px 4px;border-bottom:1px solid var(--border)}.report-period{border:1px solid var(--border);background:var(--surface);border-radius:4px;padding:16px 18px 18px}.report-title{font-size:12px;color:var(--muted);margin:0 0 12px;text-transform:uppercase;letter-spacing:.4px}.by-year{margin-top:26px}.report-years{display:flex;flex-direction:column;gap:10px}.report-year{border:1px solid var(--border);border-radius:4px;overflow:hidden;background:var(--surface)}.report-year-head{width:100%;display:flex;align-items:center;justify-content:space-between;background:none;border:0;padding:14px 16px;font-family:inherit;font-size:17px}.report-year-body{padding:16px;border-top:1px solid var(--border)}.month-tabs{display:flex;flex-wrap:wrap;gap:5px;margin-bottom:14px}.month-tabs button{padding:6px 10px;font-size:11px;min-height:32px}.month-tabs button.active{color:var(--paper);border-color:var(--accent);background:#e0492b14}#month-totals{border-top:1px dashed var(--border);padding-top:14px}
@media(max-width:700px){.stats.four{grid-template-columns:1fr 1fr}.expense-head{display:none}.expense-row{grid-template-columns:1fr auto}.expense-row .date,.expense-row .category{display:none}nav button{font-size:11px;padding:8px 10px}}
@media(max-width:390px){.stats.four{grid-template-columns:1fr}.media{grid-template-columns:1fr}.toolbar>div:last-child{display:flex;gap:6px;flex-wrap:wrap}}
.alert.reminder{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.alert.reminder button{margin-left:auto}.location-options,.expense-types{grid-template-columns:repeat(2,1fr)}.optional-receipt .required{color:var(--muted)}.card-top>span{display:flex;gap:4px;flex-wrap:wrap;justify-content:flex-end}.card-top button{min-width:34px}
@media(max-width:520px){.alert.reminder button{width:100%;margin-left:0}.location-options,.expense-types{grid-template-columns:1fr 1fr}.card-top{align-items:flex-start}}
.icon-action svg,.icon-text svg,.expense-tag svg,.icon-only svg{width:14px;height:14px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;vertical-align:-2px}.icon-action.whatsapp{color:#25d366}.icon-text,.expense-tag,.receipt-actions{display:inline-flex;align-items:center;gap:6px}.expense-summary{grid-template-columns:repeat(3,1fr)}.bulk-receipts{margin-bottom:22px}.expense-head.latest,.expense-row.latest{grid-template-columns:100px minmax(130px,1fr) minmax(90px,.7fr) minmax(105px,.7fr) auto minmax(105px,auto) auto}.expense-tag{font-size:10px;padding:3px 7px;border:1px solid var(--border);border-radius:12px;white-space:nowrap}.expense-tag.loan{color:var(--accent);border-color:var(--accent);background:#e0492b14}.receipt-actions{flex-wrap:wrap}.icon-only{min-width:30px;padding:5px}
@media(max-width:700px){.expense-summary{grid-template-columns:1fr}.expense-row.latest{grid-template-columns:1fr auto}.expense-row.latest>span:nth-child(3),.expense-row.latest>span:nth-child(4){display:block}.expense-row.latest>span:nth-child(6){grid-column:1/-1}}
#top-nav.compact [data-tab]{display:none}.expense-tools{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:14px}.scope-toggle{display:inline-flex;border:1px solid var(--border);border-radius:4px;overflow:hidden}.scope-toggle button{border:0;border-radius:0;background:transparent}.scope-toggle button.active{background:#e0492b20;color:var(--paper)}.trend-chart{height:160px;display:flex;align-items:flex-end;gap:8px;border-bottom:1px solid var(--border);padding:10px 4px 0}.trend-col{flex:1;text-align:center;min-width:0}.trend-bars{height:125px;display:flex;align-items:flex-end;justify-content:center;gap:2px}.trend-bars i{display:block;width:38%;min-height:1px}.trend-bars .income{background:var(--green)}.trend-bars .out{background:var(--amber)}.alert.reminder>svg{width:15px;height:15px;fill:none;stroke:currentColor;stroke-width:2}.expense-head.latest,.expense-row.latest.vat{grid-template-columns:90px minmax(120px,1fr) minmax(80px,.7fr) 90px 75px 85px minmax(100px,auto) auto}
@media(max-width:640px){.expense-tools{align-items:stretch;flex-direction:column}.expense-tools>button{width:100%}.trend-chart{gap:3px}.expense-row.latest.vat{grid-template-columns:1fr auto}.expense-row.latest.vat>span:nth-child(3),.expense-row.latest.vat>span:nth-child(4),.expense-row.latest.vat>span:nth-child(5){display:block}}
.sidebar{min-width:min(310px,82vw)}.sidebar-nav{display:flex;flex-direction:column;align-items:stretch;gap:4px}.sidebar-nav button{text-align:left;padding:13px;background:transparent;border:0;border-left:3px solid transparent}.sidebar-nav button:hover{background:#e0492b14;border-left-color:var(--accent)}.tax-disclaimer{display:flex;gap:14px;border:1px solid var(--border);border-left:4px solid var(--amber);background:var(--surface);padding:18px 22px;line-height:1.65;color:var(--muted);margin-bottom:26px}.tax-mode{margin-bottom:22px}.tax-three{grid-template-columns:repeat(3,1fr)}.tax-heading{margin-top:26px}.loan-note{color:var(--muted);font-size:12px}.tax-total{display:flex;justify-content:space-between;align-items:center;gap:15px;border:1px solid var(--border);background:var(--surface);padding:20px 26px;margin-top:20px}.tax-total strong{color:var(--accent);font-size:22px}.chart-wrap{border:1px solid var(--border);background:var(--surface);padding:22px 14px 12px;overflow-x:auto}.chart-wrap svg{width:100%;min-width:720px;height:300px}.chart-wrap text{fill:var(--muted);font-size:11px}.chart-wrap .axis{stroke:var(--border);stroke-dasharray:4 4}.bar-paid{fill:var(--green)}.bar-spent{fill:var(--amber)}.net-line{fill:none;stroke:var(--accent);stroke-width:3;stroke-linejoin:round}.net-dot{fill:var(--accent);stroke:var(--surface);stroke-width:2}.chart-legend{display:flex;justify-content:center;gap:20px;flex-wrap:wrap;margin:6px 0 0}
@media(max-width:640px){.tax-three{grid-template-columns:1fr}.tax-total{align-items:flex-start;flex-direction:column}.tax-disclaimer{padding:14px}.chart-wrap{padding-left:4px;padding-right:4px}}
.drawer-overlay{position:fixed;inset:0;z-index:50;background:#0009}.drawer{position:absolute;left:0;top:0;bottom:0;width:min(320px,86vw);background:var(--surface);border-right:1px solid var(--border);padding:20px;box-shadow:12px 0 30px #0008;animation:drawer-in .18s ease-out}.drawer-head{display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--border);padding-bottom:14px}.drawer-nav{display:flex;flex-direction:column;gap:4px;margin-top:14px}.drawer-nav button{text-align:left;background:transparent;border:0;border-left:3px solid transparent;padding:13px 12px}.drawer-nav button:hover,.drawer-nav button:focus{background:#e0492b14;border-left-color:var(--accent)}.drawer-divider{height:1px;background:var(--border);margin:10px 0}@keyframes drawer-in{from{transform:translateX(-100%)}to{transform:none}}.trend-tooltip{position:absolute;z-index:5;width:205px;display:flex;flex-direction:column;gap:9px;background:#171512;border:1px solid var(--border);border-radius:4px;padding:13px 15px;box-shadow:0 8px 24px #0009;pointer-events:none}.trend-tooltip[hidden]{display:none}.expense-table{overflow-x:auto;border:1px solid var(--border)}.expense-head.latest,.expense-row.latest.vat{min-width:900px}.expense-head.latest>span,.expense-row.latest.vat>span,.expense-row.latest.vat>strong{min-width:0;padding:11px 10px;border-right:1px solid var(--border);overflow-wrap:anywhere}.expense-head.latest>span:last-child,.expense-row.latest.vat>span:last-child{border-right:0}.expense-row.latest.vat{border-bottom:1px solid var(--border)}.expense-row.latest.vat:last-child{border-bottom:0}
html{-webkit-text-size-adjust:100%;text-size-adjust:100%}body{font-size:clamp(13px,1.2vw,16px)}button,input,select,textarea{font-size:clamp(12px,1.1vw,16px)}h1{font-size:clamp(24px,4vw,44px)}h2{font-size:clamp(20px,3vw,32px)}
@media(max-width:700px){.expense-head.latest{display:grid}.expense-row.latest.vat{display:grid;grid-template-columns:90px minmax(170px,1fr) 110px 100px 85px 95px 130px 92px}.expense-row.latest.vat>span:nth-child(3),.expense-row.latest.vat>span:nth-child(4),.expense-row.latest.vat>span:nth-child(5),.expense-row.latest.vat>span:nth-child(6){display:block}.expense-row.latest.vat>span:nth-child(7){grid-column:auto}.expense-row.latest.vat>span,.expense-row.latest.vat>strong{font-size:12px}.trend-tooltip{position:sticky;left:8px!important;top:8px!important}}
.expense-table .expense-head.latest,.expense-table .expense-row.latest.vat{align-items:stretch;gap:0}.expense-table .expense-head.latest>span,.expense-table .expense-row.latest.vat>span,.expense-table .expense-row.latest.vat>strong{display:flex;align-items:center;margin:0;border-right:1px solid var(--border);align-self:stretch}.expense-table .expense-head.latest>span:last-child,.expense-table .expense-row.latest.vat>span:last-child{border-right:0}.expense-table .expense-head.latest{border-bottom:1px solid var(--border)}.expense-table .expense-row.latest.vat{border-bottom:1px solid var(--border)}.expense-table .expense-row.latest.vat:last-child{border-bottom:0}
@media(max-width:700px){.expense-table .expense-row.latest.vat>span:nth-child(3),.expense-table .expense-row.latest.vat>span:nth-child(4),.expense-table .expense-row.latest.vat>span:nth-child(5),.expense-table .expense-row.latest.vat>span:nth-child(6),.expense-table .expense-row.latest.vat>span:nth-child(7){display:flex}}
.table-scroll{overflow-x:auto;border:1px solid var(--border);border-radius:6px}.data-table{width:100%;min-width:780px;border-collapse:collapse}.data-table th,.data-table td{padding:14px 16px;border-right:1px solid var(--border);border-bottom:1px solid var(--border);text-align:left;vertical-align:middle}.data-table th:last-child,.data-table td:last-child{border-right:0}.data-table tbody tr:last-child td{border-bottom:0}.data-table th{color:var(--muted);font-weight:400;text-transform:uppercase;letter-spacing:.05em}.invoice-actions{white-space:nowrap}.invoice-actions button{min-width:42px;margin:2px;padding:9px}.invoice-actions svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.8;vertical-align:middle}.invoice-status{display:inline-block;padding:5px 9px;border:1px solid var(--border);border-radius:999px}.invoice-status.paid{color:var(--green);border-color:var(--green)}.invoice-status.overdue,.invoice-status.cancelled{color:var(--accent);border-color:var(--accent)}.modal-wide{width:min(1040px,calc(100vw - 28px));max-width:1040px}.invoice-form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 18px}.invoice-lines{border:1px solid var(--border);border-bottom:0;margin-bottom:10px}.invoice-line{display:grid;grid-template-columns:minmax(180px,1fr) 80px 120px 110px 44px;align-items:center}.invoice-line>*{height:48px;border:0;border-right:1px solid var(--border);border-bottom:1px solid var(--border);border-radius:0}.invoice-line span{display:flex;align-items:center;justify-content:flex-end;padding:8px}.invoice-line button{border-right:0}.invoice-options{display:grid;grid-template-columns:1fr 1fr minmax(150px,.7fr);gap:18px;margin:20px 0}.inline-input{display:grid;grid-template-columns:1fr 1fr}.inline-input>*{border-radius:0}.invoice-live-total{border:1px solid var(--border);padding:16px;display:flex;flex-direction:column;justify-content:center}.invoice-live-total strong{font-size:1.45rem}.invoice-preview{max-height:66vh;overflow:auto;background:#ddd;padding:18px}.invoice-paper{max-width:820px;margin:auto;padding:40px;background:#fff;color:#181714;font-family:Arial,sans-serif}.invoice-paper .invoice-brand,.invoice-paper .invoice-parties{display:flex;justify-content:space-between;gap:30px}.invoice-paper .invoice-brand img{width:92px;height:92px;object-fit:contain}.invoice-paper .invoice-brand h1{font:700 42px Arial,sans-serif;margin:0}.invoice-paper .invoice-parties{margin:35px 0}.invoice-paper table{width:100%;border-collapse:collapse}.invoice-paper th,.invoice-paper td{padding:12px;border:1px solid #aaa;text-align:left}.invoice-paper th:nth-child(n+2),.invoice-paper td:nth-child(n+2){text-align:right}.invoice-paper .invoice-summary{width:310px;margin:20px 0 20px auto}.invoice-paper .invoice-summary p{display:flex;justify-content:space-between}.invoice-paper .invoice-total{font-size:20px;border-top:2px solid #222;padding-top:12px}.invoice-paper .invoice-note,.invoice-paper .invoice-terms{margin-top:28px;line-height:1.55}.invoice-paper .invoice-terms{font-size:12px}.invoice-paper footer{margin-top:36px;padding-top:16px;border-top:1px solid #aaa;text-align:center}
@media(max-width:700px){.invoice-form-grid,.invoice-options{grid-template-columns:1fr}.invoice-line{grid-template-columns:minmax(150px,1fr) 66px 92px 90px 40px}.invoice-paper{min-width:680px;padding:28px}.invoice-preview{padding:8px}.invoice-actions button{min-width:38px;padding:8px}}
.invoice-page-overlay{position:fixed;inset:0;display:block;background:var(--bg);overflow:auto;padding:0;z-index:60}.invoice-page{width:100%;max-width:none;min-height:100vh;margin:0;border:0;border-radius:0;background:var(--bg);padding:0}.invoice-page #invoice-form{max-width:1100px;margin:auto}.invoice-page-head{position:sticky;top:0;z-index:3;display:flex;justify-content:space-between;align-items:center;gap:18px;background:var(--surface);border-bottom:1px solid var(--border);padding:18px max(22px,calc((100vw - 1100px)/2))}.invoice-page-head h2{margin:0;font-family:Georgia,serif}.invoice-page-head-actions{display:flex;gap:10px}.invoice-page #invoice-form>.field,.invoice-page #invoice-form>.invoice-form-grid,.invoice-page #invoice-form>h3,.invoice-page #invoice-form>.invoice-lines,.invoice-page #invoice-form>#add-invoice-line,.invoice-page #invoice-form>.invoice-help,.invoice-page #invoice-form>.invoice-options{margin-left:22px;margin-right:22px}.invoice-page #invoice-form>.field:first-of-type{margin-top:28px}.source-invoice-grid{grid-template-columns:1fr 1fr;gap:42px;margin-top:22px}.invoice-source-title{margin:0 0 18px;color:var(--muted);text-transform:uppercase;letter-spacing:.07em}.invoice-help{color:var(--muted);font-size:12px;line-height:1.5}.invoice-line-head{background:var(--surface);color:var(--muted);font-size:11px;text-transform:uppercase;letter-spacing:.04em}.invoice-line-head span{justify-content:flex-start;border-right:1px solid var(--border);border-bottom:1px solid var(--border)}.invoice-line-head span:nth-child(4){justify-content:flex-end}.invoice-page .invoice-options{border:1px solid var(--border);background:var(--surface);padding:18px}.invoice-page textarea[name=paymentNote]{min-height:190px}.invoice-preview .cs-invdoc{min-width:680px}
@media(max-width:700px){.invoice-page-head{padding:14px;align-items:flex-start}.invoice-page-head-actions{flex-direction:column}.source-invoice-grid{grid-template-columns:1fr;gap:12px}.invoice-page #invoice-form>.field,.invoice-page #invoice-form>.invoice-form-grid,.invoice-page #invoice-form>h3,.invoice-page #invoice-form>.invoice-lines,.invoice-page #invoice-form>#add-invoice-line,.invoice-page #invoice-form>.invoice-help,.invoice-page #invoice-form>.invoice-options{margin-left:12px;margin-right:12px}}
.booking-card-actions{display:flex;align-items:center;justify-content:flex-end;gap:5px;flex-wrap:wrap}.delivery-toggle{display:inline-flex;align-items:center;gap:7px;min-height:38px;padding:7px 10px;border:1px solid var(--border);border-radius:4px;color:var(--paper);font-size:11px;cursor:pointer}.delivery-toggle input{width:17px;height:17px;margin:0;accent-color:var(--accent)}.delivery-toggle:has(input:checked){border-color:var(--green);color:var(--green);background:#6f946b12}@media(max-width:560px){.card-top{display:block}.booking-card-actions{justify-content:flex-start;margin-top:12px}.delivery-toggle{width:100%;justify-content:flex-start}}
.chip.both:before{background:linear-gradient(90deg,var(--amber) 0 48%,var(--blue) 52% 100%)}.more-bookings{display:block;margin-top:3px;color:var(--muted);font-size:9px}.day.has-bookings .num{color:var(--paper);font-weight:700}
@media(max-width:640px){.calendar{width:100%;overflow:hidden}.weekdays span{padding:6px 1px;font-size:9px}.day{display:block;min-width:0;min-height:86px;padding:4px 3px;overflow:hidden}.day .num{display:block;margin-bottom:2px}.day .chip{display:block;width:100%;margin-top:2px;padding:2px 1px;border-radius:2px;font-size:clamp(7px,2.15vw,9px);line-height:1.25;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-align:left}.day .chip:before{width:5px;height:5px;margin-right:2px}.more-bookings{font-size:8px;margin-top:2px}}
@media(min-width:641px) and (max-width:899px){.day{min-height:92px}.chip{display:block;font-size:9px}}
.auth-gate{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:max(24px,env(safe-area-inset-top)) max(16px,env(safe-area-inset-right)) max(24px,env(safe-area-inset-bottom)) max(16px,env(safe-area-inset-left));background:radial-gradient(circle at top,#28231d 0,var(--bg) 48%)}.auth-gate[hidden],#app-shell[hidden]{display:none}.auth-card{width:min(440px,100%);overflow:hidden;border:1px solid var(--border);border-radius:8px;background:var(--surface);box-shadow:0 24px 60px #0008}.auth-brand{padding:28px;background:#12110f;border-bottom:1px solid var(--border);text-align:center}.auth-brand img{width:92px;height:92px;object-fit:contain}.auth-brand p{margin:10px 0 0;color:var(--muted);font-size:12px}.auth-body{padding:26px}.auth-body h2{text-align:center}.auth-intro{text-align:center;color:var(--muted);font-size:12px}.auth-wide,.auth-provider{width:100%}.auth-message{min-height:22px;margin:10px 0;color:var(--amber);font-size:12px;text-align:center}.auth-links{display:flex;justify-content:space-between;gap:10px}.auth-links button{border:0;padding:5px;color:var(--muted);font-size:11px}.auth-divider{display:flex;align-items:center;gap:12px;margin:18px 0;color:var(--muted);font-size:11px}.auth-divider:before,.auth-divider:after{content:"";height:1px;flex:1;background:var(--border)}.auth-provider{margin-top:9px;background:var(--bg);text-align:center}.auth-provider b{display:inline-block;min-width:25px;font-family:Arial,sans-serif;font-size:17px}.auth-provider:disabled,#auth-submit:disabled{opacity:.55}.auth-provider:focus,.auth-wide:focus{outline:2px solid var(--accent);outline-offset:2px}#account-button{font-size:10px;max-width:190px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}@media(max-width:480px){.auth-body{padding:21px}.auth-links{align-items:center;flex-direction:column}.auth-links button{width:100%}.auth-card{border-radius:5px}}
