:root{--bg:#f3f4f6;--card:#fff;--text:#111827;--muted:#6b7280;--line:#e5e7eb;--primary:#111827;--danger:#b91c1c}
*{box-sizing:border-box}html{font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;background:var(--bg);color:var(--text)}
body{margin:0;min-height:100vh}.shell{width:min(1120px,calc(100% - 28px));margin:0 auto}.topbar{position:sticky;top:0;z-index:10;background:rgba(17,24,39,.96);color:#fff}
.topbar-inner{min-height:64px;display:flex;align-items:center;justify-content:space-between;gap:16px}.brand{text-decoration:none;font-weight:800;white-space:nowrap}
.nav{display:flex;align-items:center;gap:6px;overflow-x:auto}.nav a,.link-button{border:0;background:transparent;color:#fff;text-decoration:none;padding:10px 12px;border-radius:10px;font:inherit;cursor:pointer;white-space:nowrap}
.nav a:hover,.link-button:hover{background:rgba(255,255,255,.12)}.inline{display:inline}.main{padding:24px 0 64px}h1,h2,h3{margin:0 0 10px}h1{font-size:clamp(26px,5vw,38px)}h2{font-size:22px}.muted{color:var(--muted)}
.card{background:var(--card);border:1px solid var(--line);border-radius:18px;padding:20px;box-shadow:0 6px 20px rgba(17,24,39,.04);margin-bottom:18px}.narrow{max-width:620px}.page-head,.section-head,.calendar-head{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:18px}.small-gap{margin-top:24px}
.stack{display:grid;gap:15px}label{display:grid;gap:7px;font-weight:700}input,select,button{font:inherit}input,select{width:100%;border:1px solid #d1d5db;background:#fff;border-radius:12px;padding:13px 14px;min-height:48px;font-size:16px}
input:focus,select:focus{outline:3px solid rgba(37,99,235,.15);border-color:#2563eb}.btn{display:inline-flex;align-items:center;justify-content:center;text-decoration:none;border:0;border-radius:12px;padding:12px 16px;min-height:46px;font-weight:800;cursor:pointer}.btn.primary{background:var(--primary);color:#fff}.btn.secondary{background:#eef2f7;color:var(--text)}.btn.danger{background:var(--danger);color:#fff}.btn.big{min-height:54px}.btn.full{width:100%;margin-top:18px}
.expense-form{display:grid;grid-template-columns:1.4fr 1.4fr .8fr .9fr auto;gap:12px;align-items:end}.hidden{display:none!important}.stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px;margin-bottom:14px}.stats-grid.compact{grid-template-columns:repeat(auto-fit,minmax(150px,1fr))}
.stat-card{background:#fff;border:1px solid var(--line);border-radius:15px;padding:15px;display:flex;justify-content:space-between;gap:12px;align-items:center}.stat-card span{color:var(--muted);font-weight:700}.stat-card strong{white-space:nowrap;font-size:19px}.total-card{background:var(--primary);color:#fff;border-radius:18px;padding:18px 20px;display:flex;justify-content:space-between;align-items:center;margin-bottom:18px}.total-card strong{font-size:28px}
.table-scroll{overflow-x:auto}table{width:100%;border-collapse:collapse}th,td{text-align:left;padding:13px 10px;border-bottom:1px solid var(--line);white-space:nowrap}th{font-size:13px;text-transform:uppercase;color:var(--muted)}.money{font-weight:800}.actions{text-align:right}.actions a{font-weight:800}.filter-grid{display:grid;grid-template-columns:1.2fr 1fr 1fr auto auto;gap:12px;align-items:end}
.auth-wrap{min-height:85vh;display:grid;place-items:center}.auth-card{width:min(430px,100%);padding:28px}.auth-icon{font-size:42px}.flash-stack{display:grid;gap:8px;margin-bottom:16px}.flash{padding:12px 14px;border-radius:12px;border:1px solid}.flash.success{background:#ecfdf5;border-color:#86efac;color:#166534}.flash.error{background:#fef2f2;border-color:#fecaca;color:#991b1b}
.calendar-head{text-align:center}.calendar-head h1{font-size:30px;margin-bottom:6px}.round-btn{width:46px;height:46px;border-radius:999px;display:grid;place-items:center;background:#fff;border:1px solid var(--line);text-decoration:none;font-size:22px}.weekdays,.calendar-grid{display:grid;grid-template-columns:repeat(7,1fr)}.weekdays>div{text-align:center;color:var(--muted);font-weight:800;font-size:13px;padding:7px}.day{min-height:96px;border:1px solid var(--line);margin:-.5px;text-decoration:none;padding:9px;display:flex;flex-direction:column;justify-content:space-between;background:#fff;color:var(--text)}.day:hover{background:#f9fafb}.day.outside{opacity:.25;pointer-events:none}.day.selected{outline:3px solid #111827;position:relative;z-index:1}.day-number{font-weight:900}.day strong{font-size:13px;color:#166534}
.deploy-output{white-space:pre-wrap;word-break:break-word;background:#111827;color:#e5e7eb;padding:14px;border-radius:12px;max-height:420px;overflow:auto}code{background:#eef2f7;padding:2px 6px;border-radius:6px}
@media(max-width:900px){.expense-form{grid-template-columns:1fr 1fr}.expense-form .btn{grid-column:1/-1}.filter-grid{grid-template-columns:1fr 1fr}.filter-grid .btn{width:100%}}
@media(max-width:640px){.shell{width:min(100% - 18px,1120px)}.topbar-inner{display:block;padding:10px 0}.brand{display:block;margin-bottom:6px}.nav{padding-bottom:2px}.nav a,.link-button{padding:8px 9px;font-size:14px}.main{padding-top:14px}.card{padding:15px;border-radius:15px}.page-head{align-items:flex-end}.expense-form,.filter-grid{grid-template-columns:1fr}.stats-grid{grid-template-columns:1fr 1fr}.stat-card{display:block}.stat-card span{display:block;margin-bottom:5px;font-size:13px}.stat-card strong{font-size:17px}.total-card strong{font-size:23px}.calendar-card{padding:8px}.weekdays>div{font-size:11px}.day{min-height:70px;padding:6px}.day strong{font-size:10px}th,td{padding:11px 8px}}