:root{--paper: #fbf7ee;--card: #ffffff;--ink: #1e1b18;--muted: #6f6a62;--red: #c8312b;--yellow: #f5c518;--sky: #7fb7e6;--on-red: #ffffff;--sketch: 255px 14px 225px 14px / 14px 225px 14px 255px;--font-title: "ZCOOL KuaiLe", "PingFang SC", system-ui, sans-serif;--font-body: system-ui, -apple-system, "PingFang SC", "Noto Sans SC", sans-serif;color-scheme:light}@media (prefers-color-scheme: dark){:root:not([data-theme=light]){--paper: #22201d;--card: #2d2a26;--ink: #f2ede3;--muted: #a8a196;color-scheme:dark}}:root[data-theme=dark]{--paper: #22201d;--card: #2d2a26;--ink: #f2ede3;--muted: #a8a196;color-scheme:dark}*{box-sizing:border-box}html,body{margin:0}body{background:var(--paper);color:var(--ink);font:16px/1.5 var(--font-body);-webkit-tap-highlight-color:transparent;overflow-x:hidden}a{color:inherit;text-decoration:none}h1,h2{font-family:var(--font-title);font-weight:400;margin:0}h2{font-size:18px;margin:4px 0 8px}.view{max-width:560px;margin:0 auto;padding:0 16px calc(96px + env(safe-area-inset-bottom))}.page{display:flex;flex-direction:column;gap:14px}.topbar{display:grid;grid-template-columns:44px 1fr 44px;align-items:center;padding:14px 0 10px}.title{text-align:center;font-size:24px}.icon-btn{display:grid;place-items:center;width:44px;height:44px;font-size:28px}.card{display:block;background:var(--card);border:2px solid var(--ink);border-radius:var(--sketch);box-shadow:3px 3px 0 var(--ink);padding:12px 14px}.groups{display:flex;flex-direction:column;gap:10px;margin-top:14px}.summary strong{font-family:var(--font-title);font-size:30px;font-weight:400;margin:0 4px}.row,.line{display:flex;justify-content:space-between;align-items:baseline;gap:8px}.line{padding:8px 0;border-bottom:1px dashed color-mix(in srgb,var(--ink) 30%,transparent)}.line:last-child{border-bottom:0}.name{font-family:var(--font-title);font-size:20px}.muted,.label{color:var(--muted);font-size:14px}.entry .d{color:var(--muted);font-size:13px;min-width:42px}.entry .n{flex:1;min-width:0;overflow-wrap:anywhere}.entry small{display:block;color:var(--muted);font-size:12px}.bar{height:10px;margin-top:8px;border:2px solid var(--ink);border-radius:6px;overflow:hidden;background:var(--paper)}.bar i{display:block;height:100%;background:var(--sky)}.warn .bar i{background:var(--yellow)}.over .bar i{background:var(--red)}.over .name:after{content:" 超了！";color:var(--red);font-size:14px}.banner{background:var(--yellow);color:#1e1b18;margin-top:10px}.chips{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:8px}.chip{font:inherit;color:var(--ink);background:var(--paper);border:2px solid var(--ink);border-radius:999px;padding:6px 12px}.chip.on{background:var(--red);color:var(--on-red)}.fields{display:flex;flex-direction:column;gap:10px}.fields label{display:flex;flex-direction:column;gap:4px;font-size:14px;color:var(--muted)}.input{font:inherit;font-size:16px;color:var(--ink);background:var(--paper);border:2px solid var(--ink);border-radius:10px;padding:10px 12px;width:100%;min-width:0}.amount{font-family:var(--font-title);font-size:28px}.hint{color:var(--muted);font-size:13px;min-height:1em}.switch{flex-direction:row!important;align-items:center;color:var(--ink)!important}.switch input{width:22px;height:22px;accent-color:var(--red)}.btn{display:block;width:100%;text-align:center;font:inherit;font-family:var(--font-title);font-size:20px;color:var(--ink);background:var(--card);border:2px solid var(--ink);border-radius:var(--sketch);box-shadow:3px 3px 0 var(--ink);padding:10px 14px}.btn:active,.chip:active,.fab:active{transform:translate(2px,2px);box-shadow:1px 1px 0 var(--ink)}.btn.primary{background:var(--red);color:var(--on-red)}.btn.danger{color:var(--red)}.mini{font:inherit;font-size:14px;color:var(--ink);background:var(--paper);border:2px solid var(--ink);border-radius:8px;padding:4px 8px;white-space:nowrap}.bottom{position:fixed;left:0;right:0;bottom:0;display:flex;justify-content:space-around;align-items:center;padding:10px 16px calc(10px + env(safe-area-inset-bottom));background:var(--paper);border-top:2px solid var(--ink);font-family:var(--font-title);font-size:18px}.fab{background:var(--red);color:var(--on-red);border:2px solid var(--ink);border-radius:999px;box-shadow:3px 3px 0 var(--ink);padding:10px 22px;font-size:20px}.table-wrap{overflow-x:auto;padding:8px}table.year{border-collapse:collapse;font-size:13px;white-space:nowrap}table.year th,table.year td{padding:6px 8px;text-align:right;border-bottom:1px dashed color-mix(in srgb,var(--ink) 30%,transparent)}table.year tbody th{text-align:left;font-family:var(--font-title);font-weight:400;position:sticky;left:0;background:var(--card)}.cat-group{padding:8px 0;border-bottom:1px dashed color-mix(in srgb,var(--ink) 30%,transparent)}.cat-row{display:flex;gap:6px;align-items:center;margin:6px 0}.cat-row .name{flex:2;font-size:16px}.cat-row .limit{flex:1}.cat-row.sub{padding-left:18px}.archived{opacity:.5}.login{align-items:center;text-align:center;padding-top:40px}.hero{width:160px;height:160px}.motto{color:var(--muted);margin:0}.who{display:flex;gap:10px;justify-content:center;margin-bottom:10px}.who input{position:absolute;opacity:0}.who span{display:inline-block;border:2px solid var(--ink);border-radius:999px;padding:6px 14px}.who input:checked+span{background:var(--red);color:var(--on-red)}.login form{width:100%;display:flex;flex-direction:column;gap:12px}#status{position:fixed;top:calc(6px + env(safe-area-inset-top));left:50%;transform:translate(-50%);z-index:5;background:var(--yellow);color:#1e1b18;border:2px solid #1e1b18;border-radius:999px;padding:2px 12px;font-size:13px}.toast{position:fixed;left:50%;bottom:calc(90px + env(safe-area-inset-bottom));transform:translate(-50%);z-index:10;background:var(--ink);color:var(--paper);border-radius:12px;padding:10px 16px;max-width:calc(100vw - 32px)}
