:root{--navy:#12233f;--blue:#2563eb;--sky:#eaf2ff;--green:#119c68;--red:#dc3545;--amber:#e39b18;--ink:#172033;--muted:#6b7280;--line:#e4e8ef;--bg:#f4f7fb}
*{box-sizing:border-box}body{margin:0;font-family:Inter,system-ui,-apple-system,Segoe UI,sans-serif;background:var(--bg);color:var(--ink)}
.layout{display:grid;grid-template-columns:245px 1fr;min-height:100vh}.side{background:linear-gradient(180deg,#142540,#0d1930);color:#fff;padding:22px 15px;position:sticky;top:0;height:100vh}.brand{font-size:19px;font-weight:800;padding:4px 10px 25px}.brand small{display:block;font-size:11px;color:#a8bad5;margin-top:5px}.nav a{display:flex;color:#c8d3e4;text-decoration:none;padding:11px 12px;border-radius:9px;margin:3px 0;font-size:14px}.nav a:hover,.nav a.active{background:#294568;color:#fff}.main{padding:26px;min-width:0}.top{display:flex;justify-content:space-between;align-items:center;margin-bottom:22px}.top h1{font-size:25px;margin:0}.muted{color:var(--muted)}
.grid{display:grid;gap:16px}.kpis{grid-template-columns:repeat(5,minmax(150px,1fr))}.card{background:#fff;border:1px solid var(--line);border-radius:14px;padding:18px;box-shadow:0 3px 15px #1f29370b}.kpi .label{font-size:12px;color:var(--muted);text-transform:uppercase;letter-spacing:.05em}.kpi .value{font-size:25px;font-weight:800;margin-top:8px}.kpi.blue{border-top:4px solid var(--blue)}.kpi.green{border-top:4px solid var(--green)}.kpi.red{border-top:4px solid var(--red)}.kpi.amber{border-top:4px solid var(--amber)}.kpi.navy{border-top:4px solid var(--navy)}
.two{grid-template-columns:1.4fr 1fr;margin-top:16px}.card h2{font-size:17px;margin:0 0 16px}.bar{height:9px;background:#e8edf4;border-radius:10px;overflow:hidden}.bar span{display:block;height:100%;background:var(--blue);border-radius:10px}.row{display:flex;justify-content:space-between;gap:15px;align-items:center}.category{margin:13px 0}.category .row{font-size:13px;margin-bottom:6px}
.actions{display:flex;gap:8px;flex-wrap:wrap}.btn{border:0;border-radius:8px;padding:10px 14px;background:var(--blue);color:#fff;text-decoration:none;cursor:pointer;font-weight:650;font-size:13px}.btn.secondary{background:#fff;color:var(--ink);border:1px solid var(--line)}.btn.green{background:var(--green)}
.table-wrap{overflow:auto}.table{width:100%;border-collapse:collapse;font-size:13px}.table th{background:#f6f8fb;text-align:left;color:#536176;white-space:nowrap}.table th,.table td{padding:11px 10px;border-bottom:1px solid var(--line)}.table tr:hover td{background:#fafcff}.badge{display:inline-block;border-radius:50px;padding:4px 8px;font-size:11px;font-weight:700}.badge.Paid{background:#dcfce7;color:#08794e}.badge.Unpaid{background:#fee2e2;color:#b91c1c}.badge.Partially-Paid{background:#fef3c7;color:#9a6105}
.form-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.field label{display:block;font-size:12px;font-weight:700;color:#566176;margin-bottom:6px}.field input,.field select,.field textarea{width:100%;border:1px solid #d7dde7;border-radius:8px;padding:10px 11px;background:#fff;font:inherit}.field textarea{min-height:76px}.span2{grid-column:span 2}.span3{grid-column:span 3}.alert{padding:11px 14px;border-radius:9px;background:#dcfce7;color:#12613f;margin-bottom:16px}.alert.error{background:#fee2e2;color:#991b1b}.filters{display:flex;gap:10px;align-items:end;flex-wrap:wrap;margin-bottom:16px}.filters .field{min-width:150px}.right{text-align:right}.receipt{color:var(--blue);text-decoration:none}.empty{text-align:center;padding:30px;color:var(--muted)}
@media(max-width:1100px){.kpis{grid-template-columns:repeat(2,1fr)}.two{grid-template-columns:1fr}.form-grid{grid-template-columns:1fr 1fr}.span3{grid-column:span 2}}
@media(max-width:760px){.layout{display:block}.side{height:auto;position:relative}.nav{display:flex;overflow:auto}.nav a{white-space:nowrap}.main{padding:16px}.kpis,.form-grid{grid-template-columns:1fr}.span2,.span3{grid-column:span 1}}
@media print{.side,.top .actions,.no-print,.filters{display:none!important}.layout{display:block}.main{padding:0}.card{box-shadow:none;border:0}.table th,.table td{padding:7px}}
.auth-body{min-height:100vh;display:grid;place-items:center;background:linear-gradient(135deg,#e8eef8,#f7f9fc);padding:24px}
.auth-card{width:min(440px,100%);background:#fff;padding:34px;border-radius:18px;box-shadow:0 20px 60px rgba(15,23,42,.15)}
.auth-card h1{margin:24px 0 18px}.auth-card .field{margin-bottom:16px}.full{width:100%;justify-content:center}.brand.dark{color:#14213d}.brand.dark small{color:#64748b}
.user-panel{margin-top:auto;padding:18px 16px;color:#e2e8f0;border-top:1px solid rgba(255,255,255,.14);font-size:13px}.user-panel strong,.user-panel small{display:block}.user-panel small{margin:4px 0 10px;color:#94a3b8}.user-panel a{color:#fff}.inline-form{display:inline-flex;gap:6px;align-items:center;margin:3px}.inline-form input{width:145px;padding:8px}.btn:disabled{opacity:.45;cursor:not-allowed}
