/*! tailwindcss v4.1.16 | MIT License | https://tailwindcss.com */@layer properties{@supports ((-webkit-hyphens:none) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-translate-x:0;--tw-translate-y:0;--tw-translate-z:0;--tw-space-y-reverse:0;--tw-border-style:solid;--tw-font-weight:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-outline-style:solid}}}@layer theme{:root,:host{--font-sans:ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";--font-mono:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;--color-red-500:oklch(63.7% .237 25.331);--color-red-600:oklch(57.7% .245 27.325);--color-yellow-500:oklch(79.5% .184 86.047);--color-yellow-600:oklch(68.1% .162 75.834);--color-green-500:oklch(72.3% .219 149.579);--color-blue-500:oklch(62.3% .214 259.815);--color-black:#000;--color-white:#fff;--spacing:.25rem;--container-md:28rem;--container-2xl:42rem;--text-xs:.75rem;--text-xs--line-height:calc(1/.75);--text-sm:.875rem;--text-sm--line-height:calc(1.25/.875);--text-xl:1.25rem;--text-xl--line-height:calc(1.75/1.25);--text-2xl:1.5rem;--text-2xl--line-height:calc(2/1.5);--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--radius-lg:.5rem;--shadow-md:0 4px 6px -1px #0000001a,0 2px 4px -2px #0000001a;--shadow-lg:0 10px 15px -3px #0000001a,0 4px 6px -4px #0000001a;--animate-spin:spin 1s linear infinite;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4,0,.2,1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::-moz-placeholder{opacity:1}::placeholder{opacity:1}@supports (not (-webkit-appearance:-apple-pay-button)) or (contain-intrinsic-size:1px){::-moz-placeholder{color:currentColor}::placeholder{color:currentColor}@supports (color:color-mix(in lab,red,red)){::-moz-placeholder{color:color-mix(in oklab,currentcolor 50%,transparent)}::placeholder{color:color-mix(in oklab,currentcolor 50%,transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){-webkit-appearance:button;-moz-appearance:button;appearance:button}::file-selector-button{-webkit-appearance:button;-moz-appearance:button;appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.collapse{visibility:collapse}.visible{visibility:visible}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.sticky{position:sticky}.inset-0{inset:calc(var(--spacing)*0)}.top-0{top:calc(var(--spacing)*0)}.top-1\/2{top:50%}.left-3{left:calc(var(--spacing)*3)}.z-50{z-index:50}.mt-1{margin-top:calc(var(--spacing)*1)}.mb-2{margin-bottom:calc(var(--spacing)*2)}.ml-4{margin-left:calc(var(--spacing)*4)}.block{display:block}.flex{display:flex}.inline{display:inline}.h-10{height:calc(var(--spacing)*10)}.h-12{height:calc(var(--spacing)*12)}.max-h-\[90vh\]{max-height:90vh}.w-10{width:calc(var(--spacing)*10)}.w-12{width:calc(var(--spacing)*12)}.w-full{width:100%}.max-w-2xl{max-width:var(--container-2xl)}.max-w-md{max-width:var(--container-md)}.min-w-0{min-width:calc(var(--spacing)*0)}.flex-1{flex:1}.flex-shrink-0{flex-shrink:0}.-translate-y-1\/2{--tw-translate-y: -50% ;translate:var(--tw-translate-x)var(--tw-translate-y)}.animate-spin{animation:var(--animate-spin)}.resize-none{resize:none}.flex-col{flex-direction:column}.items-center{align-items:center}.items-start{align-items:flex-start}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.justify-end{justify-content:flex-end}.gap-2{gap:calc(var(--spacing)*2)}.gap-3{gap:calc(var(--spacing)*3)}.gap-4{gap:calc(var(--spacing)*4)}:where(.space-y-2>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*2)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*2)*calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-6>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*6)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*6)*calc(1 - var(--tw-space-y-reverse)))}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.overflow-hidden{overflow:hidden}.overflow-y-auto{overflow-y:auto}.rounded{border-radius:.25rem}.rounded-full{border-radius:3.40282e38px}.rounded-lg{border-radius:var(--radius-lg)}.border{border-style:var(--tw-border-style);border-width:1px}.border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.border-b{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.border-red-500{border-color:var(--color-red-500)}.bg-black{background-color:var(--color-black)}.bg-blue-500{background-color:var(--color-blue-500)}.bg-green-500{background-color:var(--color-green-500)}.bg-red-500{background-color:var(--color-red-500)}.bg-yellow-500{background-color:var(--color-yellow-500)}.object-cover{-o-object-fit:cover;object-fit:cover}.p-4{padding:calc(var(--spacing)*4)}.p-6{padding:calc(var(--spacing)*6)}.px-2{padding-inline:calc(var(--spacing)*2)}.px-4{padding-inline:calc(var(--spacing)*4)}.py-1{padding-block:calc(var(--spacing)*1)}.py-2{padding-block:calc(var(--spacing)*2)}.py-12{padding-block:calc(var(--spacing)*12)}.pt-4{padding-top:calc(var(--spacing)*4)}.pr-4{padding-right:calc(var(--spacing)*4)}.pl-10{padding-left:calc(var(--spacing)*10)}.text-center{text-align:center}.text-2xl{font-size:var(--text-2xl);line-height:var(--tw-leading,var(--text-2xl--line-height))}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.text-xl{font-size:var(--text-xl);line-height:var(--tw-leading,var(--text-xl--line-height))}.text-xs{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.font-semibold{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.text-red-500{color:var(--color-red-500)}.text-white{color:var(--color-white)}.text-yellow-500{color:var(--color-yellow-500)}.shadow-xl{--tw-shadow:0 20px 25px -5px var(--tw-shadow-color,#0000001a),0 8px 10px -6px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.outline{outline-style:var(--tw-outline-style);outline-width:1px}.transition-colors{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}@media(hover:hover){.hover\:bg-red-600:hover{background-color:var(--color-red-600)}.hover\:bg-yellow-600:hover{background-color:var(--color-yellow-600)}}.focus\:outline-none:focus{--tw-outline-style:none;outline-style:none}.disabled\:opacity-50:disabled{opacity:.5}}:root{--color-primary:#2563eb;--color-primary-hover:#1d4ed8;--color-primary-light:#dbeafe;--color-secondary:#475569;--color-secondary-hover:#334155;--color-success:#059669;--color-success-light:#d1fae5;--color-warning:#d97706;--color-warning-light:#fef3c7;--color-error:#dc2626;--color-error-light:#fee2e2;--color-bg-primary:#fff;--color-bg-secondary:#f8fafc;--color-bg-tertiary:#f1f5f9;--color-bg-dark:#1e293b;--color-bg-sidebar:#1e293b;--color-text-primary:#0f172a;--color-text-secondary:#475569;--color-text-tertiary:#94a3b8;--color-text-inverse:#fff;--color-text-link:#2563eb;--color-border-primary:#e2e8f0;--color-border-secondary:#cbd5e1;--color-border-focus:#2563eb;--spacing-xs:.25rem;--spacing-sm:.5rem;--spacing-md:1rem;--spacing-lg:1.5rem;--spacing-xl:2rem;--spacing-2xl:3rem;--font-size-xs:.75rem;--font-size-sm:.875rem;--font-size-base:1rem;--font-size-lg:1.125rem;--font-size-xl:1.25rem;--font-size-2xl:1.5rem;--font-size-3xl:1.875rem;--font-weight-normal:400;--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--line-height-tight:1.25;--line-height-normal:1.5;--line-height-relaxed:1.75;--shadow-sm:0 .0625rem .125rem 0 #0000000d;--shadow-md:0 .25rem .375rem -.0625rem #0000001a,0 .125rem .25rem -.125rem #0000001a;--shadow-lg:0 .625rem .9375rem -.1875rem #0000001a,0 .25rem .375rem -.25rem #0000001a;--transition-fast:.15s ease;--transition-normal:.2s ease;--transition-slow:.3s ease;--sidebar-width:16rem;--sidebar-collapsed-width:4.5rem;--header-height:4rem;--z-index-dropdown:100;--z-index-sticky:200;--z-index-fixed:300;--z-index-modal-backdrop:400;--z-index-modal:500;--z-index-popover:600;--z-index-tooltip:700}*{box-sizing:border-box;margin:0;padding:0}html{-webkit-text-size-adjust:100%;font-size:16px}body{background-color:var(--color-bg-secondary);color:var(--color-text-primary);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;font-size:var(--font-size-base);line-height:var(--line-height-normal);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;min-height:100vh}#root{min-height:100vh}a{color:var(--color-text-link);text-decoration:none}a:hover{text-decoration:underline}button{cursor:pointer;font-family:inherit}input,textarea,select{font-family:inherit;font-size:inherit}:focus-visible{outline:.125rem solid var(--color-border-focus);outline-offset:.125rem}::-moz-selection{background-color:var(--color-primary-light);color:var(--color-primary)}::selection{background-color:var(--color-primary-light);color:var(--color-primary)}::-webkit-scrollbar{width:.5rem;height:.5rem}::-webkit-scrollbar-track{background:var(--color-bg-tertiary)}::-webkit-scrollbar-thumb{background:var(--color-border-secondary)}::-webkit-scrollbar-thumb:hover{background:var(--color-text-tertiary)}@property --tw-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-z{syntax:"*";inherits:false;initial-value:0}@property --tw-space-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-outline-style{syntax:"*";inherits:false;initial-value:solid}.language-selector{position:relative}.language-selector__button{display:flex;align-items:center;justify-content:center;width:2.5rem;height:2.5rem;background-color:transparent;border:none;color:#fff9;transition:background-color var(--transition-fast),color var(--transition-fast)}.language-selector__button:hover{background-color:#ffffff1a;color:var(--color-text-inverse)}.language-selector__button:focus-visible{outline:.125rem solid var(--color-primary);outline-offset:.125rem}.language-selector__expanded{display:flex;flex-direction:column;gap:var(--spacing-sm)}.language-selector__label{display:flex;align-items:center;gap:var(--spacing-sm);padding:0 var(--spacing-sm);color:#fff9;font-size:var(--font-size-sm)}.language-selector__select{width:100%;padding:var(--spacing-sm) var(--spacing-md);background-color:#ffffff1a;color:var(--color-text-inverse);font-size:var(--font-size-sm);border:.0625rem solid rgba(255,255,255,.1);transition:border-color var(--transition-fast),background-color var(--transition-fast);-webkit-appearance:none;-moz-appearance:none;appearance:none;cursor:pointer}.language-selector__select:hover{background-color:#ffffff26;border-color:#fff3}.language-selector__select:focus{outline:none;border-color:var(--color-primary)}.language-selector__select option{background-color:var(--color-bg-dark);color:var(--color-text-inverse)}.sidebar{display:flex;flex-direction:column;height:100vh;background-color:var(--color-bg-sidebar);transition:width var(--transition-slow);overflow:hidden}.sidebar--expanded{width:var(--sidebar-width)}.sidebar--collapsed{width:var(--sidebar-collapsed-width)}.sidebar__header{display:flex;align-items:center;padding:var(--spacing-lg);border-bottom:.0625rem solid rgba(255,255,255,.1);min-height:4.5rem}.sidebar__header--expanded{justify-content:space-between}.sidebar__header--collapsed{justify-content:center}.sidebar__toggle{display:flex;align-items:center;justify-content:center;width:2.5rem;height:2.5rem;background-color:transparent;border:none;color:var(--color-text-inverse);transition:background-color var(--transition-fast)}.sidebar__toggle:hover{background-color:#ffffff1a}.sidebar__toggle:focus-visible{outline:.125rem solid var(--color-primary);outline-offset:.125rem}.sidebar__logo{display:flex;flex-direction:column;line-height:1}.sidebar__logo-main{font-size:var(--font-size-xl);font-weight:var(--font-weight-bold);color:var(--color-text-inverse);letter-spacing:-.025em}.sidebar__logo-sub{font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);color:var(--color-primary);text-transform:uppercase;letter-spacing:.1em;margin-top:.125rem}.sidebar__nav{flex:1;padding:var(--spacing-md) 0;overflow-y:auto}.sidebar__nav-item{display:flex;align-items:center;width:100%;padding:var(--spacing-md) var(--spacing-lg);background-color:transparent;border:none;color:#ffffffb3;font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);text-decoration:none;transition:background-color var(--transition-fast),color var(--transition-fast)}.sidebar__nav-item--collapsed{justify-content:center;padding:var(--spacing-md)}.sidebar__nav-item--expanded{gap:var(--spacing-md)}.sidebar__nav-item:hover{background-color:#ffffff0d;color:var(--color-text-inverse)}.sidebar__nav-item--active{background-color:#2563eb26;color:var(--color-text-inverse);border-left:.1875rem solid var(--color-primary)}.sidebar__nav-item:focus-visible{outline:.125rem solid var(--color-primary);outline-offset:-.125rem}.sidebar__nav-icon{flex-shrink:0;width:1.25rem;height:1.25rem}.sidebar__nav-label{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sidebar__footer{border-top:.0625rem solid rgba(255,255,255,.1);padding:var(--spacing-md)}.sidebar__user{display:flex;align-items:center;width:100%;padding:var(--spacing-sm);background-color:transparent;border:none;text-decoration:none;transition:background-color var(--transition-fast)}.sidebar__user--expanded{gap:var(--spacing-md)}.sidebar__user--collapsed{justify-content:center}.sidebar__user:hover{background-color:#ffffff0d}.sidebar__user:focus-visible{outline:.125rem solid var(--color-primary);outline-offset:.125rem}.sidebar__avatar{width:2.5rem;height:2.5rem;flex-shrink:0;-o-object-fit:cover;object-fit:cover}.sidebar__avatar-placeholder{display:flex;align-items:center;justify-content:center;width:2.5rem;height:2.5rem;background-color:var(--color-primary);flex-shrink:0}.sidebar__avatar-placeholder svg{color:var(--color-text-inverse)}.sidebar__user-info{flex:1;min-width:0;text-align:left}.sidebar__user-name{font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);color:var(--color-text-inverse);margin:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sidebar__user-email{font-size:var(--font-size-xs);color:#fff9;margin:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sidebar__language{margin-bottom:var(--spacing-sm)}.sidebar__logout{display:flex;align-items:center;width:100%;padding:var(--spacing-sm);background-color:transparent;border:none;color:#fff9;font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);transition:background-color var(--transition-fast),color var(--transition-fast)}.sidebar__logout--expanded{gap:var(--spacing-md)}.sidebar__logout--collapsed{justify-content:center}.sidebar__logout:hover{background-color:#dc26261a;color:var(--color-error)}.sidebar__logout:focus-visible{outline:.125rem solid var(--color-primary);outline-offset:.125rem}@media(max-width:768px){.sidebar--expanded{position:fixed;z-index:var(--z-index-fixed);left:0;top:0}.sidebar__overlay{position:fixed;inset:0;background-color:#00000080;z-index:calc(var(--z-index-fixed) - 1)}}.loading{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--spacing-md);padding:var(--spacing-xl)}.loading--fullscreen{position:fixed;inset:0;background-color:var(--color-bg-primary);z-index:var(--z-index-modal)}.loading--page{min-height:25rem;width:100%}.loading--inline{padding:var(--spacing-lg)}.loading__spinner{width:3rem;height:3rem;border:.1875rem solid var(--color-border-primary);border-top-color:var(--color-primary);animation:spin .8s linear infinite}.loading--small .loading__spinner{width:1.5rem;height:1.5rem;border-width:.125rem}.loading--large .loading__spinner{width:4rem;height:4rem;border-width:.25rem}.loading__text{color:var(--color-text-secondary);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium)}@keyframes spin{to{transform:rotate(360deg)}}.dashboard-layout{display:flex;height:100vh;overflow:hidden;background-color:var(--color-bg-secondary)}.dashboard-layout__content{flex:1;display:flex;flex-direction:column;overflow:hidden;min-width:0}.dashboard-layout__main{flex:1;overflow-y:auto}.dashboard-layout__loading{display:flex;align-items:center;justify-content:center;min-height:100vh;background-color:var(--color-bg-primary)}.dashboard-layout__loading-text{color:var(--color-text-secondary);font-size:var(--font-size-base)}@media(max-width:768px){.dashboard-layout{flex-direction:column}.dashboard-layout__content{flex:1;min-height:0}}.login{min-height:100vh;display:flex;background-color:var(--color-bg-secondary)}.login__branding{display:none;flex:1;background-color:var(--color-bg-dark);padding:var(--spacing-2xl);position:relative;overflow:hidden}.login__branding-content{position:relative;z-index:1;height:100%;display:flex;flex-direction:column;justify-content:center;max-width:28rem;margin:0 auto}.login__branding-pattern{position:absolute;inset:0;opacity:.05;background-image:linear-gradient(var(--color-primary) .0625rem,transparent .0625rem),linear-gradient(90deg,var(--color-primary) .0625rem,transparent .0625rem);background-size:3rem 3rem}.login__logo{margin-bottom:var(--spacing-xl)}.login__logo-text{font-size:var(--font-size-3xl);font-weight:var(--font-weight-bold);color:var(--color-text-inverse);letter-spacing:-.025em}.login__logo-subtitle{font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);color:var(--color-primary);letter-spacing:.2em;margin-top:var(--spacing-xs)}.login__tagline{font-size:var(--font-size-2xl);font-weight:var(--font-weight-semibold);color:var(--color-text-inverse);line-height:var(--line-height-tight);margin-bottom:var(--spacing-lg)}.login__features{list-style:none;display:flex;flex-direction:column;gap:var(--spacing-md)}.login__feature{display:flex;align-items:center;gap:var(--spacing-md);color:var(--color-text-inverse);font-size:var(--font-size-base)}.login__feature-icon{width:1.5rem;height:1.5rem;flex-shrink:0;color:var(--color-primary)}.login__form-section{flex:1;display:flex;align-items:center;justify-content:center;padding:var(--spacing-lg)}.login__form-container{width:100%;max-width:26rem}.login__card{background-color:var(--color-bg-primary);border:.0625rem solid var(--color-border-primary);padding:var(--spacing-xl)}.login__header{text-align:center;margin-bottom:var(--spacing-xl)}.login__mobile-logo{display:block;margin-bottom:var(--spacing-lg)}.login__mobile-logo-text{font-size:var(--font-size-2xl);font-weight:var(--font-weight-bold);color:var(--color-text-primary)}.login__mobile-logo-subtitle{font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);color:var(--color-primary);letter-spacing:.2em}.login__title{font-size:var(--font-size-xl);font-weight:var(--font-weight-semibold);color:var(--color-text-primary);margin-bottom:var(--spacing-sm)}.login__description{font-size:var(--font-size-sm);color:var(--color-text-secondary);line-height:var(--line-height-normal)}.login__error{margin-bottom:var(--spacing-lg);padding:var(--spacing-md);background-color:var(--color-error-light);border:.0625rem solid var(--color-error)}.login__error-text{font-size:var(--font-size-sm);color:var(--color-error)}.login__buttons{display:flex;flex-direction:column;gap:var(--spacing-md);align-items:center}.login__google-wrapper{width:100%;display:flex;justify-content:center}.login__divider{display:flex;align-items:center;gap:var(--spacing-md);width:100%}.login__divider-line{flex:1;height:.0625rem;background-color:var(--color-border-primary)}.login__divider-text{font-size:var(--font-size-xs);color:var(--color-text-tertiary);text-transform:uppercase;letter-spacing:.05em}.login__help{margin-top:var(--spacing-lg);padding-top:var(--spacing-lg);border-top:.0625rem solid var(--color-border-primary);text-align:center}.login__help-text{font-size:var(--font-size-sm);color:var(--color-text-secondary)}.login__config-error{min-height:100vh;display:flex;align-items:center;justify-content:center;background-color:var(--color-bg-secondary);padding:var(--spacing-lg)}.login__config-error-card{background-color:var(--color-bg-primary);border:.0625rem solid var(--color-border-primary);padding:var(--spacing-xl);max-width:28rem;width:100%;text-align:center}.login__config-error-title{font-size:var(--font-size-xl);font-weight:var(--font-weight-bold);color:var(--color-text-primary);margin-bottom:var(--spacing-md)}.login__config-error-message{font-size:var(--font-size-sm);color:var(--color-text-secondary)}@media(min-width:1024px){.login__branding{display:flex}.login__form-section{flex:none;width:50%;max-width:40rem;padding:var(--spacing-2xl)}.login__mobile-logo{display:none}.login__card{padding:var(--spacing-2xl)}.login__title{font-size:var(--font-size-2xl)}}.header{background-color:var(--color-bg-primary);border-bottom:.0625rem solid var(--color-border-primary);padding:var(--spacing-lg) var(--spacing-xl)}.header__title{font-size:var(--font-size-2xl);font-weight:var(--font-weight-semibold);color:var(--color-text-primary);margin:0;line-height:var(--line-height-tight)}.header__description{font-size:var(--font-size-sm);color:var(--color-text-secondary);margin:var(--spacing-xs) 0 0 0}@media(max-width:768px){.header{padding:var(--spacing-md) var(--spacing-lg)}.header__title{font-size:var(--font-size-xl)}}.error-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--spacing-2xl);text-align:center;max-width:28rem;margin:0 auto}.error-state--page{min-height:25rem}.error-state--card{background-color:var(--color-bg-primary);border:.0625rem solid var(--color-border-primary);padding:var(--spacing-2xl)}.error-state__icon{display:flex;align-items:center;justify-content:center;width:4rem;height:4rem;background-color:var(--color-error-light);margin-bottom:var(--spacing-lg)}.error-state__icon svg{width:2rem;height:2rem;color:var(--color-error)}.error-state__title{font-size:var(--font-size-xl);font-weight:var(--font-weight-semibold);color:var(--color-text-primary);margin:0 0 var(--spacing-sm) 0}.error-state__message{font-size:var(--font-size-sm);color:var(--color-text-secondary);margin:0 0 var(--spacing-lg) 0;line-height:var(--line-height-relaxed)}.error-state__button{display:inline-flex;align-items:center;justify-content:center;gap:var(--spacing-sm);padding:var(--spacing-sm) var(--spacing-lg);background-color:var(--color-primary);color:var(--color-text-inverse);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);border:none;transition:background-color var(--transition-fast)}.error-state__button:hover{background-color:var(--color-primary-hover)}.error-state__button:focus-visible{outline:.125rem solid var(--color-border-focus);outline-offset:.125rem}.school-card{background-color:var(--color-bg-primary);border:.0625rem solid var(--color-border-primary);padding:var(--spacing-lg);transition:box-shadow var(--transition-normal),border-color var(--transition-normal)}.school-card:hover{box-shadow:var(--shadow-md);border-color:var(--color-border-secondary)}.school-card__header{margin-bottom:var(--spacing-md)}.school-card__name{font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold);color:var(--color-text-primary);margin:0 0 var(--spacing-sm) 0;line-height:var(--line-height-tight)}.school-card__address{display:flex;align-items:flex-start;gap:var(--spacing-sm);color:var(--color-text-secondary);font-size:var(--font-size-sm)}.school-card__address-icon{flex-shrink:0;margin-top:.125rem;color:var(--color-text-tertiary)}.school-card__details{display:flex;flex-direction:column;gap:var(--spacing-md);margin-bottom:var(--spacing-lg);padding:var(--spacing-md);background-color:var(--color-bg-secondary)}.school-card__detail{display:flex;align-items:center;gap:var(--spacing-sm)}.school-card__detail-icon{color:var(--color-text-tertiary);flex-shrink:0}.school-card__detail-content{flex:1;min-width:0}.school-card__detail-label{font-size:var(--font-size-xs);color:var(--color-text-tertiary);margin:0 0 .125rem;text-transform:uppercase;letter-spacing:.025em}.school-card__detail-value{font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--color-text-primary);margin:0}.school-card__detail-value--mono{font-family:SF Mono,Fira Code,Fira Mono,monospace;letter-spacing:.05em}.school-card__actions{display:flex;gap:var(--spacing-sm)}.school-card__button{display:inline-flex;align-items:center;justify-content:center;gap:var(--spacing-sm);padding:var(--spacing-sm) var(--spacing-md);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);border:none;transition:background-color var(--transition-fast),color var(--transition-fast)}.school-card__button--primary{flex:1;background-color:var(--color-primary);color:var(--color-text-inverse)}.school-card__button--primary:hover{background-color:var(--color-primary-hover)}.school-card__button--delete{background-color:var(--color-bg-tertiary);color:var(--color-text-secondary)}.school-card__button--delete:hover{background-color:var(--color-error-light);color:var(--color-error)}.school-card__button:focus-visible{outline:.125rem solid var(--color-border-focus);outline-offset:.125rem}.schools-page{min-height:100%}.schools-page__content{padding:var(--spacing-xl);max-width:80rem;margin:0 auto}.schools-page__toolbar{display:flex;justify-content:flex-end;margin-bottom:var(--spacing-lg)}.schools-page__add-button{display:inline-flex;align-items:center;gap:var(--spacing-sm);padding:var(--spacing-sm) var(--spacing-lg);background-color:var(--color-primary);color:var(--color-text-inverse);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);border:none;transition:background-color var(--transition-fast)}.schools-page__add-button:hover{background-color:var(--color-primary-hover)}.schools-page__add-button:focus-visible{outline:.125rem solid var(--color-border-focus);outline-offset:.125rem}.schools-page__grid{display:grid;grid-template-columns:repeat(1,1fr);gap:var(--spacing-lg)}@media(min-width:640px){.schools-page__grid{grid-template-columns:repeat(2,1fr)}}@media(min-width:1024px){.schools-page__grid{grid-template-columns:repeat(3,1fr)}}.schools-page__empty{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--spacing-2xl);background-color:var(--color-bg-primary);border:.0625rem solid var(--color-border-primary);text-align:center;max-width:28rem;margin:0 auto}.schools-page__empty-icon{display:flex;align-items:center;justify-content:center;width:4rem;height:4rem;background-color:var(--color-bg-tertiary);margin-bottom:var(--spacing-lg)}.schools-page__empty-icon svg{width:2rem;height:2rem;color:var(--color-text-tertiary)}.schools-page__empty-title{font-size:var(--font-size-xl);font-weight:var(--font-weight-semibold);color:var(--color-text-primary);margin:0 0 var(--spacing-sm) 0}.schools-page__empty-description{font-size:var(--font-size-sm);color:var(--color-text-secondary);margin:0 0 var(--spacing-lg) 0;line-height:var(--line-height-relaxed)}.schools-page__empty-button{display:inline-flex;align-items:center;gap:var(--spacing-sm);padding:var(--spacing-sm) var(--spacing-lg);background-color:var(--color-primary);color:var(--color-text-inverse);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);border:none;transition:background-color var(--transition-fast)}.schools-page__empty-button:hover{background-color:var(--color-primary-hover)}.schools-page__empty-button:focus-visible{outline:.125rem solid var(--color-border-focus);outline-offset:.125rem}@media(max-width:768px){.schools-page__content{padding:var(--spacing-lg)}}.permissions-table{overflow-x:auto}.permissions-table__table{width:100%;border-collapse:collapse}.permissions-table__header{background-color:var(--color-bg-tertiary);border-bottom:.0625rem solid var(--color-border-primary)}.permissions-table__header-cell{padding:var(--spacing-sm) var(--spacing-md);font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);color:var(--color-text-primary);text-align:left}.permissions-table__header-cell--center{text-align:center}.permissions-table__body{border-top:none}.permissions-table__row{transition:background-color var(--transition-fast);border-bottom:.0625rem solid var(--color-border-primary)}.permissions-table__row:hover{background-color:var(--color-bg-tertiary)}.permissions-table__row:last-child{border-bottom:none}.permissions-table__cell{padding:var(--spacing-sm) var(--spacing-md)}.permissions-table__cell--center{text-align:center}.permissions-table__user{display:flex;align-items:center;gap:var(--spacing-md)}.permissions-table__user-avatar{width:2rem;height:2rem;-o-object-fit:cover;object-fit:cover;flex-shrink:0;border-radius:50%}.permissions-table__user-avatar-placeholder{width:2rem;height:2rem;display:flex;align-items:center;justify-content:center;background-color:var(--color-primary-light);flex-shrink:0;border-radius:50%}.permissions-table__user-avatar-icon{color:var(--color-primary)}.permissions-table__user-info{flex:1;min-width:0}.permissions-table__user-name{font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--color-text-primary);margin:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.permissions-table__user-email{font-size:var(--font-size-xs);color:var(--color-text-secondary);margin:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.permissions-table__checkbox{width:1rem;height:1rem;cursor:pointer;accent-color:var(--color-primary)}.permissions-table__checkbox:disabled{opacity:.5;cursor:not-allowed}.permissions-table__checkbox:focus-visible{outline:.125rem solid var(--color-border-focus);outline-offset:.125rem}.school-detail{width:100%}.school-detail__content{padding:var(--spacing-xl)}.school-detail__back-button{display:inline-flex;align-items:center;gap:var(--spacing-sm);padding:var(--spacing-sm) 0;margin-bottom:var(--spacing-lg);background:none;border:none;color:var(--color-text-secondary);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);cursor:pointer;transition:color var(--transition-fast)}.school-detail__back-button:hover{color:var(--color-text-primary)}.school-detail__sections{display:flex;flex-direction:column;gap:var(--spacing-lg)}.school-detail__card{background-color:var(--color-bg-primary);border:.0625rem solid var(--color-border-primary);padding:var(--spacing-xl)}.school-detail__card-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--spacing-lg);flex-wrap:wrap;gap:var(--spacing-md)}.school-detail__card-title{display:flex;align-items:center;gap:var(--spacing-sm);font-size:var(--font-size-xl);font-weight:var(--font-weight-semibold);color:var(--color-text-primary);margin:0}.school-detail__card-title-icon{color:var(--color-primary)}.school-detail__card-title-icon--purple{color:#7c3aed}.school-detail__info-list{display:flex;flex-direction:column;gap:var(--spacing-md)}.school-detail__info-item{display:flex;align-items:flex-start;gap:var(--spacing-md)}.school-detail__info-icon{color:var(--color-text-secondary);flex-shrink:0;margin-top:.125rem}.school-detail__info-content{flex:1}.school-detail__info-label{font-size:var(--font-size-sm);color:var(--color-text-secondary);margin:0 0 var(--spacing-xs) 0}.school-detail__info-value{font-size:var(--font-size-base);font-weight:var(--font-weight-medium);color:var(--color-text-primary);margin:0}.school-detail__info-value--mono{font-family:SF Mono,Fira Code,Fira Mono,monospace;font-size:var(--font-size-lg);letter-spacing:.05em}.school-detail__users-list{display:flex;flex-direction:column;gap:var(--spacing-sm)}.school-detail__user-item{display:flex;align-items:center;gap:var(--spacing-md);padding:var(--spacing-md);background-color:var(--color-bg-tertiary);transition:background-color var(--transition-fast)}.school-detail__user-item:hover{background-color:var(--color-bg-secondary)}.school-detail__user-avatar{width:3rem;height:3rem;-o-object-fit:cover;object-fit:cover;flex-shrink:0;border-radius:50%}.school-detail__user-avatar-placeholder{width:3rem;height:3rem;display:flex;align-items:center;justify-content:center;background-color:var(--color-primary-light);flex-shrink:0;border-radius:50%}.school-detail__user-avatar-placeholder-icon{color:var(--color-primary)}.school-detail__user-info{flex:1;min-width:0}.school-detail__user-name{font-size:var(--font-size-base);font-weight:var(--font-weight-semibold);color:var(--color-text-primary);margin:0 0 var(--spacing-xs) 0}.school-detail__user-email{display:flex;align-items:center;gap:var(--spacing-xs);font-size:var(--font-size-sm);color:var(--color-text-secondary);margin:0}.school-detail__empty{text-align:center;padding:var(--spacing-2xl) var(--spacing-md);color:var(--color-text-secondary)}.school-detail__classes-grid{display:grid;grid-template-columns:repeat(1,1fr);gap:var(--spacing-md)}@media(min-width:768px){.school-detail__classes-grid{grid-template-columns:repeat(2,1fr)}}@media(min-width:1024px){.school-detail__classes-grid{grid-template-columns:repeat(3,1fr)}}.school-detail__class-card{display:flex;align-items:center;gap:var(--spacing-md);padding:var(--spacing-md);background-color:var(--color-bg-tertiary);cursor:pointer;transition:background-color var(--transition-fast);border:none;text-align:left;width:100%}.school-detail__class-card:hover{background-color:var(--color-bg-secondary)}.school-detail__class-card:focus-visible{outline:.125rem solid var(--color-border-focus);outline-offset:.125rem}.school-detail__class-icon{color:var(--color-text-secondary);flex-shrink:0}.school-detail__class-info{flex:1;min-width:0}.school-detail__class-name{font-size:var(--font-size-base);font-weight:var(--font-weight-semibold);color:var(--color-text-primary);margin:0 0 var(--spacing-xs) 0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.school-detail__class-grade{font-size:var(--font-size-xs);color:var(--color-text-secondary);margin:0}.school-detail__view-all{margin-top:var(--spacing-md);text-align:center}.school-detail__view-all-link{background:none;border:none;color:var(--color-primary);font-size:var(--font-size-sm);cursor:pointer;text-decoration:none;transition:color var(--transition-fast)}.school-detail__view-all-link:hover{color:var(--color-primary-hover);text-decoration:underline}.school-detail__button{display:inline-flex;align-items:center;justify-content:center;gap:var(--spacing-sm);padding:var(--spacing-sm) var(--spacing-md);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);border:none;cursor:pointer;transition:background-color var(--transition-fast),color var(--transition-fast)}.school-detail__button--primary{background-color:var(--color-primary);color:var(--color-text-inverse)}.school-detail__button--primary:hover{background-color:var(--color-primary-hover)}.school-detail__button--disabled{opacity:.5;cursor:not-allowed}.school-detail__button:focus-visible{outline:.125rem solid var(--color-border-focus);outline-offset:.125rem}.school-detail__tooltip-wrapper{position:relative}.school-detail__tooltip{position:absolute;bottom:100%;right:0;margin-bottom:var(--spacing-sm);display:none;width:16rem;padding:var(--spacing-sm);background-color:var(--color-bg-secondary);border:.0625rem solid var(--color-border-primary);box-shadow:var(--shadow-lg);font-size:var(--font-size-sm);color:var(--color-text-primary);z-index:var(--z-index-tooltip)}.school-detail__tooltip-wrapper:hover .school-detail__tooltip{display:block}.school-detail__loading-classes{display:flex;align-items:center;justify-content:center;padding:var(--spacing-2xl)}.classes-page{min-height:100%}.classes-page__content{padding:var(--spacing-xl)}.classes-page__school-selector{background-color:var(--color-primary-light);padding:var(--spacing-lg);margin-bottom:var(--spacing-xl)}.classes-page__school-selector-header{display:flex;align-items:center;gap:var(--spacing-sm);margin-bottom:var(--spacing-md)}.classes-page__school-selector-icon{display:flex;align-items:center;justify-content:center;width:2.5rem;height:2.5rem;background-color:var(--color-primary)}.classes-page__school-selector-icon svg{width:1.25rem;height:1.25rem;color:var(--color-text-inverse)}.classes-page__school-selector-title{font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold);color:var(--color-text-primary);margin:0}.classes-page__school-selector-description{font-size:var(--font-size-sm);color:var(--color-text-secondary);margin:0 0 var(--spacing-md) 0}.classes-page__select{width:100%;max-width:32rem;padding:var(--spacing-md) var(--spacing-lg);background-color:var(--color-bg-primary);color:var(--color-text-primary);font-size:var(--font-size-base);font-weight:var(--font-weight-medium);-webkit-appearance:none;-moz-appearance:none;appearance:none;cursor:pointer;transition:border-color var(--transition-fast),box-shadow var(--transition-fast);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 24 24' fill='none' stroke='%232563EB' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right var(--spacing-md) center;padding-right:var(--spacing-2xl)}.classes-page__select:hover{box-shadow:var(--shadow-md)}.classes-page__select:focus{outline:none;box-shadow:0 0 0 .1875rem #2563eb4d}.classes-page__select option{background-color:var(--color-bg-primary);color:var(--color-text-primary);padding:var(--spacing-sm)}.classes-page__toolbar{display:flex;justify-content:flex-end;margin-bottom:var(--spacing-lg)}.classes-page__add-button{display:inline-flex;align-items:center;gap:var(--spacing-sm);padding:var(--spacing-sm) var(--spacing-lg);background-color:var(--color-primary);color:var(--color-text-inverse);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);border:none;transition:background-color var(--transition-fast)}.classes-page__add-button:hover{background-color:var(--color-primary-hover)}.classes-page__add-button:focus-visible{outline:.125rem solid var(--color-border-focus);outline-offset:.125rem}.classes-page__groups{display:flex;flex-direction:column;gap:var(--spacing-xl)}.classes-page__group-header{display:flex;align-items:center;gap:var(--spacing-sm);margin-bottom:var(--spacing-md)}.classes-page__group-icon{display:flex;align-items:center;justify-content:center;width:2rem;height:2rem;background-color:var(--color-primary-light)}.classes-page__group-icon svg{width:1rem;height:1rem;color:var(--color-primary)}.classes-page__group-title{font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold);color:var(--color-text-primary);margin:0}.classes-page__grid{display:grid;grid-template-columns:repeat(1,1fr);gap:var(--spacing-md)}@media(min-width:640px){.classes-page__grid{grid-template-columns:repeat(2,1fr)}}@media(min-width:1024px){.classes-page__grid{grid-template-columns:repeat(3,1fr)}}@media(min-width:1280px){.classes-page__grid{grid-template-columns:repeat(4,1fr)}}.classes-page__card{background-color:var(--color-bg-primary);border:.0625rem solid var(--color-border-primary);padding:var(--spacing-lg);cursor:pointer;transition:box-shadow var(--transition-normal),border-color var(--transition-normal)}.classes-page__card:hover{box-shadow:var(--shadow-md);border-color:var(--color-border-secondary)}.classes-page__card-header{margin-bottom:var(--spacing-md)}.classes-page__card-name{font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold);color:var(--color-text-primary);margin:0 0 var(--spacing-xs) 0}.classes-page__card-description{font-size:var(--font-size-sm);color:var(--color-text-secondary);margin:0;display:-webkit-box;-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;min-height:2.625rem}.classes-page__card-stats{display:flex;align-items:center;gap:var(--spacing-lg);margin-bottom:var(--spacing-md);padding:var(--spacing-sm) var(--spacing-md);background-color:var(--color-bg-tertiary)}.classes-page__card-stat{display:flex;align-items:center;gap:var(--spacing-xs)}.classes-page__card-stat-icon{color:var(--color-primary)}.classes-page__card-stat-value{font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);color:var(--color-text-primary)}.classes-page__card-stat-label{font-size:var(--font-size-xs);color:var(--color-text-tertiary)}.classes-page__card-footer{display:flex;align-items:center;justify-content:space-between;padding-top:var(--spacing-md);border-top:.0625rem solid var(--color-border-primary)}.classes-page__card-date{font-size:var(--font-size-xs);color:var(--color-text-tertiary)}.classes-page__empty{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--spacing-2xl);background-color:var(--color-bg-primary);border:.0625rem solid var(--color-border-primary);text-align:center;max-width:28rem;margin:0 auto}.classes-page__empty-icon{display:flex;align-items:center;justify-content:center;width:4rem;height:4rem;background-color:var(--color-bg-tertiary);margin-bottom:var(--spacing-lg)}.classes-page__empty-icon--info{background-color:var(--color-primary-light)}.classes-page__empty-icon svg{width:2rem;height:2rem;color:var(--color-text-tertiary)}.classes-page__empty-icon--info svg{color:var(--color-primary)}.classes-page__empty-title{font-size:var(--font-size-xl);font-weight:var(--font-weight-semibold);color:var(--color-text-primary);margin:0 0 var(--spacing-sm) 0}.classes-page__empty-description{font-size:var(--font-size-sm);color:var(--color-text-secondary);margin:0 0 var(--spacing-lg) 0;line-height:var(--line-height-relaxed)}.classes-page__empty-button{display:inline-flex;align-items:center;gap:var(--spacing-sm);padding:var(--spacing-sm) var(--spacing-lg);background-color:var(--color-primary);color:var(--color-text-inverse);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);border:none;transition:background-color var(--transition-fast)}.classes-page__empty-button:hover{background-color:var(--color-primary-hover)}.classes-page__empty-button:focus-visible{outline:.125rem solid var(--color-border-focus);outline-offset:.125rem}@media(max-width:768px){.classes-page__content{padding:var(--spacing-lg)}.classes-page__select{max-width:100%}.classes-page__school-selector{padding:var(--spacing-md)}}.class-permissions-table{overflow-x:auto}.class-permissions-table__table{width:100%;border-collapse:collapse}.class-permissions-table__header{background-color:var(--color-bg-tertiary);border-bottom:.0625rem solid var(--color-border-primary)}.class-permissions-table__header-cell{padding:var(--spacing-sm) var(--spacing-md);font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);color:var(--color-text-primary);text-align:left}.class-permissions-table__header-cell--center{text-align:center}.class-permissions-table__body{border-top:none}.class-permissions-table__row{transition:background-color var(--transition-fast);border-bottom:.0625rem solid var(--color-border-primary)}.class-permissions-table__row:hover{background-color:var(--color-bg-tertiary)}.class-permissions-table__row:last-child{border-bottom:none}.class-permissions-table__cell{padding:var(--spacing-sm) var(--spacing-md)}.class-permissions-table__cell--center{text-align:center}.class-permissions-table__user{display:flex;align-items:center;gap:var(--spacing-md)}.class-permissions-table__user-avatar{width:2rem;height:2rem;-o-object-fit:cover;object-fit:cover;flex-shrink:0;border-radius:50%}.class-permissions-table__user-avatar-placeholder{width:2rem;height:2rem;display:flex;align-items:center;justify-content:center;background-color:var(--color-primary-light);flex-shrink:0;border-radius:50%}.class-permissions-table__user-avatar-icon{color:var(--color-primary)}.class-permissions-table__user-info{flex:1;min-width:0}.class-permissions-table__user-name{font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--color-text-primary);margin:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.class-permissions-table__user-email{font-size:var(--font-size-xs);color:var(--color-text-secondary);margin:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.class-permissions-table__checkbox{width:1rem;height:1rem;cursor:pointer;accent-color:var(--color-primary)}.class-permissions-table__checkbox:disabled{opacity:.5;cursor:not-allowed}.class-permissions-table__checkbox:focus-visible{outline:.125rem solid var(--color-border-focus);outline-offset:.125rem}.class-detail{width:100%}.class-detail__content{padding:var(--spacing-xl)}.class-detail__back-button{display:inline-flex;align-items:center;gap:var(--spacing-sm);padding:var(--spacing-sm) 0;margin-bottom:var(--spacing-lg);background:none;border:none;color:var(--color-text-secondary);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);cursor:pointer;transition:color var(--transition-fast)}.class-detail__back-button:hover{color:var(--color-text-primary)}.class-detail__sections{display:flex;flex-direction:column;gap:var(--spacing-lg)}.class-detail__card{background-color:var(--color-bg-primary);border:.0625rem solid var(--color-border-primary);padding:var(--spacing-xl)}.class-detail__card-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--spacing-lg);flex-wrap:wrap;gap:var(--spacing-md)}.class-detail__card-title{display:flex;align-items:center;gap:var(--spacing-sm);font-size:var(--font-size-xl);font-weight:var(--font-weight-semibold);color:var(--color-text-primary);margin:0}.class-detail__card-title-icon{color:var(--color-primary)}.class-detail__card-title-icon--purple{color:#7c3aed}.class-detail__info-list{display:flex;flex-direction:column;gap:var(--spacing-md)}.class-detail__info-item{display:flex;align-items:flex-start;gap:var(--spacing-md)}.class-detail__info-icon{color:var(--color-text-secondary);flex-shrink:0;margin-top:.125rem}.class-detail__info-content{flex:1}.class-detail__info-label{font-size:var(--font-size-sm);color:var(--color-text-secondary);margin:0 0 var(--spacing-xs) 0}.class-detail__info-value{font-size:var(--font-size-base);font-weight:var(--font-weight-medium);color:var(--color-text-primary);margin:0}.class-detail__user-groups{display:flex;flex-direction:column;gap:var(--spacing-lg)}.class-detail__user-group-header{display:flex;align-items:center;gap:var(--spacing-sm);font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:.05em;margin-bottom:var(--spacing-sm)}.class-detail__user-group-indicator{width:.5rem;height:.5rem}.class-detail__user-group-indicator--teacher{background-color:var(--color-success)}.class-detail__user-group-indicator--parent{background-color:var(--color-primary)}.class-detail__users-list{display:flex;flex-direction:column;gap:var(--spacing-sm)}.class-detail__user-item{display:flex;align-items:center;justify-content:space-between;padding:var(--spacing-md);background-color:var(--color-bg-tertiary);border:.0625rem solid var(--color-border-primary)}.class-detail__user-main{display:flex;align-items:center;gap:var(--spacing-md);flex:1;min-width:0}.class-detail__user-avatar{width:2.5rem;height:2.5rem;-o-object-fit:cover;object-fit:cover;flex-shrink:0;border-radius:50%}.class-detail__user-avatar-placeholder{width:2.5rem;height:2.5rem;display:flex;align-items:center;justify-content:center;background-color:var(--color-primary-light);flex-shrink:0;border-radius:50%}.class-detail__user-avatar-text{color:var(--color-primary);font-weight:var(--font-weight-semibold);font-size:var(--font-size-sm)}.class-detail__user-info{flex:1;min-width:0}.class-detail__user-name-row{display:flex;align-items:center;gap:var(--spacing-sm);flex-wrap:wrap}.class-detail__user-name{font-size:var(--font-size-base);font-weight:var(--font-weight-medium);color:var(--color-text-primary);margin:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.class-detail__user-badge{display:inline-flex;align-items:center;padding:.125rem var(--spacing-sm);font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);color:var(--color-text-inverse);flex-shrink:0}.class-detail__user-badge--teacher{background-color:var(--color-success)}.class-detail__user-badge--parent{background-color:var(--color-primary)}.class-detail__user-badge--owner{background-color:var(--color-warning)}.class-detail__user-email{font-size:var(--font-size-sm);color:var(--color-text-secondary);margin:var(--spacing-xs) 0 0 0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.class-detail__user-remove{display:flex;align-items:center;justify-content:center;margin-left:var(--spacing-md);padding:var(--spacing-sm);background:none;border:none;color:var(--color-text-secondary);cursor:pointer;transition:color var(--transition-fast),background-color var(--transition-fast);flex-shrink:0}.class-detail__user-remove:hover{color:var(--color-error);background-color:var(--color-error-light)}.class-detail__user-remove:disabled{opacity:.5;cursor:not-allowed}.class-detail__empty{text-align:center;padding:var(--spacing-2xl) var(--spacing-md);color:var(--color-text-secondary)}.class-detail__loading{display:flex;align-items:center;justify-content:center;padding:var(--spacing-2xl)}.class-detail__button{display:inline-flex;align-items:center;justify-content:center;gap:var(--spacing-sm);padding:var(--spacing-sm) var(--spacing-md);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);border:none;cursor:pointer;transition:background-color var(--transition-fast)}.class-detail__button--primary{background-color:var(--color-primary);color:var(--color-text-inverse)}.class-detail__button--primary:hover{background-color:var(--color-primary-hover)}.class-detail__button:focus-visible{outline:.125rem solid var(--color-border-focus);outline-offset:.125rem}.profile-page{min-height:100%}.profile-page__content{padding:var(--spacing-xl)}.profile-page__card{background-color:var(--color-bg-primary);border:.0625rem solid var(--color-border-primary);padding:var(--spacing-xl)}.profile-page__header{display:flex;align-items:center;gap:var(--spacing-lg);padding-bottom:var(--spacing-xl);margin-bottom:var(--spacing-xl);border-bottom:.0625rem solid var(--color-border-primary)}.profile-page__avatar{width:6rem;height:6rem;flex-shrink:0;-o-object-fit:cover;object-fit:cover;border-radius:50%}.profile-page__avatar-placeholder{display:flex;align-items:center;justify-content:center;width:6rem;height:6rem;background-color:var(--color-primary);flex-shrink:0;border-radius:50%}.profile-page__avatar-placeholder svg{width:2.5rem;height:2.5rem;color:var(--color-text-inverse)}.profile-page__header-info{flex:1;min-width:0}.profile-page__name{font-size:var(--font-size-2xl);font-weight:var(--font-weight-bold);color:var(--color-text-primary);margin:0 0 var(--spacing-xs) 0;line-height:var(--line-height-tight)}.profile-page__email{font-size:var(--font-size-sm);color:var(--color-text-secondary);margin:0}.profile-page__fields{display:flex;flex-direction:column;gap:var(--spacing-lg);margin-bottom:var(--spacing-xl)}.profile-page__field{display:flex;align-items:flex-start;gap:var(--spacing-md)}.profile-page__field-icon{display:flex;align-items:center;justify-content:center;width:2.5rem;height:2.5rem;background-color:var(--color-bg-tertiary);flex-shrink:0}.profile-page__field-icon svg{width:1.25rem;height:1.25rem;color:var(--color-primary)}.profile-page__field-content{flex:1;min-width:0}.profile-page__field-label{font-size:var(--font-size-xs);color:var(--color-text-tertiary);margin:0 0 .125rem;text-transform:uppercase;letter-spacing:.025em}.profile-page__field-value{font-size:var(--font-size-base);font-weight:var(--font-weight-medium);color:var(--color-text-primary);margin:0;word-break:break-all}.profile-page__actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:var(--spacing-md);padding-top:var(--spacing-xl);border-top:.0625rem solid var(--color-border-primary)}.profile-page__button{display:inline-flex;align-items:center;gap:var(--spacing-sm);padding:var(--spacing-sm) var(--spacing-lg);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);border:none;transition:background-color var(--transition-fast)}.profile-page__button:focus-visible{outline:.125rem solid var(--color-border-focus);outline-offset:.125rem}.profile-page__button--logout{background-color:var(--color-secondary);color:var(--color-text-inverse)}.profile-page__button--logout:hover{background-color:var(--color-secondary-hover)}.profile-page__button--delete{background-color:var(--color-error);color:var(--color-text-inverse)}.profile-page__button--delete:hover{background-color:#b91c1c}@media(max-width:768px){.profile-page__content,.profile-page__card{padding:var(--spacing-lg)}.profile-page__header{flex-direction:column;text-align:center;gap:var(--spacing-md)}.profile-page__avatar,.profile-page__avatar-placeholder{width:5rem;height:5rem}.profile-page__name{font-size:var(--font-size-xl)}.profile-page__actions{flex-direction:column}.profile-page__button{width:100%;justify-content:center}}.ai-config{padding:var(--spacing-lg);max-width:1200px}.ai-config__tabs{display:flex;gap:var(--spacing-xs);margin-bottom:var(--spacing-md);border-bottom:1px solid var(--color-border-primary, #E2E8F0);padding-bottom:var(--spacing-xs)}.ai-config__tab{display:flex;align-items:center;gap:var(--spacing-xs);padding:var(--spacing-sm) var(--spacing-md);border:none;background:transparent;color:var(--color-text-secondary);font-size:var(--font-size-sm);font-weight:500;cursor:pointer;border-radius:var(--spacing-xs) var(--spacing-xs) 0 0;transition:all var(--transition-fast)}.ai-config__tab:hover{color:var(--color-text-primary);background:var(--color-bg-secondary)}.ai-config__tab--active{color:var(--color-primary);border-bottom:2px solid var(--color-primary);margin-bottom:-1px}.ai-config__unsaved-dot{width:8px;height:8px;border-radius:50%;background:var(--color-warning, #f59e0b)}.ai-config__editor{margin-bottom:var(--spacing-md)}.ai-config__hint{font-size:var(--font-size-xs);color:var(--color-text-tertiary);margin-bottom:var(--spacing-sm)}.ai-config__textarea{width:100%;min-height:500px;padding:var(--spacing-md);background:var(--color-bg-secondary);color:var(--color-text-primary);border:2px solid var(--color-border-secondary, #CBD5E1);border-radius:var(--spacing-sm);font-family:JetBrains Mono,Fira Code,Consolas,monospace;font-size:var(--font-size-sm);line-height:1.6;resize:vertical;-moz-tab-size:2;-o-tab-size:2;tab-size:2}.ai-config__textarea:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 2px #2563eb33}.ai-config__textarea::-moz-placeholder{color:var(--color-text-tertiary)}.ai-config__textarea::placeholder{color:var(--color-text-tertiary)}.ai-config__actions{display:flex;justify-content:flex-end}.ai-config__save-btn{display:flex;align-items:center;gap:var(--spacing-xs)}.ai-config__save-btn:disabled{opacity:.5;cursor:not-allowed}
