@import url("https://fonts.googleapis.com/css2?family=Geist:wght@400;500;600;700;800&display=swap");
:root{--bg:#f7f4f6;--panel:#fff;--ink:#241c22;--muted:#786d74;--line:#eadfe6;--primary:#9b2f65;--primary-dark:#73204a;--soft:#f6e8ef;--accent:#d7a64a;--good:#2c7a5a;--warn:#b06b19;--bad:#b33b45;--shadow:0 16px 40px rgba(65,33,51,.08)}
*{box-sizing:border-box}body{margin:0;font-family:"Geist","Segoe UI Variable","Segoe UI",Arial,sans-serif;background:var(--bg);color:var(--ink)}button,input,select,textarea{font:inherit}.app-shell{min-height:100vh;display:grid;grid-template-columns:270px 1fr}.sidebar{background:#251820;color:#fff;padding:24px 18px;display:flex;flex-direction:column;gap:28px;position:relative;top:auto;height:auto;min-height:100vh;align-self:stretch}.brand{display:flex;gap:12px;align-items:center}.brand-mark{width:44px;height:44px;border-radius:14px;display:grid;place-items:center;background:linear-gradient(135deg,#d3a74f,#9b2f65);font-weight:800;overflow:hidden;flex:0 0 auto}.brand-mark.has-logo{background:#fff;padding:0;border:1px solid rgba(255,255,255,.18)}.brand-mark img{width:100%;height:100%;object-fit:cover;display:block}.brand strong{display:block}.brand span{display:block;color:#cabdc5;font-size:12px;margin-top:4px}.sidebar nav{display:grid;gap:6px}.nav-btn{border:0;background:transparent;color:#d7cbd2;text-align:left;padding:11px 14px;border-radius:12px;cursor:pointer}.nav-btn:hover,.nav-btn.active{background:#3a2532;color:#fff}.sidebar-note{margin-top:auto;background:#35242e;border:1px solid #4a3441;border-radius:14px;padding:14px;font-size:12px;line-height:1.5;color:#d7cbd2}.sidebar-note b{display:block;color:#fff;margin-bottom:5px}.main{padding:28px;min-width:0}.topbar{display:flex;justify-content:space-between;gap:18px;align-items:center;margin-bottom:22px}.topbar h1{margin:0;font-size:28px}.topbar p{margin:5px 0 0;color:var(--muted)}.top-actions{display:flex;gap:10px}.btn{border:0;border-radius:11px;padding:11px 15px;font-weight:700;cursor:pointer;text-decoration:none;display:inline-flex;align-items:center;justify-content:center}.btn.primary{background:var(--primary);color:#fff}.btn.primary:hover{background:var(--primary-dark)}.btn.secondary{background:#fff;color:var(--ink);border:1px solid var(--line)}.btn.danger{background:#fff0f1;color:var(--bad);border:1px solid #f0cbd0}.view{display:none}.view.active{display:block}.cards{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin-bottom:16px}.cards.compact{grid-template-columns:repeat(3,minmax(0,1fr))}.metric-card{background:var(--panel);border:1px solid var(--line);border-radius:18px;padding:20px;box-shadow:var(--shadow)}.metric-card span{display:block;color:var(--muted);font-size:13px}.metric-card strong{display:block;font-size:25px;margin:9px 0 5px}.metric-card small{color:var(--muted)}.metric-card.accent{background:linear-gradient(135deg,#9b2f65,#6f254b);color:#fff}.metric-card.accent span,.metric-card.accent small{color:#f5dfe9}.metric-card.warning{border-left:4px solid var(--accent)}.grid{display:grid;gap:16px}.two-col{grid-template-columns:1.15fr .85fr;margin-bottom:16px}.panel{background:var(--panel);border:1px solid var(--line);border-radius:18px;padding:20px;box-shadow:var(--shadow);margin-bottom:16px}.panel-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:18px}.panel-head h2{font-size:18px;margin:0}.panel-head p{font-size:13px;color:var(--muted);margin:5px 0 0}.link-btn{border:0;background:transparent;color:var(--primary);font-weight:700;cursor:pointer}.chart-empty{min-height:220px;display:grid;place-items:center;color:var(--muted)}.bar-chart{display:flex;align-items:end;gap:12px;min-height:230px;padding:20px 4px 0}.bar-group{flex:1;min-width:38px;display:grid;grid-template-columns:1fr 1fr;gap:4px;align-items:end;position:relative;padding-bottom:32px}.bar{border-radius:8px 8px 3px 3px;min-height:3px}.bar.income{background:#9b2f65}.bar.expense{background:#d7a64a}.bar-label{position:absolute;bottom:0;left:0;right:0;text-align:center;color:var(--muted);font-size:10px}.task-list{display:grid;gap:10px}.task{width:100%;border:1px solid var(--line);background:#fff;padding:13px;border-radius:14px;display:flex;gap:12px;text-align:left;cursor:pointer}.task:hover{border-color:#cfaabd;background:#fffafb}.task-icon{width:32px;height:32px;border-radius:10px;background:var(--soft);color:var(--primary);display:grid;place-items:center;font-weight:800;flex:0 0 auto}.task b,.task small{display:block}.task small{color:var(--muted);margin-top:4px}.table-wrap{overflow:auto}.table-wrap.wide{max-height:68vh}table{width:100%;border-collapse:collapse;min-width:760px}th,td{padding:12px 10px;border-bottom:1px solid var(--line);font-size:13px;text-align:left;vertical-align:middle}th{color:var(--muted);font-size:12px;position:sticky;top:0;background:#fff;z-index:1}.right{text-align:right}.amount-debit{color:var(--bad);font-weight:700}.amount-credit{color:var(--good);font-weight:700}.status{display:inline-flex;padding:5px 8px;border-radius:999px;font-size:11px;font-weight:700}.status.review,.status.unpaid,.status.unmatched{background:#fff4dd;color:#9b6214}.status.auto,.status.paid,.status.matched{background:#e6f4ed;color:#277155}.status.confirmed,.status.sent,.status.accepted{background:#eee8f8;color:#654797}.status.draft{background:#eef0f2;color:#525961}.status.cancelled{background:#fff0f1;color:#a73742}.status.part-paid{background:#e9f3fc;color:#2f638b}.category-select{max-width:190px;border:1px solid var(--line);border-radius:9px;padding:7px;background:#fff}.toolbar{display:flex;gap:10px;align-items:center;margin-bottom:15px}.search-box{flex:1}.toolbar input,.toolbar select,.form-grid input,.form-grid select,.form-grid textarea,.document-actions select,.mini-grid input{width:100%;border:1px solid var(--line);border-radius:10px;padding:10px;background:#fff;color:var(--ink)}.toolbar select{max-width:190px}.toolbar label{display:flex;align-items:center;gap:10px;font-size:13px;font-weight:700}.receipt-grid{grid-template-columns:390px 1fr}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:13px}.form-grid label{display:grid;gap:6px;font-size:13px;font-weight:700}.form-grid .full{grid-column:1/-1}.checkbox{display:flex!important;align-items:center;gap:8px}.checkbox input{width:auto}.info-box,.warning-box{margin-top:16px;padding:13px;border-radius:12px;background:#f8f3e8;color:#72531f;font-size:12px;line-height:1.55}.warning-box b,.info-box b{display:block;margin-bottom:4px}.receipt-list,.document-list{display:grid;gap:10px}.receipt-item,.document-card{border:1px solid var(--line);border-radius:14px;padding:13px;display:flex;justify-content:space-between;gap:12px}.receipt-item b,.receipt-item small,.document-card b,.document-card small,.document-card strong{display:block}.receipt-item small,.document-card small{color:var(--muted);margin-top:4px}.document-card strong{font-size:18px;margin-top:8px}.doc-type{font-size:10px;letter-spacing:.12em;color:var(--primary);font-weight:800}.receipt-actions,.document-actions{display:flex;align-items:center;justify-content:flex-end;gap:8px;flex-wrap:wrap}.document-actions select{width:auto;padding:7px}.mini-btn{border:1px solid var(--line);background:#fff;border-radius:9px;padding:7px 9px;cursor:pointer;color:var(--ink);text-decoration:none;font-size:12px}.danger-text{color:var(--bad)}.doc-grid{grid-template-columns:520px 1fr}.section-label{font-size:13px;font-weight:800;margin-bottom:8px}.item-editor{display:grid;gap:8px;margin-bottom:9px}.item-row{display:grid;grid-template-columns:2.2fr .6fr .7fr .8fr 36px;gap:7px}.item-row input{min-width:0;border:1px solid var(--line);border-radius:9px;padding:9px}.report-cards{grid-template-columns:repeat(3,1fr)}.report-row{display:grid;grid-template-columns:1fr auto;gap:10px;padding:11px 0;border-bottom:1px solid var(--line);font-size:13px}.report-row:last-child{border-bottom:0}.report-row strong{font-variant-numeric:tabular-nums}.report-row small{display:block;color:var(--muted);margin-top:3px}.hchart{display:grid;gap:13px;margin-bottom:18px}.hlabel{display:flex;justify-content:space-between;gap:10px;font-size:12px;margin-bottom:5px}.htrack{height:9px;background:#f1e9ee;border-radius:999px;overflow:hidden}.htrack>div{height:100%;background:linear-gradient(90deg,#9b2f65,#d7a64a);border-radius:999px}.profit-chart{height:220px;display:flex;gap:8px;align-items:stretch;padding:12px 0}.profit-col{flex:1;position:relative;border-left:1px solid #f0e7ec;min-width:25px}.profit-zero{position:absolute;left:0;right:0;top:50%;border-top:1px dashed #cdbec6}.profit-bar{position:absolute;left:20%;right:20%;border-radius:5px}.profit-bar.positive{background:#2c7a5a}.profit-bar.negative{background:#b33b45}.profit-col small{position:absolute;bottom:-4px;left:0;right:0;text-align:center;color:var(--muted);font-size:10px}.tax-toolbar{justify-content:flex-start}.tax-cards{grid-template-columns:repeat(4,1fr)}.tax-total{display:grid;grid-template-columns:1fr auto;padding:12px;background:#faf7f9;border-radius:12px;margin-top:15px;gap:8px;font-size:13px}.tiny-delete{border:0;background:#fff0f1;color:var(--bad);border-radius:50%;width:22px;height:22px;cursor:pointer}.partner-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-bottom:14px}.partner-box{border:1px solid var(--line);padding:14px;border-radius:14px}.partner-box h3{margin:0 0 12px}.partner-box h3 small{color:var(--muted)}.mini-grid{display:grid;grid-template-columns:1fr 1fr;gap:9px}.mini-grid label{font-size:11px;color:var(--muted)}.mini-grid input{margin-top:4px}.partner-results{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:20px}.partner-result{border:1px solid var(--line);border-radius:14px;padding:14px;display:grid;grid-template-columns:1fr 1fr;gap:12px}.partner-result>span{grid-column:1/-1;font-size:16px;font-weight:800;color:var(--primary)}.partner-result small,.partner-result b,.partner-result strong{display:block}.partner-result small{color:var(--muted)}.partner-result strong{font-size:18px;color:var(--primary)}.law-panel{border-left:4px solid var(--accent)}.source-links{display:flex;gap:10px;flex-wrap:wrap;margin-top:14px}.source-links a{font-size:12px;color:var(--primary)}.steps{display:grid;gap:14px}.steps>div{display:flex;gap:12px}.steps span{width:30px;height:30px;border-radius:10px;background:var(--soft);color:var(--primary);display:grid;place-items:center;font-weight:800;flex:0 0 auto}.steps p{margin:4px 0;line-height:1.5}.checklist{margin:0;padding-left:20px;color:var(--muted);line-height:1.8}.flash{padding:12px 15px;border-radius:12px;margin-bottom:16px;font-weight:700}.flash.success{background:#e9f6ef;color:#276849}.flash.error{background:#fff0f1;color:#9c303b}.hidden{display:none!important}.modal{position:fixed;inset:0;background:rgba(30,18,25,.55);display:grid;place-items:center;padding:20px;z-index:10}.modal-card{background:#fff;border-radius:18px;padding:20px;max-width:650px;width:100%;max-height:90vh;overflow:auto}.modal-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}.modal-head h2{margin:0}.modal-head button{border:0;background:transparent;font-size:28px;cursor:pointer}.empty{color:var(--muted);text-align:center;padding:26px}.empty.small{padding:14px}.confidence{font-size:11px;color:var(--muted)}code{background:#f2edf0;padding:2px 5px;border-radius:5px}hr{border:0;border-top:1px solid var(--line);margin:22px 0}
@media(max-width:1180px){.doc-grid{grid-template-columns:1fr}.cards,.tax-cards{grid-template-columns:repeat(2,1fr)}}
@media(max-width:1000px){.two-col,.receipt-grid{grid-template-columns:1fr}.app-shell{grid-template-columns:220px 1fr}.main{padding:20px}.partner-grid,.partner-results{grid-template-columns:1fr}}
@media(max-width:760px){.app-shell{display:block}.sidebar{position:static;height:auto;padding:14px}.sidebar nav{display:flex;overflow:auto}.nav-btn{white-space:nowrap}.sidebar-note{display:none}.main{padding:14px}.topbar{align-items:flex-start;flex-direction:column}.top-actions{width:100%;display:grid;grid-template-columns:1fr 1fr}.cards,.cards.compact,.report-cards,.tax-cards{grid-template-columns:1fr}.form-grid{grid-template-columns:1fr}.form-grid .full{grid-column:auto}.toolbar{flex-wrap:wrap}.toolbar .search-box{flex-basis:100%}.receipt-item,.document-card{flex-direction:column}.document-actions{justify-content:flex-start}.item-row{grid-template-columns:1fr 1fr}.item-row input:first-child{grid-column:1/-1}.partner-result{grid-template-columns:1fr}.partner-result>span{grid-column:auto}.mini-grid{grid-template-columns:1fr}}
.top-gap{margin-top:14px}.recon-box{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:14px 0}.recon-box>div{padding:10px;border:1px solid var(--line);border-radius:10px;background:#faf8f9}.recon-box span,.recon-box b{display:block}.recon-box span{font-size:11px;color:var(--muted)}.recon-box b{margin-top:3px}.recon-ok{border-color:#cfe7dc!important;background:#f1faf5!important}.recon-bad{border-color:#efd0d3!important;background:#fff5f6!important}.coa-list{display:grid;grid-template-columns:1fr 1fr;gap:7px;max-height:610px;overflow:auto}.coa-row{border:1px solid var(--line);border-radius:10px;padding:9px 10px;display:flex;justify-content:space-between;gap:8px}.coa-row small{color:var(--muted)}.inline-status{margin-left:auto}.supplier-list{display:grid;gap:14px}.supplier-card{border:1px solid var(--line);border-radius:15px;overflow:hidden}.supplier-head{padding:14px;display:flex;justify-content:space-between;gap:12px;background:#fcfafb;border-bottom:1px solid var(--line)}.supplier-name{font-weight:800;font-size:16px}.supplier-head small{display:block;color:var(--muted);margin-top:4px}.supplier-balance{text-align:right}.supplier-balance small,.supplier-balance strong{display:block}.supplier-balance strong{font-size:20px;color:var(--primary);margin-top:4px}.supplier-card table{min-width:900px}.ledger-top{align-items:start}.supplier-grid{align-items:start}
@media(max-width:760px){.coa-list{grid-template-columns:1fr}.recon-box{grid-template-columns:1fr}.supplier-head{flex-direction:column}.supplier-balance{text-align:left}.inline-status{margin-left:0}}

/* v0.7 - Company logo + downloadable report center */
.logo-uploader{display:grid;grid-template-columns:140px 1fr;gap:18px;align-items:center;padding:16px;margin-bottom:18px;border:1px dashed #d8c5cf;border-radius:16px;background:#fcf9fb}.logo-preview{height:100px;border-radius:14px;background:#fff;border:1px solid #eadde4;display:flex;align-items:center;justify-content:center;overflow:hidden;color:#9b2f65;font-weight:800;letter-spacing:2px}.logo-preview img{max-width:100%;max-height:100%;object-fit:contain;padding:8px}.logo-uploader p{margin:5px 0 12px;color:#777;font-size:13px}.logo-actions{display:flex;gap:8px;flex-wrap:wrap}.toolbar-note{font-size:12px;color:#777;align-self:end;padding-bottom:8px}.report-download-panel{margin-bottom:18px}.report-download-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.download-card{border:1px solid #eadde4;border-radius:14px;padding:14px;background:#fff;display:flex;flex-direction:column;gap:8px;min-height:132px}.download-card b{font-size:15px;color:#4c3440}.download-card small{color:#777;line-height:1.45;flex:1}.download-card>div{display:flex;gap:7px}.download-card .mini-btn{cursor:pointer;text-decoration:none}.report-filter{display:flex;gap:14px;align-items:end;flex-wrap:wrap}
@media(max-width:1000px){.report-download-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:700px){.report-download-grid{grid-template-columns:1fr}.logo-uploader{grid-template-columns:1fr}.logo-preview{max-width:180px}.toolbar-note{width:100%;padding-bottom:0}}

/* v0.7.1 - Direct transaction confirmation */
.txn-actions{display:flex;flex-direction:column;gap:6px;min-width:82px}.txn-actions .mini-btn{width:100%;white-space:nowrap}.confirm-direct{background:#f1faf5;border-color:#bfe0cd;color:#277155;font-weight:800}.confirm-direct:hover{background:#e4f5eb;border-color:#96c9aa}.confirm-direct.confirmed-state,.confirm-direct:disabled{background:#f4f4f4;border-color:#ddd;color:#888;cursor:default;opacity:1}


/* v0.7.2 - On-screen report preview */
.preview-report-btn{background:#f7eef3;border-color:#d9bccb;color:#7d2854;font-weight:800}.preview-report-btn:hover{background:#f0e0e8}.report-preview-panel{margin-bottom:18px;border:2px solid #eadde4;box-shadow:0 12px 32px rgba(93,47,71,.08)}.report-preview-head{align-items:flex-start;gap:15px}.preview-kicker{display:block;font-size:10px;letter-spacing:.16em;color:#9b2f65;font-weight:900;margin-bottom:5px}.preview-head-actions{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}.btn.ghost{background:#fff;border:1px solid var(--line);color:var(--ink)}.preview-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin:4px 0 18px}.preview-summary-card{padding:12px 14px;border-radius:12px;background:#faf6f8;border:1px solid #eadde4}.preview-summary-card span,.preview-summary-card strong{display:block}.preview-summary-card span{font-size:11px;color:var(--muted);margin-bottom:5px}.preview-summary-card strong{font-size:17px;color:#5b3448}.preview-chart{margin:4px 0 22px;padding:14px;border:1px solid var(--line);border-radius:14px;background:#fdfbfc;overflow-x:auto}.preview-bars{height:190px;display:flex;align-items:flex-end;gap:10px;min-width:620px;border-bottom:1px solid #e6dce1;padding:0 8px}.preview-bar-group{flex:1;min-width:38px;text-align:center}.preview-bar-space{height:160px;display:flex;align-items:flex-end;justify-content:center;gap:3px}.preview-bar{width:38%;max-width:22px;min-height:3px;border-radius:5px 5px 0 0}.preview-bar.a{background:#9b2f65}.preview-bar.b{background:#d7a64a}.preview-bar-group small{display:block;font-size:9px;color:var(--muted);margin-top:5px;white-space:nowrap}.preview-legend{display:flex;gap:16px;margin-top:10px;font-size:11px;color:var(--muted)}.preview-legend i{display:inline-block;width:10px;height:10px;border-radius:3px;margin-right:5px}.legend-a{background:#9b2f65}.legend-b{background:#d7a64a}.preview-table-wrap{max-height:520px;overflow:auto;border:1px solid var(--line);border-radius:12px}.preview-table{min-width:720px;width:100%;border-collapse:collapse}.preview-table th{position:sticky;top:0;z-index:1;background:#7d2854;color:#fff;text-align:left;font-size:11px;padding:10px}.preview-table td{padding:9px 10px;border-bottom:1px solid #eee5ea;font-size:12px;vertical-align:top}.preview-table tbody tr:nth-child(even){background:#fcfafb}.preview-table td:not(:nth-child(2)):not(:nth-child(3)):not(:nth-child(4)){font-variant-numeric:tabular-nums}
@media(max-width:900px){.preview-summary{grid-template-columns:repeat(2,minmax(0,1fr))}.report-preview-head{flex-direction:column}.preview-head-actions{justify-content:flex-start}}
@media(max-width:600px){.preview-summary{grid-template-columns:1fr}.preview-head-actions{display:grid;grid-template-columns:1fr 1fr;width:100%}.preview-head-actions .btn:last-child{grid-column:1/-1}.download-card>div{flex-wrap:wrap}}

/* v0.7.3 - Final save for transaction review */
.transaction-save-bar{margin:14px 0 16px;padding:14px 16px;border:1px solid var(--line);border-radius:14px;background:#faf8f9;display:flex;align-items:center;justify-content:space-between;gap:16px}.transaction-save-bar>div{display:flex;flex-direction:column;gap:3px}.transaction-save-bar strong{font-size:15px}.transaction-save-bar small{color:var(--muted);line-height:1.45}.save-kicker{font-size:9px;letter-spacing:.13em;font-weight:900;color:#8c6c7d}.transaction-save-bar.ready{background:#f1faf5;border-color:#bfe0cd}.transaction-save-bar.ready .save-kicker,.transaction-save-bar.ready strong{color:#277155}.transaction-save-bar.saved{background:#eef8f3;border-color:#a9d3ba}.transaction-save-bar.saved .save-kicker,.transaction-save-bar.saved strong{color:#216748}.transaction-save-bar.blocked{background:#fff8ed;border-color:#ead5a8}.transaction-save-bar.blocked .save-kicker,.transaction-save-bar.blocked strong{color:#8a6522}.transaction-save-bar .btn:disabled{opacity:.62;cursor:default}
@media(max-width:700px){.transaction-save-bar{align-items:stretch;flex-direction:column}.transaction-save-bar .btn{width:100%}}

/* v0.7.5 - statement duplicate detection + import clearing */
.duplicate-alert{margin:14px 0;padding:14px 16px;border:1px solid #e3b3b9;border-radius:14px;background:#fff3f4;display:flex;align-items:center;justify-content:space-between;gap:16px}.duplicate-alert>div:first-child{display:flex;flex-direction:column;gap:4px}.duplicate-alert b{color:#9c303b;font-size:15px}.duplicate-alert span{color:#69444a;font-size:12px;line-height:1.55}.duplicate-actions{display:flex;gap:8px;flex-wrap:wrap}.btn.danger{background:#a63342;color:#fff;border:1px solid #a63342}.btn.danger:hover{filter:brightness(.96)}.danger-outline{border-color:#dfb1b7!important;color:#983342!important;background:#fff8f8!important}.import-history{margin:12px 0 16px;border:1px solid var(--line);border-radius:13px;background:#fcfafb;overflow:hidden}.import-history summary{cursor:pointer;padding:12px 14px;font-weight:800;color:#684455;user-select:none}.import-history[open] summary{border-bottom:1px solid var(--line)}.import-history-body{padding:6px 12px}.import-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 2px;border-bottom:1px solid #eee5ea}.import-row:last-child{border-bottom:0}.import-row>div{min-width:0}.import-row b,.import-row small{display:block}.import-row b{font-size:13px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.import-row small{margin-top:3px;color:var(--muted);font-size:11px;line-height:1.4}
@media(max-width:700px){.duplicate-alert,.import-row{align-items:stretch;flex-direction:column}.duplicate-actions{display:grid;grid-template-columns:1fr}.import-row .mini-btn{width:100%}}

/* v0.7.6 - camera receipt capture + local OCR preview */
.hidden-file{display:none!important}.receipt-mode-buttons{display:grid;grid-template-columns:1fr 1fr;gap:10px}.receipt-file-status{border:1px dashed #d9c6d0;background:#fcfafb;border-radius:12px;padding:11px 13px;font-size:12px;color:var(--muted)}.receipt-file-status.ready{border-style:solid;border-color:#afd2bd;background:#f1faf5;color:#286748;font-weight:700}.camera-panel{border:1px solid var(--line);border-radius:14px;background:#1e171b;padding:10px}.camera-stage{position:relative;overflow:hidden;border-radius:11px;background:#090709;min-height:280px;display:grid;place-items:center}.camera-stage video,.camera-stage img{display:block;width:100%;max-height:480px;object-fit:contain}.camera-guide{pointer-events:none;position:absolute;inset:7%;border:2px dashed rgba(255,255,255,.72);border-radius:12px;box-shadow:0 0 0 999px rgba(0,0,0,.13)}.camera-guide span{position:absolute;left:50%;bottom:8px;transform:translateX(-50%);background:rgba(0,0,0,.62);color:#fff;padding:5px 9px;border-radius:999px;font-size:10px;white-space:nowrap}.camera-actions{display:flex;gap:8px;align-items:center;justify-content:center;flex-wrap:wrap;padding-top:10px}.camera-actions .mini-btn{background:#fff}.ocr-box{border:1px solid #e7d7df;border-radius:13px;background:#faf5f8;padding:12px;display:grid;grid-template-columns:1fr auto;gap:9px 12px;align-items:center}.ocr-box b,.ocr-box small{display:block}.ocr-box small{color:var(--muted);font-size:11px;margin-top:3px;line-height:1.45}.ocr-status{grid-column:1/-1;font-size:11px;color:var(--muted);padding-top:3px}.ocr-status.good{color:#277155;font-weight:700}.ocr-status.warn{color:#9b6214}.ocr-badge{display:inline-flex;margin-left:6px;padding:2px 6px;border-radius:999px;background:#f3eaf0;color:#7d2854;font-size:9px;font-weight:800}.capture-badge{display:inline-flex;margin-left:6px;padding:2px 6px;border-radius:999px;background:#edf4fb;color:#35658a;font-size:9px;font-weight:800}
@media(max-width:700px){.receipt-mode-buttons{grid-template-columns:1fr}.camera-stage{min-height:230px}.camera-guide{inset:5%}.ocr-box{grid-template-columns:1fr}.ocr-box .mini-btn{width:100%}}

/* v0.7.7 product master + margin */
.product-item-row{grid-template-columns:1.35fr 2fr .55fr .65fr .8fr 36px}
.product-item-row select,.product-item-row input{min-width:0;border:1px solid var(--line);border-radius:9px;padding:9px;background:#fff}
.helper{display:block;color:var(--muted);margin-top:6px;font-size:11px}
.margin-preview{padding:12px 14px;border-radius:12px;background:#f7f0f4;color:var(--primary);font-weight:800}
.document-total-preview{border:1px solid var(--line);border-radius:14px;padding:12px;background:#fffafb;display:grid;gap:7px}
.document-total-preview>div{display:flex;justify-content:space-between;gap:15px;font-size:13px}
.document-total-preview>div.grand{border-top:2px solid var(--primary);padding-top:9px;font-size:17px;color:var(--primary)}
.internal-margin{color:#3f765d!important;font-weight:700}
.product-list{display:grid;gap:10px}.product-card{border:1px solid var(--line);border-radius:14px;padding:14px;display:grid;grid-template-columns:1.25fr 1.5fr auto;align-items:center;gap:15px}.product-card.inactive{opacity:.62;background:#fafafa}.product-card b,.product-card small{display:block}.product-card small{color:var(--muted);margin-top:4px}.product-prices{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.product-prices span{padding:9px 10px;border-radius:10px;background:#faf6f8}.product-prices small{font-size:10px}.product-prices b{font-size:13px;margin-top:3px}
@media(max-width:900px){.product-card{grid-template-columns:1fr}.product-prices{grid-template-columns:repeat(3,1fr)}}
@media(max-width:760px){.product-item-row{grid-template-columns:1fr 1fr}.product-item-row select,.product-item-row input[data-field="description"]{grid-column:1/-1}.product-prices{grid-template-columns:1fr}}

/* v0.7.9 posting queue + document vault */
.posted-toggle{display:flex;align-items:center;gap:7px;font-size:13px;font-weight:700;color:#475569;background:#f8fafc;border:1px solid #e2e8f0;padding:8px 10px;border-radius:10px;white-space:nowrap}
.posted-toggle input{width:auto;margin:0}
.posted-row{opacity:.72;background:#f8fafc}
.posted-badge{display:inline-block;margin-left:6px;font-size:10px;font-weight:800;letter-spacing:.04em;background:#e2e8f0;color:#475569;padding:3px 6px;border-radius:999px}
.backup-actions{display:flex;gap:10px;flex-wrap:wrap}
#vaultStatementList .document-card,#vaultReceiptList .document-card{align-items:center}

/* v0.8.0 — professional transaction classification */
.category-guide{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:-3px 0 14px;padding:11px 13px;border:1px solid var(--line);border-radius:12px;background:#faf8f9;font-size:11px;color:var(--muted);line-height:1.45}.category-guide b{color:var(--ink)}
.category-select.professional{max-width:320px;min-width:245px;font-variant-numeric:tabular-nums;font-weight:650}.category-select optgroup{font-weight:800;color:#4f3c47}.category-select option{font-weight:500;color:var(--ink)}
.account-code-line{display:flex;align-items:center;gap:6px;margin-top:5px;max-width:310px;font-size:10px;color:var(--muted)}.account-code-line code{font-weight:800;white-space:nowrap}.account-code-line span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.txn-description{display:flex;align-items:flex-start;gap:8px}.txn-description b{flex:1}.direction-badge{display:inline-flex;align-items:center;justify-content:center;padding:3px 6px;border-radius:999px;font-size:9px;font-weight:850;letter-spacing:.06em;white-space:nowrap}.direction-badge.in{background:#e7f5ed;color:#23684c}.direction-badge.out{background:#fff0f1;color:#9e3540}.direction-badge.both{background:#eef0f2;color:#555f68}
.txn-in td:first-child{border-left:3px solid #78b896}.txn-out td:first-child{border-left:3px solid #d99a9f}.field-hint{display:block;margin-top:4px;color:var(--muted);font-size:11px;font-weight:500}
th small{font-size:9px;font-weight:600;color:var(--muted)}
@media(max-width:1100px){.category-guide{grid-template-columns:1fr}.category-select.professional{min-width:210px}}

/* v0.8.1 — Lovely Boutique typography + natural sidebar scrolling */
html{scroll-behavior:smooth}
body,.btn,.nav-btn,input,select,textarea,table{font-family:"Geist","Segoe UI Variable","Segoe UI",Arial,sans-serif}
.brand strong{font-weight:750;letter-spacing:-.01em}.nav-btn{font-weight:600;letter-spacing:-.005em}.topbar h1{font-weight:750;letter-spacing:-.025em}.panel-head h2{font-weight:700;letter-spacing:-.015em}.metric-card strong{font-weight:750;letter-spacing:-.02em}
@media(min-width:761px){.sidebar{overflow:visible}.sidebar nav{overflow:visible}.sidebar-note{margin-top:auto}}

/* v0.9.0 — Login, staff roles and audit */
.sidebar-user{display:grid;grid-template-columns:38px 1fr 32px;gap:9px;align-items:center;padding:10px;border:1px solid #4a3441;background:#31212a;border-radius:14px}.sidebar-avatar{width:38px;height:38px;border-radius:12px;display:grid;place-items:center;background:#fff;color:#7d2854;font-weight:800}.sidebar-user-copy{min-width:0}.sidebar-user-copy b,.sidebar-user-copy span{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sidebar-user-copy b{font-size:12px}.sidebar-user-copy span{font-size:10px;color:#cdbfc7;margin-top:3px}.sidebar-logout{width:32px;height:32px;border:0;border-radius:9px;background:#49313f;color:#fff;cursor:pointer;font-size:17px}.sidebar-logout:hover{background:#5b3b4d}.admin-only.hidden-access,.nav-btn.hidden-access{display:none!important}.user-admin-grid{align-items:start}.permission-matrix{display:grid;gap:8px;margin:16px 0}.permission-row{display:grid;grid-template-columns:1fr 90px 90px;gap:10px;align-items:center;padding:10px 12px;border:1px solid var(--line);border-radius:12px;background:#fff}.permission-row b{font-size:13px}.permission-check{display:flex;align-items:center;justify-content:center;gap:6px;font-size:11px;color:var(--muted)}.permission-check input{width:auto}.role-form-actions{display:flex;gap:10px}.role-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.role-card{border:1px solid var(--line);border-radius:14px;padding:14px}.role-card-head{display:flex;justify-content:space-between;gap:10px;align-items:flex-start}.role-card h3{margin:0;font-size:15px}.role-card p{margin:5px 0 0;color:var(--muted);font-size:12px}.role-tags{display:flex;gap:6px;flex-wrap:wrap;margin-top:12px}.role-tag{font-size:10px;padding:5px 7px;border-radius:999px;background:#f6eef3;color:#7d2854}.user-actions{display:flex;gap:6px;flex-wrap:wrap}.auth-body{min-height:100vh;margin:0;background:radial-gradient(circle at 20% 20%,#f4e3ea 0,transparent 30%),linear-gradient(135deg,#f8f4f6,#eee5e9);font-family:"Geist","Segoe UI Variable","Segoe UI",Arial,sans-serif;color:#261b21}.auth-shell{min-height:100vh;display:grid;place-items:center;padding:28px}.auth-card{width:min(430px,100%);background:#fff;border:1px solid #e5dbe0;border-radius:24px;padding:30px;box-shadow:0 24px 70px rgba(60,30,45,.13)}.auth-brand{display:flex;align-items:center;gap:12px}.auth-logo{width:52px;height:52px;border-radius:16px;display:grid;place-items:center;background:linear-gradient(135deg,#d3a74f,#9b2f65);color:#fff;font-weight:800;overflow:hidden}.auth-logo img{width:100%;height:100%;object-fit:cover}.auth-brand b,.auth-brand span{display:block}.auth-brand b{font-size:18px}.auth-brand span{font-size:12px;color:#806e78;margin-top:3px}.auth-copy{margin:28px 0 22px}.auth-kicker{font-size:10px;font-weight:800;letter-spacing:.14em;color:#9b2f65}.auth-copy h1{margin:7px 0 8px;font-size:28px}.auth-copy p{margin:0;color:#786a72;line-height:1.55;font-size:13px}.auth-form{display:grid;gap:14px}.auth-form label{display:grid;gap:6px;font-size:12px;font-weight:700}.auth-form input{width:100%;border:1px solid #dcd0d6;border-radius:11px;padding:12px 13px;outline:none}.auth-form input:focus{border-color:#9b2f65;box-shadow:0 0 0 3px #f3e7ed}.auth-check{display:flex!important;grid-template-columns:auto 1fr!important;align-items:center;gap:8px!important;font-weight:500!important}.auth-check input{width:auto}.auth-submit{width:100%;margin-top:4px}.auth-error{padding:11px 12px;border-radius:11px;background:#fff0f1;color:#a73742;font-size:12px;margin-bottom:14px}.auth-foot{display:block;text-align:center;color:#9a8b93;margin-top:22px}.setup-card{width:min(470px,100%)}
@media(max-width:900px){.role-list{grid-template-columns:1fr}.permission-row{grid-template-columns:1fr 75px 75px}}
/* v0.9.1 - Quotation / Invoice collection */
.receivable-panel{border-left:4px solid var(--primary)}
.receivable-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-bottom:16px}
.receivable-summary>div{padding:14px;border:1px solid var(--line);border-radius:14px;background:#faf7f9}
.receivable-summary span,.invoice-money-grid small,.payment-balance-strip span{display:block;font-size:11px;color:var(--muted);font-weight:700}
.receivable-summary strong{display:block;margin-top:5px;font-size:20px}
.invoice-card.has-balance{border-left:4px solid #b33b45}
.invoice-money-grid{display:grid;grid-template-columns:repeat(3,minmax(80px,1fr));gap:8px;margin:10px 0}
.invoice-money-grid span{padding:9px 10px;background:#faf7f9;border:1px solid var(--line);border-radius:10px}
.invoice-money-grid b{display:block;margin-top:3px;font-size:14px}
.payment-btn{background:#f3e6ed;border-color:#cfaabd;color:var(--primary);font-weight:800}
.payment-modal-card{max-width:760px}
.payment-balance-strip{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-bottom:16px}
.payment-balance-strip>div{border:1px solid var(--line);border-radius:13px;padding:12px;background:#faf7f9}
.payment-balance-strip strong{display:block;font-size:20px;margin-top:5px}
.payment-balance-strip .balance{background:#fff3f4;border-color:#ecc8cc}
.payment-history{display:grid;gap:8px;max-height:260px;overflow:auto}
.payment-history-row{display:flex;justify-content:space-between;gap:14px;border:1px solid var(--line);border-radius:12px;padding:11px;background:#fff}
.payment-history-row small{display:block;color:var(--muted);margin-top:3px}
.payment-history-row>div:last-child{display:flex;align-items:center;gap:7px}
@media(max-width:800px){.receivable-summary,.payment-balance-strip{grid-template-columns:1fr}.invoice-money-grid{grid-template-columns:1fr 1fr 1fr}}

/* v0.9.2 — Lovely Boutique shop-inspired admin theme */
:root{--bg:#fffafc;--panel:#ffffff;--ink:#2e2329;--muted:#7e7279;--line:#eee4e9;--primary:#8f2f61;--primary-dark:#6f2149;--soft:#fbf0f5;--accent:#d6aa58;--shadow:0 8px 24px rgba(76,42,61,.055)}
body{background:linear-gradient(180deg,#fff 0,#fffafc 180px,#fffafc 100%);font-size:14px}
.app-shell{grid-template-columns:248px 1fr}
.sidebar{background:#fff;color:var(--ink);border-right:1px solid var(--line);padding:22px 15px;gap:18px;box-shadow:8px 0 30px rgba(67,36,52,.025)}
.brand{padding:2px 7px 14px;border-bottom:1px solid var(--line)}
.brand strong{font-size:14px;letter-spacing:-.01em}.brand span{color:var(--muted);font-size:10.5px;margin-top:2px}.brand-mark{width:40px;height:40px;border-radius:10px;color:#fff}
.sidebar nav{gap:2px}.nav-group-label{font-size:9px;letter-spacing:.14em;color:#a996a0;font-weight:800;padding:13px 11px 5px}.nav-btn{color:#5d5057;padding:8px 11px;border-radius:8px;font-size:12px;font-weight:600;line-height:1.25}.nav-btn:hover{background:#fff6fa;color:var(--primary)}.nav-btn.active{background:var(--soft);color:var(--primary);box-shadow:inset 3px 0 0 var(--primary)}
.sidebar-note{background:#fff8fb;border:1px solid var(--line);color:var(--muted);font-size:10.5px;border-radius:11px;padding:11px}.sidebar-note b{color:var(--primary)}
.sidebar-user{border-top:1px solid var(--line);background:#fff;color:var(--ink)}.sidebar-user-copy span{color:var(--muted)}.sidebar-logout{color:var(--primary);background:var(--soft)}
.main{padding:26px 30px}.topbar{padding-bottom:18px;border-bottom:1px solid var(--line);margin-bottom:20px}.topbar h1{font-size:25px;letter-spacing:-.025em}.topbar p{font-size:12.5px}.btn{border-radius:8px;padding:10px 14px;font-size:12.5px}.btn.primary{box-shadow:0 6px 18px rgba(143,47,97,.13)}
.metric-card,.panel{border-radius:12px;box-shadow:var(--shadow)}.metric-card{padding:17px}.metric-card span{font-size:11.5px;text-transform:none}.metric-card strong{font-size:22px}.panel{padding:18px}.panel-head h2{font-size:16px}.panel-head p{font-size:11.5px}.toolbar input,.toolbar select,.form-grid input,.form-grid select,.form-grid textarea,.document-actions select,.mini-grid input{border-radius:7px;padding:9px 10px;font-size:12.5px}.form-grid label,.toolbar label{font-size:11.5px}.mini-btn{border-radius:7px;font-size:11px;padding:7px 9px}.status{font-size:10px}th{font-size:10.5px}td{font-size:12px}.document-card,.receipt-item,.customer-card{border-radius:10px}
.search-box input{background:#fff 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='%239b8791' stroke-width='2'%3E%3Ccircle cx='11' cy='11' r='8'/%3E%3Cpath d='m21 21-4.35-4.35'/%3E%3C/svg%3E") no-repeat 11px center;padding-left:36px!important}
.customer-list{display:grid;gap:10px}.customer-card{border:1px solid var(--line);padding:14px;display:flex;justify-content:space-between;gap:14px;background:#fff}.customer-card.inactive{opacity:.7}.customer-code{display:inline-flex;background:var(--soft);color:var(--primary);font-weight:800;font-size:9px;padding:4px 7px;border-radius:999px;margin-bottom:7px;letter-spacing:.06em}.customer-card-main>b{display:block;font-size:14px}.customer-card-main>small{display:block;color:var(--muted);margin-top:4px;font-size:10.5px}.customer-stats{display:flex;gap:18px;margin:11px 0}.customer-stats span{min-width:90px}.customer-stats small,.customer-stats strong{display:block}.customer-stats small{font-size:9.5px;color:var(--muted)}.customer-stats strong{font-size:13px;margin-top:3px}.customer-grid{align-items:start}
.auth-body{background:linear-gradient(135deg,#fff 0,#fff7fb 50%,#f9eef4 100%)}.auth-card{border:1px solid var(--line);box-shadow:0 18px 60px rgba(90,43,68,.09);border-radius:18px}.auth-kicker{color:var(--primary)}
@media(max-width:900px){.app-shell{grid-template-columns:1fr}.sidebar{border-right:0;border-bottom:1px solid var(--line)}.priority-nav{display:flex!important;overflow:auto;gap:5px!important}.nav-group-label{display:none}.nav-btn{white-space:nowrap}.main{padding:18px}.customer-card{display:block}.customer-card .document-actions{margin-top:12px;justify-content:flex-start}}


/* v0.9.9 — Mobile-first navigation & compact phone layout */
.mobile-menu-toggle,.mobile-nav-backdrop{display:none}
.brand-copy{min-width:0}
@media(max-width:900px){
  html,body{max-width:100%;overflow-x:hidden}
  body.mobile-menu-open{overflow:hidden}
  .app-shell{display:block;min-height:100vh}
  .sidebar{position:sticky!important;top:0!important;z-index:1050!important;min-height:0!important;height:64px!important;padding:10px 12px!important;display:flex!important;flex-direction:row!important;align-items:center!important;gap:8px!important;border-right:0!important;border-bottom:1px solid var(--line)!important;background:rgba(255,255,255,.97)!important;backdrop-filter:blur(12px);box-shadow:0 4px 16px rgba(76,42,61,.05)!important}
  .sidebar .brand{width:100%;height:44px;padding:0!important;border:0!important;display:flex;align-items:center;gap:10px}
  .sidebar .brand-mark{width:38px;height:38px;border-radius:10px}
  .sidebar .brand-copy{flex:1;overflow:hidden}
  .sidebar .brand strong{font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .sidebar .brand span{font-size:9.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .mobile-menu-toggle{display:flex;width:40px;height:40px;flex:0 0 40px;border:1px solid var(--line);border-radius:10px;background:#fff;align-items:center;justify-content:center;flex-direction:column;gap:4px;cursor:pointer}
  .mobile-menu-toggle span{display:block;width:18px;height:2px;border-radius:2px;background:var(--primary);transition:.2s ease}
  .sidebar.mobile-open .mobile-menu-toggle span:nth-child(1){transform:translateY(6px) rotate(45deg)}
  .sidebar.mobile-open .mobile-menu-toggle span:nth-child(2){opacity:0}
  .sidebar.mobile-open .mobile-menu-toggle span:nth-child(3){transform:translateY(-6px) rotate(-45deg)}
  .sidebar nav.priority-nav{display:block!important;position:fixed!important;z-index:1120!important;left:0!important;top:0!important;bottom:0!important;width:min(84vw,330px)!important;height:100dvh!important;padding:72px 12px 92px!important;background:#fff!important;overflow-y:auto!important;overscroll-behavior:contain;box-shadow:18px 0 45px rgba(50,25,40,.16)!important;transform:translateX(-105%);transition:transform .22s ease!important}
  .sidebar.mobile-open nav.priority-nav{transform:translateX(0)}
  .sidebar nav .nav-group-label{display:block!important;padding:14px 11px 5px!important;font-size:8.5px!important}
  .sidebar nav .nav-btn{display:block!important;width:100%!important;white-space:normal!important;text-align:left!important;padding:9px 11px!important;margin:1px 0!important;font-size:11.5px!important;border-radius:8px!important}
  .sidebar nav .nav-btn.hidden-access{display:none!important}
  .sidebar-user{position:fixed!important;z-index:1130!important;left:12px!important;bottom:12px!important;width:calc(min(84vw,330px) - 24px)!important;margin:0!important;background:#fff!important;border:1px solid var(--line)!important;box-shadow:0 8px 22px rgba(50,25,40,.08)!important;transform:translateX(calc(-105% - 12px));transition:transform .22s ease!important}
  .sidebar.mobile-open .sidebar-user{transform:translateX(0)}
  .sidebar-note{display:none!important}
  .mobile-nav-backdrop{display:block;position:fixed;inset:0;background:rgba(34,23,29,.34);z-index:1080;opacity:0;visibility:hidden;transition:.2s ease}
  .mobile-nav-backdrop.active{opacity:1;visibility:visible}
  .main{padding:12px!important}
  .topbar{padding:4px 0 12px!important;margin-bottom:12px!important;display:flex!important;flex-direction:column!important;align-items:stretch!important;gap:10px!important}
  .topbar h1{font-size:21px!important;line-height:1.15}
  .topbar p{font-size:10.5px!important;margin-top:4px!important}
  .top-actions{display:grid!important;grid-template-columns:1fr 1fr!important;gap:8px!important;width:100%!important}
  .top-actions .btn{min-height:40px;padding:9px 10px!important;font-size:11.5px!important}
  .cards,.cards.compact,.report-cards,.tax-cards{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:9px!important;margin-bottom:10px!important}
  .metric-card{padding:13px!important;min-width:0}
  .metric-card span{font-size:9.5px!important;line-height:1.25}
  .metric-card strong{font-size:18px!important;margin:6px 0 3px!important;overflow-wrap:anywhere}
  .metric-card small{font-size:9px;line-height:1.25}
  .panel{padding:14px!important;margin-bottom:10px!important;border-radius:11px!important}
  .panel-head{margin-bottom:12px!important;align-items:flex-start!important}
  .panel-head h2{font-size:14px!important}
  .panel-head p{font-size:10px!important;line-height:1.4}
  .two-col,.receipt-grid,.doc-grid,.customer-grid,.user-admin-grid{grid-template-columns:1fr!important}
  .toolbar{gap:7px!important;align-items:stretch!important}
  .toolbar>*{max-width:none!important}
  .toolbar .search-box{flex-basis:100%!important;width:100%!important}
  .toolbar select,.toolbar .btn,.toolbar label{min-height:38px}
  .form-grid{grid-template-columns:1fr!important;gap:10px!important}
  .form-grid .full{grid-column:auto!important}
  .table-wrap{width:100%;max-width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch;border-radius:8px}
  table{min-width:680px}
  th,td{padding:9px 8px!important;font-size:11px!important}
  th{font-size:9.5px!important}
  .chart-empty{min-height:150px!important}
  .bar-chart{min-height:180px!important;overflow-x:auto}
  .task{padding:11px!important}
  .task b{font-size:11.5px}.task small{font-size:9.5px}
  .receivable-summary,.payment-balance-strip{grid-template-columns:1fr!important}
  .customer-stats{display:grid!important;grid-template-columns:repeat(3,1fr);gap:8px!important}
  .customer-stats span{min-width:0!important}
  .document-actions,.receipt-actions{justify-content:flex-start!important}
  .modal{padding:10px!important;align-items:flex-start!important;overflow-y:auto!important}
  .modal-card{width:100%!important;max-height:none!important;margin:10px 0!important;border-radius:14px!important}
}
@media(max-width:430px){
  .cards,.cards.compact,.report-cards,.tax-cards{grid-template-columns:repeat(2,minmax(0,1fr))!important}
  .top-actions{grid-template-columns:1fr 1fr!important}
  .invoice-money-grid{grid-template-columns:1fr!important}
  .item-row,.product-item-row{grid-template-columns:1fr!important}
  .item-row input:first-child,.product-item-row select,.product-item-row input[data-field="description"]{grid-column:auto!important}
  .preview-head-actions{grid-template-columns:1fr!important}
  .preview-head-actions .btn:last-child{grid-column:auto!important}
}

/* v0.9.11 FORCE MOBILE FIX — versioned asset to bypass browser/Cloudflare cache */
@media screen and (max-width:900px){
  .sidebar{height:62px!important;min-height:62px!important;max-height:62px!important;overflow:visible!important}
  .sidebar nav.priority-nav{display:block!important;position:fixed!important;top:0!important;left:0!important;bottom:0!important;width:min(84vw,330px)!important;max-width:330px!important;height:100dvh!important;transform:translateX(-110%)!important;overflow-y:auto!important;background:#fff!important;z-index:1120!important}
  .sidebar.mobile-open nav.priority-nav{transform:translateX(0)!important}
  .main{margin:0!important;padding-top:12px!important}
  .topbar{margin-top:0!important}
  #dashboardView{margin-top:0!important;padding-top:0!important}
  .mobile-menu-toggle{display:flex!important}
}


/* v0.9.12 — Mobile drawer tap fix + password visibility + clearer logout */
.password-field{position:relative;display:flex;align-items:center}
.password-field input{padding-right:82px!important}
.password-toggle{position:absolute;right:7px;top:50%;transform:translateY(-50%);border:0;background:var(--soft,#f8eef3);color:var(--primary,#9b2f65);border-radius:8px;padding:7px 9px;font-size:10px;font-weight:800;cursor:pointer;line-height:1}
.password-toggle:hover{filter:brightness(.97)}
.sidebar-logout{width:auto!important;min-width:82px!important;padding:0 10px!important;font-size:10px!important;font-weight:800!important;white-space:nowrap}
@media screen and (max-width:900px){
  /* Sidebar creates a stacking context. Keep it ABOVE backdrop so its fixed drawer receives taps. */
  .sidebar{z-index:1210!important}
  .sidebar nav.priority-nav{z-index:1220!important;pointer-events:auto!important}
  .sidebar-user{z-index:1230!important;pointer-events:auto!important}
  .sidebar nav .nav-btn{position:relative;z-index:1;pointer-events:auto!important;touch-action:manipulation}
  .mobile-nav-backdrop{z-index:1100!important;pointer-events:none!important}
  .mobile-nav-backdrop.active{pointer-events:auto!important}
  .mobile-menu-toggle{position:relative;z-index:1240!important;pointer-events:auto!important}
  .sidebar-logout{min-width:90px!important;height:34px!important}
}


/* v0.9.13 — Stable logout placement; never overlap logo/header */
.sidebar-user{
  grid-template-columns:38px minmax(0,1fr) auto!important;
}
.sidebar-logout{
  position:static!important;
  flex:0 0 auto!important;
  max-width:100%!important;
}

@media screen and (max-width:900px){
  /* Header/logo always owns the top bar. */
  .sidebar .brand{
    position:relative!important;
    z-index:1260!important;
  }

  /* User/logout block belongs only to the drawer footer. */
  .sidebar-user{
    display:grid!important;
    grid-template-columns:36px minmax(0,1fr)!important;
    grid-template-areas:
      "avatar copy"
      "logout logout"!important;
    column-gap:10px!important;
    row-gap:8px!important;
    align-items:center!important;
    left:12px!important;
    right:auto!important;
    bottom:12px!important;
    top:auto!important;
    width:calc(min(84vw,330px) - 24px)!important;
    min-width:0!important;
    height:auto!important;
    padding:10px!important;
    margin:0!important;
    transform:translate3d(calc(-110% - 12px),0,0)!important;
    opacity:0!important;
    visibility:hidden!important;
    pointer-events:none!important;
    transition:transform .22s ease,opacity .18s ease,visibility .18s ease!important;
  }
  .sidebar.mobile-open .sidebar-user{
    transform:translate3d(0,0,0)!important;
    opacity:1!important;
    visibility:visible!important;
    pointer-events:auto!important;
  }
  .sidebar-avatar{grid-area:avatar!important}
  .sidebar-user-copy{grid-area:copy!important;min-width:0!important}
  .sidebar-logout{
    grid-area:logout!important;
    width:100%!important;
    min-width:0!important;
    max-width:none!important;
    height:36px!important;
    padding:0 12px!important;
    margin:0!important;
    border-radius:9px!important;
    position:static!important;
    transform:none!important;
  }

  /* Reserve a fixed footer zone so the last menu item never sits under logout. */
  .sidebar nav.priority-nav{
    padding-bottom:128px!important;
  }
}


/* =========================================================
   v0.9.14 — Mobile responsive cards
   - Transaksi Terkini
   - Hutang Pelanggan / Accounts Receivable
   - Tetapan Numbering Dokumen
   ========================================================= */

@media screen and (max-width: 700px){

  /* ----- Dashboard: Recent Transactions ----- */
  #recentTransactions{
    display:block!important;
    width:100%!important;
  }
  #recentTransactions tr{
    display:block!important;
    min-width:0!important;
    margin:0 0 10px!important;
    padding:12px!important;
    border:1px solid var(--line)!important;
    border-radius:13px!important;
    background:#fff!important;
    box-shadow:0 3px 12px rgba(38,24,32,.035)!important;
  }
  #recentTransactions td{
    display:grid!important;
    grid-template-columns:92px minmax(0,1fr)!important;
    gap:8px!important;
    align-items:start!important;
    width:100%!important;
    min-width:0!important;
    padding:6px 0!important;
    border:0!important;
    text-align:left!important;
    white-space:normal!important;
    overflow-wrap:anywhere!important;
  }
  #recentTransactions td::before{
    color:var(--muted)!important;
    font-size:10px!important;
    line-height:1.35!important;
    font-weight:750!important;
    text-transform:uppercase!important;
    letter-spacing:.03em!important;
  }
  #recentTransactions td:nth-child(1)::before{content:"Tarikh"}
  #recentTransactions td:nth-child(2)::before{content:"Keterangan"}
  #recentTransactions td:nth-child(3)::before{content:"Kategori"}
  #recentTransactions td:nth-child(4)::before{content:"Status"}
  #recentTransactions td:nth-child(5)::before{content:"Jumlah"}
  #recentTransactions td:nth-child(5){
    font-size:15px!important;
    font-weight:800!important;
  }
  #recentTransactions tr .empty{
    display:block!important;
    text-align:center!important;
    padding:18px 6px!important;
  }
  #recentTransactions tr .empty::before{content:""!important}

  /* Hide only the table header belonging to Recent Transactions. */
  #recentTransactions{border:0!important}
  #recentTransactions:before{display:none!important}
  #recentTransactions tr{cursor:default}
  #recentTransactions.closest-table-placeholder{display:none}
  #recentTransactions ~ *{max-width:100%}
  #recentTransactions td .status{justify-self:start!important}

  /* ----- Dashboard: Accounts Receivable / Hutang Pelanggan ----- */
  .receivable-panel .receivable-summary{
    grid-template-columns:1fr 1fr!important;
    gap:8px!important;
  }
  .receivable-panel .receivable-summary>div{
    padding:11px!important;
    min-width:0!important;
  }
  .receivable-panel .receivable-summary>div:first-child{
    grid-column:1/-1!important;
  }
  .receivable-panel .receivable-summary strong{
    font-size:18px!important;
  }

  #debtorSummaryBody{
    display:block!important;
    width:100%!important;
  }
  #debtorSummaryBody tr{
    display:block!important;
    margin:0 0 10px!important;
    padding:12px!important;
    border:1px solid var(--line)!important;
    border-radius:13px!important;
    background:#fff!important;
  }
  #debtorSummaryBody td{
    display:grid!important;
    grid-template-columns:115px minmax(0,1fr)!important;
    gap:8px!important;
    width:100%!important;
    min-width:0!important;
    padding:6px 0!important;
    border:0!important;
    text-align:left!important;
    white-space:normal!important;
    overflow-wrap:anywhere!important;
  }
  #debtorSummaryBody td::before{
    color:var(--muted)!important;
    font-size:10px!important;
    font-weight:750!important;
    text-transform:uppercase!important;
    letter-spacing:.03em!important;
  }
  #debtorSummaryBody td:nth-child(1)::before{content:"Pelanggan"}
  #debtorSummaryBody td:nth-child(2)::before{content:"Invoice"}
  #debtorSummaryBody td:nth-child(3)::before{content:"Due Terawal"}
  #debtorSummaryBody td:nth-child(4)::before{content:"Baki Hutang"}
  #debtorSummaryBody td:nth-child(4){
    color:var(--bad)!important;
    font-size:16px!important;
    font-weight:800!important;
  }
  #debtorSummaryBody tr .empty{
    display:block!important;
    text-align:center!important;
  }
  #debtorSummaryBody tr .empty::before{content:""!important}

  /* Hide table headings for the two dashboard mobile card tables. */
  .receivable-panel .table-wrap table:has(#debtorSummaryBody) thead,
  .panel .table-wrap table:has(#recentTransactions) thead{
    display:none!important;
  }
  .receivable-panel .table-wrap:has(#debtorSummaryBody),
  .panel .table-wrap:has(#recentTransactions){
    overflow:visible!important;
  }
  .receivable-panel table:has(#debtorSummaryBody),
  .panel table:has(#recentTransactions){
    min-width:0!important;
    width:100%!important;
  }

  /* ----- Settings: Document Numbering ----- */
  #numberingForm .table-wrap{
    overflow:visible!important;
  }
  #numberingForm table{
    min-width:0!important;
    width:100%!important;
    display:block!important;
  }
  #numberingForm thead{
    display:none!important;
  }
  #numberingBody{
    display:block!important;
    width:100%!important;
  }
  #numberingBody tr{
    display:grid!important;
    grid-template-columns:1fr 1fr!important;
    gap:10px!important;
    margin-bottom:12px!important;
    padding:13px!important;
    border:1px solid var(--line)!important;
    border-radius:14px!important;
    background:#fff!important;
  }
  #numberingBody td{
    display:block!important;
    min-width:0!important;
    width:100%!important;
    padding:0!important;
    border:0!important;
  }
  #numberingBody td::before{
    display:block!important;
    margin-bottom:5px!important;
    color:var(--muted)!important;
    font-size:10px!important;
    line-height:1.25!important;
    font-weight:750!important;
    text-transform:uppercase!important;
    letter-spacing:.035em!important;
  }
  #numberingBody td:nth-child(1){
    grid-column:1/-1!important;
    padding-bottom:4px!important;
    border-bottom:1px solid var(--line)!important;
  }
  #numberingBody td:nth-child(1)::before{content:"Dokumen"}
  #numberingBody td:nth-child(2)::before{content:"Prefix"}
  #numberingBody td:nth-child(3)::before{content:"Digit"}
  #numberingBody td:nth-child(4)::before{content:"Reset Tahunan"}
  #numberingBody td:nth-child(5)::before{content:"Nombor Mula"}
  #numberingBody td:nth-child(6){
    grid-column:1/-1!important;
    padding-top:4px!important;
  }
  #numberingBody td:nth-child(6)::before{content:"Preview Nombor Seterusnya"}

  #numberingBody input[data-num="prefix"],
  #numberingBody input[data-num="digits"],
  #numberingBody input[data-num="starting_number"]{
    width:100%!important;
    min-height:40px!important;
  }
  #numberingBody input[type="checkbox"]{
    width:22px!important;
    height:22px!important;
    margin-top:7px!important;
  }
  #numberingBody code{
    display:block!important;
    width:100%!important;
    padding:9px 10px!important;
    border-radius:9px!important;
    background:#f7f3f5!important;
    overflow-wrap:anywhere!important;
    font-size:12px!important;
  }
  #numberingForm > .btn{
    width:100%!important;
    min-height:44px!important;
    position:static!important;
  }

  /* Keep panel heading/actions readable on narrow screens. */
  .receivable-panel .panel-head{
    align-items:flex-start!important;
    flex-wrap:wrap!important;
  }
  .receivable-panel .panel-head .link-btn{
    min-height:36px!important;
    padding:6px 0!important;
  }
}

@media screen and (max-width: 390px){
  #numberingBody tr{
    grid-template-columns:1fr!important;
  }
  #numberingBody td,
  #numberingBody td:nth-child(1),
  #numberingBody td:nth-child(6){
    grid-column:1!important;
  }
  .receivable-panel .receivable-summary{
    grid-template-columns:1fr!important;
  }
  .receivable-panel .receivable-summary>div:first-child{
    grid-column:1!important;
  }
  #recentTransactions td{
    grid-template-columns:80px minmax(0,1fr)!important;
  }
  #debtorSummaryBody td{
    grid-template-columns:100px minmax(0,1fr)!important;
  }
}


/* =========================================================
   v0.9.15 — Mobile sign out lives inside the menu
   ========================================================= */
.mobile-logout-nav{display:none!important}

@media screen and (max-width:900px){
  .sidebar-user .sidebar-logout{display:none!important}

  .sidebar-user{
    grid-template-columns:36px minmax(0,1fr)!important;
    grid-template-areas:"avatar copy"!important;
    row-gap:0!important;
    bottom:12px!important;
  }

  .sidebar nav.priority-nav{padding-bottom:100px!important}

  .mobile-logout-nav{
    display:flex!important;
    align-items:center!important;
    gap:9px!important;
    width:100%!important;
    margin-top:10px!important;
    padding:11px 12px!important;
    border:1px solid #ead5df!important;
    border-radius:10px!important;
    background:#fff7fa!important;
    color:#8b2d59!important;
    font-size:11px!important;
    font-weight:780!important;
    line-height:1.2!important;
    text-align:left!important;
    cursor:pointer!important;
    pointer-events:auto!important;
    position:relative!important;
    z-index:1260!important;
  }
  .mobile-logout-nav:hover,.mobile-logout-nav:active{
    background:#f8eaf1!important;
    color:#732347!important;
  }
  .mobile-logout-nav:disabled{opacity:.65!important;cursor:wait!important}
  .mobile-logout-icon{
    display:grid!important;
    place-items:center!important;
    width:24px!important;
    height:24px!important;
    flex:0 0 24px!important;
    border-radius:7px!important;
    background:#f1dce6!important;
    font-size:15px!important;
    font-weight:800!important;
  }
}

/* v0.9.16 — Production cleanup: sample data UI removed. */


/* =========================================================
   v1.0 — Offline Sync / PWA
   ========================================================= */
.sync-status-chip{border:1px solid var(--line);background:#fff;color:var(--ink);border-radius:999px;padding:8px 11px;display:inline-flex;align-items:center;gap:7px;font-size:11px;font-weight:750;cursor:pointer;white-space:nowrap;box-shadow:0 2px 8px rgba(36,24,31,.035)}
.sync-dot{width:8px;height:8px;border-radius:50%;background:#2c7a5a;box-shadow:0 0 0 3px #e6f4ed;flex:0 0 auto}.sync-status-chip.has-pending .sync-dot{background:#c7871c;box-shadow:0 0 0 3px #fff2d7}.sync-status-chip.has-conflict .sync-dot,.sync-status-chip.is-offline .sync-dot{background:#b33b45;box-shadow:0 0 0 3px #ffe8ea}.sync-status-chip.has-conflict{border-color:#edc5cb}.sync-status-chip.is-offline{background:#fff8f8}
.offline-sync-card{max-width:760px}.offline-sync-summary{display:grid;grid-template-columns:repeat(4,1fr);gap:9px;margin:8px 0 14px}.offline-sync-summary>div{padding:11px;border:1px solid var(--line);border-radius:12px;background:#faf8f9}.offline-sync-summary span,.offline-sync-summary strong{display:block}.offline-sync-summary span{font-size:10px;color:var(--muted);text-transform:uppercase;font-weight:750}.offline-sync-summary strong{font-size:14px;margin-top:5px}.offline-sync-actions{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:12px}.offline-queue-list{display:grid;gap:8px;max-height:330px;overflow:auto;margin-top:12px}.offline-queue-item{display:flex;justify-content:space-between;gap:12px;align-items:center;border:1px solid var(--line);border-radius:12px;padding:11px;background:#fff}.offline-queue-item b,.offline-queue-item small{display:block}.offline-queue-item small{color:var(--muted);font-size:11px;margin-top:3px}.offline-queue-item.conflict{border-left:4px solid #b33b45}.offline-queue-item.auth{border-left:4px solid #c7871c}.good-text{color:#277155!important}.bad-text{color:#a73742!important}.offline-mode .sync-status-chip{border-color:#efcbd0}
@media(max-width:700px){.top-actions{gap:6px!important}.sync-status-chip{max-width:145px;padding:7px 9px}.offline-sync-summary{grid-template-columns:1fr 1fr}.offline-sync-actions .btn{flex:1 1 calc(50% - 5px);min-width:0}.offline-queue-item{align-items:flex-start}.offline-sync-card{width:min(94vw,760px)!important}}


/* =========================================================
   v1.2 — Clean Professional UI
   ========================================================= */
:root{--bg:#f8f8f9;--panel:#fff;--ink:#211b1f;--muted:#81777d;--line:#ebe7e9;--primary:#8f2f61;--primary-dark:#722449;--soft:#f8edf3;--accent:#cfa45a;--good:#277159;--warn:#a9681b;--bad:#ad3e49;--shadow:none}
html{background:var(--bg)}
body{background:var(--bg)!important;color:var(--ink);font-size:13px;letter-spacing:-.005em}
.app-shell{grid-template-columns:220px minmax(0,1fr)!important}
.sidebar{background:#fff!important;border-right:1px solid var(--line)!important;padding:18px 12px!important;gap:12px!important;box-shadow:none!important}
.brand{padding:2px 6px 12px!important;border-bottom:0!important;gap:10px!important}
.brand-mark{width:38px!important;height:38px!important;border-radius:9px!important}
.brand strong{font-size:13px!important;font-weight:750}.brand span{font-size:9.5px!important;color:var(--muted)!important}
.sidebar-note{display:none!important}.sidebar nav{gap:1px!important}
.nav-group-label{padding:14px 9px 5px!important;font-size:8px!important;letter-spacing:.16em!important;color:#a3979e!important}
.nav-btn{padding:8px 10px!important;border-radius:7px!important;font-size:11px!important;font-weight:600!important;color:#5c5358!important}
.nav-btn:hover{background:#faf6f8!important;color:var(--primary)!important}.nav-btn.active{background:var(--soft)!important;color:var(--primary)!important;box-shadow:inset 2px 0 0 var(--primary)!important}
.sidebar-user{border-top:1px solid var(--line)!important;padding-top:12px!important;background:#fff!important}
.sidebar-avatar{width:32px!important;height:32px!important;font-size:11px!important}.sidebar-user-copy b{font-size:11px!important}.sidebar-user-copy span{font-size:9px!important}
.sidebar-logout{min-width:0!important;height:30px!important;padding:0 9px!important;font-size:9.5px!important;border-radius:7px!important}
.main{padding:22px 26px 40px!important;width:100%;max-width:1600px;margin:0 auto}
.topbar{margin-bottom:16px!important;padding:0!important;border:0!important;min-height:42px}.topbar h1{font-size:23px!important;font-weight:750!important;letter-spacing:-.035em!important}.topbar p{display:none!important}
.top-actions{gap:8px!important}.sync-status-chip{border-radius:8px!important;box-shadow:none!important;min-height:36px!important;padding:7px 10px!important}
.btn{min-height:36px;padding:8px 12px!important;border-radius:7px!important;font-size:11.5px!important;font-weight:650!important;box-shadow:none!important}.btn.primary{box-shadow:none!important}.btn.secondary,.btn.danger{background:#fff!important}
.link-btn{font-size:11px!important;font-weight:650!important}
.cards,.cards.compact,.report-cards,.tax-cards{gap:10px!important;margin-bottom:10px!important}
.metric-card{padding:15px!important;border:1px solid var(--line)!important;border-radius:10px!important;box-shadow:none!important;background:#fff!important}
.metric-card span{font-size:10.5px!important;font-weight:600!important;color:var(--muted)!important}.metric-card strong{margin:6px 0 0!important;font-size:21px!important;font-weight:750!important;letter-spacing:-.025em}.metric-card small{display:none!important}
.metric-card.accent{background:var(--primary)!important;border-color:var(--primary)!important;color:#fff!important}.metric-card.accent span{color:#f7eaf1!important}.metric-card.warning{border-left:3px solid var(--accent)!important}
.grid{gap:10px!important}.two-col{margin-bottom:10px!important}
.panel{padding:16px!important;margin-bottom:10px!important;border:1px solid var(--line)!important;border-radius:10px!important;box-shadow:none!important;background:#fff!important}
.panel-head{margin-bottom:13px!important;gap:8px!important}.panel-head h2{font-size:14px!important;line-height:1.25!important;font-weight:700!important;letter-spacing:-.015em!important}.panel-head p{display:none!important}
.section-label{font-size:11px!important}.settings-main-grid{grid-template-columns:minmax(0,900px)!important}
.toolbar{gap:7px!important;margin-bottom:12px!important}.toolbar-note{display:none!important}
.toolbar input,.toolbar select,.form-grid input,.form-grid select,.form-grid textarea,.document-actions select,.mini-grid input{min-height:36px;border:1px solid #e3dfe1!important;border-radius:7px!important;padding:8px 10px!important;background:#fff!important;font-size:11.5px!important;box-shadow:none!important}
.form-grid{gap:10px!important}.form-grid label,.toolbar label{gap:5px!important;font-size:10.5px!important;font-weight:600!important;color:#574e53!important}.form-grid textarea{resize:vertical}.search-box input{min-height:38px!important}
.table-wrap{border:0!important}table{border-collapse:separate!important;border-spacing:0!important}th,td{padding:9px 8px!important;border-bottom:1px solid #f0edef!important;font-size:11px!important}th{background:#fff!important;color:#8c8187!important;font-size:9.5px!important;font-weight:700!important;text-transform:uppercase;letter-spacing:.035em}
.status{padding:4px 7px!important;font-size:9px!important;font-weight:700!important}.mini-btn{min-height:30px;padding:6px 8px!important;border-radius:6px!important;border-color:#e4dfe2!important;font-size:10px!important;font-weight:600!important}
.document-actions{gap:5px!important}.document-actions select{min-height:30px!important;padding:5px 7px!important;font-size:10px!important}
.document-card,.receipt-item,.customer-card,.product-card{padding:12px!important;border:1px solid var(--line)!important;border-radius:9px!important;background:#fff!important;box-shadow:none!important}
.document-card strong{font-size:16px!important}.doc-type{font-size:8.5px!important}.customer-list,.document-list,.receipt-list{gap:8px!important}
.customer-stats{gap:12px!important;margin:8px 0!important}.customer-stats span{min-width:76px!important}.customer-stats strong{font-size:12px!important}.internal-margin{opacity:.7}
.task-list{gap:7px!important}.task{padding:10px!important;border-radius:8px!important;border-color:var(--line)!important}.task-icon{width:28px!important;height:28px!important;border-radius:7px!important;font-size:10px!important}.task b{font-size:11.5px!important}.task small{display:none!important}
.chart-empty{min-height:180px!important}.bar-chart{min-height:190px!important}
.info-box,.warning-box{margin-top:12px!important;padding:10px 11px!important;border:1px solid #eee6dc!important;border-radius:8px!important;background:#fcfaf6!important;font-size:10.5px!important;line-height:1.45!important}.warning-box{background:#fff9f2!important}
.receivable-summary{gap:8px!important;margin-bottom:12px!important}.receivable-summary>div{padding:11px!important;border-radius:8px!important;background:#faf9fa!important}.receivable-summary span{font-size:9.5px!important}.receivable-summary strong{font-size:17px!important}
.report-download-grid{grid-template-columns:repeat(4,minmax(0,1fr))!important;gap:8px!important}.download-card{min-height:76px!important;padding:12px!important;gap:6px!important;border-radius:9px!important}.download-card b{font-size:12px!important;color:var(--ink)!important}.download-card small{display:none!important}.download-card>div{margin-top:auto}.download-card .mini-btn{min-width:64px}
.report-download-panel{margin-bottom:10px!important}.preview-head-actions{gap:6px!important}
.logo-uploader{grid-template-columns:110px 1fr!important;gap:14px!important;padding:12px!important;margin-bottom:14px!important;border-radius:9px!important;background:#fbfafb!important}.logo-preview{height:78px!important;border-radius:8px!important}.logo-uploader p{display:none!important}
.checklist{font-size:11px!important;line-height:1.5!important}.source-links a{font-size:10px!important}.permission-matrix{font-size:11px!important}
.modal-card{border-radius:12px!important;box-shadow:0 24px 70px rgba(30,20,26,.16)!important}
.auth-body{background:#f7f7f8!important}.auth-card{border-radius:14px!important;box-shadow:none!important;border:1px solid var(--line)!important}.auth-kicker{font-size:10px!important}
.hidden{display:none!important}
@media(max-width:1100px){.report-download-grid{grid-template-columns:repeat(3,minmax(0,1fr))!important}}
@media(max-width:900px){
  .app-shell{display:block!important}.sidebar{height:58px!important;padding:8px 10px!important;border-bottom:1px solid var(--line)!important}.sidebar .brand{height:42px!important;padding:0!important}.sidebar .brand-mark{width:36px!important;height:36px!important}
  .main{padding:10px 10px 28px!important}.topbar{margin-bottom:10px!important;min-height:0!important;gap:8px!important}.topbar h1{font-size:20px!important}.top-actions{grid-template-columns:auto 1fr!important}.sync-status-chip{min-width:0!important}
  .panel{padding:12px!important}.metric-card{padding:12px!important}.metric-card strong{font-size:18px!important}.panel-head{margin-bottom:10px!important}.panel-head h2{font-size:13px!important}
  .report-download-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}.settings-main-grid{grid-template-columns:1fr!important}.logo-uploader{grid-template-columns:90px 1fr!important}
}
@media(max-width:520px){.cards,.cards.compact,.report-cards,.tax-cards{grid-template-columns:repeat(2,minmax(0,1fr))!important}.report-download-grid{grid-template-columns:1fr 1fr!important}.download-card{min-height:68px!important}.top-actions{grid-template-columns:1fr 1fr!important}.logo-uploader{grid-template-columns:1fr!important}.logo-preview{max-width:120px!important}}

/* v1.2 clean help disclosure */
.auth-kicker,.auth-copy p{display:none!important}
.compliance-details{padding:0!important;overflow:hidden}
.compliance-details>summary{cursor:pointer;list-style:none;padding:14px 16px;font-size:12px;font-weight:700;color:var(--ink)}
.compliance-details>summary::-webkit-details-marker{display:none}
.compliance-details>summary::after{content:"+";float:right;color:var(--primary);font-size:16px;line-height:1}
.compliance-details[open]>summary::after{content:"−"}
.compliance-body{border-top:1px solid var(--line);padding:14px 16px}

/* =========================================================
   v1.3.0 — Structured Accounting Suite / Light Professional UI
   Inspired by the requested accounting navigation hierarchy.
   ========================================================= */
:root{
  --bg:#f4f6f8;
  --panel:#ffffff;
  --ink:#111827;
  --muted:#697386;
  --line:#dfe4ea;
  --primary:#18aee6;
  --primary-dark:#078bc0;
  --soft:#eaf7fc;
  --accent:#18aee6;
  --good:#16855b;
  --warn:#b87811;
  --bad:#c84652;
  --shadow:0 2px 8px rgba(15,23,42,.045);
}
html,body{background:var(--bg);font-size:15px}
body,.btn,.nav-btn,.nav-action,.nav-section-toggle,input,select,textarea,table{font-family:"Geist","Segoe UI Variable","Segoe UI",Arial,sans-serif}
.app-shell{grid-template-columns:242px minmax(0,1fr)}
.sidebar{background:#eef2f6;color:#111827;padding:20px 14px;gap:16px;border-right:1px solid #dce2e8;min-height:100vh}
.brand{padding:4px 6px 14px;border-bottom:1px solid #dce2e8}
.brand-mark{width:44px;height:44px;border-radius:9px;background:#fff;border:1px solid #d5dce3;color:#111827}
.brand-mark.has-logo{border:1px solid #d5dce3}
.brand strong{font-size:17px;color:#101318;font-weight:800}
.brand span{font-size:11px;color:#7c8796;margin-top:2px}
.sidebar nav{display:grid;gap:3px;align-content:start}
.nav-main,.nav-section-toggle,.nav-submenu button,.mobile-logout-nav{font-size:13.5px}
.nav-main,.nav-section-toggle{width:100%;min-height:42px;border:0;background:transparent;color:#101318;border-radius:7px;padding:10px 8px;display:flex;align-items:center;gap:9px;text-align:left;font-weight:800;cursor:pointer}
.nav-section-toggle{justify-content:space-between}
.nav-section-toggle>span{display:flex;align-items:center;gap:9px}
.nav-section-toggle b{font-size:16px;font-weight:600;transition:transform .16s ease}
.nav-section-toggle.open b{transform:rotate(180deg)}
.nav-main:hover,.nav-section-toggle:hover{background:#e5ebf0}
.nav-main.active{background:#fff;color:#0b91c6;box-shadow:inset 3px 0 0 var(--primary)}
.nav-icon{display:inline-grid;place-items:center;width:18px;min-width:18px;color:var(--primary);font-weight:900;font-style:normal}
.nav-submenu{display:none;padding:2px 0 7px 28px}
.nav-submenu.open{display:grid;gap:1px}
.nav-submenu button{border:0;background:transparent;color:#15191f;text-align:left;padding:8px 7px;border-radius:6px;cursor:pointer;font-weight:500;line-height:1.25}
.nav-submenu button:hover,.nav-submenu button.active{background:#fff;color:#078bc0}
.mobile-logout-nav{display:none!important}
.sidebar-user{margin-top:auto;background:#fff;border:1px solid #dce2e8;color:#111827;border-radius:9px;padding:8px}
.sidebar-user-copy b{font-size:12px;color:#111827}.sidebar-user-copy span{color:#778190}.sidebar-avatar{background:#eaf7fc;color:#078bc0;border-radius:8px}.sidebar-logout{background:#f2f4f6;color:#4b5563;border:1px solid #dce2e8;border-radius:7px;font-size:11px;width:auto;min-width:66px;padding:0 8px}.sidebar-logout:hover{background:#e8edf1}
.main{padding:22px 24px 34px}
.topbar{margin:0 0 12px;padding:0 0 12px;border-bottom:1px solid #dfe4ea;min-height:56px}
.topbar h1{font-size:24px;line-height:1.2;font-weight:800;letter-spacing:-.025em;color:#101318}
.topbar p{display:none}
.sync-status-chip{background:#fff;border:1px solid #dbe1e7;color:#4d5968;border-radius:7px;padding:7px 10px;font-size:11px}
.btn{border-radius:7px;padding:9px 13px;font-size:13px;box-shadow:none}
.btn.primary{background:var(--primary);color:#fff}.btn.primary:hover{background:var(--primary-dark)}
.btn.secondary{background:#fff;border:1px solid #cfd7df;color:#26313d}
.panel{border:1px solid #dfe4ea;border-radius:8px;padding:14px;box-shadow:var(--shadow);margin-bottom:12px}
.panel-head{margin-bottom:12px}.panel-head h2{font-size:16px;font-weight:800}.panel-head p{display:none}
.metric-card{border:1px solid #dfe4ea;border-radius:8px;padding:15px;box-shadow:none}.metric-card span{font-size:12px}.metric-card strong{font-size:25px}.metric-card.accent{background:#fff;color:#111827}.metric-card.accent span,.metric-card.accent small{color:var(--muted)}
.cards{gap:10px;margin-bottom:10px}.grid{gap:10px}.two-col{margin-bottom:10px}
th,td{font-size:13.5px;padding:10px 9px;border-bottom:1px solid #e7ebef}th{font-size:12px;color:#5f6b78;background:#fafbfc;font-weight:750}
.form-grid{gap:10px}.form-grid label{font-size:13px;font-weight:650;gap:5px}.toolbar input,.toolbar select,.form-grid input,.form-grid select,.form-grid textarea,.document-actions select,.mini-grid input{border-radius:6px;border-color:#d6dde4;padding:9px 10px;font-size:13.5px}.toolbar{margin-bottom:10px}.mini-btn{border-radius:6px;padding:7px 10px;font-size:12px}.document-card,.product-card,.receipt-item{border-radius:7px;border-color:#e0e5ea;padding:12px}.doc-type{color:#078bc0}.info-box,.warning-box{border-radius:7px;background:#f7f9fb;color:#566170;border:1px solid #e4e8ec}.margin-preview{background:#f5f8fa;color:#176b8b;border-radius:7px}.document-total-preview{border-radius:7px;background:#fafbfc}.document-total-preview>div.grand{border-top-color:#9ea8b2;color:#111827}

/* Professional accounting dashboard */
.dashboard-toolbar{display:flex;align-items:center;gap:6px;margin:4px 0 10px}.dashboard-toolbar select{width:82px;border:1px solid #cdd6df;border-radius:6px;background:#fff;padding:8px 9px;font-size:13px}.icon-refresh{width:39px;height:36px;border:1px solid var(--primary);background:#fff;color:var(--primary);border-radius:6px;font-size:20px;cursor:pointer}
.dashboard-pro-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-bottom:8px}.dash-widget{min-height:275px;margin:0;padding:12px}.widget-title{display:flex;justify-content:space-between;align-items:center;font-size:13px;margin-bottom:15px}.widget-title b{font-size:13px}.widget-title span{font-size:12px;color:#111827}.dash-stat-row{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;text-align:center;margin-bottom:8px}.dash-stat-row.two{grid-template-columns:repeat(2,1fr)}.dash-stat-row strong{display:block;font-size:19px}.dash-stat-row span{display:block;font-size:12px;margin-top:2px}.dash-aging{display:grid;grid-template-columns:1fr 1fr;gap:12px;text-align:center;margin:8px 0 15px}.dash-aging strong{display:block;font-size:18px}.dash-aging span{font-size:12px}.bank-cash-widget{grid-column:1/2}.cash-flow-widget{grid-column:2/4}.simple-balance-table{min-width:0}.simple-balance-table th,.simple-balance-table td{font-size:13px}.simple-balance-table .total td{font-weight:800;border-top:1px solid #cfd7df}.mini-chart-bars{height:175px;padding:6px 4px 0}.pro-bars{height:100%;display:flex;align-items:stretch;gap:18px}.pro-bar-col{flex:1;min-width:0;display:grid;grid-template-rows:20px 1fr 22px;text-align:center}.pro-bar-value{font-size:10px;color:#2c333a;overflow:hidden}.pro-bar-track{display:flex;align-items:flex-end;justify-content:center;border-bottom:1px solid #cfd6dd}.pro-bar-fill{width:min(70%,92px);background:#9bd9da;border:1px solid #71c8ca;min-height:2px}.pro-bar-fill.bad{background:#f2a2b6;border-color:#e77995}.pro-bar-fill.warn{background:#ffe0a1;border-color:#ffc85f}.pro-bar-fill.muted{background:#d8dce2;border-color:#bdc4cc}.pro-bar-fill.good{background:#9fd9db;border-color:#73c6c9}.pro-bar-col span{font-size:10px;color:#6b7280;padding-top:5px}.dashboard-cashflow{min-height:215px}.dashboard-cashflow.bar-chart{min-height:215px}.dashboard-cashflow .bar.income{background:#91d7d8}.dashboard-cashflow .bar.expense{background:#f3a1b4}.dashboard-bottom-grid{grid-template-columns:1fr 1fr}.dashboard-bottom-grid .panel{margin:0}

/* Operational modules */
.panel-inset{border:1px solid #e1e6eb;border-radius:7px;padding:14px;background:#fafbfc}.empty-state-pro{padding:36px 20px;text-align:center}.empty-state-pro h3{font-size:20px;margin:0 0 8px}.empty-state-pro p{max-width:560px;margin:0 auto;color:#6c7682;line-height:1.55}.soft-stat{display:inline-block;margin-top:18px;padding:9px 13px;background:#f4f7f9;border:1px solid #e0e5e9;border-radius:7px}.einvoice-tabs{display:flex;gap:4px;border-bottom:1px solid #e1e6eb;margin:-2px 0 18px}.subtab{border:0;background:transparent;padding:10px 13px;font-size:13px;font-weight:650;color:#687381;cursor:pointer;border-bottom:2px solid transparent}.subtab.active{color:#078bc0;border-bottom-color:#18aee6}.compact-form{max-width:680px}

/* Cleaner reports */
.report-download-grid{gap:7px}.download-card{border-radius:7px!important;border-color:#e0e5e9!important;padding:12px!important}.download-card small{color:#77818d!important}.preview-summary-card{border-radius:7px!important;background:#fafbfc!important}

@media(max-width:1180px){.dashboard-pro-grid{grid-template-columns:1fr 1fr}.dash-widget{min-height:260px}.bank-cash-widget{grid-column:auto}.cash-flow-widget{grid-column:1/-1}}
@media(max-width:900px){
 .app-shell{display:block}.sidebar{position:sticky!important;top:0!important;width:100%!important;min-height:58px!important;height:58px!important;padding:7px 10px!important;background:#fff!important;border-bottom:1px solid #dce2e8!important;z-index:1200!important}.brand{border:0!important;padding:0!important}.brand-mark{width:38px!important;height:38px!important}.brand strong{font-size:14px!important}.brand span{font-size:9px!important}.mobile-menu-toggle{display:flex!important;background:#f3f5f7!important;border:1px solid #dce2e8!important}.sidebar nav.priority-nav{position:fixed!important;left:0!important;top:58px!important;bottom:0!important;width:min(86vw,340px)!important;background:#eef2f6!important;border-right:1px solid #dce2e8!important;padding:12px 12px 110px!important;overflow-y:auto!important;transform:translateX(-102%)!important;transition:transform .2s ease!important;z-index:1260!important}.sidebar.mobile-open nav.priority-nav{transform:translateX(0)!important}.nav-main,.nav-section-toggle{font-size:14px!important}.nav-submenu button{font-size:13.5px!important;padding:10px 8px!important}.sidebar-user{position:fixed!important;left:12px!important;bottom:12px!important;width:calc(min(86vw,340px) - 24px)!important;transform:translateX(-120%)!important;z-index:1270!important;transition:transform .2s ease!important}.sidebar.mobile-open .sidebar-user{transform:translateX(0)!important}.mobile-logout-nav{display:flex!important;margin-top:8px!important;background:#fff!important;border:1px solid #dce2e8!important;color:#344050!important}.main{padding:14px 12px 28px!important}.topbar{min-height:46px!important;margin-bottom:8px!important}.topbar h1{font-size:21px!important}.dashboard-pro-grid{grid-template-columns:1fr!important}.dash-widget,.bank-cash-widget,.cash-flow-widget{grid-column:1!important;min-height:auto!important}.dashboard-bottom-grid{grid-template-columns:1fr!important}.two-col,.doc-grid,.receipt-grid{grid-template-columns:1fr!important}.cards,.cards.compact{grid-template-columns:1fr 1fr!important}.panel{padding:12px!important}.form-grid{grid-template-columns:1fr!important}.form-grid .full{grid-column:1!important}.item-row{grid-template-columns:1fr 70px 70px!important}.item-row>button{grid-column:3}.item-row input:nth-child(4){grid-column:1/3}.table-wrap{overflow:auto!important}.einvoice-tabs{overflow-x:auto;white-space:nowrap}.dash-aging strong{font-size:17px}}
@media(max-width:520px){.cards,.cards.compact{grid-template-columns:1fr!important}.dash-stat-row strong{font-size:18px}.dashboard-toolbar{margin-top:0}.panel-head h2{font-size:15px}th,td{font-size:12.5px}.document-card{display:grid;grid-template-columns:1fr}.document-actions{justify-content:flex-start}}


/* =========================================================
   v1.3.1 — Sidebar active-state + typography standardization
   ========================================================= */

/* One typography scale for the accounting navigation. */
.pro-nav .nav-main,
.pro-nav .nav-section-toggle{
  font-family:"Geist","Segoe UI Variable","Segoe UI",Arial,sans-serif!important;
  font-size:13.5px!important;
  font-weight:800!important;
  line-height:1.25!important;
  letter-spacing:0!important;
}

.pro-nav .nav-submenu .nav-btn,
.pro-nav .nav-submenu .nav-action{
  font-family:"Geist","Segoe UI Variable","Segoe UI",Arial,sans-serif!important;
  font-size:13px!important;
  font-weight:600!important;
  line-height:1.35!important;
  letter-spacing:0!important;
  min-height:36px!important;
  padding:9px 9px!important;
  border-radius:7px!important;
  box-shadow:none!important;
}

/* Only the actual selected child gets the active highlight. */
.pro-nav .nav-submenu .nav-btn.active,
.pro-nav .nav-submenu .nav-action.active{
  background:#dff1f8!important;
  color:#078bc0!important;
  box-shadow:inset 3px 0 0 #18aee6!important;
}

/* Opening an accordion section must not look like a selected page. */
.pro-nav .nav-section-toggle.open{
  background:transparent!important;
  color:#101318!important;
  box-shadow:none!important;
}
.pro-nav .nav-section-toggle.open:hover{
  background:#e5ebf0!important;
}

/* Dashboard follows the same top-level menu sizing. */
.pro-nav .nav-main.active{
  font-size:13.5px!important;
  font-weight:800!important;
}

/* Brand typography remains crisp and consistent. */
.sidebar .brand strong{
  font-size:13.5px!important;
  font-weight:800!important;
  line-height:1.2!important;
}
.sidebar .brand span{
  font-size:10px!important;
  line-height:1.3!important;
}

@media(max-width:900px){
  .pro-nav .nav-main,
  .pro-nav .nav-section-toggle{
    font-size:14px!important;
  }
  .pro-nav .nav-submenu .nav-btn,
  .pro-nav .nav-submenu .nav-action{
    font-size:13.5px!important;
    font-weight:600!important;
    min-height:40px!important;
    padding:10px 9px!important;
  }
}
