:root{font-family:DM Sans,sans-serif;color:#334155;background:#f8f9fa;font-synthesis:none;text-rendering:optimizeLegibility;--primary: #34d16f;--dark: #1e293b;--muted: #64748b;--border: #e2e8f0;--surface: #fff}*{box-sizing:border-box}body{margin:0;min-width:320px;min-height:100vh;letter-spacing:-.25px}button,input,select{font:inherit}button{cursor:pointer}button:disabled{cursor:wait;opacity:.65}.app-shell{min-height:100vh}.sidebar{position:fixed;inset:0 auto 0 0;z-index:20;display:flex;width:260px;flex-direction:column;padding:30px 20px 22px;color:#fff;background:var(--dark)}.brand{margin:0 0 36px 8px;color:var(--primary);font-size:27px;font-weight:700;letter-spacing:-1px}.sidebar nav{display:grid;gap:5px}.nav-item{width:100%;padding:12px 14px;border:0;border-radius:8px;color:#a3b2c5;background:transparent;text-align:left;font-size:14px;transition:.18s ease}.nav-item:hover{color:#fff;background:#ffffff0e}.nav-item.active{color:#fff;background:var(--primary);box-shadow:0 4px 12px #34d16f4d}.sidebar-footer{display:grid;gap:8px;margin-top:auto}.sidebar-action{padding:11px;border:1px solid #475569;border-radius:8px;color:#b7c2d0;background:transparent;font-size:12px;font-weight:700}.sidebar-action.danger{border-color:#ef4444;color:#f77;font-size:13px}.main-content{width:calc(100% - 260px);min-height:100vh;margin-left:260px;padding:38px 40px 60px}.page-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;margin-bottom:25px}.page-heading h1{margin:0 0 6px;color:var(--dark);font-size:26px;letter-spacing:-.8px}.eyebrow,.filter-caption{margin:0 0 7px;color:#94a3b8;font-size:10px;font-weight:700;letter-spacing:1.1px}.welcome{display:flex;align-items:center;gap:8px;margin:0;color:var(--muted);font-size:13px;flex-wrap:wrap}.role-badge{display:inline-flex;align-items:center;padding:4px 9px;border-radius:20px;color:#fff;background:#64748b;font-size:9px;font-weight:700;letter-spacing:.4px}.role-badge.global{background:#8b5cf6}.role-badge.school{background:#3b82f6}.filter-card,.panel{margin-bottom:20px;padding:20px;border:1px solid var(--border);border-radius:12px;background:var(--surface);box-shadow:0 2px 8px #0f172a08}.filter-caption{margin-bottom:15px}.filters-grid{display:grid;grid-template-columns:repeat(4,minmax(130px,1fr));gap:13px;align-items:end}.field{display:grid;min-width:0;gap:6px;color:var(--muted);font-size:10px;font-weight:700;letter-spacing:.45px;text-transform:uppercase}.field input,.field select,.field textarea,.inline-form input,.search-input,.panel input:not([type=hidden]),.panel select{width:100%;min-width:0;min-height:42px;padding:10px 12px;border:1px solid var(--border);border-radius:8px;color:#334155;background:#f8fafc;font-size:13px;letter-spacing:0;text-transform:none}.field textarea{resize:vertical}.field input:focus,.field select:focus,.search-input:focus,.panel input:focus,.panel select:focus{outline:2px solid #34d16f50;border-color:var(--primary);background:#fff}.stats-grid{display:grid;grid-template-columns:repeat(4,minmax(160px,1fr));gap:14px;margin-bottom:20px}.stats-grid.compact{grid-template-columns:repeat(5,minmax(130px,1fr))}.stat-card{display:grid;align-content:center;min-height:108px;padding:18px;border:1px solid var(--border);border-radius:12px;background:#fff;box-shadow:0 2px 8px #0f172a08}.stat-card span{color:var(--muted);font-size:10px;font-weight:700;letter-spacing:.65px;text-transform:uppercase}.stat-card strong{margin-top:8px;overflow-wrap:anywhere;color:var(--dark);font-size:23px;line-height:1.15}.panel-title{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:17px}.panel-title h2{margin:0;color:var(--dark);font-size:16px}.panel-title p{margin:5px 0 0;color:var(--muted);font-size:12px}.table-wrap{overflow-x:auto;border:1px solid var(--border);border-radius:9px}table{width:100%;border-collapse:collapse;text-align:left}th{padding:12px 14px;border-bottom:1px solid var(--border);color:var(--muted);background:#f8fafc;font-size:10px;font-weight:700;text-transform:uppercase;white-space:nowrap}td{padding:12px 14px;border-bottom:1px solid #edf1f5;color:#475569;font-size:12px;vertical-align:middle}tbody tr:last-child td{border-bottom:0}tbody tr:hover td{background:#fbfdfb}.empty-cell{height:92px;color:#94a3b8;text-align:center}.loading-indicator{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:44px;color:#64748b;font-size:12px;font-weight:600}.loading-spinner{width:20px;height:20px;flex:0 0 auto;border:3px solid #dcfce7;border-top-color:#22c55e;border-radius:50%;animation:loading-spin .75s linear infinite}.table-action{padding:5px 9px;border:1px solid #dbe3ec;border-radius:6px;color:#475569;background:#fff;font-size:11px;font-weight:700}.table-action:hover{border-color:var(--primary);color:#16a34a}.danger-text{color:#ef4444}.danger-text:hover{border-color:#ef4444;color:#dc2626}.toolbar{display:flex;align-items:end;gap:12px;margin:0 0 16px;flex-wrap:wrap}.toolbar .search-input{flex:1 1 240px;max-width:420px}.button{display:inline-flex;align-items:center;justify-content:center;min-height:39px;padding:9px 14px;border:1px solid transparent;border-radius:8px;font-size:12px;font-weight:700;white-space:nowrap;transition:.15s ease}.button.primary{border-color:var(--primary);color:#fff;background:var(--primary);box-shadow:0 3px 8px #34d16f36}.button.primary:hover{filter:brightness(.96);transform:translateY(-1px)}.button.secondary{border-color:var(--border);color:#475569;background:#fff}.button.secondary:hover{border-color:#aebdcb;background:#f8fafc}.button.danger-button{border-color:#dc2626;color:#fff;background:#dc2626;box-shadow:0 3px 8px #dc262633}.button.danger-button:hover{background:#b91c1c}.confirm-dialog-content{display:grid;gap:18px}.confirm-dialog-content>p{margin:0;color:#475569;font-size:14px;line-height:1.6}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(180px,1fr));gap:15px}.form-actions{display:flex;align-items:end;gap:9px;flex-wrap:wrap}.inline-form{display:flex;align-items:center;gap:10px;margin-top:16px;flex-wrap:wrap}.inline-form input{flex:1 1 170px}.university-picker{display:grid;gap:8px;padding:10px;border:1px solid var(--border);border-radius:10px;background:#f8fafc}.university-picker>input[type=search]{min-height:38px}.university-picker-actions{display:flex;align-items:center;gap:10px;color:var(--muted);font-size:11px;flex-wrap:wrap}.university-picker-actions span{margin-right:auto;font-weight:700}.university-picker-options{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:5px;max-height:220px;overflow-y:auto;padding:6px;border:1px solid var(--border);border-radius:8px;background:#fff}.university-picker-option{display:flex;align-items:center;gap:8px;padding:7px;border-radius:6px;color:#475569;font-size:12px;cursor:pointer}.university-picker-option:hover{background:#f0fdf4}.university-picker-option input[type=checkbox]{width:16px;min-width:16px;height:16px;min-height:16px;margin:0;accent-color:var(--primary)}.student-details{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;padding:4px}.student-details>div{display:grid;align-content:start;gap:5px;padding:12px;border:1px solid var(--border);border-radius:8px;background:#f8fafc}.student-details strong{margin-bottom:3px;color:var(--dark);font-size:11px}.student-details span{color:#475569;font-size:11px}.student-details td{padding:10px}.structure-list{display:grid;gap:13px}.course-roster{display:grid;min-width:150px;gap:7px}.course-roster-actions{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.representative-courses{display:grid;justify-items:start;gap:6px;min-width:150px}.course-student-list{display:grid;max-height:150px;min-width:150px;gap:5px;overflow:auto;padding:7px;border:1px solid var(--border);border-radius:7px;background:#f8fafc}.course-student-item{display:flex;justify-content:space-between;gap:10px;color:#475569;font-size:11px}.course-student-item small{flex:0 0 auto;color:#94a3b8;font-size:10px}.structure-card{border:1px solid var(--border);border-radius:11px;background:#fff;box-shadow:0 2px 8px #0f172a08}.structure-card summary{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:17px 20px;color:var(--dark);font-weight:700;cursor:pointer;list-style-position:inside}.structure-content{padding:0 20px 20px}.structure-content h3{margin:15px 0 8px;color:var(--muted);font-size:10px;text-transform:uppercase}.chip-row{display:flex;gap:7px;flex-wrap:wrap}.chip{padding:5px 11px;border:1px solid var(--border);border-radius:30px;color:#475569;background:#f1f5f9;font-size:11px}.muted{color:var(--muted);font-size:12px}.auth-shell{display:grid;min-height:100vh;place-items:center;padding:24px;background:linear-gradient(135deg,#f8fafc,#e2e8f0)}.auth-card{width:min(100%,450px);padding:40px;border:1px solid #fff;border-radius:20px;background:#fff;box-shadow:0 20px 35px #0f172a17}.auth-brand{margin-bottom:30px;text-align:center}.auth-brand h1{margin:0;color:var(--primary);font-size:32px;font-weight:700;letter-spacing:-1px;text-transform:uppercase}.auth-brand p{margin:4px 0 0;color:var(--muted);font-size:13px;font-weight:500}.auth-card form{display:grid;gap:17px}.auth-card .field{color:var(--dark);font-size:12px;letter-spacing:0}.auth-card .field input{min-height:49px;padding:13px 15px;border:2px solid #f1f5f9;border-radius:11px;font-size:14px}.password-input{position:relative}.password-input input{padding-right:60px!important}.show-password{position:absolute;top:50%;right:12px;transform:translateY(-50%);border:0;color:#16a34a;background:transparent;font-size:10px;font-weight:700;text-transform:uppercase}.submit-button{min-height:50px;border:0;border-radius:11px;color:#fff;background:var(--primary);box-shadow:0 4px 14px #34d16f4d;font-size:14px;font-weight:700}.text-button{border:0;color:#16a34a;background:transparent;font-size:12px;font-weight:700}.centered{justify-self:center}.form-error{margin:-5px 0 0;color:#dc2626;font-size:12px}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:50;display:grid;place-items:center;padding:18px;background:#0f172a80;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px)}.modal-card{width:min(100%,440px);padding:24px;border-radius:15px;background:#fff;box-shadow:0 25px 50px #0003}.modal-card form{display:grid;gap:14px}.modal-actions{display:flex;justify-content:end;gap:8px}.icon-button{border:0;color:inherit;background:transparent;font-size:23px}.close-button{color:var(--muted)}.session-expired{display:grid;justify-items:center;gap:17px;padding-top:5px;text-align:center}.session-expired p{max-width:340px;margin:0;color:var(--muted);font-size:14px;line-height:1.6}.session-expired-icon{display:grid;width:54px;height:54px;place-items:center;border:5px solid #34d16f26;border-radius:50%;color:#fff;background:var(--primary);font-size:27px;font-weight:700}.session-expired .modal-actions{width:100%;margin-top:2px}.toast{position:fixed;z-index:100;right:22px;bottom:22px;display:flex;align-items:center;gap:11px;max-width:min(420px,calc(100vw - 32px));padding:14px 17px;border:1px solid var(--border);border-left:5px solid var(--primary);border-radius:10px;color:var(--dark);background:#fff;box-shadow:0 12px 30px #0f172a1a;font-size:13px;animation:toast-in .18s ease-out}.toast>span{display:grid;width:22px;height:22px;place-items:center;border-radius:50%;color:#fff;background:var(--primary);font-weight:700}.toast.error{border-left-color:#ef4444}.toast.error>span{background:#ef4444}.narrow-panel{max-width:520px}.narrow-panel form{display:grid;gap:15px}.mobile-header,.sidebar-scrim{display:none}@keyframes toast-in{0%{opacity:0;transform:translateY(7px)}to{opacity:1;transform:translateY(0)}}@keyframes loading-spin{to{transform:rotate(360deg)}}@media(max-width:1020px){.main-content{padding-right:24px;padding-left:24px}.stats-grid,.filters-grid{grid-template-columns:repeat(2,minmax(140px,1fr))}}@media(max-width:720px){.sidebar{z-index:42;transform:translate(-105%);transition:transform .24s ease}.sidebar.open{transform:translate(0)}.sidebar-scrim{position:fixed;top:0;right:0;bottom:0;left:0;z-index:40;display:block;border:0;background:#02061770}.mobile-header{position:fixed;inset:0 0 auto;z-index:35;display:flex;height:58px;align-items:center;gap:14px;padding:0 17px;color:#fff;background:var(--dark);box-shadow:0 2px 5px #0002}.mobile-header .icon-button{color:#fff;font-size:20px}.main-content{width:100%;margin-left:0;padding:82px 18px 40px}.desktop-logout{display:none}.page-heading h1{font-size:21px}.welcome{font-size:12px}.panel,.filter-card{padding:16px}.form-grid{grid-template-columns:1fr}.stats-grid.compact{grid-template-columns:repeat(2,minmax(130px,1fr))}}@media(max-width:600px){.university-picker-options,.student-details{grid-template-columns:1fr}}@media(max-width:440px){.stats-grid{gap:9px}.stat-card{min-height:92px;padding:13px}.stat-card strong{font-size:19px}.filters-grid{grid-template-columns:1fr}.toolbar .button{flex:1}.auth-card{padding:30px 22px}.page-heading{margin-bottom:19px}}
