*{box-sizing:border-box}:root{--bg: #f4f5f7;--card: #ffffff;--text: #1b2333;--muted: #69738a;--border: #e3e6ec;--accent: #2563eb;--accent-text: #ffffff;--green: #047a48;--red: #c02626;--blue: #2563eb;--amber: #b45309;--row-cleared: #d5f2e0;--row-done: #dbe9ff;--row-overdue: #ffe8c2;--input-bg: #fafbfd}@media (prefers-color-scheme: dark){:root{--bg: #0e1320;--card: #161d2e;--text: #e7ebf4;--muted: #939db4;--border: #26304a;--accent: #3b82f6;--green: #3fce8f;--red: #f07567;--blue: #60a5fa;--amber: #fbbf24;--row-cleared: #123d28;--row-done: #16325a;--row-overdue: #4a3810;--input-bg: #101728}}html,body{margin:0;padding:0;background:var(--bg);color:var(--text);font:14px/1.45 -apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif}.app{max-width:1100px;margin:0 auto;padding:28px 20px 60px}header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;flex-wrap:wrap}h1{margin:0;font-size:22px}.sub{margin:4px 0 0;color:var(--muted)}.header-actions{display:flex;gap:8px}h2{margin:0;font-size:15px}.card{background:var(--card);border:1px solid var(--border);border-radius:12px;padding:16px 18px;margin-top:20px}.card-head{display:flex;align-items:center;gap:14px;margin-bottom:10px}.spacer{flex:1}.btn{background:var(--card);border:1px solid var(--border);color:var(--text);border-radius:8px;padding:6px 12px;cursor:pointer;font:inherit}.btn:hover{border-color:var(--accent);color:var(--accent)}.btn.primary{background:var(--accent);border-color:var(--accent);color:var(--accent-text)}.btn.primary:hover{filter:brightness(1.08);color:var(--accent-text)}.btn:disabled{opacity:.45;cursor:default;pointer-events:none}.icon-btn{background:none;border:none;color:var(--muted);cursor:pointer;font-size:14px;padding:2px 6px;border-radius:6px}.icon-btn:hover{color:var(--red);background:var(--border)}.tabs{display:flex;gap:8px;margin-top:20px}.tab{background:none;border:1px solid transparent;color:var(--muted);padding:7px 14px;border-radius:8px;cursor:pointer;font:inherit;font-weight:500}.tab:hover{color:var(--text)}.tab.active{background:var(--card);border-color:var(--border);color:var(--text)}.tab .count{background:var(--accent);color:var(--accent-text);border-radius:999px;font-size:11px;padding:1px 7px;margin-left:7px;vertical-align:1px}.stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:12px;margin-top:20px}.stat{background:var(--card);border:1px solid var(--border);border-radius:12px;padding:12px 16px}.stat-label{color:var(--muted);font-size:11px;text-transform:uppercase;letter-spacing:.05em}.stat-value{font-size:22px;font-weight:600;font-variant-numeric:tabular-nums;margin-top:2px}.stat-value.neg{color:var(--red)}.tbl{width:100%;border-collapse:collapse}.tbl th{text-align:left;font-size:11px;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);padding:6px 8px;border-bottom:1px solid var(--border);white-space:nowrap}.tbl td{padding:5px 8px;border-bottom:1px solid var(--border)}.tbl tfoot td{border-bottom:none;color:var(--muted);padding-top:8px}.tbl tfoot .grand td{color:var(--text);font-weight:600}.num{text-align:right;font-variant-numeric:tabular-nums}.ctr{text-align:center}.tbl-scroll{overflow-x:auto}input,select{font:inherit;color:var(--text);background:var(--input-bg);border:1px solid transparent;border-radius:6px;padding:4px 6px}input:hover,select:hover{border-color:var(--border)}input:focus,select:focus{outline:none;border-color:var(--accent);background:var(--card)}input.grow{width:100%}input.money{width:110px;text-align:right;font-variant-numeric:tabular-nums}input[type=date]{width:145px}input[type=number]{width:58px}input[type=checkbox],input[type=radio]{accent-color:var(--accent);width:15px;height:15px}td.pos,td.pos input.money{color:var(--green)}td.neg,td.neg input.money,.num.neg{color:var(--red)}tr.cleared td{background:var(--row-cleared)}tr.cleared td:first-child{box-shadow:inset 3px 0 0 var(--green)}tr.done td{background:var(--row-done)}tr.done td:first-child{box-shadow:inset 3px 0 0 var(--blue)}tr.overdue td{background:var(--row-overdue)}tr.overdue td:first-child{box-shadow:inset 3px 0 0 var(--amber)}td.cb-done input{accent-color:var(--blue)}td.cb-cleared input{accent-color:var(--green)}.legend{display:flex;gap:18px;flex-wrap:wrap;color:var(--muted);font-size:12px;margin:0 0 10px}.legend .dot{display:inline-block;width:10px;height:10px;border-radius:3px;margin-right:6px;vertical-align:-1px}.legend .dot.cleared{background:var(--green)}.legend .dot.done{background:var(--blue)}.legend .dot.overdue{background:var(--amber)}.today-sep td{border-bottom:2px solid var(--accent);color:var(--accent);font-size:10px;text-transform:uppercase;letter-spacing:.1em;padding:8px 8px 2px;text-align:right;background:none}.tag{color:var(--muted);margin-left:6px;font-size:12px;cursor:default}.muted{color:var(--muted);font-style:italic}.add-row{display:flex;gap:8px;margin:8px 0 12px;flex-wrap:wrap}.add-row .grow{flex:1;min-width:180px}.freq{display:inline-flex;gap:6px;align-items:center;flex-wrap:wrap}.freq label{display:inline-flex;gap:6px;align-items:center;color:var(--muted);font-size:13px}.months{display:inline-flex;align-items:center;gap:6px;color:var(--muted)}.hint,.empty,footer{color:var(--muted);font-size:12.5px}.empty{padding:8px 0}footer{margin-top:28px;text-align:center}.login{max-width:32rem;margin:4rem auto}.login-form{display:grid;gap:1rem;max-width:24rem}.login-form label{display:grid;gap:.35rem}.login-form input{font:inherit;padding:.55rem}.error{color:#a42323}.save-status{align-self:center;font-size:.85rem}.save-offline,.save-conflict{color:#a42323}.save-saving,.save-loading{color:#755500}.conflict{margin:1rem 0;padding:.8rem;border:1px solid #bd8b22;background:#fff8df}
