:root{--light-bg-primary: #FFFFFF;--light-bg-secondary: #F8F9FA;--light-bg-tertiary: #F3F4F6;--light-bg-elevated: #FFFFFF;--light-text-primary: #1F2937;--light-text-secondary: #6B7280;--light-text-tertiary: #9CA3AF;--light-text-inverse: #FFFFFF;--light-accent-primary: #2563EB;--light-accent-primary-hover: #1E40AF;--light-accent-secondary: #3B82F6;--light-accent-tertiary: #60A5FA;--light-border-light: #E5E7EB;--light-border-medium: #D1D5DB;--light-border-dark: #9CA3AF;--light-success: #10B981;--light-success-bg: #D1FAE5;--light-success-text: #065F46;--light-warning: #F59E0B;--light-warning-bg: #FEF3C7;--light-warning-text: #92400E;--light-error: #EF4444;--light-error-bg: #FEE2E2;--light-error-text: #991B1B;--light-info: #3B82F6;--light-info-bg: #DBEAFE;--light-info-text: #1E40AF;--light-shadow-sm: 0 1px 2px rgba(0, 0, 0, .05);--light-shadow-md: 0 1px 3px rgba(0, 0, 0, .08);--light-shadow-lg: 0 4px 12px rgba(0, 0, 0, .12);--light-shadow-xl: 0 8px 16px rgba(0, 0, 0, .1)}:root{--theme-bg-primary: var(--light-bg-primary);--theme-bg-secondary: var(--light-bg-secondary);--theme-bg-tertiary: var(--light-bg-tertiary);--theme-bg-elevated: var(--light-bg-elevated);--theme-text-primary: var(--light-text-primary);--theme-text-secondary: var(--light-text-secondary);--theme-text-tertiary: var(--light-text-tertiary);--theme-text-inverse: var(--light-text-inverse);--theme-accent-primary: var(--light-accent-primary);--theme-accent-primary-hover: var(--light-accent-primary-hover);--theme-accent-secondary: var(--light-accent-secondary);--theme-accent-tertiary: var(--light-accent-tertiary);--theme-border-light: var(--light-border-light);--theme-border-medium: var(--light-border-medium);--theme-border-dark: var(--light-border-dark);--theme-success: var(--light-success);--theme-success-bg: var(--light-success-bg);--theme-success-text: var(--light-success-text);--theme-warning: var(--light-warning);--theme-warning-bg: var(--light-warning-bg);--theme-warning-text: var(--light-warning-text);--theme-error: var(--light-error);--theme-error-bg: var(--light-error-bg);--theme-error-text: var(--light-error-text);--theme-info: var(--light-info);--theme-info-bg: var(--light-info-bg);--theme-info-text: var(--light-info-text);--theme-shadow-sm: var(--light-shadow-sm);--theme-shadow-md: var(--light-shadow-md);--theme-shadow-lg: var(--light-shadow-lg);--theme-shadow-xl: var(--light-shadow-xl)}:root{--font-sans: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", "Roboto", "Oxygen", "Ubuntu", "Cantarell", sans-serif;--font-light: 300;--font-regular: 400;--font-medium: 500;--font-semibold: 600;--font-bold: 700;--text-xs: clamp(.7rem, .65rem + .25vw, .75rem);--text-sm: clamp(.8rem, .75rem + .25vw, .875rem);--text-base: clamp(.9rem, .85rem + .25vw, 1rem);--text-lg: clamp(1rem, .95rem + .25vw, 1.125rem);--text-xl: clamp(1.1rem, 1rem + .5vw, 1.25rem);--text-2xl: clamp(1.25rem, 1.15rem + .5vw, 1.5rem);--text-3xl: clamp(1.5rem, 1.35rem + .75vw, 1.875rem);--text-4xl: clamp(1.75rem, 1.5rem + 1vw, 2.25rem);--leading-tight: 1.25;--leading-normal: 1.5;--leading-relaxed: 1.75;--tracking-tight: -.02em;--tracking-normal: 0;--tracking-wide: .025em}:root{--space-0: 0;--space-1: .5rem;--space-2: 1rem;--space-3: 1.5rem;--space-4: 2rem;--space-5: 2.5rem;--space-6: 3rem;--space-8: 4rem;--space-10: 5rem;--space-12: 6rem}:root{--radius-sm: 4px;--radius-md: 8px;--radius-lg: 12px;--radius-xl: 16px;--radius-full: 9999px}:root{--transition-fast: .1s cubic-bezier(.4, 0, .2, 1);--transition-base: .2s cubic-bezier(.4, 0, .2, 1);--transition-slow: .3s cubic-bezier(.4, 0, .2, 1)}@media (prefers-reduced-motion: reduce){:root{--transition-fast: 0ms;--transition-base: 0ms;--transition-slow: 0ms}}:root{--z-base: 0;--z-dropdown: 100;--z-sticky: 200;--z-fixed: 300;--z-modal-backdrop: 400;--z-modal: 500;--z-popover: 600;--z-tooltip: 700}:root{--breakpoint-sm: 640px;--breakpoint-md: 768px;--breakpoint-lg: 1024px;--breakpoint-xl: 1440px;--breakpoint-2xl: 2560px}body{background-color:var(--theme-bg-secondary);color:var(--theme-text-primary);font-family:var(--font-sans);font-size:var(--text-base);line-height:var(--leading-normal);transition:background-color var(--transition-slow),color var(--transition-slow)}*{transition-property:background-color,border-color,color,fill,stroke;transition-duration:var(--transition-base);transition-timing-function:cubic-bezier(.4,0,.2,1)}button,input,select,textarea{transition-property:none}button:hover,input:focus,select:focus,textarea:focus{transition:all var(--transition-base)}.mega-menu-dropdown{z-index:9999!important;position:absolute!important}.btn,button,.btn-primary,.btn-secondary,.btn-danger,.btn-sm{min-height:44px;min-width:44px;padding:var(--space-2) var(--space-3)}@media (max-width: 768px){.btn-sm{min-height:44px;min-width:44px;padding:var(--space-2) var(--space-2)}}.btn-icon,.modal-close,.toast-close{min-height:44px;min-width:44px;padding:var(--space-2);display:inline-flex;align-items:center;justify-content:center}.btn-view,.filter-controls button,.filter-options button,.btn-advanced-toggle{min-height:44px;padding:var(--space-2) var(--space-3)}.filter-select,select.filter-select,.department-select,.status-select-compact{min-height:44px;padding:var(--space-2)}.equipment-card{cursor:pointer;-webkit-tap-highlight-color:rgba(0,0,0,.1)}.equipment-card .equipment-info h3{min-height:44px;display:flex;align-items:center;justify-content:center;cursor:pointer;padding:var(--space-1) 0;width:100%;text-align:center}.equipment-name-cell{min-height:44px;display:flex;align-items:center;cursor:pointer;padding:var(--space-1) 0}.btn-block,.btn-primary.btn-block{min-height:48px;width:100%;padding:var(--space-2) var(--space-3)}.bottom-nav-item{min-height:60px;min-width:60px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px}.student-nav-link,.admin-nav-link{min-height:44px;padding:var(--space-2) var(--space-3);display:inline-flex;align-items:center}input[type=text],input[type=date],input[type=email],input[type=password],input[type=search],textarea,.date-input{min-height:44px;padding:var(--space-2)}.search-input,input.search-input{min-height:48px;padding:var(--space-2) var(--space-3)}.pagination button,.pagination-btn{min-height:44px;min-width:44px;padding:var(--space-2)}.modal-close{min-height:44px;min-width:44px;font-size:var(--text-2xl);display:flex;align-items:center;justify-content:center}.filter-chip,.chip{min-height:36px;padding:6px 12px;display:inline-flex;align-items:center;gap:var(--space-1)}.filter-chip-remove,.chip-remove{min-height:28px;min-width:28px;padding:4px;display:inline-flex;align-items:center;justify-content:center}.availability-badge{pointer-events:none;-webkit-user-select:none;user-select:none}@media (max-width: 768px){.equipment-card .equipment-info h3:before,.equipment-name-cell:before{content:"";position:absolute;top:-8px;left:-8px;right:-8px;bottom:-8px;z-index:1}}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,.equipment-card:focus-visible,.student-kit-item:focus-visible{outline:3px solid var(--theme-accent-primary);outline-offset:2px}button:active,.btn:active,.equipment-card:active{transform:scale(.98);transition:transform .1s ease}@media (min-width: 768px) and (max-width: 1024px){.btn-sm{min-height:40px;min-width:40px}}@media (min-width: 1024px){.btn-sm{min-height:36px;min-width:auto;padding:6px 12px}.btn-icon{min-height:40px;min-width:40px}}@keyframes fadeSlideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.student-dashboard,.equipment-browse,.admin-main,.staff-main{animation:fadeSlideUp .4s ease-out;will-change:transform,opacity}.equipment-card,.student-card,.admin-card{animation:fadeIn .5s ease-out;animation-fill-mode:both}.equipment-grid .equipment-card:nth-child(1){animation-delay:0s}.equipment-grid .equipment-card:nth-child(2){animation-delay:.05s}.equipment-grid .equipment-card:nth-child(3){animation-delay:.1s}.equipment-grid .equipment-card:nth-child(4){animation-delay:.15s}.equipment-grid .equipment-card:nth-child(5){animation-delay:.2s}.equipment-grid .equipment-card:nth-child(6){animation-delay:.25s}.student-dashboard-grid .student-card:nth-child(1){animation-delay:0s}.student-dashboard-grid .student-card:nth-child(2){animation-delay:.1s}.student-dashboard-grid .student-card:nth-child(3){animation-delay:.2s}.student-dashboard-grid .student-card:nth-child(4){animation-delay:.3s}@keyframes scrollMomentum{0%{transform:translateY(0)}50%{transform:translateY(-10px)}to{transform:translateY(0)}}.pagination-scroll-indicator{animation:scrollMomentum 2s ease-in-out infinite}@keyframes overlayFadeIn{0%{opacity:0}to{opacity:1}}@keyframes modalSlideUp{0%{opacity:0;transform:translateY(50px) scale(.95)}to{opacity:1;transform:translateY(0) scale(1)}}.modal-overlay{animation:overlayFadeIn .2s ease-out}.modal-content{animation:modalSlideUp .3s cubic-bezier(.34,1.56,.64,1)}@keyframes toastSlideIn{0%{opacity:0;transform:translate(100px)}to{opacity:1;transform:translate(0)}}@keyframes toastSlideOut{0%{opacity:1;transform:translate(0)}to{opacity:0;transform:translate(100px)}}.toast{animation:toastSlideIn .3s cubic-bezier(.34,1.56,.64,1)}.toast.closing{animation:toastSlideOut .2s ease-in forwards}@keyframes skeletonShimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.skeleton,.loading-skeleton,.student-skeleton{background:linear-gradient(90deg,var(--theme-bg-tertiary) 0%,var(--theme-bg-secondary) 50%,var(--theme-bg-tertiary) 100%);background-size:200% 100%;animation:skeletonShimmer 1.5s ease-in-out infinite;will-change:background-position}.loading-spinner,.spinner{animation:spin 1s linear infinite;will-change:transform}@keyframes buttonPress{0%{transform:scale(1)}50%{transform:scale(.95)}to{transform:scale(1)}}button:active,.btn:active{animation:buttonPress .2s ease-out}.equipment-card,.student-card,.student-kit-item{transition:transform .2s cubic-bezier(.34,1.56,.64,1),box-shadow .2s ease-out}.equipment-card:hover,.student-card:hover{transform:translateY(-4px) scale(1.01);will-change:transform}.student-kit-item:hover{transform:translate(6px);will-change:transform}@keyframes refreshSpin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.pull-to-refresh-spinner{animation:refreshSpin 1s linear infinite}@keyframes pullBounce{0%,to{transform:translateY(0)}50%{transform:translateY(-5px)}}.pull-to-refresh-icon{animation:pullBounce 1s ease-in-out infinite}@keyframes chipPopIn{0%{opacity:0;transform:scale(.8)}to{opacity:1;transform:scale(1)}}.filter-chip,.chip{animation:chipPopIn .2s cubic-bezier(.34,1.56,.64,1)}@keyframes badgePulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.9;transform:scale(1.05)}}.availability-badge.availability-available{animation:badgePulse 2s ease-in-out infinite}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}.equipment-card,.student-card,.student-kit-item{transform:none!important}html{scroll-behavior:auto}}.equipment-card,.student-card,.modal-content,.toast,.loading-spinner,.skeleton,.pull-to-refresh-spinner{will-change:transform,opacity;transform:translateZ(0)}.animation-complete{will-change:auto}.scroll-snap-container{scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;scrollbar-width:none}.scroll-snap-container::-webkit-scrollbar{display:none}.scroll-snap-item{scroll-snap-align:start;scroll-snap-stop:always}.page-transition{width:100%;will-change:opacity,transform}.page-transition.fade{transition:opacity var(--transition-duration) ease-in-out}.page-transition.fade.entering,.page-transition.fade.entered{opacity:1}.page-transition.fade.exiting{opacity:0}.page-transition.fade-slide{transition:opacity var(--transition-duration) ease-in-out,transform var(--transition-duration) ease-in-out}.page-transition.fade-slide.entering,.page-transition.fade-slide.entered{opacity:1;transform:translateY(0)}.page-transition.fade-slide.exiting{opacity:0;transform:translateY(-10px)}.page-transition.fade-slide.entering{transform:translateY(10px);animation:fadeSlideIn var(--transition-duration) ease-out forwards}@keyframes fadeSlideIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.page-transition.slide{transition:transform var(--transition-duration) cubic-bezier(.4,0,.2,1)}.page-transition.slide.entering,.page-transition.slide.entered{transform:translate(0)}.page-transition.slide.exiting{transform:translate(-100%)}.page-transition.scale{transition:opacity var(--transition-duration) ease-in-out,transform var(--transition-duration) cubic-bezier(.34,1.56,.64,1)}.page-transition.scale.entering,.page-transition.scale.entered{opacity:1;transform:scale(1)}.page-transition.scale.exiting{opacity:0;transform:scale(.95)}.staggered-list .staggered-item{opacity:0;transform:translateY(20px);transition:opacity .3s ease-out,transform .3s ease-out;transition-delay:calc(var(--stagger-index) * var(--stagger-delay))}.staggered-list.mounted .staggered-item{opacity:1;transform:translateY(0)}.fade-in{opacity:0;transition:opacity var(--fade-duration) ease-out,transform var(--fade-duration) ease-out}.fade-in.visible{opacity:1;transform:translate(0)}.fade-in.up{transform:translateY(var(--fade-distance))}.fade-in.down{transform:translateY(calc(-1 * var(--fade-distance)))}.fade-in.left{transform:translate(var(--fade-distance))}.fade-in.right{transform:translate(calc(-1 * var(--fade-distance)))}.fade-in.none{transform:none}.slide-in{opacity:0;transition:opacity var(--slide-duration) ease-out,transform var(--slide-duration) cubic-bezier(.4,0,.2,1)}.slide-in.visible{opacity:1;transform:translate(0)}.slide-in.up{transform:translateY(var(--slide-distance))}.slide-in.down{transform:translateY(calc(-1 * var(--slide-distance)))}.slide-in.left{transform:translate(var(--slide-distance))}.slide-in.right{transform:translate(calc(-1 * var(--slide-distance)))}.scale-in{opacity:0;transform:scale(.9);transition:opacity var(--scale-duration) ease-out,transform var(--scale-duration) cubic-bezier(.34,1.56,.64,1)}.scale-in.visible{opacity:1;transform:scale(1)}.scale-in.center{transform-origin:center center}.scale-in.top{transform-origin:center top}.scale-in.bottom{transform-origin:center bottom}.scale-in.left{transform-origin:left center}.scale-in.right{transform-origin:right center}.hover-lift{transition:transform .2s ease-out,box-shadow .2s ease-out}.hover-lift:hover{transform:translateY(-4px);box-shadow:0 10px 20px -5px #0000001a,0 4px 6px -2px #0000000d}.hover-lift:active{transform:translateY(-2px)}.skeleton-shimmer{position:relative;overflow:hidden;background:var(--theme-bg-secondary)}.skeleton-shimmer:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(90deg,transparent,rgba(255,255,255,.15),transparent);animation:shimmer 1.5s infinite}@keyframes shimmer{0%{transform:translate(-100%)}to{transform:translate(100%)}}.pulse{animation:pulse 2s ease-in-out infinite}@keyframes pulse{0%,to{opacity:1}50%{opacity:.6}}.bounce{animation:bounce 1s ease-in-out infinite}@keyframes bounce{0%,to{transform:translateY(0)}50%{transform:translateY(-10px)}}.spin{animation:spin 1s linear infinite}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@media (prefers-reduced-motion: reduce){.page-transition,.staggered-list .staggered-item,.fade-in,.slide-in,.scale-in,.hover-lift{transition:none!important;animation:none!important}.page-transition.entering,.page-transition.entered,.staggered-list.mounted .staggered-item,.fade-in.visible,.slide-in.visible,.scale-in.visible{opacity:1;transform:none}.skeleton-shimmer:after{animation:none}.pulse,.bounce,.spin{animation:none}}:root{--color-primary: #000000;--color-secondary: #3b3737;--color-accent: #f36f21;--color-white: #FFFFFF;--color-surface: #F9FAFB;--color-border: #E5E7EB;--color-subtle: #9CA3AF;--color-muted: #6B7280;--color-body-text: #374151;--color-headings: #111827;--color-success: #10B981;--color-success-bg: #D1FAE5;--color-warning: #F59E0B;--color-warning-bg: #FEF3C7;--color-error: #EF4444;--color-error-bg: #FEE2E2;--color-info: #3B82F6;--color-info-bg: #DBEAFE;--color-available: #10B981;--color-unavailable: #EF4444;--color-reserved: #F59E0B;--color-maintenance: #6B7280;--bg-primary: #FFFFFF;--bg-secondary: #F9FAFB;--bg-tertiary: #F3F4F6;--bg-card: #FFFFFF;--bg-modal: #FFFFFF;--bg-overlay: rgba(0, 0, 0, .5);--text-primary: #111827;--text-secondary: #6B7280;--text-tertiary: #9CA3AF;--text-inverse: #FFFFFF;--color-success-pale: #DCFCE7;--color-error-pale: #FEE2E2;--color-warning-pale: #FEF3C7;--color-info-pale: #DBEAFE;--space-2xs: 2px;--space-xs: 4px;--space-sm: 8px;--space-md-sm: 12px;--space-md: 16px;--space-lg: 24px;--space-xl: 32px;--space-2xl: 48px;--space-3xl: 64px;--space-4xl: 96px;--font-ui: Arial, Helvetica, sans-serif;--font-headings: Arial, Helvetica, sans-serif;--font-body: Arial, Helvetica, sans-serif;--font-mono: "Courier New", Courier, monospace;--font-weight-regular: 400;--font-weight-medium: 500;--font-weight-semibold: 600;--font-weight-bold: 700;--letter-spacing-tight: -.02em;--letter-spacing-normal: 0;--letter-spacing-wide: .01em;--font-size-display-lg: 4rem;--line-height-display-lg: 1.1;--font-weight-display-lg: 700;--font-size-display: 3rem;--line-height-display: 1.1;--font-weight-display: 700;--font-size-h1: 2.25rem;--line-height-h1: 1.2;--font-weight-h1: 700;--font-size-h2: 1.875rem;--line-height-h2: 1.3;--font-weight-h2: 600;--font-size-h3: 1.5rem;--line-height-h3: 1.4;--font-weight-h3: 600;--font-size-h4: 1.25rem;--line-height-h4: 1.4;--font-weight-h4: 600;--font-size-body-lg: 1.125rem;--line-height-body-lg: 1.6;--font-weight-body-lg: 400;--font-size-body: 1rem;--line-height-body: 1.5;--font-weight-body: 400;--font-size-body-sm: .875rem;--line-height-body-sm: 1.5;--font-weight-body-sm: 400;--font-size-caption: .75rem;--line-height-caption: 1.4;--font-weight-caption: 500;--radius-none: 0;--radius-sm: .25rem;--radius-DEFAULT: .5rem;--radius-md: .5rem;--radius-lg: .75rem;--radius-xl: 1rem;--radius-full: 9999px;--shadow-none: none;--shadow-sm: 0 1px 2px 0 rgba(0, 0, 0, .05);--shadow-DEFAULT: 0 1px 3px 0 rgba(0, 0, 0, .1), 0 1px 2px 0 rgba(0, 0, 0, .06);--shadow-md: 0 4px 6px -1px rgba(0, 0, 0, .1), 0 2px 4px -1px rgba(0, 0, 0, .06);--shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, .1), 0 4px 6px -2px rgba(0, 0, 0, .05);--shadow-xl: 0 20px 25px -5px rgba(0, 0, 0, .1), 0 10px 10px -5px rgba(0, 0, 0, .04);--ease-in-out: cubic-bezier(.4, 0, .2, 1);--ease-out: cubic-bezier(0, 0, .2, 1);--ease-in: cubic-bezier(.4, 0, 1, 1);--ease-out-quad: cubic-bezier(.25, .46, .45, .94);--ease-bounce: cubic-bezier(.68, -.55, .265, 1.55);--duration-instant: .1s;--duration-normal: .2s;--duration-slow: .3s;--duration-slower: .5s;--perspective-subtle: 1000px;--perspective-medium: 800px;--perspective-dramatic: 500px;--flip-duration: .6s;--flip-timing: ease-in-out;--tilt-subtle: 5deg;--tilt-medium: 10deg;--tilt-dramatic: 15deg;--breakpoint-mobile: 320px;--breakpoint-mobile-lg: 480px;--breakpoint-tablet: 768px;--breakpoint-desktop: 1024px;--breakpoint-desktop-lg: 1440px;--breakpoint-desktop-xl: 1920px;--breakpoint-4k: 2560px;--container-mobile: 100%;--container-tablet: 100%;--container-desktop: 1200px;--container-desktop-lg: 1440px;--container-desktop-xl: 1920px;--container-4k: 2400px;--z-base: 0;--z-dropdown: 1000;--z-sticky: 1020;--z-fixed: 1030;--z-modal-backdrop: 1040;--z-modal: 1050;--z-popover: 1060;--z-tooltip: 1070;--glass-bg-subtle: rgba(255, 255, 255, .5);--glass-bg-strong: rgba(255, 255, 255, .9);--glass-blur-light: blur(8px);--glass-blur-heavy: blur(20px);--glass-border: rgba(255, 255, 255, .2);--semantic-success: var(--color-success);--semantic-error: var(--color-error);--semantic-warning: var(--color-warning);--semantic-info: var(--color-info);--ease-smooth: cubic-bezier(.4, 0, .2, 1);--ease-spring: cubic-bezier(.68, -.55, .265, 1.55);--duration-fast: .15s;--duration-medium: .2s;--focus-ring-width: 2px;--focus-ring-offset: 2px;--focus-ring-color: var(--color-primary);--focus-ring-opacity: .5;--touch-target-min: 44px;--touch-target-comfortable: 48px;--touch-target-spacious: 56px}:root{--spacing-xs: var(--space-xs);--spacing-sm: var(--space-sm);--spacing-md: var(--space-md);--spacing-lg: var(--space-lg);--spacing-xl: var(--space-xl);--spacing-2xl: var(--space-2xl);--spacing-3xl: var(--space-3xl);--spacing-4xl: var(--space-4xl);--spacing-5xl: var(--space-4xl);--spacing-6xl: var(--space-4xl);--font-family: var(--font-body);--font-primary: var(--font-body);--font-secondary: var(--font-body);--font-display: var(--font-headings);--font-size-xs: .6875rem;--font-size-sm: .875rem;--font-size-base: 1rem;--font-size-md: 1.125rem;--font-size-lg: 1.25rem;--font-size-xl: 1.5rem;--font-size-2xl: 1.875rem;--font-size-3xl: 2.25rem;--font-size-4xl: 3rem;--font-size-5xl: 4rem;--font-normal: var(--font-weight-regular);--font-medium: var(--font-weight-medium);--font-semibold: var(--font-weight-semibold);--font-bold: var(--font-weight-bold);--border-radius: var(--radius-md);--radius-xs: var(--radius-sm);--shadow-none: var(--shadow-none);--shadow-subtle: var(--shadow-sm);--shadow: var(--shadow-DEFAULT);--shadow-xs: var(--shadow-sm);--shadow-2xl: var(--shadow-xl);--transition: all var(--duration-normal) var(--ease-in-out);--transition-all: all var(--duration-normal) var(--ease-in-out);--transition-base: all var(--duration-normal) var(--ease-in-out);--transition-slow: all var(--duration-slow) var(--ease-in-out);--tracking-tight: var(--letter-spacing-tight);--tracking-normal: var(--letter-spacing-normal);--tracking-wide: var(--letter-spacing-wide);--primary-color: var(--color-primary);--secondary-color: var(--color-secondary);--accent-color: var(--color-accent);--text-color: var(--color-body-text);--heading-color: var(--color-headings);--border-color: var(--color-border);--surface-color: var(--color-surface);--success-color: var(--color-success);--error-color: var(--color-error);--warning-color: var(--color-warning);--info-color: var(--color-info)}:root{--color-surface-interactive: var(--color-surface);--color-surface-interactive-hover: #F3F4F6;--color-surface-interactive-active: #E5E7EB;--color-surface-elevated: var(--bg-card);--color-surface-elevated-hover: #F9FAFB;--color-surface-disabled: #F3F4F6;--color-text-disabled: #9CA3AF;--color-border-disabled: #E5E7EB;--color-text-on-primary: var(--color-white);--color-text-on-secondary: var(--color-white);--color-text-on-dark: var(--color-white);--color-text-on-light: var(--color-headings);--color-link: var(--color-primary);--color-link-hover: #1E40AF;--color-link-visited: #7C3AED;--color-placeholder: var(--color-subtle);--color-state-draft: #9CA3AF;--color-state-draft-bg: #F3F4F6;--color-state-draft-text: #6B7280;--color-state-in-progress: #3B82F6;--color-state-in-progress-bg: #DBEAFE;--color-state-in-progress-text: #1E40AF;--color-state-limited: #FBBF24;--color-state-limited-bg: #FEF3C7;--color-state-limited-text: #92400E;--color-state-deprecated: #6B7280;--color-state-deprecated-bg: #F9FAFB;--color-state-deprecated-text: #374151;--color-state-urgent: #DC2626;--color-state-urgent-bg: #FEE2E2;--color-state-urgent-text: #991B1B;--state-hover-overlay: rgba(0, 0, 0, .08);--state-active-overlay: rgba(0, 0, 0, .12);--state-focus-overlay: rgba(30, 64, 175, .1);--state-disabled-overlay: rgba(0, 0, 0, .38);--state-overlay-light-hover: rgba(255, 255, 255, .1);--state-overlay-light-active: rgba(255, 255, 255, .2);--state-overlay-dark-hover: rgba(0, 0, 0, .1);--state-overlay-dark-active: rgba(0, 0, 0, .2);--color-border-interactive: var(--color-border);--color-border-interactive-hover: #D1D5DB;--color-border-interactive-focus: var(--color-primary);--color-border-error: var(--color-error);--color-border-success: var(--color-success);--color-border-warning: var(--color-warning);--color-border-info: var(--color-info);--color-divider: #F3F4F6;--color-divider-strong: var(--color-border);--btn-padding-sm: var(--space-xs) var(--space-md);--btn-padding-md: var(--space-md) var(--space-lg);--btn-padding-lg: var(--space-lg) var(--space-xl);--btn-height-sm: 32px;--btn-height-md: 40px;--btn-height-lg: 48px;--btn-font-size-sm: var(--font-size-body-sm);--btn-font-size-md: var(--font-size-body);--btn-font-size-lg: var(--font-size-body-lg);--input-padding-sm: var(--space-xs) var(--space-md);--input-padding-md: var(--space-md);--input-padding-lg: var(--space-md) var(--space-lg);--input-height-sm: 32px;--input-height-md: 40px;--input-height-lg: 48px;--input-border-width: 1px;--input-border-radius: var(--radius-DEFAULT);--card-padding-sm: var(--space-md);--card-padding-md: var(--space-lg);--card-padding-lg: var(--space-xl);--card-border-width: 1px;--card-border-radius: var(--radius-DEFAULT);--modal-padding: var(--space-lg);--modal-max-width-sm: 400px;--modal-max-width-md: 600px;--modal-max-width-lg: 800px;--modal-max-width-xl: 1200px;--modal-backdrop-color: rgba(0, 0, 0, .5);--modal-border-radius: var(--radius-lg);--tooltip-bg: #1F2937;--tooltip-text: var(--color-white);--tooltip-padding: var(--space-xs) var(--space-md);--tooltip-border-radius: var(--radius-sm);--tooltip-font-size: var(--font-size-caption);--badge-padding: var(--space-2xs) var(--space-sm);--badge-font-size: var(--font-size-caption);--badge-border-radius: var(--radius-sm);--badge-font-weight: var(--font-weight-medium);--progress-height: 8px;--progress-bg: var(--color-border);--progress-fill: var(--color-primary);--progress-border-radius: var(--radius-full);--font-size-hero: 3.5rem;--line-height-hero: 1.1;--font-size-section: 2rem;--line-height-section: 1.2;--font-size-subsection: 1.5rem;--line-height-subsection: 1.3;--font-size-label: .875rem;--line-height-label: 1.4;--font-weight-label: var(--font-weight-medium);--font-size-help: .75rem;--line-height-help: 1.4;--color-help-text: var(--color-muted);--space-section-sm: var(--space-2xl);--space-section-md: var(--space-3xl);--space-section-lg: var(--space-4xl);--space-content-sm: var(--space-md);--space-content-md: var(--space-lg);--space-content-lg: var(--space-xl);--space-stack-xs: var(--space-xs);--space-stack-sm: var(--space-sm);--space-stack-md: var(--space-md);--space-stack-lg: var(--space-lg);--space-inline-xs: var(--space-xs);--space-inline-sm: var(--space-sm);--space-inline-md: var(--space-md);--space-inline-lg: var(--space-lg);--content-width-narrow: 640px;--content-width-default: 768px;--content-width-wide: 1024px;--content-width-full: 100%;--sidebar-width-collapsed: 64px;--sidebar-width-default: 256px;--sidebar-width-wide: 320px;--header-height-mobile: 56px;--header-height-desktop: 64px;--duration-immediate: .1s;--duration-quick: .15s;--duration-base: .2s;--duration-moderate: .3s;--duration-slow: .5s;--ease-enter: var(--ease-out);--ease-exit: var(--ease-in);--ease-move: var(--ease-in-out);--ease-bounce: cubic-bezier(.68, -.55, .265, 1.55);--elevation-flat: var(--shadow-none);--elevation-raised: var(--shadow-sm);--elevation-floating: var(--shadow-md);--elevation-overlay: var(--shadow-lg);--elevation-modal: var(--shadow-xl);--focus-outline-width: 2px;--focus-outline-offset: 2px;--focus-outline-color: var(--color-primary);--focus-outline-style: solid;--focus-ring: 0 0 0 var(--focus-outline-width) var(--focus-outline-color);--focus-ring-inset: inset 0 0 0 var(--focus-outline-width) var(--focus-outline-color);--a11y-contrast-min: 4.5;--a11y-contrast-enhanced: 7;--hc-border-width: 2px;--hc-focus-width: 3px;--touch-target-min: 44px;--touch-target-comfortable: 48px;--touch-target-spacious: 56px;--grid-gap-sm: var(--space-md);--grid-gap-md: var(--space-lg);--grid-gap-lg: var(--space-xl)}.student-portal{--student-base-dark: #000000;--student-base-light: #ffffff;--student-accent-primary: #f36f21;--student-accent-secondary: #3b3737;--student-success: #f36f21;--student-unavailable: #938e8c;--student-bg-primary: #ffffff;--student-bg-secondary: #f5f5f5;--student-bg-tertiary: #fff3ec;--student-text-primary: #000000;--student-text-secondary: #3b3737;--student-text-tertiary: #938e8c;--student-text-inverse: #ffffff;--student-border-light: rgba(0, 0, 0, .08);--student-border-medium: rgba(0, 0, 0, .15);--student-border-strong: rgba(0, 0, 0, .3);--student-success-bg: #fff3ec;--student-success-text: #bf4e00;--student-warning-bg: #fff8e1;--student-warning-text: #7a5000;--student-error-bg: #ffebee;--student-error-text: #b71c1c;--student-info-bg: #f5f5f5;--student-info-text: #000000;--student-text-hero: 56px;--student-text-h1: 40px;--student-text-h2: 32px;--student-text-h3: 24px;--student-text-h4: 20px;--student-text-body-lg: 18px;--student-text-body: 16px;--student-text-body-sm: 14px;--student-text-caption: 12px;--student-line-height-tight: 1.1;--student-line-height-heading: 1.2;--student-line-height-body: 1.6;--student-card-padding: var(--space-lg);--student-card-gap: var(--space-2xl);--student-section-gap: var(--space-3xl);--student-component-gap: var(--space-lg);--student-radius-sm: 2px;--student-radius-md: 4px;--student-radius-lg: 6px;--student-radius-xl: 8px;--student-radius-2xl: 12px;--student-radius-full: 9999px;--student-shadow-sm: 0 1px 2px rgba(0, 0, 0, .08);--student-shadow-md: 0 4px 8px rgba(0, 0, 0, .12);--student-shadow-lg: 0 10px 20px rgba(0, 0, 0, .15);--student-shadow-xl: 0 20px 40px rgba(0, 0, 0, .2);--student-shadow-2xl: 0 30px 60px rgba(0, 0, 0, .25);--student-button-height: 48px;--student-button-padding: 0 24px;--student-input-height: 52px;--student-input-padding: 0 16px;--student-transition-duration: var(--duration-normal);--student-transition-timing: var(--ease-in-out);--role-bg-primary: var(--student-bg-primary);--role-bg-secondary: var(--student-bg-secondary);--role-bg-tertiary: var(--student-bg-tertiary);--role-accent: var(--student-accent-primary);--role-accent-hover: #d45f15;--role-accent-light: #fff3ec;--role-gradient-start: var(--student-accent-primary);--role-gradient-end: #d45f15;--theme-bg-primary: var(--student-bg-primary);--theme-bg-secondary: var(--student-bg-secondary);--theme-bg-tertiary: var(--student-bg-tertiary);--theme-accent-primary: var(--student-accent-primary);--theme-accent-primary-hover: #d45f15;--theme-text-primary: var(--student-text-primary);--theme-text-secondary: var(--student-text-secondary);--theme-text-tertiary: var(--student-text-tertiary);--theme-text-inverse: var(--student-text-inverse);--theme-border-light: var(--student-border-light);--theme-border-medium: var(--student-border-medium);--theme-shadow-sm: var(--student-shadow-sm);--theme-shadow-md: var(--student-shadow-md);--theme-shadow-lg: var(--student-shadow-lg);--theme-success-bg: var(--student-success-bg);--theme-success-text: var(--student-success-text);--theme-warning-bg: var(--student-warning-bg);--theme-warning-text: var(--student-warning-text);--theme-error-bg: var(--student-error-bg);--theme-error-text: var(--student-error-text);--theme-info-bg: var(--student-info-bg);--theme-info-text: var(--student-info-text);--text-xs: var(--student-text-caption);--text-sm: var(--student-text-body-sm);--text-base: var(--student-text-body);--text-lg: var(--student-text-h4);--text-xl: var(--student-text-h3);--text-2xl: var(--student-text-h2);--text-3xl: var(--student-text-h1);--text-4xl: var(--student-text-hero);--space-1: var(--space-xs);--space-2: var(--space-sm);--space-3: var(--space-md);--space-4: var(--space-lg);--space-5: var(--space-xl);--space-6: var(--space-2xl)}.student-portal .btn-primary{height:var(--student-button-height);padding:var(--student-button-padding);border-radius:var(--student-radius-md);background:var(--student-accent-primary);color:#fff;font-size:var(--student-text-body);font-weight:700;transition:all var(--student-transition-duration) var(--student-transition-timing)}.student-portal .btn-primary:hover{background:#d45f15;box-shadow:var(--student-shadow-md)}.student-portal .btn-primary:active{transform:scale(.98)}.student-portal .card{background:var(--student-bg-primary);border-radius:var(--student-radius-lg);padding:var(--student-card-padding);box-shadow:var(--student-shadow-md);border:1px solid var(--student-border-light);transition:all var(--duration-normal) var(--ease-in-out)}.student-portal .card:hover{transform:translateY(-2px);box-shadow:var(--student-shadow-lg);border-color:var(--student-accent-primary)}.student-portal input,.student-portal select,.student-portal textarea{height:var(--student-input-height);padding:var(--student-input-padding);border-radius:var(--student-radius-md);border:1px solid var(--student-border-medium);font-size:var(--student-text-body);font-family:Arial,Helvetica,sans-serif;transition:all var(--duration-fast) var(--ease-in-out)}.student-portal input:focus,.student-portal select:focus,.student-portal textarea:focus{outline:none;border:2px solid var(--student-accent-primary);box-shadow:0 0 0 3px #f36f2126}.staff-portal{--staff-base-dark: #000000;--staff-base-light: #f5f5f5;--staff-accent-primary: #000000;--staff-accent-secondary: #f36f21;--staff-success: #f36f21;--staff-alert: #f36f21;--staff-bg-primary: #ffffff;--staff-bg-secondary: #f5f5f5;--staff-bg-tertiary: #ebebeb;--staff-text-primary: #000000;--staff-text-secondary: #3b3737;--staff-text-tertiary: #938e8c;--staff-text-inverse: #ffffff;--staff-border-light: rgba(0, 0, 0, .08);--staff-border-medium: rgba(0, 0, 0, .15);--staff-border-strong: rgba(0, 0, 0, .3);--staff-success-bg: #fff3ec;--staff-success-text: #bf4e00;--staff-warning-bg: #fff8e1;--staff-warning-text: #7a5000;--staff-error-bg: #ffebee;--staff-error-text: #b71c1c;--staff-info-bg: #f5f5f5;--staff-info-text: #000000;--staff-text-hero: 48px;--staff-text-h1: 36px;--staff-text-h2: 28px;--staff-text-h3: 22px;--staff-text-h4: 18px;--staff-text-body-lg: 17px;--staff-text-body: 16px;--staff-text-body-sm: 14px;--staff-text-caption: 12px;--staff-line-height-tight: 1.2;--staff-line-height-heading: 1.3;--staff-line-height-body: 1.6;--staff-card-padding: 20px;--staff-card-gap: var(--space-lg);--staff-section-gap: var(--space-2xl);--staff-component-gap: var(--space-md);--staff-radius-sm: 2px;--staff-radius-md: 4px;--staff-radius-lg: 6px;--staff-radius-xl: 8px;--staff-radius-2xl: 12px;--staff-radius-full: 9999px;--staff-shadow-sm: 0 1px 2px rgba(0, 0, 0, .08);--staff-shadow-md: 0 4px 8px rgba(0, 0, 0, .12);--staff-shadow-lg: 0 10px 20px rgba(0, 0, 0, .15);--staff-shadow-xl: 0 20px 40px rgba(0, 0, 0, .2);--staff-button-height: 40px;--staff-button-padding: 0 20px;--staff-input-height: 44px;--staff-input-padding: 0 14px;--staff-transition-duration: var(--duration-fast);--staff-transition-timing: var(--ease-in-out);--role-bg-primary: var(--staff-bg-primary);--role-bg-secondary: var(--staff-bg-secondary);--role-bg-tertiary: var(--staff-bg-tertiary);--role-accent: var(--staff-accent-primary);--role-accent-hover: #3b3737;--role-accent-light: #f5f5f5;--role-gradient-start: var(--staff-accent-primary);--role-gradient-end: #3b3737;--theme-bg-primary: var(--staff-bg-primary);--theme-bg-secondary: var(--staff-bg-secondary);--theme-bg-tertiary: var(--staff-bg-tertiary);--theme-accent-primary: var(--staff-accent-primary);--theme-accent-primary-hover: #3b3737;--theme-text-primary: var(--staff-text-primary);--theme-text-secondary: var(--staff-text-secondary);--theme-text-tertiary: var(--staff-text-tertiary);--theme-text-inverse: var(--staff-text-inverse);--theme-border-light: var(--staff-border-light);--theme-border-medium: var(--staff-border-medium);--theme-shadow-sm: var(--staff-shadow-sm);--theme-shadow-md: var(--staff-shadow-md);--theme-shadow-lg: var(--staff-shadow-lg);--theme-success-bg: var(--staff-success-bg);--theme-success-text: var(--staff-success-text);--theme-warning-bg: var(--staff-warning-bg);--theme-warning-text: var(--staff-warning-text);--theme-error-bg: var(--staff-error-bg);--theme-error-text: var(--staff-error-text);--theme-info-bg: var(--staff-info-bg);--theme-info-text: var(--staff-info-text);--text-xs: var(--staff-text-caption);--text-sm: var(--staff-text-body-sm);--text-base: var(--staff-text-body);--text-lg: var(--staff-text-h4);--text-xl: var(--staff-text-h3);--text-2xl: var(--staff-text-h2);--text-3xl: var(--staff-text-h1);--text-4xl: var(--staff-text-hero);--space-1: var(--space-xs);--space-2: var(--space-sm);--space-3: var(--space-md);--space-4: var(--space-lg);--space-5: var(--space-xl);--space-6: var(--space-2xl)}.staff-portal .btn-primary{height:var(--staff-button-height);padding:var(--staff-button-padding);border-radius:var(--staff-radius-md);background:var(--staff-accent-primary);color:#fff;font-size:15px;font-weight:700;font-family:Arial,Helvetica,sans-serif;transition:background var(--duration-fast) var(--ease-in-out)}.staff-portal .btn-primary:hover{background:#3b3737;box-shadow:var(--staff-shadow-md)}.staff-portal .card{background:var(--staff-bg-primary);border-radius:var(--staff-radius-lg);padding:var(--staff-card-padding);box-shadow:var(--staff-shadow-sm);border:1px solid var(--staff-border-light);transition:all var(--duration-fast) var(--ease-in-out)}.staff-portal .card:hover{transform:translateY(-2px);box-shadow:var(--staff-shadow-md);border-color:var(--staff-border-medium)}.staff-portal input,.staff-portal select,.staff-portal textarea{height:var(--staff-input-height);padding:var(--staff-input-padding);border-radius:var(--staff-radius-md);border:1px solid var(--staff-border-medium);font-size:15px;font-family:Arial,Helvetica,sans-serif;transition:all var(--duration-fast) var(--ease-in-out)}.staff-portal input:focus,.staff-portal select:focus,.staff-portal textarea:focus{outline:none;border:2px solid #000000;box-shadow:0 0 0 3px #00000014}.dept-admin-portal{--dept-base-dark: #000000;--dept-base-light: #f5f5f5;--dept-accent-primary: #f36f21;--dept-accent-secondary: #3b3737;--dept-success: #f36f21;--dept-critical: #b71c1c;--dept-bg-primary: #fafafa;--dept-bg-secondary: #f0f0f0;--dept-bg-tertiary: #fff3ec;--dept-text-primary: #000000;--dept-text-secondary: #3b3737;--dept-text-tertiary: #938e8c;--dept-text-inverse: #ffffff;--dept-border-light: rgba(0, 0, 0, .06);--dept-border-medium: rgba(0, 0, 0, .12);--dept-border-strong: rgba(243, 111, 33, .4);--dept-success-bg: #fff3ec;--dept-success-text: #bf4e00;--dept-warning-bg: #fff8e1;--dept-warning-text: #7a5000;--dept-error-bg: #ffebee;--dept-error-text: #b71c1c;--dept-info-bg: #f5f5f5;--dept-info-text: #000000;--dept-text-hero: 40px;--dept-text-h1: 32px;--dept-text-h2: 24px;--dept-text-h3: 20px;--dept-text-h4: 17px;--dept-text-body-lg: 16px;--dept-text-body: 15px;--dept-text-body-sm: 13px;--dept-text-caption: 11px;--dept-line-height-tight: 1.2;--dept-line-height-heading: 1.3;--dept-line-height-body: 1.5;--dept-card-padding: var(--space-md);--dept-card-gap: 20px;--dept-section-gap: var(--space-xl);--dept-component-gap: 12px;--dept-radius-sm: 2px;--dept-radius-md: 3px;--dept-radius-lg: 4px;--dept-radius-xl: 6px;--dept-radius-2xl: 8px;--dept-radius-full: 9999px;--dept-shadow-sm: 0 1px 2px rgba(0, 0, 0, .06);--dept-shadow-md: 0 4px 8px rgba(0, 0, 0, .1);--dept-shadow-lg: 0 10px 20px rgba(0, 0, 0, .12);--dept-button-height: 36px;--dept-button-padding: 0 16px;--dept-input-height: 38px;--dept-input-padding: 0 12px;--dept-transition-duration: var(--duration-fast);--dept-transition-timing: var(--ease-in-out);--role-bg-primary: var(--dept-bg-primary);--role-bg-secondary: var(--dept-bg-secondary);--role-bg-tertiary: var(--dept-bg-tertiary);--role-accent: var(--dept-accent-primary);--role-accent-hover: #d45f15;--role-accent-light: #fff3ec;--role-gradient-start: var(--dept-accent-primary);--role-gradient-end: #d45f15;--theme-bg-primary: var(--dept-bg-primary);--theme-bg-secondary: var(--dept-bg-secondary);--theme-bg-tertiary: var(--dept-bg-tertiary);--theme-accent-primary: var(--dept-accent-primary);--theme-accent-primary-hover: #d45f15;--theme-text-primary: var(--dept-text-primary);--theme-text-secondary: var(--dept-text-secondary);--theme-text-tertiary: var(--dept-text-tertiary);--theme-text-inverse: var(--dept-text-inverse);--theme-border-light: var(--dept-border-light);--theme-border-medium: var(--dept-border-medium);--theme-shadow-sm: var(--dept-shadow-sm);--theme-shadow-md: var(--dept-shadow-md);--theme-shadow-lg: var(--dept-shadow-lg);--theme-success-bg: var(--dept-success-bg);--theme-success-text: var(--dept-success-text);--theme-warning-bg: var(--dept-warning-bg);--theme-warning-text: var(--dept-warning-text);--theme-error-bg: var(--dept-error-bg);--theme-error-text: var(--dept-error-text);--theme-info-bg: var(--dept-info-bg);--theme-info-text: var(--dept-info-text);--text-xs: var(--dept-text-caption);--text-sm: var(--dept-text-body-sm);--text-base: var(--dept-text-body);--text-lg: var(--dept-text-h4);--text-xl: var(--dept-text-h3);--text-2xl: var(--dept-text-h2);--text-3xl: var(--dept-text-h1);--text-4xl: var(--dept-text-hero);--space-1: var(--space-xs);--space-2: var(--space-sm);--space-3: var(--dept-component-gap);--space-4: var(--space-md);--space-5: var(--dept-card-gap);--space-6: var(--space-xl)}.dept-admin-portal .btn-primary{height:var(--dept-button-height);padding:var(--dept-button-padding);border-radius:var(--dept-radius-md);background:var(--dept-accent-primary);color:#fff;font-size:14px;font-weight:700;font-family:Arial,Helvetica,sans-serif;transition:background var(--duration-fast) var(--ease-in-out)}.dept-admin-portal .btn-primary:hover{background:#d45f15;box-shadow:var(--dept-shadow-md)}.dept-admin-portal .card{background:var(--dept-bg-primary);border-radius:var(--dept-radius-lg);padding:var(--dept-card-padding);box-shadow:var(--dept-shadow-sm);border:1px solid var(--dept-border-light);transition:all var(--duration-fast) var(--ease-in-out)}.dept-admin-portal .card:hover{border-color:var(--dept-border-medium);box-shadow:var(--dept-shadow-md)}.dept-admin-portal input,.dept-admin-portal select,.dept-admin-portal textarea{height:var(--dept-input-height);padding:var(--dept-input-padding);border-radius:var(--dept-radius-md);border:1px solid var(--dept-border-medium);font-size:14px;font-family:Arial,Helvetica,sans-serif;transition:all var(--duration-fast) var(--ease-in-out)}.dept-admin-portal input:focus,.dept-admin-portal select:focus,.dept-admin-portal textarea:focus{outline:none;border:2px solid var(--dept-accent-primary);box-shadow:0 0 0 3px #f36f211f}.dept-admin-portal .btn-primary,.dept-admin-portal .admin-action-btn:not(.secondary){background:var(--dept-accent-primary);color:#fff}.master-admin-portal{--master-bg-primary: #ffffff;--master-bg-secondary: #f5f5f5;--master-bg-tertiary: #ebebeb;--master-bg-elevated: #ffffff;--master-bg-overlay: rgba(0, 0, 0, .6);--master-bg-hover: #fff3ec;--master-accent-primary: #f36f21;--master-accent-secondary: #d45f15;--master-accent-tertiary: #e88040;--master-accent-muted: #bf4e00;--master-accent-light: rgba(243, 111, 33, .1);--master-accent-glow: rgba(243, 111, 33, .2);--master-text-primary: #000000;--master-text-secondary: #3b3737;--master-text-tertiary: #938e8c;--master-text-disabled: #c5c1c0;--master-text-inverse: #ffffff;--master-border-subtle: rgba(0, 0, 0, .05);--master-border-light: rgba(0, 0, 0, .08);--master-border-medium: rgba(0, 0, 0, .15);--master-border-strong: rgba(243, 111, 33, .4);--master-success: #10B981;--master-success-bg: #D1FAE5;--master-success-border: rgba(16, 185, 129, .3);--master-warning: #F59E0B;--master-warning-bg: #FEF3C7;--master-warning-border: rgba(245, 158, 11, .3);--master-error: #EF4444;--master-error-bg: #FEE2E2;--master-error-border: rgba(239, 68, 68, .3);--master-info: #3B82F6;--master-info-bg: #DBEAFE;--master-info-border: rgba(59, 130, 246, .3);--master-glass-bg: rgba(255, 255, 255, .9);--master-glass-blur: blur(20px);--master-glass-border: rgba(243, 111, 33, .15);--master-glass-shadow: 0 8px 32px rgba(0, 0, 0, .1);--master-shadow-sm: 0 1px 2px rgba(0, 0, 0, .05);--master-shadow-md: 0 4px 6px rgba(0, 0, 0, .07);--master-shadow-lg: 0 10px 15px rgba(0, 0, 0, .1);--master-shadow-xl: 0 20px 25px rgba(0, 0, 0, .1);--master-shadow-glow: 0 0 20px rgba(243, 111, 33, .15);--role-bg-primary: var(--master-bg-primary);--role-bg-secondary: var(--master-bg-secondary);--role-bg-tertiary: var(--master-bg-tertiary);--role-accent: var(--master-accent-primary);--role-accent-hover: var(--master-accent-secondary);--role-accent-light: var(--master-accent-light);--role-gradient-start: var(--master-accent-primary);--role-gradient-end: var(--master-accent-secondary);--theme-bg-primary: var(--master-bg-primary);--theme-bg-secondary: var(--master-bg-secondary);--theme-bg-tertiary: var(--master-bg-tertiary);--theme-accent-primary: var(--master-accent-primary);--theme-accent-primary-hover: var(--master-accent-secondary);--theme-text-primary: var(--master-text-primary);--theme-text-secondary: var(--master-text-secondary);--theme-text-tertiary: var(--master-text-tertiary);--theme-text-inverse: var(--master-text-inverse);--theme-border-light: var(--master-border-light);--theme-border-medium: var(--master-border-medium);--theme-shadow-sm: var(--master-shadow-sm);--theme-shadow-md: var(--master-shadow-md);--theme-shadow-lg: var(--master-shadow-lg);--theme-success-bg: var(--master-success-bg);--theme-success-text: var(--master-success);--theme-warning-bg: var(--master-warning-bg);--theme-warning-text: var(--master-warning);--theme-error-bg: var(--master-error-bg);--theme-error-text: var(--master-error);--theme-info-bg: var(--master-info-bg);--theme-info-text: var(--master-info)}.master-admin-portal{background:var(--master-bg-secondary);color:var(--master-text-primary);min-height:100vh}.master-admin-portal .btn{font-weight:500}.master-admin-portal .card{background:var(--master-bg-primary);border-radius:12px;padding:20px;border:1px solid var(--master-border-light);box-shadow:var(--master-shadow-sm);transition:all .2s ease}.master-admin-portal .card:hover{border-color:var(--master-accent-light);box-shadow:var(--master-shadow-md)}.master-admin-portal input,.master-admin-portal textarea{height:42px;padding:0 16px;border-radius:8px;background:var(--master-bg-primary);color:var(--master-text-primary);border:1px solid var(--master-border-medium);font-size:14px;transition:all .15s ease}.master-admin-portal select{height:42px;padding:0 40px 0 16px;border-radius:8px;background-color:var(--master-bg-primary)!important;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%23f36f21' d='M6 9L1 4h10z'/%3E%3C/svg%3E")!important;background-repeat:no-repeat!important;background-position:right 12px center!important;background-size:12px!important;color:var(--master-text-primary);border:1px solid var(--master-border-medium)!important;border-style:solid!important;border-image:none!important;font-size:14px;cursor:pointer;appearance:none!important;-webkit-appearance:none!important;-moz-appearance:none!important;transition:border-color .15s ease,box-shadow .15s ease}.master-admin-portal input:focus,.master-admin-portal textarea:focus{outline:none;border-color:var(--master-accent-primary);box-shadow:0 0 0 3px var(--master-accent-light)}.master-admin-portal select:focus{outline:none!important;border-color:var(--master-accent-primary)!important;box-shadow:0 0 0 3px var(--master-accent-light)!important}.master-admin-portal select:hover{border-color:var(--master-accent-primary)!important}.master-admin-portal select option{background:var(--master-bg-primary);color:var(--master-text-primary);padding:8px}.master-admin-portal table{width:100%;background:var(--master-bg-primary);border-radius:12px;overflow:hidden;border:1px solid var(--master-border-light)}.master-admin-portal th{background:var(--master-bg-tertiary);color:var(--master-text-secondary);font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.5px;padding:14px 16px;text-align:left;border-bottom:1px solid var(--master-border-medium)}.master-admin-portal td{padding:14px 16px;color:var(--master-text-primary);border-bottom:1px solid var(--master-border-light);font-size:14px}.master-admin-portal tbody tr{transition:background .15s ease}.master-admin-portal tbody tr:hover{background:var(--master-bg-hover)}.master-admin-portal tbody tr:last-child td{border-bottom:none}.master-admin-portal .admin-header{background:var(--master-bg-primary);border-bottom:1px solid var(--master-border-light);box-shadow:var(--master-shadow-sm)}.master-admin-portal .admin-nav{background:var(--master-bg-primary);border-bottom:1px solid var(--master-border-light)}.master-admin-portal .admin-nav-link{color:var(--master-text-secondary);padding:16px 20px;font-size:14px;font-weight:500;transition:all .15s ease;position:relative}.master-admin-portal .admin-nav-link:after{content:"";position:absolute;bottom:0;left:50%;width:0;height:2px;background:var(--master-accent-primary);transition:all .2s ease;transform:translate(-50%)}.master-admin-portal .admin-nav-link:hover{color:var(--master-accent-primary);background:var(--master-bg-hover)}.master-admin-portal .admin-nav-link:hover:after{width:100%}.master-admin-portal .admin-nav-link.active{color:var(--master-accent-primary)}.master-admin-portal .admin-nav-link.active:after{width:100%}.master-admin-portal .admin-stat-card{background:var(--master-bg-primary);border:1px solid var(--master-border-light);border-radius:12px;padding:24px;position:relative;overflow:hidden;transition:all .2s ease}.master-admin-portal .admin-stat-card:before{content:"";position:absolute;top:0;left:0;width:4px;height:100%;background:linear-gradient(180deg,var(--master-accent-primary) 0%,var(--master-accent-secondary) 100%)}.master-admin-portal .admin-stat-card:hover{transform:translateY(-2px);box-shadow:var(--master-shadow-md);border-color:var(--master-accent-light)}.master-admin-portal .admin-stat-number{font-size:42px;font-weight:700;color:var(--master-accent-primary);line-height:1;margin-bottom:8px}.master-admin-portal .admin-stat-label{font-size:13px;color:var(--master-text-secondary);text-transform:uppercase;letter-spacing:.5px}.master-admin-portal .modal-overlay{background:var(--master-bg-overlay);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.master-admin-portal .modal-content{background:var(--master-bg-primary);border:1px solid var(--master-border-light);border-radius:16px;box-shadow:var(--master-shadow-xl);color:var(--master-text-primary)}.master-admin-portal .modal-header{border-bottom:1px solid var(--master-border-light);padding:20px 24px}.master-admin-portal .modal-footer{border-top:1px solid var(--master-border-light);background:var(--master-bg-tertiary);padding:16px 24px;border-radius:0 0 16px 16px}.master-admin-portal .status-badge{display:inline-flex;align-items:center;gap:6px;padding:6px 12px;border-radius:9999px;font-size:12px;font-weight:500}.master-admin-portal .status-badge.available{background:var(--master-success-bg);color:var(--master-success);border:1px solid var(--master-success-border)}.master-admin-portal .status-badge.booked{background:var(--master-warning-bg);color:var(--master-warning);border:1px solid var(--master-warning-border)}.master-admin-portal .status-badge.maintenance{background:var(--master-error-bg);color:var(--master-error);border:1px solid var(--master-error-border)}.master-admin-portal .loading-skeleton{background:linear-gradient(90deg,var(--master-bg-tertiary) 0%,var(--master-bg-secondary) 50%,var(--master-bg-tertiary) 100%);background-size:200% 100%;animation:skeleton-pulse 1.5s ease-in-out infinite;border-radius:8px}@keyframes skeleton-pulse{0%{background-position:200% 0}to{background-position:-200% 0}}.master-admin-portal ::-webkit-scrollbar{width:8px;height:8px}.master-admin-portal ::-webkit-scrollbar-track{background:var(--master-bg-tertiary);border-radius:9999px}.master-admin-portal ::-webkit-scrollbar-thumb{background:var(--master-border-medium);border-radius:9999px;transition:background .2s}.master-admin-portal ::-webkit-scrollbar-thumb:hover{background:var(--master-accent-primary)}.master-admin-portal *:focus-visible{outline:2px solid var(--master-accent-primary);outline-offset:2px}@media (min-width: 1920px){.master-admin-portal .admin-stat-number{font-size:48px}}@media (min-width: 2560px){.master-admin-portal .admin-stat-number{font-size:56px}}@media (prefers-reduced-motion: reduce){.master-admin-portal *{animation-duration:.01ms!important;transition-duration:.01ms!important}}.btn,button:not(.unstyled){font-family:var(--font-body);font-weight:var(--font-weight-medium);line-height:1;text-align:center;text-decoration:none;display:inline-flex;align-items:center;justify-content:center;gap:var(--space-sm);cursor:pointer;border:none;transition:all var(--duration-fast) var(--ease-in-out);-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent}.btn:disabled,button:disabled{opacity:.5;cursor:not-allowed;pointer-events:none}.student-portal .btn-primary,.student-portal .student-action-btn{height:var(--student-button-height);padding:var(--student-button-padding);border-radius:var(--student-radius-md);background:linear-gradient(135deg,var(--student-accent-primary) 0%,#D64965 100%);color:#fff;font-size:var(--student-text-body);box-shadow:var(--student-shadow-sm);transition:all var(--student-transition-duration) var(--student-transition-timing)}.student-portal .btn-primary:hover,.student-portal .student-action-btn:hover{transform:scale(1.02);box-shadow:var(--student-shadow-md)}.student-portal .btn-primary:active,.student-portal .student-action-btn:active{transform:scale(.98)}.student-portal .btn-secondary,.student-portal .student-action-btn.secondary{height:var(--student-button-height);padding:var(--student-button-padding);border-radius:var(--student-radius-md);background:transparent;color:var(--student-accent-primary);border:2px solid var(--student-accent-primary);font-size:var(--student-text-body)}.student-portal .btn-secondary:hover,.student-portal .student-action-btn.secondary:hover{background:var(--student-accent-primary);color:#fff;transform:scale(1.02)}.student-portal .btn-text{height:var(--student-button-height);padding:var(--student-button-padding);background:transparent;color:var(--student-accent-primary);font-size:var(--student-text-body)}.student-portal .btn-text:hover{background:var(--student-bg-tertiary);border-radius:var(--student-radius-md)}.student-portal .btn-icon{width:var(--student-button-height);height:var(--student-button-height);padding:0;border-radius:var(--student-radius-md);background:var(--student-bg-secondary);color:var(--student-accent-primary)}.student-portal .btn-icon:hover{background:var(--student-accent-primary);color:#fff;transform:scale(1.05)}.staff-portal .btn-primary,.staff-portal .staff-action-btn{height:var(--staff-button-height);padding:var(--staff-button-padding);border-radius:var(--staff-radius-md);background:var(--staff-accent-primary);color:#fff;font-size:15px;box-shadow:var(--staff-shadow-sm);transition:all var(--staff-transition-duration) var(--staff-transition-timing)}.staff-portal .btn-primary:hover,.staff-portal .staff-action-btn:hover{background:#229a8c;box-shadow:var(--staff-shadow-md)}.staff-portal .btn-secondary,.staff-portal .staff-action-btn.secondary{height:var(--staff-button-height);padding:var(--staff-button-padding);border-radius:var(--staff-radius-md);background:transparent;color:var(--staff-accent-primary);border:2px solid var(--staff-accent-primary);font-size:15px}.staff-portal .btn-secondary:hover,.staff-portal .staff-action-btn.secondary:hover{background:var(--staff-bg-tertiary);border-color:#229a8c;color:#229a8c}.staff-portal .btn-text{height:var(--staff-button-height);padding:var(--staff-button-padding);background:transparent;color:var(--staff-accent-primary);font-size:15px}.staff-portal .btn-text:hover{background:var(--staff-bg-tertiary);border-radius:var(--staff-radius-md)}.staff-portal .btn-icon{width:var(--staff-button-height);height:var(--staff-button-height);padding:0;border-radius:var(--staff-radius-md);background:var(--staff-bg-secondary);color:var(--staff-accent-primary)}.staff-portal .btn-icon:hover{background:var(--staff-accent-primary);color:#fff}.dept-admin-portal .btn-primary,.dept-admin-portal .admin-action-btn{height:var(--dept-button-height);padding:var(--dept-button-padding);border-radius:var(--dept-radius-md);background:linear-gradient(135deg,var(--dept-accent-primary) 0%,#D84315 100%);color:#fff;font-size:14px;transition:all var(--dept-transition-duration) var(--dept-transition-timing)}.dept-admin-portal .btn-primary:hover,.dept-admin-portal .admin-action-btn:hover{filter:brightness(1.1)}.dept-admin-portal .btn-secondary,.dept-admin-portal .admin-action-btn.secondary{height:var(--dept-button-height);padding:var(--dept-button-padding);border-radius:var(--dept-radius-md);background:transparent;color:var(--dept-accent-primary);border:2px solid var(--dept-accent-primary);font-size:14px}.dept-admin-portal .btn-secondary:hover,.dept-admin-portal .admin-action-btn.secondary:hover{background:var(--dept-bg-tertiary);border-color:var(--dept-accent-primary);color:var(--dept-accent-primary)}.dept-admin-portal .btn-text{height:var(--dept-button-height);padding:var(--dept-button-padding);background:transparent;color:var(--dept-accent-primary);font-size:14px}.dept-admin-portal .btn-text:hover{background:var(--dept-bg-tertiary);border-radius:var(--dept-radius-md)}.dept-admin-portal .btn-icon{width:var(--dept-button-height);height:var(--dept-button-height);padding:0;border-radius:var(--dept-radius-md);background:var(--dept-bg-secondary);color:var(--dept-accent-primary)}.dept-admin-portal .btn-icon:hover{background:var(--dept-accent-primary);color:#fff}.master-admin-portal .btn-primary,.master-admin-portal .admin-action-btn:not(.secondary){height:var(--dept-button-height);padding:var(--dept-button-padding);border-radius:var(--dept-radius-md);background:linear-gradient(135deg,var(--master-accent-primary) 0%,#7B1FA2 100%);color:#fff;font-size:14px;transition:all var(--dept-transition-duration) var(--dept-transition-timing)}.master-admin-portal .btn-primary:hover,.master-admin-portal .admin-action-btn:not(.secondary):hover{filter:brightness(1.1)}.master-admin-portal .btn-secondary,.master-admin-portal .admin-action-btn.secondary{height:var(--dept-button-height);padding:var(--dept-button-padding);border-radius:var(--dept-radius-md);background:transparent;color:var(--master-accent-primary);border:2px solid var(--master-accent-primary);font-size:14px}.master-admin-portal .btn-secondary:hover,.master-admin-portal .admin-action-btn.secondary:hover{background:var(--master-bg-tertiary);border-color:var(--master-accent-primary);color:var(--master-accent-primary)}.master-admin-portal .btn-text{height:var(--dept-button-height);padding:var(--dept-button-padding);background:transparent;color:var(--master-accent-primary);font-size:14px}.master-admin-portal .btn-text:hover{background:var(--master-bg-hover);border-radius:var(--dept-radius-md)}.master-admin-portal .btn-icon{width:var(--dept-button-height);height:var(--dept-button-height);padding:0;border-radius:var(--dept-radius-md);background:var(--master-bg-tertiary);color:var(--master-text-secondary)}.master-admin-portal .btn-icon:hover{background:var(--master-accent-primary);color:#fff}.btn-group{display:inline-flex;gap:var(--space-sm)}.btn-group .btn:not(:last-child){margin-right:0}.btn-sm{font-size:13px;padding:var(--space-xs) var(--space-md)}.student-portal .btn-sm{height:40px}.staff-portal .btn-sm{height:36px}.dept-admin-portal .btn-sm,.master-admin-portal .btn-sm{height:32px}.btn-lg{font-size:18px;padding:var(--space-md) var(--space-xl)}.student-portal .btn-lg{height:56px}.staff-portal .btn-lg{height:48px}.dept-admin-portal .btn-lg,.master-admin-portal .btn-lg{height:44px}.btn-success{background:#43a047!important;color:#fff!important}.btn-success:hover{background:#388e3c!important}.btn-warning{background:#ff9800!important;color:#fff!important}.btn-warning:hover{background:#f57c00!important}.btn-danger{background:#d32f2f!important;color:#fff!important}.btn-danger:hover{background:#c62828!important}.student-portal .btn:focus-visible{outline:3px solid var(--student-accent-primary);outline-offset:2px}.staff-portal .btn:focus-visible{outline:3px solid var(--staff-accent-primary);outline-offset:2px}.dept-admin-portal .btn:focus-visible{outline:3px solid var(--dept-accent-primary);outline-offset:2px}.master-admin-portal .btn:focus-visible{outline:3px solid var(--master-accent-primary);outline-offset:2px}@media (prefers-reduced-motion: reduce){.btn,button{transition:none!important}.student-portal .btn:hover,.student-portal .btn:active,.staff-portal .btn-icon:hover{transform:none!important}}@media (prefers-contrast: high){.btn,button{border-width:2px!important}.btn-secondary{border-width:3px!important}}.btn-loading{position:relative;color:transparent!important;pointer-events:none}.btn-loading:after{content:"";position:absolute;width:16px;height:16px;top:50%;left:50%;margin-left:-8px;margin-top:-8px;border:2px solid transparent;border-top-color:currentColor;border-radius:50%;animation:btn-spin .6s linear infinite}@keyframes btn-spin{to{transform:rotate(360deg)}}.master-admin-portal .btn-loading:after{border-top-color:#fff}.form-group{margin-bottom:var(--space-lg)}.form-label{display:block;margin-bottom:var(--space-sm);font-weight:var(--font-weight-medium);color:var(--theme-text-primary)}.form-hint{display:block;margin-top:var(--space-xs);font-size:13px;color:var(--theme-text-tertiary)}.form-error{display:block;margin-top:var(--space-xs);font-size:13px;color:var(--color-error-dark, #C62828);font-weight:var(--font-weight-medium)}.student-portal .form-label{font-size:var(--student-text-body-sm);margin-bottom:var(--space-sm)}.student-portal input[type=text],.student-portal input[type=email],.student-portal input[type=password],.student-portal input[type=number],.student-portal input[type=tel],.student-portal input[type=date],.student-portal input[type=time],.student-portal select,.student-portal textarea{width:100%;height:var(--student-input-height);padding:var(--student-input-padding);border-radius:var(--student-radius-md);border:1px solid var(--student-border-medium);background:var(--student-bg-primary);color:var(--student-text-primary);font-family:var(--font-body);font-size:var(--student-text-body);transition:all var(--duration-fast) var(--ease-in-out)}.student-portal textarea{height:auto;min-height:120px;padding:var(--space-md);resize:vertical}.student-portal input:focus,.student-portal select:focus,.student-portal textarea:focus{outline:none;border:2px solid var(--student-accent-primary);box-shadow:0 0 0 4px #c2185b1a;padding-left:calc(var(--space-md) - 1px)}.student-portal input::placeholder,.student-portal textarea::placeholder{color:var(--student-text-tertiary)}.student-portal input[type=checkbox],.student-portal input[type=radio]{width:20px;height:20px;margin-right:var(--space-sm);accent-color:var(--student-accent-primary);cursor:pointer}.staff-portal .form-label{font-size:var(--staff-text-body-sm)}.staff-portal input[type=text],.staff-portal input[type=email],.staff-portal input[type=password],.staff-portal input[type=number],.staff-portal input[type=tel],.staff-portal input[type=date],.staff-portal input[type=time],.staff-portal select,.staff-portal textarea{width:100%;height:var(--staff-input-height);padding:var(--staff-input-padding);border-radius:var(--staff-radius-md);border:1px solid var(--staff-border-medium);background:var(--staff-bg-primary);color:var(--staff-text-primary);font-family:var(--font-body);font-size:15px;transition:all var(--duration-fast) var(--ease-in-out)}.staff-portal textarea{height:auto;min-height:100px;padding:var(--space-md);resize:vertical}.staff-portal input:focus,.staff-portal select:focus,.staff-portal textarea:focus{outline:none;border:2px solid var(--staff-accent-primary);box-shadow:0 0 0 3px #00796b1a;padding-left:13px}.staff-portal input::placeholder,.staff-portal textarea::placeholder{color:var(--staff-text-tertiary)}.staff-portal input[type=checkbox],.staff-portal input[type=radio]{width:18px;height:18px;margin-right:var(--space-sm);accent-color:var(--staff-accent-primary);cursor:pointer}.dept-admin-portal .form-label{font-size:var(--dept-text-body-sm)}.dept-admin-portal input[type=text],.dept-admin-portal input[type=email],.dept-admin-portal input[type=password],.dept-admin-portal input[type=number],.dept-admin-portal input[type=tel],.dept-admin-portal input[type=date],.dept-admin-portal input[type=time],.dept-admin-portal select,.dept-admin-portal textarea{width:100%;height:var(--dept-input-height);padding:var(--dept-input-padding);border-radius:var(--dept-radius-md);border:1px solid var(--dept-border-medium);background:var(--dept-bg-primary);color:var(--dept-text-primary);font-family:var(--font-body);font-size:14px;transition:all var(--duration-fast) var(--ease-in-out)}.dept-admin-portal textarea{height:auto;min-height:90px;padding:var(--space-sm);resize:vertical}.dept-admin-portal input:focus,.dept-admin-portal select:focus,.dept-admin-portal textarea:focus{outline:none;border:2px solid var(--dept-accent-primary);box-shadow:0 0 0 3px #bf360c1a;padding-left:11px}.dept-admin-portal input::placeholder,.dept-admin-portal textarea::placeholder{color:var(--dept-text-tertiary)}.dept-admin-portal input[type=checkbox],.dept-admin-portal input[type=radio]{width:16px;height:16px;margin-right:var(--space-xs);accent-color:var(--dept-accent-primary);cursor:pointer}.master-admin-portal .form-label{font-size:var(--master-text-body-sm);color:var(--master-text-primary)}.master-admin-portal input[type=text],.master-admin-portal input[type=email],.master-admin-portal input[type=password],.master-admin-portal input[type=number],.master-admin-portal input[type=tel],.master-admin-portal input[type=date],.master-admin-portal input[type=time],.master-admin-portal select,.master-admin-portal textarea{width:100%;height:var(--master-input-height);padding:var(--master-input-padding);border-radius:var(--master-radius-md);border:1px solid var(--master-border-medium);background:var(--master-bg-primary);color:var(--master-text-primary);font-family:var(--font-body);font-size:13px;transition:all var(--duration-instant) var(--ease-in-out)}.master-admin-portal textarea{height:auto;min-height:80px;padding:var(--space-sm);resize:vertical}.master-admin-portal input:focus,.master-admin-portal select:focus,.master-admin-portal textarea:focus{outline:none;border:2px solid var(--master-accent-primary);box-shadow:0 0 0 3px var(--master-accent-pale);padding-left:9px;background:var(--master-bg-primary)}.master-admin-portal input::placeholder,.master-admin-portal textarea::placeholder{color:var(--master-text-tertiary)}.master-admin-portal input[type=checkbox],.master-admin-portal input[type=radio]{width:16px;height:16px;margin-right:var(--space-xs);accent-color:var(--master-accent-primary);cursor:pointer}.form-group.has-error input,.form-group.has-error select,.form-group.has-error textarea,input.error,select.error,textarea.error{border-color:var(--color-error)!important}.student-portal .form-group.has-error input:focus,.student-portal input.error:focus{box-shadow:0 0 0 4px #d32f2f1a!important}.staff-portal .form-group.has-error input:focus,.staff-portal input.error:focus{box-shadow:0 0 0 3px #d32f2f1a!important}.dept-admin-portal .form-group.has-error input:focus,.dept-admin-portal input.error:focus,.master-admin-portal .form-group.has-error input:focus,.master-admin-portal input.error:focus{box-shadow:0 0 0 3px #d32f2f1a!important}.form-group.has-success input,.form-group.has-success select,.form-group.has-success textarea,input.success,select.success,textarea.success{border-color:var(--color-success)!important}select{appearance:none!important;-webkit-appearance:none!important;-moz-appearance:none!important;background-color:#fff!important;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%23666' d='M6 9L1 4h10z'/%3E%3C/svg%3E")!important;background-repeat:no-repeat!important;background-position:right 12px center!important;background-size:12px!important;padding-right:36px;border-style:solid!important;border-image:none!important;cursor:pointer}.master-admin-portal select{background-color:var(--master-bg-primary, white)!important;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%239C27B0' d='M6 9L1 4h10z'/%3E%3C/svg%3E")!important}.dept-admin-portal select{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%23F59E0B' d='M6 9L1 4h10z'/%3E%3C/svg%3E")!important}.staff-portal select{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%2314B8A6' d='M6 9L1 4h10z'/%3E%3C/svg%3E")!important}.student-portal select{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%23F97316' d='M6 9L1 4h10z'/%3E%3C/svg%3E")!important}.input-group{display:flex;width:100%}.input-group input{flex:1;border-radius:0}.input-group input:first-child{border-top-left-radius:var(--radius-md);border-bottom-left-radius:var(--radius-md)}.input-group input:last-child{border-top-right-radius:var(--radius-md);border-bottom-right-radius:var(--radius-md)}.input-group-addon{display:flex;align-items:center;padding:0 var(--space-md);background:var(--role-bg-secondary);border:1px solid var(--role-border-medium);color:var(--theme-text-secondary)}.input-group-addon:first-child{border-right:none;border-top-left-radius:var(--radius-md);border-bottom-left-radius:var(--radius-md)}.input-group-addon:last-child{border-left:none;border-top-right-radius:var(--radius-md);border-bottom-right-radius:var(--radius-md)}input:disabled,select:disabled,textarea:disabled{opacity:.5;cursor:not-allowed;background:var(--role-bg-secondary)!important}.student-portal input:focus-visible,.student-portal select:focus-visible,.student-portal textarea:focus-visible{outline:3px solid var(--student-accent-primary);outline-offset:2px}.staff-portal input:focus-visible,.staff-portal select:focus-visible,.staff-portal textarea:focus-visible{outline:3px solid var(--staff-accent-primary);outline-offset:2px}.dept-admin-portal input:focus-visible,.dept-admin-portal select:focus-visible,.dept-admin-portal textarea:focus-visible{outline:3px solid var(--dept-accent-primary);outline-offset:2px}.master-admin-portal input:focus-visible,.master-admin-portal select:focus-visible,.master-admin-portal textarea:focus-visible{outline:3px solid var(--master-accent-primary);outline-offset:2px}@media (prefers-contrast: high){input,select,textarea{border-width:2px!important}input:focus,select:focus,textarea:focus{border-width:3px!important}}.switch{position:relative;display:inline-block;width:48px;height:24px}.switch-slider{position:absolute;cursor:pointer;top:0;left:0;right:0;bottom:0;background-color:var(--color-border);transition:.3s;border-radius:24px}.switch-slider:before{position:absolute;content:"";height:18px;width:18px;left:3px;bottom:3px;background-color:var(--color-white, white);transition:.3s;border-radius:50%}.switch input:checked+.switch-slider{background-color:var(--role-accent)}.switch input:checked+.switch-slider:before{transform:translate(24px)}.switch input:focus+.switch-slider{box-shadow:0 0 0 3px rgba(var(--role-accent-rgb, 0, 0, 0),.1)}.student-portal .switch input:checked+.switch-slider{background-color:var(--student-accent-primary)}.staff-portal .switch input:checked+.switch-slider{background-color:var(--staff-accent-primary)}.dept-admin-portal .switch input:checked+.switch-slider{background-color:var(--dept-accent-primary)}.master-admin-portal .switch input:checked+.switch-slider{background-color:var(--master-accent-primary)}.card{background:var(--role-bg-primary);border:1px solid var(--role-border-light);border-radius:var(--radius-lg);padding:var(--space-lg);transition:all var(--duration-fast) var(--ease-in-out)}.card-header{margin-bottom:var(--space-md);padding-bottom:var(--space-md);border-bottom:1px solid var(--role-border-light)}.card-title{margin:0;font-size:18px;font-weight:var(--font-weight-semibold);color:var(--theme-text-primary)}.card-subtitle{margin:var(--space-xs) 0 0;font-size:14px;color:var(--theme-text-secondary)}.card-body{margin-bottom:var(--space-md)}.card-footer{margin-top:var(--space-md);padding-top:var(--space-md);border-top:1px solid var(--role-border-light);display:flex;justify-content:space-between;align-items:center}.student-portal .card,.student-portal .student-card{background:var(--student-bg-primary);border-radius:var(--student-radius-lg);padding:var(--student-card-padding);box-shadow:var(--student-shadow-md);transition:all var(--duration-normal) var(--ease-out-quad)}.student-portal .card:hover,.student-portal .student-card:hover{transform:translateY(-4px) scale(1.01);box-shadow:var(--student-shadow-lg)}.student-portal .card-title,.student-portal .student-card h3{font-size:var(--student-text-h4);font-weight:var(--font-weight-semibold);color:var(--student-text-primary);margin-bottom:var(--space-sm)}.student-portal .card-subtitle{font-size:var(--student-text-body-sm)}.student-portal .equipment-card{cursor:pointer}.student-portal .equipment-card-image{width:100%;height:200px;border-radius:var(--student-radius-md);object-fit:cover;margin-bottom:var(--space-md)}.student-portal .equipment-card-badge{display:inline-block;padding:var(--space-xs) var(--space-md);border-radius:var(--student-radius-full);font-size:var(--student-text-caption);font-weight:var(--font-weight-medium);background:var(--student-accent-primary);color:var(--text-inverse, white)}.student-portal .stat-card,.student-portal .student-stat-card{position:relative;overflow:hidden}.student-portal .stat-card:before,.student-portal .student-stat-card:before{content:"";position:absolute;top:0;left:0;width:4px;height:100%;background:linear-gradient(180deg,var(--student-accent-primary) 0%,#D64965 100%)}.student-portal .stat-number,.student-portal .student-stat-number{font-size:var(--student-text-hero);font-weight:var(--font-weight-bold);color:var(--student-accent-primary);line-height:1;margin-bottom:var(--space-sm)}.student-portal .stat-label,.student-portal .student-stat-label{font-size:var(--student-text-body-sm);color:var(--student-text-secondary);font-weight:var(--font-weight-medium)}.staff-portal .card,.staff-portal .staff-card{background:var(--staff-bg-primary);border-radius:var(--staff-radius-lg);padding:var(--staff-card-padding);box-shadow:var(--staff-shadow-sm);transition:all var(--duration-fast) var(--ease-in-out)}.staff-portal .card:hover,.staff-portal .staff-card:hover{transform:translateY(-2px);box-shadow:var(--staff-shadow-md)}.staff-portal .card-title,.staff-portal .staff-card h3{font-size:var(--staff-text-h4);font-weight:var(--font-weight-semibold);color:var(--staff-text-primary)}.staff-portal .equipment-card-image{width:100%;height:150px;border-radius:var(--staff-radius-md);object-fit:cover;margin-bottom:var(--space-sm)}.staff-portal .stat-card,.staff-portal .staff-stat-card{position:relative;overflow:hidden}.staff-portal .stat-card:before,.staff-portal .staff-stat-card:before{content:"";position:absolute;top:0;left:0;width:4px;height:100%;background:linear-gradient(180deg,var(--staff-accent-primary) 0%,#229A8C 100%)}.staff-portal .stat-number,.staff-portal .staff-stat-number{font-size:var(--staff-text-hero);font-weight:var(--font-weight-bold);color:var(--staff-accent-primary);line-height:1;margin-bottom:var(--space-sm)}.dept-admin-portal.card,.dept-admin-portal.admin-card{background:var(--dept-bg-primary);border-radius:var(--dept-radius-lg);padding:var(--dept-card-padding);box-shadow:var(--dept-shadow-sm);border:1px solid var(--dept-border-light);transition:all var(--duration-fast) var(--ease-in-out)}.dept-admin-portal.card:hover,.dept-admin-portal.admin-card:hover{background:#ffa72605}.dept-admin-portal.card-title,.dept-admin-portal.admin-card h3{font-size:var(--dept-text-h4);font-weight:var(--font-weight-semibold);color:var(--dept-text-primary)}.dept-admin-portal.equipment-card-image{width:100%;height:120px;border-radius:var(--dept-radius-md);object-fit:cover;margin-bottom:var(--space-sm)}.dept-admin-portal.stat-card,.dept-admin-portal.admin-stat-card{position:relative;overflow:hidden}.dept-admin-portal.stat-card:before,.dept-admin-portal.admin-stat-card:before{content:"";position:absolute;top:0;left:0;width:4px;height:100%;background:linear-gradient(180deg,var(--dept-accent-primary) 0%,#D84315 100%)}.dept-admin-portal.stat-number,.dept-admin-portal.admin-stat-number{font-size:var(--dept-text-hero);font-weight:var(--font-weight-bold);color:var(--dept-accent-primary);line-height:1}.master-admin-portal .card,.master-admin-portal .admin-card{background:var(--master-bg-secondary);border-radius:var(--master-radius-lg);padding:var(--master-card-padding);border:1px solid var(--master-border-light);transition:all var(--duration-instant) var(--ease-in-out)}.master-admin-portal .card:hover,.master-admin-portal .admin-card:hover{border-color:var(--master-accent-secondary);background:var(--master-bg-tertiary)}.master-admin-portal .card-title,.master-admin-portal .admin-card h3{font-size:var(--master-text-h4);font-weight:var(--font-weight-semibold);color:var(--master-text-primary)}.master-admin-portal .card-subtitle{color:var(--master-text-secondary)}.master-admin-portal .equipment-card-image{width:100%;height:100px;border-radius:var(--master-radius-md);object-fit:cover;margin-bottom:var(--space-sm)}.master-admin-portal .stat-card,.master-admin-portal .admin-stat-card{position:relative;overflow:hidden}.master-admin-portal .stat-card:before,.master-admin-portal .admin-stat-card:before{content:"";position:absolute;top:0;left:0;width:4px;height:100%;background:linear-gradient(180deg,var(--master-accent-primary) 0%,#AB47BC 100%)}.master-admin-portal .stat-number,.master-admin-portal .admin-stat-number{font-size:var(--master-text-hero);font-weight:var(--font-weight-bold);color:var(--master-accent-secondary);line-height:1}.master-admin-portal .stat-label{color:var(--master-text-secondary)}.card-clickable{cursor:pointer;-webkit-user-select:none;user-select:none}.card-clickable:active{transform:scale(.98)}.card-highlight{border-left-width:4px}.student-portal .card-highlight{border-left-color:var(--student-accent-primary)}.staff-portal .card-highlight{border-left-color:var(--staff-accent-primary)}.dept-admin-portal.card-highlight{border-left-color:var(--dept-accent-primary)}.master-admin-portal .card-highlight{border-left-color:var(--master-accent-primary)}.card-compact{padding:var(--space-sm)!important}.card-image-top{width:calc(100% + 2 * var(--space-lg));margin:calc(-1 * var(--space-lg));margin-bottom:var(--space-md);border-radius:var(--radius-lg) var(--radius-lg) 0 0}.student-portal .card-image-top{border-radius:var(--student-radius-lg) var(--student-radius-lg) 0 0}.card-grid{display:grid;gap:var(--space-lg)}.student-portal .card-grid{grid-template-columns:1fr;gap:var(--student-card-gap)}@media (min-width: 768px){.student-portal .card-grid{grid-template-columns:repeat(2,1fr)}}@media (min-width: 1024px){.student-portal .card-grid{grid-template-columns:repeat(3,1fr)}}.staff-portal .card-grid{grid-template-columns:1fr;gap:var(--staff-card-gap)}@media (min-width: 768px){.staff-portal .card-grid{grid-template-columns:repeat(2,1fr)}}@media (min-width: 1024px){.staff-portal .card-grid{grid-template-columns:repeat(3,1fr)}}.dept-admin-portal.card-grid{grid-template-columns:1fr;gap:var(--dept-card-gap)}@media (min-width: 768px){.dept-admin-portal.card-grid{grid-template-columns:repeat(2,1fr)}}@media (min-width: 1024px){.dept-admin-portal.card-grid{grid-template-columns:repeat(4,1fr)}}.master-admin-portal .card-grid{grid-template-columns:1fr;gap:var(--master-card-gap)}@media (min-width: 768px){.master-admin-portal .card-grid{grid-template-columns:repeat(3,1fr)}}@media (min-width: 1024px){.master-admin-portal .card-grid{grid-template-columns:repeat(4,1fr)}}@media (min-width: 2560px){.master-admin-portal .card-grid{grid-template-columns:repeat(6,1fr)}}@media (prefers-reduced-motion: reduce){.card{transition:none!important}.card:hover,.card-clickable:active{transform:none!important}}@media (prefers-contrast: high){.card{border-width:2px}.card-highlight{border-left-width:6px}}.card-skeleton{background:linear-gradient(90deg,var(--role-bg-tertiary) 0%,var(--role-bg-secondary) 50%,var(--role-bg-tertiary) 100%);background-size:200% 100%;animation:skeleton-loading 1.5s ease-in-out infinite;border-radius:var(--radius-md);height:200px}@keyframes skeleton-loading{0%{background-position:200% 0}to{background-position:-200% 0}}.master-admin-portal .card-skeleton{background:linear-gradient(90deg,var(--master-bg-tertiary) 0%,var(--master-bg-secondary) 50%,var(--master-bg-tertiary) 100%);background-size:200% 100%}:root{--perspective-subtle: 1000px;--perspective-medium: 800px;--perspective-dramatic: 500px;--perspective-extreme: 300px;--tilt-subtle: rotateX(-2deg) rotateY(2deg);--tilt-medium: rotateX(-5deg) rotateY(5deg);--tilt-dramatic: rotateX(-10deg) rotateY(10deg);--flip-duration: .6s;--flip-timing: cubic-bezier(.4, 0, .2, 1);--depth-layer-0: translateZ(0px);--depth-layer-1: translateZ(10px);--depth-layer-2: translateZ(20px);--depth-layer-3: translateZ(40px);--depth-layer-4: translateZ(60px);--depth-layer-5: translateZ(100px);--glass-blur-subtle: blur(8px);--glass-blur-light: blur(12px);--glass-blur-medium: blur(16px);--glass-blur-heavy: blur(24px);--glass-blur-extreme: blur(40px);--glass-bg-light: rgba(255, 255, 255, .7);--glass-bg-light-subtle: rgba(255, 255, 255, .5);--glass-bg-light-strong: rgba(255, 255, 255, .85);--glass-bg-dark: rgba(10, 0, 6, .7);--glass-bg-dark-subtle: rgba(10, 0, 6, .5);--glass-bg-dark-strong: rgba(10, 0, 6, .85);--glass-border-light: rgba(255, 255, 255, .2);--glass-border-light-strong: rgba(255, 255, 255, .4);--glass-border-dark: rgba(255, 255, 255, .1);--glass-border-dark-strong: rgba(255, 255, 255, .2);--glass-shadow-light: 0 8px 32px rgba(0, 0, 0, .1);--glass-shadow-dark: 0 8px 32px rgba(0, 0, 0, .4);--glass-shadow-colored: 0 8px 32px var(--role-accent-light, rgba(0, 0, 0, .1));--neu-shadow-light: 6px 6px 12px rgba(0, 0, 0, .08), -6px -6px 12px rgba(255, 255, 255, .9);--neu-shadow-light-sm: 3px 3px 6px rgba(0, 0, 0, .06), -3px -3px 6px rgba(255, 255, 255, .8);--neu-shadow-light-lg: 10px 10px 20px rgba(0, 0, 0, .1), -10px -10px 20px rgba(255, 255, 255, .95);--neu-inset-light: inset 4px 4px 8px rgba(0, 0, 0, .08), inset -4px -4px 8px rgba(255, 255, 255, .9);--neu-shadow-dark: 6px 6px 12px rgba(0, 0, 0, .4), -6px -6px 12px rgba(50, 50, 50, .2);--neu-inset-dark: inset 4px 4px 8px rgba(0, 0, 0, .4), inset -4px -4px 8px rgba(50, 50, 50, .2);--ease-spring: cubic-bezier(.68, -.55, .265, 1.55);--ease-spring-soft: cubic-bezier(.175, .885, .32, 1.275);--ease-spring-bouncy: cubic-bezier(.68, -.6, .32, 1.6);--ease-elastic: cubic-bezier(.175, .885, .32, 1.275);--ease-elastic-in: cubic-bezier(.6, -.28, .735, .045);--ease-elastic-out: cubic-bezier(.175, .885, .32, 1.6);--ease-smooth: cubic-bezier(.25, .1, .25, 1);--ease-smooth-out: cubic-bezier(0, 0, .2, 1);--ease-smooth-in: cubic-bezier(.4, 0, 1, 1);--ease-snappy: cubic-bezier(.45, .05, .55, .95);--ease-snappy-out: cubic-bezier(.22, .61, .36, 1);--ease-dramatic: cubic-bezier(.7, 0, .3, 1);--ease-dramatic-in: cubic-bezier(.9, 0, .8, .2);--ease-dramatic-out: cubic-bezier(.2, .8, .1, 1);--duration-instant: 50ms;--duration-micro: .1s;--duration-fast: .15s;--duration-normal: .2s;--duration-medium: .3s;--duration-slow: .4s;--duration-slower: .5s;--duration-slowest: .7s;--duration-image: .4s;--duration-reveal: .6s;--duration-page: .8s;--duration-flip: .6s;--stagger-1: 0ms;--stagger-2: 50ms;--stagger-3: .1s;--stagger-4: .15s;--stagger-5: .2s;--stagger-6: .25s;--stagger-7: .3s;--stagger-8: .35s;--stagger-9: .4s;--stagger-10: .45s;--stagger-fast-1: 0ms;--stagger-fast-2: 30ms;--stagger-fast-3: 60ms;--stagger-fast-4: 90ms;--stagger-fast-5: .12s;--scale-press: .97;--scale-subtle: 1.02;--scale-medium: 1.05;--scale-large: 1.08;--scale-xl: 1.1;--scroll-trigger-offset: 100px;--scroll-parallax-slow: .3;--scroll-parallax-medium: .5;--scroll-parallax-fast: .7;--reveal-distance-sm: 20px;--reveal-distance-md: 40px;--reveal-distance-lg: 60px;--ai-pulse-duration: 2s;--ai-glow-color: rgba(123, 31, 162, .4);--ai-glow-color-active: rgba(123, 31, 162, .6);--ai-thinking-gradient: linear-gradient( 90deg, var(--role-accent, #7C3AED) 0%, #9C27B0 25%, var(--role-accent, #7C3AED) 50%, #9C27B0 75%, var(--role-accent, #7C3AED) 100% );--ai-shimmer-gradient: linear-gradient( 90deg, transparent 0%, rgba(255, 255, 255, .4) 50%, transparent 100% );--swipe-threshold: 100px;--swipe-velocity: .5;--pinch-min-scale: .5;--pinch-max-scale: 3;--drag-resistance: .8;--pull-refresh-threshold: 80px;--gesture-feedback-scale: .98;--gesture-feedback-opacity: .8;--gesture-feedback-rotation: 5deg;--glow-sm: 0 0 10px;--glow-md: 0 0 20px;--glow-lg: 0 0 40px;--glow-xl: 0 0 60px;--glow-primary: 0 0 20px var(--role-accent-light, rgba(37, 99, 235, .3));--glow-success: 0 0 20px rgba(16, 185, 129, .3);--glow-warning: 0 0 20px rgba(245, 158, 11, .3);--glow-error: 0 0 20px rgba(239, 68, 68, .3);--font-variable: "Inter var", "Inter", system-ui, sans-serif;--font-weight-range: 100 900;--font-optical-sizing: auto;--font-weight-hover-start: 400;--font-weight-hover-end: 600;--ripple-duration: .6s;--ripple-size: 300px;--ripple-color-light: rgba(0, 0, 0, .1);--ripple-color-dark: rgba(255, 255, 255, .2);--ripple-color-accent: rgba(var(--role-accent), .3);--morph-duration: .3s;--morph-timing: var(--ease-smooth);--float-distance-sm: 4px;--float-distance-md: 8px;--float-distance-lg: 12px;--float-shadow-sm: 0 4px 8px rgba(0, 0, 0, .1);--float-shadow-md: 0 8px 16px rgba(0, 0, 0, .15);--float-shadow-lg: 0 12px 24px rgba(0, 0, 0, .2)}:root,[data-theme=light]{--glass-bg: var(--glass-bg-light);--glass-bg-subtle: var(--glass-bg-light-subtle);--glass-bg-strong: var(--glass-bg-light-strong);--glass-border: var(--glass-border-light);--glass-border-strong: var(--glass-border-light-strong);--glass-shadow: var(--glass-shadow-light);--neu-shadow: var(--neu-shadow-light);--neu-inset: var(--neu-inset-light);--ripple-color: var(--ripple-color-light)}[data-experimental=false]{--perspective-subtle: none;--perspective-medium: none;--perspective-dramatic: none;--glass-blur-subtle: none;--glass-blur-light: none;--glass-blur-medium: none;--glass-blur-heavy: none;--ease-spring: var(--ease-smooth);--ease-elastic: var(--ease-smooth);--ease-dramatic: var(--ease-smooth)}@media (prefers-reduced-motion: reduce){:root{--duration-instant: 0ms;--duration-micro: 0ms;--duration-fast: 0ms;--duration-normal: 0ms;--duration-medium: 0ms;--duration-slow: 0ms;--duration-reveal: 0ms;--duration-flip: 0ms;--stagger-1: 0ms;--stagger-2: 0ms;--stagger-3: 0ms;--stagger-4: 0ms;--stagger-5: 0ms;--scale-press: 1;--scale-subtle: 1;--scale-medium: 1;--scale-large: 1;--scroll-parallax-slow: 0;--scroll-parallax-medium: 0;--scroll-parallax-fast: 0}}.glass{background:var(--glass-bg);backdrop-filter:var(--glass-blur-medium);-webkit-backdrop-filter:var(--glass-blur-medium);border:1px solid var(--glass-border);border-radius:var(--radius-lg)}.glass-subtle{background:var(--glass-bg-subtle);backdrop-filter:var(--glass-blur-light);-webkit-backdrop-filter:var(--glass-blur-light);border:1px solid var(--glass-border);border-radius:var(--radius-lg)}.glass-strong{background:var(--glass-bg-strong);backdrop-filter:var(--glass-blur-heavy);-webkit-backdrop-filter:var(--glass-blur-heavy);border:1px solid var(--glass-border-strong);border-radius:var(--radius-lg)}.glass-card{background:var(--glass-bg);backdrop-filter:var(--glass-blur-medium);-webkit-backdrop-filter:var(--glass-blur-medium);border:1px solid var(--glass-border);border-radius:var(--radius-lg);padding:var(--space-lg);box-shadow:var(--glass-shadow);transition:all var(--duration-medium) var(--ease-smooth)}.glass-card:hover{border-color:var(--glass-border-strong);box-shadow:var(--glass-shadow),var(--glow-primary);transform:translateY(-4px)}.glass-card-gradient{background:var(--glass-bg);backdrop-filter:var(--glass-blur-medium);-webkit-backdrop-filter:var(--glass-blur-medium);border-radius:var(--radius-lg);padding:var(--space-lg);position:relative}.glass-card-gradient:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;border-radius:var(--radius-lg);padding:1px;background:linear-gradient(135deg,var(--glass-border-strong) 0%,transparent 50%,var(--glass-border) 100%);-webkit-mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);-webkit-mask-composite:xor;mask-composite:exclude;pointer-events:none}.glass-nav{background:var(--glass-bg-strong);backdrop-filter:var(--glass-blur-heavy) saturate(180%);-webkit-backdrop-filter:var(--glass-blur-heavy) saturate(180%);border-bottom:1px solid var(--glass-border);position:sticky;top:0;z-index:var(--z-sticky)}.glass-nav-floating{background:var(--glass-bg);backdrop-filter:var(--glass-blur-medium);-webkit-backdrop-filter:var(--glass-blur-medium);border:1px solid var(--glass-border);border-radius:var(--radius-xl);margin:var(--space-md);padding:var(--space-sm) var(--space-md)}.glass-modal-backdrop{background:#0006;backdrop-filter:var(--glass-blur-subtle);-webkit-backdrop-filter:var(--glass-blur-subtle);position:fixed;top:0;right:0;bottom:0;left:0;z-index:var(--z-modal-backdrop)}.glass-modal{background:var(--glass-bg-strong);backdrop-filter:var(--glass-blur-heavy);-webkit-backdrop-filter:var(--glass-blur-heavy);border:1px solid var(--glass-border);border-radius:var(--radius-xl);box-shadow:var(--shadow-xl),var(--glass-shadow);max-width:90vw;max-height:85vh;overflow:hidden}.glass-modal-header{padding:var(--space-lg);border-bottom:1px solid var(--glass-border)}.glass-modal-content{padding:var(--space-lg);overflow-y:auto}.glass-modal-footer{padding:var(--space-md) var(--space-lg);border-top:1px solid var(--glass-border);background:var(--glass-bg-subtle)}.glass-sidebar{background:var(--glass-bg);backdrop-filter:var(--glass-blur-medium);-webkit-backdrop-filter:var(--glass-blur-medium);border-right:1px solid var(--glass-border);height:100%}.glass-sidebar-item{padding:var(--space-md);border-radius:var(--radius-md);margin:var(--space-xs);transition:all var(--duration-fast) var(--ease-smooth)}.glass-sidebar-item:hover{background:var(--glass-bg-subtle)}.glass-sidebar-item.active{background:var(--role-accent-light);border:1px solid var(--role-accent)}.glass-dropdown{background:var(--glass-bg-strong);backdrop-filter:var(--glass-blur-heavy);-webkit-backdrop-filter:var(--glass-blur-heavy);border:1px solid var(--glass-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg),var(--glass-shadow);padding:var(--space-sm);min-width:200px}.glass-dropdown-item{padding:var(--space-sm) var(--space-md);border-radius:var(--radius-md);transition:all var(--duration-fast) var(--ease-smooth);cursor:pointer}.glass-dropdown-item:hover{background:var(--glass-bg-subtle)}.glass-tooltip{background:var(--glass-bg-strong);backdrop-filter:var(--glass-blur-medium);-webkit-backdrop-filter:var(--glass-blur-medium);border:1px solid var(--glass-border);border-radius:var(--radius-md);padding:var(--space-sm) var(--space-md);font-size:var(--font-size-body-sm);box-shadow:var(--shadow-md);z-index:var(--z-tooltip)}.glass-btn{background:var(--glass-bg);backdrop-filter:var(--glass-blur-light);-webkit-backdrop-filter:var(--glass-blur-light);border:1px solid var(--glass-border);border-radius:var(--radius-md);padding:var(--space-sm) var(--space-lg);font-weight:var(--font-weight-medium);cursor:pointer;transition:all var(--duration-fast) var(--ease-smooth)}.glass-btn:hover{background:var(--glass-bg-strong);border-color:var(--glass-border-strong);transform:translateY(-2px);box-shadow:var(--shadow-md)}.glass-btn:active{transform:translateY(0)}.glass-btn-accent{background:linear-gradient(135deg,rgba(var(--role-accent),.2),rgba(var(--role-accent),.1));border-color:var(--role-accent)}.glass-input{background:var(--glass-bg-subtle);backdrop-filter:var(--glass-blur-light);-webkit-backdrop-filter:var(--glass-blur-light);border:1px solid var(--glass-border);border-radius:var(--radius-md);padding:var(--space-sm) var(--space-md);transition:all var(--duration-fast) var(--ease-smooth)}.glass-input:focus{outline:none;background:var(--glass-bg);border-color:var(--role-accent);box-shadow:0 0 0 3px var(--role-accent-light),var(--glow-primary)}.glass-input::placeholder{color:var(--theme-text-tertiary)}.glass-search{background:var(--glass-bg);backdrop-filter:var(--glass-blur-medium);-webkit-backdrop-filter:var(--glass-blur-medium);border:1px solid var(--glass-border);border-radius:var(--radius-full);padding:var(--space-sm) var(--space-lg);display:flex;align-items:center;gap:var(--space-sm);transition:all var(--duration-fast) var(--ease-smooth)}.glass-search:focus-within{background:var(--glass-bg-strong);border-color:var(--role-accent);box-shadow:var(--glow-primary)}.glass-search input{background:transparent;border:none;outline:none;flex:1;color:var(--theme-text-primary)}.glass-badge{background:var(--glass-bg-subtle);backdrop-filter:var(--glass-blur-light);-webkit-backdrop-filter:var(--glass-blur-light);border:1px solid var(--glass-border);border-radius:var(--radius-full);padding:var(--space-xs) var(--space-sm);font-size:var(--font-size-caption);font-weight:var(--font-weight-medium)}.glass-fab{background:var(--glass-bg-strong);backdrop-filter:var(--glass-blur-heavy);-webkit-backdrop-filter:var(--glass-blur-heavy);border:1px solid var(--glass-border);border-radius:var(--radius-full);width:56px;height:56px;display:flex;align-items:center;justify-content:center;box-shadow:var(--shadow-lg),var(--glass-shadow);cursor:pointer;transition:all var(--duration-normal) var(--ease-spring)}.glass-fab:hover{transform:scale(1.1);box-shadow:var(--shadow-xl),var(--glow-primary)}.student-portal .glass,.student-portal .glass-card{background:#ff6b6b0d;border-color:#ff6b6b26}.staff-portal .glass,.staff-portal .glass-card{background:#00bcd40d;border-color:#00bcd426}.dept-admin-portal .glass,.dept-admin-portal .glass-card{background:#ffb3000d;border-color:#ffb30026}.master-admin-portal .glass,.master-admin-portal .glass-card{background:#e91e6314;border-color:#e91e6333}@supports not (backdrop-filter: blur(10px)){.glass,.glass-subtle,.glass-strong,.glass-card,.glass-nav,.glass-modal,.glass-dropdown{background:var(--theme-bg-primary);opacity:.98}}@media (prefers-reduced-motion: reduce){.glass-card:hover,.glass-btn:hover,.glass-fab:hover{transform:none}}.perspective-subtle{perspective:var(--perspective-subtle);transform-style:preserve-3d}.perspective-medium{perspective:var(--perspective-medium);transform-style:preserve-3d}.perspective-dramatic{perspective:var(--perspective-dramatic);transform-style:preserve-3d}.card-3d{perspective:var(--perspective-medium);transform-style:preserve-3d}.card-3d-inner{position:relative;width:100%;height:100%;transition:transform var(--flip-duration) var(--flip-timing);transform-style:preserve-3d}.card-3d.flipped .card-3d-inner,.card-3d:focus-within .card-3d-inner.flip-on-focus{transform:rotateY(180deg)}.card-3d-front,.card-3d-back{position:absolute;width:100%;height:100%;backface-visibility:hidden;-webkit-backface-visibility:hidden}.card-3d-back{transform:rotateY(180deg)}.tilt-3d{perspective:var(--perspective-subtle);transform-style:preserve-3d;transition:transform var(--duration-fast) var(--ease-smooth)}.tilt-3d:hover{transform:var(--tilt-subtle)}.tilt-3d-medium:hover{transform:var(--tilt-medium)}.tilt-3d-dramatic:hover{transform:var(--tilt-dramatic)}.tilt-3d-dynamic{transition:transform var(--duration-micro) linear;will-change:transform}.equipment-card-3d{perspective:var(--perspective-subtle);transform-style:preserve-3d;transition:transform var(--duration-image) var(--ease-smooth),box-shadow var(--duration-image) var(--ease-smooth)}.equipment-card-3d:hover{transform:rotateX(-3deg) rotateY(3deg) translateZ(10px) scale(var(--scale-subtle));box-shadow:var(--shadow-xl),-5px 5px 20px #0000001a}.equipment-card-3d .card-image{transform:translateZ(0);transition:transform var(--duration-image) var(--ease-smooth)}.equipment-card-3d:hover .card-image{transform:translateZ(20px) scale(1.05)}.equipment-card-3d .card-content{transform:translateZ(30px)}.equipment-card-3d .card-actions{transform:translateZ(40px)}.hover-lift{transition:transform var(--duration-image) var(--ease-smooth),box-shadow var(--duration-image) var(--ease-smooth);will-change:transform}.hover-lift:hover{transform:scale(var(--scale-medium)) translateY(-4px);box-shadow:var(--shadow-xl)}.hover-lift-subtle:hover{transform:scale(var(--scale-subtle)) translateY(-2px);box-shadow:var(--shadow-lg)}.hover-lift-large:hover{transform:scale(var(--scale-large)) translateY(-8px);box-shadow:var(--shadow-xl),var(--glow-primary)}.depth-container{transform-style:preserve-3d;perspective:var(--perspective-medium)}.depth-layer-0{transform:var(--depth-layer-0)}.depth-layer-1{transform:var(--depth-layer-1)}.depth-layer-2{transform:var(--depth-layer-2)}.depth-layer-3{transform:var(--depth-layer-3)}.depth-layer-4{transform:var(--depth-layer-4)}.depth-layer-5{transform:var(--depth-layer-5)}.nav-3d{perspective:var(--perspective-dramatic)}.nav-3d-dropdown{transform-origin:top center;transform:rotateX(-15deg) scaleY(0);opacity:0;transition:all var(--duration-medium) var(--ease-smooth);pointer-events:none}.nav-3d:hover .nav-3d-dropdown,.nav-3d:focus-within .nav-3d-dropdown{transform:rotateX(0) scaleY(1);opacity:1;pointer-events:auto}.modal-3d-enter{animation:modal3dEnter var(--duration-slow) var(--ease-spring) forwards}@keyframes modal3dEnter{0%{opacity:0;transform:perspective(var(--perspective-medium)) rotateX(-10deg) translateY(50px) scale(.9)}to{opacity:1;transform:perspective(var(--perspective-medium)) rotateX(0) translateY(0) scale(1)}}.modal-3d-exit{animation:modal3dExit var(--duration-normal) var(--ease-smooth) forwards}@keyframes modal3dExit{0%{opacity:1;transform:perspective(var(--perspective-medium)) rotateX(0) translateY(0) scale(1)}to{opacity:0;transform:perspective(var(--perspective-medium)) rotateX(10deg) translateY(-30px) scale(.95)}}.stat-card-3d{perspective:var(--perspective-subtle);transform-style:preserve-3d;transition:transform var(--duration-medium) var(--ease-smooth)}.stat-card-3d:hover{transform:rotateX(-5deg) rotateY(5deg) translateZ(15px)}.stat-card-3d .stat-number{transform:translateZ(20px);transition:transform var(--duration-medium) var(--ease-spring)}.stat-card-3d:hover .stat-number{transform:translateZ(40px) scale(1.05)}.btn-3d{transform-style:preserve-3d;transition:transform var(--duration-fast) var(--ease-smooth)}.btn-3d:hover{transform:translateZ(5px)}.btn-3d:active{transform:translateZ(-2px) scale(var(--scale-press))}.image-3d-container{overflow:hidden;perspective:var(--perspective-subtle);border-radius:var(--radius-lg)}.image-3d{transition:transform var(--duration-image) var(--ease-smooth);will-change:transform}.image-3d-container:hover .image-3d{transform:scale(1.1) translateZ(20px)}.float-3d{animation:float3d 6s ease-in-out infinite}@keyframes float3d{0%,to{transform:translateY(0) translateZ(0) rotateX(0)}50%{transform:translateY(-20px) translateZ(30px) rotateX(5deg)}}.float-3d-slow{animation-duration:8s}.float-3d-fast{animation-duration:4s}.page-3d-enter{animation:page3dEnter var(--duration-page) var(--ease-smooth) forwards}@keyframes page3dEnter{0%{opacity:0;transform:perspective(var(--perspective-medium)) translateZ(-100px) rotateY(-5deg)}to{opacity:1;transform:perspective(var(--perspective-medium)) translateZ(0) rotateY(0)}}.list-3d>*{opacity:0;transform:perspective(var(--perspective-subtle)) translateZ(-30px) translateY(20px);transition:all var(--duration-reveal) var(--ease-smooth)}.list-3d.revealed>*:nth-child(1){transition-delay:var(--stagger-1)}.list-3d.revealed>*:nth-child(2){transition-delay:var(--stagger-2)}.list-3d.revealed>*:nth-child(3){transition-delay:var(--stagger-3)}.list-3d.revealed>*:nth-child(4){transition-delay:var(--stagger-4)}.list-3d.revealed>*:nth-child(5){transition-delay:var(--stagger-5)}.list-3d.revealed>*:nth-child(6){transition-delay:var(--stagger-6)}.list-3d.revealed>*:nth-child(7){transition-delay:var(--stagger-7)}.list-3d.revealed>*:nth-child(8){transition-delay:var(--stagger-8)}.list-3d.revealed>*{opacity:1;transform:perspective(var(--perspective-subtle)) translateZ(0) translateY(0)}.student-portal .hover-lift:hover{transform:scale(1.06) translateY(-6px) rotate(1deg)}.staff-portal .hover-lift:hover{transform:scale(1.04) translateY(-4px)}.dept-admin-portal .hover-lift:hover{transform:scale(1.03) translateY(-3px)}@media (hover: none){.tilt-3d:hover,.tilt-3d-medium:hover,.tilt-3d-dramatic:hover,.equipment-card-3d:hover,.stat-card-3d:hover,.equipment-card-3d:hover .card-image{transform:none}}@media (prefers-reduced-motion: reduce){.card-3d-inner,.tilt-3d,.equipment-card-3d,.hover-lift,.nav-3d-dropdown,.stat-card-3d,.btn-3d,.image-3d,.float-3d,.list-3d>*{transition:none!important;animation:none!important;transform:none!important}.modal-3d-enter,.modal-3d-exit,.page-3d-enter{animation:none!important;opacity:1;transform:none}}.scroll-reveal{opacity:0;transform:translateY(var(--reveal-distance-md));transition:opacity var(--duration-reveal) var(--ease-smooth),transform var(--duration-reveal) var(--ease-smooth);will-change:opacity,transform}.scroll-reveal.revealed{opacity:1;transform:translateY(0)}.scroll-reveal-up{opacity:0;transform:translateY(var(--reveal-distance-md))}.scroll-reveal-up.revealed{opacity:1;transform:translateY(0)}.scroll-reveal-down{opacity:0;transform:translateY(calc(var(--reveal-distance-md) * -1))}.scroll-reveal-down.revealed{opacity:1;transform:translateY(0)}.scroll-reveal-left{opacity:0;transform:translate(var(--reveal-distance-md))}.scroll-reveal-left.revealed{opacity:1;transform:translate(0)}.scroll-reveal-right{opacity:0;transform:translate(calc(var(--reveal-distance-md) * -1))}.scroll-reveal-right.revealed{opacity:1;transform:translate(0)}.scroll-reveal-scale{opacity:0;transform:scale(.9)}.scroll-reveal-scale.revealed{opacity:1;transform:scale(1)}.scroll-reveal-scale-up{opacity:0;transform:scale(.8) translateY(var(--reveal-distance-sm))}.scroll-reveal-scale-up.revealed{opacity:1;transform:scale(1) translateY(0)}.scroll-reveal-rotate{opacity:0;transform:rotate(-5deg) translateY(var(--reveal-distance-sm))}.scroll-reveal-rotate.revealed{opacity:1;transform:rotate(0) translateY(0)}.scroll-reveal-blur{opacity:0;filter:blur(10px);transform:translateY(var(--reveal-distance-sm))}.scroll-reveal-blur.revealed{opacity:1;filter:blur(0);transform:translateY(0)}.stagger-reveal>*{opacity:0;transform:translateY(var(--reveal-distance-sm));transition:opacity var(--duration-reveal) var(--ease-smooth),transform var(--duration-reveal) var(--ease-smooth)}.stagger-reveal.revealed>*:nth-child(1){transition-delay:var(--stagger-1)}.stagger-reveal.revealed>*:nth-child(2){transition-delay:var(--stagger-2)}.stagger-reveal.revealed>*:nth-child(3){transition-delay:var(--stagger-3)}.stagger-reveal.revealed>*:nth-child(4){transition-delay:var(--stagger-4)}.stagger-reveal.revealed>*:nth-child(5){transition-delay:var(--stagger-5)}.stagger-reveal.revealed>*:nth-child(6){transition-delay:var(--stagger-6)}.stagger-reveal.revealed>*:nth-child(7){transition-delay:var(--stagger-7)}.stagger-reveal.revealed>*:nth-child(8){transition-delay:var(--stagger-8)}.stagger-reveal.revealed>*:nth-child(9){transition-delay:var(--stagger-9)}.stagger-reveal.revealed>*:nth-child(10){transition-delay:var(--stagger-10)}.stagger-reveal.revealed>*:nth-child(n+11){transition-delay:.5s}.stagger-reveal.revealed>*{opacity:1;transform:translateY(0)}.stagger-reveal-fast>*{transition-duration:var(--duration-medium)}.stagger-reveal-fast.revealed>*:nth-child(1){transition-delay:var(--stagger-fast-1)}.stagger-reveal-fast.revealed>*:nth-child(2){transition-delay:var(--stagger-fast-2)}.stagger-reveal-fast.revealed>*:nth-child(3){transition-delay:var(--stagger-fast-3)}.stagger-reveal-fast.revealed>*:nth-child(4){transition-delay:var(--stagger-fast-4)}.stagger-reveal-fast.revealed>*:nth-child(5){transition-delay:var(--stagger-fast-5)}.stagger-reveal-fast.revealed>*:nth-child(n+6){transition-delay:.15s}.parallax-container{overflow:hidden;position:relative}.parallax-layer{will-change:transform;transition:transform .1s linear}.parallax-slow{--parallax-speed: var(--scroll-parallax-slow)}.parallax-medium{--parallax-speed: var(--scroll-parallax-medium)}.parallax-fast{--parallax-speed: var(--scroll-parallax-fast)}.scroll-header{transition:all var(--duration-medium) var(--ease-smooth)}.scroll-header:not([data-scrolled=true]){background:transparent;color:#fff;border-color:transparent}.scroll-header[data-scrolled=true]{background:var(--theme-bg-primary);color:var(--theme-text-primary);border-color:var(--theme-border-light);box-shadow:var(--shadow-md)}.section-divider{width:0;height:2px;background:linear-gradient(90deg,transparent 0%,var(--role-accent) 50%,transparent 100%);transition:width var(--duration-slow) var(--ease-smooth);margin:var(--space-xl) auto}.section-divider.revealed{width:100%}.count-up{opacity:0;transform:translateY(10px);transition:all var(--duration-medium) var(--ease-smooth)}.count-up.revealed{opacity:1;transform:translateY(0)}.text-reveal{overflow:hidden}.text-reveal-line{display:block;transform:translateY(100%);transition:transform var(--duration-reveal) var(--ease-smooth)}.text-reveal.revealed .text-reveal-line{transform:translateY(0)}.text-reveal.revealed .text-reveal-line:nth-child(1){transition-delay:0ms}.text-reveal.revealed .text-reveal-line:nth-child(2){transition-delay:.1s}.text-reveal.revealed .text-reveal-line:nth-child(3){transition-delay:.2s}.image-reveal-container{overflow:hidden;position:relative}.image-reveal-curtain:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:var(--role-accent);transform-origin:left;transition:transform var(--duration-reveal) var(--ease-smooth)}.image-reveal-curtain.revealed:after{transform:scaleX(0);transform-origin:right}.image-reveal-zoom{transform:scale(1.2);transition:transform var(--duration-page) var(--ease-smooth)}.image-reveal-container.revealed .image-reveal-zoom{transform:scale(1)}.scroll-snap-container{scroll-snap-type:y mandatory;overflow-y:scroll;height:100vh}.scroll-snap-section{scroll-snap-align:start;min-height:100vh}.infinite-scroll-trigger{height:1px;width:100%;visibility:hidden}.infinite-scroll-loading{display:flex;justify-content:center;padding:var(--space-lg)}html{scroll-behavior:smooth}@media (prefers-reduced-motion: reduce){html{scroll-behavior:auto}}:target{scroll-margin-top:80px}.float-on-scroll{animation:floatOnScroll 3s ease-in-out infinite;animation-play-state:paused}.float-on-scroll.in-view{animation-play-state:running}@keyframes floatOnScroll{0%,to{transform:translateY(0)}50%{transform:translateY(-15px)}}@media (prefers-reduced-motion: reduce){.scroll-reveal,.scroll-reveal-up,.scroll-reveal-down,.scroll-reveal-left,.scroll-reveal-right,.scroll-reveal-scale,.scroll-reveal-scale-up,.scroll-reveal-rotate,.scroll-reveal-blur,.stagger-reveal>*,.parallax-layer,.scroll-progress,.scroll-header,.section-divider,.count-up,.text-reveal-line,.image-reveal-curtain:after,.image-reveal-zoom,.float-on-scroll{transition:none!important;animation:none!important;transform:none!important;opacity:1!important;filter:none!important}.image-reveal-curtain:after{display:none}}:root{--ai-glow-primary: rgba(123, 31, 162, .4);--ai-glow-secondary: rgba(156, 39, 176, .3);--ai-glow-accent: rgba(233, 30, 99, .3);--ai-gradient-primary: linear-gradient( 135deg, #7C3AED 0%, #9C27B0 50%, #E91E63 100% );--ai-gradient-thinking: linear-gradient( 90deg, var(--role-accent, #7C3AED) 0%, #9C27B0 25%, var(--role-accent, #7C3AED) 50%, #9C27B0 75%, var(--role-accent, #7C3AED) 100% );--ai-gradient-shimmer: linear-gradient( 90deg, transparent 0%, rgba(255, 255, 255, .4) 50%, transparent 100% );--ai-pulse-duration: 2s;--ai-shimmer-duration: 1.5s;--ai-typing-duration: 1s}.smart-search{position:relative;width:100%;max-width:600px}.smart-search-input-wrapper{position:relative;display:flex;align-items:center;background:var(--glass-bg);backdrop-filter:var(--glass-blur-medium);-webkit-backdrop-filter:var(--glass-blur-medium);border:2px solid var(--glass-border);border-radius:var(--radius-xl);padding:var(--space-sm) var(--space-lg);transition:all var(--duration-medium) var(--ease-smooth)}.smart-search-input-wrapper:focus-within{border-color:var(--role-accent);box-shadow:var(--glow-primary),0 0 30px var(--ai-glow-primary)}.smart-search-input-wrapper.ai-active{border-color:transparent;background:linear-gradient(var(--theme-bg-primary),var(--theme-bg-primary)) padding-box,var(--ai-gradient-primary) border-box}.smart-search-icon{flex-shrink:0;width:24px;height:24px;margin-right:var(--space-sm);color:var(--theme-text-tertiary);transition:color var(--duration-fast) var(--ease-smooth)}.smart-search-input-wrapper:focus-within .smart-search-icon{color:var(--role-accent)}.smart-search-input{flex:1;background:transparent;border:none;outline:none;font-size:var(--font-size-body);color:var(--theme-text-primary);padding:var(--space-sm) 0}.smart-search-input::placeholder{color:var(--theme-text-tertiary)}.smart-search-shortcut{display:flex;align-items:center;gap:var(--space-xs);padding:var(--space-xs) var(--space-sm);background:var(--theme-bg-tertiary);border-radius:var(--radius-sm);font-size:var(--font-size-caption);color:var(--theme-text-tertiary)}.smart-search-voice{width:36px;height:36px;border-radius:var(--radius-full);border:none;background:var(--role-accent-light);color:var(--role-accent);cursor:pointer;transition:all var(--duration-fast) var(--ease-smooth);display:flex;align-items:center;justify-content:center}.smart-search-voice:hover{background:var(--role-accent);color:#fff;transform:scale(1.1)}.smart-search-voice.listening{animation:voicePulse var(--ai-pulse-duration) infinite}@keyframes voicePulse{0%,to{box-shadow:0 0 0 0 var(--ai-glow-primary)}50%{box-shadow:0 0 0 15px transparent}}.smart-search-dropdown{position:absolute;top:calc(100% + var(--space-sm));left:0;right:0;background:var(--glass-bg-strong);backdrop-filter:var(--glass-blur-heavy);-webkit-backdrop-filter:var(--glass-blur-heavy);border:1px solid var(--glass-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-xl),var(--glass-shadow);overflow:hidden;z-index:var(--z-dropdown);opacity:0;transform:translateY(-10px);pointer-events:none;transition:all var(--duration-medium) var(--ease-smooth)}.smart-search-dropdown.visible{opacity:1;transform:translateY(0);pointer-events:auto}.smart-search-section{padding:var(--space-sm) 0;border-bottom:1px solid var(--glass-border)}.smart-search-section:last-child{border-bottom:none}.smart-search-section-title{padding:var(--space-xs) var(--space-md);font-size:var(--font-size-caption);font-weight:var(--font-weight-semibold);color:var(--theme-text-tertiary);text-transform:uppercase;letter-spacing:.05em}.smart-search-item{display:flex;align-items:center;gap:var(--space-md);padding:var(--space-sm) var(--space-md);cursor:pointer;transition:background var(--duration-fast) var(--ease-smooth)}.smart-search-item:hover,.smart-search-item.selected{background:var(--role-accent-light)}.smart-search-item-icon{width:40px;height:40px;border-radius:var(--radius-md);background:var(--theme-bg-tertiary);display:flex;align-items:center;justify-content:center;color:var(--theme-text-secondary)}.smart-search-item.selected .smart-search-item-icon{background:var(--role-accent);color:#fff}.smart-search-item-content{flex:1;min-width:0}.smart-search-item-title{font-weight:var(--font-weight-medium);color:var(--theme-text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.smart-search-item-meta{font-size:var(--font-size-caption);color:var(--theme-text-tertiary)}.smart-search-item-shortcut{font-size:var(--font-size-caption);color:var(--theme-text-tertiary);padding:var(--space-xs) var(--space-sm);background:var(--theme-bg-tertiary);border-radius:var(--radius-sm)}.smart-search-chips{display:flex;flex-wrap:wrap;gap:var(--space-sm);padding:var(--space-md)}.smart-search-chip{display:inline-flex;align-items:center;gap:var(--space-xs);padding:var(--space-xs) var(--space-md);background:var(--role-accent-light);border:1px solid var(--role-accent);border-radius:var(--radius-full);font-size:var(--font-size-caption);color:var(--role-accent);cursor:pointer;transition:all var(--duration-fast) var(--ease-smooth)}.smart-search-chip:hover{background:var(--role-accent);color:#fff;transform:scale(1.05)}.smart-search-chip-icon{width:14px;height:14px}.ai-thinking{display:flex;align-items:center;gap:var(--space-sm);padding:var(--space-md)}.ai-thinking-dots{display:flex;gap:4px}.ai-thinking-dot{width:8px;height:8px;border-radius:var(--radius-full);background:var(--role-accent);animation:thinkingBounce 1.4s infinite ease-in-out both}.ai-thinking-dot:nth-child(1){animation-delay:-.32s}.ai-thinking-dot:nth-child(2){animation-delay:-.16s}.ai-thinking-dot:nth-child(3){animation-delay:0}@keyframes thinkingBounce{0%,80%,to{transform:scale(.6);opacity:.5}40%{transform:scale(1);opacity:1}}.ai-thinking-gradient{height:3px;background:var(--ai-gradient-thinking);background-size:200% 100%;animation:gradientShift 2s linear infinite;border-radius:var(--radius-full)}@keyframes gradientShift{0%{background-position:100% 0}to{background-position:-100% 0}}.ai-thinking-text{font-size:var(--font-size-caption);color:var(--theme-text-tertiary);font-style:italic}.command-palette-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000080;backdrop-filter:var(--glass-blur-subtle);-webkit-backdrop-filter:var(--glass-blur-subtle);z-index:var(--z-modal-backdrop);opacity:0;pointer-events:none;transition:opacity var(--duration-medium) var(--ease-smooth)}.command-palette-backdrop.visible{opacity:1;pointer-events:auto}.command-palette{position:fixed;top:20%;left:50%;transform:translate(-50%) translateY(-20px) scale(.95);width:90%;max-width:640px;max-height:70vh;background:var(--glass-bg-strong);backdrop-filter:var(--glass-blur-heavy);-webkit-backdrop-filter:var(--glass-blur-heavy);border:1px solid var(--glass-border);border-radius:var(--radius-xl);box-shadow:var(--shadow-xl),0 0 60px var(--ai-glow-primary);overflow:hidden;z-index:var(--z-modal);opacity:0;pointer-events:none;transition:all var(--duration-medium) var(--ease-spring)}.command-palette.visible{opacity:1;pointer-events:auto;transform:translate(-50%) translateY(0) scale(1)}.command-palette-header{display:flex;align-items:center;gap:var(--space-md);padding:var(--space-md) var(--space-lg);border-bottom:1px solid var(--glass-border)}.command-palette-search-icon{width:20px;height:20px;color:var(--theme-text-tertiary)}.command-palette-input{flex:1;background:transparent;border:none;outline:none;font-size:var(--font-size-body-lg);color:var(--theme-text-primary)}.command-palette-input::placeholder{color:var(--theme-text-tertiary)}.command-palette-close{width:32px;height:32px;border-radius:var(--radius-md);border:1px solid var(--glass-border);background:transparent;color:var(--theme-text-tertiary);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all var(--duration-fast) var(--ease-smooth)}.command-palette-close:hover{background:var(--theme-bg-tertiary);color:var(--theme-text-primary)}.command-palette-body{max-height:calc(70vh - 80px);overflow-y:auto}.command-palette-section{padding:var(--space-sm) 0}.command-palette-section-title{padding:var(--space-xs) var(--space-lg);font-size:var(--font-size-caption);font-weight:var(--font-weight-semibold);color:var(--theme-text-tertiary);text-transform:uppercase;letter-spacing:.05em}.command-palette-item{display:flex;align-items:center;gap:var(--space-md);padding:var(--space-sm) var(--space-lg);cursor:pointer;transition:background var(--duration-fast) var(--ease-smooth)}.command-palette-item:hover,.command-palette-item.selected{background:var(--role-accent-light)}.command-palette-item-icon{width:32px;height:32px;border-radius:var(--radius-md);background:var(--theme-bg-tertiary);display:flex;align-items:center;justify-content:center;color:var(--theme-text-secondary);transition:all var(--duration-fast) var(--ease-smooth)}.command-palette-item.selected .command-palette-item-icon{background:var(--role-accent);color:#fff}.command-palette-item-content{flex:1}.command-palette-item-title{font-weight:var(--font-weight-medium);color:var(--theme-text-primary)}.command-palette-item-description{font-size:var(--font-size-caption);color:var(--theme-text-tertiary)}.command-palette-item-shortcut{display:flex;gap:var(--space-xs)}.command-palette-key{min-width:24px;height:24px;padding:0 var(--space-xs);background:var(--theme-bg-tertiary);border:1px solid var(--glass-border);border-radius:var(--radius-sm);font-size:var(--font-size-caption);font-weight:var(--font-weight-medium);color:var(--theme-text-secondary);display:flex;align-items:center;justify-content:center}.command-palette-footer{display:flex;align-items:center;justify-content:space-between;padding:var(--space-sm) var(--space-lg);border-top:1px solid var(--glass-border);background:var(--glass-bg-subtle)}.command-palette-hint{display:flex;align-items:center;gap:var(--space-md);font-size:var(--font-size-caption);color:var(--theme-text-tertiary)}.command-palette-hint-item{display:flex;align-items:center;gap:var(--space-xs)}.ai-assistant-fab{position:fixed;bottom:var(--space-xl);right:var(--space-xl);z-index:var(--z-fab)}.ai-assistant-trigger{width:60px;height:60px;border-radius:var(--radius-full);border:none;background:var(--ai-gradient-primary);color:#fff;cursor:pointer;display:flex;align-items:center;justify-content:center;box-shadow:var(--shadow-lg),0 0 30px var(--ai-glow-primary);transition:all var(--duration-medium) var(--ease-spring);position:relative;overflow:hidden}.ai-assistant-trigger:before{content:"";position:absolute;top:-2px;right:-2px;bottom:-2px;left:-2px;border-radius:var(--radius-full);background:var(--ai-gradient-primary);z-index:-1;animation:fabPulse 3s ease-in-out infinite}@keyframes fabPulse{0%,to{transform:scale(1);opacity:.6}50%{transform:scale(1.2);opacity:0}}.ai-assistant-trigger:hover{transform:scale(1.1);box-shadow:var(--shadow-xl),0 0 50px var(--ai-glow-primary)}.ai-assistant-trigger.active{transform:scale(.95)}.ai-assistant-trigger-icon{width:28px;height:28px;transition:transform var(--duration-medium) var(--ease-spring)}.ai-assistant-trigger.active .ai-assistant-trigger-icon{transform:rotate(45deg)}.ai-assistant-badge{position:absolute;top:-4px;right:-4px;min-width:20px;height:20px;padding:0 6px;background:var(--semantic-error);color:#fff;font-size:11px;font-weight:var(--font-weight-bold);border-radius:var(--radius-full);display:flex;align-items:center;justify-content:center;animation:badgeBounce .5s var(--ease-spring)}@keyframes badgeBounce{0%{transform:scale(0)}50%{transform:scale(1.2)}to{transform:scale(1)}}.ai-chat-panel{position:fixed;bottom:calc(var(--space-xl) + 70px);right:var(--space-xl);width:380px;max-height:500px;background:var(--glass-bg-strong);backdrop-filter:var(--glass-blur-heavy);-webkit-backdrop-filter:var(--glass-blur-heavy);border:1px solid var(--glass-border);border-radius:var(--radius-xl);box-shadow:var(--shadow-xl),0 0 40px var(--ai-glow-primary);overflow:hidden;z-index:var(--z-fab);transform-origin:bottom right;opacity:0;transform:scale(.9) translateY(20px);pointer-events:none;transition:all var(--duration-medium) var(--ease-spring)}.ai-chat-panel.visible{opacity:1;transform:scale(1) translateY(0);pointer-events:auto}.ai-chat-header{display:flex;align-items:center;justify-content:space-between;padding:var(--space-md) var(--space-lg);background:var(--ai-gradient-primary);color:#fff}.ai-chat-header-title{display:flex;align-items:center;gap:var(--space-sm);font-weight:var(--font-weight-semibold)}.ai-chat-header-icon{width:24px;height:24px}.ai-chat-header-status{font-size:var(--font-size-caption);opacity:.8}.ai-chat-close{width:28px;height:28px;border-radius:var(--radius-full);border:none;background:#fff3;color:#fff;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background var(--duration-fast) var(--ease-smooth)}.ai-chat-close:hover{background:#ffffff4d}.ai-chat-body{height:350px;overflow-y:auto;padding:var(--space-md);display:flex;flex-direction:column;gap:var(--space-md)}.ai-chat-message{max-width:85%;padding:var(--space-sm) var(--space-md);border-radius:var(--radius-lg);font-size:var(--font-size-body-sm);line-height:1.5;animation:messageSlide .3s var(--ease-smooth)}@keyframes messageSlide{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.ai-chat-message.user{align-self:flex-end;background:var(--role-accent);color:#fff;border-bottom-right-radius:var(--radius-sm)}.ai-chat-message.assistant{align-self:flex-start;background:var(--theme-bg-tertiary);color:var(--theme-text-primary);border-bottom-left-radius:var(--radius-sm)}.ai-chat-message.assistant.thinking{background:transparent;padding:var(--space-xs)}.ai-chat-footer{padding:var(--space-md);border-top:1px solid var(--glass-border)}.ai-chat-input-wrapper{display:flex;align-items:center;gap:var(--space-sm);background:var(--theme-bg-tertiary);border-radius:var(--radius-lg);padding:var(--space-sm) var(--space-md)}.ai-chat-input{flex:1;background:transparent;border:none;outline:none;font-size:var(--font-size-body-sm);color:var(--theme-text-primary)}.ai-chat-input::placeholder{color:var(--theme-text-tertiary)}.ai-chat-send{width:32px;height:32px;border-radius:var(--radius-full);border:none;background:var(--role-accent);color:#fff;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all var(--duration-fast) var(--ease-smooth)}.ai-chat-send:hover{transform:scale(1.1)}.ai-chat-send:disabled{opacity:.5;cursor:not-allowed;transform:none}.ai-chat-quick-actions{display:flex;flex-wrap:wrap;gap:var(--space-xs);margin-top:var(--space-sm)}.ai-chat-quick-action{padding:var(--space-xs) var(--space-sm);background:var(--glass-bg-subtle);border:1px solid var(--glass-border);border-radius:var(--radius-full);font-size:var(--font-size-caption);color:var(--theme-text-secondary);cursor:pointer;transition:all var(--duration-fast) var(--ease-smooth)}.ai-chat-quick-action:hover{background:var(--role-accent-light);border-color:var(--role-accent);color:var(--role-accent)}.ai-shimmer{position:relative;overflow:hidden}.ai-shimmer:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:var(--ai-gradient-shimmer);transform:translate(-100%);animation:shimmer var(--ai-shimmer-duration) infinite}@keyframes shimmer{to{transform:translate(100%)}}.ai-typing{display:flex;align-items:center;gap:4px;padding:var(--space-sm)}.ai-typing-dot{width:6px;height:6px;border-radius:var(--radius-full);background:var(--theme-text-tertiary);animation:typingPulse var(--ai-typing-duration) infinite}.ai-typing-dot:nth-child(2){animation-delay:.2s}.ai-typing-dot:nth-child(3){animation-delay:.4s}@keyframes typingPulse{0%,to{opacity:.3;transform:scale(.8)}50%{opacity:1;transform:scale(1)}}.student-portal .ai-assistant-trigger,.student-portal .ai-chat-header{background:linear-gradient(135deg,#ff6b6b,#ff8e53)}.student-portal .ai-assistant-trigger:before{background:linear-gradient(135deg,#ff6b6b,#ff8e53)}.staff-portal .ai-assistant-trigger,.staff-portal .ai-chat-header{background:linear-gradient(135deg,#00bcd4,#00e5ff)}.staff-portal .ai-assistant-trigger:before{background:linear-gradient(135deg,#00bcd4,#00e5ff)}.dept-admin-portal .ai-assistant-trigger,.dept-admin-portal .ai-chat-header{background:linear-gradient(135deg,#ffb300,#ffc107)}.dept-admin-portal .ai-assistant-trigger:before{background:linear-gradient(135deg,#ffb300,#ffc107)}.master-admin-portal .ai-assistant-trigger,.master-admin-portal .ai-chat-header{background:var(--ai-gradient-primary)}@media (max-width: 767px){.command-palette{top:0;left:0;right:0;width:100%;max-width:100%;max-height:100vh;border-radius:0;transform:translateY(-100%)}.command-palette.visible{transform:translateY(0)}.ai-chat-panel{bottom:0;right:0;left:0;width:100%;max-height:80vh;border-radius:var(--radius-xl) var(--radius-xl) 0 0;transform-origin:bottom center}.ai-assistant-fab{bottom:calc(var(--space-lg) + var(--safe-area-bottom, 0px));right:var(--space-lg)}.smart-search-shortcut{display:none}}@media (prefers-reduced-motion: reduce){.ai-assistant-trigger:before,.ai-thinking-dot,.ai-thinking-gradient,.ai-shimmer:after,.ai-typing-dot,.smart-search-voice.listening{animation:none!important}.command-palette,.ai-chat-panel,.smart-search-dropdown,.ai-chat-message{transition:opacity var(--duration-fast)!important;transform:none!important}}.search-modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:var(--z-modal-backdrop, 1000);display:flex;align-items:flex-start;justify-content:center;padding-top:15vh}.search-modal{width:90%;max-width:640px;padding:var(--space-lg);animation:modalSlideIn .2s var(--ease-smooth)}@keyframes modalSlideIn{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}.bulk-action-bar{position:sticky;top:0;z-index:100;background:var(--bg-tertiary);border:1px solid var(--border-color);border-radius:var(--radius-lg);padding:var(--spacing-lg);margin-bottom:var(--spacing-xl);display:flex;justify-content:space-between;align-items:center;box-shadow:var(--shadow-sm);animation:slideDown .3s ease-out}.bulk-action-info{display:flex;align-items:center;gap:var(--spacing-lg)}.selected-count{font-weight:var(--font-weight-semibold);color:var(--text-primary);font-size:var(--font-size-md)}.bulk-action-buttons{display:flex;gap:var(--spacing-md);flex-wrap:wrap}.btn-text{background:none;border:none;color:var(--color-primary);cursor:pointer;padding:var(--spacing-xs) var(--spacing-sm);font-size:var(--font-size-sm);text-decoration:underline;transition:var(--transition-color)}.btn-text:disabled{opacity:.5;cursor:not-allowed}.btn-success{background:var(--color-success);color:var(--text-inverse, white);border:none}.btn-success:hover:not(:disabled){background:var(--color-success-hover)}.btn-error{background:var(--color-error);color:var(--text-inverse, white);border:none}.btn-error:hover:not(:disabled){background:var(--color-error-hover)}.select-all-container{background:var(--bg-secondary);padding:var(--spacing-md);border-radius:var(--radius-md);border:1px solid var(--border-color)}.select-all-container label{display:flex;align-items:center;cursor:pointer;-webkit-user-select:none;user-select:none}.select-all-container input[type=checkbox]{width:18px;height:18px;cursor:pointer;accent-color:var(--color-primary)}.availability-filter{background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--radius-lg);padding:var(--spacing-lg);margin-bottom:var(--spacing-xl)}.filter-label{margin-bottom:var(--spacing-md);color:var(--text-primary)}.filter-options{display:flex;gap:var(--spacing-md);flex-wrap:wrap;margin-bottom:var(--spacing-md)}.custom-date-picker{margin-top:var(--spacing-md);padding-top:var(--spacing-md);border-top:1px solid var(--border-color)}.date-input{padding:var(--spacing-sm) var(--spacing-md);border:1px solid var(--border-color);border-radius:var(--radius-md);font-size:var(--font-size-base);width:100%;max-width:300px;transition:var(--transition-all)}.date-input:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 3px var(--color-primary-light)}.advanced-filter{background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--radius-lg);padding:var(--spacing-lg);margin-bottom:var(--spacing-xl)}.filter-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--spacing-md)}.filter-badge{display:inline-flex;align-items:center;justify-content:center;background:var(--color-primary);color:var(--text-inverse, white);border-radius:50%;width:20px;height:20px;font-size:var(--font-size-xs);margin-left:var(--spacing-xs);font-weight:var(--font-weight-bold)}.filter-panel{padding-top:var(--spacing-lg);border-top:1px solid var(--border-color);animation:slideDown .3s ease-out}.filter-group{margin-bottom:var(--spacing-lg)}.filter-group label{display:block;margin-bottom:var(--spacing-sm);font-weight:var(--font-weight-semibold);color:var(--text-primary)}.filter-select{width:100%;padding:var(--spacing-sm) var(--spacing-md);border:1px solid var(--border-color);border-radius:var(--radius-md);font-size:var(--font-size-base);background:var(--bg-primary);transition:var(--transition-all)}.filter-select:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 3px var(--color-primary-light)}.filter-multiselect{display:flex;flex-direction:column;gap:var(--spacing-sm);max-height:200px;overflow-y:auto;padding:var(--spacing-sm);background:var(--bg-primary);border:1px solid var(--border-color);border-radius:var(--radius-md)}.checkbox-label{display:flex;align-items:center;gap:var(--spacing-sm);cursor:pointer;padding:var(--spacing-xs);border-radius:var(--radius-sm);transition:var(--transition-all)}.checkbox-label:hover{background:var(--bg-hover)}.checkbox-label input[type=checkbox]{width:16px;height:16px;cursor:pointer;accent-color:var(--color-primary)}.filter-date{width:100%;padding:var(--spacing-sm) var(--spacing-md);border:1px solid var(--border-color);border-radius:var(--radius-md);font-size:var(--font-size-base);transition:var(--transition-all)}.filter-date:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 3px var(--color-primary-light)}.filter-daterange{display:flex;align-items:center;gap:var(--spacing-md);flex-wrap:wrap}.filter-daterange span{color:var(--text-muted)}.breadcrumb{margin-bottom:var(--spacing-xl);padding:var(--spacing-md) 0}.breadcrumb-list{list-style:none;display:flex;flex-wrap:wrap;align-items:center;gap:var(--spacing-xs)}.breadcrumb-item{display:flex;align-items:center;font-size:var(--font-size-sm);color:var(--text-secondary)}.breadcrumb-item a{color:var(--color-primary);text-decoration:none;transition:var(--transition-color)}.breadcrumb-item a:hover{color:var(--color-primary-hover);text-decoration:underline}.breadcrumb-item.active span{color:var(--text-primary);font-weight:var(--font-weight-semibold)}.breadcrumb-separator{margin:0 var(--spacing-xs);color:var(--text-muted)}.back-to-top{position:fixed;bottom:var(--spacing-2xl);right:var(--spacing-2xl);background:var(--color-primary);color:var(--text-inverse, white);border:none;border-radius:var(--radius-full);padding:var(--spacing-md) var(--spacing-lg);display:flex;align-items:center;gap:var(--spacing-sm);cursor:pointer;box-shadow:var(--shadow-lg);transition:var(--transition-all);z-index:1000;animation:fadeInUp .3s ease-out}.back-to-top:hover{background:var(--color-primary-hover);transform:translateY(-2px);box-shadow:var(--shadow-xl)}.back-to-top-text{font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold)}.favorites-btn{display:inline-flex;align-items:center;gap:var(--spacing-sm);padding:var(--spacing-sm) var(--spacing-md);background:transparent;border:2px solid var(--border-color);border-radius:var(--radius-md);cursor:pointer;transition:var(--transition-all);color:var(--text-secondary);font-size:var(--font-size-base)}.favorites-btn:hover,.favorites-btn.is-favorite{border-color:var(--color-error);color:var(--color-error);background:var(--color-error-light)}.favorites-btn.is-favorite .heart-icon{color:var(--color-error);animation:heartBeat .3s ease-out}.heart-icon{font-size:1.2em;transition:var(--transition-all)}.favorites-btn-sm{padding:var(--spacing-xs) var(--spacing-sm);font-size:var(--font-size-sm)}.favorites-btn-lg{padding:var(--spacing-md) var(--spacing-lg);font-size:var(--font-size-lg)}.sub-area-dashboard{padding:var(--spacing-xl)}.dashboard-header{margin-bottom:var(--spacing-2xl)}.dashboard-header .subtitle{color:var(--text-muted);font-size:var(--font-size-lg)}.dashboard-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:var(--spacing-xl);margin-bottom:var(--spacing-3xl)}.stat-card{background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--radius-lg);padding:var(--spacing-xl);text-align:center;transition:var(--transition-all);box-shadow:var(--shadow-sm)}.stat-value{font-size:var(--font-size-4xl);font-weight:var(--font-weight-bold);color:var(--color-primary);margin-bottom:var(--spacing-sm)}.stat-label{color:var(--text-secondary);font-size:var(--font-size-md);margin-bottom:var(--spacing-md)}.stat-link{display:inline-block;color:var(--color-primary);font-size:var(--font-size-sm);text-decoration:underline;margin-top:var(--spacing-sm)}.dashboard-recent-activity{background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--radius-lg);padding:var(--spacing-xl)}.dashboard-recent-activity h3{margin-bottom:var(--spacing-lg)}.activity-list{display:flex;flex-direction:column;gap:var(--spacing-md)}.activity-item{padding:var(--spacing-md);background:var(--bg-primary);border:1px solid var(--border-color);border-radius:var(--radius-md);transition:var(--transition-all)}.activity-item:hover{background:var(--bg-hover)}.activity-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--spacing-sm)}.activity-equipment{font-weight:var(--font-weight-semibold);color:var(--text-primary)}.activity-details{display:flex;justify-content:space-between;align-items:center;color:var(--text-secondary);font-size:var(--font-size-sm)}.view-all-link{display:block;text-align:center;margin-top:var(--spacing-lg);color:var(--color-primary);font-weight:var(--font-weight-semibold)}.no-activity{text-align:center;color:var(--text-muted);padding:var(--spacing-xl)}.unified-calendar{padding:var(--spacing-xl)}.calendar-header{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:var(--spacing-lg);margin-bottom:var(--spacing-xl)}.view-type-selector{display:flex;gap:var(--spacing-sm);flex-wrap:wrap}.calendar-navigation{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--spacing-xl);padding:var(--spacing-lg);background:var(--bg-secondary);border-radius:var(--radius-lg)}.calendar-grid{background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--radius-lg);padding:var(--spacing-lg);margin-bottom:var(--spacing-xl)}.calendar-header-row{display:grid;grid-template-columns:repeat(7,1fr);gap:var(--spacing-xs);margin-bottom:var(--spacing-md)}.calendar-header-cell{text-align:center;font-weight:var(--font-weight-semibold);color:var(--text-primary);padding:var(--spacing-sm)}.calendar-body{display:grid;grid-template-columns:repeat(7,1fr);gap:var(--spacing-xs)}.calendar-cell{min-height:100px;padding:var(--spacing-sm);background:var(--bg-primary);border:1px solid var(--border-color);border-radius:var(--radius-md);transition:var(--transition-all)}.calendar-cell:hover:not(.empty){background:var(--bg-hover);box-shadow:var(--shadow-sm)}.calendar-cell.empty{background:var(--bg-secondary);border-color:transparent}.calendar-cell.today{border:2px solid var(--color-primary);background:var(--color-primary-light)}.calendar-day-number{font-weight:var(--font-weight-semibold);color:var(--text-primary);margin-bottom:var(--spacing-xs)}.calendar-bookings{margin-top:var(--spacing-xs)}.booking-count{font-size:var(--font-size-xs);color:var(--text-muted);display:block;margin-bottom:var(--spacing-xs)}.booking-indicators{display:flex;gap:var(--spacing-xs);flex-wrap:wrap}.booking-indicator{width:24px;height:24px;border-radius:var(--radius-sm);display:flex;align-items:center;justify-content:center;font-size:var(--font-size-xs);font-weight:var(--font-weight-bold);color:var(--text-inverse, white)}.booking-indicator.equipment{background:var(--color-primary)}.booking-indicator.room{background:var(--color-secondary)}.booking-indicator-more{width:24px;height:24px;border-radius:var(--radius-sm);display:flex;align-items:center;justify-content:center;font-size:var(--font-size-xs);background:var(--text-muted);color:var(--text-inverse, white)}.calendar-legend{display:flex;gap:var(--spacing-lg);justify-content:center;flex-wrap:wrap}.legend-item{display:flex;align-items:center;gap:var(--spacing-sm)}.legend-indicator{width:24px;height:24px;border-radius:var(--radius-sm);display:flex;align-items:center;justify-content:center;font-size:var(--font-size-xs);font-weight:var(--font-weight-bold);color:var(--text-inverse, white)}.comparison-modal{max-width:1200px;width:95%}.comparison-empty{text-align:center;padding:var(--spacing-3xl)}.equipment-selector{margin-top:var(--spacing-xl);max-width:400px;margin-left:auto;margin-right:auto}.equipment-selector label{display:block;margin-bottom:var(--spacing-sm);font-weight:var(--font-weight-semibold)}.equipment-selector select{width:100%;padding:var(--spacing-sm) var(--spacing-md);border:1px solid var(--border-color);border-radius:var(--radius-md);font-size:var(--font-size-base)}.comparison-add-more{margin-bottom:var(--spacing-xl);padding:var(--spacing-md);background:var(--bg-tertiary);border-radius:var(--radius-md)}.comparison-add-more label{display:block;margin-bottom:var(--spacing-sm);font-weight:var(--font-weight-semibold)}.comparison-add-more select{width:100%;padding:var(--spacing-sm) var(--spacing-md);border:1px solid var(--border-color);border-radius:var(--radius-md);font-size:var(--font-size-base)}.comparison-table-container{overflow-x:auto;-webkit-overflow-scrolling:touch}.comparison-table{width:100%;border-collapse:collapse;background:var(--bg-primary)}.comparison-table th,.comparison-table td{padding:var(--spacing-md);border:1px solid var(--border-color);text-align:left}.comparison-table th{background:var(--bg-tertiary);font-weight:var(--font-weight-semibold);color:var(--text-primary)}.comparison-header{display:flex;justify-content:space-between;align-items:center;gap:var(--spacing-sm)}.comparison-label{font-weight:var(--font-weight-semibold);color:var(--text-primary);background:var(--bg-secondary)}.btn-icon{background:transparent;border:none;color:var(--text-muted);cursor:pointer;font-size:var(--font-size-xl);padding:0;width:24px;height:24px;display:flex;align-items:center;justify-content:center;border-radius:var(--radius-sm);transition:var(--transition-all)}.btn-icon:hover{background:var(--color-error-light);color:var(--color-error)}.templates-list{display:flex;flex-direction:column;gap:var(--spacing-lg)}.template-item{padding:var(--spacing-lg);background:var(--bg-tertiary);border:1px solid var(--border-color);border-radius:var(--radius-md);transition:var(--transition-all)}.template-item:hover{box-shadow:var(--shadow-sm)}.template-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--spacing-md)}.template-header h3{margin:0;color:var(--text-primary)}.template-actions{display:flex;gap:var(--spacing-sm)}.template-details{color:var(--text-secondary);font-size:var(--font-size-sm)}.template-details p{margin-bottom:var(--spacing-xs)}.template-meta{color:var(--text-muted);font-size:var(--font-size-xs);margin-top:var(--spacing-sm)}.export-actions{display:flex;gap:var(--spacing-sm);flex-wrap:wrap}.bookings-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:2rem;flex-wrap:wrap;gap:1rem}@keyframes heartBeat{0%,to{transform:scale(1)}25%{transform:scale(1.2)}50%{transform:scale(1)}}.modal-content{display:flex;flex-direction:column;max-height:90vh;background:var(--bg-card, var(--bg-primary, #ffffff));border-radius:var(--radius-xl);box-shadow:var(--shadow-2xl)}.modal-header{flex-shrink:0;padding:var(--spacing-xl);border-bottom:1px solid var(--border-color)}.modal-body{flex:1 1 auto;overflow-y:auto;padding:var(--spacing-xl)}.modal-footer{flex-shrink:0;padding:var(--spacing-xl);border-top:1px solid var(--border-color);display:flex;justify-content:flex-end;gap:var(--spacing-md)}.modal-actions{display:flex;justify-content:flex-end;gap:var(--spacing-md);margin-top:var(--spacing-xl)}img[loading=lazy]{opacity:0;transition:opacity .3s ease-in}img[loading=lazy].loaded{opacity:1}@media (max-width: 768px){.bulk-action-bar{flex-direction:column;align-items:stretch}.bulk-action-buttons{width:100%;justify-content:space-between}.filter-options{flex-direction:column}.back-to-top{bottom:var(--spacing-lg);right:var(--spacing-lg)}.dashboard-stats{grid-template-columns:1fr}.calendar-cell{min-height:80px;font-size:var(--font-size-sm)}.comparison-table th,.comparison-table td{padding:var(--spacing-sm);font-size:var(--font-size-sm)}.export-actions{flex-direction:column;width:100%}.export-actions button{width:100%}.bookings-header{flex-direction:column;align-items:flex-start}}*:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}@media (prefers-contrast: high){.btn,.calendar-cell{border-width:2px}}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background-color:#000000bf;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:9999;padding:var(--space-4, 16px);overflow-y:auto}.modal-content{position:relative;background:var(--color-white)!important;background-color:var(--color-white)!important;border-radius:var(--radius-lg, 12px);max-width:600px;width:100%;max-height:90vh;display:flex;flex-direction:column;box-shadow:0 20px 60px #0000004d,0 0 0 1px #ffffff1a;animation:modalSlideIn .3s ease-out}@keyframes modalSlideIn{0%{opacity:0;transform:translateY(-20px) scale(.95)}to{opacity:1;transform:translateY(0) scale(1)}}.modal-header{position:sticky;top:0;background:var(--color-white)!important;background-color:var(--color-white)!important;padding:var(--space-5, 24px) var(--space-5, 24px) var(--space-4, 16px);border-bottom:1px solid var(--theme-border-light, var(--color-border));display:flex;justify-content:space-between;align-items:center;gap:var(--space-4, 16px);z-index:10;border-radius:var(--radius-lg, 12px) var(--radius-lg, 12px) 0 0}.modal-header h2,.modal-header h3{margin:0;font-size:var(--text-xl, 20px);font-weight:var(--font-bold, 600);color:var(--theme-text-primary, #111827);flex:1}.modal-close{background:transparent;border:none;font-size:28px;line-height:1;color:var(--theme-text-secondary, #6b7280);cursor:pointer;padding:var(--space-2, 8px);margin:calc(var(--space-2, 8px) * -1);border-radius:var(--radius-md, 8px);transition:all .2s ease;flex-shrink:0;width:32px;height:32px;display:flex;align-items:center;justify-content:center}.modal-close:hover{background:var(--role-bg-tertiary, #f3f4f6);color:var(--theme-text-primary, #111827)}.modal-body{padding:var(--space-5, 24px);overflow-y:auto;flex:1;background:var(--color-white)!important;background-color:var(--color-white)!important}.modal-actions{position:sticky;bottom:0;background:var(--role-bg-secondary, #f9fafb);padding:var(--space-4, 16px) var(--space-5, 24px);border-top:1px solid var(--theme-border-light, #e5e7eb);display:flex;justify-content:flex-end;gap:var(--space-3, 12px);border-radius:0 0 var(--radius-lg, 12px) var(--radius-lg, 12px)}.modal-content .form-group{display:flex;flex-direction:column;gap:var(--space-2, 8px);margin-bottom:var(--space-4, 16px)}.modal-content .form-group label{font-weight:var(--font-medium, 500);font-size:var(--text-sm, 14px);color:var(--theme-text-primary, #111827);margin-bottom:var(--space-1, 4px);display:block;line-height:1.5;min-height:24px;padding-bottom:var(--space-1, 4px)}.modal-content .form-group input,.modal-content .form-group select,.modal-content .form-group textarea{width:100%;padding:var(--space-3, 12px);border:1px solid var(--theme-border, #d1d5db);border-radius:var(--radius-md, 8px);font-size:var(--text-base, 16px);font-family:inherit;background:var(--role-bg-primary, #ffffff);color:var(--theme-text-primary, #111827);transition:all .2s ease;line-height:1.5;min-height:44px}.modal-content .form-group select{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:url("data:image/svg+xml;charset=UTF-8,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%236b7280' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3e%3cpolyline points='6 9 12 15 18 9'%3e%3c/polyline%3e%3c/svg%3e");background-repeat:no-repeat;background-position:right 12px center;background-size:16px;padding-right:40px;cursor:pointer}.modal-overlay select,.modal-content select,.modal-body select,div[class*=modal] select,.equipment-form-modal select,.form-group select,.form-select,.modal-overlay .form-group select,.modal-overlay .form-select,.modal-content .form-group select,.modal-content .form-select,div.modal-overlay select,div.modal-overlay .form-select,div.modal-content select,div.modal-content .form-select,div.modal-body select,div.modal-body .form-select,select.form-select{appearance:none!important;-webkit-appearance:none!important;-moz-appearance:none!important;background-color:var(--color-white)!important;background:var(--color-white)!important;background-image:url("data:image/svg+xml;charset=UTF-8,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%236b7280' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3e%3cpolyline points='6 9 12 15 18 9'%3e%3c/polyline%3e%3c/svg%3e")!important;background-repeat:no-repeat!important;background-position:right 12px center!important;background-size:16px!important;padding-right:40px!important;opacity:1!important;color:var(--text-primary)!important;border:1px solid var(--color-border-medium, #d1d5db)!important}.modal-overlay input,.modal-overlay select,.modal-overlay textarea,.modal-content input,.modal-content select,.modal-content textarea,.modal-body input,.modal-body select,.modal-body textarea,div.modal-overlay input,div.modal-overlay select,div.modal-overlay textarea{background-color:var(--color-white)!important;background:var(--color-white)!important;opacity:1!important}select#category,select#department,select#status,select#qr_code{background-color:var(--color-white)!important;background-image:url("data:image/svg+xml;charset=UTF-8,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%236b7280' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3e%3cpolyline points='6 9 12 15 18 9'%3e%3c/polyline%3e%3c/svg%3e")!important;background-repeat:no-repeat!important;background-position:right 12px center!important;background-size:16px!important;padding-right:40px!important;opacity:1!important;color:var(--text-primary)!important;border:1px solid var(--color-border-medium, #d1d5db)!important}.modal-content .form-group input:focus,.modal-content .form-group select:focus,.modal-content .form-group textarea:focus{outline:none;border-color:var(--role-accent, #3b82f6);box-shadow:0 0 0 3px var(--role-accent-light, rgba(59, 130, 246, .1))}.modal-content .form-group input.error,.modal-content .form-group select.error,.modal-content .form-group textarea.error{border-color:var(--color-danger, #ef4444)}.modal-content .form-group .error-text{color:var(--color-danger, #ef4444);font-size:var(--text-xs, 12px);margin-top:var(--space-1, 4px)}.equipment-form-modal{max-width:800px}.equipment-form-modal .form-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--space-4, 16px)}.equipment-form-modal .form-group.full-width{grid-column:1 / -1}.equipment-detail-modal{max-width:700px}.equipment-detail-info{display:flex;flex-direction:column;gap:var(--space-3, 12px);margin-bottom:var(--space-5, 24px)}.detail-row{display:grid;grid-template-columns:140px 1fr;gap:var(--space-3, 12px);align-items:start;padding:var(--space-3, 12px);border-radius:var(--radius-md, 8px);background:var(--role-bg-secondary, #f9fafb)}.detail-label{font-weight:var(--font-medium, 500);color:var(--theme-text-secondary, #6b7280);font-size:var(--text-sm, 14px)}.detail-value{color:var(--theme-text-primary, #111827);font-size:var(--text-base, 16px);word-break:break-word}.modal-content .btn{padding:var(--space-3, 12px) var(--space-5, 24px);border-radius:var(--radius-md, 8px);font-weight:var(--font-medium, 500);font-size:var(--text-base, 16px);border:none;cursor:pointer;transition:all .2s ease;display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2, 8px);min-height:44px;background:var(--role-accent, var(--color-info));color:var(--text-inverse)}.modal-content .btn:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 4px 12px #00000026}.modal-content .btn:active:not(:disabled){transform:translateY(0)}.modal-content .btn:disabled{opacity:.5;cursor:not-allowed}.modal-content .btn-primary{background:var(--role-accent, var(--color-info));color:var(--text-inverse)}.modal-content .btn-primary:hover:not(:disabled){background:var(--role-accent-hover, #2563eb)}.modal-content .btn-secondary{background:var(--role-bg-tertiary, #f3f4f6);color:var(--theme-text-primary, #111827);border:1px solid var(--theme-border, #d1d5db)}.modal-content .btn-secondary:hover:not(:disabled){background:var(--role-bg-quaternary, #e5e7eb)}.modal-content .btn-danger{background:var(--color-danger, var(--color-error));color:var(--text-inverse)}.modal-content .btn-danger:hover:not(:disabled){background:var(--color-danger-hover, var(--color-error-dark, #dc2626))}.equipment-card .btn-view,.equipment-card .btn-edit,.equipment-table .btn-view,.equipment-table .btn-edit{background:var(--role-accent, var(--color-info))!important;color:var(--text-inverse)!important;border:none!important;padding:var(--space-2, 8px) var(--space-4, 16px);border-radius:var(--radius-md, 8px);font-size:var(--text-sm, 14px);font-weight:var(--font-medium, 500);cursor:pointer;transition:all .2s ease;min-width:80px;text-align:center;display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2, 8px)}.equipment-card .btn-view:hover,.equipment-card .btn-edit:hover,.equipment-table .btn-view:hover,.equipment-table .btn-edit:hover{background:var(--role-accent-hover, var(--color-primary))!important;transform:translateY(-1px);box-shadow:0 4px 8px #00000026}.status{display:inline-flex;align-items:center;padding:var(--space-1, 4px) var(--space-3, 12px);border-radius:var(--radius-full, 9999px);font-size:var(--text-xs, 12px);font-weight:var(--font-medium, 500);text-transform:capitalize}.status-available{background:var(--color-success-bg);color:var(--color-success-dark, #166534)}.status-booked{background:var(--color-info-bg);color:var(--color-primary)}.status-maintenance{background:var(--color-warning-bg);color:var(--color-warning-darker, #92400e)}.status-out_of_service{background:var(--color-error-bg);color:var(--color-error-darker, #991b1b)}@media (max-width: 768px){.modal-overlay{padding:var(--space-2, 8px);align-items:flex-end}.modal-content{max-height:95vh;border-radius:var(--radius-lg, 12px) var(--radius-lg, 12px) 0 0;animation:modalSlideUp .3s ease-out}@keyframes modalSlideUp{0%{opacity:0;transform:translateY(100%)}to{opacity:1;transform:translateY(0)}}.modal-header,.modal-body,.modal-actions{padding:var(--space-4, 16px)}.equipment-form-modal .form-grid{grid-template-columns:1fr}.detail-row{grid-template-columns:1fr;gap:var(--space-2, 8px)}.detail-label{font-size:var(--text-xs, 12px)}}@media (min-width: 769px) and (max-width: 1024px){.modal-content{max-width:90%}.equipment-form-modal{max-width:700px}}.restriction-message{text-align:center;padding:var(--space-2xl);background:var(--color-warning-bg);border:2px solid var(--color-warning);border-radius:var(--radius-md)}.restriction-message h3{color:var(--color-warning-dark);margin-bottom:var(--space-md)}.restriction-message p{color:var(--color-warning-dark);margin-bottom:var(--space-sm)}.restriction-message p:last-of-type{margin-bottom:0}.restriction-message+.modal-actions{margin-top:var(--space-lg);display:flex;justify-content:center}.cross-department-notice{margin-top:var(--space-md);margin-bottom:var(--space-lg);padding:var(--space-md);background-color:var(--color-info-bg);border:2px solid var(--color-info);border-radius:var(--radius-md)}.cross-department-notice-header{display:flex;align-items:center;margin-bottom:var(--space-sm-md)}.cross-department-notice-header .icon{font-size:var(--font-size-xl);margin-right:var(--space-sm)}.cross-department-notice-header h4{margin:0;color:var(--color-info-dark);font-size:var(--font-size-lg)}.cross-department-notice p{margin:var(--space-sm) 0;color:var(--theme-text-primary);font-size:var(--font-size-sm)}.cross-department-notice p strong{font-weight:var(--font-weight-semibold)}.collection-instructions{margin-top:var(--space-md);padding:var(--space-sm-md);background-color:var(--color-white);border-radius:var(--radius-sm);border:1px solid var(--color-info-light)}.collection-instructions h5{margin:0 0 var(--space-sm) 0;color:var(--color-info-dark);font-size:var(--font-size-sm)}.collection-instructions p{margin:0;font-size:var(--font-size-sm);line-height:var(--leading-relaxed);color:var(--theme-text-primary);white-space:pre-wrap}.terms-conditions{margin-top:var(--space-sm-md);padding:var(--space-sm-md);background-color:var(--color-warning-bg);border-radius:var(--radius-sm);border:1px solid var(--color-warning-light)}.terms-conditions h5{margin:0 0 var(--space-sm) 0;color:var(--color-warning-dark);font-size:var(--font-size-sm)}.terms-conditions p{margin:0;font-size:var(--font-size-sm);line-height:var(--leading-relaxed);color:var(--theme-text-primary);white-space:pre-wrap}.equipment-summary h3{margin:0 0 var(--space-xs) 0;font-size:var(--font-size-lg);color:var(--theme-text-primary)}.equipment-summary p{margin:0;font-size:var(--font-size-sm);color:var(--theme-text-secondary)}.btn{position:relative;overflow:hidden;transition:transform var(--duration-fast) var(--ease-spring),box-shadow var(--duration-fast) var(--ease-out),background-color var(--duration-fast) var(--ease-in-out),border-color var(--duration-fast) var(--ease-in-out);will-change:transform,box-shadow}.btn:not(:disabled):hover{transform:translateY(-2px);box-shadow:var(--shadow-lg)}.btn:not(:disabled):active{transform:translateY(0) scale(.97);box-shadow:var(--shadow-sm);transition:transform var(--duration-instant) var(--ease-out),box-shadow var(--duration-instant) var(--ease-out)}.btn-primary:not(:disabled):hover{filter:brightness(1.08)}.btn-secondary:not(:disabled):hover{background-color:var(--role-bg-quaternary)}.btn:before{content:"";position:absolute;top:50%;left:50%;width:0;height:0;border-radius:var(--radius-full);background:#fff6;transform:translate(-50%,-50%);opacity:0;transition:width var(--duration-slow) var(--ease-out-quad),height var(--duration-slow) var(--ease-out-quad),opacity var(--duration-slow) var(--ease-out-quad);pointer-events:none}.btn:active:before{width:300px;height:300px;opacity:1;transition:width 0s,height 0s,opacity 0s}.btn-secondary:before,.btn-text:before,.btn-outline:before{background:#0000001a}.btn.loading,.btn-loading{position:relative;color:transparent!important;pointer-events:none}.btn.loading:after,.btn-loading:after{content:"";position:absolute;width:18px;height:18px;top:50%;left:50%;margin-left:-9px;margin-top:-9px;border:2px solid rgba(255,255,255,.3);border-top-color:#fff;border-radius:var(--radius-full);animation:buttonSpinner var(--duration-slow) linear infinite}.btn-secondary.loading:after,.btn-secondary.btn-loading:after{border-color:rgba(var(--role-accent-rgb, 0, 0, 0),.2);border-top-color:var(--role-accent)}@keyframes buttonSpinner{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.btn.loading-dots{color:transparent!important;pointer-events:none}.btn.loading-dots:after{content:"";position:absolute;width:6px;height:6px;top:50%;left:calc(50% - 12px);margin-top:-3px;background:#fff;border-radius:var(--radius-full);animation:loadingDots 1.2s ease-in-out infinite;box-shadow:12px 0 0 -1px #fff,24px 0 0 -1px #fff}@keyframes loadingDots{0%,80%,to{transform:scale(.8);opacity:.5}40%{transform:scale(1);opacity:1}}.btn-icon-slide .btn-icon{transition:transform var(--duration-fast) var(--ease-out)}.btn-icon-slide:hover .btn-icon{transform:translate(4px)}.btn-icon-rotate .btn-icon{transition:transform var(--duration-normal) var(--ease-spring)}.btn-icon-rotate:hover .btn-icon{transform:rotate(90deg)}.btn-icon-scale .btn-icon,.btn .btn-icon-animated{transition:transform var(--duration-fast) var(--ease-spring)}.btn-icon-scale:hover .btn-icon,.btn:hover .btn-icon-animated{transform:scale(1.15)}.btn-arrow:after{content:"→";display:inline-block;margin-left:var(--space-sm);transition:transform var(--duration-fast) var(--ease-spring)}.btn-arrow:hover:after{transform:translate(4px)}.btn-download .btn-icon{transition:transform var(--duration-normal) var(--ease-bounce)}.btn-download:hover .btn-icon{animation:downloadBounce .5s var(--ease-bounce)}@keyframes downloadBounce{0%,to{transform:translateY(0)}50%{transform:translateY(3px)}}.btn-success-animate{animation:btnSuccessPulse .4s var(--ease-out);background:var(--color-success)!important;border-color:var(--color-success)!important}@keyframes btnSuccessPulse{0%{transform:scale(1)}50%{transform:scale(1.05)}to{transform:scale(1)}}.btn-error-animate{animation:btnErrorShake .4s var(--ease-out);background:var(--color-error)!important;border-color:var(--color-error)!important}@keyframes btnErrorShake{0%,to{transform:translate(0)}20%{transform:translate(-8px)}40%{transform:translate(8px)}60%{transform:translate(-4px)}80%{transform:translate(4px)}}.btn-success-check:after{content:"✓";position:absolute;animation:checkAppear .3s var(--ease-out-back) forwards}@keyframes checkAppear{0%{opacity:0;transform:scale(0) rotate(-45deg)}to{opacity:1;transform:scale(1) rotate(0)}}.btn-group .btn{transition:all var(--duration-fast) var(--ease-out)}.btn-group .btn:hover{z-index:1}.btn-group .btn:not(:first-child):not(:last-child):hover{transform:scale(1.02)}.btn-toggle-group .btn{opacity:.7}.btn-toggle-group .btn.active,.btn-toggle-group .btn:hover{opacity:1}.btn-toggle-group .btn.active{transform:scale(1.02);box-shadow:var(--shadow-md)}.btn-fab{width:56px;height:56px;border-radius:var(--radius-full);box-shadow:var(--shadow-lg);transition:transform var(--duration-fast) var(--ease-spring),box-shadow var(--duration-fast) var(--ease-out)}.btn-fab:hover{transform:scale(1.1) translateY(-2px);box-shadow:var(--shadow-xl)}.btn-fab:active{transform:scale(.95);box-shadow:var(--shadow-md)}.btn-fab .btn-icon{transition:transform var(--duration-normal) var(--ease-spring)}.btn-fab:hover .btn-icon{transform:rotate(90deg)}.success-checkmark{display:inline-flex;align-items:center;justify-content:center;width:60px;height:60px;border-radius:var(--radius-full);background:var(--color-success);color:#fff;font-size:var(--font-size-2xl);animation:successPop var(--duration-slow) var(--ease-out-back);box-shadow:var(--shadow-xl)}@keyframes successPop{0%{opacity:0;transform:scale(0)}50%{transform:scale(1.1)}to{opacity:1;transform:scale(1)}}.success-checkmark:before{content:"✓";animation:checkmarkDraw .3s var(--duration-normal) var(--ease-out-quad)}@keyframes checkmarkDraw{0%{opacity:0;transform:scale(.5) rotate(-45deg)}to{opacity:1;transform:scale(1) rotate(0)}}.success-message{text-align:center;padding:var(--space-2xl);animation:fadeInUp var(--duration-normal) var(--ease-out-quad)}@keyframes fadeInUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.success-message h3{margin:var(--space-lg) 0 var(--space-sm) 0;font-size:var(--font-size-xl);font-weight:var(--font-weight-bold);color:var(--theme-text-primary)}.success-message p{margin:0;font-size:var(--font-size-base);color:var(--theme-text-secondary)}.toast{animation:toastSlideIn var(--duration-normal) var(--ease-out-back)}@keyframes toastSlideIn{0%{opacity:0;transform:translate(400px) scale(.9)}to{opacity:1;transform:translate(0) scale(1)}}.toast.toast-exit{animation:toastSlideOut var(--duration-fast) var(--ease-in-quad) forwards}@keyframes toastSlideOut{0%{opacity:1;transform:translate(0) scale(1)}to{opacity:0;transform:translate(400px) scale(.9)}}.toast-icon{animation:iconBounce var(--duration-normal) var(--ease-out-back)}@keyframes iconBounce{0%{transform:scale(0) rotate(-180deg)}50%{transform:scale(1.2) rotate(10deg)}to{transform:scale(1) rotate(0)}}.page-fade-enter{opacity:0}.page-fade-enter-active{opacity:1;transition:opacity var(--duration-fast) var(--ease-in-out)}.page-fade-exit{opacity:1}.page-fade-exit-active{opacity:0;transition:opacity var(--duration-fast) var(--ease-in-out)}input,select,textarea{transition:border-color var(--duration-fast) var(--ease-out),box-shadow var(--duration-fast) var(--ease-out),background-color var(--duration-fast) var(--ease-out)}input:focus,select:focus,textarea:focus{animation:inputFocusPulse var(--duration-fast) var(--ease-out-quad)}@keyframes inputFocusPulse{0%{box-shadow:0 0 0 0 var(--role-accent-light)}to{box-shadow:0 0 0 3px var(--role-accent-light)}}.form-group-floating{position:relative}.form-group-floating .form-label{position:absolute;left:var(--space-md);top:50%;transform:translateY(-50%);color:var(--text-secondary);font-size:var(--font-size-body);pointer-events:none;transition:top var(--duration-fast) var(--ease-spring),font-size var(--duration-fast) var(--ease-spring),color var(--duration-fast) var(--ease-out);background:transparent;padding:0 var(--space-xs)}.form-group-floating textarea~.form-label{top:var(--space-lg)}.form-group-floating input:focus~.form-label,.form-group-floating input:not(:placeholder-shown)~.form-label,.form-group-floating textarea:focus~.form-label,.form-group-floating textarea:not(:placeholder-shown)~.form-label,.form-group-floating select:focus~.form-label,.form-group-floating select:valid~.form-label{top:0;font-size:var(--font-size-caption);color:var(--role-accent, var(--color-primary));background:var(--bg-primary, white)}.input-underline{position:relative;border:none;border-bottom:2px solid var(--color-border);border-radius:0;background:transparent;transition:border-color var(--duration-fast) var(--ease-out)}.input-underline-wrapper{position:relative}.input-underline-wrapper:after{content:"";position:absolute;bottom:0;left:50%;width:0;height:2px;background:var(--role-accent, var(--color-primary));transition:all var(--duration-normal) var(--ease-out-quad)}.input-underline-wrapper:focus-within:after{left:0;width:100%}.input-error,.form-group.has-error input,.form-group.has-error select,.form-group.has-error textarea{animation:inputShake .4s var(--ease-out);border-color:var(--color-error)!important}@keyframes inputShake{0%,to{transform:translate(0)}20%{transform:translate(-6px)}40%{transform:translate(6px)}60%{transform:translate(-3px)}80%{transform:translate(3px)}}.input-success,.form-group.has-success input,.form-group.has-success select,.form-group.has-success textarea{border-color:var(--color-success)!important;animation:inputSuccess .3s var(--ease-out)}@keyframes inputSuccess{0%{box-shadow:0 0 #10b98166}to{box-shadow:0 0 0 3px #10b98100}}.form-group-with-icon{position:relative}.form-group-with-icon .validation-icon{position:absolute;right:var(--space-md);top:50%;transform:translateY(-50%) scale(0);opacity:0;transition:transform var(--duration-fast) var(--ease-spring),opacity var(--duration-fast) var(--ease-out)}.form-group-with-icon.has-success .validation-icon,.form-group-with-icon.has-error .validation-icon{transform:translateY(-50%) scale(1);opacity:1}.checkbox-custom{position:relative;width:20px;height:20px;-moz-appearance:none;appearance:none;-webkit-appearance:none;border:2px solid var(--color-border);border-radius:var(--radius-sm);cursor:pointer;transition:background-color var(--duration-fast) var(--ease-out),border-color var(--duration-fast) var(--ease-out),transform var(--duration-fast) var(--ease-spring)}.checkbox-custom:hover{border-color:var(--role-accent, var(--color-primary))}.checkbox-custom:checked{background:var(--role-accent, var(--color-primary));border-color:var(--role-accent, var(--color-primary));animation:checkboxBounce .3s var(--ease-spring)}@keyframes checkboxBounce{0%{transform:scale(1)}50%{transform:scale(1.2)}to{transform:scale(1)}}.checkbox-custom:checked:after{content:"";position:absolute;left:5px;top:2px;width:5px;height:10px;border:solid white;border-width:0 2px 2px 0;transform:rotate(45deg);animation:checkmarkDraw .2s var(--ease-out) forwards}.radio-custom{position:relative;width:20px;height:20px;-moz-appearance:none;appearance:none;-webkit-appearance:none;border:2px solid var(--color-border);border-radius:var(--radius-full);cursor:pointer;transition:border-color var(--duration-fast) var(--ease-out),transform var(--duration-fast) var(--ease-spring)}.radio-custom:hover{border-color:var(--role-accent, var(--color-primary))}.radio-custom:checked{border-color:var(--role-accent, var(--color-primary));animation:radioPulse .3s var(--ease-spring)}@keyframes radioPulse{0%{transform:scale(1)}50%{transform:scale(1.1)}to{transform:scale(1)}}.radio-custom:checked:after{content:"";position:absolute;left:50%;top:50%;width:10px;height:10px;background:var(--role-accent, var(--color-primary));border-radius:var(--radius-full);transform:translate(-50%,-50%) scale(0);animation:radioFill .2s var(--ease-spring) forwards}@keyframes radioFill{0%{transform:translate(-50%,-50%) scale(0)}to{transform:translate(-50%,-50%) scale(1)}}.switch-animated .switch-slider{transition:background-color var(--duration-normal) var(--ease-out),box-shadow var(--duration-fast) var(--ease-out)}.switch-animated .switch-slider:before{transition:transform var(--duration-fast) var(--ease-spring),box-shadow var(--duration-fast) var(--ease-out)}.switch-animated input:checked+.switch-slider:before{box-shadow:0 2px 8px #0003}.switch-animated:hover .switch-slider:before{transform:scale(1.05)}.switch-animated input:checked:hover+.switch-slider:before{transform:translate(24px) scale(1.05)}select{transition:border-color var(--duration-fast) var(--ease-out),box-shadow var(--duration-fast) var(--ease-out)}.select-wrapper{position:relative}.select-wrapper:after{content:"";position:absolute;right:var(--space-md);top:50%;width:8px;height:8px;border-right:2px solid var(--text-secondary);border-bottom:2px solid var(--text-secondary);transform:translateY(-70%) rotate(45deg);transition:transform var(--duration-fast) var(--ease-spring);pointer-events:none}.select-wrapper:focus-within:after{transform:translateY(-30%) rotate(-135deg)}.char-counter{font-size:var(--font-size-caption);color:var(--text-tertiary);transition:color var(--duration-fast) var(--ease-out)}.char-counter.warning{color:var(--color-warning)}.char-counter.error{color:var(--color-error);animation:counterPulse .3s var(--ease-out)}@keyframes counterPulse{0%,to{opacity:1}50%{opacity:.5}}.search-input-wrapper{position:relative}.search-input-wrapper .search-icon{position:absolute;left:var(--space-md);top:50%;transform:translateY(-50%);color:var(--text-secondary);transition:color var(--duration-fast) var(--ease-out),transform var(--duration-fast) var(--ease-spring)}.search-input-wrapper:focus-within .search-icon{color:var(--role-accent, var(--color-primary));transform:translateY(-50%) scale(1.1)}.search-input-wrapper .search-clear{position:absolute;right:var(--space-md);top:50%;transform:translateY(-50%) scale(0);opacity:0;transition:transform var(--duration-fast) var(--ease-spring),opacity var(--duration-fast) var(--ease-out);cursor:pointer}.search-input-wrapper.has-value .search-clear{transform:translateY(-50%) scale(1);opacity:1}.search-input-wrapper .search-clear:hover{transform:translateY(-50%) scale(1.1)}.skeleton-shimmer{background:linear-gradient(90deg,var(--role-bg-tertiary) 0%,var(--role-bg-secondary) 50%,var(--role-bg-tertiary) 100%);background-size:200% 100%;animation:shimmer 1.5s ease-in-out infinite}@keyframes shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.badge-pulse{animation:badgePulse 2s ease-in-out infinite}@keyframes badgePulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.8;transform:scale(1.05)}}.dropdown-menu{animation:dropdownSlide var(--duration-fast) var(--ease-out-quad);transform-origin:top}@keyframes dropdownSlide{0%{opacity:0;transform:translateY(-10px) scaleY(.95)}to{opacity:1;transform:translateY(0) scaleY(1)}}.modal-backdrop-enter{opacity:0}.modal-backdrop-enter-active{opacity:1;transition:opacity var(--duration-normal) var(--ease-in-out)}.modal-content-enter{opacity:0;transform:translateY(-20px) scale(.95)}.modal-content-enter-active{opacity:1;transform:translateY(0) scale(1);transition:all var(--duration-normal) var(--ease-out-quad)}.icon-spin{animation:iconSpin 1s linear infinite}@keyframes iconSpin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.shake{animation:shake var(--duration-normal) var(--ease-out-quad)}@keyframes shake{0%,to{transform:translate(0)}25%{transform:translate(-10px)}75%{transform:translate(10px)}}.bounce{animation:bounce var(--duration-slow) var(--ease-out-quad)}@keyframes bounce{0%,20%,50%,80%,to{transform:translateY(0)}40%{transform:translateY(-20px)}60%{transform:translateY(-10px)}}.glow{position:relative}.glow:after{content:"";position:absolute;top:-2px;left:-2px;right:-2px;bottom:-2px;background:inherit;border-radius:inherit;opacity:0;filter:blur(10px);z-index:-1;animation:glow 2s ease-in-out infinite}@keyframes glow{0%,to{opacity:0}50%{opacity:.5}}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}.btn:not(:disabled):hover,.btn:not(:disabled):active,.btn-fab:hover,.btn-fab:active{transform:none!important}.btn:before{display:none!important}.form-group-floating .form-label{transition:none!important}.checkbox-custom:checked,.radio-custom:checked{animation:none!important}.input-error,.form-group.has-error input,.form-group.has-error select,.form-group.has-error textarea{animation:none!important}.switch-animated .switch-slider:before{transition:none!important}.toast{animation:none!important}.skeleton-shimmer{animation:none!important;background:var(--role-bg-tertiary)}.dropdown-menu,.success-checkmark{animation:none!important}.btn-icon-slide:hover .btn-icon,.btn-icon-rotate:hover .btn-icon,.btn-icon-scale:hover .btn-icon,.btn:hover .btn-icon-animated,.btn-arrow:hover:after,.btn-download:hover .btn-icon{transform:none!important;animation:none!important}}@media (hover: none) and (pointer: coarse){.btn:hover{transform:none;box-shadow:inherit}.btn:active{transform:scale(.97)}.checkbox-custom,.radio-custom{width:24px;height:24px}.btn:hover .btn-icon-animated,.btn-icon-slide:hover .btn-icon,.btn-icon-rotate:hover .btn-icon,.btn-icon-scale:hover .btn-icon{transform:none}}@media (prefers-contrast: high){input:focus,select:focus,textarea:focus,.btn:focus{outline:3px solid currentColor!important;outline-offset:2px!important}.input-error,.form-group.has-error input,.checkbox-custom,.radio-custom{border-width:3px!important}}.qr-generator{display:inline-flex;flex-direction:column;align-items:center;gap:var(--spacing-sm)}.qr-generator svg{display:block}.qr-generator__actions{display:flex;gap:var(--spacing-xs)}.qr-scanner{display:flex;flex-direction:column;gap:var(--spacing-md);padding:var(--spacing-md);background:var(--color-surface);border-radius:var(--radius-lg);border:1px solid var(--color-border)}.qr-scanner__modes{display:flex;gap:var(--spacing-sm);flex-wrap:wrap}.qr-scanner__mode-btn{display:inline-flex;align-items:center;gap:var(--spacing-xs);padding:var(--spacing-sm) var(--spacing-md);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);font-size:var(--font-size-sm);font-weight:500;color:var(--color-text-secondary);cursor:pointer;transition:all .2s ease}.qr-scanner__mode-btn:hover{background:var(--color-surface-hover);border-color:var(--color-primary-400);color:var(--color-text-primary)}.qr-scanner__mode-btn--active{background:var(--color-primary-50);border-color:var(--color-primary-500);color:var(--color-primary-700)}.qr-scanner__mode-btn svg{flex-shrink:0}.qr-scanner__camera{display:flex;flex-direction:column;align-items:center;gap:var(--spacing-sm)}.qr-scanner__viewport{width:100%;max-width:400px;aspect-ratio:1;background:var(--color-neutral-900);border-radius:var(--radius-md);overflow:hidden}#qr-scanner-region video{width:100%;height:100%;object-fit:cover}#qr-scanner-region__scan_region{border:3px solid var(--color-primary-500)!important;border-radius:var(--radius-md)!important}.qr-scanner__manual{width:100%}.qr-scanner__input-wrapper{display:flex;gap:var(--spacing-xs)}.qr-scanner__input{flex:1;padding:var(--spacing-sm) var(--spacing-md);font-size:var(--font-size-base);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);color:var(--color-text-primary);transition:border-color .2s ease,box-shadow .2s ease}.qr-scanner__input:focus{outline:none;border-color:var(--color-primary-500);box-shadow:0 0 0 3px var(--color-primary-100)}.qr-scanner__input::placeholder{color:var(--color-text-tertiary)}.qr-scanner__submit{display:flex;align-items:center;justify-content:center;padding:var(--spacing-sm);background:var(--color-primary-600);border:none;border-radius:var(--radius-md);color:var(--text-inverse, white);cursor:pointer;transition:background .2s ease}.qr-scanner__submit:hover:not(:disabled){background:var(--color-primary-700)}.qr-scanner__submit:disabled{background:var(--color-neutral-300);cursor:not-allowed}.qr-scanner__hint{margin-top:var(--spacing-xs);font-size:var(--font-size-sm);color:var(--color-text-tertiary);text-align:center}.qr-scanner__error{display:flex;align-items:center;gap:var(--spacing-xs);padding:var(--spacing-sm) var(--spacing-md);background:var(--color-error-50);border:1px solid var(--color-error-200);border-radius:var(--radius-md);color:var(--color-error-700);font-size:var(--font-size-sm)}.qr-scanner__error svg{flex-shrink:0;color:var(--color-error-500)}.qr-scanner__last-scanned{display:flex;align-items:center;gap:var(--spacing-xs);padding:var(--spacing-sm) var(--spacing-md);background:var(--color-success-50);border:1px solid var(--color-success-200);border-radius:var(--radius-md);font-size:var(--font-size-sm)}.qr-scanner__last-scanned-label{color:var(--color-text-secondary)}.qr-scanner__last-scanned-id{font-weight:600;color:var(--color-success-700);font-family:var(--font-mono)}.qr-scanner__last-scanned-source{color:var(--color-text-tertiary);font-size:var(--font-size-xs)}.equipment-label{width:320px;padding:var(--spacing-md);background:var(--color-white, white);border-radius:var(--radius-md);font-family:var(--font-sans);box-shadow:var(--shadow-md)}.equipment-label--bordered{border:2px dashed var(--color-border)}.equipment-label--empty{display:flex;align-items:center;justify-content:center;min-height:200px;color:var(--color-text-tertiary)}.equipment-label__header{display:flex;align-items:center;gap:var(--spacing-sm);padding-bottom:var(--spacing-sm);border-bottom:2px solid var(--color-neutral-900);margin-bottom:var(--spacing-sm)}.equipment-label__logo{height:24px;width:auto}.equipment-label__title{font-size:var(--font-size-xs);font-weight:600;color:var(--color-neutral-600);letter-spacing:.5px}.equipment-label__content{display:flex;gap:var(--spacing-md);align-items:center}.equipment-label__qr{flex-shrink:0}.equipment-label__info{flex:1;min-width:0}.equipment-label__name{font-size:var(--font-size-lg);font-weight:700;color:var(--color-neutral-900);margin:0 0 var(--spacing-xs) 0;line-height:1.2;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.equipment-label__category{display:flex;align-items:center;gap:var(--spacing-xs);margin-bottom:var(--spacing-sm)}.equipment-label__category-icon{font-size:var(--font-size-base)}.equipment-label__category-text{font-size:var(--font-size-xs);font-weight:600;color:var(--color-neutral-500);letter-spacing:.5px}.equipment-label__details{display:flex;flex-direction:column;gap:var(--spacing-xs)}.equipment-label__detail{display:flex;gap:var(--spacing-xs);font-size:var(--font-size-sm)}.equipment-label__detail-label{font-weight:600;color:var(--color-neutral-500)}.equipment-label__detail-value{color:var(--color-neutral-700);font-family:var(--font-mono)}.equipment-label__footer{display:flex;align-items:center;justify-content:center;gap:var(--spacing-xs);padding-top:var(--spacing-sm);border-top:1px solid var(--color-neutral-200);margin-top:var(--spacing-sm);font-size:var(--font-size-xs);color:var(--color-neutral-400)}.equipment-label__separator{color:var(--color-neutral-300)}.equipment-label--compact{width:240px;padding:var(--spacing-sm)}.equipment-label--compact .equipment-label__name{font-size:var(--font-size-base)}.equipment-label--compact .equipment-label__footer{font-size:10px}.equipment-label--large{width:400px;padding:var(--spacing-lg)}.equipment-label--large .equipment-label__name{font-size:var(--font-size-xl)}.label-print-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:var(--spacing-lg);padding:var(--spacing-lg)}.label-print-actions{display:flex;gap:var(--spacing-md);padding:var(--spacing-md);background:var(--color-surface);border-bottom:1px solid var(--color-border);position:sticky;top:0;z-index:10}.progress-bar{width:100%;height:8px;background:var(--color-neutral-200);border-radius:var(--radius-full);overflow:hidden}.progress-bar__fill{height:100%;background:var(--color-primary-500);border-radius:var(--radius-full);transition:width .3s ease}.progress-bar__fill--indeterminate{width:30%;animation:progress-indeterminate 1.5s infinite linear}@keyframes progress-indeterminate{0%{transform:translate(-100%)}to{transform:translate(400%)}}.progress-bar-container{display:flex;flex-direction:column;gap:var(--spacing-xs)}.progress-bar__label{display:flex;justify-content:space-between;font-size:var(--font-size-sm);color:var(--color-text-secondary)}.progress-bar__stage{font-weight:500}.progress-bar__percentage{font-family:var(--font-mono)}@media (max-width: 768px){.qr-scanner__modes{flex-direction:column}.qr-scanner__mode-btn{width:100%;justify-content:center}.equipment-label{width:100%;max-width:320px}.label-print-grid{grid-template-columns:1fr}}@media print{.equipment-label{box-shadow:none;border:1px dashed var(--color-border, #ccc);break-inside:avoid;page-break-inside:avoid}.qr-scanner,.label-print-actions{display:none}}.master-admin-portal .equipment-table select,.dept-admin-portal .equipment-table select,.equipment-table select.status-select-compact,.equipment-table select.department-select,.master-admin-portal select.status-select-compact,.dept-admin-portal select.status-select-compact,.status-cell,.equipment-table .status-cell,.master-admin-portal .status-cell,.dept-admin-portal .status-cell,div.status-cell{border:none!important;border-width:0!important;outline:none!important;box-shadow:none!important}.status-select-compact,select.status-select-compact,.equipment-table .status-select-compact,.equipment-table select.status-select-compact{appearance:none!important;-webkit-appearance:none!important;-moz-appearance:none!important;outline:0!important;outline-width:0!important;outline-style:none!important;outline-offset:0!important;border:0!important;border-width:0!important;border-style:none!important;box-shadow:none!important;-webkit-box-shadow:none!important;background-color:var(--bg-tertiary)!important;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%236B7280' stroke-width='2'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E")!important;background-repeat:no-repeat!important;background-position:right 10px center!important;padding:8px 30px 8px 12px!important;border-radius:6px!important;font-size:13px!important;color:var(--color-body-text)!important;cursor:pointer!important;min-width:110px!important}.status-select-compact:focus,select.status-select-compact:focus,.equipment-table .status-select-compact:focus{outline:0!important;border:0!important;box-shadow:none!important;background-color:var(--color-border)!important}.status-select-compact::-ms-expand{display:none!important}.dept-admin-portal .status-select-compact,.dept-admin-portal select.status-select-compact,.dept-admin-portal .equipment-table .status-select-compact{background-color:var(--color-warning-bg)!important}.dept-admin-portal .status-select-compact:focus,.dept-admin-portal select.status-select-compact:focus{background-color:var(--dept-admin-accent-light, #FDE68A)!important}.master-admin-portal .status-select-compact,.master-admin-portal select.status-select-compact,.master-admin-portal .equipment-table .status-select-compact{background-color:var(--master-admin-accent-light, #F3E8FF)!important}.master-admin-portal .status-select-compact:focus,.master-admin-portal select.status-select-compact:focus{background-color:var(--master-admin-accent-hover, #E9D5FF)!important}.btn,button{white-space:nowrap;min-width:fit-content;overflow:visible}.page-header .btn,.page-header button,.header-actions .btn,.header-actions button{flex-shrink:0;min-width:max-content}.equipment-kits-management .page-header{flex-wrap:wrap}.equipment-kits-management .page-header .btn-primary,.equipment-kits-management .create-kit-btn{min-width:140px;padding:.75rem 1.25rem;white-space:nowrap;flex-shrink:0}.empty-state .btn,.empty-state button,.equipment-kits-management .empty-state .btn-primary{min-width:max-content!important;white-space:nowrap!important;padding:.875rem 2rem!important;font-size:1rem!important;font-weight:600!important;display:inline-flex!important;align-items:center!important;justify-content:center!important;border-radius:8px!important;overflow:visible!important;text-overflow:unset!important}.approval-actions{display:flex;gap:.5rem;margin-top:1rem}.approval-actions .btn,.approval-actions button{min-height:40px;min-width:90px;padding:.5rem 1.25rem;font-size:.9rem;font-weight:600;border-radius:8px}.approval-actions .btn-primary,.approval-actions [data-testid=approve-btn],button[data-testid=approve-btn]{background:linear-gradient(135deg,var(--color-success) 0%,var(--color-success-dark, #059669) 100%)!important;color:var(--text-inverse)!important;border:none!important;box-shadow:0 2px 4px #10b9814d}.approval-actions .btn-primary:hover,.approval-actions [data-testid=approve-btn]:hover,button[data-testid=approve-btn]:hover{filter:brightness(1.1);transform:translateY(-1px);box-shadow:0 4px 8px #10b98166}.approval-actions .btn-secondary,.approval-actions [data-testid=deny-btn],button[data-testid=deny-btn]{background:var(--color-white)!important;color:var(--color-error-dark, #DC2626)!important;border:2px solid var(--color-error-dark, #DC2626)!important}.approval-actions .btn-secondary:hover,.approval-actions [data-testid=deny-btn]:hover,button[data-testid=deny-btn]:hover{background:var(--color-error-dark, #DC2626)!important;color:var(--text-inverse)!important}.btn.btn-sm,button.btn-sm{min-height:36px;padding:.5rem 1rem;font-size:.875rem}.booking-approvals .filters,.booking-approvals>div>div{display:flex;gap:.5rem;flex-wrap:wrap}.master-admin-portal .btn.btn-sm,.booking-approvals .btn.btn-sm{min-height:38px;padding:.5rem 1rem;font-size:.875rem;font-weight:600;border-radius:20px;transition:all .2s ease}.master-admin-portal .btn.btn-primary.btn-sm,.booking-approvals .btn.btn-primary.btn-sm{background:var(--master-accent-primary, #9C27B0)!important;color:#fff!important;border:2px solid var(--master-accent-primary, #9C27B0)!important}.master-admin-portal .btn.btn-secondary.btn-sm,.booking-approvals .btn.btn-secondary.btn-sm{background:#fff!important;color:var(--text-primary, #1a1a1a)!important;border:2px solid var(--border-color, #e5e7eb)!important}.master-admin-portal .btn.btn-secondary.btn-sm:hover,.booking-approvals .btn.btn-secondary.btn-sm:hover{border-color:var(--master-accent-primary, #9C27B0)!important;color:var(--master-accent-primary, #9C27B0)!important;background:#9c27b00d!important}.filter-tabs,.filter-chips,.status-filters{display:flex;gap:.5rem;flex-wrap:wrap}.filter-tab,.filter-chip,.status-filter{padding:.5rem 1rem;border-radius:20px;font-size:.875rem;font-weight:500;cursor:pointer;transition:all .2s ease;border:2px solid transparent;background:var(--bg-secondary, #f3f4f6);color:var(--text-secondary, #6b7280)}.filter-tab:hover,.filter-chip:hover,.status-filter:hover{background:var(--bg-tertiary, #e5e7eb)}.filter-tab.active,.filter-chip.active,.status-filter.active{background:var(--master-accent-primary, #9C27B0);color:#fff;border-color:var(--master-accent-primary, #9C27B0)}.filter-tab:not(.active),.filter-chip:not(.active),.status-filter:not(.active){background:#fff;border:2px solid var(--border-color, #e5e7eb);color:var(--text-primary, #1a1a1a)}.filter-tab:not(.active):hover,.filter-chip:not(.active):hover,.status-filter:not(.active):hover{border-color:var(--master-accent-primary, #9C27B0);color:var(--master-accent-primary, #9C27B0)}.status-badge,.booking-status,[class*=status-]{border:none!important;outline:none!important;border-style:solid!important}.status-badge.pending,.status-pending,.badge-pending{background:var(--color-warning-bg)!important;color:var(--color-warning-dark, #D97706)!important;border:1px solid var(--color-warning)!important;padding:.25rem .75rem;border-radius:20px;font-size:.75rem;font-weight:600;text-transform:uppercase}.status-badge.approved,.status-approved,.badge-approved{background:var(--color-success-bg)!important;color:var(--color-success-dark, #059669)!important;border:1px solid var(--color-success)!important}.status-badge.denied,.status-denied,.badge-denied{background:var(--color-error-bg)!important;color:var(--color-error-dark, #DC2626)!important;border:1px solid var(--color-error)!important}.admin-permissions .btn,.staff-admin-permissions .btn{min-height:42px;padding:.625rem 1.25rem;font-size:.9rem;font-weight:600;border-radius:8px;white-space:nowrap}.admin-permissions .btn.btn-primary,.staff-admin-permissions .btn.btn-primary{background:var(--master-accent-primary, #9C27B0)!important;color:#fff!important;border:2px solid var(--master-accent-primary, #9C27B0)!important}.admin-permissions .btn.btn-secondary,.staff-admin-permissions .btn.btn-secondary{background:#fff!important;color:var(--master-accent-primary, #9C27B0)!important;border:2px solid var(--master-accent-primary, #9C27B0)!important}.admin-permissions .btn.btn-secondary:hover,.staff-admin-permissions .btn.btn-secondary:hover{background:#9c27b01a!important}.users-table td .btn.btn-sm,table td .btn.btn-sm{min-height:34px;min-width:70px;padding:.4rem .75rem;font-size:.8125rem;font-weight:600;border-radius:6px}.users-table td .btn.btn-sm.btn-primary,table td .btn.btn-sm.btn-primary{background:var(--master-accent-primary, #9C27B0)!important;color:#fff!important;border:none!important}.users-table td .btn.btn-sm.btn-secondary,table td .btn.btn-sm.btn-secondary{background:#fff!important;color:var(--master-accent-primary, #9C27B0)!important;border:2px solid var(--master-accent-primary, #9C27B0)!important}.users-table td .btn.btn-sm.btn-secondary:hover,table td .btn.btn-sm.btn-secondary:hover{background:#9c27b01a!important}.role-management .quick-actions .btn,.quick-actions button{min-width:max-content;white-space:nowrap;padding:.625rem 1rem;display:inline-flex;align-items:center;gap:.5rem}.quick-actions .btn-secondary,.refresh-status-btn{background:#fff;color:var(--master-accent-primary, #9C27B0);border:2px solid var(--master-accent-primary, #9C27B0);border-radius:8px}.quick-actions .btn-danger,.disable-all-btn{background:var(--color-error-dark, #DC2626);color:var(--text-inverse);border:none;border-radius:8px}.header-stats .stat-card,.role-management .stat-card{min-width:140px;min-height:80px;display:flex;flex-direction:column;align-items:center;justify-content:center;background:linear-gradient(135deg,var(--master-accent-primary, #9C27B0) 0%,var(--master-accent-dark, #7B1FA2) 100%);color:#fff;padding:1rem 1.5rem;border-radius:12px}.stat-card .stat-value{font-size:1.75rem;font-weight:700;line-height:1.2}.stat-card .stat-label{font-size:.8125rem;opacity:.9;margin-top:.25rem}.stat-card:empty:after{content:"0";font-size:1.75rem;font-weight:700}.role-card .btn-primary,.test-portal-btn{width:100%;padding:.75rem 1rem;font-size:.875rem;font-weight:600;border-radius:8px;background:linear-gradient(135deg,var(--master-accent-primary, #9C27B0) 0%,var(--master-accent-dark, #7B1FA2) 100%);color:#fff;border:none;display:flex;align-items:center;justify-content:center;gap:.5rem}.role-management .header-stats{display:flex;gap:1rem;flex-wrap:wrap}.role-management .stat-card{min-width:140px;min-height:80px;padding:1rem 1.5rem;background:linear-gradient(135deg,var(--master-accent-primary, #9C27B0) 0%,#7B1FA2 100%)!important;color:#fff;border-radius:12px;text-align:center;display:flex;flex-direction:column;align-items:center;justify-content:center;box-shadow:0 4px 12px #9c27b040}.role-management .stat-card .stat-value{font-size:2rem;font-weight:700;line-height:1.2;color:#fff;margin:0}.role-management .stat-card .stat-label{font-size:.8125rem;opacity:.95;margin-top:.25rem;color:#fff;font-weight:500}.role-management .quick-actions{display:flex;gap:1rem;flex-wrap:wrap;margin-bottom:2rem}.role-management .quick-actions .btn{min-width:max-content;white-space:nowrap;padding:.75rem 1.25rem;font-size:.9rem;font-weight:600;display:inline-flex;align-items:center;gap:.5rem;border-radius:8px}.role-management .quick-actions .btn-secondary{background:#fff!important;color:var(--master-accent-primary, #9C27B0)!important;border:2px solid var(--master-accent-primary, #9C27B0)!important}.role-management .quick-actions .btn-secondary:hover{background:#9c27b01a!important}.role-management .quick-actions .btn-danger{background:var(--color-error-dark, #DC2626)!important;color:var(--text-inverse)!important;border:none!important}.role-management .quick-actions .btn-danger:hover{background:var(--color-error-darker, #B91C1C)!important}.role-management .role-card.enabled:before{background:linear-gradient(90deg,var(--master-accent-primary, #9C27B0) 0%,var(--master-accent-dark, #7B1FA2) 100%)!important}.role-management .role-card.enabled{border-color:var(--master-accent-primary, #9C27B0)!important;box-shadow:0 4px 12px #9c27b026!important}.role-management input:checked+.toggle-slider{background-color:var(--master-accent-primary, #9C27B0)!important}.role-management .btn-demo{background:linear-gradient(135deg,var(--master-accent-primary, #9C27B0) 0%,#7B1FA2 100%)!important}.role-management .btn-demo:hover{box-shadow:0 4px 12px #9c27b04d!important}.master-admin-portal .page-header{display:flex;justify-content:space-between;align-items:flex-start;flex-wrap:wrap;gap:1rem}.master-admin-portal .page-header h1,.master-admin-portal .page-header h2{margin:0;flex:1;min-width:200px}.master-admin-portal .page-header .btn{flex-shrink:0}.master-admin-portal table .toggle-switch,.master-admin-portal table input[type=checkbox]{margin:0}.warning-banner,.alert-warning{background:var(--color-warning-bg);border:1px solid var(--color-warning);border-radius:8px;padding:1rem 1.5rem;margin-bottom:1.5rem;display:flex;align-items:center;gap:.75rem}.warning-banner .warning-icon{color:var(--color-warning-dark, #D97706);flex-shrink:0}.warning-banner p,.alert-warning p{margin:0;color:var(--color-warning-darker, #92400E);font-size:.9375rem}.permissions-table,.admin-table{width:100%;border-collapse:collapse}.permissions-table th,.admin-table th{background:var(--bg-secondary, #f9fafb);padding:.75rem 1rem;text-align:left;font-weight:600;font-size:.75rem;text-transform:uppercase;letter-spacing:.05em;color:var(--text-secondary, #6b7280);border-bottom:2px solid var(--border-color, #e5e7eb)}.permissions-table td,.admin-table td{padding:.75rem 1rem;border-bottom:1px solid var(--border-color, #e5e7eb);vertical-align:middle}.permissions-table tr:hover,.admin-table tr:hover{background:var(--bg-secondary, #f9fafb)}.role-badge{display:inline-flex;align-items:center;padding:.25rem .75rem;border-radius:20px;font-size:.75rem;font-weight:600}.role-badge.master-admin{background:var(--master-admin-bg-light, #F3E5F5);color:var(--master-admin-accent-dark, #7B1FA2)}.role-badge.department-admin,.role-badge.dept-admin{background:var(--dept-admin-bg-light, #FFF3E0);color:var(--dept-admin-accent-dark, #E65100)}@media (max-width: 768px){.page-header{flex-direction:column;align-items:stretch}.page-header .btn{width:100%;justify-content:center}.filter-tabs,.filter-chips,.status-filters{overflow-x:auto;padding-bottom:.5rem;flex-wrap:nowrap}.permissions-tabs,.tab-group{flex-direction:column}.header-stats{flex-direction:column;gap:1rem}.stat-card{min-width:100%}.quick-actions{flex-direction:column}.quick-actions .btn{width:100%;justify-content:center}.table-actions,.action-buttons,.row-actions{flex-direction:column;gap:.25rem}.table-actions .btn,.action-buttons .btn,.row-actions .btn{width:100%;justify-content:center}}.skip-link{position:absolute;top:-9999px;left:-9999px;z-index:100000;padding:12px 24px;background:var(--color-primary, #1E40AF);color:var(--text-inverse, white);font-size:16px;font-weight:700;text-decoration:none;border-radius:0 0 8px;box-shadow:0 4px 6px #0000001a;opacity:0;pointer-events:none}.skip-link:focus{top:0;left:0;opacity:1;pointer-events:auto;outline:3px solid var(--color-primary-light, #3B82F6);outline-offset:2px}*{margin:0;padding:0;box-sizing:border-box}body{font-family:var(--font-primary);font-size:var(--font-size-base);color:var(--text-secondary);background-color:var(--bg-primary);line-height:var(--line-height-relaxed);letter-spacing:var(--letter-spacing-normal)}p{margin-bottom:var(--spacing-lg);line-height:var(--line-height-relaxed)}h1,h2,h3,h4,h5,h6{font-family:var(--font-primary);color:var(--text-primary);line-height:var(--line-height-tight);letter-spacing:var(--letter-spacing-tight)}h1{font-size:var(--font-size-4xl);font-weight:var(--font-weight-bold);margin-bottom:var(--spacing-2xl)}h2{font-size:var(--font-size-2xl);font-weight:var(--font-weight-semibold);margin-bottom:var(--spacing-xl)}h3{font-size:var(--font-size-xl);font-weight:var(--font-weight-semibold);margin-bottom:var(--spacing-lg)}h4{font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold);margin-bottom:var(--spacing-lg)}h5{font-size:var(--font-size-md);font-weight:var(--font-weight-semibold);margin-bottom:var(--spacing-md)}h6{font-size:var(--font-size-base);font-weight:var(--font-weight-semibold);margin-bottom:var(--spacing-md)}a{color:var(--color-primary);text-decoration:none;transition:var(--transition-color)}a:hover{color:var(--color-primary-hover)}.login-container{min-height:100vh;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,var(--bg-secondary, #f5f7fa) 0%,var(--bg-tertiary, #e4e9f0) 100%);padding:var(--spacing-4xl)}.login-card{background:var(--color-white, #ffffff);border-radius:var(--radius-xl);padding:var(--spacing-5xl);width:100%;max-width:480px;box-shadow:0 1px 1px var(--shadow-3d-light) inset,0 8px 24px var(--shadow-3d-dark),0 16px 48px var(--shadow-3d-darker);border:1px solid rgba(255,255,255,.8)}.login-header{text-align:center;margin-bottom:var(--spacing-2xl)}.login-header h1{font-size:var(--font-size-3xl);color:var(--text-primary);margin-bottom:var(--spacing-2xl);letter-spacing:var(--letter-spacing-tight)}.login-header .demo-note{color:var(--text-muted);font-size:var(--font-size-sm);margin-top:var(--spacing-md);line-height:var(--line-height-relaxed)}.form-group{margin-bottom:var(--spacing-3xl)}.form-group label{display:block;margin-bottom:var(--spacing-sm);font-family:var(--font-primary);font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);color:var(--text-primary);line-height:var(--line-height-normal)}.form-group input,.form-input{width:100%;padding:14px 18px;border:1px solid var(--border-color);border-radius:var(--radius-sm);font-family:var(--font-primary);font-size:var(--font-size-base);color:var(--text-primary);background-color:var(--bg-primary);transition:var(--transition-border);line-height:var(--line-height-normal);margin-bottom:var(--spacing-lg)}.form-group input:focus,.form-input:focus{outline:none;border-color:var(--border-color-focus);box-shadow:var(--shadow-focus)}.form-group input::placeholder,.form-input::placeholder{color:var(--text-muted)}.form-select,.select-input{width:100%;padding:var(--padding-input);border:1px solid var(--border-color);border-radius:var(--radius-sm);font-family:var(--font-primary);font-size:var(--font-size-base);color:var(--text-primary);background-color:var(--bg-primary);cursor:pointer;transition:var(--transition-border)}.form-select:focus,.select-input:focus{outline:none;border-color:var(--border-color-focus);box-shadow:var(--shadow-focus)}.error-message{background:var(--color-error-pale);color:var(--color-error);padding:var(--spacing-md);border-radius:var(--radius-sm);margin-bottom:var(--spacing-lg)}.demo-accounts h3{text-align:center;margin-bottom:var(--spacing-lg);color:var(--text-primary)}.demo-accounts-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--spacing-lg)}.btn-large{padding:var(--spacing-xl);display:flex;flex-direction:column;align-items:center;gap:var(--spacing-sm);text-align:center;min-height:140px;justify-content:center}.role-icon{font-size:1rem;line-height:1;width:32px;height:32px;border-radius:50%;background:var(--color-primary-light);display:inline-flex;align-items:center;justify-content:center;color:var(--color-primary)}.role-name{font-size:1.125rem;font-weight:600;display:block}.role-desc{font-size:.875rem;opacity:.9;display:block}.loading-message{text-align:center;margin-top:var(--spacing-lg);color:var(--primary-color);font-weight:500}@media (max-width: 480px){.demo-accounts-grid{grid-template-columns:1fr}.btn-large{min-height:120px}}.btn{padding:14px 28px;border:none;border-radius:var(--radius-sm);font-family:var(--font-primary);font-weight:var(--font-weight-semibold);font-size:var(--font-size-base);cursor:pointer;transition:all .2s ease;min-height:var(--touch-target-min);display:inline-flex;align-items:center;justify-content:center;line-height:1.5;letter-spacing:.3px;margin:var(--spacing-sm) 0}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background:linear-gradient(180deg,var(--color-primary, #0066FF) 0%,var(--color-primary-dark, #0052CC) 100%);color:var(--text-inverse, white);position:relative;box-shadow:0 1px #ffffff4d inset,0 4px 8px #0066ff4d,0 1px 2px #0003;transform:translateY(0)}.btn-primary:hover:not(:disabled){background:linear-gradient(180deg,var(--color-primary-dark, #0052CC) 0%,var(--color-primary-darker, #0047B3) 100%);box-shadow:0 1px #fff6 inset,0 6px 16px #06f6,0 2px 4px #0003;transform:translateY(-2px)}.btn-primary:active:not(:disabled){box-shadow:0 1px 2px #0003 inset,0 2px 4px #06f3;transform:translateY(1px)}.btn-secondary{background:linear-gradient(180deg,var(--color-white, #ffffff) 0%,var(--bg-secondary, #f8f9fa) 100%);color:var(--color-primary);border:2px solid var(--color-primary);box-shadow:0 1px #ffffff80 inset,0 4px 8px #0000001a,0 1px 2px #0000001a;transition:all .2s ease}.btn-secondary:hover:not(:disabled){background:linear-gradient(180deg,var(--bg-secondary, #f8f9fa) 0%,var(--bg-tertiary, #e9ecef) 100%);box-shadow:0 1px #fff9 inset,0 6px 16px #00000026,0 2px 4px #0000001a;transform:translateY(-2px)}.btn-secondary:active:not(:disabled){box-shadow:0 1px 2px #00000026 inset;transform:translateY(1px)}.btn-outline{background-color:transparent;color:var(--color-primary);border:2px solid var(--color-primary);transition:var(--transition-all)}.btn-outline:hover:not(:disabled){background-color:var(--color-primary);color:var(--text-light);box-shadow:var(--shadow-button-hover);transform:translateY(-1px)}.btn-sm{padding:calc(var(--spacing-md) / 2) var(--spacing-md);font-size:var(--font-size-sm);min-height:auto}.btn-block{width:100%;margin-top:var(--spacing-md)}.portal-header{background:#fff;color:var(--text-primary);padding:var(--spacing-lg);box-shadow:var(--shadow-sm);position:sticky;top:0;z-index:var(--z-sticky)}.student-portal,.student-dashboard,body[data-portal=student]{background:var(--portal-student-bg)}.student-portal .portal-header{background:#fff;border-bottom:3px solid var(--portal-student-accent)}.staff-portal,body[data-portal=staff]{background:var(--portal-staff-bg)}.staff-portal .portal-header{background:#fff;border-bottom:3px solid var(--portal-staff-accent)}.dept-admin-portal,body[data-portal=admin]{background:var(--portal-admin-bg)}.dept-admin-portal .portal-header{background:#fff;border-bottom:3px solid var(--portal-admin-accent)}.master-admin-portal,body[data-portal=master]{background:var(--portal-master-bg)}.master-admin-portal .portal-header{background:#fff;border-bottom:3px solid var(--portal-master-accent)}.header-content{max-width:1200px;margin:0 auto;display:flex;justify-content:space-between;align-items:center}.header-actions{display:flex;gap:var(--spacing-md);align-items:center}.portal-nav{background-color:var(--bg-card);border-bottom:1px solid var(--border-color-light);padding:var(--spacing-md) var(--spacing-lg);display:flex;gap:var(--spacing-lg);box-shadow:var(--shadow-xs)}.nav-link{font-family:var(--font-primary);font-size:var(--font-size-base);font-weight:var(--font-weight-regular);color:var(--text-primary);text-decoration:none;padding:var(--spacing-md) var(--spacing-lg);border-radius:var(--radius-sm);transition:var(--transition-color),var(--transition-bg)}.nav-link:hover{color:var(--color-primary);background-color:var(--bg-secondary)}.nav-link.active{color:var(--color-primary);font-weight:var(--font-weight-semibold)}.btn-quick-action{background:var(--color-primary)!important;color:#fff!important;font-weight:var(--font-weight-medium);padding:var(--spacing-sm) var(--spacing-lg)!important;box-shadow:var(--shadow-sm)}.btn-quick-action:hover{background:var(--color-primary-hover)!important;transform:translateY(-1px);box-shadow:var(--shadow-md)}.nav-dropdown{position:relative;display:inline-block}.dropdown-toggle{background:none;border:none;cursor:pointer;display:flex;align-items:center;gap:var(--spacing-xs)}.dropdown-arrow{font-size:var(--font-size-xs);transition:transform .3s ease;display:inline-block}.nav-dropdown.open .dropdown-arrow{transform:rotate(180deg)}.dropdown-menu{position:absolute;top:100%;left:0;background:var(--bg-card);border:1px solid var(--border-color-light);border-radius:var(--radius-md);box-shadow:var(--shadow-lg);min-width:220px;z-index:1000;opacity:0;visibility:hidden;transform:translateY(-10px);transition:all .3s cubic-bezier(.4,0,.2,1);margin-top:var(--spacing-sm)}.nav-dropdown.open .dropdown-menu{opacity:1;visibility:visible;transform:translateY(0)}.dropdown-item{display:block;padding:var(--spacing-md) var(--spacing-lg);color:var(--text-primary);text-decoration:none;font-size:var(--font-size-base);transition:var(--transition-bg),var(--transition-color);white-space:nowrap}.dropdown-item:first-child{border-radius:var(--radius-md) var(--radius-md) 0 0}.dropdown-item:last-child{border-radius:0 0 var(--radius-md) var(--radius-md)}.dropdown-item:hover{background:var(--bg-secondary);color:var(--color-primary)}.portal-main{padding:var(--spacing-xl);max-width:1200px;margin:0 auto}.dashboard-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:var(--spacing-lg);margin-top:var(--spacing-xl)}.dashboard-card{background:var(--bg-card);border:1px solid var(--border-color-light);border-radius:var(--radius-lg);padding:var(--spacing-3xl);box-shadow:var(--shadow-sm);transition:var(--transition-all)}.dashboard-card:hover{transform:translateY(-2px);box-shadow:var(--shadow-md)}.dashboard-card p,.card-content{line-height:var(--line-height-relaxed);margin-bottom:var(--spacing-lg)}.equipment-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:var(--spacing-3xl);padding:var(--spacing-4xl) 0}.equipment-card{background:var(--bg-card);border:1px solid var(--border-color-light);border-radius:var(--radius-lg);overflow:hidden;box-shadow:var(--shadow-sm);transition:var(--transition-all);padding:var(--spacing-3xl)}.equipment-card:hover{transform:translateY(-2px);border-color:var(--color-primary);box-shadow:var(--shadow-md)}.equipment-image{background:linear-gradient(135deg,var(--bg-secondary, #f8f9fa) 0%,var(--bg-tertiary, #e9ecef) 100%);height:200px;display:flex;align-items:center;justify-content:center;border-radius:var(--radius-md);border:2px solid var(--border-color-light)}.equipment-category-label{font-size:var(--font-size-md);font-weight:var(--font-weight-semibold);color:var(--text-muted);text-transform:uppercase;letter-spacing:var(--letter-spacing-wide)}.equipment-info{padding:var(--spacing-lg);line-height:var(--line-height-relaxed)}.equipment-info p{margin-bottom:var(--spacing-lg)}.equipment-meta{display:flex;justify-content:space-between;margin-bottom:var(--spacing-md)}.status{padding:4px 12px;border-radius:var(--radius-sm);font-weight:var(--font-weight-medium);text-transform:capitalize;font-size:var(--font-size-sm)}.status-available{background-color:var(--color-success-pale);color:var(--color-success)}.loading-container{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center}.loading-spinner{width:48px;height:48px;border:4px solid var(--border-color);border-top-color:var(--color-primary);border-radius:50%;animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}@media (max-width: 768px){.equipment-grid{grid-template-columns:1fr}.header-content{flex-direction:column;gap:var(--spacing-md)}}.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background-color:var(--bg-overlay);display:flex;align-items:center;justify-content:center;z-index:var(--z-modal-backdrop);padding:var(--spacing-lg)}.modal-content{background:var(--bg-card);border-radius:var(--radius-xl);max-width:600px;width:100%;max-height:90vh;overflow-y:auto;box-shadow:var(--shadow-xl);padding:var(--padding-card-lg)}.modal-header{display:flex;justify-content:space-between;align-items:center;padding:var(--spacing-lg);border-bottom:1px solid var(--border-color)}.modal-header h2{margin:0}.modal-close{background:none;border:none;font-size:1.5rem;cursor:pointer;padding:0;width:32px;height:32px;display:flex;align-items:center;justify-content:center;border-radius:var(--border-radius)}.modal-close:hover{background-color:var(--surface)}.modal-body{padding:var(--spacing-lg)}.equipment-summary{background:var(--surface);padding:var(--spacing-md);border-radius:var(--border-radius);margin-bottom:var(--spacing-lg)}.equipment-summary h3{margin:0 0 var(--spacing-sm) 0}.equipment-summary p{margin:0;color:var(--text-secondary)}.form-group textarea{width:100%;padding:var(--spacing-md);border:1px solid var(--border-color);border-radius:var(--border-radius);font-family:inherit;resize:vertical}.form-group .required{color:var(--error-color);font-size:.875rem}.modal-actions{display:flex;gap:var(--spacing-md);justify-content:flex-end;margin-top:var(--spacing-lg)}.my-bookings .subtitle{color:var(--text-secondary);margin-bottom:var(--spacing-xl)}.bookings-list{display:flex;flex-direction:column;gap:var(--spacing-lg)}.booking-item{background:var(--bg-card);border:1px solid var(--border-color-light);border-radius:var(--radius-lg);padding:var(--spacing-lg);box-shadow:var(--shadow-sm);transition:var(--transition-shadow)}.booking-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:var(--spacing-md)}.booking-header h3{margin:0 0 var(--spacing-sm) 0}.booking-header .category{color:var(--primary-color);font-size:.875rem;margin:0}.status-badge{padding:var(--spacing-sm) var(--spacing-md);border-radius:var(--radius-sm);font-family:var(--font-primary);font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);text-transform:capitalize;display:inline-block;line-height:var(--line-height-tight)}.status-warning{background:var(--color-warning-pale);color:var(--color-warning)}.status-success{background:var(--color-success-pale);color:var(--color-success)}.status-error{background:var(--color-error-pale);color:var(--color-error)}.status-primary{background:var(--color-primary-pale);color:var(--color-primary)}.status-secondary{background:var(--bg-secondary);color:var(--text-primary)}.booking-details{display:flex;flex-direction:column;gap:var(--spacing-sm)}.detail-row{display:flex;gap:var(--spacing-md);font-size:.875rem}.detail-row .label{font-weight:500;color:var(--text-secondary);min-width:100px}.detail-row.error{color:var(--error-color)}.booking-actions{margin-top:var(--spacing-md);padding-top:var(--spacing-md);border-top:1px solid var(--border-color)}.empty-state{text-align:center;padding:var(--spacing-2xl)}.empty-state h2{margin-bottom:var(--spacing-md)}.empty-state p,.admin-dashboard .subtitle{color:var(--text-secondary);margin-bottom:var(--spacing-xl)}.stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:var(--spacing-lg);margin-bottom:var(--spacing-2xl)}.stat-card{background:var(--bg-card);border:1px solid var(--border-color-light);border-radius:var(--radius-lg);padding:var(--spacing-xl);display:flex;align-items:center;gap:var(--spacing-md);transition:var(--transition-all);box-shadow:var(--shadow-sm)}.stat-card:hover{transform:translateY(-2px);box-shadow:var(--shadow-md)}.stat-icon{font-size:1rem;width:40px;height:40px;border-radius:50%;background:var(--color-primary-pale);display:inline-flex;align-items:center;justify-content:center;color:var(--color-primary)}.stat-content h3{font-size:2rem;margin:0;color:var(--text-primary);word-break:break-word;overflow-wrap:break-word}.stat-content p{margin:0;color:var(--text-secondary);font-size:.875rem;word-break:break-word;overflow-wrap:break-word}.stat-primary{border-left:4px solid var(--color-primary)}.stat-success{border-left:4px solid var(--color-success)}.stat-warning{border-left:4px solid var(--color-warning)}.stat-error{border-left:4px solid var(--color-error)}.stat-info{border-left:4px solid var(--color-info)}.stat-secondary{border-left:4px solid var(--color-secondary)}.dashboard-actions{background:var(--bg-card);border:1px solid var(--border-color-light);border-radius:var(--radius-lg);padding:var(--spacing-xl);box-shadow:var(--shadow-sm)}.dashboard-actions h3{margin-bottom:var(--spacing-lg)}.action-buttons{display:flex;gap:var(--spacing-md);flex-wrap:wrap}.booking-approvals .approvals-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--spacing-xl);flex-wrap:wrap;gap:var(--spacing-md)}.approvals-list{display:flex;flex-direction:column;gap:var(--spacing-lg);width:100%}.approvals-list .loading-skeleton,.approvals-list .loading-skeleton .skeleton-item,.approvals-list .loading-skeleton .skeleton-list-item{width:100%}.approval-item{background:var(--bg-card);border:1px solid var(--border-color-light);border-radius:var(--radius-lg);padding:var(--spacing-lg);box-shadow:var(--shadow-sm);transition:var(--transition-shadow)}.approval-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:var(--spacing-md)}.approval-header h3{margin:0 0 var(--spacing-sm) 0}.student-name{color:var(--text-secondary);font-size:.875rem;margin:0}.approval-details{display:flex;flex-direction:column;gap:var(--spacing-sm);margin-bottom:var(--spacing-md)}.approval-actions{display:flex;gap:var(--spacing-md);padding-top:var(--spacing-md);border-top:1px solid var(--border-color)}@media (max-width: 768px){.stats-grid{grid-template-columns:1fr}.action-buttons{flex-direction:column}.action-buttons .btn{width:100%}}.room-booking .subtitle{color:var(--text-secondary);margin-bottom:var(--spacing-xl)}.booking-controls{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:var(--spacing-lg);margin-bottom:var(--spacing-xl)}.select-input,.date-input{width:100%;padding:var(--spacing-md);border:1px solid var(--border-color);border-radius:var(--border-radius);font-size:var(--font-size-base)}.select-input:focus,.date-input:focus{outline:none;border-color:var(--primary-color)}.space-details{background:var(--bg-card);border:1px solid var(--border-color-light);border-radius:var(--radius-lg);padding:var(--spacing-lg);margin-bottom:var(--spacing-xl);box-shadow:var(--shadow-sm)}.space-details h3{margin:0 0 var(--spacing-sm) 0}.space-details p{margin:var(--spacing-sm) 0;color:var(--text-secondary)}.equipment-list{color:var(--text-primary)}.time-slots-grid{background:var(--bg-card);border:1px solid var(--border-color-light);border-radius:var(--radius-lg);padding:var(--spacing-xl);box-shadow:var(--shadow-sm)}.time-slots-grid h3{margin-bottom:var(--spacing-lg)}.slots-container{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:var(--spacing-md)}.time-slot{padding:var(--spacing-lg);border:2px solid var(--border-color);border-radius:var(--radius-sm);background:var(--bg-card);cursor:pointer;transition:var(--transition-all);font-weight:var(--font-weight-medium);position:relative}.time-slot-available{border-color:var(--color-success);color:var(--color-success)}.time-slot-available:hover{background:var(--color-success-pale);transform:translateY(-2px);box-shadow:var(--shadow-md)}.time-slot-booked{border-color:var(--color-error);background:var(--color-error-pale);color:var(--color-error);cursor:not-allowed;opacity:.6}.time-slot-selected{border-color:var(--color-primary);background:var(--color-primary-pale);color:var(--color-primary);font-weight:var(--font-weight-semibold);box-shadow:var(--shadow-md)}.time-slot-selected:hover{background:var(--color-primary-pale);transform:translateY(-2px);box-shadow:var(--shadow-lg)}.slot-status{display:block;font-size:.75rem;margin-top:var(--spacing-xs)}.booking-summary{background:var(--surface);padding:var(--spacing-md);border-radius:var(--border-radius);margin-bottom:var(--spacing-lg)}.booking-summary p{margin:var(--spacing-sm) 0}@media (max-width: 768px){.booking-controls,.slots-container{grid-template-columns:1fr}}.feature-flags .subtitle{color:var(--text-secondary);margin-bottom:var(--spacing-xl)}.warning-banner{background:var(--color-warning-pale);color:var(--color-warning);padding:var(--spacing-lg);border-radius:var(--radius-lg);margin-bottom:var(--spacing-xl);border-left:4px solid var(--color-warning)}.flags-list{display:flex;flex-direction:column;gap:var(--spacing-lg);margin-bottom:var(--spacing-xl)}.flag-item{background:var(--bg-card);border:1px solid var(--border-color-light);border-radius:var(--radius-lg);padding:var(--spacing-lg);display:flex;justify-content:space-between;align-items:center;gap:var(--spacing-lg);box-shadow:var(--shadow-sm);transition:var(--transition-shadow)}.flag-info h3{margin:0 0 var(--spacing-sm) 0;font-size:1.125rem}.flag-description{color:var(--text-secondary);margin:var(--spacing-sm) 0}.flag-meta{margin:var(--spacing-sm) 0 0 0}.role-badge{background:var(--surface);padding:.25rem .75rem;border-radius:1rem;font-size:.75rem;font-weight:500;color:var(--text-secondary)}.flag-toggle{display:flex;align-items:center;gap:var(--spacing-md)}.switch{position:relative;display:inline-block;width:60px;height:34px}.switch input{opacity:0;width:0;height:0}.slider{position:absolute;cursor:pointer;top:0;left:0;right:0;bottom:0;background-color:var(--color-subtle, #ccc);transition:.4s;border-radius:34px}.slider:before{position:absolute;content:"";height:26px;width:26px;left:4px;bottom:4px;background-color:#fff;transition:.4s;border-radius:50%}input:checked+.slider{background-color:var(--success-color)}input:checked+.slider:before{transform:translate(26px)}input:disabled+.slider{opacity:.5;cursor:not-allowed}.status-enabled{color:var(--success-color);font-weight:500}.status-disabled{color:var(--error-color);font-weight:500}.flags-info{background:var(--surface);padding:var(--spacing-xl);border-radius:var(--border-radius)}.flags-info h3{margin-bottom:var(--spacing-md)}.flags-info ul{list-style-position:inside;color:var(--text-secondary)}.flags-info li{margin:var(--spacing-sm) 0}.equipment-table,.users-table{background:var(--bg-card);border:1px solid var(--border-color-light);border-radius:var(--radius-lg);overflow-x:auto;margin:var(--spacing-xl) 0;box-shadow:var(--shadow-sm)}.equipment-table table,.users-table table{width:100%;border-collapse:collapse;font-family:var(--font-primary);font-size:var(--font-size-base)}.equipment-table th,.equipment-table td,.users-table th,.users-table td{padding:var(--spacing-lg) var(--spacing-xl);text-align:left;border-bottom:1px solid var(--border-color);line-height:var(--line-height-normal)}.equipment-table th,.users-table th{background:var(--bg-secondary);font-weight:var(--font-weight-semibold);color:var(--text-primary)}.equipment-table tbody tr:hover,.users-table tbody tr:hover{background:var(--bg-secondary)}.tracking-number{font-family:monospace;color:var(--text-secondary)}.status-select{padding:var(--spacing-sm);border:none;border-radius:var(--border-radius);font-size:.875rem;appearance:none;-webkit-appearance:none;-moz-appearance:none;outline:none}.equipment-stats{color:var(--text-secondary);text-align:center;padding:var(--spacing-md)}.analytics-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:var(--spacing-xl);flex-wrap:wrap;gap:var(--spacing-md)}.analytics-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:var(--spacing-lg);margin-top:var(--spacing-xl)}.analytics-card{background:var(--bg-card);border:1px solid var(--border-color-light);border-radius:var(--radius-lg);padding:var(--spacing-xl);box-shadow:var(--shadow-sm);transition:var(--transition-shadow)}.analytics-card h3{margin:0 0 var(--spacing-lg) 0}.chart-list{display:flex;flex-direction:column;gap:var(--spacing-md)}.chart-item{display:flex;align-items:center;gap:var(--spacing-md)}.item-name{min-width:120px;font-size:.875rem}.progress-bar{flex:1;height:20px;background:var(--surface);border-radius:var(--border-radius);overflow:hidden}.progress-fill{height:100%;background:linear-gradient(90deg,var(--color-secondary) 0%,var(--color-primary) 100%);transition:width .3s ease;border-radius:var(--radius-sm)}.item-count{font-weight:500;min-width:80px;text-align:right;font-size:.875rem}@media (max-width: 768px){.flag-item{flex-direction:column;align-items:flex-start}.equipment-table{font-size:.875rem}.analytics-grid{grid-template-columns:1fr}.item-name{min-width:80px}}.equipment-notes-section{margin-top:var(--spacing-2xl);padding-top:var(--spacing-xl);border-top:1px solid var(--border-color)}.notes-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--spacing-lg)}.notes-header h3{margin:0}.empty-notes{text-align:center;padding:var(--spacing-2xl);color:var(--text-secondary)}.notes-list{display:flex;flex-direction:column;gap:var(--spacing-md)}.note-item{background:var(--bg-card);border:1px solid var(--border-color-light);border-left:4px solid var(--color-primary);border-radius:var(--radius-lg);padding:var(--spacing-lg);box-shadow:var(--shadow-sm);transition:var(--transition-all)}.note-item:hover{box-shadow:var(--shadow-md);transform:translateY(-2px)}.note-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:var(--spacing-md);gap:var(--spacing-md)}.note-type{display:flex;align-items:center;gap:var(--spacing-sm)}.note-icon{font-size:.875rem;width:24px;height:24px;border-radius:50%;background:var(--color-tertiary-light);display:inline-flex;align-items:center;justify-content:center;color:var(--color-tertiary)}.note-type-label{font-weight:600;text-transform:capitalize;color:var(--text-primary)}.note-meta{display:flex;flex-direction:column;align-items:flex-end;gap:.25rem;font-size:.875rem;color:var(--text-secondary)}.note-creator{font-weight:500}.note-date{font-size:.75rem}.note-content{color:var(--text-primary);line-height:1.6;white-space:pre-wrap}.form-textarea,.form-group textarea{width:100%;padding:var(--padding-input);border:1px solid var(--border-color);border-radius:var(--radius-sm);font-family:var(--font-primary);font-size:var(--font-size-base);resize:vertical;min-height:100px;transition:var(--transition-border)}.form-textarea:focus,.form-group textarea:focus{outline:none;border-color:var(--border-color-focus);box-shadow:var(--shadow-focus)}.equipment-detail-modal{max-width:800px}.equipment-detail-info{background:var(--surface);padding:var(--spacing-lg);border-radius:var(--border-radius);margin-bottom:var(--spacing-xl)}.detail-row{display:flex;padding:var(--spacing-sm) 0;border-bottom:1px solid var(--border-color)}.detail-row:last-child{border-bottom:none}.detail-label{font-weight:600;min-width:180px;color:var(--text-secondary)}.detail-value{flex:1;color:var(--text-primary)}@media (max-width: 768px){.note-header{flex-direction:column}.note-meta{align-items:flex-start}.detail-row{flex-direction:column;gap:.25rem}.detail-label{min-width:auto}}.user-management .subtitle{color:var(--text-secondary);margin-bottom:var(--spacing-xl)}.management-controls{margin-bottom:var(--spacing-xl)}.filter-controls{display:flex;gap:var(--spacing-md);flex-wrap:wrap;align-items:center}.search-input{flex:1;min-width:250px;padding:var(--padding-input);border:1px solid var(--border-color);border-radius:var(--radius-sm);font-size:var(--font-size-base);font-family:var(--font-primary);transition:var(--transition-border)}.search-input:focus{outline:none;border-color:var(--border-color-focus);box-shadow:var(--shadow-focus)}.role-badge{padding:.25rem .75rem;border-radius:1rem;font-size:.875rem;font-weight:500;text-transform:capitalize;display:inline-block}.role-student{background:var(--color-info-pale);color:var(--color-info)}.role-staff{background:var(--color-success-pale);color:var(--color-success)}.role-admin{background:var(--color-warning-pale);color:var(--color-warning)}.role-master_admin{background:var(--color-error-pale);color:var(--color-error)}.action-buttons{display:flex;gap:var(--spacing-sm)}.btn-danger{background-color:var(--color-error);color:var(--text-light)}.btn-danger:hover:not(:disabled){background-color:var(--color-error-dark, #dc2626)}.users-stats{color:var(--text-secondary);text-align:center;padding:var(--spacing-md)}.form-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--spacing-lg);margin-bottom:var(--spacing-xl)}.form-input{width:100%;padding:var(--spacing-md);border:1px solid var(--border-color);border-radius:var(--border-radius);font-size:1rem}.form-input:focus{outline:none;border-color:var(--primary-color)}.form-input:disabled{background:var(--surface);cursor:not-allowed;opacity:.6}.access-denied{text-align:center;padding:var(--spacing-2xl);background:var(--bg-card);border:1px solid var(--border-color-light);border-radius:var(--radius-xl);margin:var(--spacing-2xl) auto;max-width:600px;box-shadow:var(--shadow-lg)}.access-denied h2{color:var(--error-color);margin-bottom:var(--spacing-md)}.email-config-section{margin-top:3rem;padding:2rem;background:var(--card-bg);border-radius:var(--border-radius);box-shadow:var(--shadow)}.email-config-section .section-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.5rem}.email-config-section h2{margin:0;color:var(--text-primary)}.email-status{margin-bottom:1.5rem;padding:1rem;background:var(--bg-secondary);border-radius:var(--border-radius)}.email-status .status-badge{display:inline-block;margin-bottom:.5rem}.email-status .help-text{margin:.5rem 0 0;font-size:.9rem;color:var(--text-secondary);line-height:1.5}.email-status code{background:var(--bg-primary);padding:.2rem .4rem;border-radius:3px;font-family:Courier New,monospace;font-size:.85rem}.email-config-form{margin-top:1.5rem}.email-config-form .form-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:1rem;margin-bottom:1.5rem}.email-config-form h3{margin:2rem 0 1rem;color:var(--text-primary);font-size:1.1rem}.email-config-form .form-group label{display:block;margin-bottom:.5rem;font-weight:500;color:var(--text-primary)}.email-config-form .form-group input{width:100%;padding:.75rem;border:1px solid var(--border-color);border-radius:var(--border-radius);background:var(--input-bg);color:var(--text-primary);font-size:.95rem}.email-config-form .form-group input:disabled{opacity:.6;cursor:not-allowed}.email-config-form .form-actions{margin-top:2rem;text-align:right}.email-test-section{margin-top:2rem;padding:1.5rem;background:var(--bg-secondary);border-radius:var(--border-radius);border-left:4px solid var(--primary-color)}.email-test-section h3{margin:0 0 .5rem;color:var(--text-primary)}.email-test-section .help-text{margin:0 0 1rem;color:var(--text-secondary);font-size:.9rem}.email-test-section .test-buttons{display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:1rem}.email-test-section .test-status{margin-top:1rem;padding:.75rem;background:var(--bg-primary);border-radius:var(--border-radius);font-size:.9rem;font-weight:500}.status-badge.status-success{background:var(--success-bg);color:var(--success-color);border:1px solid var(--success-color)}.status-badge.status-warning{background:var(--warning-bg);color:var(--warning-color);border:1px solid var(--warning-color)}@media (max-width: 768px){.email-config-section .section-header{flex-direction:column;align-items:flex-start;gap:1rem}.email-config-form .form-row{grid-template-columns:1fr}.email-test-section .test-buttons{flex-direction:column}.email-test-section .test-buttons button{width:100%}}.csv-import{max-width:1000px;margin:0 auto}.import-header{margin-bottom:2rem}.import-header .subtitle{color:var(--text-secondary);margin-top:.5rem}.import-step{background:var(--card-bg);padding:2rem;border-radius:var(--border-radius);box-shadow:var(--shadow)}.import-type-selector{display:flex;gap:1.5rem;margin-bottom:2rem;padding:1.5rem;background:var(--bg-secondary);border-radius:var(--border-radius)}.import-type-selector label{display:flex;align-items:center;gap:.5rem;cursor:pointer;padding:.75rem 1.5rem;background:var(--bg-primary);border:2px solid var(--border-color);border-radius:var(--border-radius);transition:all .2s}.import-type-selector label:hover{border-color:var(--primary-color)}.import-type-selector input[type=radio]{width:20px;height:20px}.import-type-selector input[type=radio]:checked+span{font-weight:600;color:var(--primary-color)}.template-download{margin-bottom:2rem;padding:1rem;background:var(--bg-secondary);border-radius:var(--border-radius);border-left:4px solid var(--primary-color)}.template-download .help-text{margin:.5rem 0 0;font-size:.9rem;color:var(--text-secondary)}.file-upload-section{margin-bottom:2rem}.file-upload-label{display:block;padding:3rem 2rem;background:var(--bg-secondary);border:2px dashed var(--border-color);border-radius:var(--border-radius);text-align:center;cursor:pointer;transition:all .2s;color:var(--text-secondary);font-size:1.1rem}.file-upload-label:hover{border-color:var(--primary-color);background:var(--bg-primary)}.file-input{display:none}.validation-errors,.validation-warnings{margin-bottom:2rem;padding:1.5rem;border-radius:var(--border-radius)}.validation-errors{background:var(--error-bg);border-left:4px solid var(--error-color)}.validation-warnings{background:var(--warning-bg);border-left:4px solid var(--warning-color)}.validation-errors h4,.validation-warnings h4{margin:0 0 1rem;color:var(--text-primary)}.validation-errors ul,.validation-warnings ul{margin:0;padding-left:1.5rem}.error-item{color:var(--error-color);margin-bottom:.5rem}.warning-item{color:var(--warning-color);margin-bottom:.5rem}.duplicate-detection{margin-top:2rem}.duplicate-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:1rem;margin:1.5rem 0}.stat-card{padding:1.5rem;background:var(--bg-secondary);border-radius:var(--border-radius);text-align:center}.stat-card.warning{background:var(--warning-bg);border:2px solid var(--warning-color)}.stat-number{display:block;font-size:2rem;font-weight:700;color:var(--primary-color)}.stat-card.warning .stat-number{color:var(--warning-color)}.stat-label{display:block;margin-top:.5rem;font-size:.9rem;color:var(--text-secondary)}.duplicate-list{margin-top:1.5rem}.duplicate-table{width:100%;border-collapse:collapse;margin:1rem 0;background:var(--bg-primary)}.duplicate-table th,.duplicate-table td{padding:.75rem;text-align:left;border-bottom:1px solid var(--border-color)}.duplicate-table th{background:var(--bg-secondary);font-weight:600}.duplicate-table small{color:var(--text-secondary);font-size:.85rem}.action-badge{display:inline-block;padding:.25rem .75rem;background:var(--warning-bg);color:var(--warning-color);border-radius:12px;font-size:.85rem;font-weight:500}.import-options{margin-top:2rem;padding:1.5rem;background:var(--bg-secondary);border-radius:var(--border-radius)}.import-options h5{margin:0 0 1rem}.import-options label{display:block;margin-bottom:.75rem;cursor:pointer}.import-options input[type=checkbox]{margin-right:.5rem;width:18px;height:18px;vertical-align:middle}.import-results{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1.5rem;margin:2rem 0}.result-card{padding:2rem;background:var(--bg-secondary);border-radius:var(--border-radius);text-align:center}.result-card.success{background:var(--success-bg);border:2px solid var(--success-color)}.result-card.warning{background:var(--warning-bg);border:2px solid var(--warning-color)}.result-number{display:block;font-size:3rem;font-weight:700;color:var(--primary-color)}.result-card.success .result-number{color:var(--success-color)}.result-card.warning .result-number{color:var(--warning-color)}.result-label{display:block;margin-top:.5rem;font-size:1rem;color:var(--text-primary);font-weight:500}.import-info{margin-top:2rem;padding:1.5rem;background:var(--bg-secondary);border-radius:var(--border-radius)}.import-info h3{margin:0 0 1rem;color:var(--text-primary)}.import-info ul{margin:0;padding-left:1.5rem}.import-info li{margin-bottom:.5rem;line-height:1.6}.import-actions{display:flex;justify-content:flex-end;gap:1rem;margin-top:2rem;padding-top:2rem;border-top:1px solid var(--border-color)}.loading-spinner{text-align:center;padding:4rem 2rem}.loading-spinner h3{margin-bottom:1rem}@media (max-width: 768px){.import-type-selector{flex-direction:column}.duplicate-stats,.import-results{grid-template-columns:1fr}.duplicate-table{font-size:.9rem}.import-actions{flex-direction:column}.import-actions button{width:100%}}.toast{position:fixed;top:80px;right:var(--space-md, 16px);background:var(--bg-card, var(--color-white, #ffffff));background-color:var(--color-white)!important;border-radius:var(--radius-lg, 12px);box-shadow:var(--shadow-xl, 0 20px 25px -5px rgba(0, 0, 0, .1), 0 10px 10px -5px rgba(0, 0, 0, .04));padding:var(--spacing-lg, 16px);display:flex;align-items:center;justify-content:space-between;min-width:300px;max-width:400px;animation:slideIn var(--duration-normal, .3s) var(--easing-decelerate, ease-out);z-index:9999;border:1px solid var(--color-border, #e5e7eb)}@keyframes slideIn{0%{transform:translate(400px);opacity:0}to{transform:translate(0);opacity:1}}.toast-success{border-left:4px solid var(--color-success)}.toast-error{border-left:4px solid var(--color-error)}.toast-info{border-left:4px solid var(--color-info)}.toast-content{display:flex;align-items:center;gap:var(--spacing-sm)}.toast-icon{font-size:var(--font-size-sm);width:28px;height:28px;border-radius:var(--radius-full);display:inline-flex;align-items:center;justify-content:center;font-weight:var(--font-weight-semibold)}.toast-success .toast-icon{background:var(--color-success-pale);color:var(--color-success)}.toast-error .toast-icon{background:var(--color-error-pale);color:var(--color-error)}.toast-info .toast-icon{background:var(--color-info-pale);color:var(--color-info)}.toast-message{flex:1;color:var(--text-primary)}.toast-close{background:none;border:none;font-size:var(--font-size-xl);color:var(--text-secondary);cursor:pointer;padding:0;margin-left:var(--spacing-md);line-height:1}.toast-close:hover{color:var(--text-primary)}.view-toggle{display:flex;gap:10px;margin-bottom:20px;justify-content:flex-end}.btn-view{padding:8px 16px;border:1px solid var(--border-color);background:var(--bg-card);border-radius:var(--radius-sm);cursor:pointer;transition:var(--transition-all);font-size:14px;font-family:var(--font-primary);font-weight:var(--font-weight-regular);color:var(--text-primary);display:flex;align-items:center}.btn-view.active{background:var(--color-primary);color:var(--text-light);border-color:var(--color-primary)}.btn-view:hover:not(.active){border-color:var(--color-primary);background:var(--bg-secondary)}.equipment-table-compact{width:100%;border-collapse:collapse;background:var(--bg-card);border-radius:var(--radius-lg);overflow:hidden;box-shadow:var(--shadow-sm);border:1px solid var(--border-color-light)}.equipment-table-compact thead{background:var(--bg-secondary)}.equipment-table-compact th,.equipment-table-compact td{padding:12px;text-align:left;border-bottom:1px solid var(--border-color)}.equipment-table-compact tbody tr:hover{background:var(--bg-secondary);cursor:pointer}.equipment-table-compact th{font-weight:var(--font-weight-semibold);color:var(--text-primary);font-family:var(--font-primary);font-size:var(--font-size-base)}.equipment-table-compact td{color:var(--text-primary);font-family:var(--font-primary);font-size:var(--font-size-base)}.equipment-table-compact tbody tr:last-child td{border-bottom:none}@media (max-width: 768px){.view-toggle{justify-content:center}.equipment-table-compact{font-size:.875rem}.equipment-table-compact th,.equipment-table-compact td{padding:8px}}.equipment-details{max-width:700px;width:100%}.equipment-details .modal-header{display:flex;justify-content:space-between;align-items:center;padding-bottom:var(--spacing-md);border-bottom:1px solid var(--border-color);margin-bottom:var(--spacing-lg)}.equipment-details .btn-close{background:none;border:none;font-size:2rem;color:var(--text-secondary);cursor:pointer;padding:0;line-height:1;width:32px;height:32px;display:flex;align-items:center;justify-content:center}.equipment-details .btn-close:hover{color:var(--text-primary)}.equipment-image-large{width:100%;height:250px;display:flex;align-items:center;justify-content:center;background:var(--gray-100);border-radius:var(--border-radius);margin-bottom:var(--spacing-lg)}.equipment-image-large .image-placeholder{font-size:3rem;color:var(--text-muted)}.equipment-details-info{display:flex;flex-direction:column;gap:var(--spacing-md)}.detail-row{display:flex;align-items:flex-start;gap:var(--spacing-md)}.detail-row .label{font-weight:600;color:var(--text-secondary);min-width:120px}.detail-row .value{color:var(--text-primary);flex:1}.detail-description{flex-direction:column;align-items:flex-start}.detail-description .value{margin-top:var(--spacing-sm);line-height:1.6}.modal-footer{display:flex;justify-content:flex-end;gap:var(--spacing-md);margin-top:var(--spacing-lg);padding-top:var(--spacing-lg);border-top:1px solid var(--border-color)}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.fade-in{animation:fadeIn .3s var(--easing-decelerate)}.gradient-primary{background:var(--color-primary-gradient)}.gradient-success{background:linear-gradient(135deg,var(--color-success) 0%,var(--color-success-light) 100%)}.gradient-secondary{background:linear-gradient(135deg,var(--color-secondary) 0%,var(--color-primary) 100%)}.department-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:var(--spacing-3xl);padding:var(--spacing-4xl) 0}.department-card{background:var(--bg-card);border-radius:var(--radius-lg);padding:var(--spacing-3xl);box-shadow:var(--shadow-sm);transition:var(--transition-shadow);border:1px solid var(--border-color-light)}.department-card:hover{box-shadow:var(--shadow-md);transform:translateY(-2px)}.assignment-layout{display:grid;grid-template-columns:300px 1fr;gap:var(--spacing-3xl)}.student-table-row.selected{background:var(--portal-admin-bg)}.bulk-action-bar{position:sticky;top:0;background:var(--bg-card);padding:var(--spacing-lg);box-shadow:var(--shadow-md);border-radius:var(--radius-lg);margin-bottom:var(--spacing-xl);display:flex;gap:var(--spacing-lg);align-items:center}.interdisciplinary-layout{display:grid;grid-template-columns:2fr 3fr;gap:var(--spacing-4xl)}.access-grant-form{background:var(--bg-card);padding:var(--spacing-3xl);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm)}.access-table{width:100%;border-collapse:collapse}.access-row.active{background:var(--color-success-pale)}.access-row.expired{background:var(--color-error-pale);opacity:.7}.interdisciplinary-badge{display:inline-flex;padding:4px 12px;background:var(--color-tertiary-light);color:var(--color-tertiary);border-radius:var(--radius-sm);font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);margin-top:var(--spacing-sm);align-items:center;gap:4px}.stat-badge{display:inline-flex;align-items:center;gap:4px;padding:4px 12px;border-radius:var(--radius-sm);font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold)}.stat-badge.equipment{background:var(--color-secondary-pale);color:var(--color-secondary)}.stat-badge.students{background:var(--color-info-pale);color:var(--color-info)}.access-badge{display:inline-block;padding:4px 12px;border-radius:var(--radius-sm);font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold)}.access-badge.permanent{background:var(--color-info-pale);color:var(--color-info)}.access-badge.temporary{background:var(--color-warning-pale);color:var(--color-warning)}@media (max-width: 768px){.department-grid,.assignment-layout,.interdisciplinary-layout{grid-template-columns:1fr}.bulk-action-bar{flex-direction:column;align-items:stretch}}.search-bar{position:relative;margin-bottom:var(--spacing-lg);width:100%;max-width:600px}.search-input{width:100%;padding:var(--spacing-md) var(--spacing-lg);font-size:var(--font-size-base);border:1px solid var(--border-color);border-radius:var(--radius-lg);background:var(--bg-primary);color:var(--text-primary);transition:var(--transition-all)}.search-input:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 3px var(--color-primary-pale)}.search-input::placeholder{color:var(--text-muted)}.btn-clear-search{position:absolute;right:var(--spacing-md);top:50%;transform:translateY(-50%);background:none;border:none;color:var(--text-muted);cursor:pointer;padding:var(--spacing-sm) var(--spacing-md);font-size:var(--font-size-sm);transition:var(--transition-color)}.btn-clear-search:hover{color:var(--text-primary)}.visually-hidden{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.pagination{margin-top:var(--spacing-2xl);margin-bottom:var(--spacing-2xl)}.pagination-info{text-align:center;color:var(--text-muted);font-size:var(--font-size-sm);margin-bottom:var(--spacing-md)}.pagination-controls{display:flex;align-items:center;justify-content:center;gap:var(--spacing-sm)}.pagination-pages{display:flex;gap:var(--spacing-xs);align-items:center}.pagination-ellipsis{color:var(--text-muted);padding:0 var(--spacing-xs)}.pagination-mobile{display:none}@media (max-width: 768px){.pagination-controls{display:none}.pagination-mobile{display:block;margin-top:var(--spacing-lg)}}.notification-center{position:relative}.notification-bell{position:relative;background:none;border:none;cursor:pointer;padding:var(--spacing-sm);font-size:var(--font-size-xl);color:var(--text-primary);transition:var(--transition-transform)}.notification-bell:hover{transform:scale(1.1)}.notification-badge{position:absolute;top:0;right:0;background:var(--color-error);color:#fff;font-size:10px;font-weight:var(--font-weight-bold);border-radius:10px;padding:2px 6px;min-width:18px;text-align:center}.notification-dropdown{position:absolute;top:calc(100% + var(--spacing-sm));right:0;width:380px;max-width:90vw;background:var(--bg-primary);border:1px solid var(--border-color);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);z-index:1000;max-height:500px;display:flex;flex-direction:column}.notification-header{display:flex;justify-content:space-between;align-items:center;padding:var(--spacing-lg);border-bottom:1px solid var(--border-color)}.notification-header h3{margin:0;font-size:var(--font-size-lg)}.btn-text{background:none;border:none;color:var(--color-primary);cursor:pointer;font-size:var(--font-size-sm);padding:var(--spacing-xs) var(--spacing-sm);transition:var(--transition-color)}.btn-text:hover{color:var(--color-primary-hover)}.notification-list{overflow-y:auto;max-height:400px}.notification-empty{padding:var(--spacing-2xl);text-align:center;color:var(--text-muted)}.notification-item{display:flex;align-items:flex-start;gap:var(--spacing-md);padding:var(--spacing-lg);border-bottom:1px solid var(--border-color);cursor:pointer;transition:var(--transition-bg);position:relative}.notification-item:hover{background:var(--bg-secondary)}.notification-item.read{opacity:.7}.notification-icon{width:36px;height:36px;border-radius:var(--radius-md);display:flex;align-items:center;justify-content:center;font-size:var(--font-size-lg);flex-shrink:0}.notification-icon.notification-success{background:var(--color-success-pale);color:var(--color-success)}.notification-icon.notification-error{background:var(--color-error-pale);color:var(--color-error)}.notification-icon.notification-warning{background:var(--color-warning-pale);color:var(--color-warning)}.notification-icon.notification-info{background:var(--color-info-pale);color:var(--color-info)}.notification-content{flex:1}.notification-message{margin:0;font-size:var(--font-size-sm);color:var(--text-primary);line-height:var(--line-height-normal)}.notification-time{display:block;font-size:var(--font-size-xs);color:var(--text-muted);margin-top:var(--spacing-xs)}.unread-dot{position:absolute;top:var(--spacing-lg);right:var(--spacing-lg);width:8px;height:8px;border-radius:50%;background:var(--color-primary)}.loading-skeleton{animation:pulse 1.5s ease-in-out infinite}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}.skeleton-card{background:var(--bg-primary);border:1px solid var(--border-color);border-radius:var(--radius-lg);padding:var(--spacing-lg);margin-bottom:var(--spacing-lg)}.skeleton-image{width:100%;height:200px;background:var(--bg-secondary);border-radius:var(--radius-md);margin-bottom:var(--spacing-md)}.skeleton-content{display:flex;flex-direction:column;gap:var(--spacing-md)}.skeleton-title{height:var(--space-lg);background:var(--bg-secondary);border-radius:var(--radius-sm);width:70%}.skeleton-text{height:var(--space-md);background:var(--bg-secondary);border-radius:var(--radius-sm);width:100%}.skeleton-button{height:40px;background:var(--bg-secondary);border-radius:var(--radius-md);margin-top:var(--spacing-md)}.skeleton-row td{padding:var(--spacing-md)}.skeleton-list-item{padding:var(--spacing-md);border-bottom:1px solid var(--border-color)}.skeleton-block{padding:var(--spacing-lg)}.error-boundary{min-height:400px;display:flex;align-items:center;justify-content:center;padding:var(--spacing-2xl)}.error-boundary-content{max-width:600px;text-align:center;background:var(--bg-primary);padding:var(--spacing-3xl);border-radius:var(--radius-xl);box-shadow:var(--shadow-lg)}.error-boundary-content h2{color:var(--color-error);margin-bottom:var(--spacing-lg)}.error-boundary-content p{color:var(--text-secondary);margin-bottom:var(--spacing-2xl)}.error-details{text-align:left;margin:var(--spacing-xl) 0;padding:var(--spacing-lg);background:var(--bg-secondary);border-radius:var(--radius-md);font-size:var(--font-size-sm)}.error-details summary{cursor:pointer;font-weight:var(--font-weight-semibold);margin-bottom:var(--spacing-md)}.error-details pre{overflow-x:auto;white-space:pre-wrap;word-wrap:break-word;color:var(--text-muted);font-size:var(--font-size-xs)}.error-actions{display:flex;gap:var(--spacing-md);justify-content:center}.booking-conflict-calendar{margin:var(--spacing-lg) 0;padding:var(--spacing-md);background:var(--bg-secondary);border-radius:var(--radius-lg)}.booking-conflict-calendar .calendar-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--spacing-md);gap:var(--spacing-sm)}.booking-conflict-calendar .calendar-header h3{margin:0;font-size:var(--font-size-lg);flex:1;text-align:center}.booking-conflict-calendar .calendar-legend{display:flex;gap:var(--spacing-md);margin-bottom:var(--spacing-md);flex-wrap:wrap;justify-content:center}.booking-conflict-calendar .legend-item{display:flex;align-items:center;gap:var(--spacing-xs);font-size:var(--font-size-xs)}.booking-conflict-calendar .legend-color{width:16px;height:16px;border-radius:var(--radius-sm);border:1px solid var(--border-color)}.booking-conflict-calendar .legend-color.available{background:var(--bg-primary)}.booking-conflict-calendar .legend-color.booked{background:var(--color-error-pale, #fee2e2)}.booking-conflict-calendar .legend-color.selected{background:var(--color-primary-pale, #dbeafe)}.booking-conflict-calendar .legend-color.past{background:var(--bg-tertiary, #e5e7eb)}.booking-conflict-calendar .calendar-grid{display:block!important;grid-template-columns:none!important;background:var(--bg-primary);border-radius:var(--radius-md);padding:var(--spacing-md)}.booking-conflict-calendar .calendar-days-header{display:grid;grid-template-columns:repeat(7,1fr);gap:var(--spacing-xs);margin-bottom:var(--spacing-sm)}.booking-conflict-calendar .calendar-day-name{text-align:center;font-weight:var(--font-weight-semibold);font-size:var(--font-size-xs);color:var(--text-muted);padding:var(--spacing-xs)}.booking-conflict-calendar .calendar-days{display:grid;grid-template-columns:repeat(7,1fr);gap:var(--spacing-xs)}.booking-conflict-calendar .calendar-info{margin-top:var(--spacing-md);font-size:var(--font-size-xs);color:var(--text-muted);text-align:center}.booking-conflict-calendar .calendar-day{aspect-ratio:1;display:flex;align-items:center;justify-content:center;border-radius:var(--radius-sm);font-size:var(--font-size-xs);background:var(--bg-primary, #ffffff);border:1px solid var(--border-color, #e5e7eb);cursor:default;transition:var(--transition-all);min-height:32px}.booking-conflict-calendar .calendar-day.empty{background:transparent;border:none}.booking-conflict-calendar .calendar-day.booked{background:var(--color-error-pale, #fee2e2);color:var(--color-error, #ef4444);font-weight:var(--font-weight-semibold)}.booking-conflict-calendar .calendar-day.selected{background:var(--color-primary-pale, #dbeafe);color:var(--color-primary, #3b82f6);font-weight:var(--font-weight-semibold);border-color:var(--color-primary, #3b82f6)}.booking-conflict-calendar .calendar-day.past{background:var(--bg-tertiary, #e5e7eb);color:var(--text-muted, #9ca3af);opacity:.5}@media (max-width: 768px){.booking-conflict-calendar .calendar-header{flex-direction:row;gap:var(--spacing-sm)}.booking-conflict-calendar .calendar-legend{justify-content:center;gap:var(--spacing-sm)}.booking-conflict-calendar .legend-item{font-size:10px}.booking-conflict-calendar .calendar-day{font-size:11px;min-height:28px}.booking-conflict-calendar .calendar-day-name{font-size:10px}}.bulk-action-bar{position:sticky;top:0;z-index:100;background:var(--color-primary-pale);border:2px solid var(--color-primary);border-radius:var(--radius-lg);padding:var(--spacing-lg);margin-bottom:var(--spacing-xl);display:flex;justify-content:space-between;align-items:center;gap:var(--spacing-lg);box-shadow:var(--shadow-md);animation:slideDown .3s ease-out}@keyframes slideDown{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.bulk-action-info{display:flex;align-items:center;gap:var(--spacing-md)}.selected-count{font-weight:var(--font-weight-semibold);color:var(--color-primary);font-size:var(--font-size-lg)}.bulk-action-buttons{display:flex;gap:var(--spacing-sm);flex-wrap:wrap}@media (max-width: 768px){.bulk-action-bar{flex-direction:column;align-items:stretch}.bulk-action-info{flex-direction:column;align-items:flex-start;gap:var(--spacing-sm)}.bulk-action-buttons{width:100%}.bulk-action-buttons button{flex:1}}.availability-filter{margin-bottom:var(--spacing-lg);padding:var(--spacing-lg);background:var(--bg-secondary);border-radius:var(--radius-lg)}.filter-label{margin-bottom:var(--spacing-sm)}.filter-options{display:flex;gap:var(--spacing-sm);flex-wrap:wrap;margin-bottom:var(--spacing-md)}.custom-date-picker{margin-top:var(--spacing-md);animation:slideDown .3s ease-out}.date-input{width:100%;max-width:240px;padding:var(--spacing-md);font-size:var(--font-size-base);border:1px solid var(--border-color);border-radius:var(--radius-md);background:var(--bg-primary);color:var(--text-primary);transition:var(--transition-all)}.date-input:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 3px var(--color-primary-pale)}.form-field{margin-bottom:var(--spacing-xl)}.form-label{display:block;font-weight:var(--font-weight-semibold);margin-bottom:var(--spacing-sm);color:var(--text-primary);font-size:var(--font-size-base)}.required-indicator{color:var(--color-error);margin-left:var(--spacing-xs);font-weight:var(--font-weight-bold)}.form-input,.form-textarea,.form-select{width:100%;padding:var(--spacing-md);font-size:var(--font-size-base);font-family:var(--font-primary);border:2px solid var(--border-color);border-radius:var(--radius-md);background:var(--bg-primary);color:var(--text-primary);transition:var(--transition-all)}.form-input:focus,.form-textarea:focus,.form-select:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 3px var(--color-primary-pale)}.form-input.error,.form-textarea.error,.form-select.error{border-color:var(--color-error)}.form-input.error:focus,.form-textarea.error:focus,.form-select.error:focus{box-shadow:0 0 0 3px var(--color-error-pale)}.form-input:disabled,.form-textarea:disabled,.form-select:disabled{background:var(--bg-tertiary);cursor:not-allowed;opacity:.6}.form-textarea{resize:vertical;min-height:100px}.form-select{cursor:pointer}.form-help-text{margin-top:var(--spacing-sm);font-size:var(--font-size-sm);color:var(--text-muted);line-height:var(--line-height-normal)}.form-error{margin-top:var(--spacing-sm);font-size:var(--font-size-sm);color:var(--color-error);font-weight:var(--font-weight-semibold);display:flex;align-items:center;gap:var(--spacing-xs)}.btn-quick-rebook{display:inline-flex;align-items:center;gap:var(--spacing-sm);padding:var(--spacing-sm) var(--spacing-md);font-size:var(--font-size-sm);background:var(--color-success-pale);color:var(--color-success);border:1px solid var(--color-success);border-radius:var(--radius-md);cursor:pointer;transition:var(--transition-all);font-weight:var(--font-weight-semibold)}.btn-quick-rebook:hover:not(:disabled){background:var(--color-success);color:#fff;transform:translateY(-1px);box-shadow:var(--shadow-sm)}.btn-quick-rebook:disabled{opacity:.5;cursor:not-allowed}.modal{position:fixed;top:0;left:0;right:0;bottom:0;z-index:1000;display:flex;align-items:center;justify-content:center;padding:var(--spacing-lg);overflow-y:auto}.modal-content{position:relative;background:var(--bg-primary);border-radius:var(--radius-xl);box-shadow:var(--shadow-2xl);width:100%;max-width:600px;max-height:85vh;display:flex;flex-direction:column;margin:auto}.modal-header{position:sticky;top:0;z-index:10;background:var(--bg-primary);border-bottom:1px solid var(--border-color);padding:var(--spacing-xl);border-radius:var(--radius-xl) var(--radius-xl) 0 0;display:flex;justify-content:space-between;align-items:center}.modal-body{flex:1;overflow-y:auto;padding:var(--spacing-xl)}.modal-footer{position:sticky;bottom:0;z-index:10;background:var(--bg-primary);border-top:1px solid var(--border-color);padding:var(--spacing-xl);border-radius:0 0 var(--radius-xl) var(--radius-xl);display:flex;gap:var(--spacing-md);justify-content:flex-end}@media (max-width: 768px){.modal{padding:0;align-items:flex-end}.modal-content{max-height:90vh;max-width:100%;border-radius:var(--radius-xl) var(--radius-xl) 0 0}.modal-header{border-radius:var(--radius-xl) var(--radius-xl) 0 0}.modal-footer{flex-direction:column;border-radius:0}.modal-footer button{width:100%}}.checkbox-cell{width:50px;text-align:center}.bulk-checkbox{width:20px;height:20px;cursor:pointer;accent-color:var(--color-primary)}.bulk-checkbox:focus{outline:2px solid var(--color-primary);outline-offset:2px}
