:root{--text:#6b6375;--text-h:#08060d;--bg:#fff;--surface:#fff;--border:#e5e4e7;--accent:#aa3bff;--accent-bg:#aa3bff1a;--primary:#7c1fd6;--on-primary:#fff;--danger:#b42318;--danger-bg:#b4231814;--success:#067647;--shadow:#0000001a 0 10px 15px -3px, #0000000d 0 4px 6px -2px;--sans:system-ui, "Segoe UI", Roboto, sans-serif;--heading:system-ui, "Segoe UI", Roboto, sans-serif;font:16px/145% var(--sans);letter-spacing:.18px;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark;color:var(--text);background:var(--bg);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial;--text:#9ca3af;--text-h:#f3f4f6;--bg:#16171d;--surface:#1c1d25;--border:#2e303a;--accent:#c084fc;--accent-bg:#c084fc26;--primary:#c084fc;--on-primary:#16171d;--danger:#f97066;--danger-bg:#f970661f;--success:#47cd89;--shadow:#0006 0 10px 15px -3px, #00000040 0 4px 6px -2px}}*{box-sizing:border-box}body{margin:0}[hidden]{display:none!important}h1,h2{font-family:var(--heading);color:var(--text-h);font-weight:600}h1{letter-spacing:-.6px;margin:0;font-size:28px}h2{letter-spacing:-.2px;margin:0 0 8px;font-size:20px;line-height:118%}p{margin:0}#app{text-align:left;max-width:640px;margin:0 auto;padding:16px}.app-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px 16px;margin-bottom:16px;display:flex}.app-user{flex-wrap:wrap;align-items:center;gap:8px 12px;min-width:0;display:flex}#user{overflow-wrap:anywhere;font-size:14px}.card{background:var(--surface);border:1px solid var(--border);border-radius:12px;margin-bottom:16px;padding:16px}.hint{margin-bottom:8px;font-size:14px}.field{gap:4px;margin-bottom:12px;display:grid}label{color:var(--text-h);font-size:14px;font-weight:600}input,select{width:100%;min-height:44px;font:inherit;color:var(--text-h);background:var(--bg);border:1px solid var(--border);border-radius:8px;padding:8px 12px;font-size:16px}input:focus-visible,select:focus-visible,button:focus-visible,summary:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.field-error{color:var(--danger);font-size:14px}.field-error:empty{display:none}.status{margin-bottom:8px;font-size:15px}.status:empty{display:none}.status[data-tone=error]{color:var(--danger)}.status[data-tone=success]{color:var(--success)}button{min-height:44px;font:inherit;color:var(--text-h);border:1px solid var(--border);cursor:pointer;background:0 0;border-radius:8px;padding:0 16px;font-weight:600}button:disabled{opacity:.5;cursor:not-allowed}.btn-primary{color:var(--on-primary);background:var(--primary);border-color:var(--primary)}.btn-secondary{color:var(--text-h);border-color:var(--border);background:0 0}.btn-danger{color:var(--danger);border-color:var(--danger);background:0 0}.btn-danger-solid{color:#fff;background:var(--danger);border-color:var(--danger)}.btn-block{width:100%}.button-row{flex-wrap:wrap;gap:8px;display:flex}.auth-card{max-width:420px;margin:8vh auto 0}.auth-card h1{text-align:center;margin-bottom:20px}.auth-card .button-row{margin-top:4px}.auth-card .button-row button{flex:140px}.expense-list{gap:8px;margin:0;padding:0;list-style:none;display:grid}.expense-row{border:1px solid var(--border);border-radius:10px;padding:12px}.expense-primary{flex-wrap:wrap;align-items:baseline;gap:4px 12px;display:flex}.expense-amount{color:var(--text-h);font-size:18px;font-weight:700}.expense-category{color:var(--text-h);font-weight:600}.expense-meta,.expense-description{overflow-wrap:anywhere;font-size:14px}.expense-row .button-row{margin-top:8px}.delete-confirmation{background:var(--danger-bg);border-radius:8px;margin-top:8px;padding:12px}.delete-confirmation p{color:var(--text-h);overflow-wrap:anywhere;margin-bottom:8px}.reference-data summary{cursor:pointer;color:var(--text-h);align-items:center;min-height:44px;font-weight:600;display:flex}.reference-data ul{margin:0 0 12px;padding-left:20px}@media (width<=480px){#app{padding:12px}h1{font-size:24px}.card{padding:12px}.button-row button{flex:120px}}
