:root{font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:#111827;background:#f3f4f6;--primary:#111827;--green:#15803d;--red:#dc2626;--muted:#6b7280}*{box-sizing:border-box}body{margin:0;min-height:100vh}.hidden{display:none!important}button,input,select,textarea{font:inherit}button{cursor:pointer}.auth-shell{min-height:100vh;display:grid;place-items:center;padding:24px;background:linear-gradient(145deg,#111827,#374151)}.auth-card{width:min(100%,390px);background:white;padding:30px;border-radius:24px;box-shadow:0 25px 50px #0005}.brand-mark{width:52px;height:52px;display:grid;place-items:center;background:#111827;color:#fff;border-radius:16px;font-size:26px;font-weight:800}.auth-card h1{margin:18px 0 4px}.auth-card p,.auth-card small{color:var(--muted)}label{display:grid;gap:6px;font-size:14px;font-weight:600;margin:14px 0}input,select,textarea{width:100%;border:1px solid #d1d5db;border-radius:12px;padding:12px;background:white;color:#111827}.primary,.secondary,.danger{border:0;border-radius:12px;padding:12px 16px;font-weight:700}.primary{background:var(--primary);color:white}.secondary{background:#e5e7eb;color:#111827;width:100%;margin-top:10px}.danger{background:#fee2e2;color:#991b1b}.topbar{height:64px;display:flex;align-items:center;justify-content:space-between;padding:0 max(18px,calc((100vw - 1100px)/2));background:#111827;color:white;position:sticky;top:0;z-index:10}.topbar div{display:flex;flex-direction:column}.topbar span{font-size:12px;color:#d1d5db}.icon-btn,.text-btn{border:0;background:transparent}.icon-btn{font-size:24px;color:inherit}.text-btn{color:#2563eb;padding:6px}.app main{max-width:1100px;margin:auto;padding:20px 18px 100px}.period-row{display:flex;justify-content:center;align-items:center;gap:8px;margin-bottom:16px}.period-row .icon-btn{color:#111827}.period-row input{width:auto;font-weight:700}.summary-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.summary{padding:18px;border-radius:18px;background:white;box-shadow:0 5px 20px #1118270d}.summary span{display:block;font-size:13px;color:var(--muted);margin-bottom:8px}.summary strong{font-size:clamp(17px,3vw,26px)}.summary.income{border-left:5px solid var(--green)}.summary.expense{border-left:5px solid var(--red)}.summary.balance{border-left:5px solid #2563eb}.panel{background:white;border-radius:18px;padding:18px;margin-top:16px;box-shadow:0 5px 20px #1118270d}.panel-head{display:flex;justify-content:space-between;align-items:center;gap:12px}.panel h2{font-size:18px;margin:0}.quick-form{display:grid;grid-template-columns:1.5fr 1fr 1fr auto;gap:10px;align-items:end;margin-top:14px}.segmented{display:grid;grid-template-columns:1fr 1fr;background:#f3f4f6;border-radius:12px;padding:3px}.segmented input{display:none}.segmented label{margin:0;padding:9px;text-align:center;border-radius:9px;color:var(--muted)}.segmented input:checked+label{background:white;color:#111827;box-shadow:0 1px 4px #0002}.dashboard-grid{display:grid;grid-template-columns:1.5fr 1fr;gap:16px}.chart-panel{min-height:320px}.chart-panel canvas{max-height:250px;margin-top:16px}.actions{display:flex;gap:8px;align-items:center}.small{padding:8px 12px}.filters{display:grid;grid-template-columns:1fr 170px;gap:10px;margin:14px 0}.transaction-item{display:grid;grid-template-columns:44px 1fr auto;gap:12px;align-items:center;padding:13px 4px;border-bottom:1px solid #eee}.transaction-icon{width:42px;height:42px;border-radius:13px;display:grid;place-items:center;font-size:18px;background:#f3f4f6}.transaction-main strong,.transaction-main span{display:block}.transaction-main span{font-size:12px;color:var(--muted);margin-top:3px}.transaction-value{text-align:right;font-weight:800}.transaction-value.income{color:var(--green)}.transaction-value.expense{color:var(--red)}.empty{text-align:center;color:var(--muted);padding:30px}.bottom-nav{display:none;position:fixed;bottom:0;left:0;right:0;padding:9px calc(14px + env(safe-area-inset-bottom));background:white;border-top:1px solid #ddd;z-index:20}.bottom-nav button{flex:1;border:0;background:transparent;padding:10px;font-weight:700}dialog{border:0;border-radius:20px;width:min(92vw,480px);padding:0;box-shadow:0 25px 80px #0005}dialog::backdrop{background:#11182799}dialog form{padding:20px}.dialog-head,.dialog-actions{display:flex;justify-content:space-between;align-items:center;gap:12px}.dialog-head h2{margin:0}.dialog-head .icon-btn{color:#111827}.dialog-actions{margin-top:18px}.toast{position:fixed;top:76px;left:50%;transform:translateX(-50%) translateY(-20px);background:#111827;color:white;padding:10px 16px;border-radius:10px;opacity:0;pointer-events:none;transition:.2s;z-index:99}.toast.show{opacity:1;transform:translateX(-50%) translateY(0)}@media(max-width:760px){.summary-grid{grid-template-columns:1fr 1fr}.summary.balance{grid-column:span 2}.quick-form{grid-template-columns:1fr 1fr}.quick-form .segmented{grid-column:span 2}.dashboard-grid{grid-template-columns:1fr}.filters{grid-template-columns:1fr}.bottom-nav{display:flex}.app main{padding-bottom:100px}.chart-panel{min-height:290px}}@media(max-width:430px){.summary{padding:14px}.panel{padding:15px}.quick-form{grid-template-columns:1fr}.quick-form .segmented{grid-column:auto}.quick-form button{width:100%}}
