@import"https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&family=Outfit:wght@400;500;600;700&display=swap";*{box-sizing:border-box;margin:0;padding:0}*:focus{outline:none;background-color:transparent}html,body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;margin:0;padding:0;height:100%;line-height:normal}#root{height:100%}*,*:before,*:after{box-sizing:border-box}html{font-family:"Inter, system-ui, -apple-system, sans-serif";line-height:1.6;font-weight:400;color-scheme:light;color:#111827;background-color:#fff;font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{margin:0;display:flex;place-items:center;min-width:320px;min-height:100vh;background-color:#f9fafb}#root{width:100%;min-height:100vh}h1,h2,h3,h4,h5,h6{margin:0;font-weight:600;line-height:1.2}h1{font-size:3rem}h2{font-size:2.25rem}h3{font-size:1.875rem}h4{font-size:1.5rem}h5{font-size:1.25rem}h6{font-size:1.125rem}p{margin:0;line-height:line-height("relaxed")}a{font-weight:500;color:#4d4d4d;text-decoration:none;transition:color .15s ease-in-out}a:focus-visible{outline:2px solid #4d4d4d;outline-offset:2px}.sr-only,.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.focus-ring:focus-visible{outline:2px solid #4d4d4d;outline-offset:2px}.controls-row{display:flex;justify-content:space-between;align-items:center;gap:1rem;flex-wrap:wrap}.controls-row .controls-left{display:flex;align-items:center;gap:1rem;flex:1;max-width:500px}.controls-row .controls-right{display:flex;align-items:center;gap:.75rem}.table-container,.table-wrapper{background:#fff;border-radius:.5rem;border:1px solid #f3f4f6;box-shadow:"0 1px 2px 0 rgba(0, 0, 0, 0.05)";overflow:auto hidden}@media(prefers-color-scheme:dark){html{color:#f3f4f6;background-color:#111827}body{background-color:#1f2937}}:root{--color-white: #ffffff;--color-black: #0e0e0e;--color-grey-primary: #5e5e5e;--color-grey-light: #f9f9f9;--color-grey-border: #c2c2c2;--color-grey-surface: #f6f8f9;--color-bits-blue: #1a165a;--color-bits-sky: #76c2e5;--color-bits-red: #ed1c24;--color-bits-orange: #f0a413;--color-bits-orange-alt: #e8982f;--color-action-default: var(--color-bits-blue);--color-action-hover: #15114a;--color-action-disabled: #9e9e9e;--color-brand-100: #d9d8ef;--color-brand-200: #b5b2dd;--color-brand-300: var(--color-bits-blue);--color-brand-400: #15114a;--color-brand-500: #100d3c;--color-brand-600: #0b092d;--color-brand-light: var(--color-grey-surface);--color-brand-light-hover: #eef2f5;--color-brand-gradient: linear-gradient( 135deg, var(--color-bits-blue) 0%, var(--color-bits-sky) 100% );--color-accent-blue: var(--color-bits-sky);--color-accent-red: var(--color-bits-red);--color-accent-orange: var(--color-bits-orange);--color-accent-orange-alt: var(--color-bits-orange-alt);--color-contrast-brand: var(--color-white);--color-contrast-white: var(--color-white);--color-contrast-black: var(--color-black);--color-contrast-focused: var(--color-bits-blue);--color-feedback-danger-100: #fde8e9;--color-feedback-danger-200: #f9c2c4;--color-feedback-danger-300: #f16f75;--color-feedback-danger-400: #e5484d;--color-feedback-danger-500: #c72c32;--color-feedback-danger-600: #9f1f24;--color-feedback-positive-100: #e4f7eb;--color-feedback-positive-200: #bdeacb;--color-feedback-positive-300: #6dcb8d;--color-feedback-positive-400: #2ea85d;--color-feedback-positive-500: #228247;--color-feedback-positive-600: #196438;--color-feedback-warning-100: #fdf2dc;--color-feedback-warning-200: #f9d8a5;--color-feedback-warning-300: #f4b14c;--color-feedback-warning-400: #e8982f;--color-feedback-warning-500: #c77e14;--color-feedback-warning-600: #9c620e;--color-feedback-info-100: #e6f5fb;--color-feedback-info-200: #c6e7f4;--color-feedback-info-300: var(--color-bits-sky);--color-feedback-info-400: #52afd8;--color-feedback-info-500: #3198c4;--color-feedback-info-600: #217da3;--color-neutral-50: var(--color-grey-light);--color-neutral-75: var(--color-grey-surface);--color-neutral-100: var(--color-white);--color-neutral-200: #e6e6e6;--color-neutral-300: var(--color-grey-border);--color-neutral-400: #999999;--color-neutral-500: var(--color-grey-primary);--color-neutral-600: var(--color-black);--color-neutral-background: var(--color-grey-light);--color-neutral-table-row-banding: var(--color-grey-surface);--color-opacity-default: rgba(255, 255, 255, .32);--color-opacity-hover: rgba(118, 194, 229, .25);--color-opacity-disabled: rgba(194, 194, 194, .32);--color-opacity-error: rgba(237, 28, 36, .12);--color-opacity-backdrop: rgba(0, 0, 0, .5);--font-family-base: "Inter", system-ui, -apple-system, sans-serif;--font-family-heading: "Outfit", sans-serif;--font-family-accent: "Inter", sans-serif;--font-weight-light: 300;--font-weight-regular: 400;--font-weight-medium: 500;--font-weight-semibold: 600;--font-weight-bold: 700;--color-box-shadow: 0 4px 6px rgba(0, 0, 0, .1)}.dashboard{max-width:1200px;margin:0 auto}.dashboard-header{text-align:center;margin-bottom:2rem}.dashboard-title{font-size:2.25rem;font-weight:700;color:#111827;margin-bottom:1rem;line-height:1.2}.dashboard-description{font-size:1.125rem;color:#4b5563;line-height:1.75;max-width:600px;margin:0 auto}.section-title{font-size:1.5rem;font-weight:600;color:#111827;margin-bottom:1.5rem}.stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:1.5rem;margin-bottom:2.5rem}.stat-card{background-color:#fff;border:1px solid #e5e7eb;border-radius:.5rem;padding:1.5rem;display:flex;align-items:center;gap:1rem;box-shadow:"0 1px 2px 0 rgba(0, 0, 0, 0.05)";transition:all .2s ease-in-out}.stat-card:hover{transform:translateY(-2px);box-shadow:"0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06)"}.stat-card-icon{font-size:1.875rem;width:60px;height:60px;display:flex;align-items:center;justify-content:center;background-color:#e0e0e0;border-radius:.5rem;flex-shrink:0}.stat-card-content{flex:1}.stat-number{font-size:1.875rem;font-weight:700;color:#111827;margin:0 0 .25rem;line-height:1.2}.stat-label{font-size:1rem;color:#4b5563;margin:0;line-height:1.6}.actions-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1rem;margin-bottom:2.5rem}.activity-list{display:flex;flex-direction:column;gap:1rem}.activity-item{display:flex;align-items:flex-start;gap:1rem;padding:1rem;background-color:#fff;border:1px solid #e5e7eb;border-radius:.375rem;transition:all .15s ease-in-out}.activity-item:hover{background-color:#f9fafb;border-color:#d1d5db}.activity-icon{font-size:1.125rem;width:32px;height:32px;display:flex;align-items:center;justify-content:center;background-color:#d1fae5;border-radius:9999px;flex-shrink:0}.activity-content{flex:1}.activity-text{font-size:1rem;color:#111827;margin:0 0 .25rem;line-height:1.6}.activity-time{font-size:.875rem;color:#6b7280;line-height:1.6}@media(max-width:1023px){.dashboard-title{font-size:1.875rem}.dashboard-description{font-size:1rem}.stats-grid{grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1rem}.actions-grid{grid-template-columns:repeat(auto-fit,minmax(180px,1fr))}}@media(max-width:767px){.dashboard-title{font-size:1.5rem}.dashboard-description{font-size:.875rem}.stats-grid{grid-template-columns:1fr;gap:.75rem}.stat-card{padding:1rem;gap:.75rem}.stat-card-icon{font-size:1.5rem;width:48px;height:48px}.stat-number{font-size:1.5rem}.actions-grid{grid-template-columns:1fr}.section-title{font-size:1.25rem}}@media(max-width:639px){.dashboard-header{margin-bottom:1.5rem}.stat-card{padding:.75rem;flex-direction:column;text-align:center;gap:.5rem}.stat-card-icon{margin:0 auto}.activity-item{padding:.75rem;gap:.75rem}}.custom-sonner{position:fixed;z-index:9999;display:flex;flex-direction:column;gap:.5rem;width:380px;max-width:calc(100vw - 1rem);padding:1rem;pointer-events:none}.custom-sonner-top-left{top:0;left:0;align-items:flex-start}.custom-sonner-top-center{top:0;left:50%;align-items:center;transform:translate(-50%)}.custom-sonner-top-right{top:0;right:0;align-items:flex-end}.custom-sonner-bottom-left{bottom:0;left:0;align-items:flex-start;flex-direction:column-reverse}.custom-sonner-bottom-center{bottom:0;left:50%;align-items:center;flex-direction:column-reverse;transform:translate(-50%)}.custom-sonner-bottom-right{right:0;bottom:0;align-items:flex-end;flex-direction:column-reverse}.custom-sonner-toast{--custom-sonner-accent: #80919b;--custom-sonner-icon-color: #3d515c;--custom-sonner-icon-background: #e6e9eb;display:flex;align-items:flex-start;gap:.75rem;width:100%;padding:.75rem;border:1px solid;border-left:4px solid var(--custom-sonner-accent);border-radius:.75rem;background:#fff;box-shadow:0 4px 16px #00000014,0 1px 4px #0000000f;pointer-events:all;animation:custom-sonner-in .3s cubic-bezier(.16,1,.3,1) both;will-change:transform,opacity}.custom-sonner-toast-default{--custom-sonner-accent: #80919b;--custom-sonner-icon-color: #3d515c;--custom-sonner-icon-background: #e6e9eb}.custom-sonner-toast-success{--custom-sonner-accent: #059669;--custom-sonner-icon-color: #059669;--custom-sonner-icon-background: #d1fae5}.custom-sonner-toast-error{--custom-sonner-accent: #dc2626;--custom-sonner-icon-color: #dc2626;--custom-sonner-icon-background: #fee2e2}.custom-sonner-toast-warning{--custom-sonner-accent: #d97706;--custom-sonner-icon-color: #b45309;--custom-sonner-icon-background: #fef3c7}.custom-sonner-toast-info{--custom-sonner-accent: #4d4d4d;--custom-sonner-icon-color: #262626;--custom-sonner-icon-background: #f5f5f5}.custom-sonner-toast-loading{--custom-sonner-accent: #333;--custom-sonner-icon-color: #333;--custom-sonner-icon-background: #f5f5f5}.custom-sonner-toast-exit{animation:custom-sonner-out .28s cubic-bezier(.4,0,1,1) forwards}@keyframes custom-sonner-in{0%{opacity:0;transform:translate(12px) scale(.95)}to{opacity:1;transform:translate(0) scale(1)}}@keyframes custom-sonner-out{0%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(.92) translateY(-4px)}}.custom-sonner-toast-icon{display:flex;flex-shrink:0;align-items:center;justify-content:center;width:28px;height:28px;min-width:28px;margin-top:1px;border-radius:.375rem;background:var(--custom-sonner-icon-background);color:var(--custom-sonner-icon-color)}.custom-sonner-toast-icon-spin{animation:custom-sonner-spin .8s linear infinite}@keyframes custom-sonner-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.custom-sonner-toast-body{display:flex;flex:1;flex-direction:column;gap:.25rem;min-width:0;padding-top:1px}.custom-sonner-toast-title{margin:0;color:#164e63;font-size:.875rem;font-weight:600;line-height:1.4}.custom-sonner-toast-description{margin:0;color:#06b6d4;font-size:.75rem;line-height:1.5}.custom-sonner-toast-action{align-self:flex-start;margin-top:.25rem;padding:3px .5rem;border:1px solid #a5f3fc;border-radius:.375rem;background:transparent;color:#0e7490;cursor:pointer;font-family:"Inter, system-ui, -apple-system, sans-serif";font-size:.75rem;font-weight:500;transition:background .15s ease,border-color .15s ease}.custom-sonner-toast-action:hover{border-color:#67e8f9;background:#ecfeff}.custom-sonner-toast-close{display:flex;flex-shrink:0;align-items:center;justify-content:center;width:22px;height:22px;min-width:22px;margin-top:2px;border:none;border-radius:.375rem;background:transparent;color:#22d3ee;cursor:pointer;transition:background .15s ease,color .15s ease}.custom-sonner-toast-close:hover{background:#cffafe;color:#0e7490}.custom-sonner-toast-close:focus-visible{outline:2px solid #4d4d4d;outline-offset:1px}.login-page{width:100%;max-width:440px;animation:fade-in .6s ease-out}.login-page-card{background:#fff;border-radius:.75rem;padding:2.5rem;box-shadow:"0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 10px 10px -5px rgba(0, 0, 0, 0.04)";display:flex;flex-direction:column;align-items:center;text-align:center;width:100%}.login-page-icon-wrapper{background:#f3f4f6;width:64px;height:64px;border-radius:9999px;display:flex;align-items:center;justify-content:center;margin-bottom:1.5rem;color:#4b5563}.login-page-title{font-size:1.5rem;font-weight:600;color:#111827;margin-bottom:.25rem;font-family:"Inter, system-ui, -apple-system, sans-serif"}.login-page-subtitle{font-size:.875rem;color:#6b7280;margin-bottom:2rem}.login-page .login-error{width:100%;font-size:.875rem;border-radius:.375rem;padding:.5rem .75rem;text-align:left}.login-page .login-form{width:100%;display:flex;flex-direction:column;gap:1rem}.login-page .login-form-fields{display:flex;flex-direction:column;gap:1rem;text-align:left}.custom-btn{display:inline-flex;align-items:center;justify-content:center;gap:0;border:none;border-radius:.375rem;line-height:1;font-weight:500;text-decoration:none;cursor:pointer;transition:all .2s ease-in-out;position:relative;overflow:hidden}.custom-btn:disabled{opacity:.6;cursor:not-allowed;pointer-events:none}.custom-btn-full-width{width:100%;display:flex}.custom-btn-icon{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0}.custom-btn-icon-left{margin-right:.5rem}.custom-btn-icon-right{margin-left:.5rem}.custom-btn-icon svg{width:1.125em;height:1.125em}.custom-btn-label{display:flex;line-height:1;gap:1rem;align-items:center}.custom-btn-icon-only{padding:0;display:inline-flex;align-items:center;justify-content:center;aspect-ratio:1/1;background-color:transparent;border:none;color:#3d515c}.custom-btn-icon-only:hover:not(:disabled){background-color:#f3f4f6;color:#0f1417}.custom-btn-icon-only.custom-btn-sm{width:2rem;height:2rem}.custom-btn-icon-only.custom-btn-md{width:2.5rem;height:2.5rem}.custom-btn-icon-only.custom-btn-lg{width:3rem;height:3rem}.custom-btn-icon-only svg{margin:0}.custom-btn-loading{cursor:wait;opacity:.7}.custom-btn-sm{padding:.75rem;font-size:.75rem}.custom-btn-md{padding:.5rem 1rem;font-size:.875rem}.custom-btn-lg{padding:.75rem 1.5rem;font-size:1rem}.custom-btn-primary{background-color:#1f282e;color:#fff}.custom-btn-primary:focus-visible{outline:2px solid #4d6573;outline-offset:2px}.custom-btn-primary:hover:not(:disabled){background-color:#0f1417;transform:translateY(-1px);box-shadow:"0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06)"}.custom-btn-primary:active:not(:disabled){transform:translateY(0)}.custom-btn-secondary{background-color:#fff;color:#374151;border:1px solid #d1d5db}.custom-btn-secondary:focus-visible{outline:2px solid #4d6573;outline-offset:2px}.custom-btn-secondary:hover:not(:disabled){background-color:#f9fafb;border-color:#9ca3af}.custom-btn-success{background-color:#059669;color:#fff}.custom-btn-success:focus-visible{outline:2px solid #10b981;outline-offset:2px}.custom-btn-success:hover:not(:disabled){background-color:#047857}.custom-btn-warning{background-color:#d97706;color:#fff}.custom-btn-warning:focus-visible{outline:2px solid #f59e0b;outline-offset:2px}.custom-btn-warning:hover:not(:disabled){background-color:#b45309}.custom-btn-error{background-color:#dc2626;color:#fff}.custom-btn-error:focus-visible{outline:2px solid #ef4444;outline-offset:2px}.custom-btn-error:hover:not(:disabled){background-color:#b91c1c}.custom-btn-outline{background-color:#fff;color:#374151;border:1px solid #d1d5db}.custom-btn-outline:hover:not(:disabled){background-color:#f9fafb;border-color:#9ca3af}.custom-btn-ghost{background-color:transparent;color:#4b5563;border:1px solid transparent}.custom-btn-ghost:hover:not(:disabled){background-color:#f3f4f6;color:#111827}.custom-input-wrapper{display:inline-flex;flex-direction:column}.custom-input-wrapper-full-width{display:flex;width:100%}.custom-input-label{display:flex;align-items:center;gap:.25rem;margin-bottom:.25rem;color:#374151;font-size:.875rem;line-height:1.6;text-transform:capitalize}.custom-input-required{color:#dc2626;font-weight:600}.custom-input-container{--custom-input-height: 44px;--custom-input-padding-inline: 1rem;--custom-input-icon-width: 40px;--custom-input-icon-font-size: 1rem;--custom-input-field-font-size: .875rem;display:flex;align-items:stretch;width:100%;overflow:hidden;border:1px solid #d1d5db;border-radius:.375rem;background:#fff;box-shadow:0 1px 2px #0f172a0a;transition:border-color .2s ease-in-out,box-shadow .2s ease-in-out,background-color .2s ease-in-out}.custom-input-container:hover{border-color:#9ca3af}.custom-input-container-sm{--custom-input-height: 36px;--custom-input-padding-inline: .75rem;--custom-input-icon-width: 32px;--custom-input-icon-font-size: .875rem;--custom-input-field-font-size: .75rem}.custom-input-container-md{--custom-input-height: 44px;--custom-input-padding-inline: 1rem;--custom-input-icon-width: 40px;--custom-input-icon-font-size: 1rem;--custom-input-field-font-size: .875rem}.custom-input-container-lg{--custom-input-height: 48px;--custom-input-padding-inline: 1rem;--custom-input-icon-width: 48px;--custom-input-icon-font-size: 1.125rem;--custom-input-field-font-size: 1rem}.custom-input-field{flex:1;min-width:0;height:var(--custom-input-height);align-self:stretch;border:none;outline:none;background:transparent;color:#374151;font-family:"Inter, system-ui, -apple-system, sans-serif";font-size:var(--custom-input-field-font-size);line-height:1.4;padding-inline:var(--custom-input-padding-inline)}.custom-input-field::placeholder{color:#9ca3af}.custom-input-field:disabled{cursor:not-allowed;color:#9ca3af}.custom-input-field[type=search]::-webkit-search-cancel-button{display:none}.custom-input-icon{display:flex;flex-shrink:0;align-items:center;justify-content:center;width:var(--custom-input-icon-width);height:var(--custom-input-height);color:#9ca3af;font-size:var(--custom-input-icon-font-size)}.custom-input-icon-left{order:-1}.custom-input-icon-right{order:1}.custom-input-prefix,.custom-input-suffix{display:flex;flex-shrink:0;align-items:center;justify-content:center;height:var(--custom-input-height);padding:0 .5rem;color:#9ca3af;font-size:var(--custom-input-field-font-size);font-weight:500;-webkit-user-select:none;user-select:none;white-space:nowrap}.custom-input-prefix{order:-1;padding-right:0}.custom-input-suffix{order:1;padding-left:0}.custom-input-container-has-left-icon .custom-input-field{padding-left:0}.custom-input-container-has-right-icon .custom-input-field{padding-right:0}.custom-input-container-has-prefix .custom-input-field{padding-left:0}.custom-input-container-has-suffix .custom-input-field{padding-right:0}.custom-input-container:focus-within{border-color:#6b7280;box-shadow:0 0 0 3px #e6e9ebe6;outline:none}.custom-input-container-error{border-color:#ef4444}.custom-input-container-error:focus-within{border-color:#ef4444;box-shadow:0 0 0 3px #fee2e2f2}.custom-input-container-success{border-color:#10b981}.custom-input-container-success:focus-within{border-color:#10b981;box-shadow:0 0 0 3px #d1fae5f2}.custom-input-container-disabled{pointer-events:none;cursor:not-allowed;border-color:#e5e7eb;background:#f9fafb}.custom-input-clear-button,.custom-input-toggle-button{display:flex;align-items:center;justify-content:center;width:100%;height:100%;padding:0;border:none;background:none;color:#9ca3af;cursor:pointer;transition:color .2s ease-in-out}.custom-input-clear-button:hover,.custom-input-toggle-button:hover{color:#4b5563}.custom-input-clear-button:focus-visible,.custom-input-toggle-button:focus-visible{outline:2px solid #4d6573;outline-offset:-2px}.custom-input-message{display:flex;align-items:center;gap:.25rem;margin:0;margin-top:.25rem;font-size:.75rem;line-height:1.6}.custom-input-message-helper{color:#6b7280}.custom-input-message-error{color:#dc2626}.custom-input-message-success{color:#059669}.custom-select-wrapper{display:inline-flex;flex-direction:column}.custom-select-wrapper-full-width{display:flex;width:100%}.custom-select-label{display:flex;align-items:center;gap:.25rem;margin-bottom:.25rem;color:#374151;font-size:.875rem;line-height:1.6;text-transform:capitalize}.custom-select-required{color:#dc2626;font-weight:600}.custom-select-container{--custom-select-height: 44px;--custom-select-padding-inline: 1rem;--custom-select-icon-width: 40px;--custom-select-icon-font-size: 1rem;--custom-select-field-font-size: .875rem;position:relative;display:flex;align-items:stretch;width:100%;overflow:hidden;border:1px solid #d1d5db;border-radius:.375rem;background:#fff;box-shadow:0 1px 2px #0f172a0a;transition:border-color .2s ease-in-out,box-shadow .2s ease-in-out,background-color .2s ease-in-out}.custom-select-container:hover{border-color:#9ca3af}.custom-select-container-sm{--custom-select-height: 36px;--custom-select-padding-inline: .75rem;--custom-select-icon-width: 32px;--custom-select-icon-font-size: .875rem;--custom-select-field-font-size: .75rem}.custom-select-container-md{--custom-select-height: 44px;--custom-select-padding-inline: 1rem;--custom-select-icon-width: 40px;--custom-select-icon-font-size: 1rem;--custom-select-field-font-size: .875rem}.custom-select-container-lg{--custom-select-height: 48px;--custom-select-padding-inline: 1rem;--custom-select-icon-width: 48px;--custom-select-icon-font-size: 1.125rem;--custom-select-field-font-size: 1rem}.custom-select-field{flex:1;min-width:0;height:var(--custom-select-height);border:none;outline:none;background:transparent;color:#374151;font-family:"Inter, system-ui, -apple-system, sans-serif";font-size:var(--custom-select-field-font-size);line-height:1.4;cursor:pointer;appearance:none;-webkit-appearance:none;-moz-appearance:none;padding-left:var(--custom-select-padding-inline);padding-right:var(--custom-select-icon-width)}.custom-select-field:disabled{cursor:not-allowed;color:#9ca3af}.custom-select-field:invalid{color:#9ca3af}.custom-select-field option[value=""][disabled]{color:#9ca3af}.custom-select-icon{display:flex;flex-shrink:0;align-items:center;justify-content:center;width:var(--custom-select-icon-width);height:var(--custom-select-height);color:#9ca3af;font-size:var(--custom-select-icon-font-size)}.custom-select-icon-left{order:-1}.custom-select-chevron{position:absolute;right:0;order:1;display:flex;flex-shrink:0;align-items:center;justify-content:center;width:var(--custom-select-icon-width);height:var(--custom-select-height);background:transparent;color:#9ca3af;pointer-events:none;transition:transform .2s ease-in-out}.custom-select-container-has-left-icon .custom-select-field{padding-left:0}.custom-select-container:focus-within{border-color:#6b7280;box-shadow:0 0 0 3px #e6e9ebe6;outline:none}.custom-select-container:focus-within .custom-select-chevron{transform:rotate(180deg);color:#4b5563}.custom-select-container-error{border-color:#ef4444}.custom-select-container-error:focus-within{border-color:#ef4444;box-shadow:0 0 0 3px #fee2e2f2}.custom-select-container-success{border-color:#10b981}.custom-select-container-success:focus-within{border-color:#10b981;box-shadow:0 0 0 3px #d1fae5f2}.custom-select-container-disabled{pointer-events:none;cursor:not-allowed;border-color:#e5e7eb;background:#f9fafb}.custom-select-message{display:flex;align-items:center;gap:.25rem;margin:0;margin-top:.25rem;font-size:.75rem;line-height:1.6}.custom-select-message-helper{color:#6b7280}.custom-select-message-error{color:#dc2626}.custom-select-message-success{color:#059669}.custom-dropdown{position:relative;display:inline-flex}.custom-dropdown-trigger{display:inline-flex;align-items:center;cursor:pointer;-webkit-user-select:none;user-select:none}.custom-dropdown-menu{position:fixed;padding:0;border:1px solid #d1d5db;border-radius:.75rem;background:#fff;box-shadow:0 12px 48px #00000026,0 4px 12px #00000014;animation:custom-dropdown-open .15s ease-out both;z-index:1050;max-width:calc(100vw - 16px);overflow:visible}.custom-dropdown-caret{position:absolute;top:-7px;width:14px;height:14px;background:#fff;border-top:1px solid #d1d5db;border-left:1px solid #d1d5db;transform:rotate(45deg);z-index:-1}.custom-dropdown-caret-start{left:24px}.custom-dropdown-caret-center{left:50%;transform:translate(-50%) rotate(45deg)}.custom-dropdown-caret-end{right:24px}.custom-dropdown-header{padding:1rem;border-bottom:1px solid #f3f4f6;background:#fff;border-radius:.75rem .75rem 0 0}.custom-dropdown-footer{padding:1rem;border-top:1px solid #f3f4f6;background:#f9fafb;border-radius:0 0 .75rem .75rem;display:flex;justify-content:center;align-items:center}@keyframes custom-dropdown-open{0%{opacity:0;transform:translateY(-8px) scale(.96)}to{opacity:1;transform:translateY(0) scale(1)}}.custom-dropdown-group{display:flex;flex-direction:column;padding:.25rem}.custom-dropdown-group-label{display:block;padding:.5rem 1rem .25rem;color:#9ca3af;font-size:11px;font-weight:600;letter-spacing:.05em;text-transform:uppercase}.custom-dropdown-separator{height:1px;background:#f3f4f6}.custom-dropdown-item{display:flex;align-items:center;gap:.75rem;width:100%;padding:.75rem 1rem;border:none;border-radius:.375rem;background:transparent;color:#1f282e;cursor:pointer;font-family:"Inter, system-ui, -apple-system, sans-serif";font-size:.875rem;font-weight:500;text-align:left;transition:all .2s ease-in-out}.custom-dropdown-item:hover:not(:disabled){background:#f9fafb;color:#111827}.custom-dropdown-item-disabled{pointer-events:none;cursor:not-allowed;opacity:.38}.custom-dropdown-item-icon{display:flex;flex-shrink:0;align-items:center;justify-content:center;width:32px;height:32px;border-radius:50%;overflow:hidden}.custom-dropdown-item-label{flex:1;line-height:1.4;white-space:normal}.custom-dropdown-item-shortcut{flex-shrink:0;color:#9ca3af;font-size:.75rem}.header{height:5rem;background-color:#fff;border-bottom:1px solid #d1d5db;display:flex;align-items:center;justify-content:space-between;padding:0 2rem;position:sticky;top:0;z-index:1020}.header-left{display:flex;align-items:center;gap:1rem}.header-left .header-brand{display:flex;align-items:center}.header-left .header-brand .brand-label{font-size:1.5rem;font-weight:800;color:#0d0d0d;letter-spacing:.04em;text-transform:uppercase;line-height:1}.header-left .header-breadcrumbs{display:flex;align-items:center;gap:.5rem;font-size:.75rem;color:#6b7280;margin-top:.25rem}.header-left .header-breadcrumbs .separator{font-size:10px;opacity:.5;margin:0 .25rem}.header-right{display:flex;align-items:center;gap:1rem}.header-right .header-divider{width:1px;height:1.5rem;background-color:#e5e7eb;margin:0 .5rem}.header-right .icon-btn{background:none;border:none;color:#6b7280;cursor:pointer;padding:0;border-radius:9999px;transition:all .15s;position:relative;display:flex;align-items:center;justify-content:center}.header-right .icon-btn:hover{background-color:#f9fafb;color:#333}.header-right .icon-btn .badge{position:absolute;top:4px;right:4px;background-color:#dc2626;color:#fff;font-size:10px;font-weight:700;width:16px;height:16px;border-radius:9999px;display:flex;align-items:center;justify-content:center;border:2px solid #fff}.header-right .search-container{margin-right:1rem}.header-right .search-container .search-wrapper{display:flex;align-items:center;background-color:#f9fafb;border:1px solid #e5e7eb;border-radius:.375rem;padding:.25rem .75rem;width:18.75rem;transition:all .15s}.header-right .search-container .search-wrapper:focus-within{background-color:#fff;border-color:#999;box-shadow:0 0 0 3px #f5f5f5}.header-right .search-container .search-icon{color:#9ca3af;margin-right:.5rem}.header-right .search-container .search-input{border:none;background:none;outline:none;width:100%;font-size:.875rem;color:#1a1a1a;padding:.25rem 0}.header-right .search-container .search-input::placeholder{color:#9ca3af}.header-right .user-badge{display:flex;align-items:center;gap:.75rem;padding:.25rem .75rem;background-color:#f9fafb;border-radius:9999px;border:1px solid #f3f4f6}.header-right .user-badge .user-icon{width:1.75rem;height:1.75rem;background-color:#fff;border-radius:9999px;display:flex;align-items:center;justify-content:center;color:#333;box-shadow:"0 1px 2px 0 rgba(0, 0, 0, 0.05)"}.header-right .role-switcher{display:flex;align-items:center;margin-right:.5rem;width:13.125rem}.header-right .role-switcher .custom-select-container{flex-direction:row;align-items:center;gap:.75rem}.header-right .logout-btn{background:none;border:none;display:flex;align-items:center;gap:.5rem;color:#4b5563;font-size:.875rem;font-weight:500;cursor:pointer;padding:.5rem .75rem;border-radius:.375rem;transition:all .15s}.header-right .logout-btn:hover{background-color:#f9fafb;color:#0d0d0d}.notification-header{display:flex;align-items:center;justify-content:space-between;width:100%}.notification-header-left{display:flex;align-items:center;gap:.5rem}.notification-header-left .notification-title{font-size:1rem;font-weight:700;color:#111827}.notification-header-left .notification-badge{color:#9ca3af;font-size:11px;font-weight:600;text-transform:uppercase;padding:2px 4px;line-height:1}.notification-header .close-btn{color:#9ca3af;padding:.25rem}.notification-header .close-btn:hover{color:#4b5563;background:#f3f4f6}.notification-icon-wrapper{display:flex;align-items:center;justify-content:center;width:2.5rem;height:2.5rem;border-radius:9999px;flex-shrink:0}.notification-icon-wrapper.info{background-color:#e8f0fe;color:#1765cc}.notification-icon-wrapper.warning{color:#d97706}.notification-icon-wrapper.success{color:#059669}.notification-item-content{display:flex;flex-direction:column;gap:2px}.notification-item-content .notification-item-title{font-size:.875rem;font-weight:600;color:#0f1417;margin:0}.notification-item-content .notification-item-desc{font-size:.75rem;color:#6b7280;margin:0;line-height:1.4}.notification-item-content .notification-item-time{font-size:11px;color:#9ca3af;margin-top:4px;text-align:right;display:block}.notification-footer{width:100%}.notification-footer .view-all-btn{font-size:.75rem;font-weight:700;letter-spacing:.05em;color:#6b7280;padding:.75rem 0}.notification-footer .view-all-btn:hover{color:#0f1417;background:none;text-decoration:underline}.sidebar{width:17.5rem;height:100vh;background:#fff;border-right:1px solid #e5e7eb;display:flex;flex-direction:column;transition:all .3s ease-in-out;position:relative;flex-shrink:0;z-index:1020;box-shadow:"0 1px 2px 0 rgba(0, 0, 0, 0.05)"}.sidebar-header{padding:.5rem;display:flex;align-items:center;margin-bottom:.5rem;position:relative;border-bottom:1px solid #e5e7eb}.sidebar-logo-container{display:flex;align-items:center;gap:.75rem}.sidebar-logo-wrapper{display:flex;align-items:center;justify-content:center}.sidebar-logo{height:100%;max-width:11.25rem;object-fit:contain;transition:transform .3s ease-in-out}.sidebar-logo:hover{transform:scale(1.05)}.sidebar-brand-text{display:flex;flex-direction:column;padding-left:1rem;border-left:1px solid #e5e7eb;justify-content:center}.sidebar-brand-text .portal-name{font-size:.75rem;font-weight:800;color:#0f1417;letter-spacing:.18em;text-transform:uppercase;line-height:1}.sidebar-toggle{position:absolute;right:-.75rem;top:50%;transform:translateY(-50%);width:1.75rem;height:1.75rem;background:linear-gradient(135deg,#fff,#f9fafb);border:1px solid #e5e7eb;border-radius:9999px;display:flex;align-items:center;justify-content:center;cursor:pointer;box-shadow:0 4px 12px #0000001a;color:var(--color-grey-primary);transition:all .3s ease;z-index:2;padding:0}.sidebar-toggle:hover{color:#333;border-color:#999;background:linear-gradient(135deg,#f5f5f5,#fff);box-shadow:"0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06)";transform:translateY(-50%) scale(1.1)}.sidebar-toggle:active{transform:translateY(-50%) scale(.95)}.sidebar-nav-section{flex:1;display:flex;flex-direction:column}.nav-section-header{padding:0 1.5rem .75rem;font-size:.875rem;font-weight:600;color:#6b7280;text-transform:uppercase}.sidebar-nav{flex:1;display:flex;flex-direction:column;gap:.25rem}.sidebar-nav-item{display:flex;align-items:center;padding:.75rem 1rem;color:#374151;text-decoration:none;transition:all .3s ease;font-size:1rem;position:relative;background:#fff}.sidebar-nav-item .sidebar-nav-icon{display:flex;align-items:center;justify-content:center;margin-right:.75rem;color:#9ca3af;transition:all .3s ease}.sidebar-nav-item-active{background:#111827;color:#fff;font-weight:600;border:1px solid #1f2937}.sidebar-nav-item-active .sidebar-nav-icon{color:#fff;transform:scale(1.1)}.sidebar-nav-item:hover{background:#111827;color:#fff;transform:translate(4px);box-shadow:0 4px 12px #00000026}.sidebar-nav-item:hover .sidebar-nav-icon{color:#fff;transform:scale(1.05)}.sidebar-nav-item .sidebar-nav-label{font-weight:500;font-size:1rem}.sidebar-footer{margin-top:auto;border-top:1px solid #e5e7eb;background:#fff}.user-profile{display:flex;align-items:center;gap:.75rem;padding:1rem .75rem;overflow:hidden}.user-profile .user-avatar{width:2.5rem;height:2.5rem;border-radius:.5rem;background:#f5f5f5;color:#333;display:flex;align-items:center;justify-content:center;flex-shrink:0;border:1px solid #e0e0e0}.user-profile .user-info{flex:1;display:flex;flex-direction:column;min-width:0}.user-profile .user-info .user-name{font-size:.875rem;font-weight:600;color:#111827;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.user-profile .user-info .user-role{font-size:11px;color:#6b7280;text-transform:uppercase;letter-spacing:.05em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.user-profile .logout-icon-btn{color:#9ca3af;transition:all .2s ease;flex-shrink:0;padding:0}.user-profile .logout-icon-btn:hover{color:#dc2626}.sidebar-collapsed{width:80px}.sidebar-collapsed .sidebar-header{justify-content:center;padding:1rem 0}.sidebar-collapsed .sidebar-logo-container{padding:0}.sidebar-collapsed .sidebar-nav{padding:0 .5rem}.sidebar-collapsed .sidebar-nav-item{justify-content:center;padding:.75rem 0}.sidebar-collapsed .sidebar-nav-item:hover{transform:none}.sidebar-collapsed .sidebar-nav-item .sidebar-nav-icon{margin-right:0}.sidebar-collapsed .user-profile{justify-content:center;padding:1rem 0}.custom-breadcrumb-current{color:#6b7280;font-weight:500}.custom-breadcrumbs-container{padding:2rem;background-color:#fff9;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-bottom:1px solid #f3f4f6;width:100%;z-index:10}.custom-breadcrumbs-list{display:flex;align-items:center;list-style:none;padding:0;margin:0;flex-wrap:wrap}.custom-breadcrumb-item{display:flex;align-items:center;font-size:14px;font-weight:500}.custom-breadcrumb-item.custom-breadcrumb-back-button{cursor:pointer;margin-right:.5rem;color:#3d515c;transition:transform .2s ease}.custom-breadcrumb-item.custom-breadcrumb-back-button:hover{transform:translate(-2px);color:#2e3d45}.custom-breadcrumb-item.custom-breadcrumb-active .custom-breadcrumb-current{color:#6b7280}.custom-breadcrumb-link{display:flex;align-items:center;gap:.5rem;color:#4b5563;text-decoration:none;transition:all .15s}.custom-breadcrumb-link:hover{color:#1f282e;text-decoration:underline}.custom-breadcrumb-separator{margin:0 .75rem;color:#d1d5db;flex-shrink:0}.main-layout{display:flex;height:100vh;width:100%;overflow:hidden;background-color:#f9fafb}.main-layout-container{flex:1;min-width:0;min-height:0;display:flex;flex-direction:column;height:100%;overflow:hidden;background-color:transparent;position:relative}.main-layout-content{flex:1;min-height:0;overflow:hidden auto;scrollbar-gutter:stable;position:relative;padding:0 2rem 2rem;display:flex;flex-direction:column;background-color:transparent}.main-layout-content .page-wrapper{position:relative;z-index:1;width:100%;min-height:100%}.custom-bits-watermark{position:fixed;inset:0;pointer-events:none;z-index:0;display:flex;align-items:center;justify-content:center;overflow:hidden;opacity:.05}.custom-bits-watermark-image{width:min(85vw,650px);height:auto;object-fit:contain;-webkit-user-select:none;user-select:none}.geometric-background{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;z-index:0;display:block;background:transparent}.auth-layout{display:flex;min-height:100vh;width:100%;position:relative;overflow:hidden}.auth-layout .geometric-background,.auth-layout .geometric-bg{position:absolute;inset:0;z-index:5;width:100%;height:100%;pointer-events:none;opacity:.6}.auth-layout-sidebar{display:none;width:50%;background-color:#1a1a1a;padding:3rem;color:#fff;flex-direction:column;position:relative;z-index:2;overflow:hidden}@media(min-width:1024px){.auth-layout-sidebar{display:flex}}.auth-layout-content{flex:1;background-color:#f2f4f5;display:flex;flex-direction:column;padding:1.5rem;position:relative;z-index:2}@media(min-width:1024px){.auth-layout-content{padding:3rem}}.auth-layout-page-content{flex:1;display:flex;align-items:center;justify-content:center;width:100%}.auth-layout-footer{width:100%;margin-top:auto;padding-top:2rem;display:flex;justify-content:center;align-items:center;gap:.75rem;font-size:.875rem;color:#9ca3af}.auth-layout-footer .footer-link{display:flex;align-items:center;color:inherit;text-decoration:none;transition:color .2s}.auth-layout-footer .footer-link:hover{color:#333}.auth-layout-footer .footer-link svg{color:#9ca3af}.auth-layout-footer .separator{width:4px;height:4px;background-color:#d1d5db;border-radius:9999px;margin:0 .25rem}.branding-sidebar{display:flex;flex-direction:column;height:100%;position:relative;z-index:3;justify-content:space-between}.branding-sidebar-logo-container{display:flex;align-items:center;gap:1rem}.branding-sidebar-header{margin-bottom:3rem}.branding-sidebar-header-text{display:flex;flex-direction:column}.branding-sidebar-header-text .university-name{font-family:Cormorant Garamond,serif;font-size:2.25rem;color:#e5e7eb;line-height:1.2}.branding-sidebar-header-text .programme-name{font-size:.65rem;font-weight:500;color:#9ca3af;text-transform:uppercase;letter-spacing:.2em;margin-top:.5rem}.branding-sidebar-logo{width:64px;height:64px;object-fit:contain}.branding-sidebar-main-content{display:flex;flex-direction:column;gap:2rem}.branding-sidebar-title{font-family:Cormorant Garamond,serif;font-size:3rem;font-weight:400;line-height:1.2;color:#fff}.branding-sidebar-title .title-accent{color:#d1d5db}.branding-sidebar-description{font-size:1rem;color:#9ca3af;line-height:1.75;max-width:448px}.branding-sidebar-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1rem;max-width:448px}.branding-sidebar-card{background:#0d0d0d;border:1px solid #1f2937;border-radius:.125rem;padding:1rem;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;flex-direction:column;gap:.5rem}.branding-sidebar-card .icon-box{width:40px;height:40px;color:#9ca3af;margin-bottom:.25rem}.branding-sidebar-card .icon-box .lab-card-icon{width:100%;height:100%}.branding-sidebar-card .card-title{font-size:.875rem;color:#fff}.branding-sidebar-card .card-desc{font-size:.75rem;color:#6b7280;margin-top:.25rem}.branding-sidebar-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem;max-width:448px;margin-top:1rem}.branding-sidebar-stats .stat-item{text-align:center;padding:1rem;border:1px solid #1f2937;border-radius:.125rem}.branding-sidebar-stats .stat-item .stat-value{font-family:Cormorant Garamond,serif;font-size:1.5rem;color:#d1d5db}.branding-sidebar-stats .stat-item .stat-label{font-size:.65rem;color:#6b7280;text-transform:uppercase;letter-spacing:.1em;margin-top:.25rem}.branding-sidebar-footer{font-size:.75rem;margin-top:2rem;color:#4b5563}.error-page{height:100vh;width:100%;display:flex;align-items:center;justify-content:center;background-color:#f8f8ff;padding:24px;text-align:center;font-family:"Inter, system-ui, -apple-system, sans-serif"}.error-page-content{max-width:500px;animation:fade-in .5s ease-out}.error-page .icon-wrapper{margin-bottom:32px;color:#4d4d4d;display:inline-flex;padding:24px;background:#4338ca0d;border-radius:50%}.error-page .icon-wrapper.alert{color:#ef4444;background:#ef44440d}.error-page h1{font-size:80px;font-weight:900;color:#111827;margin:0;line-height:1;letter-spacing:-2px}.error-page h2{font-size:24px;font-weight:700;color:#1f2937;margin:16px 0 8px}.error-page p{color:#6b7280;font-size:16px;margin-bottom:32px;line-height:1.6}.error-page .actions{display:flex;gap:12px;justify-content:center}.error-page .actions-btn{padding:12px 24px;border-radius:12px;font-weight:700;cursor:pointer;transition:all .2s;border:none}.error-page .actions-btn.primary{background:#4d4d4d;color:#fff;box-shadow:0 4px 12px #4338ca33}.error-page .actions-btn.primary:hover{transform:translateY(-2px);box-shadow:0 8px 16px #4338ca4d}.error-page .actions-btn.secondary{background:#fff;color:#374151;border:1px solid #e5e7eb}.error-page .actions-btn.secondary:hover{background:#f9fafb;border-color:#d1d5db}@keyframes fade-in{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.custom-top-search-actions{display:flex;align-items:center;justify-content:space-between;gap:.75rem;width:100%;margin-bottom:1rem}.custom-top-search-actions-left,.custom-top-search-actions-right{display:flex;align-items:center;gap:.5rem}.custom-top-search-actions-left{flex:1;min-width:0;display:flex;align-items:center;gap:.75rem}.custom-top-search-actions-right>*{white-space:nowrap;height:38px}.custom-top-search-actions-input{min-width:220px;max-width:400px}.custom-status-chip{display:inline-flex;align-items:center;padding:.25rem .75rem;border-radius:9999px;font-size:.75rem;font-weight:500;white-space:nowrap;gap:.75rem}.custom-status-chip-icon{flex-shrink:0;display:inline-flex;align-items:center}.custom-status-chip-label{line-height:1;text-transform:capitalize;letter-spacing:.05em}.custom-status-chip-provisioned{background-color:#d1fae5;color:#047857;border:1px solid #a7f3d0}.custom-status-chip-ready{background-color:#fef3c7;color:#b45309;border:1px solid #fde68a}.custom-status-chip-success{background-color:#d1fae5;color:#047857;border:1px solid #a7f3d0}.custom-status-chip-error{background-color:#fee2e2;color:#b91c1c;border:1px solid #fecaca}.custom-status-chip-waiting{background-color:#f3f4f6;color:#374151;border:1px solid #e5e7eb}.custom-status-chip-running{background-color:#e6e9eb;color:#2e3d45;border:1px solid #ccd3d7}.custom-status-chip-info{background-color:#d2e3fc;color:#1254a3;border:1px solid #a8c7fa}.custom-status-chip-active{background-color:#d1fae5;color:#047857;border:1px solid #a7f3d0}.custom-status-chip-configured{background-color:#d2e3fc;color:#1254a3;border:1px solid #a8c7fa}.custom-status-chip-not-created{background-color:#f3f4f6;color:#6b7280;border:1px solid #e5e7eb}.custom-status-chip-default{background-color:#f9fafb;color:#6b7280;border:1px solid #f3f4f6}.custom-tooltip-container{position:relative;display:inline-block}.custom-tooltip-container .custom-tooltip-text{visibility:hidden;width:max-content;background-color:#1f282e;color:#fff;text-align:center;border-radius:.125rem;padding:.75rem;position:absolute;z-index:1070;opacity:0;transition:opacity .15s,transform .15s;font-size:.75rem;pointer-events:none;box-shadow:"0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06)";border:1px solid #2e3d45}.custom-tooltip-container.custom-tooltip-top .custom-tooltip-text{bottom:125%;left:50%;transform:translate(-50%) translateY(5px)}.custom-tooltip-container.custom-tooltip-bottom .custom-tooltip-text{top:125%;left:50%;transform:translate(-50%) translateY(-5px)}.custom-tooltip-container.custom-tooltip-left .custom-tooltip-text{right:125%;top:50%;transform:translateY(-50%) translate(5px)}.custom-tooltip-container.custom-tooltip-right .custom-tooltip-text{left:125%;top:50%;transform:translateY(-50%) translate(-5px)}.custom-tooltip-container:hover .custom-tooltip-text{visibility:visible;opacity:1}.custom-tooltip-container:hover .custom-tooltip-text[class*=custom-tooltip-top],.custom-tooltip-container:hover .custom-tooltip-text[class*=custom-tooltip-bottom]{transform:translate(-50%) translateY(0)}.custom-tooltip-container:hover .custom-tooltip-text[class*=custom-tooltip-left],.custom-tooltip-container:hover .custom-tooltip-text[class*=custom-tooltip-right]{transform:translateY(-50%) translate(0)}.custom-tooltip-container.custom-tooltip-top:hover .custom-tooltip-text,.custom-tooltip-container.custom-tooltip-bottom:hover .custom-tooltip-text{transform:translate(-50%) translateY(0)}.custom-tooltip-container.custom-tooltip-left:hover .custom-tooltip-text,.custom-tooltip-container.custom-tooltip-right:hover .custom-tooltip-text{transform:translateY(-50%) translate(0)}.column-with-subtext{display:flex;align-items:center;gap:.75rem}.column-with-subtext .detail-icon{display:flex;align-items:center;justify-content:center;flex-shrink:0}.column-with-subtext .detail-content{display:flex;flex-direction:column;gap:.25rem}.column-with-subtext .detail-code{font-size:.75rem;color:#4b5563;margin:0}.column-with-subtext .detail-name{margin:0;line-height:1.1;font-weight:600}.column-with-subtext.compact{gap:.5rem}.column-with-subtext.compact .detail-code{font-size:.75rem}.custom-drawer-overlay{position:fixed;inset:0;z-index:1040;background:#00000073;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);animation:custom-drawer-overlay-in .2s ease}@keyframes custom-drawer-overlay-in{0%{opacity:0}to{opacity:1}}.custom-drawer{position:fixed;z-index:1060;display:flex;flex-direction:column;background:#fff;box-shadow:0 0 48px #0000002e}.custom-drawer-right{top:0;right:0;bottom:0;animation:custom-drawer-in-right .28s cubic-bezier(.16,1,.3,1)}.custom-drawer-left{top:0;left:0;bottom:0;animation:custom-drawer-in-left .28s cubic-bezier(.16,1,.3,1)}.custom-drawer-bottom{right:0;bottom:0;left:0;border-radius:1rem 1rem 0 0;animation:custom-drawer-in-bottom .28s cubic-bezier(.16,1,.3,1)}.custom-drawer-top{top:0;right:0;left:0;border-radius:0 0 1rem 1rem;animation:custom-drawer-in-top .28s cubic-bezier(.16,1,.3,1)}.custom-drawer-right.custom-drawer-sm,.custom-drawer-left.custom-drawer-sm{width:320px}.custom-drawer-right.custom-drawer-md,.custom-drawer-left.custom-drawer-md{width:420px}.custom-drawer-right.custom-drawer-lg,.custom-drawer-left.custom-drawer-lg{width:560px}.custom-drawer-right.custom-drawer-xl,.custom-drawer-left.custom-drawer-xl{width:900px}.custom-drawer-right.custom-drawer-full,.custom-drawer-left.custom-drawer-full{width:100vw}.custom-drawer-bottom.custom-drawer-sm,.custom-drawer-top.custom-drawer-sm{max-height:30vh}.custom-drawer-bottom.custom-drawer-md,.custom-drawer-top.custom-drawer-md{max-height:50vh}.custom-drawer-bottom.custom-drawer-lg,.custom-drawer-top.custom-drawer-lg{max-height:70vh}.custom-drawer-bottom.custom-drawer-xl,.custom-drawer-top.custom-drawer-xl{max-height:85vh}.custom-drawer-bottom.custom-drawer-full,.custom-drawer-top.custom-drawer-full{height:100vh}@keyframes custom-drawer-in-right{0%{transform:translate(100%)}to{transform:translate(0)}}@keyframes custom-drawer-in-left{0%{transform:translate(-100%)}to{transform:translate(0)}}@keyframes custom-drawer-in-bottom{0%{transform:translateY(100%)}to{transform:translateY(0)}}@keyframes custom-drawer-in-top{0%{transform:translateY(-100%)}to{transform:translateY(0)}}.custom-drawer-header{display:flex;flex-shrink:0;align-items:center;justify-content:space-between;gap:.75rem;padding:1.25rem 1.5rem;border-bottom:1px solid #e5e7eb;background:#f9fafb}.custom-drawer-header-text{display:flex;flex:1;flex-direction:column;gap:.25rem;min-width:0}.custom-drawer-title{margin:0;color:#1f282e;font-weight:600}.custom-drawer-subtitle{margin:0;color:#4b5563;font-weight:600}.custom-drawer-description{margin:0;color:#6b7280;font-size:.875rem;line-height:1.6}.custom-drawer-close{color:#2e3d45;cursor:pointer}.custom-drawer-close:hover{color:#0f1417}.custom-drawer-body{flex:1;overflow-y:auto;padding:1.25rem 1.5rem;color:#374151;font-size:.875rem;scrollbar-width:thin}.custom-drawer-body::-webkit-scrollbar{width:4px}.custom-drawer-body::-webkit-scrollbar-track{background:transparent}.custom-drawer-body::-webkit-scrollbar-thumb{border-radius:9999px;background:#ccd3d7}.custom-drawer-footer{display:flex;flex-shrink:0;align-items:center;justify-content:flex-end;gap:.75rem;padding:1rem 1.5rem;border-top:1px solid #e5e7eb;background:#fff}.custom-drawer-default-actions{display:flex;justify-content:flex-end;gap:.75rem;flex-wrap:wrap;width:100%}.custom-drawer-cancel-btn,.custom-drawer-submit-btn{white-space:nowrap}.custom-stepper-wrapper{display:flex;align-items:flex-start;justify-content:space-between;background-color:#fff;padding:1.5rem;border-radius:1rem;box-shadow:0 4px 24px #0000000a;width:100%;margin-bottom:1.5rem}.custom-stepper-indicator-container{display:flex;align-items:center;margin-bottom:1rem;position:relative;width:100%}.custom-stepper-circle-wrap{position:relative;display:flex;align-items:center;justify-content:center;z-index:2;background-color:#fff;padding-right:.5rem}.custom-stepper-circle{width:30px;height:30px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:.875rem;font-weight:700;transition:all .3s ease}.custom-stepper-line{position:absolute;top:50%;left:36px;right:.5rem;height:2px;background-color:#e5e7eb;transform:translateY(-50%);z-index:1}.custom-stepper-item{display:flex;flex-direction:column;position:relative;flex:1}.custom-stepper-item:last-child{flex:0;min-width:80px}.custom-is-completed{cursor:pointer}.custom-is-completed .custom-stepper-circle{background-color:#0f1417;color:#fff}.custom-is-completed .custom-stepper-line{background-color:#0f1417}.custom-is-active .custom-stepper-circle{background-color:#0f1417;color:#fff;box-shadow:0 0 0 3px #fff,0 0 0 5px #0f1417}.custom-is-active .custom-stepper-circle-wrap{padding-right:.75rem;padding-left:.25rem}.custom-is-active .custom-stepper-line{left:44px}.custom-is-pending .custom-stepper-circle{background-color:#f3f4f6;color:#9ca3af}.custom-stepper-content-box{display:flex;flex-direction:column;align-items:flex-start}.custom-is-active .custom-stepper-content-box{padding-left:.25rem}.custom-stepper-subtitle{font-size:10px;color:#9ca3af;text-transform:uppercase;letter-spacing:.1em;font-weight:700;margin:0 0 .25rem}.custom-stepper-title{font-size:14px;color:#0f1417;font-weight:700;margin:0 0 .5rem}.custom-stepper-badge{font-size:10px;font-weight:700;padding:.25rem;border-radius:9999px}.custom-stepper-badge.custom-status-completed{color:#059669}.custom-stepper-badge.custom-status-active{background-color:#f2f4f5;color:#3d515c}.custom-stepper-badge.custom-status-pending{background-color:#f3f4f6;color:#6b7280}.course-drawer .custom-drawer-footer{padding:1.25rem 1.5rem;background-color:#fff}.course-drawer .custom-drawer-default-actions .custom-btn{letter-spacing:.03em}.course-form{display:flex;flex-direction:column;gap:1rem;padding-bottom:.5rem}.course-form .form-card{background:#fff;border:1px solid #e5e7eb;border-radius:.5rem;padding:1.25rem 1.5rem;margin-bottom:1.5rem;box-shadow:0 1px 3px #0f172a0a;display:flex;flex-direction:column;gap:.75rem}.course-form .form-card .section-title{color:#0d0d0d;font-size:15px;font-weight:700;text-transform:none;letter-spacing:.02em;margin-bottom:.75rem;padding-bottom:.75rem;border-bottom:1px solid #f3f4f6;display:flex;align-items:center;gap:.5rem;background:transparent;border-left:none;border-radius:0;margin-top:0}.course-form .custom-input-wrapper,.course-form .custom-select-wrapper{display:flex;width:100%}.course-form .form-section{display:flex;flex-direction:column;gap:1.5rem}.course-form .form-group{width:100%}.course-form .lab-type-heading{margin:0 0 .5rem;color:#4b5563;font-size:.75rem;font-weight:600;letter-spacing:.02em;text-transform:none}.course-form .lab-type-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(220px,100%),1fr));gap:.75rem}.course-form .lab-type-choice{justify-content:flex-start;align-items:center;gap:1rem;min-height:auto;padding:.75rem 1rem;text-align:left;border:1px solid #e5e7eb;border-radius:.5rem;background:#fff;box-shadow:none}.course-form .lab-type-choice:hover{border-color:#d1d5db;transform:none;box-shadow:0 4px 12px #0f172a0a}.course-form .lab-type-choice.is-active{border-color:#0d0d0d;background:#f9fafb;box-shadow:0 4px 12px #0f172a0f}.course-form .lab-type-icon-wrap{display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;border-radius:.5rem;background:#0d0d0d;color:#fff;flex-shrink:0}.course-form .lab-type-copy{display:flex;flex-direction:column;gap:.25rem;min-width:0}.course-form .lab-type-title{color:#0d0d0d;font-size:14px;font-weight:500}.course-form .lab-type-subtitle{color:#6b7280;font-size:13px;line-height:1.4}.drawer-stepper-footer{display:flex;justify-content:space-between;align-items:center;width:100%}.stepper-content.fade-in{animation:fade-in .3s ease-in-out}.selected-lab-banner{display:flex;align-items:center;justify-content:space-between;gap:.75rem;flex-wrap:wrap;padding:.75rem 1rem;border:1px solid #e5e7eb;border-radius:.5rem;background:#f9fafb}.selected-lab-label{color:#6b7280;font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em}.selected-lab-value{color:#0d0d0d;font-size:.875rem;font-weight:700}.lab-step-content .step-header{display:flex;align-items:flex-start;flex-flow:column wrap;gap:.25rem;margin:0}.step-heading{color:#0d0d0d;font-weight:700}.step-helper{margin:0;color:#6b7280;font-size:.875rem;font-weight:100}.custom-icon-radio-group-container{display:flex;flex-direction:column;gap:.75rem}.custom-icon-radio-group-label{font-size:.875rem;font-weight:600;color:#374151}.custom-icon-radio-grid{display:grid;gap:1rem}@media(max-width:767px){.custom-icon-radio-grid{grid-template-columns:1fr}}.custom-icon-radio-icon-wrapper{width:48px;height:48px;background:#f3f4f6;border-radius:.5rem;display:flex;align-items:center;justify-content:center;color:#6b7280;flex-shrink:0;transition:all .2s ease}.custom-icon-radio-icon-wrapper svg{width:30px;height:30px}.custom-icon-radio-content{display:flex;flex-direction:column;gap:.5rem;min-width:0}.custom-icon-radio-title{font-size:.875rem;font-weight:600;color:#111827;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.custom-icon-radio-subtext{font-size:.75rem;color:#6b7280;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.custom-icon-radio-card{display:flex;align-items:center;gap:1rem;padding:1rem 1.25rem;background:#fff;border:1px solid #e5e7eb;border-radius:.75rem;cursor:pointer;transition:all .2s ease;text-align:left;width:100%}.custom-icon-radio-card:hover{border-color:#d1d5db;background:#f9fafb}.custom-icon-radio-card-selected{border-color:#111827;box-shadow:0 0 0 1px #111827;background:#fff}.custom-icon-radio-card-selected .custom-icon-radio-icon-wrapper{background:#111827;color:#fff}.custom-icon-radio-card-selected .custom-icon-radio-title{color:#111827}.custom-icon-radio-card-vertical{flex-direction:column;align-items:center;text-align:center;padding:1.5rem 1rem;height:100%}.custom-icon-radio-card-vertical .custom-icon-radio-content{align-items:center;text-align:center}.custom-icon-radio-card-disabled{opacity:.5;background:#f9fafb;border-color:#e5e7eb;cursor:not-allowed;pointer-events:none;filter:grayscale(1)}.custom-icon-radio-card-disabled .custom-icon-radio-icon-wrapper{background:#e5e7eb;color:#9ca3af}.custom-icon-radio-card-disabled .custom-icon-radio-title,.custom-icon-radio-card-disabled .custom-icon-radio-subtext{color:#9ca3af}.custom-icon-radio-error{font-size:.75rem;color:#dc2626;margin:0}.storage-config-section{display:grid;grid-template-columns:repeat(3,1fr);gap:1.5rem}.form-section{display:flex;flex-direction:column;gap:1.5rem}.form-row{display:flex;gap:1.5rem}.form-group{width:100%}.flex-1{flex:1}.institutional-lab-placeholder{padding:1rem}.step-helper{color:#6b7280;font-size:.875rem}.page-header{display:flex;justify-content:space-between;align-items:flex-end;gap:1.5rem;padding:1rem 1.5rem;position:relative;border-bottom:1px solid #d1d5db;overflow:hidden}.page-header .header-left-content{display:flex;flex-direction:column;gap:.5rem;z-index:1}.page-header .header-left-content .title-wrapper{display:flex;align-items:center;gap:1.25rem;color:#111827}.page-header .header-left-content .subtitle-text{font-size:.875rem;color:#4b5563;font-weight:500;margin:0;max-width:600px}.page-header .header-actions{display:flex;align-items:center;gap:1rem;z-index:1;margin-bottom:.25rem}.page-header .header-icon{display:flex;align-items:center;justify-content:center;width:3.5rem;height:3.5rem;background-color:#fff;color:#333;border-radius:.5rem;box-shadow:"0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06)";border:1px solid #f5f5f5}.page-header .header-icon svg{width:1.75rem;height:1.75rem}.manage-courses-page{display:flex;flex-direction:column;gap:1.5rem;height:100%}.manage-courses-page .sync-btn,.manage-courses-page .create-btn{white-space:nowrap}.manage-courses-page .table-wrapper{flex:1;min-height:0}.custom-common-table-wrapper{width:100%;background:#fff;border:1px solid #e6e9eb;border-radius:0;overflow:hidden;box-shadow:none;padding-bottom:2px}.custom-common-table-container{width:100%;overflow:auto;scroll-behavior:smooth;-webkit-overflow-scrolling:touch;padding-bottom:8px}.custom-common-table-container::-webkit-scrollbar{width:8px;height:12px}.custom-common-table-container::-webkit-scrollbar-track{background:#f2f4f5;border-top:1px solid #e6e9eb}.custom-common-table-container::-webkit-scrollbar-thumb{background:#b3bdc3;border-radius:999px;border:2px solid #f2f4f5}.custom-common-table-container::-webkit-scrollbar-thumb:hover{background:#80919b}.custom-common-table{width:100%;min-width:max-content;border-collapse:separate;border-spacing:0;text-align:left;table-layout:auto}.custom-common-table-head{position:sticky;top:0;z-index:20}.custom-common-table-header-cell{padding:15px;color:#fff;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.06em;border-bottom:1px solid #1f282e;white-space:nowrap;background:#0f1417}.custom-common-table-header-cell-center{text-align:center}.custom-common-table-header-cell-right{text-align:right}.custom-common-table-cell{padding:12px;font-size:14px;color:#1f282e;border-top:1px solid #e6e9eb;vertical-align:middle;white-space:nowrap;transition:background-color .15s ease,color .15s ease}.custom-common-table-cell-center{text-align:center}.custom-common-table-cell-right{text-align:right}.custom-common-table-row-header{background:#0f1417}.custom-common-table-row-hover:hover{background:#f2f4f580}.custom-common-table-row-hover:hover .custom-common-table-cell{color:#0f1417}.custom-common-table-empty-cell,.custom-common-table-error-cell{padding:40px;text-align:center;color:#80919b;font-size:14px}.custom-common-table-error-cell{color:#dc2626}.custom-skeleton-text{height:20px;width:80%;background:linear-gradient(90deg,#f2f4f5 25%,#e6e9eb,#f2f4f5 75%);background-size:200% 100%;animation:skeleton-loading 1.5s infinite;border-radius:4px}@keyframes skeleton-loading{0%{background-position:200% 0}to{background-position:-200% 0}}@media(max-width:768px){.custom-common-table-header-cell,.custom-common-table-cell{padding:10px}}.lab-list-container{display:flex;flex-direction:column;gap:1.5rem}.controls-row{display:flex;justify-content:space-between;align-items:center;gap:1rem}.controls-left{flex:1;max-width:400px}.header-search{background:#fff}.lab-common-table{width:100%}.infra-container{display:flex;align-items:center;gap:.5rem}.infra-container .infra-icon{width:16px;height:16px}.infra-container .infra-text{font-size:.875rem}.lab-list-sentinel{height:1px}.lab-list-loading-more{display:block;text-align:center;padding:.75rem;font-size:.875rem}.lab-status-badge{border-radius:9999px;padding:.25rem;font-weight:700;text-transform:uppercase;letter-spacing:.1em;border:0}.create-lab-drawer-custom .custom-drawer-body,.create-lab-drawer-custom .custom-drawer-footer{padding:0}.sheet-body-redesign{display:grid;grid-template-columns:260px minmax(0,1fr);min-height:600px}.lab-type-sidebar{padding:1.25rem;background:#f9fafb;border-right:1px solid #f3f4f6}.lab-type-sidebar .custom-icon-radio-card{padding:.5rem}.lab-type-sidebar .custom-icon-radio-card .custom-icon-radio-icon-wrapper{width:35px;height:35px}.lab-type-sidebar .custom-icon-radio-card svg{width:20px;height:20px}.lab-type-sidebar .custom-icon-radio-subtext{white-space:normal}.sidebar-label{display:block;margin-bottom:1rem;font-size:11px;font-weight:700;letter-spacing:.12em;color:#9ca3af}.lab-config-form{padding:0 2rem 1.5rem}.form-step{padding:0}.form-step:not(:last-child){border-bottom:1px solid #f3f4f6}.form-step+.form-step{margin-top:2rem}.form-step-secondary{padding-top:.5rem}.step-header{display:flex;align-items:center;gap:.75rem;margin-bottom:1.5rem}.step-badge{display:inline-flex;align-items:center;justify-content:center;min-width:54px;height:22px;padding:0 .5rem;border-radius:4px;background:#111827;color:#fff;font-size:10px;font-weight:700;letter-spacing:.05em}.step-title{margin:0;font-size:18px;font-weight:500;color:#4b5563}.lab-config-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1.25rem}.form-field-spaced{margin-top:1.25rem}.drawer-select,.mono-input{width:100%}.provisioning-protocol{padding-top:1.25rem;border-top:1px solid #e5e7eb}.protocol-container{border:1px solid #a8c7fa;border-radius:6px;background:#e8f0fe;color:#1765cc;padding:1rem}.protocol-header{display:flex;align-items:center;gap:.5rem;color:#1765cc}.protocol-label{font-size:12px;font-weight:700;letter-spacing:.08em}.protocol-text{margin:.5rem 0 0;padding-left:30px;color:#1a73e8;font-size:12px;line-height:1.5}.protocol-meta{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:.75rem}.protocol-chip{display:inline-flex;align-items:center;gap:.25rem;padding:.25rem .5rem;border:1px solid #d2e3fc;border-radius:999px;background:#fff;color:#333;font-size:12px;font-weight:600}.sheet-footer-redesign{display:flex;align-items:center;justify-content:space-between;gap:.75rem;width:100%;padding:1.25rem 1.5rem}@media(max-width:900px){.sheet-body-redesign{grid-template-columns:1fr}.lab-config-form{padding:1.25rem}.lab-config-grid{grid-template-columns:1fr}.sheet-footer-redesign{flex-direction:column;align-items:stretch}.create-btn{min-width:100%}}.custom-tabs-tab{display:inline-flex;align-items:center;gap:.5rem;background:transparent;border:none;cursor:pointer;font-weight:500;color:#3d515c;white-space:nowrap;transition:color .2s ease-in-out,background .2s ease-in-out,box-shadow .2s ease-in-out;position:relative}.custom-tabs-tab-image{width:18px;height:18px;margin-right:.5rem;object-fit:cover;border-radius:9999px}.custom-tabs-tab:focus-visible{outline:2px solid #4d6573;outline-offset:2px;border-radius:.375rem}.custom-tabs-tab-disabled{cursor:not-allowed;opacity:.4;pointer-events:none}.custom-tabs-list{display:flex;align-items:center;gap:0;position:relative}.custom-tabs-list-full-width .custom-tabs-tab{flex:1;justify-content:center}.custom-tabs-list-line{border-bottom:2px solid #ccd3d7;gap:.25rem}.custom-tabs-list-pill{background:#f2f4f5;border-radius:.5rem;padding:.25rem;gap:.25rem}.custom-tabs-list-enclosed{border-bottom:1px solid #ccd3d7;gap:0}.custom-tabs-list-sm .custom-tabs-tab{padding:1rem;font-size:.75rem;gap:.25rem}.custom-tabs-list-md .custom-tabs-tab{padding:.5rem 1.25rem;font-size:.875rem;gap:.5rem}.custom-tabs-list-lg .custom-tabs-tab{padding:.75rem 1.5rem;font-size:1rem;gap:.5rem}.custom-tabs{display:flex;flex-direction:column;gap:0}.custom-tabs-horizontal{flex-direction:column}.custom-tabs-vertical{flex-direction:row}.custom-tabs-vertical .custom-tabs-list{flex-direction:column;align-items:flex-start;border-right:1px solid #ccd3d7;margin-right:.75rem}.custom-tabs-vertical .custom-tabs-tab{width:100%}.custom-tabs-tab-line{border-radius:.375rem .375rem 0 0;border-bottom:2px solid transparent;margin-bottom:-2px}.custom-tabs-tab-line.custom-tabs-tab-active{color:#1f282e;border-bottom-color:#1f282e;font-weight:600;background:transparent}.custom-tabs-tab-line.custom-tabs-tab-active:hover{color:#fff;background:#1f282e}.custom-tabs-tab-line:not(.custom-tabs-tab-disabled,.custom-tabs-tab-active):hover{background:#1f282e;color:#fff;border-bottom-color:#1f282e}.custom-tabs-tab-pill{border-radius:.375rem}.custom-tabs-tab-pill.custom-tabs-tab-active{background:#fff;color:#1f282e;box-shadow:"0 1px 2px 0 rgba(0, 0, 0, 0.05)"}.custom-tabs-tab-pill.custom-tabs-tab-active:hover{background:#1f282e;color:#fff}.custom-tabs-tab-pill:not(.custom-tabs-tab-disabled,.custom-tabs-tab-active):hover{background:#1f282e;color:#fff}.custom-tabs-tab-enclosed{border:1px solid transparent;border-bottom:none;border-radius:.5rem .5rem 0 0;margin-bottom:-1px}.custom-tabs-tab-enclosed.custom-tabs-tab-active{background:#fff;color:#0f1417;border-color:#ccd3d7;border-bottom-color:#fff}.custom-tabs-tab-enclosed.custom-tabs-tab-active:hover{background:#1f282e;color:#fff;border-color:#1f282e}.custom-tabs-tab-enclosed:not(.custom-tabs-tab-disabled,.custom-tabs-tab-active):hover{background:#1f282e;color:#fff}.custom-tabs-tab-icon{display:flex;align-items:center;flex-shrink:0;font-size:1.1em}.custom-tabs-tab-label{line-height:1.3}.custom-tabs-tab-badge{display:inline-flex;align-items:center;justify-content:center;min-width:18px;height:18px;padding:0 .25rem;background:#e6e9eb;color:#3d515c;border-radius:9999px;font-size:10px;font-weight:600;line-height:1}.custom-tabs-tab-active .custom-tabs-tab-badge{background:#f2f4f5;color:#1f282e}.custom-tabs-tab:hover .custom-tabs-tab-badge{background:#fff3;color:#fff}.custom-tabs-panels{flex:1}.custom-tabs-panel{padding:1rem 0;animation:tabs-fade-in .2s ease-out}@keyframes tabs-fade-in{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}.provisioning-drawer .custom-drawer-body{padding:2rem 1.5rem}.provisioning-drawer .custom-drawer-footer{padding:0;border-top:1px solid var(--color-grey-border)}.provisioning-drawer-shell{display:flex;flex-direction:column;gap:1.5rem}.provisioning-mode-toggle .custom-tabs-tab{flex:1;text-transform:uppercase}.provisioning-stage-card{display:grid;grid-template-columns:96px 1fr;gap:1.25rem;padding:1.5rem;border:1px solid var(--color-grey-border);border-radius:6px;background:var(--color-white)}.provisioning-stage-icon{display:flex;align-items:center;justify-content:center;width:72px;height:72px;border-radius:6px}.provisioning-stage-icon.provisioning-stage-icon-immediate{background:var(--color-feedback-positive-100);color:var(--color-feedback-positive-500)}.provisioning-stage-icon.provisioning-stage-icon-scheduled{background:var(--color-feedback-info-100);color:var(--color-feedback-info-500)}.provisioning-stage-content h3{margin:0 0 .5rem;font-weight:500;color:#111827}.provisioning-stage-content p{margin:0;max-width:620px;color:#6b7280;line-height:1.6}.provisioning-schedule-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;margin-top:1.25rem}.provisioning-action-container{display:flex;justify-content:flex-end}.provisioning-action-button{margin-top:2rem;font-weight:700;letter-spacing:.08em}.provisioning-protocol-card{padding:1rem;margin-top:1.5rem;border:1px solid #d2e3fc;border-radius:6px;background:#e8f0fe;color:#1765cc}.provisioning-protocol-card p{margin:.75rem 0 0;font-size:.875rem;line-height:1.7}.provisioning-protocol-header{display:flex;align-items:center;gap:.5rem;font-size:1.125rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase}.provisioning-protocol-note{font-style:italic}.provisioning-protocol-targets{color:#4d6573}.provisioning-drawer-footer{display:flex;justify-content:flex-end;width:100%;padding:1.25rem 1.5rem}@media(max-width:768px){.provisioning-stage-card,.provisioning-schedule-grid,.provisioning-mode-toggle{grid-template-columns:1fr}.provisioning-action-button{width:100%}}.lab-details-drawer .custom-drawer-body{padding:1.25rem 1.5rem}.lab-details-shell{display:flex;flex-direction:column;gap:1.25rem}.lab-details-top-meta{display:flex;align-items:center;gap:.5rem;color:var(--color-grey-primary);font-size:.75rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase}.lab-details-status{padding:.5rem;border-radius:999px;font-size:10px}.lab-details-status.is-active{background:var(--color-feedback-positive-100);color:var(--color-feedback-positive-500)}.lab-details-status.is-configured{background:var(--color-feedback-info-100);color:var(--color-feedback-info-500)}.lab-details-metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.75rem}.lab-details-metric-card{padding:.75rem;border:1px solid var(--color-grey-border);border-radius:4px;background:var(--color-white)}.lab-details-metric-card strong{display:block;margin-top:.5rem;color:var(--color-black);font-size:.875rem}.lab-details-metric-label{display:flex;align-items:center;gap:.25rem;color:var(--color-grey-primary);font-size:10px;font-weight:700;letter-spacing:.08em;text-transform:uppercase}.lab-details-section{display:flex;flex-direction:column;gap:.75rem}.lab-details-section-title{display:flex;align-items:center;gap:.5rem}.lab-details-config-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.75rem}.lab-details-config-card{padding:1rem;border:1px solid var(--color-grey-border);border-radius:4px;background:var(--color-white)}.lab-details-config-card h4{margin:.25rem 0 1.5rem}.lab-details-config-row{display:flex;justify-content:space-between;gap:.5rem;padding:.5rem 0;border-top:1px solid var(--color-grey-border);font-size:.75rem}.lab-details-config-row:first-of-type{border-top:0;padding-top:0}.lab-details-config-row span{color:#9ca3af}.lab-details-config-row strong{color:#111827;text-align:right}.lab-details-tool-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.5rem}.lab-details-tool-chip{display:flex;align-items:center;gap:.25rem;padding:.5rem .75rem;border:1px solid var(--color-grey-border);border-radius:4px;background:var(--color-white);color:var(--color-grey-primary);font-size:.75rem}.lab-details-tool-dot{width:6px;height:6px;border-radius:50%;background:var(--color-feedback-positive-500)}.lab-details-blueprint-card{display:flex;justify-content:space-between;gap:2rem;padding:1rem;border-radius:4px;background:linear-gradient(135deg,#111827,#1f2937);color:var(--color-white)}.lab-details-blueprint-card h4{margin:1rem 0}.lab-details-blueprint-card code{display:inline-block;padding:.5rem;border-radius:4px;background:#ffffff14;color:#f3f4f6;font-size:11px}.lab-details-blueprint-label{margin:0;color:var(--color-grey-primary);font-size:.75rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase}.lab-details-blueprint-stack{display:flex;flex-direction:column;justify-content:center;gap:.75rem}.lab-details-blueprint-stack div{width:64px;height:28px;border:1px solid rgba(255,255,255,.2);border-radius:8px;background:#ffffff0a}.lab-details-footer{display:flex;width:100%;justify-content:space-between;gap:.75rem}.lab-details-footer .custom-btn{min-width:160px}@media(max-width:768px){.lab-details-metrics,.lab-details-config-grid,.lab-details-tool-grid{grid-template-columns:1fr}.lab-details-footer,.lab-details-blueprint-card{flex-direction:column}}.admin-lab-management{display:flex;flex-direction:column;gap:1.5rem;height:100%}.sheet-content-student{width:100%;max-width:500px;display:flex;flex-direction:column}@media(min-width:640px){.sheet-content-student{max-width:500px}}.student-grid-2{display:grid;grid-template-columns:1fr;gap:1rem}.student-card-2{display:flex;justify-content:space-between;align-items:center;padding:1rem;border:1px solid;border-radius:.125rem;background:#fff}.student-card-2 .student-header{display:flex;align-items:center;gap:.75rem}.student-card-2 .student-avatar-2{width:2rem;height:2rem;border-radius:9999px;display:flex;align-items:center;justify-content:center;font-size:.75rem;font-weight:700}.student-card-2 .student-name-2{font-size:.875rem;font-weight:700}.student-card-2 .student-department-2{font-size:.75rem}.sheet-btn-assign{font-size:.75rem;font-weight:700;text-transform:uppercase;letter-spacing:.1em}.sheet-btn-assign .sheet-btn-icon{width:14px;height:14px;margin-right:.25rem}.custom-kpi-card{position:relative;background:#fff;border:1px solid #e6e9eb;border-radius:8px;padding:1.5rem;min-height:120px;display:flex;flex-direction:column;justify-content:center;transition:all .3s ease;overflow:hidden}.custom-kpi-card:after{content:"";position:absolute;right:-20px;bottom:-20px;width:120px;height:120px;background:radial-gradient(circle,rgba(0,0,0,.02) 0%,transparent 70%);border-radius:50%;pointer-events:none}.custom-kpi-card:hover{transform:translateY(-2px);box-shadow:0 8px 24px #0000000a;border-color:#ccd3d7}.custom-kpi-card .custom-kpi-card-content{position:relative;z-index:1}.custom-kpi-card .custom-kpi-value{margin:0;font-size:42px;font-weight:500;line-height:1.1;color:#0f1417}.custom-kpi-card .custom-kpi-label{margin:1rem 0 0;font-size:11px;font-weight:700;letter-spacing:.1em;text-transform:uppercase}.custom-kpi-card--stone .custom-kpi-label{color:#4d6573}.custom-kpi-card--green .custom-kpi-label{color:#10b981}.custom-kpi-card--blue .custom-kpi-label{color:#3b82f6}.custom-kpi-card--orange .custom-kpi-label{color:#f59e0b}.custom-kpi-card .custom-kpi-icon-wrapper{position:absolute;right:1.5rem;top:50%;transform:translateY(-50%);opacity:.1}.machine-kpi-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1.5rem;margin:2rem 0}.ip-address{font-family:'ui-monospace, SFMono-Regular, "SF Mono", Consolas, "Liberation Mono", Menlo, monospace';color:#6b7280;font-size:.875rem}.usage-text{font-weight:500;color:#4b5563;font-size:.875rem}.custom-alert-icon{flex-shrink:0;font-weight:700;line-height:1;width:20px;height:20px;display:flex;align-items:center;justify-content:center;color:var(--custom-alert-icon-color)}.custom-alert-body{flex:1;display:flex;flex-direction:column;gap:.25rem;min-width:0}.custom-alert-title{font-weight:600;margin:0;line-height:1.2;color:var(--custom-alert-title-color)}.custom-alert-description{margin:0;line-height:1.6;color:var(--custom-alert-description-color)}.custom-alert-content{margin-top:.25rem;color:var(--custom-alert-description-color)}.custom-alert-actions{display:flex;align-items:center;gap:.5rem;margin-top:.5rem;flex-wrap:wrap}.custom-alert-action-btn{display:inline-flex;align-items:center;justify-content:center;border:none;border-radius:.375rem;font-weight:500;cursor:pointer;transition:all .2s ease}.custom-alert-action-btn-ghost{background:transparent;text-decoration:underline;padding:0;color:var(--custom-alert-ghost-color)}.custom-alert-action-btn-ghost:hover{background:var(--custom-alert-ghost-hover-bg)}.custom-alert-action-btn:focus-visible{outline:2px solid currentcolor;outline-offset:2px}.custom-alert-dismiss{flex-shrink:0;background:transparent;border:none;cursor:pointer;padding:.25rem;border-radius:.375rem;line-height:1;transition:all .2s ease;margin-left:auto;color:var(--custom-alert-dismiss-color)}.custom-alert-dismiss:hover{color:var(--custom-alert-dismiss-hover-color);background:var(--custom-alert-dismiss-hover-bg)}.custom-alert{--custom-alert-bg: #f9fafb;--custom-alert-border: #e5e7eb;--custom-alert-icon-color: #4b5563;--custom-alert-title-color: #111827;--custom-alert-description-color: #374151;--custom-alert-dismiss-color: #9ca3af;--custom-alert-dismiss-hover-color: #4b5563;--custom-alert-dismiss-hover-bg: #f3f4f6;--custom-alert-primary-bg: #111827;--custom-alert-primary-hover-bg: #000;--custom-alert-ghost-color: #374151;--custom-alert-ghost-hover-bg: #f3f4f6;display:flex;align-items:flex-start;gap:.75rem;position:relative;border:1px solid var(--custom-alert-border);border-radius:.75rem;background:var(--custom-alert-bg)}.custom-alert-action-btn-primary{background:var(--custom-alert-primary-bg);color:#fff}.custom-alert-action-btn-primary:hover{background:var(--custom-alert-primary-hover-bg)}.custom-alert-sm{padding:.75rem 1rem}.custom-alert-sm .custom-alert-icon{margin-top:1px}.custom-alert-sm .custom-alert-title{font-size:.875rem}.custom-alert-sm .custom-alert-description{font-size:.75rem}.custom-alert-sm .custom-alert-action-btn{padding:.25rem .5rem;font-size:.75rem}.custom-alert-md{padding:1rem 1.25rem}.custom-alert-md .custom-alert-icon{margin-top:2px}.custom-alert-md .custom-alert-title{font-size:1rem}.custom-alert-md .custom-alert-description,.custom-alert-md .custom-alert-content{font-size:.875rem}.custom-alert-md .custom-alert-action-btn{padding:1rem;font-size:.875rem}.custom-alert-info{--custom-alert-bg: rgba(232, 240, 254, .2);--custom-alert-border: #d2e3fc;--custom-alert-icon-color: #1765cc;--custom-alert-title-color: #0d3c7a;--custom-alert-description-color: #0d3c7a;--custom-alert-dismiss-color: #4c8df5;--custom-alert-dismiss-hover-color: #1765cc;--custom-alert-dismiss-hover-bg: #d2e3fc;--custom-alert-primary-bg: #1765cc;--custom-alert-primary-hover-bg: #1254a3;--custom-alert-ghost-color: #1254a3;--custom-alert-ghost-hover-bg: #d2e3fc}.custom-alert-success{--custom-alert-bg: ;--custom-alert-border: #d1fae5;--custom-alert-icon-color: #059669;--custom-alert-title-color: #065f46;--custom-alert-description-color: #065f46;--custom-alert-dismiss-color: #34d399;--custom-alert-dismiss-hover-color: #059669;--custom-alert-dismiss-hover-bg: #d1fae5;--custom-alert-primary-bg: #059669;--custom-alert-primary-hover-bg: #047857;--custom-alert-ghost-color: #047857;--custom-alert-ghost-hover-bg: #d1fae5}.custom-alert-warning{--custom-alert-bg: rgba(254, 243, 199, .2);--custom-alert-border: #fef3c7;--custom-alert-icon-color: #d97706;--custom-alert-title-color: #92400e;--custom-alert-description-color: #92400e;--custom-alert-dismiss-color: #fbbf24;--custom-alert-dismiss-hover-color: #d97706;--custom-alert-dismiss-hover-bg: #fef3c7;--custom-alert-primary-bg: #d97706;--custom-alert-primary-hover-bg: #b45309;--custom-alert-ghost-color: #b45309;--custom-alert-ghost-hover-bg: #fef3c7}.custom-alert-error{--custom-alert-bg: ;--custom-alert-border: #fee2e2;--custom-alert-icon-color: #dc2626;--custom-alert-title-color: #991b1b;--custom-alert-description-color: #991b1b;--custom-alert-dismiss-color: #f87171;--custom-alert-dismiss-hover-color: #dc2626;--custom-alert-dismiss-hover-bg: #fee2e2;--custom-alert-primary-bg: #dc2626;--custom-alert-primary-hover-bg: #b91c1c;--custom-alert-ghost-color: #b91c1c;--custom-alert-ghost-hover-bg: #fee2e2}.register-machine-drawer .drawer-body-content{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.register-machine-drawer .registration-alert{margin-top:1.5rem}.register-machine-drawer .drawer-footer-actions{display:flex;justify-content:space-between;gap:.75rem;width:100%}.register-machine-drawer .drawer-footer-actions button{min-width:140px}.register-machine-drawer .drawer-footer-actions .register-btn{background:#262626;color:#fff}.register-machine-drawer .drawer-footer-actions .register-btn:hover{background:#333}.custom-import-drawer-body{display:flex;flex-direction:column;gap:1rem;padding:.5rem 0}.custom-import-drawer-steps{background:#ecfeff;border:1px solid #a5f3fc;border-radius:.375rem;padding:.75rem}.custom-import-drawer-steps-header{display:flex;align-items:center;gap:.5rem;color:#0e7490;font-size:.875rem;font-weight:600;margin-bottom:.5rem}.custom-import-drawer-steps-list{margin:0;padding-left:1rem}.custom-import-drawer-steps-list li{font-size:.875rem;color:#4b5563;line-height:1.7}.custom-import-drawer-template{display:flex;align-items:center;justify-content:space-between;padding:.75rem;background:#f9fafb;border:1px solid #e5e7eb;border-radius:.375rem}.custom-import-drawer-template-info{display:flex;align-items:center;gap:.75rem;color:#4b5563}.custom-import-drawer-template-label{font-size:.875rem;font-weight:600;color:#1f2937;margin:0}.custom-import-drawer-template-hint{font-size:.75rem;color:#6b7280;margin:.25rem 0 0}.custom-import-drawer-dropzone{border:2px dashed #d1d5db;border-radius:.5rem;padding:2rem;text-align:center;cursor:pointer;display:flex;flex-direction:column;align-items:center;gap:.5rem;transition:border-color .15s ease,background .15s ease}.custom-import-drawer-dropzone:hover{border-color:#22d3ee;background:#ecfeff}.custom-import-drawer-dropzone:focus-visible{outline:2px solid #22d3ee;outline-offset:2px}.custom-import-drawer-dropzone-dragging{border-color:#22d3ee;background:#ecfeff}.custom-import-drawer-dropzone-icon{color:#9ca3af}.custom-import-drawer-dropzone-label{font-size:.875rem;font-weight:500;color:#374151;margin:0}.custom-import-drawer-dropzone-hint{font-size:.75rem;color:#9ca3af;margin:0}.custom-import-drawer-file-input{display:none}.custom-import-drawer-file{display:flex;align-items:center;gap:.75rem;padding:.75rem;background:#d1fae5;border:1px solid #6ee7b7;border-radius:.375rem}.custom-import-drawer-file-icon{color:#059669;flex-shrink:0}.custom-import-drawer-file-meta{flex:1;min-width:0;display:flex;flex-direction:column;gap:.25rem}.custom-import-drawer-file-name{font-size:.875rem;font-weight:500;color:#065f46;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.custom-import-drawer-file-size{font-size:.75rem;color:#059669}.custom-import-drawer-file-remove{background:none;border:none;cursor:pointer;color:#059669;padding:.25rem;border-radius:.125rem;display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:background .15s ease}.custom-import-drawer-file-remove:hover{background:#a7f3d0}.custom-import-drawer-footer{display:flex;justify-content:flex-end;gap:.5rem;width:100%}.custom-badge-dot{border-radius:9999px;flex-shrink:0}.custom-badge-icon{display:flex;align-items:center;flex-shrink:0;line-height:1}.custom-badge-label{line-height:1;text-transform:capitalize}.custom-badge-remove{display:inline-flex;align-items:center;justify-content:center;border-radius:9999px;border:none;background:transparent;cursor:pointer;flex-shrink:0;padding:0;line-height:1;transition:color .2s ease-in-out,background .2s ease-in-out;color:var(--custom-badge-remove-color, currentColor)}.custom-badge-remove:hover{color:var(--custom-badge-remove-hover-color, currentColor);background:var(--custom-badge-remove-hover-bg, transparent)}.custom-badge-remove:focus-visible{outline:2px solid currentcolor;outline-offset:1px}.custom-badge{display:inline-flex;align-items:center;gap:.25rem;border-radius:.25rem;font-weight:500;font-family:"Inter, system-ui, -apple-system, sans-serif";white-space:nowrap;border:1px solid transparent;line-height:1;--custom-badge-remove-color: #4d6573;--custom-badge-remove-hover-color: #2e3d45;--custom-badge-remove-hover-bg: #ccd3d7}.custom-badge-sm{padding:2px .5rem;font-size:.75rem}.custom-badge-sm .custom-badge-dot{width:5px;height:5px}.custom-badge-sm .custom-badge-icon{font-size:10px}.custom-badge-sm .custom-badge-remove{font-size:8px;width:12px;height:12px}.custom-badge-md{padding:.25rem .5rem;font-size:.75rem}.custom-badge-md .custom-badge-dot{width:6px;height:6px}.custom-badge-md .custom-badge-icon{font-size:.75rem}.custom-badge-md .custom-badge-remove{font-size:9px;width:14px;height:14px}.custom-badge-lg{padding:.25rem .75rem;font-size:.875rem}.custom-badge-lg .custom-badge-dot{width:7px;height:7px}.custom-badge-lg .custom-badge-icon{font-size:.875rem}.custom-badge-lg .custom-badge-remove{font-size:10px;width:16px;height:16px}.custom-badge-default{background:#e6e9eb;color:#2e3d45;border-color:#ccd3d7}.custom-badge-default .custom-badge-dot{background:#4d6573}.custom-badge-default{--custom-badge-remove-color: #4d6573;--custom-badge-remove-hover-color: #2e3d45;--custom-badge-remove-hover-bg: #ccd3d7}.custom-badge-primary{background:#f2f4f5;color:#2e3d45;border-color:#ccd3d7}.custom-badge-primary .custom-badge-dot{background:#4d6573}.custom-badge-primary{--custom-badge-remove-color: #80919b;--custom-badge-remove-hover-color: #2e3d45;--custom-badge-remove-hover-bg: #e6e9eb}.custom-badge-success{background:#d1fae5;color:#047857;border-color:#a7f3d0}.custom-badge-success .custom-badge-dot{background:#10b981}.custom-badge-success{--custom-badge-remove-color: #34d399;--custom-badge-remove-hover-color: #047857;--custom-badge-remove-hover-bg: #a7f3d0}.custom-badge-warning{background:#fef3c7;color:#b45309;border-color:#fde68a}.custom-badge-warning .custom-badge-dot{background:#f59e0b}.custom-badge-warning{--custom-badge-remove-color: #fbbf24;--custom-badge-remove-hover-color: #b45309;--custom-badge-remove-hover-bg: #fde68a}.custom-badge-error{background:#fee2e2;color:#b91c1c;border-color:#fecaca}.custom-badge-error .custom-badge-dot{background:#ef4444}.custom-badge-error{--custom-badge-remove-color: #f87171;--custom-badge-remove-hover-color: #b91c1c;--custom-badge-remove-hover-bg: #fecaca}.custom-badge-info{background:#e8f0fe;color:#1a73e8;border-color:#d2e3fc}.custom-badge-info .custom-badge-dot{background:#1a73e8}.custom-badge-info{--custom-badge-remove-color: #1a73e8;--custom-badge-remove-hover-color: #1765cc;--custom-badge-remove-hover-bg: #d2e3fc}.custom-badge-outline{background:transparent;color:#2e3d45;border-color:#b3bdc3}.custom-badge-outline .custom-badge-dot{background:#80919b}.custom-badge-outline{--custom-badge-remove-color: #80919b;--custom-badge-remove-hover-color: #2e3d45;--custom-badge-remove-hover-bg: #e6e9eb}.custom-avatar-status{position:absolute;border-radius:9999px;border:2px solid #fff;box-shadow:0 0 0 1px #00000026;flex-shrink:0}.custom-avatar-status-online{background:#16a34a}.custom-avatar-status-offline{background:#94a3b8}.custom-avatar-status-busy{background:#dc2626}.custom-avatar-status-away{background:#d97706}.custom-avatar{display:inline-flex;align-items:center;justify-content:center;position:relative;flex-shrink:0;-webkit-user-select:none;user-select:none;font-family:"Inter, system-ui, -apple-system, sans-serif";font-weight:600}.custom-avatar-xs{width:24px;height:24px;font-size:.75rem}.custom-avatar-xs .custom-avatar-status{width:8px;height:8px;bottom:-1px;right:-1px}.custom-avatar-sm{width:32px;height:32px;font-size:.75rem}.custom-avatar-sm .custom-avatar-status{width:10px;height:10px;bottom:-1px;right:-1px}.custom-avatar-md{width:40px;height:40px;font-size:.875rem}.custom-avatar-md .custom-avatar-status{width:12px;height:12px;bottom:-1px;right:-1px}.custom-avatar-lg{width:48px;height:48px;font-size:1rem}.custom-avatar-lg .custom-avatar-status{width:14px;height:14px;bottom:-1px;right:-1px}.custom-avatar-xl{width:64px;height:64px;font-size:1.25rem}.custom-avatar-xl .custom-avatar-status{width:16px;height:16px;bottom:-1px;right:-1px}.custom-avatar-circle{border-radius:9999px}.custom-avatar-square{border-radius:.5rem}.custom-avatar-success{background:#dcfce7;color:#166534}.custom-avatar-error{background:#fee2e2;color:#991b1b}.custom-avatar-info{background:#dbeafe;color:#1e40af}.custom-avatar-gray{background:#f1f5f9;color:#475569}.custom-avatar-img{width:100%;height:100%;object-fit:cover;border-radius:inherit}.custom-avatar-initials{line-height:1;letter-spacing:.02em}.custom-avatar-icon{font-size:1em;line-height:1;background:#e6e9eb;color:#80919b;width:100%;height:100%;display:flex;align-items:center;justify-content:center}.custom-avatar-group{display:inline-flex;align-items:center}.custom-avatar-group .custom-avatar-group-item{border:2px solid #fff;margin-left:-8px}.custom-avatar-group .custom-avatar-group-item:first-child{margin-left:0}.custom-avatar-group .custom-avatar-group-overflow{background:#e6e9eb;color:#3d515c;border:2px solid #fff;margin-left:-8px;font-size:.75rem;font-weight:600}.manage-students__kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:1.5rem;margin:2rem 0}.manage-students__controls{display:flex;align-items:center;gap:.75rem;margin-bottom:1.5rem}.manage-students__controls button{white-space:nowrap}.manage-students__table .student-info{display:flex;gap:.75rem;align-items:center}.manage-students__table .student-avatar{width:2.5rem;height:2.5rem;background:#e5e7eb;border-radius:9999px;display:flex;align-items:center;justify-content:center;font-size:.75rem;font-weight:600;color:#4b5563;flex-shrink:0}.manage-students__table .student-name{margin:0;font-weight:600;font-size:.875rem;color:#111827}.manage-students__table .student-email{margin:2px 0 0;font-size:.75rem;color:#9ca3af}.manage-students__table .assigned-lab-cell .lab-name{margin:0;font-weight:700;font-size:.75rem;color:#111827}.manage-students__table .assigned-lab-cell .lab-subtext{margin:2px 0 0;font-size:11px;color:#9ca3af}.manage-students__table .lab-hours-cell{display:flex;align-items:center;gap:.75rem}.manage-students__table .lab-hours-progress{width:5rem;height:6px;background:#f3f4f6;border-radius:3px;overflow:hidden}.manage-students__table .lab-hours-bar{height:100%;background:#10b981}.manage-students__table .lab-hours-text{font-size:.75rem;font-weight:600;color:#111827}.manage-students__drawer-actions{display:flex;gap:.75rem;justify-content:flex-end}.student-enrollment-form{display:flex;flex-direction:column;gap:2rem}.student-enrollment-form .form-section .section-title{font-size:11px;font-weight:700;letter-spacing:.1em;color:#9ca3af;margin-bottom:1rem;padding-bottom:.5rem;border-bottom:1px solid #f3f4f6;text-transform:uppercase}.student-enrollment-form .form-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1rem}.student-enrollment-form .form-grid>:only-child{grid-column:span 2}.custom-form{display:flex;flex-direction:column;gap:1.5rem;width:100%}.custom-form-disabled{pointer-events:none;opacity:.6}.custom-form-section{display:flex;flex-direction:column;gap:1rem}.custom-form-section-header{display:flex;flex-direction:column;gap:.25rem;padding-bottom:.75rem;border-bottom:1px solid #e6e9eb}.custom-form-section-title{margin:0;color:#0f1417;font-size:1rem;font-weight:600}.custom-form-section-description{margin:0;color:#4d6573;font-size:.875rem;line-height:1.6}.custom-form-section-body{display:flex;flex-direction:column;gap:1rem}.custom-form-group{display:grid;gap:1rem}.custom-form-group-cols-1{grid-template-columns:1fr}.custom-form-group-cols-2{grid-template-columns:repeat(2,1fr)}.custom-form-group-cols-3{grid-template-columns:repeat(3,1fr)}@media(max-width:640px){.custom-form-group{grid-template-columns:1fr}}.custom-form-field{display:flex;flex-direction:column;gap:.75rem}.custom-form-field-label{display:inline-flex;align-items:center;gap:.25rem;color:#2e3d45;cursor:default;font-size:.875rem;font-weight:500;-webkit-user-select:none;user-select:none}.custom-form-field-horizontal{flex-direction:row;align-items:center;gap:1rem}.custom-form-field-horizontal .custom-form-field-label{flex-shrink:0;min-width:140px;margin-top:0}.custom-form-field-required{color:#ef4444;font-weight:600}.custom-form-field-optional{color:#80919b;font-size:.75rem;font-weight:400}.custom-form-field-control{--custom-form-border-color: #ccd3d7;--custom-form-hover-border-color: #b3bdc3;--custom-form-focus-border-color: #4d6573;--custom-form-focus-ring: 0 0 0 3px rgb(37 99 235 / 12%);--custom-form-input-padding-y: .5rem;--custom-form-input-padding-x: .75rem;--custom-form-input-font-size: .875rem;--custom-form-textarea-min-height: 80px}.custom-form-sm .custom-form-field-control{--custom-form-input-padding-y: ;--custom-form-input-padding-x: ;--custom-form-input-font-size: .75rem;--custom-form-textarea-min-height: 72px}.custom-form-md .custom-form-field-control{--custom-form-input-padding-y: .5rem;--custom-form-input-padding-x: .75rem;--custom-form-input-font-size: .875rem;--custom-form-textarea-min-height: 80px}.custom-form-lg .custom-form-field-control{--custom-form-input-padding-y: .75rem;--custom-form-input-padding-x: 1rem;--custom-form-input-font-size: 1rem;--custom-form-textarea-min-height: 100px}.custom-form-field-error .custom-form-field-control{--custom-form-border-color: #f87171;--custom-form-hover-border-color: #f87171;--custom-form-focus-border-color: #f87171;--custom-form-focus-ring: 0 0 0 3px rgb(220 38 38 / 12%)}.custom-form-field-success .custom-form-field-control{--custom-form-border-color: #16a34a;--custom-form-hover-border-color: #16a34a;--custom-form-focus-border-color: #16a34a;--custom-form-focus-ring: 0 0 0 3px rgb(22 163 74 / 12%)}.custom-form-field-control input,.custom-form-field-control select,.custom-form-field-control textarea{box-sizing:border-box;width:100%;padding:var(--custom-form-input-padding-y) var(--custom-form-input-padding-x);border:none;border-radius:.5rem;outline:none;background:#fff;color:#0f1417;font-family:"Inter, system-ui, -apple-system, sans-serif";font-size:var(--custom-form-input-font-size);transition:border-color .2s ease-in-out,box-shadow .2s ease-in-out}.custom-form-field-control textarea{min-height:var(--custom-form-textarea-min-height);resize:vertical}.custom-form-field-horizontal .custom-form-field-control{flex:1}.custom-form-field-control input::placeholder,.custom-form-field-control select::placeholder,.custom-form-field-control textarea::placeholder{color:#80919b}.custom-form-field-control input:focus,.custom-form-field-control select:focus,.custom-form-field-control textarea:focus{border-color:var(--custom-form-focus-border-color);box-shadow:var(--custom-form-focus-ring)}.custom-form-field-control input:disabled,.custom-form-field-control select:disabled,.custom-form-field-control textarea:disabled{background:#f2f4f5;color:#80919b;cursor:not-allowed}.custom-form-field-control input:hover:not(:disabled),.custom-form-field-control select:hover:not(:disabled),.custom-form-field-control textarea:hover:not(:disabled){border-color:var(--custom-form-hover-border-color)}.custom-form-field-message{display:flex;align-items:center;gap:.25rem;margin:0;font-size:.75rem;line-height:1.4}.custom-form-field-message-error{color:#dc2626}.custom-form-field-message-success{color:#16a34a}.custom-form-field-hint{margin:0;color:#80919b;font-size:.75rem;line-height:1.4}.custom-form-actions{display:flex;align-items:center;gap:.75rem;padding-top:.5rem}.custom-form-actions-left{justify-content:flex-start}.custom-form-actions-right{justify-content:flex-end}.custom-form-actions-center{justify-content:center}.custom-form-actions-between{justify-content:space-between}.custom-form-divider{display:flex;align-items:center;gap:.75rem}.custom-form-divider-line{flex:1;height:1px;background:#e6e9eb}.custom-form-divider-label{color:#80919b;font-size:.75rem;font-weight:500;letter-spacing:.06em;text-transform:uppercase;white-space:nowrap}.booking-settings .settings-card{background:#fff;padding:1.5rem;border-radius:.5rem;border:1px solid #e5e7eb}.booking-settings .settings-title{font-size:1.125rem;font-weight:600;color:#111827;margin-bottom:.25rem}.booking-settings .settings-description{font-size:.875rem;color:#6b7280;margin-bottom:1.5rem}.booking-settings .settings-grid{display:grid;grid-template-columns:1fr 1fr;gap:1.5rem}.booking-settings .settings-field{display:flex;flex-direction:column}.booking-settings .settings-field label{font-size:.875rem;font-weight:500;color:#374151}.booking-settings .settings-field input{padding:.5rem .75rem;border:1px solid #d1d5db;border-radius:.25rem;font-size:.875rem;transition:border-color .15s}.booking-settings .settings-field input:focus{outline:none;border-color:#1a73e8}.booking-settings .settings-field .field-helper{font-size:.75rem;color:#9ca3af}.quotas-settings .settings-card{background:#fff;padding:1.5rem;border-radius:.5rem;border:1px solid #e5e7eb}.quotas-settings .settings-title{font-size:1.125rem;font-weight:600;color:#111827;margin-bottom:.25rem}.quotas-settings .settings-description{font-size:.875rem;color:#6b7280;margin-bottom:1.5rem}.quotas-settings .settings-grid{display:grid;grid-template-columns:1fr 1fr;gap:1.5rem}.quotas-settings .settings-field{display:flex;flex-direction:column}.quotas-settings .settings-field label{font-size:.875rem;font-weight:500;color:#374151}.quotas-settings .settings-field input{padding:.5rem .75rem;border:1px solid #d1d5db;border-radius:.25rem;font-size:.875rem;transition:border-color .15s}.quotas-settings .settings-field input:focus{outline:none;border-color:#1a73e8}.quotas-settings .settings-field .field-helper{font-size:.75rem;color:#9ca3af}.custom-switch-wrapper{display:inline-flex;flex-direction:column;gap:.25rem}.custom-switch-row{display:inline-flex;align-items:center;gap:.5rem;cursor:pointer;-webkit-user-select:none;user-select:none}.custom-switch-row-disabled{cursor:not-allowed;opacity:.5}.custom-switch-input{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0}.custom-switch-track{--custom-switch-track-width: 42px;--custom-switch-track-height: 24px;--custom-switch-track-padding: 3px;--custom-switch-thumb-size: 18px;--custom-switch-thumb-translate: 18px;--custom-switch-active-background: #3d515c;position:relative;display:inline-flex;flex-shrink:0;align-items:center;width:var(--custom-switch-track-width);height:var(--custom-switch-track-height);padding:var(--custom-switch-track-padding);border-radius:9999px;background:#ccd3d7;transition:background .2s ease-in-out,box-shadow .2s ease-in-out}.custom-switch-track-sm{--custom-switch-track-width: 32px;--custom-switch-track-height: 18px;--custom-switch-track-padding: 2px;--custom-switch-thumb-size: 14px;--custom-switch-thumb-translate: 14px}.custom-switch-track-md{--custom-switch-track-width: 42px;--custom-switch-track-height: 24px;--custom-switch-track-padding: 3px;--custom-switch-thumb-size: 18px;--custom-switch-thumb-translate: 18px}.custom-switch-track-lg{--custom-switch-track-width: 52px;--custom-switch-track-height: 30px;--custom-switch-track-padding: 3px;--custom-switch-thumb-size: 24px;--custom-switch-thumb-translate: 22px}.custom-switch-track-default{--custom-switch-active-background: #3d515c}.custom-switch-track-success{--custom-switch-active-background: #059669}.custom-switch-warning{--custom-switch-active-background: #d97706}.custom-switch-error{--custom-switch-active-background: #dc2626}.custom-switch-input:focus-visible+.custom-switch-track{box-shadow:0 0 0 3px #2563eb40}.custom-switch-track-checked{background:var(--custom-switch-active-background)}.custom-switch-track-disabled{pointer-events:none}.custom-switch-track-loading{opacity:.7;animation:custom-switch-track-pulse 1.2s ease-in-out infinite}.custom-switch-thumb{width:var(--custom-switch-thumb-size);height:var(--custom-switch-thumb-size);flex-shrink:0;border-radius:9999px;background:#fff;box-shadow:0 1px 3px #0003;transition:transform .2s cubic-bezier(.4,0,.2,1)}.custom-switch-track-checked .custom-switch-thumb{transform:translate(var(--custom-switch-thumb-translate))}.custom-switch-thumb-loading{animation:custom-switch-thumb-pulse 1s ease-in-out infinite}.custom-switch-label{color:#2e3d45;font-size:.875rem;font-weight:500;line-height:1.4}.custom-switch-hint{margin:0;color:#80919b;font-size:.75rem;line-height:1.4}.custom-switch-hint-indented{padding-left:calc(42px + .5rem)}@keyframes custom-switch-track-pulse{0%,to{opacity:.7}50%{opacity:.4}}@keyframes custom-switch-thumb-pulse{0%,to{opacity:1}50%{opacity:.7}}.infrastructure-settings .settings-card{background:#fff;padding:1.5rem;border-radius:.5rem;border:1px solid #e5e7eb}.infrastructure-settings .settings-title{font-size:1.125rem;font-weight:600;color:#111827;margin-bottom:.25rem}.infrastructure-settings .settings-description{font-size:.875rem;color:#6b7280;margin-bottom:1.5rem}.infrastructure-settings .section-subtitle{font-size:.875rem;font-weight:600;color:#111827;margin-bottom:1rem;text-transform:uppercase;letter-spacing:.05em}.infrastructure-settings .settings-divider{height:1px;background:#f3f4f6;margin:1.5rem 0}.infrastructure-settings .settings-grid{display:grid;grid-template-columns:1fr 1fr;gap:1.5rem}.infrastructure-settings .settings-field{display:flex;flex-direction:column}.infrastructure-settings .settings-field label{font-size:.875rem;font-weight:500;color:#374151}.infrastructure-settings .settings-field input[type=number],.infrastructure-settings .settings-field input[type=time]{padding:.5rem .75rem;border:1px solid #d1d5db;border-radius:.25rem;font-size:.875rem;transition:border-color .15s}.infrastructure-settings .settings-field input[type=number]:focus,.infrastructure-settings .settings-field input[type=time]:focus{outline:none;border-color:#1a73e8}.infrastructure-settings .settings-field .field-helper{font-size:.75rem;color:#9ca3af}.infrastructure-settings .settings-field.toggle-field{flex-direction:row;justify-content:space-between;align-items:flex-start}.infrastructure-settings .settings-field.toggle-field .field-content{display:flex;flex-direction:column}.infrastructure-settings .info-node{margin-top:2rem;display:flex;gap:.5rem;padding:1rem;background:#e8f0fe;border-radius:.375rem;color:#1254a3;font-size:.875rem;line-height:1.5}.infrastructure-settings .info-node svg{flex-shrink:0;margin-top:2px}.notification-settings .settings-card{background:#fff;padding:1.5rem;border-radius:.5rem;border:1px solid #e5e7eb}.notification-settings .settings-title{font-size:1.125rem;font-weight:600;color:#111827;margin-bottom:.25rem}.notification-settings .settings-description{font-size:.875rem;color:#6b7280;margin-bottom:1.5rem}.notification-settings .notification-list{display:flex;flex-direction:column;gap:1rem}.notification-settings .notification-item{display:flex;justify-content:space-between;align-items:center;padding:1rem;border:1px solid #f3f4f6;border-radius:.375rem;transition:background .15s}.notification-settings .notification-item:hover{background:#f9fafb}.notification-settings .notification-item .notification-content{display:flex;flex-direction:column}.notification-settings .notification-item .notification-label{font-size:.875rem;font-weight:600;color:#1f2937}.notification-settings .notification-item .notification-desc{font-size:.75rem;color:#6b7280}.settings-page .settings-container{margin-top:2rem}.settings-page .settings-content{animation:fade-in .2s ease-out}@keyframes fade-in{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.user-drawer-form{display:flex;flex-direction:column;gap:1.5rem}.user-drawer-section{display:flex;flex-direction:column;gap:1rem}.user-drawer-section-title{font-size:.8125rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:#6b7280;margin:0;padding-bottom:.5rem;border-bottom:1px solid #f3f4f6}.user-drawer-field-row{display:grid;grid-template-columns:repeat(2,1fr);gap:1rem}.user-drawer-field{display:flex;flex-direction:column}.user-drawer-alert{margin-top:.5rem}.user-drawer-footer{display:flex;justify-content:space-between;gap:.75rem}.custom-dialog-overlay{position:fixed;inset:0;z-index:1000;display:flex;align-items:center;justify-content:center;padding:1rem;background:#00000073;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);animation:custom-dialog-overlay-in .18s ease}@keyframes custom-dialog-overlay-in{0%{opacity:0}to{opacity:1}}.custom-dialog{position:relative;display:flex;flex-direction:column;width:100%;max-height:calc(100vh - 2rem);border-radius:1rem;background:#fff;box-shadow:0 24px 64px #0000002e,0 4px 16px #00000014;animation:custom-dialog-in .22s cubic-bezier(.16,1,.3,1)}.custom-dialog-sm{max-width:400px}.custom-dialog-md{max-width:540px}.custom-dialog-lg{max-width:720px}.custom-dialog-xl{max-width:960px}.custom-dialog-full{max-width:calc(100vw - 2rem);max-height:calc(100vh - 2rem)}@keyframes custom-dialog-in{0%{opacity:0;transform:translateY(-20px) scale(.97)}to{opacity:1;transform:translateY(0) scale(1)}}.custom-dialog-header{display:flex;flex-shrink:0;align-items:flex-start;justify-content:space-between;gap:.75rem;padding:1.25rem 1.5rem;border-bottom:1px solid #e6e9eb}.custom-dialog-destructive .custom-dialog-header{border-bottom-color:#fee2e2}.custom-dialog-header-text{display:flex;flex:1;flex-direction:column;gap:.25rem;min-width:0}.custom-dialog-title{margin:0;color:#0f1417;font-size:1.125rem;font-weight:600;line-height:1.3}.custom-dialog-title-destructive{color:#dc2626}.custom-dialog-description{margin:0;color:#4d6573;font-size:.875rem;line-height:1.6}.custom-dialog-close{display:inline-flex;flex-shrink:0;align-items:center;justify-content:center;width:32px;height:32px;border:none;border-radius:.375rem;background:transparent;color:#80919b;cursor:pointer;font-size:.875rem;transition:background .2s ease-in-out,color .2s ease-in-out}.custom-dialog-close:hover{background:#e6e9eb;color:#2e3d45}.custom-dialog-close:focus-visible{outline:2px solid #4d6573;outline-offset:2px}.custom-dialog-body{flex:1;overflow-y:auto;padding:1.25rem 1.5rem;color:#0e7490;font-size:.875rem;line-height:1.6}.custom-dialog-footer{display:flex;flex-shrink:0;align-items:center;gap:.75rem;padding:1rem 1.5rem;border-top:1px solid #e6e9eb}.custom-dialog-footer-left{justify-content:flex-start}.custom-dialog-footer-center{justify-content:center}.custom-dialog-footer-right{justify-content:flex-end}.custom-dialog-footer-between{justify-content:space-between}.custom-dialog-button{display:inline-flex;align-items:center;gap:.5rem;padding:.5rem 1rem;border:none;border-radius:.375rem;cursor:pointer;font-family:"Inter, system-ui, -apple-system, sans-serif";font-size:.875rem;font-weight:500;transition:background .2s ease-in-out,color .2s ease-in-out}.custom-dialog-button-primary{background:#3d515c;color:#fff}.custom-dialog-button-primary:hover{background:#2e3d45}.custom-dialog-button-ghost{border:1px solid #ccd3d7;background:transparent;color:#3d515c}.custom-dialog-button-ghost:hover{background:#f2f4f5}.custom-dialog-button-danger{background:#dc2626;color:#fff}.custom-dialog-button-danger:hover{background:#b91c1c}.delete-user-dialog-body{padding:.5rem 0}.delete-user-dialog-warning{display:flex;align-items:flex-start;gap:.75rem;border:1px solid #fecaca;border-radius:8px;padding:.75rem 1rem}.delete-user-dialog-warning-icon{color:#ef4444;flex-shrink:0;margin-top:1px}.delete-user-dialog-warning-text{font-size:.875rem;color:#991b1b;margin:0;line-height:1.5}.manage-users-page{display:flex;flex-direction:column;gap:1.5rem;height:100%}.manage-users-page .sync-btn,.manage-users-page .create-btn{white-space:nowrap}.manage-users-page .table-wrapper{flex:1;min-height:0}.manage-users-kpi-row{display:grid;grid-template-columns:repeat(4,1fr);gap:1rem}@media(max-width:1024px){.manage-users-kpi-row{grid-template-columns:repeat(2,1fr)}}@media(max-width:640px){.manage-users-kpi-row{grid-template-columns:1fr}}.manage-users-role-filter{min-width:140px}.notifications-list{display:flex;flex-direction:column;gap:1rem;margin-top:2rem}.notification-item{display:flex;gap:1rem;padding:1.25rem;background-color:#fff;border:1px solid #e5e7eb;border-radius:.5rem;transition:all .2s}.notification-item:hover{border-color:#b3bdc3;box-shadow:"0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06)";transform:translateY(-2px)}.notification-icon-container{display:flex;align-items:center;justify-content:center;width:48px;height:48px;border-radius:9999px;flex-shrink:0}.notification-icon-container.notification-icon-info{background-color:#e8f0fe;color:#1765cc}.notification-icon-container.notification-icon-warning{color:#d97706}.notification-icon-container.notification-icon-success{color:#059669}.notification-content{flex:1}.notification-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:.25rem}.notification-title{font-size:16px;font-weight:600;color:#0f1417;margin:0}.notification-time{font-size:13px;color:#9ca3af}.notification-description{font-size:14px;color:#3d515c;margin:0;line-height:1.5}.custom-popover-trigger{display:inline-flex;cursor:pointer}.custom-popover{background:#fff;border:1px solid #ccd3d7;border-radius:.75rem;box-shadow:0 8px 32px #0000001f,0 2px 8px #0000000f;min-width:200px;max-width:360px;animation:popover-in .16s ease-out both}@keyframes popover-in{0%{opacity:0;transform:scale(.95) translateY(4px)}to{opacity:1;transform:scale(1) translateY(0)}}.custom-popover-arrow{position:absolute;width:10px;height:10px;background:#fff;border:1px solid #ccd3d7;transform:rotate(45deg)}.custom-popover-arrow[data-side=bottom]{top:-6px;left:calc(50% - 5px);border-bottom:none;border-right:none}.custom-popover-arrow[data-side=top]{bottom:-6px;left:calc(50% - 5px);border-top:none;border-left:none}.custom-popover-arrow[data-side=right]{left:-6px;top:calc(50% - 5px);border-right:none;border-bottom:none}.custom-popover-arrow[data-side=left]{right:-6px;top:calc(50% - 5px);border-left:none;border-top:none}.custom-popover-content{padding:.5rem;font-size:.875rem;color:#2e3d45;line-height:1.6;position:relative;z-index:1}.custom-popover-header{margin-bottom:.5rem}.custom-popover-header h4,.custom-popover-header .custom-popover-title{font-size:.875rem;font-weight:600;color:#0f1417;margin:0 0 .25rem}.custom-popover-header p,.custom-popover-header .custom-popover-desc{font-size:.75rem;color:#4d6573;margin:0;line-height:1.6}.custom-popover-footer{margin-top:.75rem;padding-top:.75rem;border-top:1px solid #e6e9eb;display:flex;gap:.5rem;justify-content:flex-end}.custom-calendar{display:inline-flex;flex-direction:column;background:#fff;border:1px solid #ccd3d7;border-radius:.75rem;padding:1rem;gap:.75rem;width:320px;font-family:"Inter, system-ui, -apple-system, sans-serif";-webkit-user-select:none;user-select:none}.custom-calendar-header{display:flex;align-items:center;justify-content:space-between;gap:.5rem}.custom-calendar-heading{display:flex;align-items:baseline;gap:.5rem;flex:1;justify-content:center}.custom-calendar-month{font-size:1rem;font-weight:600;color:#0f1417}.custom-calendar-year{font-size:.875rem;color:#80919b;font-weight:500}.custom-calendar-nav{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:.375rem;border:1px solid #ccd3d7;background:#fff;color:#4d6573;cursor:pointer;font-size:1.125rem;line-height:1;transition:background .2s ease-in-out,color .2s ease-in-out,border-color .2s ease-in-out}.custom-calendar-nav:hover{background:#f2f4f5;border-color:#b3bdc3;color:#0f1417}.custom-calendar-nav:focus-visible{outline:2px solid #4d6573;outline-offset:2px}.custom-calendar-weekdays{display:grid;grid-template-columns:repeat(7,1fr);gap:0}.custom-calendar-weekday{text-align:center;font-size:11px;font-weight:600;color:#80919b;text-transform:uppercase;letter-spacing:.04em;padding:.25rem 0}.custom-calendar-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:0}.custom-calendar-day{font-size:.875rem;font-weight:500;color:#1f282e;line-height:1;z-index:1}.custom-calendar-dot{position:absolute;bottom:3px;left:50%;transform:translate(-50%);width:4px;height:4px;border-radius:9999px;background:#80919b}.custom-calendar-cell-booked .custom-calendar-dot{background:#f87171}.custom-calendar-cell-available .custom-calendar-dot{background:#34d399}.custom-calendar-cell-limited .custom-calendar-dot{background:#fbbf24}.custom-calendar-cell{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;width:100%;aspect-ratio:2/1;border-radius:.375rem;border:none;background:transparent;cursor:pointer;font-family:"Inter, system-ui, -apple-system, sans-serif";padding:2px;transition:background .2s ease-in-out,color .2s ease-in-out}.custom-calendar-cell:focus-visible{outline:2px solid #4d6573;outline-offset:2px;z-index:1}.custom-calendar-cell:hover:not(:disabled,.custom-calendar-cell-selected){background:#e6e9eb}.custom-calendar-cell-empty{pointer-events:none}.custom-calendar-cell-outside .custom-calendar-day{color:#b3bdc3}.custom-calendar-cell-disabled{cursor:not-allowed;opacity:.35}.custom-calendar-cell-disabled:hover{background:transparent}.custom-calendar-cell-selected,.custom-calendar-cell-range-start,.custom-calendar-cell-range-end{background:#3d515c;border-radius:.375rem}.custom-calendar-cell-selected .custom-calendar-day,.custom-calendar-cell-range-start .custom-calendar-day,.custom-calendar-cell-range-end .custom-calendar-day{color:#fff;font-weight:600}.custom-calendar-cell-selected .custom-calendar-dot,.custom-calendar-cell-range-start .custom-calendar-dot,.custom-calendar-cell-range-end .custom-calendar-dot{background:#ffffffb3}.custom-calendar-cell-in-range{background:#e6e9eb;border-radius:0;padding:0}.custom-calendar-cell-in-range .custom-calendar-day{color:#1f282e}.custom-calendar-cell-in-range:nth-child(7n+1){border-radius:.375rem 0 0 .375rem}.custom-calendar-cell-in-range:nth-child(7n){border-radius:0 .375rem .375rem 0}.custom-calendar-cell-range-start{padding:0 0 0 2px;border-radius:.375rem 0 0 .375rem}.custom-calendar-cell-range-end{padding:0 2px 0 0;border-radius:0 .375rem .375rem 0}.custom-calendar-cell-range-start.custom-calendar-cell-range-end{border-radius:.375rem;padding:2px}.custom-calendar-cell-booked .custom-calendar-day{color:#dc2626}.custom-calendar-cell-available .custom-calendar-day{color:#059669}.custom-calendar-cell-limited .custom-calendar-day{color:#d97706}.custom-calendar-cell-holiday{background:#f2f4f5}.custom-calendar-cell-holiday .custom-calendar-day{color:#80919b;font-style:italic}.custom-calendar-cell-today:not(.custom-calendar-cell-selected) .custom-calendar-day{color:#3d515c;font-weight:700}.custom-calendar-cell-today:not(.custom-calendar-cell-selected):after{content:"";position:absolute;bottom:4px;left:50%;transform:translate(-50%);width:4px;height:4px;border-radius:9999px;background:#4d6573}.custom-calendar-footer{display:flex;align-items:center;justify-content:space-between;gap:.5rem;padding-top:.5rem;border-top:1px solid #e6e9eb}.custom-calendar-today-btn{background:none;border:none;padding:.25rem .5rem;font-size:.75rem;font-weight:500;color:#3d515c;cursor:pointer;font-family:"Inter, system-ui, -apple-system, sans-serif";border-radius:.375rem;transition:background .2s ease-in-out,color .2s ease-in-out}.custom-calendar-today-btn:hover{background:#f2f4f5;color:#1f282e}.custom-calendar-today-btn:focus-visible{outline:2px solid #4d6573;outline-offset:2px}.custom-calendar-legend{display:flex;align-items:center;gap:.75rem}.custom-calendar-legend-item{display:inline-flex;align-items:center;gap:.25rem;font-size:10px;color:#4d6573;font-weight:500}.custom-calendar-legend-item:before{content:"";display:inline-block;width:6px;height:6px;border-radius:9999px}.custom-calendar-legend-item-booked:before{background:#f87171}.custom-calendar-legend-item-available:before{background:#34d399}.custom-calendar-legend-item-limited:before{background:#fbbf24}.lab-scheduler{background:#fff;border:1px solid #e5e7eb;border-radius:1rem;overflow:hidden;display:flex;flex-direction:column}.scheduler-toolbar{padding:1rem 1.5rem;border-bottom:1px solid #f3f4f6;display:flex;align-items:center;justify-content:space-between;background:#f9fafb}.scheduler-toolbar .view-tabs{display:flex;background:#f3f4f6;padding:3px;border-radius:.75rem;gap:2px}.scheduler-toolbar .view-tabs .view-tab{padding:1rem;border-radius:.625rem;font-size:.75rem;font-weight:600;color:#6b7280;border:none;background:transparent;cursor:pointer;transition:all .2s ease}.scheduler-toolbar .view-tabs .view-tab.active{background:#fff;color:#111827;box-shadow:0 1px 3px #0000001a}.scheduler-toolbar .view-tabs .view-tab:hover:not(.active){color:#374151}.scheduler-toolbar .toolbar-center{display:flex;align-items:center;gap:1rem}.scheduler-toolbar .toolbar-center .custom-date-picker-wrapper{position:relative}.scheduler-toolbar .toolbar-center .custom-date-trigger{display:flex;align-items:center;gap:.5rem;padding:.75rem;background:#fff;border:1px solid #e5e7eb;border-radius:6px;color:#111827;font-size:.875rem;font-weight:500;cursor:pointer;transition:all .2s ease}.scheduler-toolbar .toolbar-center .custom-date-trigger:hover{border-color:#9ca3af;background:#f9fafb}.scheduler-toolbar .toolbar-center .current-date{display:flex;align-items:center;gap:.5rem;font-weight:700;color:#111827;min-width:200px;justify-content:center}.scheduler-toolbar .toolbar-center .nav-btn{width:32px;height:32px;border:1px solid #e5e7eb;border-radius:.5rem;display:flex;align-items:center;justify-content:center;background:#fff;color:#6b7280;cursor:pointer;transition:all .2s ease}.scheduler-toolbar .toolbar-center .nav-btn:hover{background:#f9fafb;color:#111827;border-color:#d1d5db}.scheduler-toolbar .add-btn{background:#1a73e8;color:#fff;padding:.5rem 1.25rem;border-radius:.5rem;font-weight:600;font-size:.875rem;display:flex;align-items:center;gap:.5rem;cursor:pointer;border:none;transition:transform .2s ease}.scheduler-toolbar .add-btn:active{transform:scale(.96)}.scheduler-toolbar .reset-btn{padding:1rem;border-radius:.5rem;font-size:.75rem;font-weight:600;color:#dc2626;border:1px solid #fecaca;background:#fff;cursor:pointer;transition:all .2s ease}.scheduler-toolbar .reset-btn:disabled{opacity:.5;cursor:not-allowed;filter:grayscale(1)}.scheduler-toolbar .reset-btn:hover:not(:disabled){border-color:#fca5a5}.scheduler-toolbar .custom-date-trigger svg{color:#6b7280}.scheduler-container{flex:1;overflow:auto}.scheduler-grid{min-width:1000px;display:flex;flex-direction:column}.grid-header-row{display:flex;position:sticky;top:0;background:#fff;z-index:10;border-bottom:1px solid #f3f4f6}.grid-header-row .time-column-spacer{width:100px;flex-shrink:0}.grid-header-row .resource-header{flex:1;padding:1rem .5rem;display:flex;flex-direction:column;align-items:center;gap:.5rem;min-width:150px;border-right:1px solid #f9fafb}.grid-header-row .resource-header .resource-avatar{width:36px;height:36px;border-radius:50%;object-fit:cover}.grid-header-row .resource-header .resource-name{font-size:.75rem;font-weight:600;color:#374151}.grid-header-row .resource-header .day-name{font-size:10px;text-transform:uppercase;letter-spacing:.05em;color:#6b7280}.grid-header-row .resource-header .day-date{font-size:1.125rem;font-weight:700;color:#111827}.grid-header-row .resource-header.today{background:#1a56db08}.grid-header-row .resource-header.today .day-date{background:#1a73e8;color:#fff;width:28px;height:28px;display:flex;align-items:center;justify-content:center;border-radius:50%}.grid-header-row .resource-header.full-width{flex:1;justify-content:center;font-weight:700;color:#9ca3af;background:#f9fafb;border-bottom:1px solid #f3f4f6}.grid-body{display:flex}.time-axis{width:6rem;flex-shrink:0;background:#fff;border-right:1px solid #f3f4f6}.time-axis .time-label{height:50px;display:flex;align-items:flex-start;padding:.75rem 1rem}.time-axis .time-label .time-text{font-size:11px;font-weight:700;color:#111827;text-transform:uppercase}.grid-content{flex:1;display:flex}.resource-column{flex:1;position:relative;min-width:100px;border-right:1px solid #f9fafb}.resource-column .grid-cell{height:50px;border-bottom:1px solid #f3f4f6;cursor:cell;position:relative;transition:background .2s ease}.resource-column .grid-cell:hover:not(.resource-column .grid-cell--full){background:#00000004}.resource-column .grid-cell--selected{background:#1a73e80f;border-left:2px solid #1a73e8;z-index:2}.resource-column .grid-cell--selected .selection-badge{position:absolute;bottom:.5rem;right:.5rem;background:#1a73e8;color:#fff;font-size:9px;font-weight:700;padding:2px 6px;border-radius:4px;display:flex;align-items:center;gap:2px;animation:scale-in .2s cubic-bezier(.34,1.56,.64,1)}.resource-column .grid-cell--full{background:#f9fafb;cursor:not-allowed;border-color:#e5e7eb}.resource-column .grid-cell--full:hover{background:#f9fafb}.resource-column .grid-cell .full-overlay{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;background:#f9fafb99;color:#6b7280}.resource-column .grid-cell .availability-info{position:absolute;top:6px;left:8px;pointer-events:none}.full-overlay span{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.05em}.availability-info .availability-text{font-size:9px;color:#6b7280;font-weight:500}@keyframes scale-in{0%{transform:scale(.8);opacity:0}to{transform:scale(1);opacity:1}}.popover-calendar-container{padding:.25rem;background:#fff;border-radius:.5rem;display:flex;flex-direction:column;gap:.75rem}.popover-calendar-container .popover-footer{padding:.75rem 1rem;border-top:1px solid #f3f4f6;display:flex;align-items:center;justify-content:space-between;gap:1rem;background:#f9fafb;border-radius:0 0 8px 8px;margin:0 -4px -4px}.popover-calendar-container .range-info{display:flex;flex-direction:column;gap:2px}.popover-calendar-container .range-count{font-size:.75rem;font-weight:700;color:#374151}.popover-calendar-container .range-count.invalid{color:#dc2626}.popover-calendar-container .range-warning{font-size:10px;color:#ef4444;font-weight:500}.popover-calendar-container .apply-btn{padding:1rem;background:#111827;color:#fff;border:none;border-radius:6px;font-size:.75rem;font-weight:600;cursor:pointer;transition:all .2s ease}.popover-calendar-container .apply-btn:disabled{background:#e5e7eb;color:#9ca3af;cursor:not-allowed}.popover-calendar-container .apply-btn:hover:not(:disabled){background:#000;transform:translateY(-1px)}.popover-calendar-container .apply-btn:active:not(:disabled){transform:translateY(0)}.booking-block{position:absolute;left:6px;right:6px;padding-top:.5rem;z-index:5}.booking-block .booking-block-header{display:flex;justify-content:space-between;font-size:9px;font-weight:700;text-transform:uppercase}.booking-block .booking-block-content{display:flex;flex-direction:column;gap:4px;align-items:flex-start;justify-content:center}.booking-block .booking-block-content .booking-time{font-size:10px;color:#0009}.booking-block .booking-block-content .booking-title{font-size:.75rem;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.booking-form{background:#fff;border:1px solid #e5e7eb;border-radius:1rem;overflow:hidden;box-shadow:"0 1px 2px 0 rgba(0, 0, 0, 0.05)"}.booking-form-header{padding:1.25rem 1.5rem;border-bottom:1px solid #f3f4f6;background:#0f1417;color:#fff;display:flex;align-items:center;gap:1rem}.booking-form-header .header-icon-wrapper{width:42px;height:42px;background:#ffffff1a;border-radius:.5rem;display:flex;align-items:center;justify-content:center;color:#fff;flex-shrink:0}.booking-form-header .booking-form-header-content{display:flex;flex-direction:column;gap:.25rem}.booking-form-title{font-size:1.125rem;font-weight:600;margin:0 0 .25rem}.booking-form-subtitle{font-size:.875rem;margin:0}.booking-form-body{padding:1.5rem;display:flex;flex-direction:column;gap:1.5rem}.form-row{display:flex;gap:2rem}@media(max-width:767px){.form-row{flex-direction:column;gap:1.5rem}}.booking-form-step{display:flex;flex-direction:column;gap:.75rem}.booking-form-lab-types{display:grid;grid-template-columns:repeat(4,1fr);gap:.75rem}@media(max-width:1023px){.booking-form-lab-types{grid-template-columns:repeat(2,1fr)}}.booking-form-calendar,.booking-form-calendar .custom-calendar{width:100%}.booking-form-time-slots{display:grid;grid-template-columns:repeat(2,1fr);gap:.75rem}@media(max-width:1023px){.booking-form-time-slots{grid-template-columns:repeat(2,1fr)}}@media(max-width:639px){.booking-form-time-slots{grid-template-columns:repeat(2,1fr)}}.booking-form-time-slot{display:flex;flex-direction:column;align-items:center;gap:.5rem;padding:1rem .5rem;background:#fff;border:1px solid #e5e7eb;border-radius:.75rem;cursor:pointer;font-size:.875rem;color:#374151;transition:all .2s ease}.booking-form-time-slot svg{color:#9ca3af}.booking-form-time-slot:hover{border-color:#9ca3af;background:#f9fafb}.booking-form-time-slot--selected{border-color:#111827;background:#111827;color:#fff}.booking-form-time-slot--selected svg{color:#d1d5db}.booking-form-error{font-size:.75rem;color:#dc2626;margin:0}.booking-form-footer{padding:1.5rem;display:flex;justify-content:flex-end}.booking-form-body{gap:2rem}.book-lab-drawer .book-lab-drawer-content .booking-form{padding:0;border:none;box-shadow:none}.student-kpi-cards{display:grid;grid-template-columns:repeat(4,1fr);gap:1rem}@media(max-width:1023px){.student-kpi-cards{grid-template-columns:repeat(2,1fr)}}@media(max-width:639px){.student-kpi-cards{grid-template-columns:1fr}}.student-kpi-card{display:flex;align-items:center;gap:1rem;background:#fff;border:1px solid #e5e7eb;border-radius:.75rem;padding:1rem 1.25rem}.student-kpi-icon{width:44px;height:44px;border-radius:.375rem;display:flex;align-items:center;justify-content:center;flex-shrink:0}.student-kpi-icon--blue{background:#e8f0fe;color:#1a73e8}.student-kpi-icon--green{color:#10b981}.student-kpi-icon--orange{color:#f59e0b}.student-kpi-icon--red{color:#ef4444}.student-kpi-content{display:flex;flex-direction:column;gap:.25rem}.student-kpi-label{font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:#9ca3af}.student-kpi-value{font-size:1rem;font-weight:700;color:#111827;white-space:nowrap}.lab-course-card{background:#fff;border:1px solid #e5e7eb;border-radius:.75rem;padding:1.25rem;display:flex;flex-direction:column;gap:1rem;transition:box-shadow .2s ease,border-color .2s ease;position:relative}.lab-course-card:hover{box-shadow:"0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06)";border-color:#d1d5db}.lab-course-card-header{display:flex;align-items:center;justify-content:space-between}.lab-course-card-header-left{display:flex;align-items:center;gap:.5rem}.lab-course-card.lab-course-card-active{border-bottom:3px solid #10b981;box-shadow:"0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05)"}.lab-course-card.lab-course-card-active .lab-course-card-header{background:linear-gradient(to bottom,rgba(16,185,129,.02),transparent)}.lab-course-card-icon-row{display:flex;align-items:center;gap:.75rem}.lab-course-card-icon{width:40px;height:40px;flex-shrink:0;color:#6b7280}.lab-course-card-icon svg{width:100%;height:100%}.lab-course-card-name{font-size:1.125rem;font-weight:600;color:#111827;margin:0;line-height:1.2;font-family:"Outfit, sans-serif"}.lab-course-card-tools{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem}.lab-course-card-tool{font-size:.75rem;color:#4b5563;background:#f9fafb;border:1px solid #e5e7eb;border-radius:.25rem;padding:2px .5rem}.lab-course-card-tool-more{font-size:.75rem;font-weight:600;color:#f59e0b;cursor:help;text-decoration:underline;text-underline-offset:2px}.lab-course-card-actions{display:flex;gap:.5rem;margin-top:auto}.environment-stack-tooltip{padding:.75rem 1rem}.environment-stack-tooltip .environment-stack-header{display:flex;align-items:center;gap:.5rem;font-size:.75rem;font-weight:700;color:#92400e;letter-spacing:.08em;margin-bottom:.75rem;padding-bottom:.5rem;border-bottom:1px solid #fef3c7}.environment-stack-tooltip .environment-stack-tags{display:flex;flex-wrap:wrap;gap:.5rem}.environment-stack-tooltip .environment-stack-tag{font-size:.75rem;color:#4b5563;background:#f9fafb;border:1px solid #f3f4f6;border-radius:.375rem;padding:2px}.view-lab-details-btn{padding:0}.lab-course-card-active-actions{display:flex;gap:.5rem;flex:1}.lab-course-card-active-actions .lab-course-card-connect-btn{flex:2;display:flex;gap:.5rem;align-items:center;background:#111827;border-color:#111827}.lab-course-card-active-actions .lab-course-card-connect-btn:hover{background:#000;border-color:#000}.lab-course-card-active-actions .lab-course-card-stop-btn{flex:1.2;display:flex;gap:.5rem;align-items:center;color:#4b5563;border-color:#d1d5db}.lab-course-card-active-actions .lab-course-card-stop-btn:hover{color:#dc2626;border-color:#fecaca}.lab-course-card-gpu-credits{display:flex;align-items:center;font-size:.75rem;color:#6b7280;margin-top:-.5rem}.lab-course-card-gpu-credits span{font-weight:500}.lab-details-content{display:flex;flex-direction:column;gap:1rem;padding:1.5rem 0}.lab-details-card{background:#f9fafb;border:1px solid #f3f4f6;border-radius:.75rem;padding:1.25rem;display:flex;gap:1rem;align-items:flex-start}.lab-details-card .card-icon{width:48px;height:48px;background:#fff;border:1px solid #e5e7eb;border-radius:.375rem;display:flex;align-items:center;justify-content:center;flex-shrink:0;color:#6b7280}.lab-details-card .card-icon svg,.lab-details-card .card-icon div{width:24px;height:24px;color:inherit}.lab-details-card .card-info{display:flex;flex-direction:column;gap:.5rem;width:100%}.lab-details-card .card-label{font-size:.75rem;font-weight:700;color:#9ca3af;text-transform:uppercase;letter-spacing:.06em}.lab-details-card .card-value{font-size:1.125rem;font-weight:500;color:#111827}.lab-details-card .card-text{font-size:1rem;color:#4b5563;line-height:1.6;margin:0}.lab-details-card .tools-grid{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:.25rem}.lab-details-card .tool-tag{background:#fff;border:1px solid #e5e7eb;border-radius:.375rem;padding:.25rem .75rem;font-size:.875rem;color:#4b5563}.gpu-session-panel{display:flex;flex-direction:column;gap:1rem}.gpu-session-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:.5rem}.gpu-type-label{display:flex;align-items:center;font-size:.875rem;color:#6b7280;font-weight:500}.gpu-session-actions{display:flex;gap:.75rem;margin-top:1rem}.gpu-session-actions .open-lab-btn{flex:1}.gpu-provisioning{display:flex;flex-direction:column;align-items:center;text-align:center;padding:2.5rem 1.5rem;border:1.5px dashed #e5e7eb;border-radius:1rem;background:#f9fafb}.gpu-provisioning h4{font-size:1.125rem;font-weight:600;color:#1f2937;margin:1rem 0 .25rem}.gpu-provisioning p{font-size:.875rem;color:#6b7280;margin:0}.gpu-provisioning-spinner{color:#9ca3af}.spin{animation:spin 1s linear infinite}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.gpu-idle-panel{display:flex;flex-direction:column;gap:1rem}.gpu-launch-area{display:flex;justify-content:center;margin-top:1rem}.gpu-launch-area .gpu-launch-btn{min-width:220px;height:48px;font-weight:600}.credit-exhausted-msg{display:flex;align-items:center;gap:.5rem}.grace-period-banner{animation:pulse-border 2s ease-in-out infinite}@keyframes pulse-border{0%,to{opacity:1}50%{opacity:.85}}.mb-4{margin-bottom:1rem}.lab-connect-content{padding:1rem 0;display:flex;flex-direction:column;gap:1.5rem}.lab-connect-kpi-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem;margin-bottom:.5rem}.lab-connect-kpi-grid .custom-kpi-value{font-size:1.6rem}.lab-connect-kpi-grid.two-columns{grid-template-columns:repeat(2,1fr)}.lab-connect-stats-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem}.stat-card{background:#f9fafb;border:1px solid #f3f4f6;border-radius:.5rem;padding:.75rem 1rem;display:flex;gap:.75rem;align-items:center}.stat-card .stat-icon{color:#6b7280;opacity:.7}.stat-card .stat-info{display:flex;flex-direction:column}.stat-card .stat-label{font-size:.75rem;font-weight:700;color:#9ca3af;letter-spacing:.05em}.stat-card .stat-value{font-size:1.25rem;font-weight:500;color:#1f2937;font-family:"Outfit, sans-serif"}.cluster-nodes-section .section-title{font-size:.75rem;font-weight:700;color:#6b7280;letter-spacing:.1em;margin:1rem 0}.cluster-nodes-section .nodes-list{display:flex;flex-direction:column;gap:.75rem}.cluster-nodes-section .node-item{border:1px solid #e5e7eb;border-radius:.75rem;padding:1rem;display:flex;align-items:center;gap:1rem;transition:border-color .2s ease}.cluster-nodes-section .node-item:hover{border-color:#d1d5db}.cluster-nodes-section .node-item .node-icon{width:44px;height:44px;background:#f9fafb;border:1px solid #f3f4f6;border-radius:.5rem;display:flex;align-items:center;justify-content:center;color:#6b7280}.cluster-nodes-section .node-item .node-details{flex:1}.cluster-nodes-section .node-item .node-connect-btn{background:#1f2937}.cluster-nodes-section .node-item .node-connect-btn:hover{background:#000}.node-header{display:flex;align-items:center;gap:.5rem;margin-bottom:.25rem}.node-header .node-name{font-weight:600;color:#111827}.node-header .node-role-badge{background-color:#f3f4f6;color:#4b5563;border-color:#e5e7eb;text-transform:capitalize}.node-header .node-role-badge.custom-badge-info{background-color:#e8f0fe;color:#1254a3;border-color:#d2e3fc}.node-specs{display:flex;align-items:center;gap:.25rem;font-size:.875rem;color:#6b7280}.node-specs .spec-item{display:flex;align-items:center;gap:.25rem}.node-specs .spec-label{color:#9ca3af;font-size:.75rem}.node-specs .spec-divider{width:3px;height:3px;background-color:#d1d5db;border-radius:9999px;margin:0 .25rem}.alert-list{margin:0;padding-left:1rem;list-style-type:disc}.alert-list li{margin-bottom:.25rem}.alert-list li:last-child{margin-bottom:0}.lab-connect-alert{margin-bottom:1rem}.connection-credentials .section-title{font-size:.75rem;font-weight:700;color:#6b7280;letter-spacing:.1em;margin-bottom:1rem}.connection-credentials .credentials-fields{display:flex;flex-direction:column;gap:1rem}.connection-credentials .field-row{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.connection-credentials .field-group{display:flex;flex-direction:column}.connection-credentials .field-group label{font-size:.75rem;font-weight:600;color:#6b7280}.connection-credentials .field-group .input-with-action{position:relative;display:flex;align-items:center}.input-with-action input{width:100%;background:#f9fafb;border:1px solid #e5e7eb;border-radius:.5rem;padding:.75rem 4rem .75rem 1rem;font-family:'ui-monospace, SFMono-Regular, "SF Mono", Consolas, "Liberation Mono", Menlo, monospace';font-size:.875rem;color:#111827}.input-with-action input:focus{outline:none;border-color:#d1d5db}.input-with-action .action-btn{position:absolute;right:.75rem;background:none;border:none;color:#9ca3af;cursor:pointer;padding:.25rem;display:flex;align-items:center;gap:.25rem}.input-with-action .action-btn:hover{color:#4b5563}.input-with-action .action-btn+.action-btn{right:2.5rem}.lab-connect-drawer-footer{display:flex;gap:.75rem;justify-content:space-between;width:100%}.note-box{display:flex;gap:.75rem;padding:1rem 1.25rem;border-radius:.5rem;font-size:.875rem;line-height:1.5}.note-box p{margin:0;color:#374151}.note-box p strong{color:inherit}.note-box .note-icon{display:flex;align-items:center;justify-content:center;flex-shrink:0;margin-top:2px}.note-box.info{background:#e8f0fe;border:1px solid #a8c7fa;color:#0d3c7a}.note-box.info .note-icon{color:#1a73e8}.note-box.warning{border:1px solid #fde68a;color:#92400e}.note-box.warning .note-icon{color:#f59e0b}.console-launch-area{margin-top:1rem}.launch-card{display:flex;flex-direction:column;align-items:center;text-align:center;padding:2.5rem 1.5rem;border:1.5px dashed #e5e7eb;border-radius:1rem;background:#fff;transition:all .2s ease}.launch-card:hover{border-color:#d1d5db;background:#f9fafb}.launch-card .launch-icon{width:64px;height:64px;background:#f9fafb;border-radius:9999px;display:flex;align-items:center;justify-content:center;color:#9ca3af;margin-bottom:1.25rem}.launch-card h3{font-size:1.125rem;font-weight:600;color:#1f2937;margin:0 0 .25rem}.launch-card p{font-size:.875rem;color:#6b7280;margin:0 0 2rem;max-width:320px}.launch-card .open-console-btn{min-width:220px;height:48px;font-weight:600}.mb-6{margin-bottom:1.5rem}.mb-8{margin-bottom:2rem}.mt-4{margin-top:1rem}.mt-6{margin-top:1.5rem}.mt-8{margin-top:2rem}.margin-0{margin:0}.my-laboratories{display:flex;flex-direction:column;gap:1rem}.my-laboratories-header{display:flex;align-items:center;justify-content:space-between}.my-laboratories-title{font-size:1.125rem;font-weight:600;color:#111827;margin:0}.my-laboratories-view-all{display:inline-flex;align-items:center;gap:.25rem;font-size:.875rem;font-weight:500;color:#d97706;background:none;border:none;cursor:pointer;padding:0;transition:color .15s ease}.my-laboratories-view-all:hover{color:#b45309}.my-laboratories-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1rem}@media(max-width:1279px){.my-laboratories-grid{grid-template-columns:repeat(2,1fr)}}@media(max-width:639px){.my-laboratories-grid{grid-template-columns:1fr}}.upcoming-session-card{background:#fff;border:1px solid #e5e7eb;border-radius:.75rem;padding:1.25rem;display:flex;flex-direction:column;gap:1rem;transition:box-shadow .2s ease,border-color .2s ease}.upcoming-session-card:hover{box-shadow:"0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06)";border-color:#d1d5db}.upcoming-session-card-header{display:flex;align-items:flex-start;justify-content:space-between;gap:.75rem}.upcoming-session-card-course{display:flex;flex-direction:column;flex:1;min-width:0;gap:.5rem}.upcoming-session-card-name{font-size:1rem;font-weight:600;color:#111827;margin:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.upcoming-session-card-code{font-size:.875rem;color:#6b7280;font-weight:500}.upcoming-session-card-datetime{display:flex;gap:.75rem}.upcoming-session-card-date-row,.upcoming-session-card-time-row{display:flex;align-items:center;gap:.5rem;font-size:.875rem;color:#374151}.upcoming-session-card-date-row svg,.upcoming-session-card-time-row svg{color:#9ca3af;flex-shrink:0}.upcoming-lab-sessions{display:flex;flex-direction:column;gap:1rem}.upcoming-lab-sessions-title{font-size:1.125rem;font-weight:600;color:#111827;margin:0}.upcoming-lab-sessions-empty{font-size:.875rem;color:#9ca3af;margin:0}.upcoming-lab-sessions-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem}@media(max-width:1023px){.upcoming-lab-sessions-grid{grid-template-columns:repeat(2,1fr)}}@media(max-width:639px){.upcoming-lab-sessions-grid{grid-template-columns:1fr}}.recent-activity{display:flex;flex-direction:column;gap:1rem}.recent-activity-header{display:flex;align-items:center;justify-content:space-between}.recent-activity-title{font-size:1.125rem;font-weight:600;color:#111827;margin:0}.recent-activity-view-history{display:inline-flex;align-items:center;gap:.25rem;font-size:.875rem;font-weight:500;color:#d97706;background:none;border:none;cursor:pointer;padding:0;transition:color .15s ease}.recent-activity-view-history:hover{color:#b45309}.recent-activity-list{background:#fff;border:1px solid #e5e7eb;border-radius:.75rem;overflow:hidden}.recent-activity-item{display:flex;align-items:center;gap:1rem;padding:1rem 1.25rem;border-bottom:1px solid #f3f4f6;transition:background .15s ease}.recent-activity-item:last-child{border-bottom:none}.recent-activity-item:hover{background:#f9fafb}.recent-activity-icon{width:40px;height:40px;border-radius:9999px;background:#f3f4f6;display:flex;align-items:center;justify-content:center;flex-shrink:0;color:#6b7280}.recent-activity-icon svg{width:22px;height:22px}.recent-activity-info{display:flex;flex-direction:column;flex:1;min-width:0}.recent-activity-course{font-size:1rem;font-weight:600;color:#111827;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.recent-activity-lab{font-size:.875rem;color:#6b7280}.recent-activity-meta{display:flex;flex-direction:column;align-items:flex-end;flex-shrink:0}.recent-activity-date{font-size:.875rem;font-weight:500;color:#374151}.recent-activity-time{font-size:.75rem;color:#9ca3af}.recent-activity-rebook{background:none;border:none;cursor:pointer;color:#9ca3af;padding:.25rem;border-radius:.375rem;display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:color .15s ease,background .15s ease}.recent-activity-rebook:hover{color:#6b7280;background:#f3f4f6}.student-dashboard{display:flex;flex-direction:column;gap:2rem}.faculty-kpi-cards{display:grid;grid-template-columns:repeat(4,1fr);gap:1rem}@media(max-width:1023px){.faculty-kpi-cards{grid-template-columns:repeat(2,1fr)}}@media(max-width:639px){.faculty-kpi-cards{grid-template-columns:1fr}}.faculty-kpi-card{display:flex;align-items:center;gap:1rem;background:#fff;border:1px solid #e5e7eb;border-radius:.75rem;padding:1rem 1.25rem}.faculty-kpi-icon{width:44px;height:44px;border-radius:.375rem;display:flex;align-items:center;justify-content:center;flex-shrink:0}.faculty-kpi-icon--blue{background:#e8f0fe;color:#1a73e8}.faculty-kpi-icon--green{color:#10b981}.faculty-kpi-icon--orange{color:#f59e0b}.faculty-kpi-icon--red{color:#ef4444}.faculty-kpi-content{display:flex;flex-direction:column;gap:.25rem}.faculty-kpi-label{font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:#9ca3af}.faculty-kpi-value{font-size:1rem;font-weight:700;color:#111827;white-space:nowrap}.faculty-course-card{background:#fff;border:1px solid #e5e7eb;border-radius:.75rem;padding:1.25rem;display:flex;flex-direction:column;gap:1rem;transition:box-shadow .2s ease,border-color .2s ease}.faculty-course-card:hover{box-shadow:0 4px 12px #00000014;border-color:#d1d5db}.faculty-course-card-header{display:flex;align-items:center;justify-content:space-between}.faculty-course-card-icon-row{display:flex;align-items:center;gap:.75rem}.faculty-course-card-icon{width:40px;height:40px;flex-shrink:0;color:#6b7280}.faculty-course-card-icon svg{width:100%;height:100%}.faculty-course-card-name{font-size:1.125rem;font-weight:600;color:#111827;margin:0;line-height:1.25}.faculty-course-card-semester{font-size:.75rem;color:#9ca3af;margin:0;font-weight:500;text-transform:uppercase;letter-spacing:.05em}.faculty-course-card-enrolled{display:flex;align-items:center;gap:.5rem;font-size:.875rem;color:#6b7280;font-weight:500}.faculty-course-card-actions{margin-top:auto}.course-activities-drawer{padding:.5rem 0}.course-activities-empty{font-size:.875rem;color:#9ca3af;text-align:center;padding:2rem;margin:0}.course-activities-list{background:#fff;border:1px solid #e5e7eb;border-radius:.75rem;overflow:hidden}.course-activities-item{display:flex;align-items:center;gap:1rem;padding:1rem 1.25rem;border-bottom:1px solid #f3f4f6;transition:background .15s ease}.course-activities-item:last-child{border-bottom:none}.course-activities-item:hover{background:#f9fafb}.course-activities-icon{width:40px;height:40px;border-radius:9999px;background:#f3f4f6;display:flex;align-items:center;justify-content:center;flex-shrink:0;color:#6b7280}.course-activities-icon svg{width:22px;height:22px}.course-activities-info{display:flex;flex-direction:column;gap:.25rem;flex:1;min-width:0}.course-activities-student{font-size:1rem;font-weight:600;color:#111827;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.course-activities-lab{font-size:.875rem;color:#6b7280}.course-activities-meta{display:flex;flex-direction:column;align-items:flex-end;gap:.25rem;flex-shrink:0}.course-activities-date{font-size:.875rem;font-weight:500;color:#374151}.course-activities-time{font-size:.75rem;color:#9ca3af}.assigned-courses{display:flex;flex-direction:column;gap:1rem}.assigned-courses-header{display:flex;align-items:center;justify-content:space-between}.assigned-courses-title{font-size:1.125rem;font-weight:600;color:#111827;margin:0}.assigned-courses-count{font-size:.875rem;color:#9ca3af;font-weight:500}.assigned-courses-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1rem}@media(max-width:1279px){.assigned-courses-grid{grid-template-columns:repeat(2,1fr)}}@media(max-width:639px){.assigned-courses-grid{grid-template-columns:1fr}}.assigned-lab-card{background:#fff;border:1px solid #e5e7eb;border-radius:.75rem;padding:1.25rem;display:flex;flex-direction:column;gap:1rem;transition:box-shadow .2s ease,border-color .2s ease}.assigned-lab-card:hover{box-shadow:0 4px 12px #00000014;border-color:#d1d5db}.assigned-lab-card-active{border-bottom:3px solid #10b981}.assigned-lab-card-header{display:flex;align-items:center;justify-content:space-between}.assigned-lab-card-header-left{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap}.assigned-lab-card-icon-row{display:flex;align-items:center;gap:.75rem}.assigned-lab-card-icon{width:40px;height:40px;flex-shrink:0;color:#6b7280}.assigned-lab-card-icon svg{width:100%;height:100%}.assigned-lab-card-name{font-size:1.125rem;font-weight:600;color:#111827;margin:0;line-height:1.25}.assigned-lab-card-tools{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem}.assigned-lab-card-tool{font-size:.75rem;color:#4b5563;background:#f9fafb;border:1px solid #e5e7eb;border-radius:.25rem;padding:2px .5rem}.assigned-lab-card-tool-more{font-size:.75rem;font-weight:600;color:#f59e0b;cursor:help;text-decoration:underline;text-underline-offset:2px}.assigned-lab-card-actions{display:flex;gap:.5rem;margin-top:auto}.assigned-lab-card-icon-btn{flex-shrink:0;padding:0}.assigned-lab-card-active-actions{display:flex;gap:.5rem;flex:1}.assigned-lab-card-connect-btn{flex:2;background:#111827;border-color:#111827}.assigned-lab-card-connect-btn:hover{background:#000;border-color:#000}.assigned-lab-card-stop-btn{flex:1;color:#4b5563;border-color:#d1d5db}.assigned-lab-card-stop-btn:hover{color:#dc2626;border-color:#fecaca}.assigned-lab-env-tooltip{padding:.75rem 1rem}.assigned-lab-env-header{display:flex;align-items:center;gap:.5rem;font-size:.75rem;font-weight:700;color:#92400e;letter-spacing:.08em;margin-bottom:.75rem;padding-bottom:.5rem;border-bottom:1px solid #fef3c7}.assigned-lab-env-tags{display:flex;flex-wrap:wrap;gap:.5rem}.assigned-lab-env-tag{font-size:.75rem;color:#4b5563;background:#f9fafb;border:1px solid #f3f4f6;border-radius:.375rem;padding:2px .5rem}.assigned-labs{display:flex;flex-direction:column;gap:1rem}.assigned-labs-header{display:flex;align-items:center;justify-content:space-between}.assigned-labs-title{font-size:1.125rem;font-weight:600;color:#111827;margin:0}.assigned-labs-view-all{display:inline-flex;align-items:center;gap:.25rem;font-size:.875rem;font-weight:500;color:#d97706;background:none;border:none;cursor:pointer;padding:0;transition:color .15s ease}.assigned-labs-view-all:hover{color:#b45309}.assigned-labs-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1rem}@media(max-width:1279px){.assigned-labs-grid{grid-template-columns:repeat(2,1fr)}}@media(max-width:639px){.assigned-labs-grid{grid-template-columns:1fr}}.faculty-recent-activity{display:flex;flex-direction:column;gap:1rem}.faculty-recent-activity-header{display:flex;align-items:center;justify-content:space-between}.faculty-recent-activity-title{font-size:1.125rem;font-weight:600;color:#111827;margin:0}.faculty-recent-activity-view-all{display:inline-flex;align-items:center;gap:.25rem;font-size:.875rem;font-weight:500;color:#d97706;background:none;border:none;cursor:pointer;padding:0;transition:color .15s ease}.faculty-recent-activity-view-all:hover{color:#b45309}.faculty-recent-activity-list{background:#fff;border:1px solid #e5e7eb;border-radius:.75rem;overflow:hidden}.faculty-recent-activity-item{display:flex;align-items:center;gap:1rem;padding:1rem 1.25rem;border-bottom:1px solid #f3f4f6;transition:background .15s ease}.faculty-recent-activity-item:last-child{border-bottom:none}.faculty-recent-activity-item:hover{background:#f9fafb}.faculty-recent-activity-icon{width:40px;height:40px;border-radius:9999px;background:#f3f4f6;display:flex;align-items:center;justify-content:center;flex-shrink:0;color:#6b7280}.faculty-recent-activity-icon svg{width:22px;height:22px}.faculty-recent-activity-info{display:flex;flex-direction:column;gap:.25rem;flex:1;min-width:0}.faculty-recent-activity-student{font-size:1rem;font-weight:600;color:#111827;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.faculty-recent-activity-course{font-size:.875rem;color:#6b7280;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.faculty-recent-activity-meta{display:flex;flex-direction:column;align-items:flex-end;gap:.25rem;flex-shrink:0}.faculty-recent-activity-date{font-size:.875rem;font-weight:500;color:#374151}.faculty-recent-activity-time{font-size:.75rem;color:#9ca3af}.faculty-dashboard{display:flex;flex-direction:column;gap:2rem}.dashboard{display:flex;flex-direction:column;gap:2rem;height:100%}@media(max-width:767px){.dashboard{padding:16px}}@media(max-width:639px){.dashboard{padding:12px}}.skeleton-page-content{padding:1.5rem;text-align:center;color:#6b7280}.book-lab-layout{display:flex;flex-direction:column;gap:2rem;margin-top:2rem}.book-lab-form-col{width:100%}.book-lab-table-col{display:flex;flex-direction:column;gap:1rem}.history-page{display:flex;flex-direction:column;gap:1rem;padding-bottom:2rem}.history-page-header{display:flex;align-items:center;gap:1rem;margin-bottom:.5rem}.history-page-back{background:#fff;border:1px solid #e5e7eb;border-radius:.5rem;cursor:pointer;color:#4b5563;padding:.5rem;display:flex;align-items:center;justify-content:center;transition:all .2s ease;flex-shrink:0}.history-page-back:hover{background:#f9fafb;border-color:#d1d5db;color:#111827}.history-status-filter{min-width:160px}.history-list{background:#fff;border:1px solid #e5e7eb;border-radius:.75rem;overflow:hidden;box-shadow:"0 1px 2px 0 rgba(0, 0, 0, 0.05)"}.history-list-empty{padding:3rem;text-align:center;color:#9ca3af;font-size:.875rem;margin:0}.history-item{display:flex;align-items:center;gap:1.25rem;padding:1rem 1.5rem;border-bottom:1px solid #f3f4f6;transition:background .2s ease}.history-item:last-child{border-bottom:none}.history-item:hover{background:#f9fafb}.history-item-icon{width:44px;height:44px;border-radius:9999px;background:#f9fafb;display:flex;align-items:center;justify-content:center;flex-shrink:0;color:#6b7280;border:1px solid #f3f4f6}.history-item-icon svg{width:20px;height:20px}.history-item-info{display:flex;flex-direction:column;flex:1;min-width:0}.history-item-course{font-size:1rem;font-weight:600;color:#111827;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.history-item-lab{font-size:.75rem;font-weight:500;color:#6b7280;text-transform:uppercase;letter-spacing:.05em}.history-item-meta{display:flex;flex-direction:column;align-items:flex-end;flex-shrink:0;margin-right:1rem}.history-item-date{font-size:.875rem;font-weight:600;color:#374151}.history-item-time{font-size:.75rem;color:#9ca3af}
