:root{--primary:#1e40af;--primary-light:#3b82f6;--bg:#f3f4f6;--surface:#fff;--border:#e5e7eb;--text:#111827;--text-secondary:#6b7280;--success:#16a34a;--danger:#dc2626;--warning:#d97706;--tab-h:56px;--radius:12px}@media (prefers-color-scheme:dark){:root{--bg:#111827;--surface:#1f2937;--border:#374151;--text:#f9fafb;--text-secondary:#9ca3af}.alert-warning{color:#fcd34d;background:#451a03;border-color:#92400e}.badge-pending{color:#fcd34d;background:#451a03}.badge-paid{color:#4ade80;background:#052e16}.category-btn.selected{color:#93c5fd;background:#1e3a8a}.danger-section{background:#200a0a;border-color:#991b1b}}[data-theme=dark]{--bg:#111827;--surface:#1f2937;--border:#374151;--text:#f9fafb;--text-secondary:#9ca3af}[data-theme=dark] .alert-warning{color:#fcd34d;background:#451a03;border-color:#92400e}[data-theme=dark] .badge-pending{color:#fcd34d;background:#451a03}[data-theme=dark] .badge-paid{color:#4ade80;background:#052e16}[data-theme=dark] .category-btn.selected{color:#93c5fd;background:#1e3a8a}[data-theme=dark] .danger-section{background:#200a0a;border-color:#991b1b}[data-theme=light]{--bg:#f3f4f6;--surface:#fff;--border:#e5e7eb;--text:#111827;--text-secondary:#6b7280}[data-theme=light] .alert-warning{color:#78350f;background:#fffbeb;border-color:#fcd34d}[data-theme=light] .badge-pending{color:#92400e;background:#fef3c7}[data-theme=light] .badge-paid{color:#065f46;background:#d1fae5}[data-theme=light] .category-btn.selected{color:var(--primary);background:#eff6ff}[data-theme=light] .danger-section{background:#fff5f5;border-color:#fca5a5}.lang-toggle,.theme-toggle{gap:6px;display:flex}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html,body,#root{height:100%}body{background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,system-ui,sans-serif;font-size:16px}input,select,textarea,button{font-family:inherit}.app{flex-direction:column;max-width:480px;height:100%;margin:0 auto;display:flex;position:relative}.page-content{-webkit-overflow-scrolling:touch;padding-bottom:calc(var(--tab-h) + env(safe-area-inset-bottom) + 16px);flex:1;padding-top:16px;padding-left:16px;padding-right:16px;overflow-y:auto}.tab-bar{background:var(--surface);border-top:1px solid var(--border);max-width:480px;padding-bottom:env(safe-area-inset-bottom);z-index:100;margin:0 auto;display:flex;position:fixed;bottom:0;left:0;right:0}.tab-bar a{min-width:0;color:var(--text-secondary);min-height:var(--tab-h);-webkit-tap-highlight-color:transparent;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:2px;padding:6px 4px 4px;font-size:10px;font-weight:500;text-decoration:none;display:flex;overflow:hidden}.tab-bar a span:not(.tab-icon){text-overflow:ellipsis;white-space:nowrap;text-align:center;width:100%;overflow:hidden}.tab-bar a.active{color:var(--primary)}.tab-icon{font-size:20px;line-height:1}.page-header{justify-content:space-between;align-items:center;margin-bottom:16px;display:flex}.page-title{font-size:22px;font-weight:800}.nav-header{align-items:center;gap:4px;margin-bottom:16px;display:flex}.back-btn{color:var(--primary);cursor:pointer;-webkit-tap-highlight-color:transparent;background:0 0;border:none;align-items:center;gap:2px;min-width:44px;min-height:44px;padding:0 4px;font-size:16px;font-weight:500;display:flex}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);margin-bottom:12px;padding:16px}.card-grid-2{grid-template-columns:1fr 1fr;gap:10px;margin-bottom:12px;display:grid}.stat-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:14px}.stat-label{color:var(--text-secondary);text-transform:uppercase;letter-spacing:.04em;margin-bottom:4px;font-size:11px;font-weight:600}.stat-value{font-size:20px;font-weight:800}.stat-value.positive{color:var(--success)}.stat-value.negative{color:var(--danger)}.btn{cursor:pointer;-webkit-tap-highlight-color:transparent;white-space:nowrap;border:none;border-radius:10px;justify-content:center;align-items:center;gap:6px;height:48px;padding:0 20px;font-size:15px;font-weight:600;transition:opacity .1s;display:inline-flex}.btn:active{opacity:.7}.btn-primary{background:var(--primary);color:#fff}.btn-secondary{background:var(--border);color:var(--text)}.btn-danger{background:var(--danger);color:#fff}.btn-ghost{color:var(--primary);background:0 0;height:44px;padding:0 8px}.btn-sm{height:36px;padding:0 14px;font-size:14px}.btn-full{width:100%}.btn-lg{border-radius:14px;height:56px;font-size:17px}.quick-actions{grid-template-columns:1fr;gap:12px;margin-top:16px;display:grid}.form-group{margin-bottom:16px}.form-label{color:var(--text-secondary);text-transform:uppercase;letter-spacing:.04em;margin-bottom:6px;font-size:12px;font-weight:700;display:block}.form-input{border:1.5px solid var(--border);background:var(--surface);width:100%;color:var(--text);appearance:none;border-radius:10px;min-height:48px;padding:12px 14px;font-size:16px}.form-input:focus{border-color:var(--primary);outline:none}.form-textarea{resize:vertical;min-height:80px;padding-top:10px}.form-row{grid-template-columns:1fr 1fr;gap:12px;display:grid}.form-actions{gap:10px;padding-top:8px;display:flex}.category-grid{grid-template-columns:repeat(3,1fr);gap:8px;display:grid}.category-btn{border:2px solid var(--border);background:var(--surface);color:var(--text);cursor:pointer;-webkit-tap-highlight-color:transparent;border-radius:10px;flex-direction:column;align-items:center;gap:4px;min-height:64px;padding:10px 4px;font-size:12px;font-weight:500;transition:border-color .1s;display:flex}.category-btn.selected{border-color:var(--primary);color:var(--primary);background:#eff6ff}.category-icon{font-size:22px}.list-item{border-bottom:1px solid var(--border);color:var(--text);-webkit-tap-highlight-color:transparent;justify-content:space-between;align-items:center;min-height:56px;padding:14px 0;text-decoration:none;display:flex}.list-item:last-child{border-bottom:none}.list-item-left{flex:1;min-width:0}.list-item-title{font-size:15px;font-weight:600}.list-item-sub{color:var(--text-secondary);white-space:nowrap;text-overflow:ellipsis;margin-top:2px;font-size:13px;overflow:hidden}.list-item-right{text-align:right;flex-shrink:0;margin-left:12px}.list-item-amount{font-size:15px;font-weight:700}.date-group-header{color:var(--text-secondary);text-transform:uppercase;letter-spacing:.05em;padding:14px 0 6px;font-size:11px;font-weight:700}.filters{grid-template-columns:1fr 1fr;gap:8px;margin-bottom:8px;display:grid}.filter-select{border:1px solid var(--border);background:var(--surface);width:100%;color:var(--text);appearance:none;cursor:pointer;text-overflow:ellipsis;white-space:nowrap;border-radius:8px;min-height:40px;padding:8px 10px;font-size:13px;overflow:hidden}.filter-toggle{border:1px solid var(--border);background:var(--surface);width:100%;color:var(--text);cursor:pointer;white-space:nowrap;-webkit-tap-highlight-color:transparent;text-align:center;border-radius:8px;min-height:40px;padding:8px 10px;font-size:13px;font-weight:500}.filter-toggle.active{background:var(--primary);border-color:var(--primary);color:#fff}.badge{border-radius:20px;padding:2px 8px;font-size:11px;font-weight:600;display:inline-block}.badge-pending{color:#92400e;background:#fef3c7}.badge-paid{color:#065f46;background:#d1fae5}.alert{border-radius:10px;align-items:flex-start;gap:10px;margin-bottom:10px;padding:12px 14px;font-size:14px;line-height:1.4;display:flex}.alert-warning{color:#78350f;background:#fffbeb;border:1px solid #fcd34d}.alert-info{color:#1e40af;background:#eff6ff;border:1px solid #93c5fd}.alert-dismiss{cursor:pointer;opacity:.6;color:inherit;-webkit-tap-highlight-color:transparent;background:0 0;border:none;border-radius:6px;flex-shrink:0;justify-content:center;align-items:center;min-width:28px;min-height:28px;padding:4px;font-size:14px;line-height:1;display:flex}.alert-dismiss:active{opacity:1}.month-picker{justify-content:space-between;align-items:center;margin-bottom:16px;display:flex}.month-picker-label{font-size:17px;font-weight:700}.month-nav{color:var(--text);cursor:pointer;-webkit-tap-highlight-color:transparent;background:0 0;border:none;border-radius:8px;justify-content:center;align-items:center;min-width:44px;min-height:44px;font-size:22px;display:flex}.fab{bottom:calc(var(--tab-h) + env(safe-area-inset-bottom) + 16px);background:var(--primary);color:#fff;cursor:pointer;z-index:50;-webkit-tap-highlight-color:transparent;border:none;border-radius:50%;justify-content:center;align-items:center;width:56px;height:56px;font-size:28px;display:flex;position:fixed;right:16px;box-shadow:0 4px 14px #1e40af73}.segment{background:var(--border);border-radius:10px;margin-bottom:16px;padding:2px;display:flex}.segment-btn{color:var(--text-secondary);cursor:pointer;-webkit-tap-highlight-color:transparent;background:0 0;border:none;border-radius:8px;flex:1;min-height:36px;padding:8px;font-size:14px;font-weight:600}.segment-btn.active{background:var(--surface);color:var(--text)}.dialog-overlay{z-index:200;background:#00000080;align-items:flex-end;display:flex;position:fixed;inset:0}.dialog-sheet{background:var(--surface);padding:24px 20px;padding-bottom:calc(24px + env(safe-area-inset-bottom));border-radius:20px 20px 0 0;width:100%;max-width:480px;margin:0 auto}.dialog-title{margin-bottom:6px;font-size:18px;font-weight:700}.dialog-message{color:var(--text-secondary);margin-bottom:20px;font-size:15px;line-height:1.5}.dialog-actions{flex-direction:column;gap:10px;display:flex}.toast{bottom:calc(var(--tab-h) + env(safe-area-inset-bottom) + 12px);color:#fff;z-index:300;text-align:center;background:#1f2937;border-radius:10px;max-width:448px;margin:0 auto;padding:12px 16px;font-size:14px;animation:.2s toast-in;position:fixed;left:16px;right:16px}@keyframes toast-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.empty{text-align:center;color:var(--text-secondary);padding:48px 24px}.empty-icon{margin-bottom:12px;font-size:48px}.empty-title{color:var(--text);margin-bottom:4px;font-size:17px;font-weight:600}.empty-sub{font-size:14px}.settings-section{margin-bottom:24px}.settings-section-title{color:var(--text-secondary);text-transform:uppercase;letter-spacing:.05em;margin-bottom:4px;padding:0 4px;font-size:11px;font-weight:700}.settings-item{border-bottom:1px solid var(--border);cursor:pointer;-webkit-tap-highlight-color:transparent;justify-content:space-between;align-items:center;min-height:52px;padding:14px 0;display:flex}.settings-item:last-child{border-bottom:none}.settings-item-title{font-size:15px;font-weight:500}.settings-item-sub{color:var(--text-secondary);font-size:13px}.settings-item-icon{margin-right:12px;font-size:20px}.settings-chevron{color:var(--text-secondary)}.danger-section{border-radius:var(--radius);background:#fff5f5;border:1px solid #fca5a5;margin-top:24px;padding:4px 16px}.table-wrap{-webkit-overflow-scrolling:touch;margin-bottom:16px;overflow-x:auto}table{border-collapse:collapse;width:100%;font-size:13px}thead th{text-align:left;border-bottom:2px solid var(--border);color:var(--text-secondary);text-transform:uppercase;white-space:nowrap;padding:8px 4px;font-size:11px}tbody td{border-bottom:1px solid var(--border);padding:10px 4px}tbody tr:last-child td{border-bottom:none}.td-right{text-align:right;font-weight:600}.text-success{color:var(--success)}.text-danger{color:var(--danger)}.text-secondary{color:var(--text-secondary)}.font-bold{font-weight:700}.divider{background:var(--border);height:1px;margin:16px 0}.amount-display{font-size:28px;font-weight:800}.section-title{color:var(--text-secondary);text-transform:uppercase;letter-spacing:.04em;margin-top:20px;margin-bottom:8px;font-size:13px;font-weight:700}
