:root{--nav:#07152d;--blue:#2764ff;--bg:#f4f7fb;--line:#dfe6f0;--text:#14213d;--muted:#718096}*{box-sizing:border-box}body{margin:0;font:14px Inter,system-ui,Arial;color:var(--text);background:var(--bg)}aside{position:fixed;inset:0 auto 0 0;width:230px;background:var(--nav);color:#fff;padding:25px 18px}.brand{font-size:24px;letter-spacing:1px;margin:0 12px 32px}.brand b{color:#54a3ff}.brand small,.login-brand span{display:block;font-size:11px;letter-spacing:4px;color:#aab9d2}nav{display:grid;gap:6px}nav a{color:#c7d2e5;text-decoration:none;padding:12px;border-radius:8px}nav a:hover{background:#13294d;color:white}.app{margin-left:230px;padding:28px}.app header{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px}.app h1{margin:0 0 4px;font-size:25px}.app header span{color:var(--muted)}button{border:0;border-radius:8px;background:var(--blue);color:white;padding:11px 17px;font-weight:700;cursor:pointer}.ghost{background:white;color:var(--text);border:1px solid var(--line)}.small{padding:7px 11px;font-size:12px}.cards{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;margin-bottom:20px}.cards article,.panel{background:#fff;border:1px solid var(--line);border-radius:12px;padding:20px;box-shadow:0 3px 12px #243b5310}.cards span{color:var(--muted)}.cards strong{display:block;font-size:25px;margin-top:9px}.cards .danger{border-left:4px solid #e5484d}.panel{margin-bottom:20px}.panel h2{margin:0 0 18px;font-size:17px}.grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;align-items:end}.grid .wide{grid-column:span 2}label{display:grid;gap:7px;color:#52637a;font-weight:650}input,select,textarea{width:100%;border:1px solid #cfd9e7;border-radius:7px;padding:10px;background:white;color:var(--text)}textarea{min-height:42px}.table{overflow:auto}table{border-collapse:collapse;width:100%;white-space:nowrap}th,td{text-align:left;border-bottom:1px solid #e7edf5;padding:12px 10px}th{font-size:12px;color:#738197;text-transform:uppercase}.badge{display:inline-block;padding:4px 8px;border-radius:20px;background:#edf1f7;font-size:11px;text-transform:uppercase}.badge.active,.badge.paid,.badge.online{background:#daf7e7;color:#18794e}.badge.isolated,.badge.overdue,.badge.offline{background:#ffe1e3;color:#c62a32}.badge.partial,.badge.unpaid{background:#fff1cc;color:#8f5d00}.flash,.error{padding:12px 16px;border-radius:8px;margin-bottom:18px;background:#dff7e9;color:#176b45}.error{background:#ffe5e7;color:#a8252c}.pay{display:flex;gap:5px}.pay input{width:100px;padding:7px}.pay select{width:90px;padding:7px}.auth{min-height:100vh;display:grid;place-items:center;background:radial-gradient(circle at top,#173c73,#06152d 55%)}.login{width:min(420px,92vw);background:white;padding:38px;border-radius:16px;box-shadow:0 25px 80px #0007}.login-brand{color:#2764ff;font-size:25px;letter-spacing:1px}.login h2{font-size:26px;margin:28px 0 5px}.login p{color:var(--muted);margin:0 0 25px}.login form{display:grid;gap:17px}.login button{margin-top:5px}.toolbar form{display:flex;align-items:end;gap:12px}@media(max-width:1000px){.cards,.grid{grid-template-columns:repeat(2,1fr)}}@media(max-width:700px){aside{position:static;width:auto}.app{margin:0;padding:16px}.cards,.grid{grid-template-columns:1fr}.grid .wide{grid-column:auto}}

