:root{--navy:#063b68;--navy2:#07538a;--deep:#032d52;--aqua:#16d7d3;--sky:#1da8ef;--bg:#f4faff;--ink:#073664;--muted:#62758b;--line:#d9e8f4;--white:#fff;--shadow:0 5px 18px rgba(4,54,96,.10)}*{box-sizing:border-box}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Arial,sans-serif;background:var(--bg);color:var(--ink);font-size:18px}.app{display:grid;grid-template-columns:250px 1fr;min-height:100vh}.sidebar{background:linear-gradient(180deg,#07558b,#064a7d 55%,#063f70);padding:16px 14px;color:#fff;position:sticky;top:0;height:100vh;overflow:auto}.brand{background:#f4feff;border:2px solid #75edf0;border-radius:22px;padding:10px;margin-bottom:16px;box-shadow:var(--shadow)}.brand img{width:100%;display:block}.nav a{display:flex;align-items:center;gap:12px;color:#fff;text-decoration:none;font-size:18px;font-weight:750;padding:13px 14px;margin:7px 0;border-radius:13px;border:2px solid rgba(43,157,209,.55);background:#073f6d;box-shadow:0 3px 0 #032c4e}.nav a:hover,.nav a.active{background:linear-gradient(180deg,#1bbaf1,#139edc);border-color:#5be8ff}.nav .ico{width:26px;text-align:center;font-size:21px}.side-foot{text-align:center;font-size:14px;line-height:1.5;margin-top:22px;opacity:.9}.main{min-width:0}.topbar{min-height:78px;background:linear-gradient(90deg,#eefcff,#d9f5fb);display:flex;align-items:center;justify-content:space-between;padding:14px 28px;border-bottom:1px solid #cce7f2}.title{font-size:25px;font-weight:850}.user{font-size:17px}.content{padding:24px 28px}.hello h1{font-size:32px;margin:0 0 5px}.hello p{margin:0 0 20px;color:var(--muted);font-size:19px}.metrics{display:grid;grid-template-columns:repeat(6,minmax(130px,1fr));gap:14px}.metric{background:#fff;border:1px solid var(--line);border-radius:17px;padding:18px;text-align:center;box-shadow:var(--shadow);min-height:132px}.metric:nth-child(1){background:#e9f7ff}.metric:nth-child(2){background:#eafbef}.metric:nth-child(3){background:#f1efff}.metric:nth-child(4){background:#fff7df}.metric:nth-child(5){background:#fff0f1}.metric:nth-child(6){background:#e7fbf8}.metric .label{font-weight:800;font-size:17px}.metric .num{font-size:37px;font-weight:900;margin:7px 0}.metric .sub{font-size:15px;color:#4d6175}.grid{display:grid;grid-template-columns:1.35fr .92fr .88fr;gap:16px;margin-top:18px}.card{background:#fff;border:1px solid var(--line);border-radius:15px;box-shadow:var(--shadow);overflow:hidden}.card h2{font-size:21px;margin:0;padding:16px 18px;border-bottom:1px solid #e6eff6}.card-body{padding:14px 18px}.quick{display:grid;gap:12px}.btn{display:block;border:0;border-radius:13px;padding:15px 18px;text-align:center;text-decoration:none;font-weight:850;font-size:19px;color:#fff;background:linear-gradient(180deg,#168df0,#0870c8);box-shadow:0 3px 0 #075797}.btn.aqua{background:linear-gradient(180deg,#18cfd3,#0aabb0);box-shadow:0 3px 0 #087f84}.table{width:100%;border-collapse:collapse;font-size:16px}.table th,.table td{text-align:left;padding:10px 8px;border-bottom:1px solid #e6eff6}.table th{background:#edf6fc}.status{display:inline-block;padding:4px 10px;border-radius:999px;background:#dff7e6;color:#147d37;font-weight:750}.attention{font-size:16px;line-height:2}.dot{display:inline-block;width:12px;height:12px;border-radius:50%;background:#ef3340;margin-right:10px}.lower{display:grid;grid-template-columns:1fr 1fr 1fr;gap:16px;margin-top:16px}.coming{padding:55px 30px;text-align:center}.coming h1{font-size:34px}.coming p{font-size:19px;color:var(--muted)}@media(max-width:1200px){.metrics{grid-template-columns:repeat(3,1fr)}.grid,.lower{grid-template-columns:1fr 1fr}.grid .card:last-child{grid-column:span 2}}@media(max-width:820px){.app{grid-template-columns:1fr}.sidebar{position:relative;height:auto}.metrics,.grid,.lower{grid-template-columns:1fr}.grid .card:last-child{grid-column:auto}.content{padding:18px}.topbar{padding:14px 18px}}

.top-right{display:flex;align-items:center;gap:20px;flex-wrap:wrap;justify-content:flex-end}
.db-badge{font-size:14px;font-weight:800;padding:8px 12px;border-radius:999px;border:1px solid}
.db-badge.connected{background:#e2f8e8;color:#147d37;border-color:#a9e4b9}
.db-badge.disconnected{background:#fff0f1;color:#b4232c;border-color:#f2b8bd}
.db-alert{background:#fff0f1;border:2px solid #ef9ba2;color:#8d1821;padding:15px 18px;border-radius:14px;margin-bottom:18px;font-size:16px}
.db-alert span{color:#6f3a3e}
.module-head{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:18px}
.module-head h1{font-size:34px;margin:0 0 5px}.module-head p{margin:0;color:var(--muted)}
.new-student-btn{width:auto;min-width:190px}
.success-alert{background:#e6f9ec;border:1px solid #a9e4b9;color:#147d37;padding:12px 16px;border-radius:12px;margin-bottom:16px;font-weight:750}
.student-form-card{max-width:1050px}
.student-form{font-size:16px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.form-grid label{display:grid;gap:7px;font-weight:800}.form-grid .wide{grid-column:1/-1}
.form-grid input,.form-grid textarea,.search-box{width:100%;border:2px solid #cbddea;border-radius:10px;padding:12px 13px;font:inherit;color:var(--ink);background:#fff}
.form-grid input:focus,.form-grid textarea:focus,.search-box:focus{outline:none;border-color:#1da8ef;box-shadow:0 0 0 3px rgba(29,168,239,.12)}
.form-actions{display:flex;gap:12px;margin-top:20px}.form-actions .btn{width:auto;min-width:160px;cursor:pointer}.btn.secondary{background:#6b7f91;box-shadow:0 3px 0 #526474}
.student-toolbar{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.search-box{max-width:420px}
.small-btn{display:inline-block;border:0;border-radius:9px;padding:9px 13px;text-decoration:none;background:#0d82d4;color:#fff;font-weight:800;font-size:14px;cursor:pointer}
.small-btn.light{background:#e8f2f8;color:#174b70}.small-btn.danger{background:#b8444c}.small-btn.good{background:#218c4b}
.inactive-check{font-size:15px;font-weight:700;margin-left:auto}.inactive-check input{transform:scale(1.2);margin-right:7px}
.table-wrap{overflow:auto;margin-top:14px}.student-table{font-size:15px}.student-table th{white-space:nowrap}.student-table td{vertical-align:middle}
.actions{display:flex;gap:7px;align-items:center}.actions form{margin:0}.status.off{background:#eceff2;color:#65717d}.inactive-row{opacity:.68}
.empty-state{text-align:center;padding:55px 20px;color:var(--muted)}.empty-state h2{color:var(--ink)}
@media(max-width:900px){.top-right{gap:8px}.db-badge{order:2}.form-grid{grid-template-columns:1fr}.form-grid .wide{grid-column:auto}.module-head{align-items:flex-start;flex-direction:column}.inactive-check{margin-left:0}}
