:root{--page-bg: #f5f7fb;--card-bg: #ffffff;--text-muted: #8c8c8c;--brand: #1677ff;--in: #389e0d;--out: #cf1322;--stat-bg: #f7f9fc;--stat-border: #edf0f5}*{box-sizing:border-box}body{margin:0;background:var(--page-bg)}.fullscreen-center{min-height:100vh;display:flex;align-items:center;justify-content:center}.app-layout{min-height:100vh;background:var(--page-bg)}.app-header{position:sticky;top:0;z-index:10;display:flex;align-items:center;gap:16px;padding:0 24px;background:var(--card-bg);box-shadow:0 1px 4px #0f172a14}.brand{display:flex;align-items:center;gap:10px;color:inherit;white-space:nowrap}.brand-mark{display:inline-flex;align-items:center;justify-content:center;height:32px;padding:0 8px;border-radius:8px;background:var(--brand);color:#fff;font-weight:700;letter-spacing:.5px}.brand-mark-lg{height:48px;padding:0 14px;font-size:20px;border-radius:12px}.brand-name{font-weight:600;font-size:16px}.app-menu{flex:1;min-width:0;border-bottom:none}.account-btn{display:flex;align-items:center;gap:8px;height:44px}.app-content{padding:24px;max-width:1600px;width:100%;margin:0 auto}.page-card{box-shadow:0 2px 10px #0f172a0d}.page-head{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px;margin-bottom:16px}.page-filters{margin-bottom:16px}.stat-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:12px;margin-bottom:16px}.stat{padding:12px 16px;border-radius:10px;background:var(--stat-bg);border:1px solid var(--stat-border)}.stat-label{color:var(--text-muted);font-size:13px}.stat-value{font-size:20px;font-weight:600;margin-top:2px}.stat-in .stat-value,.amount-in{color:var(--in)}.stat-out .stat-value,.amount-out{color:var(--out)}.capitalize{text-transform:capitalize}.year-banner{margin-bottom:16px}.attribute-row{display:flex;margin-bottom:4px}.signin-page{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:16px;background:linear-gradient(135deg,#e6f0ff,#f5f7fb 60%)}.signin-card{width:100%;max-width:400px;box-shadow:0 8px 30px #0f172a1a}.signin-brand{display:flex;justify-content:center;margin-bottom:12px}@media (max-width: 768px){.app-header{padding:0 12px;gap:8px}.brand-name,.account-name{display:none}.app-content{padding:12px}}
