body:has(.login-page){background-color:var(--color-white)!important}.login-page{min-height:100vh;background:var(--color-white);display:flex;align-items:center;justify-content:center;padding:var(--space-xl) var(--space-md);font-family:var(--font-ui);box-sizing:border-box}.login-container{width:100%;max-width:400px;display:flex;flex-direction:column}.login-brand{display:flex;align-items:center;gap:var(--space-md);margin-bottom:var(--space-xl);padding-bottom:var(--space-lg);border-bottom:2px solid var(--text-primary)}.login-brand__link{display:block;flex-shrink:0}.login-brand__mark{height:44px;width:auto;display:block;filter:invert(1)}.login-brand__name{display:block;font-size:var(--font-size-body-lg);font-weight:var(--font-weight-bold);color:var(--text-primary);line-height:1.2;letter-spacing:var(--letter-spacing-tight)}.login-brand__dept{display:block;font-size:var(--font-size-caption);color:var(--color-muted);line-height:1.3}.login-card{background:transparent;border:none;border-radius:0;padding:0;box-shadow:none}.login-card__title{font-size:var(--font-size-display);font-weight:var(--font-weight-bold);color:var(--text-primary);margin:0 0 var(--space-sm) 0;line-height:var(--line-height-display);letter-spacing:var(--letter-spacing-tighter);font-family:var(--font-headline)}.login-card__subtitle{font-size:var(--font-size-body-sm);color:var(--color-accent);margin:0 0 var(--space-xl) 0;font-family:var(--font-ui);text-transform:uppercase;letter-spacing:var(--letter-spacing-widest);line-height:1}.login-field{display:flex;flex-direction:column;gap:var(--space-xs);margin-bottom:var(--space-lg)}.login-field__label{font-size:var(--font-size-caption);font-weight:var(--font-weight-bold);color:var(--text-primary);font-family:var(--font-ui);text-transform:uppercase;letter-spacing:var(--letter-spacing-widest)}.login-field__input{width:100%;height:var(--touch-target-comfortable, 48px);padding:var(--space-sm) var(--space-md);background:var(--color-white);border:2px solid var(--text-primary);border-radius:0;color:var(--text-primary);font-size:var(--font-size-body);font-family:var(--font-ui);box-sizing:border-box;transition:border-color var(--duration-fast) var(--ease-in-out)}.login-field__input::placeholder{color:var(--color-subtle)}.login-field__input:focus{outline:none;border-color:var(--color-accent);box-shadow:0 0 0 1px var(--color-accent)}.login-error{display:flex;align-items:center;gap:var(--space-sm);padding:var(--space-md-sm) var(--space-md);background:var(--color-error-bg);border:none;border-left:4px solid var(--color-error);border-radius:0;color:var(--color-error);font-size:var(--font-size-body-sm);font-family:var(--font-ui);margin-bottom:var(--space-lg)}.login-error svg{width:16px;height:16px;flex-shrink:0}.login-submit{display:flex;align-items:center;justify-content:center;gap:var(--space-sm);width:100%;height:var(--touch-target-spacious, 56px);padding:var(--space-md) var(--space-lg);background:var(--color-accent);color:var(--text-inverse);border:none;border-radius:0;font-size:var(--font-size-body);font-weight:var(--font-weight-bold);font-family:var(--font-ui);cursor:pointer;text-transform:uppercase;letter-spacing:var(--letter-spacing-wide);margin-top:var(--space-sm);transition:background var(--duration-fast) var(--ease-in-out),transform var(--duration-fast) var(--ease-in-out);box-sizing:border-box}.login-submit:hover{background:var(--color-accent-hover);transform:translateY(-1px)}.login-submit:active{transform:translateY(0)}.login-submit:focus-visible{outline:3px solid var(--text-primary);outline-offset:3px}.login-submit svg{width:18px;height:18px}.login-quick{margin-top:var(--space-xl);padding-top:var(--space-lg);border-top:1px solid var(--border-subtle)}.login-quick__label{display:block;font-size:var(--font-size-caption);font-family:var(--font-ui);color:var(--color-muted);text-transform:uppercase;letter-spacing:var(--letter-spacing-wide);margin-bottom:var(--space-sm)}.login-quick__buttons{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--space-xs)}.login-quick__btn{padding:var(--space-xs) var(--space-sm);background:transparent;border:1px solid var(--border-default)!important;border-radius:0;font-size:var(--font-size-caption);font-family:var(--font-ui);font-weight:var(--font-weight-medium);color:var(--text-secondary);text-transform:uppercase;letter-spacing:var(--letter-spacing-wide);cursor:pointer;text-align:center;transition:background var(--duration-fast) var(--ease-in-out),color var(--duration-fast) var(--ease-in-out);outline:none;box-shadow:none}.login-quick__btn:hover{background:var(--text-primary);color:var(--text-inverse);border-color:var(--text-primary)!important}.login-quick__btn:focus-visible{outline:2px solid var(--text-primary);outline-offset:2px}.login-footer{text-align:center;margin-top:var(--space-2xl);font-size:var(--font-size-caption);color:var(--color-muted);font-family:var(--font-ui)}.login-footer p{margin:0}.login-bg{display:none}@media (max-width: 640px){.login-page{padding:var(--space-lg) var(--space-md);align-items:flex-start;padding-top:var(--space-3xl)}.login-container{max-width:100%}.login-card__title{font-size:var(--font-size-h1)}}@media (max-width: 380px){.login-card__title{font-size:var(--font-size-h2)}}@media (prefers-reduced-motion: reduce){.login-submit,.login-field__input{transition:none!important}.login-submit:hover{transform:none}}@media (prefers-contrast: high){.login-field__input{border-width:3px}}:root{--light-bg-primary: var(--surface-base);--light-bg-secondary: var(--surface-container-low);--light-bg-tertiary: var(--surface-container-high);--light-bg-elevated: var(--surface-base);--light-text-primary: var(--text-primary);--light-text-secondary: var(--text-secondary);--light-text-tertiary: var(--text-tertiary);--light-text-inverse: var(--text-inverse);--light-accent-primary: var(--color-primary);--light-accent-primary-hover: var(--color-accent-hover);--light-accent-secondary: var(--color-secondary);--light-accent-tertiary: var(--color-tertiary);--light-border-light: var(--border-ghost);--light-border-medium: var(--border-ghost-strong);--light-border-dark: var(--color-subtle);--light-success: var(--color-success);--light-success-bg: var(--color-success-bg);--light-success-text: var(--color-success);--light-warning: var(--color-warning);--light-warning-bg: var(--color-warning-bg);--light-warning-text: var(--color-warning);--light-error: var(--color-error);--light-error-bg: var(--color-error-bg);--light-error-text: var(--color-error);--light-info: var(--color-info);--light-info-bg: var(--color-info-bg);--light-info-text: var(--color-info);--light-shadow-sm: var(--shadow-sm);--light-shadow-md: var(--shadow-md);--light-shadow-lg: var(--shadow-lg);--light-shadow-xl: var(--shadow-xl)}: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: var(--font-ui);--text-xs: var(--font-size-caption);--text-sm: var(--font-size-body-sm);--text-base: var(--font-size-body);--text-lg: var(--font-size-body-lg);--text-xl: var(--font-size-h4);--text-2xl: var(--font-size-h3);--text-3xl: var(--font-size-h2);--text-4xl: var(--font-size-h1);--leading-tight: 1.25;--leading-normal: 1.5;--leading-relaxed: 1.75}:root{--space-0: 0;--space-1: var(--space-sm);--space-2: var(--space-md);--space-3: var(--space-lg);--space-4: var(--space-xl);--space-5: 2.5rem;--space-6: var(--space-2xl);--space-8: var(--space-3xl);--space-10: 5rem;--space-12: var(--space-4xl)}:root{--transition-fast: var(--duration-fast) var(--ease-in-out);--transition-base: var(--duration-normal) var(--ease-in-out);--transition-slow: var(--duration-slow) var(--ease-in-out)}@media (prefers-reduced-motion: reduce){:root{--transition-fast: 0ms;--transition-base: 0ms;--transition-slow: 0ms}}:root{--breakpoint-sm: 640px;--breakpoint-md: 768px;--breakpoint-lg: 1024px;--breakpoint-xl: 1440px;--breakpoint-2xl: 2560px}body{background-color:var(--surface-base);color:var(--text-primary);font-family:var(--font-ui);font-size:var(--font-size-body);line-height:var(--line-height-body);transition:background-color var(--duration-slow) var(--ease-in-out),color var(--duration-slow) var(--ease-in-out)}h1,h2,h3,h4,h5,h6{font-family:var(--font-headline);color:var(--color-headings)}a,button{transition:color var(--duration-normal) var(--ease-in-out),background-color var(--duration-normal) var(--ease-in-out),border-color var(--duration-normal) var(--ease-in-out),opacity var(--duration-normal) var(--ease-in-out)}.mega-menu-dropdown{z-index:var(--z-modal, 9999)!important;position:absolute!important}.btn,button,@media (max-width: 768px){.btn-sm{min-height:44px;min-width:44px;padding:var(--space-2) var(--space-2)}}.btn-icon,.toast-close{min-height:var(--close-btn-size, 44px);min-width:var(--close-btn-size, 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:var(--overlay-10)}.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,.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)}.filter-chip,.chip{min-height:44px;padding:var(--space-sm) var(--space-md-sm);display:inline-flex;align-items:center;gap:var(--space-1)}.filter-chip-remove,.chip-remove{min-height:44px;min-width:44px;padding:var(--space-sm);display:inline-flex;align-items:center;justify-content:center}@media (min-width: 1024px){.filter-chip,.chip{min-height:32px;padding:var(--space-xs) var(--space-md-sm)}.filter-chip-remove,.chip-remove{min-height:24px;min-width:24px;padding:var(--space-xs)}}.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:var(--z-above, 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:44px;min-width:44px}}@media (min-width: 1024px){.btn-sm{min-height:36px;min-width:auto;padding:var(--space-xs) var(--space-md-sm)}.btn-icon{min-height:40px;min-width:40px}}html[data-density]{transition:background-color var(--duration-slow) var(--ease-in-out),color var(--duration-slow) var(--ease-in-out)}body,.app-container,.portal-layout,.sidebar,.main-content,.card,.glass,.glass-card,.glass-nav{transition:background-color var(--duration-slow) var(--ease-in-out),color var(--duration-slow) var(--ease-in-out),border-color var(--duration-slow) var(--ease-in-out)}@keyframes fadeSlideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.student-dashboard,.equipment-browse,.admin-main,.staff-main{animation:fadeIn .3s ease-out}.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-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)}.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:var(--shadow-lg)}.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,var(--overlay-white-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:var(--opacity-subtle)}}.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: #8e4837;--color-primary-rgb: 142, 72, 55;--color-primary-container: #ac604d;--color-secondary: #7b554c;--color-tertiary: #6b5e0c;--color-accent: #8e4837;--color-accent-hover: #7a3d2e;--color-accent-subtle: rgba(142, 72, 55, .08);--color-accent-border: rgba(142, 72, 55, .25);--color-white: #fff8f6;--color-surface: #fff8f6;--surface-base: #fff8f6;--surface-container-low: #f9f2f0;--surface-container: #f3ece9;--surface-container-high: #eee7e5;--surface-container-highest: #e8e1df;--color-border: rgba(217, 193, 188, .15);--color-border-solid: #d9c1bc;--color-subtle: #86736e;--color-muted: #54433f;--color-body-text: #1e1b1a;--color-headings: #1e1b1a;--color-on-surface-variant: #54433f;--color-success: #2d7a5f;--color-success-bg: #e6f5ef;--color-warning: #b8860b;--color-warning-bg: #fdf6e3;--color-error: #ba1a1a;--color-error-bg: #ffdad6;--color-info: #4a6fa5;--color-info-bg: #e3edf7;--color-available: #2d7a5f;--color-unavailable: #ba1a1a;--color-reserved: #b8860b;--color-maintenance: #86736e;--bg-primary: var(--surface-base);--bg-secondary: var(--surface-container-low);--bg-tertiary: var(--surface-container-high);--bg-card: var(--surface-base);--bg-modal: var(--surface-base);--bg-overlay: rgba(30, 27, 26, .5);--text-primary: #1e1b1a;--text-secondary: #54433f;--text-tertiary: #86736e;--text-inverse: #fff8f6;--color-success-pale: #e6f5ef;--color-error-pale: #ffdad6;--color-warning-pale: #fdf6e3;--color-info-pale: #e3edf7;--color-success-subtle: rgba(45, 122, 95, .1);--color-success-subtle-strong: rgba(45, 122, 95, .15);--color-success-border: rgba(45, 122, 95, .2);--color-success-border-strong: rgba(45, 122, 95, .3);--color-error-subtle: rgba(186, 26, 26, .1);--color-error-subtle-strong: rgba(186, 26, 26, .15);--color-error-border: rgba(186, 26, 26, .2);--color-error-border-strong: rgba(186, 26, 26, .3);--color-warning-subtle: rgba(184, 134, 11, .1);--color-warning-subtle-strong: rgba(184, 134, 11, .15);--color-warning-border: rgba(184, 134, 11, .2);--color-warning-border-strong: rgba(184, 134, 11, .3);--cal-available-bg: #2d7a5f;--cal-available-text: #ffffff;--cal-partial-bg: #b8860b;--cal-partial-text: #ffffff;--cal-full-bg: #ba1a1a;--cal-full-text: #ffffff;--cal-pending-bg: #4a6fa5;--cal-pending-text: #ffffff;--cal-maintenance-bg: #9e9e9e;--cal-maintenance-text: #ffffff;--color-info-subtle: rgba(74, 111, 165, .1);--color-info-subtle-strong: rgba(74, 111, 165, .15);--color-info-border: rgba(74, 111, 165, .2);--color-info-border-strong: rgba(74, 111, 165, .3);--color-primary-subtle: rgba(142, 72, 55, .1);--color-primary-subtle-strong: rgba(142, 72, 55, .15);--color-primary-border: rgba(142, 72, 55, .2);--color-primary-border-strong: rgba(142, 72, 55, .3);--color-primary-50: rgba(142, 72, 55, .5);--color-ai-subtle: rgba(142, 72, 55, .1);--color-ai-border: rgba(142, 72, 55, .2);--color-ai-glow: rgba(142, 72, 55, .3);--overlay-4: rgba(30, 27, 26, .04);--overlay-6: rgba(30, 27, 26, .06);--overlay-8: rgba(30, 27, 26, .08);--overlay-10: rgba(30, 27, 26, .1);--overlay-15: rgba(30, 27, 26, .15);--overlay-40: rgba(30, 27, 26, .4);--overlay-50: rgba(30, 27, 26, .5);--overlay-white-5: rgba(255, 248, 246, .05);--overlay-white-10: rgba(255, 248, 246, .1);--overlay-white-15: rgba(255, 248, 246, .15);--overlay-white-20: rgba(255, 248, 246, .2);--overlay-white-30: rgba(255, 248, 246, .3);--overlay-white-40: rgba(255, 248, 246, .4);--overlay-white-50: rgba(255, 248, 246, .5);--overlay-white-70: rgba(255, 248, 246, .7);--overlay-white-85: rgba(255, 248, 246, .85);--overlay-white-90: rgba(255, 248, 246, .9);--badge-available-bg: var(--color-primary-50);--badge-available-text: var(--text-inverse);--badge-unavailable-bg: var(--color-error-subtle);--badge-unavailable-text: var(--color-error);--badge-warning-bg: var(--color-warning-subtle);--badge-warning-text: var(--color-warning);--border-ghost: rgba(217, 193, 188, .15);--border-ghost-strong: rgba(217, 193, 188, .3);--input-border: rgba(134, 115, 110, .2);--input-border-focus: var(--color-primary);--input-bg: transparent;--btn-gradient: linear-gradient(135deg, var(--color-primary), var(--color-primary-container));--btn-primary-bg: var(--btn-gradient);--btn-primary-text: var(--text-inverse);--btn-secondary-bg: transparent;--btn-secondary-text: var(--color-primary);--btn-tertiary-bg: var(--surface-container-high);--btn-tertiary-text: var(--text-primary);--table-cell-padding: var(--space-sm) var(--space-md);--table-header-bg: var(--surface-container-low);--table-header-font: var(--font-label);--table-header-size: var(--font-size-label-sm);--table-header-weight: var(--font-weight-bold);--table-header-color: var(--text-secondary);--table-header-transform: uppercase;--table-header-tracking: var(--letter-spacing-widest);--table-body-font: var(--font-ui);--table-body-size: var(--font-size-body);--table-body-color: var(--text-primary);--table-border: var(--border-ghost);--table-hover-bg: var(--surface-container-low);--table-radius: var(--radius-xl);--glass-bg: rgba(255, 248, 246, .8);--glass-bg-subtle: rgba(255, 248, 246, .5);--glass-bg-strong: rgba(255, 248, 246, .95);--glass-blur: 12px;--glass-blur-light: blur(8px);--glass-blur-heavy: blur(20px);--glass-border: rgba(134, 115, 110, .1);--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;--space-section: var(--space-lg);--space-card-padding: var(--space-md);--space-page-x: var(--space-md);--space-page-y: var(--space-lg);--space-editorial-indent: 0;--font-headline: "Noto Serif", Georgia, serif;--font-ui: "Manrope", sans-serif;--font-body: "Manrope", sans-serif;--font-headings: "Noto Serif", Georgia, serif;--font-mono: "Courier New", Courier, monospace;--font-label: "Manrope", sans-serif;--font-weight-light: 300;--font-weight-regular: 400;--font-weight-medium: 500;--font-weight-semibold: 600;--font-weight-bold: 700;--font-weight-black: 900;--letter-spacing-tighter: -.03em;--letter-spacing-tight: -.02em;--letter-spacing-normal: 0;--letter-spacing-wide: .01em;--letter-spacing-widest: .05em;--font-size-display-lg: 3.5rem;--line-height-display-lg: 1.1;--font-weight-display-lg: 400;--font-size-display: 2.5rem;--line-height-display: 1.1;--font-weight-display: 400;--font-size-h1: 2.25rem;--line-height-h1: 1.2;--font-weight-h1: 700;--font-size-h2: 1.75rem;--line-height-h2: 1.3;--font-weight-h2: 400;--font-size-h3: 1.375rem;--line-height-h3: 1.4;--font-weight-h3: 600;--font-size-h4: 1.125rem;--line-height-h4: 1.4;--font-weight-h4: 600;--font-size-body-lg: 1rem;--line-height-body-lg: 1.6;--font-weight-body-lg: 400;--font-size-body: .875rem;--line-height-body: 1.5;--font-weight-body: 400;--font-size-body-sm: .8125rem;--line-height-body-sm: 1.5;--font-weight-body-sm: 400;--font-size-caption: .75rem;--line-height-caption: 1.4;--font-weight-caption: 500;--font-size-label: .75rem;--font-size-label-sm: .625rem;--font-size-page-title: 1.875rem;--font-size-section-title: 1.25rem;--radius-none: 0;--radius-sm: .125rem;--radius-DEFAULT: .125rem;--radius-md: .25rem;--radius-lg: .375rem;--radius-xl: .5rem;--radius-2xl: .75rem;--radius-full: .75rem;--radius-card: var(--radius-xl);--radius-circle: 50%;--shadow-none: none;--shadow-sm: 0 2px 8px rgba(30, 27, 26, .03);--shadow-DEFAULT: 0 4px 16px rgba(30, 27, 26, .04);--shadow-md: 0 4px 16px rgba(30, 27, 26, .04);--shadow-lg: 0 8px 32px rgba(30, 27, 26, .04);--shadow-xl: 0 8px 32px rgba(30, 27, 26, .06);--shadow-float: 0 8px 32px rgba(30, 27, 26, .06);--shadow-primary: 0 8px 24px rgba(142, 72, 55, .2);--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);--ease-smooth: cubic-bezier(.4, 0, .2, 1);--ease-spring: cubic-bezier(.68, -.55, .265, 1.55);--duration-instant: .1s;--duration-fast: .15s;--duration-normal: .2s;--duration-medium: .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: 28rem;--container-tablet: 100%;--container-desktop: 1200px;--container-desktop-lg: 1440px;--container-desktop-xl: 1920px;--container-4k: 2400px;--z-base: 0;--z-above: 1;--z-above-2: 2;--z-local: 10;--z-dropdown: 1000;--z-sticky: 1020;--z-fixed: 1030;--z-modal-backdrop: 1040;--z-modal: 1050;--z-popover: 1060;--z-tooltip: 1070;--semantic-success: var(--color-success);--semantic-error: var(--color-error);--semantic-warning: var(--color-warning);--semantic-info: var(--color-info);--focus-ring-width: 3px;--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;--close-btn-size: var(--touch-target-min);--close-btn-font-size: 2rem;--opacity-disabled: .38;--opacity-muted: .5;--opacity-subtle: .6;--opacity-hover: .8;--nav-height: 64px;--bottom-nav-height: 60px;--safe-area-bottom: env(safe-area-inset-bottom, 0px);--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)}@media (min-width: 768px){:root{--space-section: var(--space-2xl);--space-card-padding: var(--space-xl);--space-page-x: var(--space-xl);--space-page-y: var(--space-2xl);--space-editorial-indent: 5.5rem;--font-size-page-title: 2.5rem;--font-size-section-title: 1.75rem}}@media (min-width: 1024px){:root{--space-section: var(--space-3xl);--space-card-padding: var(--space-2xl);--space-page-x: var(--space-2xl);--space-page-y: var(--space-3xl);--space-editorial-indent: 8.5rem;--font-size-page-title: 3.5rem;--font-size-section-title: 1.75rem}}:root{--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-subtle: var(--shadow-sm);--shadow: var(--shadow-DEFAULT);--shadow-xs: var(--shadow-sm);--shadow-2xl: var(--shadow-xl);--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);--density-page-padding: var(--space-page-x);--density-section-gap: var(--space-section);--density-card-padding: var(--space-card-padding);--density-card-gap: var(--space-md);--density-inline-gap: var(--space-sm);--density-input-height: 48px;--density-button-height: 44px;--density-button-padding: var(--space-sm) var(--space-md);--density-table-cell-padding: var(--space-sm) var(--space-md);--density-nav-item-padding: var(--space-sm) var(--space-md);--density-body-size: var(--font-size-body);--density-heading-size: var(--font-size-h3);--density-caption-size: var(--font-size-body-sm);--density-line-height: 1.5;--border-color-light: var(--border-ghost);--border-color-focus: var(--color-primary);--color-border-light: var(--border-ghost);--theme-border: var(--border-ghost);--bg-hover: var(--surface-container-low);--card-bg: var(--surface-base);--color-surface-hover: var(--surface-container-low);--surface: var(--surface-base);--text-light: var(--text-tertiary);--text-muted: var(--color-subtle);--text-subtle: var(--color-subtle);--color-text-primary: var(--text-primary);--color-text-secondary: var(--text-secondary);--color-text-tertiary: var(--text-tertiary);--color-primary-hover: var(--color-accent-hover);--color-primary-light: var(--color-primary-subtle);--color-primary-pale: var(--color-primary-subtle);--color-primary-gradient: var(--btn-gradient);--color-primary-100: var(--color-primary-subtle);--color-primary-200: var(--color-primary-subtle-strong);--color-primary-300: var(--color-primary-border);--color-primary-400: var(--color-primary-border-strong);--color-primary-500: var(--color-primary);--color-primary-600: var(--color-primary);--color-primary-700: var(--color-accent-hover);--color-success-light: var(--color-success-bg);--color-success-dark: var(--color-success);--color-success-hover: var(--color-success);--color-success-50: var(--color-success-pale);--color-success-200: var(--color-success-subtle);--color-success-300: var(--color-success-subtle-strong);--color-success-500: var(--color-success);--color-success-600: var(--color-success);--color-success-700: var(--color-success);--success-bg: var(--color-success-bg);--color-error-light: var(--color-error-bg);--color-error-dark: var(--color-error);--color-error-darker: var(--color-error);--color-error-hover: var(--color-error);--color-error-50: var(--color-error-pale);--color-error-200: var(--color-error-subtle);--color-error-500: var(--color-error);--color-error-600: var(--color-error);--color-error-700: var(--color-error);--error-bg: var(--color-error-bg);--color-warning-light: var(--color-warning-bg);--color-warning-dark: var(--color-warning);--color-warning-darker: var(--color-warning);--color-warning-500: var(--color-warning);--color-warning-600: var(--color-warning);--warning-bg: var(--color-warning-bg);--color-info-light: var(--color-info-bg);--color-info-dark: var(--color-info);--color-subtle-dark: var(--text-secondary);--color-overlay-dark: var(--overlay-50);--color-secondary-pale: var(--color-primary-subtle);--color-tertiary-light: var(--color-warning-subtle);--color-neutral-200: var(--surface-container-high);--color-neutral-300: var(--surface-container-highest);--color-neutral-400: var(--color-subtle);--color-neutral-500: var(--text-tertiary);--color-neutral-600: var(--text-secondary);--color-neutral-700: var(--text-primary);--color-neutral-900: var(--text-primary);--gray-100: var(--surface-container-high);--padding-input: var(--space-sm) var(--space-md);--padding-card-lg: var(--space-xl);--space-sm-md: var(--space-md-sm);--font-weight-normal: var(--font-weight-regular);--line-height-normal: 1.5;--line-height-relaxed: 1.6;--transition-bg: background-color var(--duration-normal) var(--ease-in-out);--transition-border: border-color var(--duration-normal) var(--ease-in-out);--transition-color: color var(--duration-normal) var(--ease-in-out);--transition-shadow: box-shadow var(--duration-normal) var(--ease-in-out);--transition-transform: transform var(--duration-normal) var(--ease-in-out);--transition-duration: var(--duration-normal);--shadow-focus: 0 0 0 3px var(--color-primary-subtle);--radius-pill: var(--radius-2xl);--ease-in-quad: var(--ease-in);--ease-out-back: var(--ease-bounce);--easing-decelerate: var(--ease-out);--z-fab: 1030;--room-available: var(--color-success);--room-available-light: var(--color-success-bg);--room-available-glow: var(--color-success-subtle);--room-booked: var(--color-error);--room-booked-light: var(--color-error-bg);--room-partial: var(--color-warning);--room-partial-light: var(--color-warning-bg);--room-partial-glow: var(--color-warning-subtle);--room-selected: var(--color-primary);--room-selected-light: var(--color-primary-subtle);--room-selected-glow: var(--color-primary-border);--ai-glow-primary: var(--color-ai-glow);--ai-gradient-primary: var(--btn-gradient);--ai-gradient-shimmer: linear-gradient(90deg, transparent, var(--overlay-white-20), transparent);--ai-gradient-thinking: linear-gradient(135deg, var(--color-primary-subtle), var(--color-info-subtle));--ai-shimmer-duration: 2s;--ai-typing-duration: 1.5s;--dept-admin-accent-dark: var(--color-accent-hover);--dept-admin-bg-light: var(--surface-container-low);--dept-bg-secondary: var(--surface-container-low);--dept-bg-tertiary: var(--surface-container-high);--dept-border-light: var(--border-ghost);--dept-text-primary: var(--text-primary);--master-accent-dark: var(--color-accent-hover);--master-admin-accent-dark: var(--color-accent-hover);--master-admin-bg-light: var(--surface-container-low);--portal-admin-bg: var(--surface-container-low);--fade-distance: 20px;--fade-duration: var(--duration-slow);--slide-distance: 30px;--slide-duration: var(--duration-slow);--scale-duration: var(--duration-slow);--stagger-delay: .1s}:root{--color-surface-interactive: var(--surface-base);--color-surface-interactive-hover: var(--surface-container-low);--color-surface-interactive-active: var(--surface-container-high);--color-surface-elevated: var(--surface-base);--color-surface-elevated-hover: var(--surface-container-low);--color-surface-disabled: var(--surface-container-high);--color-text-disabled: var(--color-subtle);--color-border-disabled: var(--surface-container-highest);--color-text-on-primary: var(--text-inverse);--color-text-on-secondary: var(--text-inverse);--color-text-on-dark: var(--text-inverse);--color-text-on-light: var(--color-headings);--color-link: var(--color-primary);--color-link-hover: var(--color-accent-hover);--color-link-visited: var(--color-secondary);--color-placeholder: var(--color-subtle);--color-state-draft: var(--color-subtle);--color-state-draft-bg: var(--surface-container-high);--color-state-draft-text: var(--color-muted);--color-state-in-progress: var(--color-info);--color-state-in-progress-bg: var(--color-info-bg);--color-state-in-progress-text: var(--color-info);--color-state-limited: var(--color-warning);--color-state-limited-bg: var(--color-warning-bg);--color-state-limited-text: var(--color-warning);--color-state-deprecated: var(--color-subtle);--color-state-deprecated-bg: var(--surface-container-low);--color-state-deprecated-text: var(--color-muted);--color-state-urgent: var(--color-error);--color-state-urgent-bg: var(--color-error-bg);--color-state-urgent-text: var(--color-error);--state-hover-overlay: rgba(var(--color-primary-rgb), .08);--state-active-overlay: rgba(var(--color-primary-rgb), .12);--state-focus-overlay: rgba(var(--color-primary-rgb), .1);--state-disabled-overlay: rgba(30, 27, 26, .38);--state-overlay-light-hover: rgba(255, 248, 246, .1);--state-overlay-light-active: rgba(255, 248, 246, .2);--state-overlay-dark-hover: rgba(30, 27, 26, .1);--state-overlay-dark-active: rgba(30, 27, 26, .2);--color-border-interactive: var(--border-ghost);--color-border-interactive-hover: var(--border-ghost-strong);--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: var(--surface-container-high);--color-divider-strong: var(--border-ghost-strong);--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: 36px;--btn-height-md: var(--density-button-height);--btn-height-lg: var(--touch-target-comfortable);--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) 0;--input-padding-md: var(--space-md) 0;--input-padding-lg: var(--space-md) 0;--input-height-sm: 36px;--input-height-md: var(--touch-target-comfortable);--input-height-lg: var(--touch-target-spacious);--input-border-width: 1px;--input-border-radius: 0;--card-padding-sm: var(--space-md);--card-padding-md: var(--space-card-padding);--card-padding-lg: var(--space-xl);--card-border-width: 0;--card-border-radius: var(--radius-card);--modal-padding: var(--space-card-padding);--modal-max-width-sm: 400px;--modal-max-width-md: 600px;--modal-max-width-lg: 800px;--modal-max-width-xl: 1200px;--modal-backdrop-color: var(--bg-overlay);--modal-border-radius: var(--radius-xl);--tooltip-bg: var(--text-primary);--tooltip-text: var(--text-inverse);--tooltip-padding: var(--space-xs) var(--space-md);--tooltip-border-radius: var(--radius-md);--tooltip-font-size: var(--font-size-caption);--badge-padding: var(--space-2xs) var(--space-sm);--badge-font-size: var(--font-size-label-sm);--badge-border-radius: var(--radius-2xl);--badge-font-weight: var(--font-weight-bold);--badge-bg: var(--surface-container-highest);--badge-text: var(--color-on-surface-variant);--progress-height: 8px;--progress-bg: var(--surface-container-high);--progress-fill: var(--color-primary);--progress-border-radius: var(--radius-2xl);--font-size-hero: var(--font-size-display-lg);--line-height-hero: 1.1;--font-size-section: var(--font-size-h2);--line-height-section: 1.2;--font-size-subsection: var(--font-size-h3);--line-height-subsection: 1.3;--font-size-label: var(--font-size-caption);--line-height-label: 1.4;--font-weight-label: var(--font-weight-bold);--font-size-help: var(--font-size-caption);--line-height-help: 1.4;--color-help-text: var(--color-subtle);--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: var(--nav-height);--header-height-desktop: var(--nav-height);--duration-immediate: var(--duration-instant);--duration-quick: var(--duration-fast);--duration-base: var(--duration-normal);--duration-moderate: var(--duration-slow);--ease-enter: var(--ease-out);--ease-exit: var(--ease-in);--ease-move: var(--ease-in-out);--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: var(--focus-ring-width);--focus-outline-offset: var(--focus-ring-offset);--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;--grid-gap-sm: var(--space-md);--grid-gap-md: var(--space-lg);--grid-gap-lg: var(--space-xl)}@media (prefers-reduced-motion: reduce){:root{--duration-immediate: 0ms;--duration-quick: 0ms;--duration-base: 0ms;--duration-moderate: 0ms}}.student-portal{--role-accent: var(--color-primary);--role-accent-hover: var(--color-accent-hover);--role-accent-light: var(--color-accent-subtle);--role-accent-rgb: var(--color-primary-rgb);--role-gradient-start: var(--color-primary);--role-gradient-end: var(--color-primary-container);--role-bg-primary: var(--surface-base);--role-bg-secondary: var(--surface-container-low);--role-bg-tertiary: var(--surface-container-high);--theme-bg-primary: var(--surface-base);--theme-bg-secondary: var(--surface-container-low);--theme-bg-tertiary: var(--surface-container-high);--theme-accent-primary: var(--color-primary);--theme-accent-primary-hover: var(--color-accent-hover);--theme-text-primary: var(--text-primary);--theme-text-secondary: var(--text-secondary);--theme-text-tertiary: var(--text-tertiary);--theme-text-inverse: var(--text-inverse);--theme-border-light: var(--border-ghost);--theme-border-medium: var(--border-ghost-strong);--theme-shadow-sm: var(--shadow-sm);--theme-shadow-md: var(--shadow-md);--theme-shadow-lg: var(--shadow-lg);--theme-success-bg: var(--color-success-bg);--theme-success-text: var(--color-success);--theme-warning-bg: var(--color-warning-bg);--theme-warning-text: var(--color-warning);--theme-error-bg: var(--color-error-bg);--theme-error-text: var(--color-error);--theme-info-bg: var(--color-info-bg);--theme-info-text: var(--color-info);--color-accent: var(--color-primary);--color-accent-hover: var(--color-accent-hover);--color-accent-subtle: rgba(var(--color-primary-rgb), .06);--color-accent-border: rgba(var(--color-primary-rgb), .25)}.staff-portal{--role-accent: var(--color-secondary);--role-accent-hover: var(--color-accent-hover);--role-accent-light: var(--color-accent-subtle);--role-accent-rgb: 123, 85, 76;--role-gradient-start: var(--color-secondary);--role-gradient-end: var(--color-accent-hover);--role-bg-primary: var(--surface-base);--role-bg-secondary: var(--surface-container-low);--role-bg-tertiary: var(--surface-container-high);--role-border-light: var(--border-ghost);--theme-bg-primary: var(--surface-base);--theme-bg-secondary: var(--surface-container-low);--theme-bg-tertiary: var(--surface-container-high);--theme-accent-primary: var(--color-secondary);--theme-accent-primary-hover: var(--color-accent-hover);--theme-text-primary: var(--text-primary);--theme-text-secondary: var(--text-secondary);--theme-text-tertiary: var(--text-tertiary);--theme-text-inverse: var(--text-inverse);--theme-border-light: var(--border-ghost);--theme-border-medium: var(--border-ghost-strong);--theme-shadow-sm: var(--shadow-sm);--theme-shadow-md: var(--shadow-md);--theme-shadow-lg: var(--shadow-lg);--theme-success-bg: var(--color-success-bg);--theme-success-text: var(--color-success);--theme-warning-bg: var(--color-warning-bg);--theme-warning-text: var(--color-warning);--theme-error-bg: var(--color-error-bg);--theme-error-text: var(--color-error);--theme-info-bg: var(--color-info-bg);--theme-info-text: var(--color-info);--color-accent: var(--color-secondary);--color-accent-hover: var(--color-accent-hover);--color-accent-subtle: var(--color-accent-subtle);--color-accent-border: var(--color-primary-border)}.dept-admin-portal{--role-accent: var(--color-primary);--role-accent-hover: var(--color-accent-hover);--role-accent-light: var(--color-accent-subtle);--role-accent-rgb: var(--color-primary-rgb);--role-gradient-start: var(--color-primary);--role-gradient-end: var(--color-tertiary);--role-bg-primary: var(--surface-base);--role-bg-secondary: var(--surface-container-low);--role-bg-tertiary: var(--surface-container-high);--role-border-light: var(--border-ghost);--theme-bg-primary: var(--surface-base);--theme-bg-secondary: var(--surface-container-low);--theme-bg-tertiary: var(--surface-container-high);--theme-accent-primary: var(--color-primary);--theme-accent-primary-hover: var(--color-accent-hover);--theme-text-primary: var(--text-primary);--theme-text-secondary: var(--text-secondary);--theme-text-tertiary: var(--text-tertiary);--theme-text-inverse: var(--text-inverse);--theme-border-light: var(--border-ghost);--theme-border-medium: var(--border-ghost-strong);--theme-shadow-sm: var(--shadow-sm);--theme-shadow-md: var(--shadow-md);--theme-shadow-lg: var(--shadow-lg);--theme-success-bg: var(--color-success-bg);--theme-success-text: var(--color-success);--theme-warning-bg: var(--color-warning-bg);--theme-warning-text: var(--color-warning);--theme-error-bg: var(--color-error-bg);--theme-error-text: var(--color-error);--theme-info-bg: var(--color-info-bg);--theme-info-text: var(--color-info);--color-accent: var(--color-primary);--color-accent-hover: var(--color-accent-hover);--color-accent-subtle: rgba(var(--color-primary-rgb), .06);--color-accent-border: rgba(var(--color-primary-rgb), .25)}.master-admin-portal{--role-accent: var(--color-tertiary);--role-accent-hover: var(--color-accent-hover);--role-accent-light: var(--color-accent-subtle);--role-accent-rgb: 107, 94, 12;--role-gradient-start: var(--color-tertiary);--role-gradient-end: var(--color-accent-hover);--role-bg-primary: var(--surface-base);--role-bg-secondary: var(--surface-container-low);--role-bg-tertiary: var(--surface-container-high);--master-accent-primary: var(--color-tertiary);--master-accent-light: var(--color-primary-subtle);--master-bg-primary: var(--surface-base);--master-bg-secondary: var(--surface-container-low);--master-bg-tertiary: var(--surface-container-high);--master-bg-hover: var(--color-accent-subtle);--master-text-primary: var(--text-primary);--master-text-secondary: var(--text-secondary);--master-text-tertiary: var(--text-tertiary);--master-text-inverse: var(--text-inverse);--master-border-light: var(--border-ghost);--master-border-medium: var(--border-ghost-strong);--theme-bg-primary: var(--surface-base);--theme-bg-secondary: var(--surface-container-low);--theme-bg-tertiary: var(--surface-container-high);--theme-accent-primary: var(--color-tertiary);--theme-accent-primary-hover: var(--color-accent-hover);--theme-text-primary: var(--text-primary);--theme-text-secondary: var(--text-secondary);--theme-text-tertiary: var(--text-tertiary);--theme-text-inverse: var(--text-inverse);--theme-border-light: var(--border-ghost);--theme-border-medium: var(--border-ghost-strong);--theme-shadow-sm: var(--shadow-sm);--theme-shadow-md: var(--shadow-md);--theme-shadow-lg: var(--shadow-lg);--theme-success-bg: var(--color-success-bg);--theme-success-text: var(--color-success);--theme-warning-bg: var(--color-warning-bg);--theme-warning-text: var(--color-warning);--theme-error-bg: var(--color-error-bg);--theme-error-text: var(--color-error);--theme-info-bg: var(--color-info-bg);--theme-info-text: var(--color-info);--color-accent: var(--color-tertiary);--color-accent-hover: var(--color-accent-hover);--color-accent-subtle: var(--color-accent-subtle);--color-accent-border: var(--color-accent-border);--master-success: var(--color-success);--master-success-bg: var(--color-success-bg);--master-warning: var(--color-warning);--master-warning-bg: var(--color-warning-bg);--master-error: var(--color-error);--master-error-bg: var(--color-error-bg);--master-info: var(--color-info);--master-info-bg: var(--color-info-bg)}.master-admin-portal{background:var(--surface-container-low);color:var(--text-primary)}.master-admin-portal .admin-header{background:var(--glass-bg);-webkit-backdrop-filter:blur(var(--glass-blur));backdrop-filter:blur(var(--glass-blur));border-bottom:1px solid var(--glass-border)}.master-admin-portal .admin-nav{background:var(--surface-base);border-bottom:1px solid var(--border-ghost)}.master-admin-portal .admin-nav-link{color:var(--text-secondary)}.master-admin-portal .admin-nav-link:after{content:"";position:absolute;bottom:0;left:50%;width:0;height:2px;background:var(--color-tertiary);transition:all var(--duration-fast) var(--ease-in-out);transform:translate(-50%)}.master-admin-portal .admin-nav-link:hover{color:var(--color-tertiary);background:var(--master-bg-hover)}.master-admin-portal .admin-nav-link:hover:after{width:100%}.master-admin-portal .admin-nav-link.active{color:var(--color-tertiary)}.master-admin-portal .admin-nav-link.active:after{width:100%}.master-admin-portal .admin-stat-card{background:var(--surface-base);border:none}.master-admin-portal .admin-stat-card:before{background:var(--color-tertiary)}.master-admin-portal .admin-stat-card:hover{background:var(--surface-container-low)}.master-admin-portal .admin-stat-number{color:var(--color-tertiary)}.master-admin-portal .admin-stat-label{color:var(--text-secondary)}.master-admin-portal .modal-content{background:var(--surface-base);border:none;color:var(--text-primary)}.master-admin-portal .modal-header{border-bottom:1px solid var(--border-ghost)}.master-admin-portal .modal-footer{border-top:1px solid var(--border-ghost);background:var(--surface-container-high)}.master-admin-portal .status-badge.available{background:var(--color-primary-50);color:var(--text-inverse);border:none}.master-admin-portal .status-badge.booked,.master-admin-portal .status-badge.maintenance{background:var(--color-warning-subtle);color:var(--color-warning);border:none}.master-admin-portal ::-webkit-scrollbar{width:8px;height:8px}.master-admin-portal ::-webkit-scrollbar-track{background:var(--surface-container-high)}.master-admin-portal ::-webkit-scrollbar-thumb{background:var(--border-ghost-strong);border-radius:var(--radius-2xl)}.master-admin-portal ::-webkit-scrollbar-thumb:hover{background:var(--color-tertiary)}.master-admin-portal *:focus-visible{outline:var(--focus-ring-width) solid var(--color-tertiary);outline-offset:var(--focus-ring-offset)}.master-admin-portal .loading-skeleton{background:linear-gradient(90deg,var(--surface-container-high) 0%,var(--surface-container-low) 50%,var(--surface-container-high) 100%);background-size:200% 100%;animation:skeleton-pulse 1.5s ease-in-out infinite}@keyframes skeleton-pulse{0%{background-position:200% 0}to{background-position:-200% 0}}@media (prefers-reduced-motion: reduce){.master-admin-portal *{animation-duration:.01ms!important;transition-duration:.01ms!important}}.btn{font-family:var(--font-ui);font-weight:var(--font-weight-semibold);font-size:var(--font-size-body);line-height:1;text-align:center;text-decoration:none;display:inline-flex;align-items:center;justify-content:center;gap:var(--space-sm);height:var(--density-button-height);padding:var(--density-button-padding);border-radius:var(--radius-lg);border:none;cursor:pointer;transition:opacity var(--duration-fast) var(--ease-in-out),background-color var(--duration-fast) var(--ease-in-out),transform var(--duration-fast) var(--ease-in-out);-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent}.btn:disabled{opacity:var(--opacity-muted);cursor:not-allowed;pointer-events:none}.btn-primary{background:var(--btn-gradient);color:var(--text-inverse);border:none;box-shadow:var(--shadow-primary)}.btn-primary:hover:not(:disabled){opacity:var(--opacity-hover)}.btn-primary:active:not(:disabled){opacity:var(--opacity-hover);transform:scale(.98)}.btn-secondary{background:transparent;color:var(--color-primary);border:1px solid var(--border-ghost-strong);text-decoration:none}.btn-secondary:hover:not(:disabled){background:var(--surface-container-low);border-color:var(--color-primary)}.btn-secondary:active:not(:disabled){background:var(--surface-container-high)}.btn-accent{background:var(--btn-gradient);color:var(--text-inverse);border:none;box-shadow:var(--shadow-primary)}.btn-accent:hover:not(:disabled){opacity:var(--opacity-hover)}.btn-accent:active:not(:disabled){opacity:var(--opacity-hover);transform:scale(.98)}.btn-ghost,.btn-text{background:transparent;color:var(--text-primary);border:none}.btn-ghost:hover:not(:disabled),.btn-text:hover:not(:disabled){background:var(--surface-container-high)}.btn-ghost:active:not(:disabled),.btn-text:active:not(:disabled){background:var(--surface-container-highest)}.btn-icon{width:var(--density-button-height);height:var(--density-button-height);padding:0;border-radius:var(--radius-lg);background:var(--surface-container-high);color:var(--text-secondary);border:none}.btn-icon:hover:not(:disabled){background:var(--color-primary);color:var(--text-inverse)}.btn-group{display:inline-flex;gap:var(--space-sm)}.btn-group .btn:not(:last-child){margin-right:0}.btn-sm{font-size:var(--font-size-caption);height:36px;padding:var(--space-2xs) var(--space-sm)}.btn-lg{font-size:var(--font-size-body-lg);height:var(--touch-target-comfortable);padding:var(--space-sm) var(--space-lg)}.btn-success{background:var(--color-success)!important;color:var(--text-inverse)!important;border:none}.btn-success:hover:not(:disabled){opacity:var(--opacity-hover)}.btn-warning{background:var(--color-warning)!important;color:var(--text-inverse)!important;border:none}.btn-warning:hover:not(:disabled){opacity:var(--opacity-hover)}.btn-danger{background:var(--color-error)!important;color:var(--text-inverse)!important;border:none}.btn-danger:hover:not(:disabled){opacity:var(--opacity-hover)}.btn:focus-visible,button:focus-visible{outline:var(--focus-ring-width) solid var(--color-accent);outline-offset:var(--focus-ring-offset)}[role=button]:focus-visible{outline:var(--focus-ring-width) solid var(--color-accent);outline-offset:var(--focus-ring-offset);border-radius:var(--radius-lg)}@media (prefers-reduced-motion: reduce){.btn,button{transition:none!important}}@media (prefers-contrast: high){.btn,button{border:2px solid currentColor!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:var(--radius-circle);animation:btn-spin .6s linear infinite}@keyframes btn-spin{to{transform:rotate(360deg)}}.form-group{margin-bottom:var(--space-md)!important}.form-label{display:block;margin-bottom:var(--space-xs);font-family:var(--font-label);font-weight:var(--font-weight-bold);font-size:var(--font-size-label);color:var(--color-on-surface-variant);text-transform:uppercase;letter-spacing:var(--letter-spacing-widest)}.form-hint{display:block;margin-top:var(--space-xs);font-size:var(--font-size-caption);color:var(--text-tertiary)}.form-error{display:block;margin-top:var(--space-xs);font-size:var(--font-size-caption);color:var(--color-error);font-weight:var(--font-weight-medium)}input[type=text],input[type=email],input[type=password],input[type=number],input[type=tel],input[type=date],input[type=time],input[type=search],input[type=url],select,textarea{width:100%;height:var(--density-input-height);padding:var(--space-sm) 0;border:none;border-bottom:1px solid var(--input-border);border-radius:0;background:var(--input-bg);color:var(--text-primary);font-family:var(--font-ui);font-size:var(--font-size-body);transition:border-color var(--duration-normal) var(--ease-in-out)}textarea{height:auto;min-height:80px;padding:var(--space-sm) 0;resize:vertical}input:focus,select:focus,textarea:focus{outline:none;border-bottom-color:var(--input-border-focus)}input:focus-visible,select:focus-visible,textarea:focus-visible{outline:none;border-bottom:2px solid var(--input-border-focus)}input::placeholder,textarea::placeholder{color:var(--color-subtle);font-family:var(--font-ui)}input[type=checkbox],input[type=radio]{width:18px;height:18px;margin-right:var(--space-sm);accent-color:var(--color-accent);cursor:pointer;border-bottom:none}.form-group.has-error input,.form-group.has-error select,.form-group.has-error textarea,input.error,select.error,textarea.error{border-bottom-color:var(--color-error)!important}.form-group.has-error input:focus,input.error:focus,.form-group.has-error select:focus,select.error:focus,.form-group.has-error textarea:focus,textarea.error:focus{border-bottom-color:var(--color-error)}.form-group.has-success input,.form-group.has-success select,.form-group.has-success textarea,input.success,select.success,textarea.success{border-bottom-color:var(--color-success)!important}select{appearance:none!important;-webkit-appearance:none!important;-moz-appearance:none!important;background-color:transparent!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='%2386736e' d='M6 9L1 4h10z'/%3E%3C/svg%3E")!important;background-repeat:no-repeat!important;background-position:right 4px center!important;background-size:12px!important;padding:var(--space-sm) var(--space-lg) var(--space-sm) 0;height:auto;min-height:var(--density-input-height);line-height:1.4;cursor:pointer}.input-group{display:flex;width:100%}.input-group input{flex:1}.input-group-addon{display:flex;align-items:center;padding:0 var(--space-md-sm);background:var(--surface-container-high);color:var(--text-secondary);font-size:var(--font-size-caption);border-bottom:1px solid var(--input-border)}input:disabled,select:disabled,textarea:disabled{opacity:var(--opacity-muted);cursor:not-allowed;background:transparent!important}@media (prefers-contrast: high){input,select,textarea{border-bottom-width:2px!important}input:focus,select:focus,textarea:focus{border-bottom-width:3px!important}}.switch{position:relative;display:inline-block;width:48px;height:24px}.switch input{opacity:0;width:0;height:0;border-bottom:none}.switch-slider{position:absolute;cursor:pointer;top:0;left:0;right:0;bottom:0;background-color:var(--surface-container-highest);transition:background-color var(--duration-slow) var(--ease-in-out);border-radius:var(--radius-2xl)}.switch-slider:before{position:absolute;content:"";height:18px;width:18px;left:3px;bottom:3px;background-color:var(--surface-base);transition:transform var(--duration-slow) var(--ease-in-out);border-radius:var(--radius-circle)}.switch input:checked+.switch-slider{background-color:var(--color-accent)}.switch input:checked+.switch-slider:before{transform:translate(24px)}.switch input:focus+.switch-slider{box-shadow:0 0 0 3px var(--color-accent-subtle)}input[type=date].bold-date-input,.bold-date-input{font-family:var(--font-headline);font-weight:var(--font-weight-semibold);font-size:var(--font-size-body);padding:var(--space-sm) 0;border:none;border-bottom:1px solid var(--input-border);border-radius:0;background:transparent;color:var(--color-headings);transition:border-color var(--duration-normal) var(--ease-in-out);height:auto;line-height:1.4}input[type=date].bold-date-input:focus,.bold-date-input:focus{border-bottom-color:var(--color-accent);outline:none}input[type=date].bold-date-input:hover,.bold-date-input:hover{border-bottom-color:var(--color-headings)}.card{background:var(--surface-container-low);border:none;border-radius:var(--radius-card);padding:var(--space-card-padding);transition:background-color var(--duration-normal) var(--ease-in-out)}.card:hover{background:var(--surface-container)}.card-header{margin-bottom:var(--space-sm);padding-bottom:var(--space-sm)}.card-title{margin:0;font-family:var(--font-headline);font-size:var(--font-size-h3);font-weight:var(--font-weight-semibold);color:var(--color-headings)}.card-subtitle{margin:var(--space-xs) 0 0;font-family:var(--font-ui);font-size:var(--font-size-caption);color:var(--text-secondary)}.card-body{margin-bottom:var(--space-sm)}.card-footer{margin-top:var(--space-sm);padding-top:var(--space-sm);display:flex;justify-content:space-between;align-items:center}.student-portal .card-title,.student-portal .student-card h3,.staff-portal .card-title,.staff-portal .staff-card h3,.dept-admin-portal .card-title,.dept-admin-portal .admin-card h3,.master-admin-portal .card-title,.master-admin-portal .admin-card h3{font-family:var(--font-headline);color:var(--color-headings)}.master-admin-portal .card-subtitle{color:var(--text-secondary)}.student-portal .equipment-card{cursor:pointer}.student-portal .equipment-card-badge{display:inline-block;padding:var(--badge-padding);border-radius:var(--badge-border-radius);font-size:var(--badge-font-size);font-weight:var(--badge-font-weight);background:var(--badge-bg);color:var(--badge-text)}.student-portal .stat-card,.student-portal .student-stat-card,.staff-portal .stat-card,.staff-portal .staff-stat-card,.dept-admin-portal .stat-card,.dept-admin-portal .admin-stat-card,.master-admin-portal .stat-card,.master-admin-portal .admin-stat-card{position:relative;overflow:hidden}.student-portal .stat-card:before,.student-portal .student-stat-card:before,.staff-portal .stat-card:before,.staff-portal .staff-stat-card:before,.dept-admin-portal .stat-card:before,.dept-admin-portal .admin-stat-card:before,.master-admin-portal .stat-card:before,.master-admin-portal .admin-stat-card:before{content:"";position:absolute;top:0;left:0;width:3px;height:100%;background:var(--role-accent, var(--color-primary))}.student-portal .stat-number,.student-portal .student-stat-number,.staff-portal .stat-number,.staff-portal .staff-stat-number,.dept-admin-portal .stat-number,.dept-admin-portal .admin-stat-number,.master-admin-portal .stat-number,.master-admin-portal .admin-stat-number{font-family:var(--font-headline);font-size:var(--font-size-h2);font-weight:var(--font-weight-bold);color:var(--role-accent, var(--color-primary));line-height:1;margin-bottom:var(--space-xs)}.student-portal .stat-label,.student-portal .student-stat-label,.staff-portal .stat-label,.staff-portal .staff-stat-label,.dept-admin-portal .stat-label,.dept-admin-portal .admin-stat-label,.master-admin-portal .stat-label,.master-admin-portal .admin-stat-label{font-family:var(--font-label);font-size:var(--font-size-label);color:var(--text-secondary);font-weight:var(--font-weight-medium);text-transform:uppercase;letter-spacing:var(--letter-spacing-widest)}.card-clickable{cursor:pointer;-webkit-user-select:none;user-select:none}.card-clickable:active{transform:scale(.99)}.card-highlight{border-left:3px solid var(--role-accent, var(--color-primary))}.card-compact{padding:var(--space-sm)!important}.card-image-top{width:calc(100% + 2 * var(--space-card-padding));margin:calc(-1 * var(--space-card-padding));margin-bottom:var(--space-sm);border-radius:var(--radius-card) var(--radius-card) 0 0}.card-grid{display:grid;gap:var(--space-md);grid-template-columns:1fr}@media (min-width: 768px){.card-grid{grid-template-columns:repeat(2,1fr)}}@media (min-width: 1024px){.card-grid{grid-template-columns:repeat(3,1fr)}}@media (min-width: 1440px){.card-grid{grid-template-columns:repeat(4,1fr)}}@media (min-width: 2560px){.card-grid{grid-template-columns:repeat(6,1fr)}}.grid-bento{display:grid;grid-template-columns:1fr;gap:var(--space-section)}@media (min-width: 768px){.grid-bento{grid-template-columns:repeat(12,1fr)}}@media (prefers-reduced-motion: reduce){.card{transition:none!important}}@media (prefers-contrast: high){.card{border:2px solid var(--color-border-solid)}.card-highlight{border-left-width:4px}}.card-skeleton{background:linear-gradient(90deg,var(--surface-container-high) 0%,var(--surface-container-low) 50%,var(--surface-container-high) 100%);background-size:200% 100%;animation:skeleton-loading 1.5s ease-in-out infinite;border-radius:var(--radius-card);height:160px}@keyframes skeleton-loading{0%{background-position:200% 0}to{background-position:-200% 0}}: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: var(--overlay-white-70);--glass-bg-light-subtle: var(--overlay-white-50);--glass-bg-light-strong: var(--overlay-white-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: var(--overlay-white-20);--glass-border-light-strong: var(--overlay-white-40);--glass-border-dark: var(--overlay-white-10);--glass-border-dark-strong: var(--overlay-white-20);--glass-shadow-light: 0 8px 32px var(--overlay-10);--glass-shadow-dark: 0 8px 32px var(--overlay-40);--glass-shadow-colored: 0 8px 32px var(--role-accent-light, var(--overlay-10));--neu-shadow-light: 6px 6px 12px var(--overlay-8), -6px -6px 12px var(--overlay-white-90);--neu-shadow-light-sm: 3px 3px 6px var(--overlay-6), -3px -3px 6px var(--overlay-white-85);--neu-shadow-light-lg: 10px 10px 20px var(--overlay-10), -10px -10px 20px var(--overlay-white-90);--neu-inset-light: inset 4px 4px 8px var(--overlay-8), inset -4px -4px 8px var(--overlay-white-90);--neu-shadow-dark: 6px 6px 12px var(--overlay-40), -6px -6px 12px var(--overlay-15);--neu-inset-dark: inset 4px 4px 8px var(--overlay-40), inset -4px -4px 8px var(--overlay-15);--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: var(--color-ai-glow);--ai-glow-color-active: rgba(123, 31, 162, .6);--ai-thinking-gradient: linear-gradient( 90deg, var(--role-accent) 0%, var(--color-primary) 25%, var(--role-accent) 50%, var(--color-primary) 75%, var(--role-accent) 100% );--ai-shimmer-gradient: linear-gradient( 90deg, transparent 0%, var(--overlay-white-40) 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: var(--opacity-hover);--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 var(--color-success-border-strong);--glow-warning: 0 0 20px var(--color-warning-border-strong);--glow-error: 0 0 20px var(--color-error-border-strong);--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: var(--overlay-10);--ripple-color-dark: var(--overlay-white-20);--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 var(--overlay-10);--float-shadow-md: 0 8px 16px var(--overlay-15);--float-shadow-lg: 0 12px 24px var(--overlay-15)}: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(var(--surface-base) 0 0) content-box,linear-gradient(var(--surface-base) 0 0);mask:linear-gradient(var(--surface-base) 0 0) content-box,linear-gradient(var(--surface-base) 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:var(--overlay-40);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:var(--color-error-subtle);border-color:var(--color-error-subtle-strong)}.staff-portal .glass,.staff-portal .glass-card{background:var(--color-info-subtle);border-color:var(--color-info-subtle-strong)}.dept-admin-portal .glass,.dept-admin-portal .glass-card{background:var(--color-warning-subtle);border-color:var(--color-warning-subtle-strong)}.master-admin-portal .glass,.master-admin-portal .glass-card{background:var(--color-error-subtle);border-color:var(--color-error-border)}@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 var(--overlay-10)}.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:var(--text-inverse);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:var(--space-3xl)}.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: var(--color-ai-glow);--ai-glow-secondary: var(--color-ai-glow);--ai-glow-accent: var(--color-ai-glow);--ai-gradient-primary: linear-gradient( 135deg, var(--color-primary) 0%, var(--color-primary) 50%, var(--color-primary) 100% );--ai-gradient-thinking: linear-gradient( 90deg, var(--role-accent) 0%, var(--color-primary) 25%, var(--role-accent) 50%, var(--color-primary) 75%, var(--role-accent) 100% );--ai-gradient-shimmer: linear-gradient( 90deg, transparent 0%, var(--overlay-white-40) 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:var(--text-inverse);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:var(--letter-spacing-wide)}.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:var(--text-inverse)}.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:var(--text-inverse);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:var(--opacity-muted)}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:var(--overlay-50);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:var(--close-btn-size, 44px);height:var(--close-btn-size, 44px);font-size:var(--close-btn-font-size, 2rem);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:var(--letter-spacing-wide)}.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:var(--text-inverse)}.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:var(--text-inverse);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:var(--opacity-subtle)}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 var(--space-xs);background:var(--semantic-error);color:var(--text-inverse);font-size:var(--font-size-caption);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:var(--text-inverse)}.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:var(--opacity-hover)}.ai-chat-close{width:var(--close-btn-size, 44px);height:var(--close-btn-size, 44px);font-size:var(--close-btn-font-size, 2rem);border-radius:var(--radius-full);border:none;background:var(--overlay-white-20);color:var(--text-inverse);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background var(--duration-fast) var(--ease-smooth)}.ai-chat-close:hover{background:var(--overlay-white-30)}.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:var(--text-inverse);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:var(--text-inverse);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:var(--opacity-muted);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:var(--opacity-disabled);transform:scale(.8)}50%{opacity:1;transform:scale(1)}}.student-portal .ai-assistant-trigger,.student-portal .ai-chat-header{background:linear-gradient(135deg,var(--color-error) 0%,var(--color-warning) 100%)}.student-portal .ai-assistant-trigger:before{background:linear-gradient(135deg,var(--color-error) 0%,var(--color-warning) 100%)}.staff-portal .ai-assistant-trigger,.staff-portal .ai-chat-header{background:linear-gradient(135deg,var(--color-info) 0%,var(--color-info) 100%)}.staff-portal .ai-assistant-trigger:before{background:linear-gradient(135deg,var(--color-info) 0%,var(--color-info) 100%)}.dept-admin-portal .ai-assistant-trigger,.dept-admin-portal .ai-chat-header{background:linear-gradient(135deg,var(--color-warning) 0%,var(--color-warning) 100%)}.dept-admin-portal .ai-assistant-trigger:before{background:linear-gradient(135deg,var(--color-warning) 0%,var(--color-warning) 100%)}.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:var(--z-sticky, 100);background:var(--bg-tertiary);border:1px solid var(--color-border, var(--border-color));border-radius:var(--radius-sm);padding:var(--density-card-padding);margin-bottom:var(--density-section-gap);display:flex;justify-content:space-between;align-items:center;animation:slideDown .3s ease-out}.bulk-action-info{display:flex;align-items:center;gap:var(--space-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(--space-md);flex-wrap:wrap}.btn-success{background:var(--color-success);color:var(--text-inverse);border:none}.btn-success:hover:not(:disabled){background:var(--color-success-hover)}.btn-error{background:var(--color-error);color:var(--text-inverse);border:none}.btn-error:hover:not(:disabled){background:var(--color-error-hover)}.select-all-container{background:var(--bg-secondary);padding:var(--space-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(--space-lg);margin-bottom:var(--space-xl)}.filter-label{margin-bottom:var(--space-md);color:var(--text-primary)}.filter-options{display:flex;gap:var(--space-md);flex-wrap:wrap;margin-bottom:var(--space-md)}.custom-date-picker{margin-top:var(--space-md);padding-top:var(--space-md);border-top:1px solid var(--border-color)}.date-input{padding:var(--space-sm) var(--space-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(--space-lg);margin-bottom:var(--space-xl)}.filter-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--space-md)}.filter-badge{display:inline-flex;align-items:center;justify-content:center;background:var(--color-primary);color:var(--text-inverse);border-radius:50%;width:20px;height:20px;font-size:var(--font-size-xs);margin-left:var(--space-xs);font-weight:var(--font-weight-bold)}.filter-panel{padding-top:var(--space-lg);border-top:1px solid var(--border-color);animation:slideDown .3s ease-out}.filter-group{margin-bottom:var(--space-lg)}.filter-group label{display:block;margin-bottom:var(--space-sm);font-weight:var(--font-weight-semibold);color:var(--text-primary)}.filter-select{width:100%;padding:var(--space-sm) var(--space-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(--space-sm);max-height:200px;overflow-y:auto;padding:var(--space-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(--space-sm);cursor:pointer;padding:var(--space-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(--space-sm) var(--space-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(--space-md);flex-wrap:wrap}.filter-daterange span{color:var(--text-muted)}.breadcrumb{margin-bottom:var(--space-xl);padding:var(--space-md) 0}.breadcrumb-list{list-style:none;display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-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(--space-xs);color:var(--text-muted)}.back-to-top{position:fixed;bottom:var(--space-2xl);right:var(--space-2xl);background:var(--color-primary);color:var(--text-inverse);border:none;border-radius:var(--radius-full);padding:var(--space-md) var(--space-lg);display:flex;align-items:center;gap:var(--space-sm);cursor:pointer;box-shadow:var(--shadow-lg);transition:var(--transition-all);z-index:var(--z-modal-backdrop, 1000);animation:fadeInUp .3s ease-out}.back-to-top:hover{background:var(--color-primary-hover);opacity:var(--opacity-hover)}.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(--space-sm);padding:var(--space-sm) var(--space-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:var(--font-size-h4);transition:var(--transition-all)}.favorites-btn-sm{padding:var(--space-xs) var(--space-sm);font-size:var(--font-size-sm)}.favorites-btn-lg{padding:var(--space-md) var(--space-lg);font-size:var(--font-size-lg)}.sub-area-dashboard{padding:var(--density-page-padding)}.dashboard-header{margin-bottom:var(--density-section-gap)}.dashboard-header .subtitle{color:var(--text-muted);font-size:var(--font-size-lg)}.dashboard-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:var(--density-card-gap);margin-bottom:var(--density-section-gap)}.stat-card{background:var(--bg-card, var(--bg-secondary));border:1px solid var(--color-border, var(--border-color));border-radius:var(--radius-sm);padding:var(--density-card-padding);text-align:center;transition:border-color var(--duration-fast) var(--ease-in-out)}.stat-card:hover{border-color:var(--color-accent-border)}.stat-value{font-size:var(--font-size-4xl);font-weight:var(--font-weight-bold);color:var(--color-primary);margin-bottom:var(--space-sm)}.stat-label{color:var(--text-secondary);font-size:var(--font-size-md);margin-bottom:var(--space-md)}.stat-link{display:inline-block;color:var(--color-primary);font-size:var(--font-size-sm);text-decoration:underline;margin-top:var(--space-sm)}.dashboard-recent-activity{background:var(--bg-card, var(--bg-secondary));border:1px solid var(--color-border, var(--border-color));border-radius:var(--radius-sm);padding:var(--density-card-padding)}.dashboard-recent-activity h3{margin-bottom:var(--space-lg)}.activity-list{display:flex;flex-direction:column;gap:var(--space-md)}.activity-item{padding:var(--table-cell-padding);background:var(--bg-card, var(--bg-primary));border:1px solid var(--color-border, var(--border-color));border-radius:var(--radius-sm);transition:background-color var(--duration-fast) var(--ease-in-out)}.activity-item:hover{background:var(--color-accent-subtle, var(--bg-hover))}.activity-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--space-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(--space-lg);color:var(--color-primary);font-weight:var(--font-weight-semibold)}.no-activity{text-align:center;color:var(--text-muted);padding:var(--space-xl)}.unified-calendar{padding:var(--space-xl)}.calendar-header{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:var(--space-lg);margin-bottom:var(--space-xl)}.view-type-selector{display:flex;gap:var(--space-sm);flex-wrap:wrap}.calendar-navigation{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--space-xl);padding:var(--space-lg);background:var(--bg-secondary);border-radius:var(--radius-lg)}.calendar-grid{background:var(--bg-card, var(--bg-secondary));border:1px solid var(--color-border, var(--border-color));border-radius:var(--radius-sm);padding:var(--density-card-padding);margin-bottom:var(--density-section-gap)}.calendar-header-row{display:grid;grid-template-columns:repeat(7,1fr);gap:var(--space-xs);margin-bottom:var(--space-md)}.calendar-header-cell{text-align:center;font-weight:var(--font-weight-semibold);color:var(--text-primary);padding:var(--space-sm)}.calendar-body{display:grid;grid-template-columns:repeat(7,1fr);gap:var(--space-xs)}.calendar-cell{min-height:80px;padding:var(--table-cell-padding);background:var(--bg-card, var(--bg-primary));border:1px solid var(--color-border, var(--border-color));border-radius:var(--radius-sm);transition:background-color var(--duration-fast) var(--ease-in-out)}.calendar-cell:hover:not(.empty){background:var(--color-accent-subtle, var(--bg-hover))}.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(--space-xs)}.calendar-bookings{margin-top:var(--space-xs)}.booking-count{font-size:var(--font-size-xs);color:var(--text-muted);display:block;margin-bottom:var(--space-xs)}.booking-indicators{display:flex;gap:var(--space-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)}.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)}.calendar-legend{display:flex;gap:var(--space-lg);justify-content:center;flex-wrap:wrap}.legend-item{display:flex;align-items:center;gap:var(--space-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)}.comparison-modal{max-width:1200px;width:95%}.comparison-empty{text-align:center;padding:var(--space-2xl)}.equipment-selector{margin-top:var(--space-xl);max-width:400px;margin-left:auto;margin-right:auto}.equipment-selector label{display:block;margin-bottom:var(--space-sm);font-weight:var(--font-weight-semibold)}.equipment-selector select{width:100%;padding:var(--space-sm) var(--space-md);border:1px solid var(--border-color);border-radius:var(--radius-md);font-size:var(--font-size-base)}.comparison-add-more{margin-bottom:var(--space-xl);padding:var(--space-md);background:var(--bg-tertiary);border-radius:var(--radius-md)}.comparison-add-more label{display:block;margin-bottom:var(--space-sm);font-weight:var(--font-weight-semibold)}.comparison-add-more select{width:100%;padding:var(--space-sm) var(--space-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-card, var(--bg-primary))}.comparison-table th,.comparison-table td{padding:var(--table-cell-padding);border-bottom:1px solid var(--color-border, var(--border-color));text-align:left}.comparison-table th{background:var(--bg-tertiary);font-weight:var(--font-weight-semibold);font-size:var(--table-header-size);text-transform:uppercase;letter-spacing:var(--letter-spacing-wide);color:var(--color-headings, var(--text-primary));position:sticky;top:0;z-index:var(--z-above, 1)}.comparison-table tbody tr:hover{background:var(--color-accent-subtle)}.comparison-header{display:flex;justify-content:space-between;align-items:center;gap:var(--space-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(--space-lg)}.template-item{padding:var(--density-card-padding);background:var(--bg-card, var(--bg-tertiary));border:1px solid var(--color-border, var(--border-color));border-radius:var(--radius-sm);transition:border-color var(--duration-fast) var(--ease-in-out)}.template-item:hover{border-color:var(--color-accent-border)}.template-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--space-md)}.template-header h3{margin:0;color:var(--text-primary)}.template-actions{display:flex;gap:var(--space-sm)}.template-details{color:var(--text-secondary);font-size:var(--font-size-sm)}.template-details p{margin-bottom:var(--space-xs)}.template-meta{color:var(--text-muted);font-size:var(--font-size-xs);margin-top:var(--space-sm)}.export-actions{display:flex;gap:var(--space-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));border-radius:var(--radius-sm);border:1px solid var(--color-border)}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(--space-lg);right:var(--space-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(--table-cell-padding);font-size:var(--table-header-size)}.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-content{position:relative;background:var(--bg-modal);border-radius:var(--radius-lg);max-width:600px;width:100%;max-height:90vh!important;display:flex;flex-direction:column;box-shadow:var(--shadow-xl);animation:modalSlideIn .3s var(--ease-out);overflow-y:auto!important}@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(--bg-modal);padding:var(--density-card-padding) var(--density-card-padding) var(--density-card-gap)!important;border-bottom:1px solid var(--color-border);display:flex;justify-content:space-between;align-items:center;gap:var(--density-card-gap);z-index:var(--z-local, 10);border-radius:var(--radius-lg) var(--radius-lg) 0 0;flex-shrink:0}.modal-header h2,.modal-header h3{margin:0;font-size:var(--density-heading-size);font-weight:var(--font-weight-semibold);color:var(--color-headings);flex:1}.modal-close{background:transparent;border:none;font-size:var(--close-btn-font-size, 2rem)!important;line-height:1;color:var(--text-secondary);cursor:pointer;padding:0;border-radius:var(--radius-sm);transition:all var(--duration-fast) var(--ease-in-out);flex-shrink:0;width:var(--close-btn-size, 44px)!important;height:var(--close-btn-size, 44px)!important;min-width:var(--close-btn-size, 44px)!important;min-height:var(--close-btn-size, 44px)!important;display:flex!important;align-items:center;justify-content:center}.modal-close:hover{background:var(--bg-tertiary);color:var(--text-primary)}.modal-body{padding:var(--density-card-padding)!important;overflow-y:auto;flex:1 1 auto;background:var(--bg-modal)}.modal-actions{position:sticky;bottom:0;z-index:var(--z-local, 10);background:var(--bg-secondary);padding:var(--density-card-gap) var(--density-card-padding)!important;border-top:1px solid var(--color-border);display:flex;justify-content:flex-end;gap:var(--density-inline-gap);border-radius:0 0 var(--radius-lg) var(--radius-lg);flex-shrink:0}.modal-footer{position:sticky;bottom:0;z-index:var(--z-local, 10);background:var(--bg-secondary);border-top:1px solid var(--color-border);padding:var(--density-card-gap) var(--density-card-padding)!important;border-radius:0 0 var(--radius-lg) var(--radius-lg);display:flex;gap:var(--density-inline-gap);justify-content:flex-end;flex-shrink:0}.modal-content .form-group{display:flex;flex-direction:column;gap:var(--space-xs);margin-bottom:var(--density-card-gap)}.modal-content .form-group label{font-weight:var(--font-weight-semibold);font-size:var(--font-size-caption);color:var(--color-muted);margin-bottom:var(--space-2xs);display:block;line-height:1.5;min-height:20px;padding-bottom:var(--space-2xs)}.modal-content .form-group input,.modal-content .form-group select,.modal-content .form-group textarea{width:100%;padding:var(--space-xs) var(--space-md-sm);border:1px solid var(--color-border);border-radius:var(--radius-sm);font-size:var(--font-size-caption);font-family:inherit;background:var(--bg-card);color:var(--text-primary);transition:border-color var(--duration-fast) var(--ease-in-out);line-height:1.5;height:var(--density-input-height)}.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='%2378736E' 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:var(--space-xl);cursor:pointer}.modal-content select,.modal-body select,div[class*=modal] select,.equipment-form-modal select,.form-group select,.form-select,.modal-content .form-group select,.modal-content .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(--bg-card)!important;background:var(--bg-card)!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='%2378736E' 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:var(--space-xl)!important;opacity:1!important;color:var(--text-primary)!important;border:1px solid var(--color-border)!important}.modal-content input,.modal-content select,.modal-content textarea,.modal-body input,.modal-body select,.modal-body textarea{background-color:var(--bg-card)!important;background:var(--bg-card)!important;opacity:1!important}select#category,select#department,select#status,select#qr_code{background-color:var(--bg-card)!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='%2378736E' 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:var(--space-xl)!important;opacity:1!important;color:var(--text-primary)!important;border:1px solid var(--color-border)!important}.modal-content .form-group input:focus,.modal-content .form-group select:focus,.modal-content .form-group textarea:focus{outline:2px solid var(--color-accent);outline-offset:1px;border-color:var(--color-accent)}.modal-content .form-group input.error,.modal-content .form-group select.error,.modal-content .form-group textarea.error{border-color:var(--color-error)}.modal-content .form-group .error-text{color:var(--color-error);font-size:var(--font-size-caption);margin-top:var(--space-2xs)}.equipment-form-modal{max-width:800px}.equipment-form-modal .form-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--density-card-gap)}.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(--density-card-gap);margin-bottom:var(--density-card-padding)}.detail-row{display:grid;grid-template-columns:140px 1fr;gap:var(--density-card-gap);align-items:start;padding:var(--density-card-gap);border-radius:var(--radius-sm);background:var(--bg-secondary)}.detail-label{font-weight:var(--font-weight-medium);color:var(--color-muted);font-size:var(--font-size-caption)}.detail-value{color:var(--text-primary);font-size:var(--font-size-body);word-break:break-word}.modal-content .btn{height:var(--density-button-height);padding:var(--density-button-padding);border-radius:var(--radius-sm);font-weight:var(--font-weight-semibold);font-size:var(--font-size-caption);border:none;cursor:pointer;transition:all var(--duration-fast) var(--ease-in-out);display:inline-flex;align-items:center;justify-content:center;gap:var(--density-inline-gap)}.modal-content .btn:hover:not(:disabled){opacity:var(--opacity-hover)}.modal-content .btn:disabled{opacity:var(--opacity-muted);cursor:not-allowed}.modal-content .btn-danger{background:var(--color-error);color:var(--text-inverse)}.modal-content .btn-danger:hover:not(:disabled){opacity:var(--opacity-hover)}.equipment-card .btn-view,.equipment-card .btn-edit,.equipment-table .btn-view,.equipment-table .btn-edit{background:var(--color-primary)!important;color:var(--text-inverse)!important;border:none!important;height:var(--density-button-height);padding:var(--density-button-padding);border-radius:var(--radius-sm);font-size:var(--font-size-caption);font-weight:var(--font-weight-semibold);cursor:pointer;transition:all var(--duration-fast) var(--ease-in-out);min-width:80px;text-align:center;display:inline-flex;align-items:center;justify-content:center;gap:var(--density-inline-gap)}.equipment-card .btn-view:hover,.equipment-card .btn-edit:hover,.equipment-table .btn-view:hover,.equipment-table .btn-edit:hover{opacity:var(--opacity-hover)}.status{display:inline-flex;align-items:center;padding:var(--space-2xs) var(--space-sm);border-radius:var(--radius-full);font-size:var(--font-size-caption);font-weight:var(--font-weight-semibold);text-transform:capitalize}.status-booked,.status-maintenance{background:var(--color-warning-subtle);color:var(--color-warning)}.status-out_of_service{background:var(--color-error-subtle);color:var(--color-error)}@media (max-width: 768px){.modal-content{max-height:95vh;border-radius:var(--radius-lg) var(--radius-lg) 0 0;animation:modalSlideUp .3s var(--ease-out)}@keyframes modalSlideUp{0%{opacity:0;transform:translateY(100%)}to{opacity:1;transform:translateY(0)}}.modal-header,.modal-body,.modal-actions{padding:var(--density-card-padding)}.equipment-form-modal .form-grid{grid-template-columns:1fr}.detail-row{grid-template-columns:1fr;gap:var(--space-xs)}.detail-label{font-size:var(--font-size-caption)}}@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-sm)}.restriction-message h3{color:var(--color-warning);margin-bottom:var(--density-card-gap)}.restriction-message p{color:var(--color-body-text);margin-bottom:var(--space-sm)}.restriction-message p:last-of-type{margin-bottom:0}.restriction-message+.modal-actions{margin-top:var(--density-section-gap);display:flex;justify-content:center}.cross-department-notice{margin-top:var(--density-card-gap);margin-bottom:var(--density-section-gap);padding:var(--density-card-padding);background-color:var(--color-info-bg);border:2px solid var(--color-info);border-radius:var(--radius-sm)}.cross-department-notice-header{display:flex;align-items:center;margin-bottom:var(--density-card-gap)}.cross-department-notice-header .icon{font-size:var(--font-size-h4);margin-right:var(--space-sm)}.cross-department-notice-header h4{margin:0;color:var(--color-info);font-size:var(--font-size-body)}.cross-department-notice p{margin:var(--space-xs) 0;color:var(--text-primary);font-size:var(--font-size-caption)}.cross-department-notice p strong{font-weight:var(--font-weight-semibold)}.modal-content .booking-progress{padding:var(--space-sm) var(--density-card-padding)!important}.modal-content .booking-progress .progress-bar{margin-bottom:var(--space-sm)}.step1-form{display:flex;flex-direction:column}.step1-form .bold-cal{max-width:100%}.step1-actions{justify-content:space-between!important;align-items:center}.eq-picker{display:flex;flex-direction:column;gap:0;height:100%}.eq-picker__chips{display:flex;flex-wrap:wrap;gap:var(--space-xs);padding:var(--space-sm) 0;border-bottom:1px solid var(--color-border);margin-bottom:var(--space-sm)}.eq-picker__chip{display:inline-flex;align-items:center;gap:var(--space-xs);padding:3px 10px 3px 12px;background:var(--color-accent);color:var(--text-inverse);border-radius:var(--radius-full);font-size:var(--font-size-caption);font-family:var(--font-ui);font-weight:var(--font-weight-medium);max-width:200px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.eq-picker__chip-remove{font-size:1.1rem;line-height:1;color:var(--text-inverse);opacity:.7;cursor:pointer;flex-shrink:0}.eq-picker__chip-remove:hover{opacity:1}.eq-picker__toolbar{display:flex;flex-direction:column;gap:var(--space-sm);margin-bottom:var(--space-sm)}.eq-picker__search-wrap{display:flex;align-items:center;gap:8px;height:40px;padding:0 10px 0 12px;border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--bg-card);transition:border-color var(--duration-fast) var(--ease-out)}.eq-picker__search-wrap:focus-within{border-color:var(--color-accent)}.eq-picker__search-icon{flex-shrink:0;color:var(--text-tertiary);pointer-events:none;display:flex;align-items:center}.eq-picker__search{flex:1;height:100%;padding:0!important;border:none!important;border-radius:0!important;background:transparent!important;color:var(--text-primary);font-size:var(--font-size-body);font-family:var(--font-ui);outline:none;min-width:0}.eq-picker__search:focus{border-color:transparent}.eq-picker__search-clear{flex-shrink:0;font-size:1.2rem;color:var(--text-tertiary);cursor:pointer;line-height:1}.eq-picker__search-clear:hover{color:var(--text-primary)}.eq-picker__cats{display:flex;gap:var(--space-xs);flex-wrap:wrap}.eq-picker__cat{padding:4px 12px;border:1px solid var(--color-border);border-radius:var(--radius-full);font-size:var(--font-size-caption);font-family:var(--font-ui);font-weight:var(--font-weight-medium);color:var(--text-secondary);cursor:pointer;transition:all var(--duration-fast) var(--ease-out);white-space:nowrap;display:inline-flex;align-items:center;gap:5px}.eq-picker__cat:hover{border-color:var(--text-primary);color:var(--text-primary)}.eq-picker__cat--active{background:var(--text-primary);border-color:var(--text-primary);color:var(--text-inverse)}.eq-picker__cat-count{font-size:10px;opacity:.7}.eq-picker__list{flex:1;overflow-y:auto;border:1px solid var(--color-border);border-radius:var(--radius-sm);max-height:340px;min-height:120px}.eq-picker__group-header{display:flex;align-items:center;justify-content:space-between;padding:6px 14px;background:var(--bg-tertiary);font-size:var(--font-size-caption);font-family:var(--font-ui);font-weight:var(--font-weight-bold);text-transform:uppercase;letter-spacing:var(--letter-spacing-wide);color:var(--text-secondary);border-bottom:1px solid var(--color-border);position:sticky;top:0;z-index:1}.eq-picker__group-count{font-weight:var(--font-weight-normal);opacity:.6}.eq-picker__row{all:unset;display:flex;align-items:center;width:100%;box-sizing:border-box;padding:10px 14px;gap:var(--space-sm);border-bottom:1px solid var(--color-border);cursor:pointer;text-align:left;transition:background var(--duration-fast) var(--ease-out)}.eq-picker__row:last-child{border-bottom:none}.eq-picker__row:hover{background:var(--bg-secondary)}.eq-picker__row--selected{background:var(--color-accent-subtle, #fdf0ec)}.eq-picker__row--selected:hover{background:var(--color-accent-subtle, #fdf0ec);filter:brightness(.97)}.eq-picker__row-name{flex:1;font-size:var(--font-size-body);color:var(--text-primary);font-family:var(--font-ui)}.eq-picker__row-cat{font-size:var(--font-size-caption);color:var(--text-tertiary);font-family:var(--font-ui)}.eq-picker__row-check{width:22px;height:22px;border-radius:50%;border:1.5px solid var(--color-border);display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:var(--font-weight-bold);color:var(--text-inverse);flex-shrink:0;transition:all var(--duration-fast) var(--ease-out)}.eq-picker__row--selected .eq-picker__row-check{background:var(--color-accent);border-color:var(--color-accent)}.eq-picker__empty,.eq-picker__loading,.eq-picker__no-results{padding:var(--space-2xl);text-align:center;color:var(--text-secondary);font-size:var(--font-size-body);font-family:var(--font-ui)}.eq-picker__actions{justify-content:space-between!important;margin-top:var(--space-sm)!important}.eq-picker__selection-count{font-size:var(--font-size-caption);font-family:var(--font-ui);font-weight:var(--font-weight-semibold);color:var(--color-accent);text-transform:uppercase;letter-spacing:var(--letter-spacing-wide)}.step1-date-summary{font-size:var(--font-size-caption);font-family:var(--font-ui);font-weight:var(--font-weight-semibold);color:var(--text-secondary);letter-spacing:var(--letter-spacing-wide);text-transform:uppercase;white-space:nowrap}.collection-instructions{margin-top:var(--density-card-gap);padding:var(--density-card-gap);background-color:var(--bg-card);border-radius:var(--radius-sm);border:1px solid var(--color-border)}.collection-instructions h5{margin:0 0 var(--space-xs) 0;color:var(--color-info);font-size:var(--font-size-caption)}.collection-instructions p{margin:0;font-size:var(--font-size-caption);line-height:var(--density-line-height);color:var(--text-primary);white-space:pre-wrap}.terms-conditions{margin-top:var(--density-card-gap);padding:var(--density-card-gap);background-color:var(--color-warning-bg);border-radius:var(--radius-sm);border:1px solid var(--color-warning)}.terms-conditions h5{margin:0 0 var(--space-xs) 0;color:var(--color-warning);font-size:var(--font-size-caption)}.terms-conditions p{margin:0;font-size:var(--font-size-caption);line-height:var(--density-line-height);color:var(--text-primary);white-space:pre-wrap}.equipment-summary h3{margin:0 0 var(--space-xs) 0;font-size:var(--density-heading-size);color:var(--text-primary)}.equipment-summary p{margin:0;font-size:var(--font-size-caption);color:var(--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.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 var(--overlay-white-30);border-top-color:var(--text-inverse);border-radius:var(--radius-full);animation:buttonSpinner var(--duration-slow) linear infinite}@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:var(--opacity-muted)}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:var(--z-above, 1)}.btn-group .btn:not(:first-child):not(:last-child):hover{transform:scale(1.02)}.btn-toggle-group .btn{opacity:var(--opacity-hover)}.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:var(--text-inverse);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)}.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 0 0 var(--color-success-border-strong)}to{box-shadow:var(--focus-ring)}}.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 var(--overlay-15)}.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:var(--opacity-muted)}}.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:var(--opacity-hover);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:var(--opacity-muted)}}.card-clickable:active,.glass-card:active,.equipment-card:active,.student-card:active{transform:scale(.98);transition:transform var(--duration-instant, .1s) var(--ease-out)}.filter-chip:active{transform:scale(.96);transition:transform var(--duration-instant, .1s) var(--ease-out)}.nav-item:active,.sidebar-link:active,.tab-btn:active,.glass-sidebar-item:active,.glass-dropdown-item:active,.action-item:active,.list-item-clickable:active,.menu-item:active{transform:scale(.98);transition:transform var(--duration-instant, .1s) var(--ease-out)}@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}.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}.card-clickable:active,.glass-card:active,.equipment-card:active,.student-card:active,.filter-chip:active,.nav-item:active,.sidebar-link:active,.tab-btn:active,.glass-sidebar-item:active,.glass-dropdown-item:active,.action-item:active,.list-item-clickable:active,.menu-item:active{transform: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(--space-sm)}.qr-generator svg{display:block}.qr-generator__actions{display:flex;gap:var(--space-xs)}.qr-scanner{display:flex;flex-direction:column;gap:var(--space-md);padding:var(--space-md);background:var(--color-surface);border-radius:var(--radius-lg);border:1px solid var(--color-border)}.qr-scanner__modes{display:flex;gap:var(--space-sm);flex-wrap:wrap}.qr-scanner__mode-btn{display:inline-flex;align-items:center;gap:var(--space-xs);padding:var(--space-sm) var(--space-md);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);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(--space-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(--space-xs)}.qr-scanner__input{flex:1;padding:var(--space-sm) var(--space-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(--space-sm);background:var(--color-primary-600);border:none;border-radius:var(--radius-md);color:var(--text-inverse);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(--space-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(--space-xs);padding:var(--space-sm) var(--space-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(--space-xs);padding:var(--space-sm) var(--space-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:var(--font-weight-semibold);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(--space-md);background:var(--color-white);border-radius:var(--radius-md);font-family:var(--font-ui);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(--space-sm);padding-bottom:var(--space-sm);border-bottom:2px solid var(--color-neutral-900);margin-bottom:var(--space-sm)}.equipment-label__logo{height:24px;width:auto}.equipment-label__title{font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);color:var(--color-neutral-600);letter-spacing:var(--letter-spacing-wide)}.equipment-label__content{display:flex;gap:var(--space-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:var(--font-weight-bold);color:var(--color-neutral-900);margin:0 0 var(--space-xs) 0;line-height:1.2;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.equipment-label__category{display:flex;align-items:center;gap:var(--space-xs);margin-bottom:var(--space-sm)}.equipment-label__category-icon{font-size:var(--font-size-base)}.equipment-label__category-text{font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);color:var(--color-neutral-500);letter-spacing:var(--letter-spacing-wide)}.equipment-label__details{display:flex;flex-direction:column;gap:var(--space-xs)}.equipment-label__detail{display:flex;gap:var(--space-xs);font-size:var(--font-size-sm)}.equipment-label__detail-label{font-weight:var(--font-weight-semibold);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(--space-xs);padding-top:var(--space-sm);border-top:1px solid var(--color-neutral-200);margin-top:var(--space-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(--space-sm)}.equipment-label--compact .equipment-label__name{font-size:var(--font-size-base)}.equipment-label--compact .equipment-label__footer{font-size:var(--font-size-label)}.equipment-label--large{width:400px;padding:var(--space-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(--space-lg);padding:var(--space-lg)}.label-print-actions{display:flex;gap:var(--space-md);padding:var(--space-md);background:var(--color-surface);border-bottom:1px solid var(--color-border);position:sticky;top:0;z-index:var(--z-local, 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(--space-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:var(--font-weight-medium)}.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);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,.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:var(--space-sm) 30px var(--space-sm) var(--space-md-sm)!important;border-radius:var(--radius-lg)!important;font-size:var(--font-size-body-sm)!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 .status-select-compact:focus,.master-admin-portal .status-select-compact,.master-admin-portal .status-select-compact:focus,.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}.empty-state .btn,.empty-state button,.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:var(--font-size-body);font-weight:var(--font-weight-semibold);border-radius:var(--radius-xl)}.btn.btn-sm,button.btn-sm{min-height:36px;padding:.5rem 1rem;font-size:var(--font-size-body)}.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:var(--font-size-body);font-weight:var(--font-weight-semibold);border-radius:var(--radius-full);transition:all .2s ease}.filter-tabs,.filter-chips,.status-filters{display:flex;gap:.5rem;flex-wrap:wrap}.filter-tab,.filter-chip,.status-filter{padding:.5rem 1rem;border-radius:var(--radius-full);font-size:var(--font-size-body);font-weight:var(--font-weight-medium);cursor:pointer;transition:all .2s ease;border:2px solid transparent;background:var(--bg-secondary);color:var(--text-secondary)}.filter-tab:hover,.filter-chip:hover,.status-filter:hover{background:var(--bg-tertiary)}.filter-tab.active,.filter-chip.active,.status-filter.active{background:var(--master-accent-primary);color:var(--text-inverse);border-color:var(--master-accent-primary)}.filter-tab:not(.active),.filter-chip:not(.active),.status-filter:not(.active){background:#fff;border:2px solid var(--border-color);color:var(--text-primary)}.filter-tab:not(.active):hover,.filter-chip:not(.active):hover,.status-filter:not(.active):hover{border-color:var(--master-accent-primary);color:var(--master-accent-primary)}.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)!important;border:1px solid var(--color-warning)!important;padding:.25rem .75rem;border-radius:var(--radius-full);font-size:var(--font-size-caption);font-weight:var(--font-weight-semibold);text-transform:uppercase}.status-badge.approved,.status-approved,.badge-approved{background:var(--color-success-bg)!important;color:var(--color-success-dark)!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)!important;border:1px solid var(--color-error)!important}.admin-permissions .btn,.staff-admin-permissions .btn{min-height:42px;padding:.625rem 1.25rem;font-size:var(--font-size-body);font-weight:var(--font-weight-semibold);border-radius:var(--radius-xl);white-space:nowrap}.users-table td .btn.btn-sm,table td .btn.btn-sm{min-height:34px;min-width:70px;padding:.4rem .75rem;font-size:var(--font-size-body-sm);font-weight:var(--font-weight-semibold);border-radius:var(--radius-lg)}.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-danger,.disable-all-btn{background:var(--color-error-dark);color:var(--text-inverse);border:none;border-radius:var(--radius-xl)}.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) 0%,var(--master-accent-dark) 100%);color:var(--text-inverse);padding:1rem 1.5rem;border-radius:var(--radius-2xl)}.stat-card .stat-value{font-size:var(--font-size-h2);font-weight:var(--font-weight-bold);line-height:1.2}.stat-card .stat-label{font-size:var(--font-size-body-sm);opacity:var(--opacity-hover);margin-top:.25rem}.stat-card:empty:after{content:"0";font-size:var(--font-size-h2);font-weight:var(--font-weight-bold)}.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) 0%,var(--color-primary) 100%)!important;color:var(--text-inverse);border-radius:var(--radius-2xl);text-align:center;display:flex;flex-direction:column;align-items:center;justify-content:center;box-shadow:var(--shadow-md)}.role-management .stat-card .stat-value{font-size:var(--font-size-h2);font-weight:var(--font-weight-bold);line-height:1.2;color:var(--text-inverse);margin:0}.role-management .stat-card .stat-label{font-size:var(--font-size-body-sm);opacity:var(--opacity-hover);margin-top:.25rem;color:var(--text-inverse);font-weight:var(--font-weight-medium)}.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:var(--font-size-body);font-weight:var(--font-weight-semibold);display:inline-flex;align-items:center;gap:.5rem;border-radius:var(--radius-xl)}.role-management .quick-actions .btn-danger{background:var(--color-error-dark)!important;color:var(--text-inverse)!important;border:none!important}.role-management .quick-actions .btn-danger:hover{background:var(--color-error-darker)!important}.role-management .role-card.enabled:before{background:linear-gradient(90deg,var(--master-accent-primary) 0%,var(--master-accent-dark) 100%)!important}.role-management .role-card.enabled{border-color:var(--master-accent-primary)!important;box-shadow:var(--shadow-md)}.role-management input:checked+.toggle-slider{background-color:var(--master-accent-primary)!important}.role-management .btn-demo{background:linear-gradient(135deg,var(--master-accent-primary) 0%,var(--color-primary) 100%)!important}.role-management .btn-demo:hover{box-shadow:var(--shadow-md)}.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:var(--radius-xl);padding:1rem 1.5rem;margin-bottom:1.5rem;display:flex;align-items:center;gap:.75rem}.warning-banner .warning-icon{color:var(--color-warning-dark);flex-shrink:0}.warning-banner p,.alert-warning p{margin:0;color:var(--color-warning-darker);font-size:var(--font-size-body)}.permissions-table,.admin-table{width:100%;border-collapse:collapse}.permissions-table th,.admin-table th{background:var(--bg-secondary);padding:.75rem 1rem;text-align:left;font-weight:var(--font-weight-semibold);font-size:var(--font-size-caption);text-transform:uppercase;letter-spacing:var(--letter-spacing-wide);color:var(--text-secondary);border-bottom:2px solid var(--border-color)}.permissions-table td,.admin-table td{padding:.75rem 1rem;border-bottom:1px solid var(--border-color);vertical-align:middle}.permissions-table tr:hover,.admin-table tr:hover{background:var(--bg-secondary)}.role-badge{display:inline-flex;align-items:center;padding:.25rem .75rem;border-radius:var(--radius-full);font-size:var(--font-size-caption);font-weight:var(--font-weight-semibold)}.role-badge.master-admin{background:var(--master-admin-bg-light);color:var(--master-admin-accent-dark)}.role-badge.department-admin,.role-badge.dept-admin{background:var(--dept-admin-bg-light);color:var(--dept-admin-accent-dark)}@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:var(--z-tooltip, 100000);padding:var(--space-md-sm) var(--space-lg);background:var(--color-primary);color:var(--text-inverse);font-size:var(--font-size-body);font-weight:var(--font-weight-bold);text-decoration:none;border-radius:0 0 var(--radius-xl) 0;box-shadow:var(--shadow-md);opacity:0;pointer-events:none}.skip-link:focus{top:0;left:0;opacity:1;pointer-events:auto;outline:var(--focus-ring-width) solid var(--color-primary);outline-offset:var(--focus-ring-offset)}*{margin:0;padding:0;box-sizing:border-box}body{font-family:var(--font-ui);font-size:var(--font-size-body);color:var(--text-primary);background-color:var(--surface-base);line-height:var(--line-height-body);letter-spacing:var(--letter-spacing-normal)}p{margin-bottom:var(--space-md);line-height:var(--line-height-body-lg)}h1,h2,h3,h4,h5,h6{font-family:var(--font-headline);color:var(--color-headings);line-height:1.2;letter-spacing:var(--letter-spacing-tight)}h1{font-size:var(--font-size-h1);font-weight:var(--font-weight-bold);margin-bottom:var(--space-xl)}h2{font-size:var(--font-size-h2);font-weight:var(--font-weight-regular);margin-bottom:var(--space-lg)}h3{font-size:var(--font-size-h3);font-weight:var(--font-weight-semibold);margin-bottom:var(--space-md)}h4{font-size:var(--font-size-h4);font-weight:var(--font-weight-semibold);margin-bottom:var(--space-md)}h5{font-size:var(--font-size-body-lg);font-weight:var(--font-weight-semibold);margin-bottom:var(--space-sm)}h6{font-size:var(--font-size-body);font-weight:var(--font-weight-semibold);margin-bottom:var(--space-sm)}.mono{font-family:var(--font-mono, "Courier New", Courier, monospace);font-variant-numeric:tabular-nums;letter-spacing:var(--letter-spacing-normal)}a{color:var(--color-primary);text-decoration:none;transition:color var(--duration-normal) var(--ease-in-out)}a:hover{color:var(--color-accent-hover)}.portal-layout-body{display:flex;min-height:calc(100vh - var(--nav-height))}.portal-main-content{flex:1;min-width:0;padding:var(--space-page-y) var(--space-page-x);max-width:1200px}@media (min-width: 1024px){.portal-main-content{padding:var(--space-2xl) var(--space-xl)}}.form-group input,.form-input{width:100%;padding:var(--space-sm) 0;border:none;border-bottom:1px solid var(--input-border);border-radius:0;font-family:var(--font-ui);font-size:var(--font-size-body);color:var(--text-primary);background:var(--input-bg);transition:border-color var(--duration-normal) var(--ease-in-out);line-height:var(--line-height-body);margin-bottom:var(--space-md)}.form-group input:focus,.form-input:focus{outline:none;border-bottom-color:var(--input-border-focus);box-shadow:none}.form-group input::placeholder,.form-input::placeholder{color:var(--color-subtle)}.form-select,.select-input{width:100%;padding:var(--space-sm) 0;border:none;border-bottom:1px solid var(--input-border);border-radius:0;font-family:var(--font-ui);font-size:var(--font-size-body);color:var(--text-primary);background:var(--input-bg);cursor:pointer;transition:border-color var(--duration-normal) var(--ease-in-out)}.form-select:focus,.select-input:focus{outline:none;border-bottom-color:var(--input-border-focus);box-shadow:none}.error-message{background:var(--color-error-pale);color:var(--color-error);padding:var(--space-md);border-radius:var(--radius-sm);margin-bottom:var(--space-lg)}.demo-accounts h3{text-align:center;margin-bottom:var(--space-lg);color:var(--text-primary)}.demo-accounts-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--space-lg)}.btn-large{padding:var(--space-xl);display:flex;flex-direction:column;align-items:center;gap:var(--space-sm);text-align:center;min-height:140px;justify-content:center}.role-icon{font-size:var(--font-size-body-lg);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:var(--font-size-h4);font-weight:var(--font-weight-semibold);display:block}.role-desc{font-size:var(--font-size-body);opacity:var(--opacity-hover);display:block}.loading-message{text-align:center;margin-top:var(--space-lg);color:var(--primary-color);font-weight:var(--font-weight-medium)}@media (max-width: 480px){.demo-accounts-grid{grid-template-columns:1fr}.btn-large{min-height:120px}}.btn{padding:var(--space-md-sm) var(--space-lg);border:none;border-radius:var(--radius-sm);font-family:var(--font-ui);font-weight:var(--font-weight-semibold);font-size:var(--font-size-base);cursor:pointer;transition:all var(--duration-normal) var(--ease-in-out);min-height:var(--touch-target-min);display:inline-flex;align-items:center;justify-content:center;line-height:1.5;letter-spacing:var(--letter-spacing-wide);margin:var(--space-sm) 0}.btn:disabled{opacity:var(--opacity-muted);cursor:not-allowed}.btn-sm{padding:calc(var(--space-md) / 2) var(--space-md);font-size:var(--font-size-sm);min-height:auto}.btn-block{width:100%;margin-top:var(--space-md)}.nav-link{font-family:var(--font-ui);font-size:var(--font-size-base);font-weight:var(--font-weight-regular);color:var(--text-primary);text-decoration:none;padding:var(--space-md) var(--space-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:var(--text-inverse)!important;font-weight:var(--font-weight-medium);padding:var(--space-sm) var(--space-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(--space-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:var(--z-modal-backdrop, 1000);opacity:0;visibility:hidden;transform:translateY(-10px);transition:all .3s cubic-bezier(.4,0,.2,1);margin-top:var(--space-sm)}.nav-dropdown.open .dropdown-menu{opacity:1;visibility:visible;transform:translateY(0)}.dropdown-item{display:block;padding:var(--space-md) var(--space-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(--space-xl);max-width:1200px;margin:0 auto}.dashboard-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:var(--space-lg);margin-top:var(--space-xl)}.dashboard-card{background:var(--bg-card);border:1px solid var(--border-color-light);border-radius:var(--radius-lg);padding:var(--space-2xl);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(--space-lg)}.equipment-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:var(--space-2xl);padding:var(--space-2xl) 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(--space-2xl)}.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) 0%,var(--bg-tertiary) 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(--space-lg);line-height:var(--line-height-relaxed)}.equipment-info p{margin-bottom:var(--space-lg)}.equipment-meta{display:flex;justify-content:space-between;margin-bottom:var(--space-md)}.status{display:inline-flex;align-items:center;justify-content:center;height:var(--density-button-height);padding:0 var(--space-md);border-radius:var(--radius-lg);font-family:var(--font-ui);font-weight:var(--font-weight-semibold);font-size:var(--font-size-caption);text-transform:capitalize;border:none}.status-available{background:var(--color-primary-50);color:var(--text-inverse)}.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(--space-md)}}.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)}.equipment-summary{background:var(--surface);padding:var(--space-md);border-radius:var(--border-radius);margin-bottom:var(--space-lg)}.equipment-summary h3{margin:0 0 var(--space-sm) 0}.equipment-summary p{margin:0;color:var(--text-secondary)}.form-group textarea{width:100%;padding:var(--space-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:var(--font-size-body)}.my-bookings .subtitle{color:var(--text-secondary);margin-bottom:var(--density-section-gap, var(--space-md));font-size:var(--density-caption-size, var(--font-size-sm))}.bookings-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--density-section-gap, var(--space-md));gap:var(--density-card-gap, var(--space-sm))}.bookings-header h2{margin:0;font-size:var(--density-heading-size, var(--font-size-h3))}.export-actions{display:flex;gap:var(--density-inline-gap, var(--space-xs))}.bookings-table{width:100%;border-collapse:collapse;background:var(--surface-base);border:1px solid var(--table-border);border-radius:var(--table-radius);overflow:hidden}.bookings-table thead{background:var(--table-header-bg);position:sticky;top:0;z-index:var(--z-above, 1)}.bookings-table th{padding:var(--table-cell-padding);text-align:left;font-family:var(--table-header-font);font-size:var(--table-header-size);font-weight:var(--table-header-weight);color:var(--table-header-color);text-transform:var(--table-header-transform);letter-spacing:var(--table-header-tracking);border-bottom:1px solid var(--table-border);white-space:nowrap}.bookings-table td{padding:var(--table-cell-padding);border-bottom:1px solid var(--table-border);font-family:var(--table-body-font);font-size:var(--table-body-size);color:var(--table-body-color);vertical-align:middle}.bookings-table tbody tr:hover{background-color:var(--table-hover-bg)}.bookings-table tbody tr:last-child td{border-bottom:none}.booking-name-cell{display:flex;flex-direction:column;gap:1px}.booking-equipment-name{font-weight:var(--font-weight-semibold, 600);color:var(--color-headings, var(--text-primary))}.booking-equipment-category{font-size:var(--table-header-size);color:var(--color-accent, var(--text-secondary));text-transform:uppercase;letter-spacing:var(--letter-spacing-wide)}.booking-dates-cell{white-space:nowrap}.date-separator{margin:0 3px;color:var(--color-subtle, var(--text-tertiary))}.booking-purpose-cell{max-width:200px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--color-muted, var(--text-secondary))}.denial-reason-inline{display:block;font-size:var(--font-size-caption, .75rem);color:var(--color-error);margin-top:var(--space-2xs);max-width:150px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.no-permission-label{font-size:var(--density-caption-size, .75rem);color:var(--color-subtle);font-style:italic}.booking-actions-cell{display:flex;gap:var(--density-inline-gap, 4px);align-items:center;white-space:nowrap}@media (max-width: 768px){.bookings-table thead{display:none}.bookings-table,.bookings-table tbody,.bookings-table tr,.bookings-table td{display:block}.bookings-table tr{border:1px solid var(--color-border);border-radius:var(--radius-sm);margin-bottom:var(--density-card-gap, 8px);padding:var(--density-card-padding)}.bookings-table td{border-bottom:none;padding:var(--density-inline-gap, 4px) 0}.bookings-table td:before{content:attr(data-label);font-size:var(--table-header-size);font-weight:var(--font-weight-semibold, 600);text-transform:uppercase;letter-spacing:var(--letter-spacing-wide);color:var(--color-muted);margin-right:var(--density-inline-gap)}.booking-actions-cell{padding-top:var(--density-inline-gap)!important;border-top:1px solid var(--color-border)!important;margin-top:var(--density-inline-gap)}}.bookings-list{display:flex;flex-direction:column;gap:var(--density-card-gap, var(--space-sm))}.booking-item{background:var(--bg-card);border:1px solid var(--color-border, var(--border-color-light));border-radius:var(--radius-sm);padding:var(--density-card-padding);transition:border-color var(--duration-fast) var(--ease-in-out)}.booking-item:hover{border-color:var(--color-accent-border)}.booking-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:var(--density-inline-gap)}.booking-header h3{margin:0 0 var(--space-2xs) 0;font-size:var(--table-body-size)}.booking-header .category{color:var(--color-accent, var(--primary-color));font-size:var(--table-header-size);margin:0;text-transform:uppercase;letter-spacing:var(--letter-spacing-wide)}.status-badge{padding:var(--space-2xs) var(--space-xs)!important;border-radius:var(--radius-sm);font-family:var(--font-ui, var(--font-primary));font-size:var(--font-size-caption, var(--font-size-xs))!important;font-weight:var(--font-weight-semibold);text-transform:uppercase;letter-spacing:var(--letter-spacing-wide);display:inline-block;line-height:1.4;white-space:nowrap}.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(--density-inline-gap, var(--space-xs))}.detail-row{display:flex;gap:var(--density-card-padding, var(--space-sm));font-size:var(--density-body-size, .875rem)}.detail-row .label{font-weight:var(--font-weight-medium, 500);color:var(--color-muted, var(--text-secondary));min-width:80px;font-size:var(--table-header-size);text-transform:uppercase;letter-spacing:var(--letter-spacing-wide)}.detail-row.error{color:var(--color-error, var(--error-color))}.booking-actions{margin-top:var(--density-inline-gap, var(--space-sm));padding-top:var(--density-inline-gap, var(--space-sm));border-top:1px solid var(--color-border, var(--border-color));display:flex;gap:var(--density-inline-gap, var(--space-xs))}.admin-dashboard .subtitle{color:var(--text-secondary);margin-bottom:var(--space-xl)}.stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:var(--space-lg);margin-bottom:var(--space-2xl)}.stat-card{background:var(--bg-card);border:1px solid var(--border-color-light);border-radius:var(--radius-lg);padding:var(--space-xl);display:flex;align-items:center;gap:var(--space-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:var(--font-size-body-lg);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:var(--font-size-h2);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:var(--font-size-body);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(--space-xl);box-shadow:var(--shadow-sm)}.dashboard-actions h3{margin-bottom:var(--space-lg)}.action-buttons{display:flex;gap:var(--space-md);flex-wrap:wrap}.booking-approvals .approvals-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--space-xl);flex-wrap:wrap;gap:var(--space-md)}.approvals-list{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--space-md);width:100%;align-items:start}@media (max-width: 900px){.approvals-list{grid-template-columns:1fr}}.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(--space-md);box-shadow:var(--shadow-sm);transition:var(--transition-shadow)}.approval-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:var(--space-sm)}.approval-header h3{margin:0 0 var(--space-2xs) 0;font-size:var(--font-size-body);font-weight:var(--font-semibold)}.student-name{color:var(--text-secondary);font-size:var(--font-size-sm);margin:0}.approval-details{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-2xs) var(--space-sm);margin-bottom:var(--space-sm)}.approval-details .detail-row{grid-column:span 1;flex-direction:column;gap:2px}.approval-details .detail-row .label{min-width:unset;font-size:.65rem}.approval-details .detail-row:nth-child(3),.approval-details .detail-row.error{grid-column:1 / -1}.approval-actions{display:flex;align-items:center;justify-content:space-between;gap:var(--space-sm);padding-top:var(--space-sm);border-top:1px solid var(--border-color);flex-wrap:wrap}.approval-actions-row{flex:1;min-width:0}.approval-actions-buttons{display:flex;gap:var(--space-xs);flex-shrink:0}@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(--space-xl)}.booking-controls{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:var(--space-lg);margin-bottom:var(--space-xl)}.select-input,.date-input{width:100%;padding:var(--space-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(--space-lg);margin-bottom:var(--space-xl);box-shadow:var(--shadow-sm)}.space-details h3{margin:0 0 var(--space-sm) 0}.space-details p{margin:var(--space-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(--space-xl);box-shadow:var(--shadow-sm)}.time-slots-grid h3{margin-bottom:var(--space-lg)}.slots-container{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:var(--space-md)}.time-slot{padding:var(--space-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:var(--opacity-subtle)}.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:var(--font-size-caption);margin-top:var(--space-xs)}.booking-summary{background:var(--surface);padding:var(--space-md);border-radius:var(--border-radius);margin-bottom:var(--space-lg)}.booking-summary p{margin:var(--space-sm) 0}@media (max-width: 768px){.booking-controls,.slots-container{grid-template-columns:1fr}}.feature-flags .subtitle{color:var(--text-secondary);margin-bottom:var(--space-xl)}.warning-banner{background:var(--color-warning-pale);color:var(--color-warning);padding:var(--space-lg);border-radius:var(--radius-lg);margin-bottom:var(--space-xl);border-left:4px solid var(--color-warning)}.flags-list{display:flex;flex-direction:column;gap:var(--space-lg);margin-bottom:var(--space-xl)}.flag-item{background:var(--bg-card);border:1px solid var(--border-color-light);border-radius:var(--radius-lg);padding:var(--space-lg);display:flex;justify-content:space-between;align-items:center;gap:var(--space-lg);box-shadow:var(--shadow-sm);transition:var(--transition-shadow)}.flag-info h3{margin:0 0 var(--space-sm) 0;font-size:var(--font-size-h4)}.flag-description{color:var(--text-secondary);margin:var(--space-sm) 0}.flag-meta{margin:var(--space-sm) 0 0 0}.role-badge{background:var(--surface);padding:.25rem .75rem;border-radius:var(--radius-2xl);font-size:var(--font-size-caption);font-weight:var(--font-weight-medium);color:var(--text-secondary)}.flag-toggle{display:flex;align-items:center;gap:var(--space-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);transition:.4s;border-radius:var(--radius-full)}.slider:before{position:absolute;content:"";height:26px;width:26px;left:4px;bottom:4px;background-color:var(--surface-base);transition:.4s;border-radius:50%}input:checked+.slider{background-color:var(--success-color)}input:checked+.slider:before{transform:translate(26px)}input:disabled+.slider{opacity:var(--opacity-muted);cursor:not-allowed}.status-enabled{color:var(--success-color);font-weight:var(--font-weight-medium)}.status-disabled{color:var(--error-color);font-weight:var(--font-weight-medium)}.flags-info{background:var(--surface);padding:var(--space-xl);border-radius:var(--border-radius)}.flags-info h3{margin-bottom:var(--space-md)}.flags-info ul{list-style-position:inside;color:var(--text-secondary)}.flags-info li{margin:var(--space-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(--space-xl) 0;box-shadow:var(--shadow-sm)}.equipment-table table,.users-table table{width:100%;border-collapse:collapse;font-family:var(--font-ui);font-size:var(--font-size-base)}.equipment-table th,.equipment-table td,.users-table th,.users-table td{padding:var(--space-lg) var(--space-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(--space-sm);border:none;border-radius:var(--border-radius);font-size:var(--font-size-body);appearance:none;-webkit-appearance:none;-moz-appearance:none;outline:none}.equipment-stats{color:var(--text-secondary);text-align:center;padding:var(--space-md)}.analytics-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:var(--space-xl);flex-wrap:wrap;gap:var(--space-md)}.analytics-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:var(--space-lg);margin-top:var(--space-xl)}.analytics-card{background:var(--bg-card);border:1px solid var(--border-color-light);border-radius:var(--radius-lg);padding:var(--space-xl);box-shadow:var(--shadow-sm);transition:var(--transition-shadow)}.analytics-card h3{margin:0 0 var(--space-lg) 0}.chart-list{display:flex;flex-direction:column;gap:var(--space-md)}.chart-item{display:flex;align-items:center;gap:var(--space-md)}.item-name{min-width:120px;font-size:var(--font-size-body)}.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:var(--font-weight-medium);min-width:80px;text-align:right;font-size:var(--font-size-body)}@media (max-width: 768px){.flag-item{flex-direction:column;align-items:flex-start}.equipment-table{font-size:var(--font-size-body)}.analytics-grid{grid-template-columns:1fr}.item-name{min-width:80px}}.equipment-notes-section{margin-top:var(--space-2xl);padding-top:var(--space-xl);border-top:1px solid var(--border-color)}.notes-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--space-lg)}.notes-header h3{margin:0}.empty-notes{text-align:center;padding:var(--space-2xl);color:var(--text-secondary)}.notes-list{display:flex;flex-direction:column;gap:var(--space-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(--space-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(--space-md);gap:var(--space-md)}.note-type{display:flex;align-items:center;gap:var(--space-sm)}.note-icon{font-size:var(--font-size-body);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:var(--font-weight-semibold);text-transform:capitalize;color:var(--text-primary)}.note-meta{display:flex;flex-direction:column;align-items:flex-end;gap:.25rem;font-size:var(--font-size-body);color:var(--text-secondary)}.note-creator{font-weight:var(--font-weight-medium)}.note-date{font-size:var(--font-size-caption)}.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-ui);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(--space-lg);border-radius:var(--border-radius);margin-bottom:var(--space-xl)}.detail-row{display:flex;padding:var(--space-sm) 0;border-bottom:1px solid var(--border-color)}.detail-row:last-child{border-bottom:none}.detail-label{font-weight:var(--font-weight-semibold);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(--space-xl)}.management-controls{margin-bottom:var(--space-xl)}.filter-controls{display:flex;gap:var(--space-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-ui);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:var(--radius-2xl);font-size:var(--font-size-body);font-weight:var(--font-weight-medium);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(--space-sm)}.btn-danger{background-color:var(--color-error);color:var(--text-light)}.btn-danger:hover:not(:disabled){background-color:var(--color-error-dark)}.users-stats{color:var(--text-secondary);text-align:center;padding:var(--space-md)}.form-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--space-lg);margin-bottom:var(--space-xl)}.form-input{width:100%;padding:var(--space-md);border:1px solid var(--border-color);border-radius:var(--border-radius);font-size:var(--font-size-body-lg)}.form-input:focus{outline:none;border-color:var(--primary-color)}.form-input:disabled{background:var(--surface);cursor:not-allowed;opacity:var(--opacity-subtle)}.access-denied{text-align:center;padding:var(--space-2xl);background:var(--bg-card);border:1px solid var(--border-color-light);border-radius:var(--radius-xl);margin:var(--space-2xl) auto;max-width:600px;box-shadow:var(--shadow-lg)}.access-denied h2{color:var(--error-color);margin-bottom:var(--space-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:var(--font-size-body);color:var(--text-secondary);line-height:1.5}.email-status code{background:var(--bg-primary);padding:.2rem .4rem;border-radius:var(--radius-sm);font-family:Courier New,monospace;font-size:var(--font-size-body)}.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:var(--font-size-h4)}.email-config-form .form-group label{display:block;margin-bottom:.5rem;font-weight:var(--font-weight-medium);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:var(--font-size-body-lg)}.email-config-form .form-group input:disabled{opacity:var(--opacity-subtle);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:var(--font-size-body)}.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:var(--font-size-body);font-weight:var(--font-weight-medium)}.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:var(--font-weight-semibold);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:var(--font-size-body);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:var(--font-size-h4)}.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:var(--font-size-h2);font-weight:var(--font-weight-bold);color:var(--primary-color)}.stat-card.warning .stat-number{color:var(--warning-color)}.stat-label{display:block;margin-top:.5rem;font-size:var(--font-size-body);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:var(--font-weight-semibold)}.duplicate-table small{color:var(--text-secondary);font-size:var(--font-size-body)}.action-badge{display:inline-block;padding:.25rem .75rem;background:var(--warning-bg);color:var(--warning-color);border-radius:var(--radius-2xl);font-size:var(--font-size-body);font-weight:var(--font-weight-medium)}.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:var(--font-size-display);font-weight:var(--font-weight-bold);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:var(--font-size-body-lg);color:var(--text-primary);font-weight:var(--font-weight-medium)}.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:var(--font-size-body)}.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));background-color:var(--color-white)!important;border-radius:var(--radius-lg, 12px);box-shadow:var(--shadow-xl, 0 20px 25px -5px var(--overlay-10), 0 10px 10px -5px var(--overlay-4));padding:var(--space-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:var(--z-modal, 9999);border:1px solid var(--color-border)}@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(--space-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(--space-md);line-height:1}.toast-close:hover{color:var(--text-primary)}.view-toggle{display:flex;gap:10px;margin-bottom:var(--space-md);justify-content:flex-end}.btn-view{padding:var(--space-sm) var(--space-md);border:1px solid var(--border-color);background:var(--bg-card);border-radius:var(--radius-sm);cursor:pointer;transition:var(--transition-all);font-size:var(--font-size-body);font-family:var(--font-ui);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:var(--space-md-sm);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-ui);font-size:var(--font-size-base)}.equipment-table-compact td{color:var(--text-primary);font-family:var(--font-ui);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:var(--font-size-body)}.equipment-table-compact th,.equipment-table-compact td{padding:var(--space-sm)}}.equipment-details{max-width:700px;width:100%}.equipment-details .modal-header{display:flex;justify-content:space-between;align-items:center;padding-bottom:var(--space-md);border-bottom:1px solid var(--border-color);margin-bottom:var(--space-lg)}.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(--space-lg)}.equipment-image-large .image-placeholder{font-size:var(--font-size-display);color:var(--text-muted)}.equipment-details-info{display:flex;flex-direction:column;gap:var(--space-md)}.detail-row{display:flex;align-items:flex-start;gap:var(--space-md)}.detail-row .label{font-weight:var(--font-weight-semibold);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(--space-sm);line-height:1.6}@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(--space-2xl);padding:var(--space-2xl) 0}.department-card{background:var(--bg-card);border-radius:var(--radius-lg);padding:var(--space-2xl);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(--space-2xl)}.student-table-row.selected{background:var(--portal-admin-bg)}.bulk-action-bar{position:sticky;top:0;background:var(--bg-card);padding:var(--space-lg);box-shadow:var(--shadow-md);border-radius:var(--radius-lg);margin-bottom:var(--space-xl);display:flex;gap:var(--space-lg);align-items:center}.interdisciplinary-layout{display:grid;grid-template-columns:2fr 3fr;gap:var(--space-2xl)}.access-grant-form{background:var(--bg-card);padding:var(--space-2xl);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:var(--opacity-hover)}.interdisciplinary-badge{display:inline-flex;padding:var(--space-xs) var(--space-md-sm);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(--space-sm);align-items:center;gap:4px}.stat-badge{display:inline-flex;align-items:center;gap:4px;padding:var(--space-xs) var(--space-md-sm);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:var(--space-xs) var(--space-md-sm);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(--space-lg);width:100%;max-width:600px}.search-input{width:100%;padding:var(--space-md) var(--space-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(--space-md);top:50%;transform:translateY(-50%);background:none;border:none;color:var(--text-muted);cursor:pointer;padding:var(--space-sm) var(--space-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(--space-2xl);margin-bottom:var(--space-2xl)}.pagination-info{text-align:center;color:var(--text-muted);font-size:var(--font-size-sm);margin-bottom:var(--space-md)}.pagination-controls{display:flex;align-items:center;justify-content:center;gap:var(--space-sm)}.pagination-pages{display:flex;gap:var(--space-xs);align-items:center}.pagination-ellipsis{color:var(--text-muted);padding:0 var(--space-xs)}.pagination-mobile{display:none}@media (max-width: 768px){.pagination-controls{display:none}.pagination-mobile{display:block;margin-top:var(--space-lg)}}.notification-center{position:relative}.notification-bell{position:relative;background:none;border:none;cursor:pointer;padding:var(--space-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:var(--text-inverse);font-size:var(--font-size-label);font-weight:var(--font-weight-bold);border-radius:var(--radius-2xl);padding:var(--space-2xs) var(--space-xs);min-width:18px;text-align:center}.notification-dropdown{position:absolute;top:calc(100% + var(--space-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:var(--z-modal-backdrop, 1000);max-height:500px;display:flex;flex-direction:column}.notification-header{display:flex;justify-content:space-between;align-items:center;padding:var(--space-lg);border-bottom:1px solid var(--border-color)}.notification-header h3{margin:0;font-size:var(--font-size-lg)}.notification-list{overflow-y:auto;max-height:400px}.notification-empty{padding:var(--space-2xl);text-align:center;color:var(--text-muted)}.notification-item{display:flex;align-items:flex-start;gap:var(--space-md);padding:var(--space-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:var(--opacity-hover)}.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(--space-xs)}.unread-dot{position:absolute;top:var(--space-lg);right:var(--space-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:var(--opacity-muted)}}.skeleton-card{background:var(--bg-primary);border:1px solid var(--border-color);border-radius:var(--radius-lg);padding:var(--space-lg);margin-bottom:var(--space-lg)}.skeleton-image{width:100%;height:200px;background:var(--bg-secondary);border-radius:var(--radius-md);margin-bottom:var(--space-md)}.skeleton-content{display:flex;flex-direction:column;gap:var(--space-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(--space-md)}.skeleton-row td{padding:var(--space-md)}.skeleton-list-item{padding:var(--space-md);border-bottom:1px solid var(--border-color)}.skeleton-block{padding:var(--space-lg)}.error-boundary{min-height:400px;display:flex;align-items:center;justify-content:center;padding:var(--space-2xl)}.error-boundary-content{max-width:600px;text-align:center;background:var(--bg-primary);padding:var(--space-2xl);border-radius:var(--radius-xl);box-shadow:var(--shadow-lg)}.error-boundary-content h2{color:var(--color-error);margin-bottom:var(--space-lg)}.error-boundary-content p{color:var(--text-secondary);margin-bottom:var(--space-2xl)}.error-details{text-align:left;margin:var(--space-xl) 0;padding:var(--space-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(--space-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(--space-md);justify-content:center}.booking-conflict-calendar{margin:var(--space-lg) 0;padding:var(--space-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(--space-md);gap:var(--space-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(--space-md);margin-bottom:var(--space-md);flex-wrap:wrap;justify-content:center}.booking-conflict-calendar .legend-item{display:flex;align-items:center;gap:var(--space-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)}.booking-conflict-calendar .legend-color.selected{background:var(--color-primary-pale)}.booking-conflict-calendar .legend-color.past{background:var(--bg-tertiary)}.booking-conflict-calendar .calendar-grid{display:block!important;grid-template-columns:none!important;background:var(--bg-primary);border-radius:var(--radius-md);padding:var(--space-md)}.booking-conflict-calendar .calendar-days-header{display:grid;grid-template-columns:repeat(7,1fr);gap:var(--space-xs);margin-bottom:var(--space-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(--space-xs)}.booking-conflict-calendar .calendar-days{display:grid;grid-template-columns:repeat(7,1fr);gap:var(--space-xs)}.booking-conflict-calendar .calendar-info{margin-top:var(--space-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);border:1px solid var(--border-color);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);color:var(--color-error);font-weight:var(--font-weight-semibold)}.booking-conflict-calendar .calendar-day.selected{background:var(--color-primary-pale);color:var(--color-primary);font-weight:var(--font-weight-semibold);border-color:var(--color-primary)}.booking-conflict-calendar .calendar-day.past{background:var(--bg-tertiary);color:var(--text-muted);opacity:var(--opacity-muted)}@media (max-width: 768px){.booking-conflict-calendar .calendar-header{flex-direction:row;gap:var(--space-sm)}.booking-conflict-calendar .calendar-legend{justify-content:center;gap:var(--space-sm)}.booking-conflict-calendar .legend-item{font-size:var(--font-size-label)}.booking-conflict-calendar .calendar-day{font-size:var(--font-size-caption);min-height:28px}.booking-conflict-calendar .calendar-day-name{font-size:var(--font-size-label)}}.bulk-action-bar{position:sticky;top:0;z-index:var(--z-sticky, 100);background:var(--color-primary-pale);border:2px solid var(--color-primary);border-radius:var(--radius-lg);padding:var(--space-lg);margin-bottom:var(--space-xl);display:flex;justify-content:space-between;align-items:center;gap:var(--space-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(--space-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(--space-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(--space-sm)}.bulk-action-buttons{width:100%}.bulk-action-buttons button{flex:1}}.availability-filter{margin-bottom:var(--space-lg);padding:var(--space-lg);background:var(--bg-secondary);border-radius:var(--radius-lg)}.filter-label{margin-bottom:var(--space-sm)}.filter-options{display:flex;gap:var(--space-sm);flex-wrap:wrap;margin-bottom:var(--space-md)}.custom-date-picker{margin-top:var(--space-md);animation:slideDown .3s ease-out}.date-input{width:100%;max-width:240px;padding:var(--space-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(--space-xl)}.form-label{display:block;font-weight:var(--font-weight-semibold);margin-bottom:var(--space-sm);color:var(--text-primary);font-size:var(--font-size-base)}.required-indicator{color:var(--color-error);margin-left:var(--space-xs);font-weight:var(--font-weight-bold)}.form-input,.form-textarea,.form-select{width:100%;padding:var(--space-md);font-size:var(--font-size-base);font-family:var(--font-ui);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:var(--opacity-subtle)}.form-textarea{resize:vertical;min-height:100px}.form-select{cursor:pointer}.form-help-text{margin-top:var(--space-sm);font-size:var(--font-size-sm);color:var(--text-muted);line-height:var(--line-height-normal)}.form-error{margin-top:var(--space-sm);font-size:var(--font-size-sm);color:var(--color-error);font-weight:var(--font-weight-semibold);display:flex;align-items:center;gap:var(--space-xs)}.btn-quick-rebook{display:inline-flex;align-items:center;gap:var(--space-sm);padding:var(--space-sm) var(--space-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:var(--text-inverse);transform:translateY(-1px);box-shadow:var(--shadow-sm)}.btn-quick-rebook:disabled{opacity:var(--opacity-muted);cursor:not-allowed}.modal{position:fixed;top:0;left:0;right:0;bottom:0;z-index:var(--z-modal-backdrop, 1000);display:flex;align-items:center;justify-content:center;padding:var(--space-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}@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}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}html{scroll-behavior:auto!important}html[data-density],body,.app-container,.portal-layout,.sidebar,.main-content{transition:none!important}}@media (max-width: 768px){.header-content{flex-direction:column;gap:var(--space-sm);align-items:stretch}.header-actions{justify-content:flex-end}.portal-nav{overflow-x:auto;-webkit-overflow-scrolling:touch;flex-wrap:nowrap;padding:var(--space-sm);gap:var(--space-sm)}.nav-link{white-space:nowrap;min-height:44px;display:inline-flex;align-items:center}.portal-main{padding:var(--space-md)}.form-grid{grid-template-columns:1fr;gap:var(--space-md)}.dashboard-grid{grid-template-columns:1fr}.analytics-header{flex-direction:column;align-items:stretch}.booking-controls{grid-template-columns:1fr}.slots-container{grid-template-columns:repeat(2,1fr)}.approval-actions{flex-direction:column}.approval-actions .btn{width:100%;min-height:44px}.approval-header{flex-direction:column;gap:var(--space-sm)}.flag-item{flex-direction:column;align-items:stretch}.modal-actions{flex-direction:column}.modal-actions .btn{width:100%;min-height:44px}.dropdown-menu{min-width:180px;right:0;left:auto}.equipment-table,.users-table{overflow-x:auto;-webkit-overflow-scrolling:touch}.search-input{min-width:100%}.btn,.btn-sm{min-height:44px}.chart-item{flex-direction:column;align-items:stretch;gap:var(--space-xs)}.item-name{min-width:auto}.item-count{text-align:left}.note-header{flex-direction:column}.note-meta{align-items:flex-start}.detail-row{flex-direction:column;gap:.25rem}.detail-label{min-width:auto}.csv-import{padding:var(--space-md)}.email-config-section{padding:var(--space-lg)}}@media (min-width: 768px) and (max-width: 1024px){.dashboard-grid{grid-template-columns:repeat(2,1fr)}.portal-main{padding:var(--space-lg)}.form-grid{grid-template-columns:repeat(2,1fr)}.btn{min-height:44px}}@media (min-width: 1440px){.portal-main,.header-content{max-width:1440px;margin:0 auto}}@media (min-width: 1920px){.portal-main,.header-content{max-width:1600px}}
