:root{--bg:#0b1220;--bg-elev:#121b2e;--bg-elev-2:#18243c;--border:#243149;--text:#eaf2ff;--text-dim:#9fb2cc;--accent:#38bdf8;--accent-deep:#0ea5e9;--accent-soft:rgba(56,189,248,.14);--good:#34d399;--danger:#f87171;--radius:16px;--shadow:0 10px 30px rgba(0,0,0,.35)}*{box-sizing:border-box}body,html{margin:0;padding:0}body{background:radial-gradient(1200px 600px at 50% -10%,#14233f 0,var(--bg) 55%);color:var(--text);font-family:ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial,sans-serif;min-height:100dvh;-webkit-font-smoothing:antialiased}.wrap{max-width:520px;margin:0 auto;padding:24px 18px 64px}.topbar{justify-content:space-between;margin-bottom:22px}.brand,.topbar{display:flex;align-items:center}.brand{gap:10px;font-weight:700;letter-spacing:.2px}.brand .drop{font-size:22px}.user{display:flex;align-items:center;gap:10px;color:var(--text-dim);font-size:13px}.avatar{width:28px;height:28px;border-radius:50%;border:1px solid var(--border)}button{font:inherit;cursor:pointer;border-radius:12px;border:1px solid var(--border);background:var(--bg-elev);color:var(--text);padding:10px 14px;transition:transform .05s ease,background .15s ease,border-color .15s ease}button:hover{border-color:var(--accent)}button:active{transform:scale(.97)}button.primary{background:linear-gradient(180deg,var(--accent),var(--accent-deep));border-color:transparent;color:#04121d;font-weight:700}button.ghost{background:transparent}button.link{background:none;border:none;color:var(--text-dim);padding:4px}button.link:hover{color:var(--accent)}.card{background:var(--bg-elev);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);padding:22px}.progress-card{display:flex;flex-direction:column;align-items:center;gap:6px;margin-bottom:18px}.ring-wrap{position:relative;width:220px;height:220px}.ring-center{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px}.ring-total{font-size:38px;font-weight:800;line-height:1}.ring-unit{font-size:14px;color:var(--text-dim)}.ring-goal{margin-top:6px;font-size:13px;color:var(--text-dim)}.ring-pct{font-size:12px;color:var(--accent);font-weight:700}.section-title{font-size:12px;text-transform:uppercase;letter-spacing:1px;color:var(--text-dim);margin:22px 4px 10px}.quick-grid{display:grid;grid-template-columns:repeat(3,1fr);grid-gap:10px;gap:10px}.quick-grid button{padding:14px 6px;font-weight:600;display:flex;flex-direction:column;gap:2px}.quick-grid .q-amt{font-size:16px}.quick-grid .q-unit{font-size:11px;color:var(--text-dim)}.custom-row{display:flex;gap:10px;margin-top:12px}input,select{font:inherit;background:var(--bg-elev-2);border:1px solid var(--border);color:var(--text);border-radius:12px;padding:11px 12px;width:100%}input:focus,select:focus{outline:none;border-color:var(--accent)}.custom-row input{flex:2 1}.custom-row select{flex:1 1}.custom-row button{flex-shrink:0}.entries{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}.entry{display:flex;align-items:center;justify-content:space-between;background:var(--bg-elev);border:1px solid var(--border);border-radius:12px;padding:12px 14px}.entry-main{display:flex;flex-direction:column}.entry-amt{font-weight:600}.entry-time{font-size:12px}.empty,.entry-time{color:var(--text-dim)}.empty{text-align:center;padding:18px;font-size:14px}.settings-form{gap:14px}.field,.settings-form{display:flex;flex-direction:column}.field{gap:6px}.field label{font-size:13px;color:var(--text-dim)}.field-row{display:flex;gap:10px}.signin{min-height:70dvh;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;gap:16px}.signin .big-drop{font-size:64px}.signin h1{margin:0;font-size:28px}.signin p{color:var(--text-dim);margin:0 0 8px;max-width:320px}.gbtn{display:inline-flex;align-items:center;gap:10px;background:#fff;color:#1f2937;font-weight:600;border:none;padding:12px 20px}.gbtn:hover{filter:brightness(.96)}.tabs{display:flex;gap:6px;background:var(--bg-elev);border:1px solid var(--border);border-radius:12px;padding:4px;margin-bottom:18px}.tab{flex:1 1;background:transparent;border:none;color:var(--text-dim);padding:9px 0;font-weight:600;border-radius:9px}.tab:hover{color:var(--text)}.tab.active{background:var(--accent-soft);color:var(--accent)}.history-summary{display:flex;justify-content:space-around;padding:16px;margin-bottom:16px}.hs-item{display:flex;flex-direction:column;align-items:center;gap:2px}.hs-num{font-size:22px;font-weight:800}.hs-label{font-size:11px;color:var(--text-dim);text-transform:uppercase;letter-spacing:.5px}.history-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px}.history-row{background:var(--bg-elev);border:1px solid var(--border);border-radius:12px;padding:12px 14px}.history-head{display:flex;align-items:baseline;justify-content:space-between;margin-bottom:8px}.history-date{font-size:14px;font-weight:600}.history-check{color:var(--good)}.history-total{font-size:13px;color:var(--text-dim)}.history-bar{height:8px;border-radius:6px;background:var(--bg-elev-2);overflow:hidden}.history-fill{height:100%;border-radius:6px;background:linear-gradient(90deg,var(--accent),var(--accent-deep));transition:width .3s ease}.history-fill.met{background:linear-gradient(90deg,var(--good),#10b981)}.toast{position:fixed;left:50%;bottom:24px;transform:translateX(-50%);background:var(--bg-elev-2);border:1px solid var(--border);color:var(--text);padding:10px 16px;border-radius:12px;box-shadow:var(--shadow);font-size:14px}