:root{--wil-navy:#12355b;--wil-blue:#2563eb;--wil-soft:#eef4ff;--wil-bg:#f4f7fb;--wil-text:#26364a;--wil-muted:#667085}
body{background:var(--wil-bg);color:var(--wil-text);font-family:"Segoe UI",Tahoma,sans-serif}.app-navbar{background:linear-gradient(110deg,#12355b,#175b91);box-shadow:0 2px 14px #12355b33}.navbar-brand strong{display:block;font-size:1rem;line-height:1.05}.navbar-brand small{display:block;font-size:.67rem;opacity:.72;font-weight:400}.brand-mark{display:grid;place-items:center;width:36px;height:36px;border-radius:11px;background:#fff;color:var(--wil-navy);font-weight:800}.user-chip{display:flex;align-items:center;gap:.65rem;color:#fff;font-size:.85rem}.user-avatar{display:grid;place-items:center;width:31px;height:31px;border-radius:50%;background:#ffffff24;border:1px solid #ffffff55;font-weight:700}
.sidebar{background:#fff;min-height:calc(100vh - 60px);border-right:1px solid #e3e9f2;position:sticky;top:60px;height:calc(100vh - 60px);overflow-y:auto}.sidebar-label,.page-eyebrow{font-size:.7rem;text-transform:uppercase;letter-spacing:.09em;color:#8492a6;font-weight:700}.sidebar-label{padding:.35rem .8rem .7rem}.sidebar .nav-link{color:#41536a;border-radius:.65rem;padding:.62rem .8rem;margin-bottom:.12rem;font-size:.9rem;transition:.15s}.sidebar .nav-link:hover{background:#f2f6fc;color:var(--wil-blue);transform:translateX(2px)}.sidebar .nav-link.active{background:linear-gradient(90deg,#e8f0ff,#f4f8ff);color:#174ea6;font-weight:700;box-shadow:inset 3px 0 #2563eb}
.app-main{max-width:1800px}.page-heading{display:flex;align-items:end;justify-content:space-between;margin-bottom:1.35rem}.page-heading h1{color:#1b2b41;font-weight:700}.page-date{font-size:.8rem;color:var(--wil-muted);background:#fff;border:1px solid #e3e9f2;border-radius:999px;padding:.4rem .8rem}.card{border:1px solid #e7ecf3;border-radius:.85rem;box-shadow:0 2px 7px #20334d0d}.dashboard-welcome{display:flex;justify-content:space-between;align-items:center;background:linear-gradient(110deg,#12355b,#236aa0);color:#fff;border-radius:1rem;padding:1.15rem 1.35rem;margin-bottom:1rem;box-shadow:0 8px 24px #12355b26}.dashboard-welcome strong,.dashboard-welcome span{display:block}.dashboard-welcome strong{font-size:1.1rem}.dashboard-welcome div span{opacity:.77;font-size:.84rem;margin-top:.2rem}.live-pill{font-size:.75rem;background:#ffffff1f;border:1px solid #ffffff3b;padding:.42rem .7rem;border-radius:999px}
.dashboard-card{color:inherit;text-decoration:none;transition:transform .15s,box-shadow .15s;border-top:4px solid #2563eb}.dashboard-card:hover{color:#0d6efd;transform:translateY(-3px);box-shadow:0 9px 22px #20334d1c}.dashboard-card .display-6{text-decoration:none;font-weight:700;color:#173f73}.row>.col-xl:nth-child(2) .dashboard-card{border-top-color:#7c3aed}.row>.col-xl:nth-child(3) .dashboard-card{border-top-color:#f59e0b}.row>.col-xl:nth-child(4) .dashboard-card{border-top-color:#0891b2}.row>.col-xl:nth-child(5) .dashboard-card{border-top-color:#16a34a}
.metric-total{font-size:.48em;font-weight:600;color:#8492a6}
.table-tools{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:.8rem}.table-search{max-width:340px;border-radius:.6rem;padding-left:2.2rem;background:#fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='%2398a2b3' viewBox='0 0 16 16'%3E%3Cpath d='M11.742 10.344a6.5 6.5 0 1 0-1.397 1.398h-.001l3.85 3.85 1.398-1.398-3.85-3.85zM12 6.5a5.5 5.5 0 1 1-11 0 5.5 5.5 0 0 1 11 0z'/%3E%3C/svg%3E") no-repeat .75rem center}.table-count{font-size:.78rem;color:var(--wil-muted);white-space:nowrap}.table-responsive{border-radius:.6rem}.table{margin-bottom:0}.table thead th{background:#f3f6fa;color:#42536a;font-size:.79rem;border-bottom:1px solid #dfe6ef;position:sticky;top:0;z-index:2}.table tbody td{padding:.8rem .65rem;border-color:#edf0f4;font-size:.88rem}.table tbody tr:hover>*{background:#f7faff}.table th{white-space:nowrap}.table th.sortable{cursor:pointer;user-select:none;padding-right:1.5rem;position:sticky}.table th.sortable:hover{background:#e7effc}.table th.sortable::after{content:'⇅';position:absolute;right:.45rem;color:#98a2b3;font-size:.8rem}.table th.sort-asc::after{content:'▲';color:#0d6efd}.table th.sort-desc::after{content:'▼';color:#0d6efd}.empty-table-row{text-align:center!important;color:#98a2b3!important;padding:2rem!important}
.btn{border-radius:.6rem;font-weight:600}.form-control,.form-select{border-color:#d8e0eb;border-radius:.55rem}.form-control:focus,.form-select:focus{border-color:#7aa7ed;box-shadow:0 0 0 .2rem #2563eb17}.committee-grid table{min-width:1100px}.committee-grid th:nth-child(1){width:12%}.committee-grid th:nth-child(2){width:24%}.committee-grid th:nth-child(n+3){width:21%}.committee-grid td{height:92px;padding:1rem;vertical-align:top}.role-lines{line-height:1.8}
@media(max-width:991.98px){.sidebar{position:static;height:auto;min-height:0;border-right:0;border-bottom:1px solid #e3e9f2}.sidebar nav{display:grid!important;grid-template-columns:repeat(2,1fr);gap:.2rem}.app-main{width:100%}.page-date{display:none}}@media(max-width:575.98px){.dashboard-welcome{align-items:flex-start}.live-pill{display:none!important}.page-heading{margin-bottom:1rem}.table-tools{align-items:stretch;flex-direction:column}.table-search{max-width:none}.sidebar .nav-link{font-size:.82rem}}
@media print{.navbar,.sidebar,.btn,form,.table-tools{display:none!important}main{width:100%!important}.card{box-shadow:none}.table th.sortable::after{display:none}}

/* Readable expandable detail rows */
.table tbody td{padding:.9rem .75rem;font-size:.92rem;line-height:1.55;vertical-align:middle;border-color:#e5ebf2}
.table td code{font-size:.84rem;color:#c2185b}.table td .btn{white-space:nowrap}
tr.collapse[id^="student-detail-"]>td,tr.collapse[id^="faculty-detail-"]>td{padding:1.25rem!important;background:#f3f7fc!important;border-top:0!important;border-bottom:3px solid #d7e2ef!important}
tr.collapse[id^="student-detail-"]:hover>td,tr.collapse[id^="faculty-detail-"]:hover>td{background:#f3f7fc!important}
tr.collapse[id^="student-detail-"] .row,tr.collapse[id^="faculty-detail-"] .row{margin:0;gap:.75rem}
tr.collapse[id^="student-detail-"] .row>div,tr.collapse[id^="faculty-detail-"] .row>div{background:#fff;border:1px solid #dfe7f1;border-radius:.75rem;padding:1rem;min-height:90px;box-shadow:0 2px 5px #12355b0a;flex:1 1 260px;width:auto}
tr.collapse[id^="student-detail-"] .small.text-secondary,tr.collapse[id^="faculty-detail-"] .small.text-secondary{font-size:.76rem;font-weight:700;color:#64748b!important;margin-bottom:.35rem}
tr.collapse[id^="student-detail-"] .fs-4,tr.collapse[id^="faculty-detail-"] .fs-4{color:#174ea6}.table td{overflow-wrap:anywhere}.table td:last-child .d-flex{min-width:max-content}
.person-pills{display:flex;flex-wrap:wrap;gap:.4rem}.person-pills>span{display:inline-flex;background:#eef4ff;color:#24496f;border:1px solid #d5e3f5;border-radius:999px;padding:.32rem .65rem;font-size:.8rem;line-height:1.25}
@media(max-width:1200px){.table tbody td{font-size:.86rem;padding:.75rem .55rem}.table td .btn{padding:.35rem .55rem}}
.faculty-table th:first-child,.faculty-table td:first-child{min-width:165px}.faculty-table th:nth-child(2),.faculty-table td:nth-child(2){min-width:90px}.faculty-table th:nth-last-child(2),.faculty-table td:nth-last-child(2){min-width:110px}.faculty-table td:last-child .d-flex{min-width:0;max-width:260px;gap:.35rem!important}.faculty-table td:last-child form{margin:0}
