:root{--ground:#fff;--surface:#fff;--surface-2:#f1f4f2;--line:#cbd3cd;--line-soft:#e3e8e4;--text:#101a22;--text-2:#43535d;--text-3:#6c7c85;--jade:#24705f;--jade-soft:#e4f1ec;--jade-line:#9cc9bc;--amber:#865d11;--amber-soft:#f8efda;--rust:#9c3b2a;--rust-soft:#f9e6e2;--f-body:"Noto Sans TC", "PingFang TC", -apple-system, system-ui, sans-serif;--f-mono:ui-monospace, "SF Mono", Menlo, monospace;--nav-h:58px;--safe-b:env(safe-area-inset-bottom,0px)}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--ground:#0d151a;--surface:#141f26;--surface-2:#1b2831;--line:#2a3a44;--line-soft:#22303a;--text:#dfe6e4;--text-2:#a3b2b4;--text-3:#7c8d91;--jade:#5fb39c;--jade-soft:#14302b;--jade-line:#2f5e53;--amber:#d0a252;--amber-soft:#2e2617;--rust:#d98771;--rust-soft:#331c18}}:root[data-theme=dark]{--ground:#0d151a;--surface:#141f26;--surface-2:#1b2831;--line:#2a3a44;--line-soft:#22303a;--text:#dfe6e4;--text-2:#a3b2b4;--text-3:#7c8d91;--jade:#5fb39c;--jade-soft:#14302b;--jade-line:#2f5e53;--amber:#d0a252;--amber-soft:#2e2617;--rust:#d98771;--rust-soft:#331c18}*{box-sizing:border-box}html,body,#root{height:100%}body{background:var(--ground);color:var(--text);font-family:var(--f-body);-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent;overscroll-behavior-y:none;margin:0;font-size:16px;line-height:1.6}button,input,select,textarea{font:inherit;color:inherit}button{cursor:pointer;background:0 0;border:none}:focus-visible{outline:2px solid var(--jade);outline-offset:2px}.num{font-family:var(--f-mono);font-variant-numeric:tabular-nums}.shell{flex-direction:column;min-height:100%;display:flex}.page{padding:16px 16px calc(var(--nav-h) + var(--safe-b) + 24px);flex:1;width:100%;max-width:720px;margin:0 auto}.page-head{justify-content:space-between;align-items:baseline;gap:12px;margin-bottom:14px;display:flex}.page-head h1{letter-spacing:.01em;margin:0;font-size:21px;font-weight:700}.page-head .sub{color:var(--text-3);font-size:13px}.nav{height:calc(var(--nav-h) + var(--safe-b));padding-bottom:var(--safe-b);background:var(--surface);border-top:1px solid var(--line);z-index:20;grid-template-columns:repeat(4,1fr);display:grid;position:fixed;bottom:0;left:0;right:0}.nav a{color:var(--text-3);flex-direction:column;justify-content:center;align-items:center;gap:2px;font-size:11px;text-decoration:none;display:flex}.nav a.on{color:var(--jade)}.nav a svg{width:21px;height:21px}.card{background:var(--surface);border:1px solid var(--line-soft);border-radius:10px;overflow:hidden}.row{border-bottom:1px solid var(--line-soft);text-align:left;grid-template-columns:1fr auto;gap:4px 12px;width:100%;padding:11px 14px;display:grid}.row:last-child{border-bottom:none}a.row,button.row{color:inherit;text-decoration:none}.row:active{background:var(--surface-2)}.row .t{grid-area:1/1;font-size:15px;font-weight:500}.row .s{color:var(--text-3);text-overflow:ellipsis;white-space:nowrap;grid-area:2/1;font-size:12.5px;overflow:hidden}.row .a{text-align:right;grid-area:1/2/span 2;align-self:center;font-size:16px}.row .a.in{color:var(--jade)}.row .a.tr{color:var(--text-3)}.daygroup{margin-bottom:14px}.daygroup>h2{color:var(--text-3);letter-spacing:.04em;justify-content:space-between;margin:0 4px 6px;font-size:12px;font-weight:600;display:flex}.empty{text-align:center;color:var(--text-3);padding:48px 20px;font-size:14px}.chips{flex-wrap:wrap;gap:7px;display:flex}.chip{border:1px solid var(--line);background:var(--surface);color:var(--text-2);white-space:nowrap;border-radius:999px;padding:7px 13px;font-size:14px}.chip.on{background:var(--jade-soft);border-color:var(--jade-line);color:var(--jade);font-weight:500}.fab{right:18px;bottom:calc(var(--nav-h) + var(--safe-b) + 18px);background:var(--jade);color:#fff;z-index:25;border-radius:50%;place-items:center;width:56px;height:56px;font-size:28px;line-height:1;display:grid;position:fixed;box-shadow:0 4px 14px #0000002e}.sheet-bg{z-index:30;background:#00000059;position:fixed;inset:0}.sheet{z-index:31;background:var(--ground);padding:14px 16px calc(14px + var(--safe-b));border-top:1px solid var(--line);border-radius:16px 16px 0 0;flex-direction:column;max-width:720px;max-height:92dvh;margin:0 auto;display:flex;position:fixed;bottom:0;left:0;right:0;box-shadow:0 -8px 32px #101a2229}.sheet-mid{flex:auto;min-height:0;margin-bottom:12px;overflow-y:auto}.sheet-top,.keypad{flex:none}.sheet-bar{flex:none;justify-content:space-between;align-items:center;padding-bottom:10px;font-size:15px;font-weight:600;display:flex}.sheet-x{width:34px;height:34px;color:var(--text-3);border-radius:50%;place-items:center;margin:-6px -8px -6px 0;font-size:15px;display:grid}.sheet-x:active{background:var(--surface-2)}.amount-display{font-family:var(--f-mono);text-align:right;letter-spacing:-.02em;padding:2px 4px 10px;font-size:34px;font-weight:500}.amount-display.zero{color:var(--text-3)}.field{margin-bottom:12px}.field-pair{grid-template-columns:1fr 1fr;gap:10px;display:grid}.field>label{color:var(--text-3);letter-spacing:.04em;margin-bottom:6px;font-size:12px;display:block}.field input[type=text],.field input[type=date],.field select{border:1px solid var(--line);background:var(--surface);border-radius:8px;width:100%;padding:10px 12px}.keypad{grid-template-columns:1fr 84px;gap:7px;display:grid}.keypad .keys{grid-template-columns:repeat(3,1fr);gap:7px;display:grid}.keypad button{background:var(--surface);border:1px solid var(--line-soft);height:52px;font-size:20px;font-family:var(--f-mono);border-radius:9px}.keypad button:active{background:var(--surface-2)}.keypad .save{background:var(--jade);border-color:var(--jade);color:#fff;height:auto;font-family:var(--f-body);font-size:15px;font-weight:600}.keypad .save:disabled{opacity:.4}.seg{gap:6px;margin-bottom:14px;display:flex}.seg button{border:1px solid var(--line);background:var(--surface);color:var(--text-2);border-radius:8px;flex:1;padding:9px;font-size:14px}.seg button.on{background:var(--jade-soft);border-color:var(--jade-line);color:var(--jade);font-weight:600}.banner{background:var(--amber-soft);border:1px solid var(--line-soft);border-left:3px solid var(--amber);border-radius:8px;margin-bottom:14px;padding:12px 14px;font-size:13.5px}.banner.bad{background:var(--rust-soft);border-left-color:var(--rust)}.banner b{margin-bottom:3px;display:block}.stat-strip{background:var(--line-soft);border:1px solid var(--line-soft);border-radius:10px;grid-template-columns:repeat(3,minmax(0,1fr));gap:1px;margin-bottom:16px;display:grid;overflow:hidden}.stat-strip div{background:var(--surface);min-width:0;padding:11px 10px}.stat-strip .v{font-family:var(--f-mono);font-variant-numeric:tabular-nums;letter-spacing:-.02em;white-space:nowrap;text-overflow:ellipsis;font-size:clamp(14px,4.4vw,19px);font-weight:500;overflow:hidden}.stat-strip .k{color:var(--text-3);font-size:11.5px}@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}.btn-primary{background:var(--jade);color:#fff;border-radius:10px;flex:none;width:100%;padding:14px;font-size:15px;font-weight:600}.btn-primary:disabled{opacity:.45}.btn-danger{border:1px solid var(--rust);background:var(--rust-soft);width:100%;color:var(--rust);border-radius:9px;margin-top:8px;padding:11px;font-size:14px;font-weight:500}.btn-danger:disabled{opacity:.4}.hint{color:var(--text-3);margin:6px 0 0;font-size:12px;line-height:1.6}.banner.ok{background:var(--jade-soft);border-left-color:var(--jade)}.add-btn{border:1px solid var(--jade-line);background:var(--jade-soft);color:var(--jade);border-radius:999px;padding:6px 13px;font-size:13px;font-weight:600}.link-btn{color:var(--jade);letter-spacing:0;font-size:12px;font-weight:600}
