:root{--navy:#071a2f;--navy2:#102b49;--gold:#c9a86a;--ivory:#fbfaf5;--ink:#152238;--muted:#6c7788;--line:#e5e8ec;--good:#167c5a;--bad:#b54747;font-family:Inter,"Noto Sans SC",system-ui,sans-serif;color:var(--ink);background:#f4f6f8}*{box-sizing:border-box}body{margin:0}button,input,select,textarea{font:inherit}button{cursor:pointer;border:0;border-radius:9px;background:var(--gold);color:#08192d;padding:.72rem 1rem;font-weight:750}.hidden{display:none!important}.login-shell{min-height:100vh;display:grid;place-items:center;padding:24px;background:radial-gradient(circle at 75% 10%,#c9a86a33,transparent 35%),linear-gradient(135deg,#06172a,#102e50)}.login-card{width:min(440px,100%);padding:42px;background:#fff;border-radius:20px;box-shadow:0 28px 80px #0005}.brand-mark{font:800 24px Georgia;color:var(--gold)}.eyebrow{font-size:.7rem;letter-spacing:.22em;font-weight:800;color:#9b7a3d}.login-card h1{font-size:2rem;margin:.45rem 0}.muted,.panel p{color:var(--muted)}label{display:grid;gap:7px;margin:16px 0;font-size:.84rem;font-weight:700}input,select,textarea{width:100%;border:1px solid #ccd3dc;border-radius:9px;padding:.74rem;background:white;color:var(--ink)}textarea{min-height:80px;resize:vertical}.login-card button{width:100%;margin-top:8px}.error{color:var(--bad);min-height:1.2em}.app{min-height:100vh;display:grid;grid-template-columns:245px 1fr}.sidebar{position:sticky;top:0;height:100vh;background:var(--navy);color:white;padding:28px 18px;display:flex;flex-direction:column}.logo{display:flex;align-items:baseline;gap:9px;padding:0 10px 28px}.logo b{font:800 22px Georgia;color:var(--gold)}.logo span{font-size:.8rem;letter-spacing:.12em}.sidebar nav{display:grid;gap:6px}.sidebar nav button{background:transparent;color:#c9d3df;text-align:left;font-weight:600;padding:.8rem 1rem}.sidebar nav button:hover,.sidebar nav button.active{background:#ffffff12;color:white;border-left:3px solid var(--gold)}.sidebar-foot{margin-top:auto;border-top:1px solid #ffffff20;padding:18px 10px 0;display:grid;gap:10px;font-size:.85rem}.sidebar-foot button{background:transparent;border:1px solid #ffffff33;color:white;padding:.5rem}main{padding:34px;min-width:0}header{display:flex;justify-content:space-between;align-items:center;margin-bottom:28px}header h1{margin:.2rem 0;font-size:1.75rem}.period{color:var(--muted);font-size:.85rem}.kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:20px}.kpis article,.panel{background:white;border:1px solid var(--line);border-radius:14px;box-shadow:0 4px 18px #071a2f0a}.kpis article{padding:22px}.kpis span{color:var(--muted);font-size:.82rem}.kpis strong{display:block;font-size:1.55rem;margin-top:10px}.panel{padding:22px}.panel-head{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-bottom:18px}.panel-head h2{margin:0;font-size:1.15rem}.panel-head p{margin:.35rem 0 0;font-size:.82rem}.table-wrap{overflow:auto}table{width:100%;border-collapse:collapse;white-space:nowrap}th,td{text-align:left;padding:12px 10px;border-bottom:1px solid #edf0f2;font-size:.84rem}th{font-size:.72rem;color:var(--muted);text-transform:uppercase;letter-spacing:.06em}.amount{font-variant-numeric:tabular-nums;font-weight:750}.income{color:var(--good)}.expense{color:var(--bad)}.badge{display:inline-block;padding:.22rem .55rem;border-radius:99px;background:#eef1f4;font-size:.72rem}.secondary{background:#eef1f4;color:var(--ink)}dialog{width:min(680px,calc(100% - 30px));border:0;border-radius:16px;padding:0;box-shadow:0 24px 80px #0005}dialog::backdrop{background:#071a2fbf}dialog form{padding:24px}.dialog-head{display:flex;justify-content:space-between;align-items:center}.dialog-head h2{margin:0}.dialog-head button{background:transparent;font-size:1.5rem;padding:.2rem}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 16px}.wide{grid-column:1/-1}.actions{display:flex;justify-content:flex-end;gap:10px;margin-top:18px}.date-range{display:flex;gap:8px;align-items:center}.date-range input{width:auto}.report-output{display:grid;gap:10px}.report-row{display:flex;justify-content:space-between;padding:14px;border-bottom:1px solid var(--line)}@media(max-width:900px){.app{grid-template-columns:1fr}.sidebar{position:static;height:auto}.sidebar nav{grid-template-columns:repeat(2,1fr)}.sidebar-foot{display:flex}.kpis{grid-template-columns:repeat(2,1fr)}main{padding:20px}}@media(max-width:560px){.kpis{grid-template-columns:1fr}.form-grid{grid-template-columns:1fr}.wide{grid-column:auto}.panel-head,header{align-items:flex-start;flex-direction:column}.date-range{flex-wrap:wrap}.sidebar nav{grid-template-columns:1fr 1fr}.login-card{padding:28px}}
