:root{--dark:#2c353b;--green:#2fb966;--light:#f4f7f6;--white:#fff;--muted:#66747b;--border:#dbe3df;--danger:#c94a4a;--shadow:0 12px 28px rgba(44,53,59,.08)}*{box-sizing:border-box}body{margin:0;font-family:Inter,system-ui,sans-serif;color:#1f292e;background:var(--light)}button,input,select,textarea{font:inherit}.container{width:min(1180px,calc(100% - 32px));margin:auto}.site-header{background:var(--dark);color:#fff;padding:28px 0}.header-inner,.section-heading,.toolbar,.dialog-heading,.dialog-actions,.report-controls{display:flex;align-items:center;justify-content:space-between;gap:20px}.header-actions{display:flex;align-items:center;gap:14px}h1,h2,h3,p{margin-top:0}h1{margin-bottom:0}.eyebrow{margin-bottom:5px;color:var(--green);font-size:.76rem;font-weight:800;letter-spacing:.12em;text-transform:uppercase}.section-heading p,.auth-card>p{color:var(--muted);margin-bottom:0}.tabs{display:flex;gap:8px;margin:26px 0 18px}.tab{border:0;background:transparent;padding:12px 18px;border-radius:999px;font-weight:750;color:var(--muted)}.tab.active{background:var(--dark);color:#fff}.panel{display:none;background:#fff;border-radius:20px;box-shadow:var(--shadow);padding:28px;margin-bottom:40px}.panel.active{display:block}.button{border:0;border-radius:10px;padding:11px 16px;font-weight:750;text-decoration:none;display:inline-flex;justify-content:center}.button-primary{background:var(--green);color:#fff}.button-secondary{background:#e8eeeb;color:var(--dark)}.site-header .button-secondary{background:rgba(255,255,255,.12);color:#fff}.summary-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin:24px 0}.summary-card{border:1px solid var(--border);border-radius:14px;padding:18px;background:#fbfcfc}.summary-card span{display:block;color:var(--muted);font-size:.88rem;margin-bottom:8px}.summary-card strong{font-size:clamp(1.35rem,3vw,2rem)}.positive strong,.amount-income{color:#239653}.negative strong,.amount-expense{color:var(--danger)}.warning strong{color:#d29222}.toolbar{margin:24px 0 16px;align-items:end;justify-content:flex-start;flex-wrap:wrap}.grow{flex:1 1 280px}.field{display:flex;flex-direction:column;gap:7px}.field label{font-size:.84rem;font-weight:750}input,select,textarea{width:100%;border:1px solid var(--border);border-radius:10px;padding:11px 12px;background:#fff}.table-wrap{overflow-x:auto;border:1px solid var(--border);border-radius:14px}table{width:100%;min-width:920px;border-collapse:collapse}th,td{padding:14px 15px;text-align:left;border-bottom:1px solid var(--border)}th{background:var(--dark);color:#fff;font-size:.82rem}.pill{display:inline-flex;border-radius:999px;padding:5px 9px;font-size:.76rem;font-weight:800}.pill.income,.pill.yes{background:#e1f5e8;color:#1e7a42}.pill.expense,.pill.no{background:#fde9e6;color:#a6423d}.row-actions{display:flex;gap:7px;justify-content:flex-end}.action-button{border:0;border-radius:8px;padding:7px 9px;font-size:.78rem;font-weight:750}.action-edit{background:#e8eeeb}.action-delete{background:#fde9e6;color:var(--danger)}.empty-state{display:none;text-align:center;padding:45px}.empty-state.visible{display:block}.report-controls{justify-content:flex-start;margin-top:22px}dialog{width:min(720px,calc(100% - 24px));border:0;border-radius:18px;padding:0}.dialog-form{padding:24px}.icon-button{border:0;background:none;font-size:1.5rem}.form-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:16px;margin-top:20px}.full{grid-column:1/-1}.dialog-actions{justify-content:flex-end;margin-top:24px}.toast{position:fixed;right:20px;bottom:20px;background:var(--dark);color:#fff;padding:12px 16px;border-radius:10px;opacity:0;transition:.2s}.toast.visible{opacity:1}.auth-body{min-height:100vh;display:grid;place-items:center;padding:20px}.auth-card{width:min(460px,100%);background:#fff;border-radius:20px;box-shadow:var(--shadow);padding:30px}.auth-form{display:grid;gap:16px;margin-top:24px}.error-box{margin-top:18px;padding:12px;border-radius:10px;background:#fde9e6;color:#9d3632}@media(max-width:800px){.header-inner,.section-heading{align-items:flex-start;flex-direction:column}.summary-grid{grid-template-columns:1fr 1fr}}@media(max-width:560px){.summary-grid,.form-grid{grid-template-columns:1fr}.full{grid-column:auto}.panel{padding:20px}.button{width:100%}.header-actions{width:100%}}
