@import"https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&family=JetBrains+Mono:wght@400;500&display=swap";*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}:root{--font: "Inter", -apple-system, BlinkMacSystemFont, sans-serif;--mono: "JetBrains Mono", "Fira Code", monospace;--radius: 6px;--radius-lg: 10px;--bg: #0d0f14;--bg2: #13151c;--bg3: #1a1d28;--bg4: #21253a;--bg5: #272b40;--border: #232638;--border2: #2e3350;--text: #eceef8;--text2: #8891b8;--text3: #50597a;--accent: #5b8df6;--accent2: #3d6fe0;--accent-bg: rgba(91,141,246,.1);--green: #34c77b;--green-bg: rgba(52,199,123,.1);--green-pill: rgba(52,199,123,.15);--red: #f05252;--red-bg: rgba(240,82,82,.1);--red-pill: rgba(240,82,82,.15);--yellow: #f5a623;--yellow-bg: rgba(245,166,35,.1);--shadow: 0 4px 16px rgba(0,0,0,.4);--shadow-sm: 0 1px 4px rgba(0,0,0,.3)}[data-theme=light]{--bg: #f6f8fc;--bg2: #ffffff;--bg3: #eef0f7;--bg4: #e3e6f0;--bg5: #d8dcea;--border: #dde0ec;--border2: #c8ccdf;--text: #181c30;--text2: #4c5278;--text3: #8890b0;--accent: #2d6ef0;--accent2: #1a55d8;--accent-bg: rgba(45,110,240,.08);--green: #16a35a;--green-bg: rgba(22,163,90,.08);--green-pill: rgba(22,163,90,.12);--red: #d63939;--red-bg: rgba(214,57,57,.08);--red-pill: rgba(214,57,57,.12);--yellow: #c47a00;--yellow-bg: rgba(196,122,0,.08);--shadow: 0 4px 16px rgba(0,0,0,.08);--shadow-sm: 0 1px 4px rgba(0,0,0,.06)}[data-theme=light] input,[data-theme=light] select,[data-theme=light] textarea{background:var(--bg3);color:var(--text);border-color:var(--border2)}[data-theme=green]{--bg: #f2f8f4;--bg2: #ffffff;--bg3: #e2f0e8;--bg4: #cde4d6;--bg5: #b8d8c4;--border: #bfd8cb;--border2: #a8c8b8;--text: #0e2018;--text2: #2e5040;--text3: #5a8070;--accent: #178a45;--accent2: #0f6e35;--accent-bg: rgba(23,138,69,.08);--green: #178a45;--green-bg: rgba(23,138,69,.1);--green-pill: rgba(23,138,69,.15);--red: #c43030;--red-bg: rgba(196,48,48,.08);--red-pill: rgba(196,48,48,.12);--yellow: #a07000;--yellow-bg: rgba(160,112,0,.08);--shadow: 0 4px 16px rgba(0,0,0,.06);--shadow-sm: 0 1px 4px rgba(0,0,0,.04)}[data-theme=green] input,[data-theme=green] select,[data-theme=green] textarea{background:var(--bg3);color:var(--text);border-color:var(--border2)}[data-theme=blue]{--bg: #f0f5fd;--bg2: #ffffff;--bg3: #deeaf8;--bg4: #c8d8f2;--bg5: #b0c6ea;--border: #b8ccec;--border2: #9cb8e0;--text: #0c1630;--text2: #2e4878;--text3: #5870a8;--accent: #1a58d0;--accent2: #1044b0;--accent-bg: rgba(26,88,208,.08);--green: #1a8c42;--green-bg: rgba(26,140,66,.08);--green-pill: rgba(26,140,66,.12);--red: #c43030;--red-bg: rgba(196,48,48,.08);--red-pill: rgba(196,48,48,.12);--yellow: #9a6800;--yellow-bg: rgba(154,104,0,.08);--shadow: 0 4px 16px rgba(0,0,0,.06);--shadow-sm: 0 1px 4px rgba(0,0,0,.04)}[data-theme=blue] input,[data-theme=blue] select,[data-theme=blue] textarea{background:var(--bg3);color:var(--text);border-color:var(--border2)}[data-theme=dark-green]{--bg: #0d0f14;--bg2: #13151c;--bg3: #1a1d28;--bg4: #21253a;--bg5: #272b40;--border: #232638;--border2: #2e3350;--text: #eceef8;--text2: #8891b8;--text3: #50597a;--accent: #34c77b;--accent2: #22a562;--accent-bg: rgba(52,199,123,.1);--green: #34c77b;--green-bg: rgba(52,199,123,.1);--green-pill: rgba(52,199,123,.15);--red: #f05252;--red-bg: rgba(240,82,82,.1);--red-pill: rgba(240,82,82,.15);--yellow: #f5a623;--yellow-bg: rgba(245,166,35,.1);--shadow: 0 4px 16px rgba(0,0,0,.4);--shadow-sm: 0 1px 4px rgba(0,0,0,.3);--tbl-wallet-bg: rgba(52,199,123,.07);--tbl-wallet-bdr: rgba(52,199,123,.35);--tbl-wallet-text: #34c77b;--tbl-tx-bg-even: rgba(52,199,123,.03);--tbl-tx-bg-odd: rgba(52,199,123,.055);--tbl-subtotal-bg: rgba(52,199,123,.06);--tbl-subtotal-bdr: rgba(52,199,123,.25)}[data-theme=terracota]{--bg: #faf7f2;--bg2: #ffffff;--bg3: #f4ede2;--bg4: #ece0d0;--bg5: #e0d0bc;--border: #ddd0bc;--border2: #cdc0a8;--text: #1c1208;--text2: #5c3e22;--text3: #a08060;--accent: #c05038;--accent2: #a04030;--accent-bg: rgba(192,80,56,.08);--green: #2a7a4a;--green-bg: rgba(42,122,74,.08);--green-pill: rgba(42,122,74,.12);--red: #c03030;--red-bg: rgba(192,48,48,.09);--red-pill: rgba(192,48,48,.14);--yellow: #c07018;--yellow-bg: rgba(192,112,24,.08);--shadow: 0 4px 20px rgba(80,30,0,.1);--shadow-sm: 0 1px 4px rgba(80,30,0,.06)}[data-theme=terracota] input,[data-theme=terracota] select,[data-theme=terracota] textarea{background:var(--bg3);color:var(--text);border-color:var(--border2)}[data-theme=terracota] .sidebar li.active{background:#c0503812;border-left-color:var(--accent);color:var(--accent)}[data-theme=terracota] .row-tx:nth-child(2n) td{background:#c0503806}[data-theme=terracota] .row-tx:nth-child(odd) td{background:#c050380d}[data-theme=terracota] .row-tx:hover td{background:#c0503814!important}[data-theme=terracota] .row-wallet td{color:var(--accent);border-bottom:2px solid rgba(192,80,56,.3)}[data-theme=terracota] .row-wallet{background:#c050380d}[data-theme=terracota] .row-subtotal td{background:#c050380a!important;border-bottom:2px solid rgba(192,80,56,.2)!important}[data-theme=dark-green] .row-wallet{background:var(--tbl-wallet-bg)!important}[data-theme=dark-green] .row-wallet td{color:var(--tbl-wallet-text)!important;border-bottom:2px solid var(--tbl-wallet-bdr)!important}[data-theme=dark-green] .row-parent-cat{background:#34c77b0a!important}[data-theme=dark-green] .row-category td{background:#34c77b06}[data-theme=dark-green] .row-tx:nth-child(2n) td{background:#34c77b0f}[data-theme=dark-green] .row-tx:nth-child(odd) td{background:#34c77b21}[data-theme=dark-green] .row-tx:hover td{background:#34c77b1a!important}[data-theme=dark-green] .row-subtotal td{background:var(--tbl-subtotal-bg)!important;border-bottom:2px solid var(--tbl-subtotal-bdr)!important}[data-theme=dark-green] .report-table td[rowspan]{border-right-color:#34c77b4d!important}[data-theme=dark-green] .row-collapsed td{background:#34c77b0f!important}[data-theme=dark-green] .report-table th{background:var(--bg2);border-bottom-color:#34c77b33}body{background:var(--bg);color:var(--text);font-family:var(--font);font-size:13px;line-height:1.5;-webkit-font-smoothing:antialiased}.app{display:flex;height:100vh;overflow:hidden}.sidebar{width:208px;min-width:208px;background:var(--bg2);border-right:1px solid var(--border);display:flex;flex-direction:column}.logo{padding:18px 16px 14px;border-bottom:1px solid var(--border);display:flex;align-items:center;gap:10px}.logo-icon{font-size:18px}.logo-text{font-weight:700;font-size:15px;color:var(--accent);letter-spacing:-.3px}.sidebar ul{list-style:none;padding:8px 6px;flex:1;overflow-y:auto}.sidebar li{padding:8px 12px;cursor:pointer;display:flex;align-items:center;gap:10px;color:var(--text3);font-size:12.5px;font-weight:450;transition:all .12s;border-radius:var(--radius);margin-bottom:1px;border-left:2px solid transparent}.sidebar li:hover{background:var(--bg3);color:var(--text2)}.sidebar li.active{background:var(--accent-bg);color:var(--accent);font-weight:600;border-left-color:var(--accent)}.sidebar-footer{padding:10px 14px 14px;border-top:1px solid var(--border);color:var(--text3);font-size:11px}.main-content{flex:1;overflow:auto;background:var(--bg);position:relative}.page-header{padding:16px 24px;border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;background:var(--bg2);position:sticky;top:0;z-index:10}.page-title{font-size:15px;font-weight:600;letter-spacing:-.2px}.page-controls{display:flex;gap:8px;align-items:center}.btn{padding:6px 14px;border:1px solid var(--border2);background:var(--bg3);color:var(--text2);font-family:var(--font);font-size:12px;font-weight:500;cursor:pointer;border-radius:var(--radius);transition:all .12s;white-space:nowrap}.btn:hover{background:var(--bg4);border-color:var(--accent);color:var(--text)}.btn-primary{background:var(--accent);border-color:var(--accent);color:#fff;font-weight:600}.btn-primary:hover{background:var(--accent2);border-color:var(--accent2)}.btn-sm{padding:3px 10px;font-size:11px}.btn-danger{border-color:var(--red);color:var(--red)}.btn-danger:hover{background:var(--red-bg)}select,input[type=text],input[type=number],input[type=date],textarea{background:var(--bg3);border:1px solid var(--border2);color:var(--text);font-family:var(--font);font-size:12px;padding:5px 8px;border-radius:var(--radius);outline:none;transition:border-color .12s}select:focus,input:focus,textarea:focus{border-color:var(--accent)}select option{background:var(--bg2);color:var(--text)}.report-wrap{padding:0}.report-table{width:max-content;min-width:100%;border-collapse:collapse}.report-table th{text-align:left;padding:8px 10px;font-size:10px;font-weight:600;color:var(--text3);text-transform:uppercase;letter-spacing:.08em;border-bottom:1px solid var(--border);background:var(--bg2);position:sticky;top:0;z-index:5;white-space:nowrap;-webkit-user-select:none;user-select:none}.report-table th.num{text-align:right}.row-wallet{background:var(--bg3)}.row-wallet td{padding:9px 8px;border-bottom:2px solid var(--border2);cursor:pointer;font-size:11.5px;font-weight:700;color:var(--accent);letter-spacing:.01em}.row-parent-cat{background:var(--bg2)}.row-parent-cat td{padding:7px 8px 7px 18px;border-bottom:1px solid var(--border);cursor:pointer;font-size:11.5px;font-weight:600}.row-category td{padding:5px 8px 5px 30px;border-bottom:1px solid var(--border);cursor:pointer;color:var(--text2);font-size:11px}.row-tx td{padding:5px 8px;border-bottom:1px solid var(--border);vertical-align:middle;font-size:12px}.row-tx td:first-child{padding-left:6px}.row-tx td:nth-child(2){padding-left:44px}.row-tx:hover{background:var(--bg4)!important;cursor:pointer}.row-subtotal td{padding:6px 10px;border-bottom:2px solid var(--border2);font-size:11px;font-weight:600;color:var(--text3);background:var(--bg3)}.subtotal-pill{display:inline-flex;align-items:center;justify-content:flex-end;padding:4px 10px;border-radius:5px;font-family:var(--mono);font-size:12px;font-weight:600;letter-spacing:-.3px;white-space:nowrap;min-width:90px}.subtotal-pill.pos{color:var(--green);background:var(--green-pill);border:1px solid rgba(52,199,123,.18)}.subtotal-pill.neg{color:var(--red);background:var(--red-pill);border:1px solid rgba(240,82,82,.18)}.subtotal-pill.zero{color:var(--text3);background:var(--bg3);border:1px solid var(--border)}.row-wallet .subtotal-pill{font-size:13px;padding:4px 12px}.row-parent-cat .subtotal-pill{font-size:12.5px}.num{text-align:right;font-family:var(--mono);font-size:12px;white-space:nowrap}.pos{color:var(--green)}.neg{color:var(--red)}.editable-cell{position:relative}.editable-cell input,.editable-cell textarea{width:100%;background:transparent;border:none;color:var(--text);font-family:var(--mono);font-size:12px;padding:2px 4px;text-align:right}.editable-cell input[type=text],.editable-cell textarea{text-align:left;font-family:var(--font)}.editable-cell input:focus,.editable-cell textarea:focus{background:var(--bg4);border:1px solid var(--accent);border-radius:3px;outline:none}.editable-cell.saving:after{content:"●";position:absolute;top:2px;right:2px;color:var(--yellow);font-size:8px;animation:pulse 1s infinite}@keyframes pulse{0%,to{opacity:1}50%{opacity:.3}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{opacity:0;transform:translateY(12px) scale(.97)}to{opacity:1;transform:translateY(0) scale(1)}}.editable-cell.saved:after{content:"✓";position:absolute;top:2px;right:2px;color:var(--green);font-size:10px}.check-cell{text-align:center}.check-cell input[type=checkbox]{cursor:pointer;accent-color:var(--accent);transform:scale(1.1)}.toggle-icon{margin-right:6px;font-size:9px;color:var(--text3);display:inline-block;transition:transform .18s}.toggle-icon.open{transform:rotate(90deg)}.status-badge{display:inline-block;padding:2px 8px;border-radius:20px;font-size:10px;font-weight:600;letter-spacing:.02em}.status-Draft{background:var(--yellow-bg);color:var(--yellow)}.status-Confirmed{background:var(--green-bg);color:var(--green)}.status-Cancelled{background:var(--red-bg);color:var(--red)}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0009;display:flex;align-items:center;justify-content:center;z-index:100;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.modal{background:var(--bg2);border:1px solid var(--border2);border-radius:var(--radius-lg);padding:28px;width:540px;max-height:85vh;overflow-y:auto;box-shadow:var(--shadow)}.modal h2{font-size:15px;font-weight:700;margin-bottom:22px;color:var(--accent);letter-spacing:-.2px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}.form-group{display:flex;flex-direction:column;gap:5px}.form-group.full{grid-column:1/-1}.form-group label{font-size:11px;color:var(--text3);text-transform:uppercase;letter-spacing:.06em;font-weight:600}.form-group select,.form-group input,.form-group textarea{width:100%}.modal-actions{display:flex;gap:8px;justify-content:flex-end;margin-top:22px;padding-top:16px;border-top:1px solid var(--border)}.dashboard-wrap{padding:24px}.kpi-row{display:flex;gap:14px;margin-bottom:22px;flex-wrap:wrap}.kpi-card{flex:1;min-width:140px;background:var(--bg2);border:1px solid var(--border);border-radius:var(--radius-lg);padding:18px 20px}.kpi-label{font-size:10px;color:var(--text3);text-transform:uppercase;letter-spacing:.08em;margin-bottom:8px;font-weight:600}.kpi-value{font-family:var(--mono);font-size:22px;font-weight:500;letter-spacing:-.5px}.chart-section{background:var(--bg2);border:1px solid var(--border);border-radius:var(--radius-lg);padding:18px;margin-bottom:16px}.section-title{font-size:11px;font-weight:700;color:var(--text2);text-transform:uppercase;letter-spacing:.08em;margin-bottom:16px}.loading{padding:40px;text-align:center;color:var(--text3)}.empty{padding:20px;text-align:center;color:var(--text3);font-size:12px}::-webkit-scrollbar{width:5px;height:5px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--border2);border-radius:10px}::-webkit-scrollbar-thumb:hover{background:var(--text3)}.detail-section-title{font-size:10px;color:var(--text3);text-transform:uppercase;letter-spacing:.08em;padding-bottom:6px;border-bottom:1px solid var(--border);margin-bottom:10px;cursor:pointer;display:flex;justify-content:space-between;font-weight:600}@media print{.sidebar,.page-controls,.btn,button,input[type=checkbox],[class*=sticky],[style*="position: fixed"],[style*="position:fixed"]{display:none!important}.main-content{margin:0!important;padding:0!important}.row-tx td{padding:3px 6px!important;font-size:10px!important}table{width:100%!important;border-collapse:collapse!important}td,th{border:1px solid #ccc!important}body{background:#fff!important;color:#000!important}}
