:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--surface-page:#0b192c;--surface-card:#1a365d;--surface-elevated:#234876;--action-primary:#2b6cb0;--action-primary-hover:#3182ce;--action-primary-text:#fff;--text-body:#e2e8f0;--text-muted:#a0aec0;--border:#2d3748;--danger:#fc8181;--danger-bg:#fc81811a;--success:#68d391;--success-bg:#68d3911a;--font-family:"Inter", "Roboto", sans-serif;--shadow-sm:0 1px 3px #0003;--shadow-md:0 4px 6px -1px #0000004d;--shadow-lg:0 10px 25px #0006;--radius-sm:4px;--radius-md:8px;--radius-lg:12px;--focus-ring:#2b6cb04d;--semester-1:#2b6cb0;--semester-2:#2c5282;--semester-3:#63b3ed;--semester-4:#1a7f64;--semester-5:#3182ce;--semester-6:#6b46c1;--semester-7:#2c7a7b;--semester-8:#b7791f;--semester-9:#c05621;--semester-10:#9b2c2c;--motion-fast:.15s;--motion-base:.2s;--motion-slow:.3s;--ease-out:cubic-bezier(0, 0, .2, 1);--ease-in-out:cubic-bezier(.4, 0, .2, 1);--ease-spring:cubic-bezier(.34, 1.56, .64, 1)}[data-theme=light]{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--surface-page:#f1f5f9;--surface-card:#fff;--surface-elevated:#e2e8f0;--action-primary:#2563eb;--action-primary-hover:#1d4ed8;--action-primary-text:#fff;--text-body:#1e293b;--text-muted:#64748b;--border:#cbd5e1;--danger:#dc2626;--danger-bg:#dc262614;--success:#16a34a;--success-bg:#16a34a14;--font-family:"Inter", "Roboto", sans-serif;--shadow-sm:0 1px 3px #00000014;--shadow-md:0 4px 6px -1px #0000001a;--shadow-lg:0 10px 25px #0000001f;--radius-sm:4px;--radius-md:8px;--radius-lg:12px;--focus-ring:#2563eb4d;--semester-1:#2b6cb0;--semester-2:#2c5282;--semester-3:#63b3ed;--semester-4:#21a37f;--semester-5:#3182ce;--semester-6:#7c3aed;--semester-7:#0f766e;--semester-8:#b45309;--semester-9:#c2410c;--semester-10:#b91c1c;--motion-fast:.15s;--motion-base:.2s;--motion-slow:.3s;--ease-out:cubic-bezier(0, 0, .2, 1);--ease-in-out:cubic-bezier(.4, 0, .2, 1);--ease-spring:cubic-bezier(.34, 1.56, .64, 1)}*{box-sizing:border-box;margin:0;padding:0}body{background-color:var(--surface-page);color:var(--text-body);font-family:var(--font-family);-webkit-font-smoothing:antialiased;min-height:100vh;transition:background-color .3s,color .3s}body,.panel,.navbar,.form-control,.rbc-calendar,.data-table th,.data-table td{transition:background-color .3s,color .3s,border-color .3s,box-shadow .3s}h1,h2,h3,h4{margin-bottom:1rem;font-weight:600}a{color:var(--action-primary);text-decoration:none}.app-container{flex-direction:column;min-height:100vh;display:flex}.navbar{background-color:var(--surface-card);border-bottom:1px solid var(--border);box-shadow:var(--shadow-md);justify-content:space-between;align-items:center;padding:1rem 2rem;display:flex}.navbar h2{margin:0;font-size:1.25rem}.main-content{flex:1;width:100%;max-width:1200px;margin:0 auto;padding:2rem}.panel{background-color:var(--surface-card);box-shadow:var(--shadow-md);border:1px solid var(--border);background:linear-gradient(180deg, var(--surface-card) 0%, color-mix(in srgb, var(--surface-card) 98%, var(--action-primary)) 100%);border-radius:8px;margin-bottom:1.5rem;padding:1.5rem}.navbar-brand{flex-wrap:wrap;align-items:center;gap:.75rem;display:flex}.navbar-brand-link{color:inherit;align-items:center;gap:.75rem;text-decoration:none;display:flex}.header-logo{object-fit:cover;border-radius:8px;width:40px;height:40px}.navbar{flex-wrap:wrap}.navbar-links{flex-wrap:wrap;align-items:center;gap:.5rem;display:flex}@media (width<=768px){.navbar{flex-direction:column;align-items:stretch;gap:1rem;padding:1rem}.navbar-links{justify-content:flex-start;width:100%}.main-content,.panel{padding:1rem}.data-table th,.data-table td{padding:.75rem}.form-control{padding:.65rem}}.form-group{margin-bottom:1.25rem}.form-group label{color:var(--text-muted);margin-bottom:.5rem;font-size:.875rem;display:block}.form-control{background-color:var(--surface-page);border:1px solid var(--border);width:100%;color:var(--text-body);font-family:var(--font-family);border-radius:4px;padding:.75rem;transition:border-color .2s,box-shadow .2s}.form-control:focus{border-color:var(--action-primary);box-shadow:0 0 0 2px var(--focus-ring);outline:none}textarea.form-control{resize:vertical;min-height:100px}.btn{cursor:pointer;font-weight:500;font-family:var(--font-family);border:none;border-radius:4px;justify-content:center;align-items:center;padding:.75rem 1.5rem;font-size:1rem;transition:all .2s;display:inline-flex}.btn-primary{background-color:var(--action-primary);color:#fff}.btn-primary:hover{background-color:var(--action-primary-hover);transform:translateY(-1px)}.btn-secondary{border:1px solid var(--border);color:var(--text-body);background-color:#0000}.btn-secondary:hover{background-color:var(--surface-page)}.btn-danger{background-color:var(--danger-bg);border:1px solid var(--danger);color:var(--danger)}.btn-danger:hover{background-color:color-mix(in srgb, var(--danger-bg) 80%, var(--danger))}.btn-sm{padding:.45rem .7rem;font-size:.8rem}.btn-block{width:100%}.alert{border-radius:4px;margin-bottom:1rem;padding:1rem;font-size:.875rem}.alert-error{background-color:var(--danger-bg);color:var(--danger);border:1px solid var(--danger)}.alert-success{background-color:var(--success-bg);color:var(--success);border:1px solid var(--success)}.dashboard-grid{grid-template-columns:1fr;gap:1.5rem;display:grid}@media (width>=768px){.dashboard-grid{grid-template-columns:repeat(2,1fr)}}.data-table{border-collapse:collapse;width:100%}.data-table th,.data-table td{text-align:left;border-bottom:1px solid var(--border);padding:1rem}.data-table th{color:var(--text-muted);font-size:.875rem;font-weight:500}.data-table tr:hover{background-color:color-mix(in srgb, var(--surface-card) 97%, var(--text-body))}.auth-container{background:radial-gradient(circle at 15% 20%, color-mix(in srgb, var(--action-primary) 38%, transparent) 0 14rem, transparent 28rem), radial-gradient(circle at 85% 75%, #b7791f2e 0 10rem, transparent 24rem), linear-gradient(135deg, var(--surface-page), color-mix(in srgb, var(--surface-page) 88%, var(--action-primary)));justify-content:center;align-items:center;min-height:100vh;padding:clamp(1rem,4vw,3rem);display:grid;position:relative;overflow:hidden auto}.auth-container:before{content:"";background-image:linear-gradient(color-mix(in srgb, var(--text-body) 7%, transparent) 1px, transparent 1px), linear-gradient(90deg, color-mix(in srgb, var(--text-body) 7%, transparent) 1px, transparent 1px);pointer-events:none;background-size:44px 44px;position:absolute;inset:0;-webkit-mask-image:radial-gradient(circle,#000,#0000 72%);mask-image:radial-gradient(circle,#000,#0000 72%)}.auth-shell{z-index:1;border:1px solid color-mix(in srgb, var(--border) 78%, var(--action-primary));background:color-mix(in srgb, var(--surface-card) 86%, transparent);width:min(1080px,100%);min-height:min(680px,100vh - 4rem);box-shadow:var(--shadow-lg);border-radius:28px;grid-template-columns:minmax(0,1.1fr) minmax(340px,430px);align-items:stretch;display:grid;position:relative;overflow:hidden}.auth-brand-panel{color:#fff;background:linear-gradient(135deg,#0b192ceb,#1a365dc7),radial-gradient(circle at 20% 20%,#63b3ed59,#0000 34rem);flex-direction:column;justify-content:flex-end;min-height:100%;padding:clamp(2rem,5vw,4.5rem);display:flex;position:relative}.auth-brand-panel:after{content:"";opacity:.28;pointer-events:none;background-image:radial-gradient(circle,#ffffff29 1px,#0000 1px);background-size:18px 18px;position:absolute;inset:0}.auth-wordmark-large{letter-spacing:-.12em;color:#ffffff1c;-webkit-user-select:none;user-select:none;font-size:clamp(4.5rem,13vw,10rem);font-weight:900;line-height:.85;position:absolute;top:clamp(1.25rem,4vw,3rem);left:clamp(1.5rem,5vw,4rem)}.auth-brand-copy{z-index:1;max-width:560px;position:relative}.auth-brand-copy h1{letter-spacing:-.06em;margin:.75rem 0 1rem;font-size:clamp(2rem,4vw,4.4rem);line-height:.95}.auth-brand-copy p{color:#ffffffc2;max-width:34rem;margin:0;font-size:1.05rem;line-height:1.7}.auth-panel{width:100%;max-width:none;box-shadow:none;background:linear-gradient(180deg, color-mix(in srgb, var(--surface-card) 96%, transparent), var(--surface-card));border:0;border-radius:0;flex-direction:column;justify-content:center;padding:clamp(1.5rem,4vw,3rem);display:flex}.login-logo-container{color:var(--text-muted);letter-spacing:.08em;text-transform:uppercase;align-items:center;gap:.75rem;margin-bottom:2rem;font-size:.82rem;font-weight:700;display:flex}.login-wordmark{border:1px solid var(--border);background:linear-gradient(135deg, var(--action-primary), color-mix(in srgb, var(--action-primary) 72%, #fff));width:78px;height:46px;color:var(--action-primary-text);letter-spacing:-.12em;box-shadow:0 18px 40px color-mix(in srgb, var(--action-primary) 28%, transparent);border-radius:14px 4px;justify-content:center;align-items:center;font-weight:950;display:inline-flex}.auth-heading{margin-bottom:1.5rem}.auth-heading h2{letter-spacing:-.06em;margin:.35rem 0 .45rem;font-size:clamp(2rem,5vw,3rem)}.auth-heading p{color:var(--text-muted);margin:0;line-height:1.6}.password-field{position:relative}.password-input{padding-right:2.75rem}.password-toggle{border-radius:var(--radius-sm);width:44px;height:44px;color:var(--text-muted);cursor:pointer;background:0 0;border:0;justify-content:center;align-items:center;padding:0;display:inline-flex;position:absolute;top:1.85rem;right:.45rem}.password-toggle:hover,.password-toggle:focus-visible{color:var(--action-primary-hover)}.auth-submit{min-height:48px;margin-top:.5rem}@media (width<=820px){.auth-shell{grid-template-columns:1fr;min-height:auto}.auth-brand-panel{min-height:260px}}@media (width<=520px){.auth-container{padding:0}.auth-shell{border-inline:0;border-radius:0;min-height:100vh}.auth-brand-panel{min-height:170px;padding:1.5rem}.auth-wordmark-large{font-size:clamp(4rem,24vw,6rem)}.auth-brand-copy h1{font-size:clamp(1.55rem,8vw,2.1rem)}.auth-brand-copy p{display:none}.auth-panel{padding:1.35rem}.login-logo-container{margin-bottom:1.25rem}.auth-heading{margin-bottom:1.15rem}}.animate-spin{animation:1s linear infinite spin}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.rbc-calendar{background-color:var(--surface-card);color:var(--text-body);font-family:var(--font-family);border-radius:8px}.rbc-toolbar{flex-wrap:wrap;gap:.5rem;margin-bottom:1rem;padding:.25rem 0}.rbc-toolbar button{color:var(--text-body)!important;background-color:color-mix(in srgb, var(--surface-card) 92%, var(--text-body))!important;border:1px solid var(--border)!important;cursor:pointer!important;border-radius:4px!important;padding:.35rem .75rem!important;font-size:.875rem!important;transition:background-color .2s!important}.rbc-toolbar button:hover,.rbc-toolbar button.rbc-active{background-color:var(--action-primary)!important;color:var(--action-primary-text)!important;border-color:var(--action-primary)!important}.rbc-toolbar-label{color:var(--text-body);font-size:1rem;font-weight:600}.rbc-header{color:var(--text-muted);text-transform:uppercase;padding:.5rem 0;font-size:.8rem;border-bottom:1px solid var(--border)!important}.rbc-month-view,.rbc-time-view,.rbc-agenda-view{border-radius:6px;overflow:hidden;border:1px solid var(--border)!important}.rbc-day-bg,.rbc-time-slot{background-color:var(--surface-card)!important}.rbc-off-range-bg{background-color:color-mix(in srgb, var(--surface-card) 80%, #000)!important}.rbc-today{background-color:color-mix(in srgb, var(--surface-card) 88%, var(--action-primary))!important}.rbc-date-cell{color:var(--text-muted);padding:.25rem .5rem}.rbc-date-cell.rbc-now{color:var(--action-primary-hover);font-weight:700}.rbc-day-slot .rbc-time-slot,.rbc-timeslot-group{border-top:1px solid var(--border)!important}.rbc-time-content,.rbc-time-header-content{border-left:1px solid var(--border)!important}.rbc-label{font-size:.75rem;color:var(--text-muted)!important}.rbc-row-segment .rbc-event{border-radius:4px}.rbc-event:focus{outline:2px solid var(--action-primary-hover)}.rbc-show-more{color:var(--action-primary-hover)!important;background:0 0!important}@media (width<=600px){.rbc-toolbar{flex-direction:column;align-items:stretch}.rbc-toolbar button{text-align:center;width:100%}.rbc-btn-group{width:100%;display:flex}.rbc-btn-group button{flex:1}.calendar-panel{height:420px!important;padding:.75rem!important}}@media (width<=640px){.navbar{flex-wrap:wrap;gap:.5rem;padding:.75rem 1rem}.navbar-links{flex-wrap:wrap;gap:.5rem;width:100%;display:flex}.navbar-links .btn{flex:1;padding:.5rem .75rem;font-size:.8rem}.main-content{padding:1rem}.data-table th:nth-child(4),.data-table td:nth-child(4){display:none}}input[type=time].form-control,input[type=date].form-control{color-scheme:inherit;color:var(--text-body);background-color:var(--surface-page)}input[type=date].form-control{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;color:var(--text-body);background-color:var(--surface-page)}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}.time-picker-wrapper{flex:1;position:relative}.time-picker-row{align-items:center;gap:.5rem;display:flex}.time-picker-btn{border-radius:.375rem;justify-content:center;align-items:center;min-width:44px;padding:.5rem;display:inline-flex}.time-picker-dropdown{border:1px solid var(--border);background:var(--surface-card);max-height:240px;box-shadow:var(--shadow-md);z-index:50;border-radius:0 0 .375rem .375rem;margin-top:.25rem;position:absolute;top:100%;left:0;right:0;overflow-y:auto}.time-picker-option{cursor:pointer;padding:8px}.time-picker-option:hover{background-color:color-mix(in srgb, var(--surface-card) 92%, var(--text-body))}.user-badge{color:var(--text-muted);border:1px solid var(--border);white-space:nowrap;background:#ffffff0f;border-radius:999px;padding:.2rem .75rem;font-size:.78rem}.user-badge-role{color:var(--action-primary-hover);text-transform:uppercase;margin-left:.4rem;font-size:.68rem;font-weight:700}.nav-actions{align-items:center;gap:.5rem;display:flex}.nav-icon-btn{justify-content:center;align-items:center;padding:.5rem;line-height:1;display:flex}.nav-schedule-btn{margin-left:.5rem;margin-right:.5rem}.nav-schedule-btn--active{opacity:.5;cursor:not-allowed}.field-error{color:var(--danger);margin-top:.5rem;font-size:.875rem}.form-help{color:var(--text-muted);margin-top:.4rem;font-size:.8rem}.btn:disabled{opacity:.4;cursor:not-allowed;transform:none!important}.admin-users-page{max-width:1100px}.admin-users-header{justify-content:space-between;align-items:flex-end;gap:1rem;margin-bottom:1.5rem;display:flex}.section-eyebrow{color:var(--action-primary-hover);letter-spacing:.08em;text-transform:uppercase;margin-bottom:.4rem;font-size:.75rem;font-weight:700}.section-subtitle{color:var(--text-muted);max-width:620px}.admin-users-panel{overflow:hidden}.admin-users-toolbar{justify-content:space-between;align-items:flex-end;gap:1rem;margin-bottom:1rem;display:flex}.admin-users-search{flex:1;max-width:420px;margin-bottom:0}.admin-users-count{color:var(--text-muted);white-space:nowrap;font-size:.875rem}.empty-state{border:1px dashed var(--border);border-radius:var(--radius-md);color:var(--text-muted);text-align:center;padding:2rem}.empty-state h3{color:var(--text-body);margin-bottom:.5rem}.admin-users-table-wrapper{overflow-x:auto}.status-badge{border:1px solid var(--border);white-space:nowrap;border-radius:999px;padding:.35rem .65rem;font-size:.75rem;font-weight:700;line-height:1;display:inline-flex}.role-badge{color:var(--action-primary-hover)}.status-badge--active{background-color:var(--success-bg);border-color:var(--success);color:var(--success)}.status-badge--inactive{background-color:var(--danger-bg);border-color:var(--danger);color:var(--danger)}.admin-users-cards{display:none}.admin-user-form{background-color:color-mix(in srgb, var(--surface-card) 94%, var(--action-primary));border:1px solid var(--border);border-radius:var(--radius-md);margin-bottom:1rem;padding:1rem}.admin-user-form-header{justify-content:space-between;align-items:flex-start;gap:1rem;margin-bottom:1rem;display:flex}.admin-user-form-header h3{margin-bottom:.25rem}.admin-user-form-header p{color:var(--text-muted);font-size:.875rem}.admin-user-form-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;display:grid}.admin-user-actions{flex-wrap:wrap;gap:.5rem;display:flex}@media (width<=640px){.admin-users-header,.admin-users-toolbar,.admin-user-form-header{flex-direction:column;align-items:stretch}.admin-user-form-grid{grid-template-columns:1fr}.admin-users-search{max-width:none}.admin-users-table-wrapper{display:none}.admin-users-cards{gap:.75rem;display:grid}.admin-user-card{background-color:color-mix(in srgb, var(--surface-card) 94%, var(--text-body));border:1px solid var(--border);border-radius:var(--radius-md);padding:1rem}.admin-user-card h3{margin-bottom:.25rem;font-size:1rem}.admin-user-card p,.admin-user-card small{color:var(--text-muted)}.admin-user-card-meta{flex-wrap:wrap;gap:.5rem;margin:.8rem 0;display:flex}.admin-user-actions .btn{flex:1}}
