:root{--primary:#3157e2;--ink:#172033;--muted:#6d7688;--bg:#f4f6fa;--line:#e7eaf0;--sidebar:#101828}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font-family:Inter,system-ui,-apple-system,"Segoe UI",sans-serif}.app-shell{display:flex;min-height:100vh}.sidebar{width:255px;background:var(--sidebar);color:#fff;padding:22px 14px;position:fixed;inset:0 auto 0 0;overflow:auto;z-index:1040}.logo{display:flex;align-items:center;gap:12px;color:#fff;text-decoration:none;padding:0 10px 22px}.logo span,.brand-mark{display:grid;place-items:center;width:42px;height:42px;border-radius:12px;background:linear-gradient(135deg,#5674ff,#6941c6);font-weight:800;color:#fff}.sidebar nav a{display:flex;align-items:center;gap:12px;color:#cbd2e1;text-decoration:none;padding:11px 13px;border-radius:9px;margin:2px 0;font-size:14px}.sidebar nav a:hover{background:#1d2939;color:#fff}.sidebar i{font-size:17px}.nav-label{color:#667085;font-size:11px;text-transform:uppercase;letter-spacing:.1em;padding:25px 13px 8px}.disabled-link{opacity:.62}.main{margin-left:255px;width:calc(100% - 255px)}.topbar{height:72px;background:#fff;border-bottom:1px solid var(--line);display:flex;align-items:center;padding:0 28px;position:sticky;top:0;z-index:1020}.search{display:flex;align-items:center;gap:10px;background:#f6f7f9;padding:10px 15px;border-radius:10px;width:min(430px,42vw)}.search input{border:0;outline:0;background:transparent;width:100%;font-size:14px}.content{padding:28px}.page-title{font-size:27px;font-weight:750;margin:0}.page-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px}.page-head p{color:var(--muted);margin:4px 0 0}.quick-actions{display:flex;gap:8px}.metric-card,.finance-card,.panel,.service-card{background:#fff;border:1px solid var(--line);border-radius:14px;box-shadow:0 2px 7px rgba(16,24,40,.025)}.metric-card{padding:18px;display:flex;align-items:center;gap:14px}.metric-icon{width:46px;height:46px;border-radius:12px;display:grid;place-items:center;font-size:21px}.metric-icon.blue{background:#edf2ff;color:#3157e2}.metric-icon.green{background:#eafaf3;color:#079455}.metric-icon.purple{background:#f2edff;color:#6941c6}.metric-icon.orange{background:#fff3e5;color:#e87613}.metric-card small,.finance-card small{color:var(--muted);display:block}.metric-card strong{display:block;font-size:25px}.finance-card{padding:18px}.finance-card strong{display:block;font-size:21px;margin:5px 0}.finance-card span{font-size:12px;color:#98a2b3}.panel{padding:22px}.panel-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:18px}.panel-head h2,.section-title{font-size:17px;font-weight:700;margin:0}.panel-head span{font-size:12px;color:var(--muted)}.alert-row,.activity{display:flex;gap:12px;padding:12px 0;border-bottom:1px solid var(--line)}.alert-row i{color:#f79009}.alert-row p{font-size:13px;color:var(--muted);margin:2px 0}.activity-dot{width:9px;height:9px;border-radius:50%;background:var(--primary);margin-top:7px}.activity small{display:block;color:var(--muted);font-size:12px}.empty{text-align:center;padding:30px;color:var(--muted)}.filters{display:grid;grid-template-columns:minmax(280px,1fr) 200px auto;gap:10px;margin-bottom:20px}.table thead th{color:#667085;font-size:12px;text-transform:uppercase;border-bottom-width:1px;padding:13px}.table td{padding:14px 13px;border-color:#eef0f4;font-size:14px}.code{font-family:ui-monospace,monospace;background:#f2f4f7;padding:5px 8px;border-radius:6px}.status{display:inline-flex;padding:5px 9px;border-radius:20px;font-size:12px;font-weight:650}.status.active,.status.paid{background:#e9f9f1;color:#067647}.status.partial{background:#fff4e5;color:#b54708}.status.unpaid,.status.passive{background:#feeceb;color:#b42318}.status.overdue,.status.left{background:#7a271a;color:#fff}.status.exempt,.status.frozen{background:#eaecf0;color:#475467}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}.form-grid label,.modal label{font-size:13px;font-weight:600;margin-bottom:6px}.service-card{padding:20px}.service-card h2{font-size:20px;margin:12px 0 5px}.service-card p{font-size:13px;color:var(--muted)}.capacity{display:flex;justify-content:space-between;margin-top:20px}.capacity span{display:block;font-size:12px;color:var(--muted)}.capacity strong{font-size:20px}.progress{height:7px;margin:10px 0 20px}.service-stats{display:grid;grid-template-columns:1fr 1fr;border-top:1px solid var(--line);padding-top:15px}.service-stats small{display:block;color:var(--muted);font-size:11px}.service-stats b{font-size:13px}.summary-line{display:flex;justify-content:space-between;padding:15px 0;border-bottom:1px solid var(--line)}.summary-line.muted{color:var(--muted)}.result-card{color:#fff;padding:28px;border-radius:15px}.result-card.profit{background:linear-gradient(135deg,#087e5b,#12b76a)}.result-card.loss{background:linear-gradient(135deg,#b42318,#f04438)}.result-card h2{font-size:35px;margin:8px 0}.result-card p{font-weight:700}.result-card span{font-size:12px;opacity:.8}.login-bg{background:radial-gradient(circle at top left,#e8edff,#f6f7fb 52%)}.login-card{width:min(460px,94vw);border-radius:20px}.brand-mark{width:52px;height:52px}.btn-primary{background:var(--primary);border-color:var(--primary)}
.sidebar-backdrop{display:none}
@media(max-width:991px){body.menu-open{overflow:hidden}.sidebar{transform:translateX(-100%);transition:transform .25s ease;width:min(285px,86vw);box-shadow:18px 0 40px #10182833}.sidebar.open{transform:translateX(0)}.sidebar-backdrop{display:block;position:fixed;inset:0;background:#1018288c;z-index:1035;opacity:0;visibility:hidden;transition:.2s}.sidebar-backdrop.show{opacity:1;visibility:visible}.main{margin-left:0;width:100%;min-width:0}.content{padding:18px}.form-grid{grid-template-columns:1fr}.quick-actions{margin-top:15px;width:100%;display:grid;grid-template-columns:1fr 1fr}.quick-actions .btn:first-child{grid-column:1/-1}.page-head{align-items:flex-start;gap:12px}.filters{grid-template-columns:1fr}.search{width:auto;flex:1}.topbar{height:64px;padding:0 10px;gap:5px}.topbar .search{padding:9px 10px}.panel{padding:16px}.table-responsive{margin:0 -16px;padding:0 16px;width:calc(100% + 32px)}.table{min-width:720px}.modal-dialog{margin:10px}.metric-card{padding:14px}.finance-card{padding:14px}.service-card{padding:16px}.page-title{font-size:23px}}
@media(max-width:575px){.content{padding:14px}.page-head{display:block}.page-head>.btn,.page-head>button,.page-head>.d-flex,.page-head>form{width:100%;margin-top:12px}.page-head>.d-flex{display:grid!important;grid-template-columns:1fr 1fr}.page-head>.d-flex form{grid-column:1/-1}.page-head>.d-flex .btn{white-space:nowrap}.metric-card{display:block}.metric-icon{width:38px;height:38px;margin-bottom:8px}.metric-card strong{font-size:21px}.finance-card strong{font-size:18px}.form-control,.form-select,.btn{min-height:42px}.modal-body .col-4,.modal-body .col-6{width:100%}.login-card .card-body{padding:28px!important}.result-card{padding:22px}.result-card h2{font-size:28px}.search input{font-size:13px}.search input::placeholder{color:transparent}}
@media print{.sidebar,.topbar,.page-head .btn,.sidebar-backdrop{display:none!important}.main{margin:0;width:100%}.content{padding:0}.panel{box-shadow:none;border:0}.table{min-width:0}}
.student-link{color:var(--ink);text-decoration:none}.student-link:hover{color:var(--primary)}.month-card{background:#fff;border:1px solid var(--line);border-radius:15px;padding:18px;box-shadow:0 2px 7px #10182808}.month-card.is-paid{border-top:4px solid #12b76a}.month-card.is-unpaid{border-top:4px solid #f04438}.month-head{display:flex;align-items:flex-start;justify-content:space-between}.month-head small{color:var(--muted)}.month-head h2{font-size:21px;margin:2px 0 0}.month-amount{font-size:24px;font-weight:750;margin:22px 0}.payment-calendar form{margin:0}
