:root{--bg: #1a1b26;--surface: #1f2335;--surface-2: #292e42;--border: #3b4261;--text: #c0caf5;--muted: #737aa2;--accent: #7aa2f7;--accent-2: #bb9af7;--accent-contrast: #1a1b26;--red: #f7768e;--green: #9ece6a;--shadow: 0 4px 14px rgba(0, 0, 0, .35);--radius: 20px;--cat-groceries: #9ece6a;--cat-rent: #bb9af7;--cat-dates: #f7768e;--cat-transportation: #e0af68;--cat-utilities: #7aa2f7;--cat-other: #565f89;color-scheme:dark}:root[data-theme=day]{--bg: #e1e2e7;--surface: #f4f4f9;--surface-2: #d5d8e4;--border: #c4c8da;--text: #343b58;--muted: #6172b0;--accent: #2e7de9;--accent-2: #9854f1;--accent-contrast: #ffffff;--red: #f52a65;--green: #587539;--shadow: 0 4px 14px rgba(52, 59, 88, .12);--cat-groceries: #587539;--cat-rent: #9854f1;--cat-dates: #f52a65;--cat-transportation: #8c6c3e;--cat-utilities: #2e7de9;--cat-other: #848cb5;color-scheme:light}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font-family:Segoe UI,system-ui,-apple-system,sans-serif;transition:background .2s,color .2s}h1{font-size:1.6rem;margin:0 0 4px}h2{font-size:1.05rem;margin:0 0 12px}code{background:var(--surface-2);padding:2px 6px;border-radius:6px;font-size:.85em}.muted{color:var(--muted)}.small{font-size:.82rem}.red{color:var(--red)}.green{color:var(--green)}.content{max-width:1100px;margin:0 auto;padding:24px 20px 60px}.page>*+*{margin-top:18px}.page.narrow{max-width:520px;margin:0 auto}.page-head{display:flex;align-items:baseline;justify-content:space-between;gap:12px;flex-wrap:wrap}.nav{display:flex;align-items:center;gap:24px;padding:14px 24px;background:var(--surface);border-bottom:1px solid var(--border);position:sticky;top:0;z-index:10;flex-wrap:wrap}.nav-brand{display:flex;align-items:center;gap:8px;font-weight:700;color:var(--accent)}.nav-links{display:flex;gap:6px;flex:1;flex-wrap:wrap}.nav-link{display:flex;align-items:center;gap:6px;padding:8px 14px;border-radius:12px;color:var(--muted);text-decoration:none;font-size:.92rem;transition:background .15s,color .15s}.nav-link:hover{background:var(--surface-2);color:var(--text)}.nav-link.active{background:color-mix(in srgb,var(--accent) 15%,transparent);color:var(--accent)}.nav-user{display:flex;align-items:center;gap:10px}.nav-email{color:var(--muted);font-size:.85rem}.card{background:var(--surface);border-radius:var(--radius);padding:20px;box-shadow:var(--shadow)}.card-head{display:flex;justify-content:space-between;align-items:baseline}.card-head a{text-decoration:none}.card-head a:hover{color:var(--accent)}.stat-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,220px),1fr));gap:16px}.stat{display:flex;flex-direction:column;gap:8px}.stat-label{color:var(--muted);font-size:.88rem}.stat-value{font-size:1.7rem;font-weight:700}.budget-edit{display:flex;gap:8px}.budget-edit input{width:120px}.link-btn{background:none;border:none;color:var(--muted);cursor:pointer;font-size:.8rem;padding:0}.link-btn:hover{color:var(--accent)}.progress-track{height:14px;background:var(--surface-2);border-radius:7px;overflow:hidden}.progress-fill{height:100%;background:linear-gradient(90deg,var(--accent),var(--accent-2));border-radius:7px;transition:width .4s ease}.progress-fill.over{background:linear-gradient(90deg,#db4b4b,var(--red))}.chart-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,320px),1fr));gap:16px}.legend{display:flex;flex-wrap:wrap;gap:10px 16px;margin-top:8px}.legend-item{display:flex;align-items:center;gap:6px;font-size:.84rem;color:var(--muted)}.legend-dot{width:10px;height:10px;border-radius:50%;display:inline-block}.expense-list{list-style:none;margin:0;padding:0}.expense-row{display:flex;align-items:center;gap:14px;padding:12px 4px;border-bottom:1px solid var(--border)}.expense-row:last-child{border-bottom:none}.cat-dot{width:12px;height:12px;border-radius:50%;flex-shrink:0}.expense-info{display:flex;flex-direction:column;gap:2px;flex:1;min-width:0}.expense-desc{font-weight:600}.expense-amount{font-weight:700;white-space:nowrap}.month-head{margin:22px 0 10px;color:var(--accent)}.form{display:flex;flex-direction:column;gap:16px}.segmented{display:flex;background:var(--surface-2);border-radius:12px;padding:4px;gap:4px}.segmented button{flex:1;border:none;background:transparent;color:var(--muted);padding:10px;border-radius:9px;font-size:.95rem;font-weight:600;cursor:pointer}.segmented button.active{background:var(--accent);color:var(--accent-contrast)}.segmented button.active.refund{background:var(--green);color:var(--bg)}.refund-badge{display:inline-block;margin-left:8px;padding:1px 8px;border-radius:999px;font-size:.7rem;font-weight:700;color:var(--green);background:color-mix(in srgb,var(--green) 14%,transparent);vertical-align:middle}.paused-badge{display:inline-block;margin-left:8px;padding:1px 8px;border-radius:999px;font-size:.7rem;font-weight:700;color:var(--muted);background:var(--surface-2);vertical-align:middle}.row-actions{display:flex;gap:2px;flex-shrink:0}.expense-row.paused{opacity:.55}.form-row{display:flex;gap:16px}.form-row>label{flex:1;min-width:0}.toggle-row{flex-direction:row;align-items:center;justify-content:space-between;gap:12px;background:var(--surface-2);padding:12px 14px;border-radius:12px;color:var(--text);font-weight:600;cursor:pointer;-webkit-user-select:none;user-select:none}.toggle-row input{display:none}.toggle-row .switch{width:46px;height:26px;border-radius:999px;background:var(--border);position:relative;flex-shrink:0;transition:background .15s}.toggle-row .switch:after{content:"";position:absolute;top:3px;left:3px;width:20px;height:20px;border-radius:50%;background:#fff;transition:transform .15s}.toggle-row input:checked+.switch{background:var(--accent)}.toggle-row input:checked+.switch:after{transform:translate(20px)}label{display:flex;flex-direction:column;gap:6px;font-size:.9rem;color:var(--muted)}input,select{background:var(--surface-2);border:1px solid transparent;border-radius:12px;padding:12px 14px;color:var(--text);font-size:1rem;outline:none}input:focus,select:focus{border-color:var(--accent)}.form-actions{display:flex;gap:10px;flex-wrap:wrap}.btn{border:none;border-radius:12px;padding:12px 18px;font-size:.95rem;font-weight:600;cursor:pointer;transition:filter .15s,background .15s}.btn:disabled{opacity:.6;cursor:default}.btn-primary{background:var(--accent);color:var(--accent-contrast)}.btn-primary:hover:not(:disabled){filter:brightness(1.1)}.btn-ghost{background:transparent;color:var(--muted)}.btn-ghost:hover{color:var(--accent)}.btn-danger{background:transparent;color:var(--red)}.btn-danger:hover{background:color-mix(in srgb,var(--red) 12%,transparent)}.btn-sm{padding:6px 10px;font-size:.85rem}.theme-toggle{white-space:nowrap}.error{background:color-mix(in srgb,var(--red) 12%,transparent);color:var(--red);padding:10px 14px;border-radius:10px;font-size:.9rem}.success{background:color-mix(in srgb,var(--green) 12%,transparent);color:var(--green);padding:10px 14px;border-radius:10px;font-size:.9rem}.login-wrap{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:20px;position:relative}.login-theme-toggle{position:absolute;top:16px;right:16px}.login-card{width:100%;max-width:400px;display:flex;flex-direction:column;gap:16px;text-align:center}.login-card label{text-align:left}.login-logo{font-size:3rem}.login-card h1{margin:0}.login-card .muted{margin:-10px 0 6px}.receipt-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:16px}.receipt-card{display:flex;flex-direction:column;gap:6px;align-items:flex-start}.receipt-card .btn{margin-top:10px}.receipt-icon{font-size:2rem}.tabbar{display:none}@media (max-width: 720px){.nav{gap:10px;padding:10px 14px}.nav-links,.nav-email{display:none}.nav-user{margin-left:auto}.nav .btn{padding:8px 10px;font-size:.85rem}.content{padding:16px 12px calc(86px + env(safe-area-inset-bottom))}h1{font-size:1.3rem}.card{padding:16px;border-radius:16px}.stat-value{font-size:1.45rem}.stat-grid,.chart-grid{gap:12px}.page>*+*{margin-top:14px}.expense-row{gap:10px}.expense-amount{font-size:.95rem}.login-theme-toggle{top:max(10px,env(safe-area-inset-top))}.tabbar{display:flex;position:fixed;bottom:0;left:0;right:0;z-index:20;background:var(--surface);border-top:1px solid var(--border);padding:6px 8px calc(6px + env(safe-area-inset-bottom));box-shadow:0 -4px 14px #00000026}.tab-link{flex:1;display:flex;flex-direction:column;align-items:center;gap:2px;padding:6px 4px;border-radius:12px;color:var(--muted);text-decoration:none;font-size:.7rem;font-weight:600}.tab-link.active{color:var(--accent);background:color-mix(in srgb,var(--accent) 12%,transparent)}.tab-icon{font-size:1.3rem}}@media (pointer: coarse){.btn{min-height:44px}input,select{min-height:46px}}
