:root{--bg:#f4f6f8;--card:#fff;--text:#111827;--muted:#6b7280;--line:#e5e7eb;--brand:#0f766e;--brand-weak:#ccfbf1;--ok:#16a34a;--warn:#eab308;--over:#dc2626;--radius:16px;--tab-h:64px}@media (prefers-color-scheme:dark){:root{--bg:#0b0f14;--card:#151b23;--text:#f3f4f6;--muted:#9ca3af;--line:#263041;--brand:#2dd4bf;--brand-weak:#123a38}}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body{background:var(--bg);color:var(--text);margin:0;font:16px/1.4 -apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif}body{overscroll-behavior-y:none}.app{max-width:560px;min-height:100dvh;padding:calc(12px + env(safe-area-inset-top)) 14px calc(var(--tab-h) + 24px + env(safe-area-inset-bottom));margin:0 auto}h1{letter-spacing:-.02em;margin:6px 2px 14px;font-size:24px}h2{text-transform:uppercase;letter-spacing:.06em;color:var(--muted);margin:18px 4px 8px;font-size:13px}.card{background:var(--card);border-radius:var(--radius);margin-bottom:12px;padding:14px;box-shadow:0 1px 2px #0000000f}.row{align-items:center;gap:10px;display:flex}.between{justify-content:space-between}.grow{flex:1;min-width:0}.muted{color:var(--muted);font-size:14px}.small{font-size:13px}.big{letter-spacing:-.02em;font-size:30px;font-weight:700}.right{text-align:right}.neg{color:var(--ok)}label.f{color:var(--muted);margin:12px 2px 4px;font-size:13px;display:block}input,select,textarea{width:100%;font:inherit;color:var(--text);background:var(--bg);border:1.5px solid var(--line);border-radius:12px;outline:none;min-height:48px;padding:13px 14px}input:focus,select:focus,textarea:focus{border-color:var(--brand)}input[type=checkbox]{width:22px;height:22px;min-height:0;accent-color:var(--brand);flex:none}.check{align-items:center;gap:10px;margin:12px 2px;font-size:15px;display:flex}button{font:inherit;cursor:pointer;background:var(--brand);color:#fff;border:0;border-radius:12px;min-height:48px;padding:0 18px;font-weight:600}@media (prefers-color-scheme:dark){button{color:#04201d}}button.sec{background:var(--bg);color:var(--text);border:1.5px solid var(--line)}button.ghost{color:var(--brand);background:0 0;min-height:40px;padding:0 8px}button.danger{color:var(--over);border:1.5px solid var(--over);background:0 0}button.full{width:100%;margin-top:14px}button:disabled{opacity:.5}.chips{flex-wrap:wrap;gap:8px;margin:6px 0;display:flex}.chip{background:var(--bg);min-height:44px;color:var(--text);border:1.5px solid var(--line);border-radius:999px;padding:0 14px;font-size:15px;font-weight:500}.chip.on{background:var(--brand);border-color:var(--brand);color:#fff}@media (prefers-color-scheme:dark){.chip.on{color:#04201d}}.chip.sug:not(.on){border-color:var(--brand);border-style:dashed}.bar{background:var(--line);border-radius:6px;height:10px;margin-top:8px;overflow:hidden}.bar>i{background:var(--ok);border-radius:6px;height:100%;display:block}.bar.warn>i{background:var(--warn)}.bar.over>i{background:var(--over)}.pill{background:var(--line);color:var(--muted);border-radius:999px;padding:2px 8px;font-size:12px;font-weight:600;display:inline-block}.pill.warn{color:#854d0e;background:#fef9c3}.pill.over{color:#991b1b;background:#fee2e2}.pill.pace{color:#9a3412;background:#ffedd5}.badge{background:var(--over);color:#fff;text-align:center;border-radius:999px;min-width:20px;height:20px;padding:0 6px;font-size:12px;font-weight:700;line-height:20px}.tabs{background:var(--card);border-top:1px solid var(--line);padding-bottom:env(safe-area-inset-bottom);z-index:5;justify-content:center;display:flex;position:fixed;bottom:0;left:0;right:0}.tabs .in{width:100%;max-width:560px;display:flex}.tab{color:var(--muted);min-height:var(--tab-h);background:0 0;border-radius:0;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:2px;padding:0;font-size:11px;font-weight:600;display:flex;position:relative}.tab svg{width:24px;height:24px}.tab.on{color:var(--brand)}.tab .badge{position:absolute;top:6px;left:calc(50% + 6px)}.tab.add .plus{background:var(--brand);color:#fff;border-radius:50%;place-items:center;width:48px;height:48px;margin-top:-14px;display:grid;box-shadow:0 4px 10px #0f766e59}.plus svg{width:26px;height:26px}.tx{border-bottom:1px solid var(--line);width:100%;color:inherit;text-align:left;background:0 0;border-radius:0;align-items:center;gap:10px;padding:12px 0;font-weight:400;display:flex}.tx:last-child{border-bottom:0}.amt{font-variant-numeric:tabular-nums;font-weight:600}.sheet-bg{z-index:20;background:#00000073;justify-content:center;align-items:flex-end;display:flex;position:fixed;inset:0}.sheet{background:var(--card);width:100%;max-width:560px;max-height:92dvh;padding:16px 16px calc(24px + env(safe-area-inset-bottom));border-radius:22px 22px 0 0;overflow:auto}.toast{left:50%;bottom:calc(var(--tab-h) + 20px + env(safe-area-inset-bottom));color:#fff;z-index:30;background:#111827;border-radius:999px;padding:12px 18px;font-size:15px;position:fixed;transform:translate(-50%);box-shadow:0 6px 20px #0000004d}.toast.err{background:var(--over)}.err{color:var(--over);margin:8px 2px;font-size:14px}.center{flex-direction:column;justify-content:center;max-width:420px;min-height:100dvh;margin:0 auto;padding:24px;display:flex}.logo{border-radius:18px;width:72px;height:72px;margin-bottom:16px}.monthbar{justify-content:space-between;align-items:center;margin-bottom:10px;display:flex}.monthbar button{width:44px;padding:0}.monthbar .m{font-size:18px;font-weight:700}.menu button{background:var(--card);width:100%;color:var(--text);text-align:left;border-radius:14px;justify-content:space-between;align-items:center;min-height:56px;margin-bottom:8px;display:flex}table.prev{border-collapse:collapse;width:100%;font-size:13px}table.prev td,table.prev th{border-bottom:1px solid var(--line);text-align:left;padding:6px 4px}.hero{color:#fff;background:linear-gradient(135deg,#0f766e,#115e59)}.hero .muted{color:#ccfbf1}.hero .bar{background:#ffffff40}.hero .bar>i{background:#fff}.hero .bar.warn>i{background:#fde047}.hero .bar.over>i{background:#fca5a5}.empty{text-align:center;color:var(--muted);padding:30px 10px}input[type=date],input[type=month],input[type=time]{appearance:none;box-sizing:border-box;text-align:left;width:100%;min-width:0;max-width:100%;display:block}input[type=date]::-webkit-date-and-time-value{text-align:left;margin:0}input[type=month]::-webkit-date-and-time-value{text-align:left;margin:0}input[type=time]::-webkit-date-and-time-value{text-align:left;margin:0}
