:root{--ink:#132238;--muted:#6c788a;--line:#e5e9ef;--bg:#f5f7fa;--white:#fff;--navy:#173b57;--teal:#00a896;--red:#c83e4d;--orange:#f2a541;--purple:#7857c8}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font:14px/1.5 system-ui,-apple-system,Segoe UI,sans-serif}header{height:68px;background:var(--navy);display:flex;align-items:center;padding:0 max(18px,calc((100% - 1180px)/2));color:#fff;position:sticky;top:0;z-index:5}.logo{font-weight:900;font-size:21px;color:#fff;text-decoration:none}.logo span{font-weight:600;font-size:14px;margin-left:8px;opacity:.8}nav{margin-left:auto;display:flex;height:100%;align-items:center;gap:4px}nav a{color:#dbe8ef;text-decoration:none;padding:9px 11px;border-radius:7px}nav a:hover,nav a.active{background:#ffffff18;color:#fff}.nav-toggle{display:none;margin-left:auto;background:transparent;color:#fff;font-size:23px;border:0}.container{max-width:1180px;margin:auto;padding:28px 18px 50px}.page-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:22px}.page-head h1{margin:0;font-size:28px}.eyebrow{font-size:11px;letter-spacing:1.6px;color:var(--teal);font-weight:800;margin:0 0 3px}.user-chip{background:#fff;border:1px solid var(--line);padding:8px 13px;border-radius:20px}.panel,.cards article{background:#fff;border:1px solid var(--line);border-radius:13px;padding:20px;box-shadow:0 3px 12px #19324d0a;margin-bottom:18px}.cards{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}.cards article{display:flex;flex-direction:column}.cards article span,.cards small{color:var(--muted)}.cards strong{font-size:25px;margin:7px 0}.cards article.accent{background:var(--navy);color:#fff}.cards article.accent span,.cards article.accent small{color:#c8d9e4}.grid2{display:grid;grid-template-columns:1fr 1fr;gap:18px}.panel h2{font-size:17px;margin:0 0 17px}.bar-row{display:grid;grid-template-columns:82px 1fr 105px;gap:10px;align-items:center;margin:18px 0}.bar-row>div{height:9px;background:#edf0f4;border-radius:10px;overflow:hidden}.bar-row i{display:block;background:var(--navy);height:100%;border-radius:10px}.bar-row i.green{background:var(--teal)}.bar-row i.orange{background:var(--orange)}.bar-row i.purple{background:var(--purple)}.bar-row b{text-align:right;font-size:13px}label{display:block;color:var(--muted);font-weight:600;font-size:12px;margin-bottom:14px;position:relative}input,select,textarea,button,.button{font:inherit}input,select,textarea{display:block;width:100%;margin-top:5px;border:1px solid #ccd4df;border-radius:7px;padding:10px;background:#fff;color:var(--ink)}textarea{resize:vertical}button,.button{border:1px solid #c8d0da;background:#fff;color:var(--ink);padding:9px 13px;border-radius:7px;cursor:pointer;text-decoration:none;display:inline-block}button:hover,.button:hover{border-color:#8091a5}.primary{background:var(--teal);color:#fff;border-color:var(--teal);font-weight:700}.danger{color:var(--red);border-color:#e9bdc2}.small{font-size:11px;padding:4px 7px}.wide{width:100%;margin-top:5px}.form-grid.two{display:grid;grid-template-columns:1fr 1fr;gap:15px}.section-title{display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--line);margin:3px 0 17px;padding-bottom:10px}.section-title h2{margin:0}.section-title span{color:var(--muted);font-size:12px}.money-prefix{position:absolute;left:11px;bottom:10px;color:#6f7c8e}.money-prefix+input{padding-left:27px}.income-grid{display:grid;grid-template-columns:1.2fr 1fr 1fr;gap:5px 12px;align-items:center;margin-bottom:15px}.income-grid>span{font-weight:650}.income-grid label{margin:0}.actions{display:flex;justify-content:flex-end;gap:9px}.expense-form{display:grid;grid-template-columns:1.1fr 1fr 1.5fr .8fr .8fr 1fr auto;gap:10px;align-items:end;border-top:1px solid var(--line);padding-top:18px;margin-top:12px}.expense-form label{margin:0}.filter-bar{display:flex;gap:10px;align-items:end;background:#fff;border:1px solid var(--line);border-radius:11px;padding:13px;margin-bottom:18px}.filter-bar label{margin:0}.filter-bar input,.filter-bar select{min-width:150px}.table-wrap{overflow:auto}table{border-collapse:collapse;width:100%;white-space:nowrap}th{text-align:left;color:var(--muted);font-size:11px;text-transform:uppercase;letter-spacing:.5px}th,td{border-bottom:1px solid var(--line);padding:11px 9px}tr:last-child td{border-bottom:0}.right{text-align:right}.total{font-weight:800;background:#fafbfc}.badge{font-size:11px;text-transform:uppercase;border-radius:12px;padding:4px 7px;background:#fff0cc;color:#8a5a00}.badge.final{background:#dff8f1;color:#087565}.alert{padding:11px 14px;border-radius:8px;margin-bottom:16px}.alert.ok{background:#e4f7f2;color:#086858}.alert.bad{background:#ffe8eb;color:#9c2534}.inline{display:inline-flex;gap:4px;margin-right:5px}.inline .mini{width:120px;margin:0;padding:7px}.empty{text-align:center;padding:25px;background:#fff;border:1px dashed #bec8d3;border-radius:10px;color:var(--muted)}footer{text-align:center;color:var(--muted);padding:25px}.login-bg{min-height:100vh;display:grid;place-items:center;background:linear-gradient(135deg,#102c43,#1d526b)}.login-card{width:min(390px,calc(100% - 30px));background:#fff;border-radius:16px;padding:30px;box-shadow:0 25px 70px #0005}.login-card h1{text-align:center;margin:10px 0 0}.login-card>.muted{text-align:center;margin:4px 0 22px}.brandmark{margin:auto;background:var(--teal);color:#fff;width:50px;height:50px;border-radius:14px;display:grid;place-items:center;font-weight:900;font-size:19px}.muted,.hint{color:var(--muted)}.hint{font-size:12px;margin:18px 0 0;text-align:center}
@media(max-width:850px){header{height:auto;min-height:62px;flex-wrap:wrap}.nav-toggle{display:block}nav{display:none;order:3;width:100%;height:auto;flex-direction:column;align-items:stretch;padding:8px 0 13px}nav.open{display:flex}.cards{grid-template-columns:1fr 1fr}.grid2{grid-template-columns:1fr}.expense-form{grid-template-columns:1fr 1fr}.expense-form button{grid-column:1/-1}.container{padding-top:20px}}@media(max-width:520px){.cards{grid-template-columns:1fr}.form-grid.two{grid-template-columns:1fr}.income-grid{grid-template-columns:1fr 1fr 1fr;gap:7px}.panel{padding:15px}.filter-bar{flex-wrap:wrap}.filter-bar label{width:calc(50% - 5px)}.filter-bar input,.filter-bar select{min-width:0}.page-head h1{font-size:24px}.user-chip{display:none}.actions{flex-direction:column}.actions button{width:100%}.expense-form{grid-template-columns:1fr}.expense-form button{grid-column:auto}}
@media print{header,.filter-bar,.page-head,footer{display:none}.container{max-width:none;padding:0}.panel{box-shadow:none;border:0}body{background:#fff}}
