:root{--bg:#f4f5f7;--surface:#fff;--text:#111827;--muted:#6b7280;--border:#e5e7eb;--accent:#2563eb;--good:#059669;--warn:#d97706;--bad:#dc2626;--good-bg:#d1fae5;--warn-bg:#fef3c7;--bad-bg:#fee2e2;--accent-bg:#dbeafe;--muted-bg:#f3f4f6;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial;--bg:#0b0f17;--surface:#151b26;--text:#e5e7eb;--muted:#9ca3af;--border:#263041;--accent:#60a5fa;--good:#34d399;--warn:#fbbf24;--bad:#f87171;--good-bg:#06372a;--warn-bg:#3d2a06;--bad-bg:#3f1111;--accent-bg:#102a52;--muted-bg:#1f2735}}*{box-sizing:border-box}body{background:var(--bg);color:var(--text);-webkit-tap-highlight-color:transparent;margin:0;font-family:-apple-system,BlinkMacSystemFont,Pretendard,Apple SD Gothic Neo,sans-serif;font-size:15px}.app{max-width:480px;padding:0 16px calc(96px + env(safe-area-inset-bottom));margin:0 auto}header{justify-content:space-between;align-items:baseline;padding:20px 0 8px;display:flex}h1{margin:0;font-size:22px}h2{color:var(--muted);margin:20px 0 8px;font-size:14px;font-weight:600}.muted{color:var(--muted);font-size:13px}.empty{color:var(--muted);text-align:center;padding:24px 0}.error{color:var(--bad);background:var(--bad-bg);border-radius:8px;padding:8px 12px}.card,.todo{background:var(--surface);border:1px solid var(--border);border-radius:12px;flex-direction:column;gap:4px;margin-bottom:8px;padding:12px 14px;display:flex}.card{cursor:pointer}.card.dim{opacity:.6}.card a{color:var(--accent);font-size:13px}.row{justify-content:space-between;align-items:center;gap:8px;display:flex}.todo{border-left:4px solid var(--accent)}.todo-spend{border-left-color:var(--warn)}.todo-cancel{border-left-color:var(--good)}.badge{white-space:nowrap;border-radius:999px;padding:2px 8px;font-size:12px}.badge-spending,.tone-warn{background:var(--warn-bg);color:var(--warn)}.badge-awaiting{background:var(--accent-bg);color:var(--accent)}.badge-locked,.badge-cancelled,.tone-muted{background:var(--muted-bg);color:var(--muted)}.badge-cancellable,.tone-good{background:var(--good-bg);color:var(--good)}.progress{background:var(--muted-bg);border-radius:6px;height:22px;position:relative;overflow:hidden}.progress div{background:var(--warn-bg);height:100%}.progress span{align-items:center;padding:0 8px;font-size:12px;display:flex;position:absolute;inset:0}details summary{color:var(--muted);cursor:pointer;padding:12px 0;font-size:14px}button{font:inherit;background:var(--accent);color:#fff;cursor:pointer;border:0;border-radius:10px;padding:10px 16px}button.ghost{color:var(--accent);border:1px solid var(--border);background:0 0}button.danger{background:var(--bad-bg);color:var(--bad);margin-right:auto}.card button.ghost{align-self:flex-start;padding:6px 12px;font-size:13px}.fab{right:max(16px,50% - 224px);bottom:calc(76px + env(safe-area-inset-bottom));border-radius:50%;width:56px;height:56px;padding:0;font-size:28px;position:fixed;box-shadow:0 4px 12px #0003}nav{background:var(--surface);border-top:1px solid var(--border);padding-bottom:env(safe-area-inset-bottom);justify-content:center;display:flex;position:fixed;bottom:0;left:0;right:0}nav button{max-width:160px;color:var(--muted);background:0 0;border-radius:0;flex:1;padding:16px 0}nav button.active{color:var(--accent);font-weight:700}.sheet-backdrop{z-index:10;background:#0006;justify-content:center;align-items:flex-end;display:flex;position:fixed;inset:0}.sheet{background:var(--surface);border-radius:16px 16px 0 0;width:100%;max-width:480px;max-height:90dvh;padding:4px 16px 0;overflow-y:auto}.sheet h2{color:var(--text);font-size:18px}form label{flex-direction:column;gap:4px;margin-bottom:12px;display:flex}form label span{color:var(--muted);font-size:13px}input,select,textarea{font:inherit;border:1px solid var(--border);background:var(--bg);color:var(--text);border-radius:8px;width:100%;padding:10px 12px;font-size:16px}.actions{background:var(--surface);padding:8px 0 calc(16px + env(safe-area-inset-bottom));justify-content:flex-end;gap:8px;display:flex;position:sticky;bottom:0}
