*,:before,:after{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::backdrop{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }*,:before,:after{box-sizing:border-box;border-width:0;border-style:solid;border-color:#e5e7eb}:before,:after{--tw-content: ""}html,:host{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:Inter,sans-serif;font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent}body{margin:0;line-height:inherit}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;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-feature-settings:normal;font-variation-settings:normal;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dl,dd,h1,h2,h3,h4,h5,h6,hr,figure,p,pre{margin:0}fieldset{margin:0;padding:0}legend{padding:0}ol,ul,menu{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}button,[role=button]{cursor:pointer}:disabled{cursor:default}img,svg,video,canvas,audio,iframe,embed,object{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]:where(:not([hidden=until-found])){display:none}.visible{visibility:visible}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.inset-0{top:0;right:0;bottom:0;left:0}.inset-x-0{left:0;right:0}.-top-3{top:-.75rem}.bottom-1{bottom:.25rem}.bottom-6{bottom:1.5rem}.bottom-\[160px\]{bottom:160px}.left-0{left:0}.left-4{left:1rem}.left-6{left:1.5rem}.right-0{right:0}.right-2{right:.5rem}.right-3{right:.75rem}.right-4{right:1rem}.right-6{right:1.5rem}.top-0{top:0}.top-1\/2{top:50%}.top-6{top:1.5rem}.top-full{top:100%}.z-30{z-index:30}.z-40{z-index:40}.z-50{z-index:50}.mx-auto{margin-left:auto;margin-right:auto}.mb-1{margin-bottom:.25rem}.mb-1\.5{margin-bottom:.375rem}.mb-16{margin-bottom:4rem}.mb-2{margin-bottom:.5rem}.mb-2\.5{margin-bottom:.625rem}.mb-3{margin-bottom:.75rem}.mb-4{margin-bottom:1rem}.mb-5{margin-bottom:1.25rem}.mb-6{margin-bottom:1.5rem}.mb-8{margin-bottom:2rem}.ml-0\.5{margin-left:.125rem}.ml-1{margin-left:.25rem}.ml-2{margin-left:.5rem}.ml-auto{margin-left:auto}.mr-2{margin-right:.5rem}.mt-0\.5{margin-top:.125rem}.mt-1{margin-top:.25rem}.mt-1\.5{margin-top:.375rem}.mt-12{margin-top:3rem}.mt-16{margin-top:4rem}.mt-2{margin-top:.5rem}.mt-2\.5{margin-top:.625rem}.mt-3{margin-top:.75rem}.mt-4{margin-top:1rem}.mt-5{margin-top:1.25rem}.mt-6{margin-top:1.5rem}.mt-8{margin-top:2rem}.mt-auto{margin-top:auto}.line-clamp-2{overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2}.block{display:block}.inline-block{display:inline-block}.inline-flex{display:inline-flex}.table{display:table}.grid{display:grid}.hidden{display:none}.aspect-square{aspect-ratio:1 / 1}.h-1{height:.25rem}.h-1\.5{height:.375rem}.h-10{height:2.5rem}.h-14{height:3.5rem}.h-16{height:4rem}.h-2{height:.5rem}.h-2\.5{height:.625rem}.h-3{height:.75rem}.h-3\.5{height:.875rem}.h-4{height:1rem}.h-5{height:1.25rem}.h-6{height:1.5rem}.h-7{height:1.75rem}.h-8{height:2rem}.h-9{height:2.25rem}.h-\[3px\]{height:3px}.h-\[5px\]{height:5px}.h-full{height:100%}.h-px{height:1px}.max-h-\[320px\]{max-height:320px}.min-h-\[78px\]{min-height:78px}.w-1{width:.25rem}.w-1\.5{width:.375rem}.w-1\/3{width:33.333333%}.w-10{width:2.5rem}.w-12{width:3rem}.w-14{width:3.5rem}.w-16{width:4rem}.w-2{width:.5rem}.w-2\.5{width:.625rem}.w-28{width:7rem}.w-3{width:.75rem}.w-3\.5{width:.875rem}.w-4{width:1rem}.w-5{width:1.25rem}.w-6{width:1.5rem}.w-7{width:1.75rem}.w-8{width:2rem}.w-9{width:2.25rem}.w-\[300px\]{width:300px}.w-\[5px\]{width:5px}.w-auto{width:auto}.w-full{width:100%}.min-w-0{min-width:0px}.min-w-\[110px\]{min-width:110px}.min-w-\[180px\]{min-width:180px}.min-w-\[200px\]{min-width:200px}.min-w-\[220px\]{min-width:220px}.min-w-full{min-width:100%}.max-w-3xl{max-width:48rem}.max-w-\[110px\]{max-width:110px}.max-w-\[130px\]{max-width:130px}.max-w-\[160px\]{max-width:160px}.max-w-\[220px\]{max-width:220px}.max-w-md{max-width:28rem}.max-w-sm{max-width:24rem}.flex-1{flex:1 1 0%}.flex-none{flex:none}.flex-shrink-0,.shrink-0{flex-shrink:0}.grow{flex-grow:1}.-translate-y-1\/2{--tw-translate-y: -50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.rotate-180{--tw-rotate: 180deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}@keyframes pulse{50%{opacity:.5}}.animate-pulse{animation:pulse 2s cubic-bezier(.4,0,.6,1) infinite}.animate-spin{animation:spin 1s linear infinite}.cursor-pointer{cursor:pointer}.select-none{-webkit-user-select:none;-moz-user-select:none;user-select:none}.resize{resize:both}.list-inside{list-style-position:inside}.list-disc{list-style-type:disc}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid-cols-7{grid-template-columns:repeat(7,minmax(0,1fr))}.flex-row{flex-direction:row}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.place-items-center{place-items:center}.items-start{align-items:flex-start}.items-end{align-items:flex-end}.items-center{align-items:center}.items-baseline{align-items:baseline}.items-stretch{align-items:stretch}.justify-end{justify-content:flex-end}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-0\.5{gap:.125rem}.gap-1{gap:.25rem}.gap-1\.5{gap:.375rem}.gap-2{gap:.5rem}.gap-2\.5{gap:.625rem}.gap-3{gap:.75rem}.gap-4{gap:1rem}.gap-5{gap:1.25rem}.gap-6{gap:1.5rem}.gap-x-12{-moz-column-gap:3rem;column-gap:3rem}.gap-x-2{-moz-column-gap:.5rem;column-gap:.5rem}.gap-x-4{-moz-column-gap:1rem;column-gap:1rem}.gap-y-1{row-gap:.25rem}.gap-y-8{row-gap:2rem}.space-y-0\.5>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.125rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.125rem * var(--tw-space-y-reverse))}.space-y-1>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.25rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.25rem * var(--tw-space-y-reverse))}.space-y-1\.5>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.375rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.375rem * var(--tw-space-y-reverse))}.space-y-2>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.5rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.5rem * var(--tw-space-y-reverse))}.space-y-3>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.75rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.75rem * var(--tw-space-y-reverse))}.space-y-3\.5>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.875rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.875rem * var(--tw-space-y-reverse))}.space-y-4>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(1rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1rem * var(--tw-space-y-reverse))}.space-y-5>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(1.25rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1.25rem * var(--tw-space-y-reverse))}.space-y-6>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(1.5rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1.5rem * var(--tw-space-y-reverse))}.divide-y>:not([hidden])~:not([hidden]){--tw-divide-y-reverse: 0;border-top-width:calc(1px * calc(1 - var(--tw-divide-y-reverse)));border-bottom-width:calc(1px * var(--tw-divide-y-reverse))}.divide-gray-100>:not([hidden])~:not([hidden]){--tw-divide-opacity: 1;border-color:rgb(243 244 246 / var(--tw-divide-opacity, 1))}.divide-gray-200>:not([hidden])~:not([hidden]){--tw-divide-opacity: 1;border-color:rgb(229 231 235 / var(--tw-divide-opacity, 1))}.overflow-hidden{overflow:hidden}.overflow-x-auto{overflow-x:auto}.overflow-y-auto{overflow-y:auto}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.whitespace-nowrap{white-space:nowrap}.break-all{word-break:break-all}.rounded{border-radius:.25rem}.rounded-2xl{border-radius:1rem}.rounded-3xl{border-radius:1.5rem}.rounded-full{border-radius:9999px}.rounded-lg{border-radius:.5rem}.rounded-md{border-radius:.375rem}.rounded-xl{border-radius:.75rem}.rounded-b-2xl{border-bottom-right-radius:1rem;border-bottom-left-radius:1rem}.border{border-width:1px}.border-0{border-width:0px}.border-2{border-width:2px}.border-\[1\.8px\]{border-width:1.8px}.border-b{border-bottom-width:1px}.border-b-2{border-bottom-width:2px}.border-r{border-right-width:1px}.border-t{border-top-width:1px}.border-dashed{border-style:dashed}.border-none{border-style:none}.border-amber-200{--tw-border-opacity: 1;border-color:rgb(253 230 138 / var(--tw-border-opacity, 1))}.border-amber-300{--tw-border-opacity: 1;border-color:rgb(252 211 77 / var(--tw-border-opacity, 1))}.border-amber-500\/30{border-color:#f59e0b4d}.border-amber-500\/40{border-color:#f59e0b66}.border-amber-600\/20{border-color:#d9770633}.border-blue-100{--tw-border-opacity: 1;border-color:rgb(219 234 254 / var(--tw-border-opacity, 1))}.border-blue-200{--tw-border-opacity: 1;border-color:rgb(191 219 254 / var(--tw-border-opacity, 1))}.border-blue-300{--tw-border-opacity: 1;border-color:rgb(147 197 253 / var(--tw-border-opacity, 1))}.border-blue-500\/30{border-color:#3b82f64d}.border-blue-600{--tw-border-opacity: 1;border-color:rgb(37 99 235 / var(--tw-border-opacity, 1))}.border-emerald-200{--tw-border-opacity: 1;border-color:rgb(167 243 208 / var(--tw-border-opacity, 1))}.border-emerald-200\/50{border-color:#a7f3d080}.border-gray-100{--tw-border-opacity: 1;border-color:rgb(243 244 246 / var(--tw-border-opacity, 1))}.border-gray-200{--tw-border-opacity: 1;border-color:rgb(229 231 235 / var(--tw-border-opacity, 1))}.border-gray-200\/60{border-color:#e5e7eb99}.border-gray-200\/70{border-color:#e5e7ebb3}.border-gray-300{--tw-border-opacity: 1;border-color:rgb(209 213 219 / var(--tw-border-opacity, 1))}.border-gray-50{--tw-border-opacity: 1;border-color:rgb(249 250 251 / var(--tw-border-opacity, 1))}.border-green-200{--tw-border-opacity: 1;border-color:rgb(187 247 208 / var(--tw-border-opacity, 1))}.border-green-600{--tw-border-opacity: 1;border-color:rgb(22 163 74 / var(--tw-border-opacity, 1))}.border-indigo-100{--tw-border-opacity: 1;border-color:rgb(224 231 255 / var(--tw-border-opacity, 1))}.border-indigo-200{--tw-border-opacity: 1;border-color:rgb(199 210 254 / var(--tw-border-opacity, 1))}.border-red-100{--tw-border-opacity: 1;border-color:rgb(254 226 226 / var(--tw-border-opacity, 1))}.border-red-200{--tw-border-opacity: 1;border-color:rgb(254 202 202 / var(--tw-border-opacity, 1))}.border-red-500\/30{border-color:#ef44444d}.border-transparent{border-color:transparent}.border-white\/30{border-color:#ffffff4d}.border-t-indigo-600{--tw-border-opacity: 1;border-top-color:rgb(79 70 229 / var(--tw-border-opacity, 1))}.border-t-white{--tw-border-opacity: 1;border-top-color:rgb(255 255 255 / var(--tw-border-opacity, 1))}.bg-amber-100{--tw-bg-opacity: 1;background-color:rgb(254 243 199 / var(--tw-bg-opacity, 1))}.bg-amber-50{--tw-bg-opacity: 1;background-color:rgb(255 251 235 / var(--tw-bg-opacity, 1))}.bg-amber-50\/40{background-color:#fffbeb66}.bg-amber-50\/70{background-color:#fffbebb3}.bg-amber-500{--tw-bg-opacity: 1;background-color:rgb(245 158 11 / var(--tw-bg-opacity, 1))}.bg-amber-600{--tw-bg-opacity: 1;background-color:rgb(217 119 6 / var(--tw-bg-opacity, 1))}.bg-black\/60{background-color:#0009}.bg-blue-100{--tw-bg-opacity: 1;background-color:rgb(219 234 254 / var(--tw-bg-opacity, 1))}.bg-blue-50{--tw-bg-opacity: 1;background-color:rgb(239 246 255 / var(--tw-bg-opacity, 1))}.bg-blue-50\/30{background-color:#eff6ff4d}.bg-blue-50\/60{background-color:#eff6ff99}.bg-blue-500{--tw-bg-opacity: 1;background-color:rgb(59 130 246 / var(--tw-bg-opacity, 1))}.bg-blue-600{--tw-bg-opacity: 1;background-color:rgb(37 99 235 / var(--tw-bg-opacity, 1))}.bg-emerald-100{--tw-bg-opacity: 1;background-color:rgb(209 250 229 / var(--tw-bg-opacity, 1))}.bg-emerald-200{--tw-bg-opacity: 1;background-color:rgb(167 243 208 / var(--tw-bg-opacity, 1))}.bg-emerald-50{--tw-bg-opacity: 1;background-color:rgb(236 253 245 / var(--tw-bg-opacity, 1))}.bg-emerald-600{--tw-bg-opacity: 1;background-color:rgb(5 150 105 / var(--tw-bg-opacity, 1))}.bg-emerald-800\/50{background-color:#065f4680}.bg-gray-100{--tw-bg-opacity: 1;background-color:rgb(243 244 246 / var(--tw-bg-opacity, 1))}.bg-gray-200{--tw-bg-opacity: 1;background-color:rgb(229 231 235 / var(--tw-bg-opacity, 1))}.bg-gray-300{--tw-bg-opacity: 1;background-color:rgb(209 213 219 / var(--tw-bg-opacity, 1))}.bg-gray-400{--tw-bg-opacity: 1;background-color:rgb(156 163 175 / var(--tw-bg-opacity, 1))}.bg-gray-50{--tw-bg-opacity: 1;background-color:rgb(249 250 251 / var(--tw-bg-opacity, 1))}.bg-gray-50\/50{background-color:#f9fafb80}.bg-gray-50\/60{background-color:#f9fafb99}.bg-gray-900{--tw-bg-opacity: 1;background-color:rgb(17 24 39 / var(--tw-bg-opacity, 1))}.bg-green-100{--tw-bg-opacity: 1;background-color:rgb(220 252 231 / var(--tw-bg-opacity, 1))}.bg-green-50{--tw-bg-opacity: 1;background-color:rgb(240 253 244 / var(--tw-bg-opacity, 1))}.bg-green-50\/70{background-color:#f0fdf4b3}.bg-green-500{--tw-bg-opacity: 1;background-color:rgb(34 197 94 / var(--tw-bg-opacity, 1))}.bg-green-600{--tw-bg-opacity: 1;background-color:rgb(22 163 74 / var(--tw-bg-opacity, 1))}.bg-indigo-100{--tw-bg-opacity: 1;background-color:rgb(224 231 255 / var(--tw-bg-opacity, 1))}.bg-indigo-50{--tw-bg-opacity: 1;background-color:rgb(238 242 255 / var(--tw-bg-opacity, 1))}.bg-indigo-50\/50{background-color:#eef2ff80}.bg-indigo-500{--tw-bg-opacity: 1;background-color:rgb(99 102 241 / var(--tw-bg-opacity, 1))}.bg-indigo-600{--tw-bg-opacity: 1;background-color:rgb(79 70 229 / var(--tw-bg-opacity, 1))}.bg-orange-300{--tw-bg-opacity: 1;background-color:rgb(253 186 116 / var(--tw-bg-opacity, 1))}.bg-orange-50{--tw-bg-opacity: 1;background-color:rgb(255 247 237 / var(--tw-bg-opacity, 1))}.bg-orange-500{--tw-bg-opacity: 1;background-color:rgb(249 115 22 / var(--tw-bg-opacity, 1))}.bg-red-100{--tw-bg-opacity: 1;background-color:rgb(254 226 226 / var(--tw-bg-opacity, 1))}.bg-red-50{--tw-bg-opacity: 1;background-color:rgb(254 242 242 / var(--tw-bg-opacity, 1))}.bg-red-500{--tw-bg-opacity: 1;background-color:rgb(239 68 68 / var(--tw-bg-opacity, 1))}.bg-red-600{--tw-bg-opacity: 1;background-color:rgb(220 38 38 / var(--tw-bg-opacity, 1))}.bg-transparent{background-color:transparent}.bg-violet-100{--tw-bg-opacity: 1;background-color:rgb(237 233 254 / var(--tw-bg-opacity, 1))}.bg-violet-50{--tw-bg-opacity: 1;background-color:rgb(245 243 255 / var(--tw-bg-opacity, 1))}.bg-violet-500{--tw-bg-opacity: 1;background-color:rgb(139 92 246 / var(--tw-bg-opacity, 1))}.bg-white{--tw-bg-opacity: 1;background-color:rgb(255 255 255 / var(--tw-bg-opacity, 1))}.bg-white\/20{background-color:#fff3}.bg-white\/60{background-color:#fff9}.bg-white\/70{background-color:#ffffffb3}.bg-white\/80{background-color:#fffc}.bg-gradient-to-br{background-image:linear-gradient(to bottom right,var(--tw-gradient-stops))}.bg-gradient-to-r{background-image:linear-gradient(to right,var(--tw-gradient-stops))}.from-blue-600{--tw-gradient-from: #2563eb var(--tw-gradient-from-position);--tw-gradient-to: rgb(37 99 235 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-emerald-50{--tw-gradient-from: #ecfdf5 var(--tw-gradient-from-position);--tw-gradient-to: rgb(236 253 245 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-gray-900{--tw-gradient-from: #111827 var(--tw-gradient-from-position);--tw-gradient-to: rgb(17 24 39 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-indigo-500{--tw-gradient-from: #6366f1 var(--tw-gradient-from-position);--tw-gradient-to: rgb(99 102 241 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-indigo-600{--tw-gradient-from: #4f46e5 var(--tw-gradient-from-position);--tw-gradient-to: rgb(79 70 229 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.to-gray-600{--tw-gradient-to: #4b5563 var(--tw-gradient-to-position)}.to-purple-600{--tw-gradient-to: #9333ea var(--tw-gradient-to-position)}.to-rose-400{--tw-gradient-to: #fb7185 var(--tw-gradient-to-position)}.to-teal-50{--tw-gradient-to: #f0fdfa var(--tw-gradient-to-position)}.bg-clip-text{-webkit-background-clip:text;background-clip:text}.p-0{padding:0}.p-0\.5{padding:.125rem}.p-1{padding:.25rem}.p-1\.5{padding:.375rem}.p-12{padding:3rem}.p-2{padding:.5rem}.p-2\.5{padding:.625rem}.p-3{padding:.75rem}.p-3\.5{padding:.875rem}.p-4{padding:1rem}.p-5{padding:1.25rem}.p-6{padding:1.5rem}.p-8{padding:2rem}.px-0\.5{padding-left:.125rem;padding-right:.125rem}.px-1{padding-left:.25rem;padding-right:.25rem}.px-1\.5{padding-left:.375rem;padding-right:.375rem}.px-2{padding-left:.5rem;padding-right:.5rem}.px-2\.5{padding-left:.625rem;padding-right:.625rem}.px-3{padding-left:.75rem;padding-right:.75rem}.px-3\.5{padding-left:.875rem;padding-right:.875rem}.px-4{padding-left:1rem;padding-right:1rem}.px-5{padding-left:1.25rem;padding-right:1.25rem}.px-6{padding-left:1.5rem;padding-right:1.5rem}.py-0\.5{padding-top:.125rem;padding-bottom:.125rem}.py-1{padding-top:.25rem;padding-bottom:.25rem}.py-1\.5{padding-top:.375rem;padding-bottom:.375rem}.py-14{padding-top:3.5rem;padding-bottom:3.5rem}.py-2{padding-top:.5rem;padding-bottom:.5rem}.py-2\.5{padding-top:.625rem;padding-bottom:.625rem}.py-20{padding-top:5rem;padding-bottom:5rem}.py-3{padding-top:.75rem;padding-bottom:.75rem}.py-4{padding-top:1rem;padding-bottom:1rem}.py-5{padding-top:1.25rem;padding-bottom:1.25rem}.py-6{padding-top:1.5rem;padding-bottom:1.5rem}.py-px{padding-top:1px;padding-bottom:1px}.pb-2{padding-bottom:.5rem}.pb-3{padding-bottom:.75rem}.pb-5{padding-bottom:1.25rem}.pl-1{padding-left:.25rem}.pl-11{padding-left:2.75rem}.pl-2{padding-left:.5rem}.pl-\[42px\]{padding-left:42px}.pr-10{padding-right:2.5rem}.pr-2{padding-right:.5rem}.pr-3{padding-right:.75rem}.pr-4{padding-right:1rem}.pt-0\.5{padding-top:.125rem}.pt-1{padding-top:.25rem}.pt-2{padding-top:.5rem}.pt-3{padding-top:.75rem}.pt-4{padding-top:1rem}.pt-5{padding-top:1.25rem}.pt-6{padding-top:1.5rem}.pt-7{padding-top:1.75rem}.pt-8{padding-top:2rem}.text-left{text-align:left}.text-center{text-align:center}.align-top{vertical-align:top}.align-middle{vertical-align:middle}.align-\[1px\]{vertical-align:1px}.font-heading{font-family:Outfit,sans-serif}.font-sans{font-family:Inter,sans-serif}.text-2xl{font-size:1.5rem;line-height:2rem}.text-3xl{font-size:1.875rem;line-height:2.25rem}.text-4xl{font-size:2.25rem;line-height:2.5rem}.text-\[10px\]{font-size:10px}.text-\[11px\]{font-size:11px}.text-\[12px\]{font-size:12px}.text-\[13px\]{font-size:13px}.text-\[15px\]{font-size:15px}.text-base{font-size:1rem;line-height:1.5rem}.text-lg{font-size:1.125rem;line-height:1.75rem}.text-sm{font-size:.875rem;line-height:1.25rem}.text-xl{font-size:1.25rem;line-height:1.75rem}.text-xs{font-size:.75rem;line-height:1rem}.font-black{font-weight:900}.font-bold{font-weight:700}.font-extrabold{font-weight:800}.font-medium{font-weight:500}.font-normal{font-weight:400}.font-semibold{font-weight:600}.uppercase{text-transform:uppercase}.normal-case{text-transform:none}.not-italic{font-style:normal}.tabular-nums{--tw-numeric-spacing: tabular-nums;font-variant-numeric:var(--tw-ordinal) var(--tw-slashed-zero) var(--tw-numeric-figure) var(--tw-numeric-spacing) var(--tw-numeric-fraction)}.leading-4{line-height:1rem}.leading-none{line-height:1}.leading-relaxed{line-height:1.625}.leading-snug{line-height:1.375}.leading-tight{line-height:1.25}.tracking-normal{letter-spacing:0em}.tracking-tight{letter-spacing:-.025em}.tracking-wide{letter-spacing:.025em}.tracking-wider{letter-spacing:.05em}.tracking-widest{letter-spacing:.1em}.text-amber-500{--tw-text-opacity: 1;color:rgb(245 158 11 / var(--tw-text-opacity, 1))}.text-amber-600{--tw-text-opacity: 1;color:rgb(217 119 6 / var(--tw-text-opacity, 1))}.text-amber-700{--tw-text-opacity: 1;color:rgb(180 83 9 / var(--tw-text-opacity, 1))}.text-amber-800{--tw-text-opacity: 1;color:rgb(146 64 14 / var(--tw-text-opacity, 1))}.text-amber-800\/80{color:#92400ecc}.text-amber-900{--tw-text-opacity: 1;color:rgb(120 53 15 / var(--tw-text-opacity, 1))}.text-blue-600{--tw-text-opacity: 1;color:rgb(37 99 235 / var(--tw-text-opacity, 1))}.text-blue-700{--tw-text-opacity: 1;color:rgb(29 78 216 / var(--tw-text-opacity, 1))}.text-blue-800{--tw-text-opacity: 1;color:rgb(30 64 175 / var(--tw-text-opacity, 1))}.text-blue-900{--tw-text-opacity: 1;color:rgb(30 58 138 / var(--tw-text-opacity, 1))}.text-emerald-100{--tw-text-opacity: 1;color:rgb(209 250 229 / var(--tw-text-opacity, 1))}.text-emerald-600{--tw-text-opacity: 1;color:rgb(5 150 105 / var(--tw-text-opacity, 1))}.text-emerald-700{--tw-text-opacity: 1;color:rgb(4 120 87 / var(--tw-text-opacity, 1))}.text-emerald-800{--tw-text-opacity: 1;color:rgb(6 95 70 / var(--tw-text-opacity, 1))}.text-emerald-900{--tw-text-opacity: 1;color:rgb(6 78 59 / var(--tw-text-opacity, 1))}.text-gray-300{--tw-text-opacity: 1;color:rgb(209 213 219 / var(--tw-text-opacity, 1))}.text-gray-400{--tw-text-opacity: 1;color:rgb(156 163 175 / var(--tw-text-opacity, 1))}.text-gray-500{--tw-text-opacity: 1;color:rgb(107 114 128 / var(--tw-text-opacity, 1))}.text-gray-600{--tw-text-opacity: 1;color:rgb(75 85 99 / var(--tw-text-opacity, 1))}.text-gray-700{--tw-text-opacity: 1;color:rgb(55 65 81 / var(--tw-text-opacity, 1))}.text-gray-800{--tw-text-opacity: 1;color:rgb(31 41 55 / var(--tw-text-opacity, 1))}.text-gray-900{--tw-text-opacity: 1;color:rgb(17 24 39 / var(--tw-text-opacity, 1))}.text-green-600{--tw-text-opacity: 1;color:rgb(22 163 74 / var(--tw-text-opacity, 1))}.text-green-700{--tw-text-opacity: 1;color:rgb(21 128 61 / var(--tw-text-opacity, 1))}.text-green-800{--tw-text-opacity: 1;color:rgb(22 101 52 / var(--tw-text-opacity, 1))}.text-indigo-500{--tw-text-opacity: 1;color:rgb(99 102 241 / var(--tw-text-opacity, 1))}.text-indigo-600{--tw-text-opacity: 1;color:rgb(79 70 229 / var(--tw-text-opacity, 1))}.text-indigo-700{--tw-text-opacity: 1;color:rgb(67 56 202 / var(--tw-text-opacity, 1))}.text-indigo-700\/80{color:#4338cacc}.text-indigo-800\/80{color:#3730a3cc}.text-indigo-900{--tw-text-opacity: 1;color:rgb(49 46 129 / var(--tw-text-opacity, 1))}.text-neutral-400{--tw-text-opacity: 1;color:rgb(163 163 163 / var(--tw-text-opacity, 1))}.text-orange-400{--tw-text-opacity: 1;color:rgb(251 146 60 / var(--tw-text-opacity, 1))}.text-orange-500{--tw-text-opacity: 1;color:rgb(249 115 22 / var(--tw-text-opacity, 1))}.text-orange-600{--tw-text-opacity: 1;color:rgb(234 88 12 / var(--tw-text-opacity, 1))}.text-red-500{--tw-text-opacity: 1;color:rgb(239 68 68 / var(--tw-text-opacity, 1))}.text-red-600{--tw-text-opacity: 1;color:rgb(220 38 38 / var(--tw-text-opacity, 1))}.text-red-700{--tw-text-opacity: 1;color:rgb(185 28 28 / var(--tw-text-opacity, 1))}.text-red-800{--tw-text-opacity: 1;color:rgb(153 27 27 / var(--tw-text-opacity, 1))}.text-red-900{--tw-text-opacity: 1;color:rgb(127 29 29 / var(--tw-text-opacity, 1))}.text-transparent{color:transparent}.text-violet-700{--tw-text-opacity: 1;color:rgb(109 40 217 / var(--tw-text-opacity, 1))}.text-white{--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity, 1))}.underline{text-decoration-line:underline}.line-through{text-decoration-line:line-through}.no-underline{text-decoration-line:none}.opacity-0{opacity:0}.opacity-40{opacity:.4}.opacity-50{opacity:.5}.opacity-60{opacity:.6}.opacity-70{opacity:.7}.shadow-2xl{--tw-shadow: 0 25px 50px -12px rgb(0 0 0 / .25);--tw-shadow-colored: 0 25px 50px -12px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-\[0_4px_12px_rgba\(79\,70\,229\,0\.4\)\]{--tw-shadow: 0 4px 12px rgba(79,70,229,.4);--tw-shadow-colored: 0 4px 12px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-inner{--tw-shadow: inset 0 2px 4px 0 rgb(0 0 0 / .05);--tw-shadow-colored: inset 0 2px 4px 0 var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-lg{--tw-shadow: 0 10px 15px -3px rgb(0 0 0 / .1), 0 4px 6px -4px rgb(0 0 0 / .1);--tw-shadow-colored: 0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-md{--tw-shadow: 0 4px 6px -1px rgb(0 0 0 / .1), 0 2px 4px -2px rgb(0 0 0 / .1);--tw-shadow-colored: 0 4px 6px -1px var(--tw-shadow-color), 0 2px 4px -2px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-sm{--tw-shadow: 0 1px 2px 0 rgb(0 0 0 / .05);--tw-shadow-colored: 0 1px 2px 0 var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-xl{--tw-shadow: 0 20px 25px -5px rgb(0 0 0 / .1), 0 8px 10px -6px rgb(0 0 0 / .1);--tw-shadow-colored: 0 20px 25px -5px var(--tw-shadow-color), 0 8px 10px -6px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-blue-500\/30{--tw-shadow-color: rgb(59 130 246 / .3);--tw-shadow: var(--tw-shadow-colored)}.shadow-emerald-600\/30{--tw-shadow-color: rgb(5 150 105 / .3);--tw-shadow: var(--tw-shadow-colored)}.shadow-indigo-500\/30{--tw-shadow-color: rgb(99 102 241 / .3);--tw-shadow: var(--tw-shadow-colored)}.outline-none{outline:2px solid transparent;outline-offset:2px}.outline{outline-style:solid}.ring-1{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.ring-2{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.ring-inset{--tw-ring-inset: inset}.ring-amber-300{--tw-ring-opacity: 1;--tw-ring-color: rgb(252 211 77 / var(--tw-ring-opacity, 1))}.ring-amber-600\/20{--tw-ring-color: rgb(217 119 6 / .2)}.ring-blue-600{--tw-ring-opacity: 1;--tw-ring-color: rgb(37 99 235 / var(--tw-ring-opacity, 1))}.ring-blue-600\/20{--tw-ring-color: rgb(37 99 235 / .2)}.ring-gray-300{--tw-ring-opacity: 1;--tw-ring-color: rgb(209 213 219 / var(--tw-ring-opacity, 1))}.ring-gray-500\/20{--tw-ring-color: rgb(107 114 128 / .2)}.ring-green-500{--tw-ring-opacity: 1;--tw-ring-color: rgb(34 197 94 / var(--tw-ring-opacity, 1))}.ring-green-600\/20{--tw-ring-color: rgb(22 163 74 / .2)}.ring-red-600\/20{--tw-ring-color: rgb(220 38 38 / .2)}.ring-violet-600\/20{--tw-ring-color: rgb(124 58 237 / .2)}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.backdrop-blur{--tw-backdrop-blur: blur(8px);-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.backdrop-blur-md{--tw-backdrop-blur: blur(12px);-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.backdrop-blur-sm{--tw-backdrop-blur: blur(4px);-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.backdrop-blur-xl{--tw-backdrop-blur: blur(24px);-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.transition-all{transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-colors{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-opacity{transition-property:opacity;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-shadow{transition-property:box-shadow;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-transform{transition-property:transform;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.duration-200{transition-duration:.2s}.duration-300{transition-duration:.3s}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}:root{--primary: #4f46e5;--primary-dark: #4338ca;--primary-light: #eef2ff;--success: #16a34a;--success-light: #dcfce7;--warning: #d97706;--warning-light: #fef3c7;--danger: #dc2626;--danger-light: #fee2e2;--grey: #6b7280;--grey-light: #f3f4f6;--border: #e5e7eb;--text: #111827;--text-muted: #6b7280;--bg: #f9fafb;--white: #ffffff;--sidebar-w: 240px;--radius: 8px;--shadow: 0 1px 3px rgba(0,0,0,.1), 0 1px 2px rgba(0,0,0,.06);--shadow-md: 0 4px 6px -1px rgba(0,0,0,.1), 0 2px 4px -1px rgba(0,0,0,.06)}html.dark{--primary: #818cf8;--primary-dark: #6366f1;--primary-light: #1b1b1e;--success: #4ade80;--success-light: #052e16;--warning: #fbbf24;--warning-light: #451a03;--danger: #f87171;--danger-light: #450a0a;--grey: #a1a1aa;--grey-light: #1c1c1c;--border: #2a2a2a;--text: #ededed;--text-muted: #a1a1aa;--bg: #0a0a0a;--white: #161616;--shadow: 0 1px 3px rgba(0,0,0,.6), 0 1px 2px rgba(0,0,0,.5);--shadow-md: 0 10px 20px rgba(0,0,0,.5)}body{font-family:Inter,sans-serif;background:var(--bg);color:var(--text);font-size:14px;line-height:1.5}h1,h2,h3,h4,h5,h6,.page-title{font-family:Outfit,sans-serif}.app-layout{display:flex;min-height:100vh;position:relative}.sidebar{width:var(--sidebar-w);background:var(--white);border-right:1px solid var(--border);display:flex;flex-direction:column;position:fixed;top:0;left:0;height:100vh;z-index:100;box-shadow:4px 0 24px -20px #0f172a73;transition:transform .3s cubic-bezier(.4,0,.2,1)}.main-content{margin-left:var(--sidebar-w);flex:1;min-width:0;padding:24px;min-height:100vh;transition:margin-left .3s}.app-layout.sidebar-collapsed .sidebar{transform:translate(-100%)}.app-layout.sidebar-collapsed .main-content{margin-left:0}.sidebar-toggle{position:fixed;top:18px;left:calc(var(--sidebar-w) - 13px);z-index:110;display:flex;align-items:center;justify-content:center;width:26px;height:26px;padding:0;border:1px solid var(--border);border-radius:999px;background:var(--white);color:var(--text-muted);box-shadow:0 2px 8px #0f172a1f;cursor:pointer;transition:left .3s cubic-bezier(.4,0,.2,1),color .15s,border-color .15s,transform .15s}.sidebar-toggle:hover{color:var(--primary);border-color:var(--primary);transform:scale(1.08)}.sidebar-toggle svg{width:14px;height:14px}.app-layout.sidebar-collapsed .sidebar-toggle{left:12px}@media (max-width: 768px){.sidebar-toggle{display:none}}.mobile-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0f172a99;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:90;opacity:0;pointer-events:none;transition:opacity .3s ease}.mobile-overlay.open{opacity:1;pointer-events:auto}@media (max-width: 768px){.sidebar{transform:translate(-100%)}.sidebar.open{transform:translate(0)}.main-content{margin-left:0;padding:80px 16px 16px;width:100%}}.sidebar-brand{display:flex;flex-direction:column;gap:1px;padding:18px 18px 16px;border-bottom:1px solid var(--border)}.sidebar-brand h1{display:inline-flex;align-items:center;gap:10px;font-size:19px;font-weight:800;letter-spacing:-.02em;color:var(--text)}.sidebar-brand h1:before{content:"";width:27px;height:27px;border-radius:8px;background:linear-gradient(135deg,var(--primary) 0%,#ff6b6b 100%);box-shadow:0 5px 12px -4px #4f46e5b3;flex-shrink:0}.sidebar-brand span{font-size:11px;color:var(--text-muted);padding-left:37px}.sidebar-nav{flex:1;padding:14px 10px;overflow-y:auto;scrollbar-width:thin;scrollbar-color:var(--border) transparent}.sidebar-nav::-webkit-scrollbar{width:8px}.sidebar-nav::-webkit-scrollbar-thumb{background:var(--border);border-radius:8px;border:2px solid var(--white)}.sidebar-nav::-webkit-scrollbar-thumb:hover{background:var(--grey)}.nav-section{margin-bottom:18px}.nav-section-title{font-size:10px;font-weight:700;color:var(--text-muted);text-transform:uppercase;letter-spacing:.07em;padding:0 10px;margin-bottom:6px}.nav-link{position:relative;display:flex;align-items:center;gap:10px;padding:9px 12px;border-radius:9px;color:var(--text-muted);text-decoration:none;font-size:13px;font-weight:550;transition:background .15s ease,color .15s ease;cursor:pointer;border:none;background:none;width:100%;text-align:left}.nav-link:hover{background:var(--grey-light);color:var(--text)}.nav-link:hover .icon{transform:scale(1.1)}.nav-link.active{background:var(--primary-light);color:var(--primary);font-weight:650}.nav-link.active:before{content:"";position:absolute;left:3px;top:50%;transform:translateY(-50%);width:3px;height:18px;border-radius:0 3px 3px 0;background:var(--primary)}.nav-link .icon{width:18px;text-align:center;font-size:15px;transition:transform .15s ease}.nav-submenu{display:grid;gap:3px;margin:4px 0 8px 30px;padding-left:10px;border-left:1.5px solid var(--border)}.nav-sublink{display:grid;grid-template-columns:44px minmax(0,1fr);gap:8px;align-items:center;padding:6px 9px;border-radius:8px;color:var(--text-muted);text-decoration:none;font-size:12px;transition:background .15s ease,color .15s ease}.nav-sublink span{font-size:9.5px;font-weight:800;letter-spacing:.02em;color:var(--primary);text-align:center;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.nav-sublink b{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:600}.nav-sublink:hover{background:var(--grey-light);color:var(--text)}.nav-sublink.active{background:var(--primary-light);color:var(--primary)}.nav-sublink.active b{font-weight:700}.nav-module-group{display:grid;gap:2px}.nav-module-group+.nav-module-group{margin-top:6px}.nav-group-header{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted);padding:6px 8px 2px;margin:0}.nav-group-header--warn{color:var(--warning)}.sidebar-footer{padding:12px 10px;border-top:1px solid var(--border)}.user-info{display:flex;align-items:center;gap:10px;padding:8px 10px;border-radius:10px;background:var(--grey-light);margin-bottom:4px}.user-avatar{width:34px;height:34px;border-radius:50%;background:linear-gradient(135deg,var(--primary) 0%,#ff6b6b 100%);color:#fff;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:14px;flex-shrink:0;box-shadow:0 3px 8px -2px #4f46e58c}.user-name{font-size:13px;font-weight:650;color:var(--text)}.user-role{font-size:11px;color:var(--text-muted)}.page-header{margin-bottom:24px;display:flex;align-items:flex-start;justify-content:space-between;gap:16px}.page-title{font-size:22px;font-weight:700}.page-subtitle{color:var(--text-muted);font-size:13px;margin-top:2px}.academic-year-shell{display:flex;align-items:center;justify-content:space-between;gap:20px;flex-wrap:wrap;margin-bottom:24px;padding:18px 22px;border:1px solid var(--border);border-radius:var(--radius);background:linear-gradient(120deg,var(--primary-light) 0%,var(--white) 55%);box-shadow:var(--shadow);position:relative;overflow:hidden}.academic-year-shell:before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;background:var(--primary)}.academic-year-info{display:flex;flex-direction:column;gap:2px;min-width:0}.academic-year-kicker{font-size:12px;font-weight:700;letter-spacing:.03em;text-transform:uppercase;color:var(--primary-dark)}.academic-year-value{font-size:26px;font-weight:800;line-height:1.1;color:var(--text);font-variant-numeric:tabular-nums}.academic-year-sub{margin:2px 0 0;font-size:13px;color:var(--text-muted)}.academic-year-controls{display:flex;align-items:flex-end;gap:16px;flex-wrap:wrap}.academic-year-field{display:flex;flex-direction:column;gap:4px}.academic-year-field>span{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.03em;color:var(--text-muted)}.academic-year-field .form-control{min-width:130px;background:var(--white)}.archive-toggle{display:inline-flex;align-items:center;gap:7px;font-size:13px;color:var(--text);cursor:pointer;padding:8px 12px;border:1px solid var(--border);border-radius:6px;background:var(--white);white-space:nowrap}.archive-toggle input{cursor:pointer}html.dark .academic-year-shell{background:linear-gradient(120deg,rgba(79,70,229,.16) 0%,var(--white) 55%)}@media (max-width: 760px){.academic-year-shell{align-items:flex-start}.academic-year-controls{width:100%;justify-content:space-between}}.card{background:var(--white);border:1px solid var(--border);border-radius:var(--radius);padding:20px;box-shadow:var(--shadow)}.card-title{font-size:15px;font-weight:600;margin-bottom:16px;display:flex;align-items:center;gap:8px}.cards-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:16px;margin-bottom:24px}.stat-card{background:var(--white);border:1px solid var(--border);border-radius:var(--radius);padding:16px;box-shadow:var(--shadow)}.stat-value{font-size:28px;font-weight:700;color:var(--primary)}.stat-label{font-size:12px;color:var(--text-muted);margin-top:2px}.dashboard-insights{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:24px}.insight-card{padding:16px;border:1px solid var(--border);border-radius:var(--radius);background:var(--white);box-shadow:var(--shadow)}.insight-card span{display:block;color:var(--text-muted);font-size:11px;font-weight:850;text-transform:uppercase;margin-bottom:5px}.insight-card strong{display:block;color:var(--primary);font-size:30px;line-height:1;font-weight:900}.insight-card strong.pass{color:var(--success)}.insight-card strong.fail{color:var(--danger)}.insight-card p{margin-top:7px;color:var(--text-muted);font-size:12px}.insight-main{border-color:color-mix(in srgb,var(--primary) 38%,var(--border));background:color-mix(in srgb,var(--primary) 8%,var(--white))}.mini-bar{height:8px;margin-top:11px;border-radius:999px;background:var(--border);overflow:hidden}.mini-bar i{display:block;height:100%;border-radius:inherit;background:var(--primary)}.load-bars{display:flex;flex-direction:column;gap:7px;margin-top:2px}.load-bars div{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;align-items:center}.load-bars small{color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.load-bars b{color:var(--text-muted);font-size:12px}.load-bars i{grid-column:1 / -1;height:6px;border-radius:999px;background:var(--border);overflow:hidden}.load-bars em{display:block;height:100%;border-radius:inherit;background:var(--primary)}.btn{display:inline-flex;align-items:center;gap:6px;padding:8px 16px;border-radius:6px;border:1px solid transparent;font-size:13px;font-weight:500;cursor:pointer;transition:all .15s;text-decoration:none;white-space:nowrap}.btn:disabled{opacity:.6;cursor:not-allowed}.btn-primary{background:var(--primary);color:#fff;border-color:var(--primary)}.btn-primary:hover:not(:disabled){background:var(--primary-dark)}.btn-secondary{background:var(--white);color:var(--text);border-color:var(--border)}.btn-secondary:hover:not(:disabled){background:var(--grey-light)}.btn-danger{background:var(--white);color:var(--danger);border-color:var(--danger)}.btn-danger:hover:not(:disabled){background:var(--danger-light)}.btn-success{background:var(--success);color:#fff;border-color:var(--success)}.btn-sm{padding:5px 10px;font-size:12px}.btn-group{display:flex;gap:8px;flex-wrap:wrap}.form-group{margin-bottom:16px}.form-label{display:block;font-size:13px;font-weight:500;margin-bottom:6px}.form-control{width:100%;padding:8px 12px;border:1px solid var(--border);border-radius:6px;font-size:14px;font-family:inherit;transition:border-color .15s;background:var(--white);color:var(--text)}.form-control:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px #4f46e51a}.form-control:disabled{background:var(--grey-light);color:var(--text-muted)}select.form-control{cursor:pointer}textarea.form-control{resize:vertical;min-height:80px}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:16px}.form-hint{font-size:11px;color:var(--text-muted);margin-top:4px}.form-error{font-size:11px;color:var(--danger);margin-top:4px}.tw-datepicker{position:relative;-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="%236b7280" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><rect x="3" y="4" width="18" height="18" rx="2" ry="2"></rect><line x1="16" y1="2" x2="16" y2="6"></line><line x1="8" y1="2" x2="8" y2="6"></line><line x1="3" y1="10" x2="21" y2="10"></line></svg>');background-repeat:no-repeat;background-position:right 12px center;padding-right:36px;cursor:pointer}.tw-datepicker::-webkit-calendar-picker-indicator{position:absolute;top:0;left:0;right:0;bottom:0;width:auto;height:auto;opacity:0;cursor:pointer}.danger-zone{display:grid;grid-template-columns:minmax(0,1fr) minmax(240px,340px);gap:16px;align-items:start;margin-top:28px;padding:16px;border:1px solid color-mix(in srgb,var(--danger) 45%,var(--border));border-radius:var(--radius);background:color-mix(in srgb,var(--danger) 7%,var(--white))}.danger-zone h3{margin:0 0 6px;color:var(--danger);font-size:15px}.danger-zone p{color:var(--text-muted);font-size:13px}.danger-zone__confirm{display:grid;gap:8px}.danger-zone__confirm .btn{justify-content:center}.table-wrapper{overflow-x:auto;border-radius:var(--radius);border:1px solid var(--border)}table{width:100%;border-collapse:collapse;background:var(--white)}th{background:var(--grey-light);padding:10px 14px;text-align:left;font-size:12px;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em;border-bottom:1px solid var(--border);white-space:nowrap}td{padding:10px 14px;border-bottom:1px solid var(--border);font-size:13px;vertical-align:middle}tr:last-child td{border-bottom:none}tr:hover td{background:var(--grey-light)}.badge{display:inline-flex;align-items:center;gap:4px;padding:2px 8px;border-radius:999px;font-size:11px;font-weight:600}.badge-green{background:var(--success-light);color:var(--success)}.badge-yellow{background:var(--warning-light);color:var(--warning)}.badge-red{background:var(--danger-light);color:var(--danger)}.badge-grey{background:var(--grey-light);color:var(--grey)}.badge-blue{background:var(--primary-light);color:var(--primary)}.period-chip{border:1px solid transparent;min-width:36px;justify-content:center}.period-first{background:#dbeafe;color:#1d4ed8;border-color:#93c5fd}.period-second{background:#dcfce7;color:#166534;border-color:#86efac}.period-third{background:#fef3c7;color:#92400e;border-color:#fcd34d}.period-other{background:var(--grey-light);color:var(--grey);border-color:var(--border)}html.dark .period-first{background:#4f46e540;color:#bfdbfe;border-color:#93c5fd73}html.dark .period-second{background:#16653452;color:#bbf7d0;border-color:#86efac6b}html.dark .period-third{background:#92400e59;color:#fde68a;border-color:#fcd34d70}.traffic-dot{width:10px;height:10px;border-radius:50%;display:inline-block}.traffic-GREEN{background:var(--success)}.traffic-YELLOW{background:var(--warning)}.traffic-RED{background:var(--danger)}.traffic-GREY{background:#d1d5db}.progress-bar{height:8px;background:var(--border);border-radius:4px;overflow:hidden}.progress-fill{height:100%;border-radius:4px;transition:width .3s}.progress-fill.green{background:var(--success)}.progress-fill.yellow{background:var(--warning)}.progress-fill.red{background:var(--danger)}.progress-fill.grey{background:#d1d5db}.auth-wrapper{min-height:100vh;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#eef2ff,#f0fdf4);padding:24px}html.dark .auth-wrapper{background:linear-gradient(135deg,#000,#141414)}.auth-card{background:var(--white);border-radius:12px;padding:36px;width:100%;max-width:420px;box-shadow:var(--shadow-md);border:1px solid var(--border)}.auth-logo{text-align:center;margin-bottom:24px}.auth-logo h1{font-size:24px;font-weight:700;color:var(--primary)}.auth-logo p{color:var(--text-muted);font-size:13px;margin-top:4px}.auth-footer{text-align:center;margin-top:16px;font-size:13px;color:var(--text-muted)}.auth-footer a{color:var(--primary);text-decoration:none;font-weight:500}.alert{padding:12px 16px;border-radius:6px;font-size:13px;margin-bottom:16px;border:1px solid}.alert-error{background:var(--danger-light);color:#7f1d1d;border-color:#fca5a5}.alert-success{background:var(--success-light);color:#14532d;border-color:#86efac}.alert-warning{background:var(--warning-light);color:#78350f;border-color:#fcd34d}.alert-info{background:var(--primary-light);color:#1e3a8a;border-color:#93c5fd}.tabs{display:flex;gap:2px;border-bottom:2px solid var(--border);margin-bottom:20px;overflow-x:auto;scrollbar-width:thin}.tab{flex:0 0 auto;padding:8px 16px;font-size:13px;font-weight:500;color:var(--text-muted);cursor:pointer;border:none;background:none;border-bottom:2px solid transparent;margin-bottom:-2px;transition:all .15s;white-space:nowrap}.tab:hover{color:var(--text)}.tab.active{color:var(--primary);border-bottom-color:var(--primary)}.weight-indicator{display:flex;align-items:center;gap:8px;padding:8px 12px;border-radius:6px;font-size:13px}.weight-ok{background:var(--success-light);color:var(--success)}.weight-warn{background:var(--warning-light);color:var(--warning)}.weight-error{background:var(--danger-light);color:var(--danger)}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0006;display:flex;align-items:center;justify-content:center;z-index:1000;padding:24px}.modal{background:var(--white);border-radius:10px;width:100%;max-width:480px;box-shadow:var(--shadow-md)}.modal-wide{max-width:960px}.modal-header{padding:16px 20px;border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between}.modal-title{font-size:16px;font-weight:600}.modal-close{background:none;border:none;font-size:20px;cursor:pointer;color:var(--text-muted);line-height:1}.modal-body{padding:20px}.modal-footer{padding:12px 20px;border-top:1px solid var(--border);display:flex;justify-content:flex-end;gap:8px}.empty-state{text-align:center;padding:48px 24px;color:var(--text-muted)}.empty-state .icon{font-size:40px;margin-bottom:12px}.empty-state p{font-size:14px}.divider{border:none;border-top:1px solid var(--border);margin:20px 0}.text-muted{color:var(--text-muted)}.text-sm{font-size:12px}.text-right{text-align:right}.flex{display:flex}.flex-between{display:flex;align-items:center;justify-content:space-between}.gap-8{gap:8px}.gap-12{gap:12px}.mt-8{margin-top:8px}.mt-16{margin-top:16px}.mb-16{margin-bottom:16px}.spinner{width:32px;height:32px;border:3px solid var(--border);border-top-color:var(--primary);border-radius:50%;animation:spin .7s linear infinite;margin:40px auto}@keyframes spin{to{transform:rotate(360deg)}}.btn-spinner{display:inline-block;width:13px;height:13px;margin-right:7px;vertical-align:-1px;border:2px solid currentColor;border-top-color:transparent;border-radius:50%;animation:spin .6s linear infinite}.loading-wrap{display:flex;align-items:center;justify-content:center;min-height:200px}.grades-table td{height:64px}.grades-table{max-height:calc(100vh - 230px);min-height:260px;overflow:auto;overscroll-behavior:contain}.grades-table thead th{position:sticky;top:0;z-index:3;background:var(--grey-light);box-shadow:0 1px 0 0 var(--border)}.grades-table table{border-collapse:separate;border-spacing:0}.grades-table th,.grades-table td{border-bottom:1px solid var(--border)}.grades-table tr:last-child td{border-bottom:none}.grades-sticky-col{position:sticky;left:0;z-index:2;background:var(--white);box-shadow:1px 0 0 0 var(--border),6px 0 12px -10px #0f172a59}.grades-table thead th.grades-sticky-col{z-index:4;background:var(--grey-light);box-shadow:1px 0 0 0 var(--border),0 1px 0 0 var(--border),6px 0 12px -10px #0f172a59}.grades-table tr:hover td.grades-sticky-col{background:var(--grey-light)}.grade-input{width:72px;min-height:34px;padding:6px 10px;border:1px solid var(--border);border-radius:6px;text-align:center;font-size:14px;font-weight:700;font-variant-numeric:tabular-nums;background:var(--white);color:var(--text);transition:border-color .15s,box-shadow .15s,background-color .15s,color .15s}.grade-input::-moz-placeholder{color:var(--text-muted);opacity:.75}.grade-input::placeholder{color:var(--text-muted);opacity:.75}.grade-input:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px #4f46e524}.grade-input-empty{background:var(--white);color:var(--text-muted);border-color:var(--border)}.grade-input-pass{background:#ecfdf5;color:#047857;border-color:#bbf7d0}.grade-input-near{background:#fffbeb;color:#b45309;border-color:#fde68a}.grade-input-fail{background:#fef2f2;color:#dc2626;border-color:#fecaca}.grade-input-pending{border-color:var(--primary);box-shadow:0 0 0 2px #4f46e52e}.grade-unsync-btn{flex:none;width:16px;height:16px;line-height:14px;padding:0;border:1px solid transparent;border-radius:4px;background:transparent;color:var(--text-muted);font-size:13px;font-weight:700;cursor:pointer;opacity:.5;transition:opacity .15s,background-color .15s,color .15s}.grade-unsync-btn:hover{opacity:1;background:#fef2f2;color:#dc2626;border-color:#fecaca}html.dark .grade-unsync-btn:hover{background:#dc262626;border-color:#dc262666;color:#f87171}.grade-moodle{display:flex;flex-direction:column;align-items:center;gap:2px;margin-top:3px}.grade-sync-toggle{padding:1px 7px;border-radius:999px;border:1px solid var(--border);font-size:10px;font-weight:700;line-height:1.4;cursor:pointer;background:var(--white);color:var(--text-muted);transition:background-color .15s,color .15s,border-color .15s}.grade-sync-toggle.on{background:#eef2ff;border-color:#bfdbfe;color:#1d4ed8}.grade-sync-toggle.off{background:var(--grey-light);border-color:var(--border);color:var(--text-muted)}.grade-sync-counts{display:inline-flex;gap:5px;font-size:9.5px;font-weight:700;font-variant-numeric:tabular-nums}.grade-sync-counts .ok{color:#047857}.grade-sync-counts .pend{color:#b45309}.grade-sync-counts .fail{color:#dc2626}html.dark .grade-sync-toggle.on{background:#4f46e52e;border-color:#4f46e580;color:#93c5fd}html.dark .grade-sync-toggle.off{background:#0d0d0d;border-color:#2a2a2a}html.dark .grade-sync-counts .ok{color:#34d399}html.dark .grade-sync-counts .pend{color:#fbbf24}html.dark .grade-sync-counts .fail{color:#f87171}html.dark .grade-input{background:#0d0d0d;border-color:#2a2a2a;color:#e5e7eb}html.dark .grade-input-empty{background:#0f172ab8;color:#94a3b8;border-color:#2a2a2a}html.dark .grade-input-pass{background:#16653461;color:#86efac;border-color:#4ade806b}html.dark .grade-input-near{background:#92400e5c;color:#fcd34d;border-color:#fbbf2470}html.dark .grade-input-fail{background:#7f1d1d6b;color:#fca5a5;border-color:#f8717175}html.dark .grade-input-pending{border-color:#60a5fa;box-shadow:0 0 0 2px #60a5fa3d}html.dark .grade-input:focus{border-color:#93c5fd;box-shadow:0 0 0 3px #60a5fa33}.rubric-toolbar{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:12px}.rubric-title{margin:0;color:var(--text);font-size:22px;line-height:1.15;font-weight:850;letter-spacing:0}.rubric-info-line{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}.rubric-summary-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px;margin-bottom:12px}.rubric-summary-card{padding:12px;border:1px solid var(--ra-color);border-radius:var(--radius);background:var(--ra-color);box-shadow:var(--shadow)}.rubric-summary-card div{display:flex;justify-content:space-between;gap:8px;align-items:center}.rubric-summary-card strong{color:#fff;font-size:14px}.rubric-summary-card span{color:#ffffffdb;font-size:11px;font-weight:700;white-space:nowrap}.rubric-summary-card b{display:block;margin-top:6px;color:#fff;font-size:24px;line-height:1;font-variant-numeric:tabular-nums}.rubric-summary-card p{margin-top:5px;color:#ffffffd1;font-size:11px}.rubric-controls{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:10px}.rubric-controls .form-control{max-width:280px}.rubric-legend{display:flex;gap:8px;align-items:center;flex-wrap:wrap;justify-content:flex-end;font-size:12px}.rubric-legend span{padding:2px 8px;border-radius:4px;border:1px solid transparent;font-weight:700}.rubric-legend-pass{background:#dcfce7;color:#166534;border-color:#bbf7d0}.rubric-legend-near{background:#fef3c7;color:#92400e;border-color:#fde68a}.rubric-legend-fail{background:#fee2e2;color:#991b1b;border-color:#fecaca}.rubric-legend-none{background:#f9fafb;color:#6b7280;border-color:#e5e7eb}.rubric-table-wrap{overflow:auto;border-radius:var(--radius);border:1px solid var(--border);max-height:68vh;background:var(--white)}.rubric-table{border-collapse:separate;border-spacing:0;min-width:100%;background:var(--white)}.rubric-table th,.rubric-table td{border-right:1px solid var(--border);border-bottom:1px solid var(--border)}.rubric-table th{position:sticky;top:0;z-index:3;padding:6px 8px;text-align:center;font-size:11px;font-weight:800;white-space:nowrap}.rubric-table thead tr:nth-child(2) th{top:33px}.rubric-ra-head{background:var(--ra-color, #4f46e5);color:#fff}.rubric-ce-head{background:#eef2ff;color:#3730a3;max-width:84px}.rubric-ra-grade-head{background:var(--ra-color, #4f46e5);color:#fff}.rubric-final-head{background:#dcfce7;color:#14532d}.rubric-ra-toggle{width:100%;border:none;background:transparent;color:inherit;font:inherit;font-weight:850;cursor:pointer;padding:0;white-space:nowrap}.rubric-ra-toggle:hover{text-decoration:underline}.rubric-sticky-col{position:sticky;left:0;z-index:4;min-width:190px;max-width:260px;color:var(--text);background:var(--white);box-shadow:1px 0 0 var(--border)}.rubric-sticky-head{z-index:6;text-align:left}.rubric-student-name{padding:7px 10px;font-size:12px;font-weight:800;white-space:nowrap;color:#111827}.rubric-grade-cell{min-width:64px;padding:6px 8px;text-align:center;font-size:12px;font-weight:800;font-variant-numeric:tabular-nums}.rubric-ce-grade-cell{background:var(--bg)}.rubric-ra-grade-cell{min-width:76px;box-shadow:inset 2px 0 0 var(--border)}.rubric-final-grade-cell{min-width:86px;font-size:14px;background:#f0fdf4;box-shadow:inset 2px 0 #16a34a52}.rubric-grade-cell.pass{color:#166534;background:#dcfce7}.rubric-grade-cell.near{color:#92400e;background:#fef3c7}.rubric-grade-cell.fail{color:#991b1b;background:#fee2e2}.rubric-grade-cell.none{color:#9ca3af;background:#f9fafb}.criterion-grade-tooltip{position:relative;display:inline-flex;justify-content:center;min-width:44px;outline:none}.criterion-grade-tooltip__trigger{display:inline-flex;align-items:center;justify-content:center;min-width:38px;min-height:22px;border-radius:6px;cursor:help}.criterion-grade-tooltip__trigger:after{content:"";width:4px;height:4px;margin-left:4px;border-radius:999px;background:currentColor;opacity:.45}.criterion-grade-tooltip__panel{position:fixed;z-index:1000;top:0;left:0;width:min(320px,82vw);overflow-y:auto;transform:translateY(4px);pointer-events:auto;opacity:0;display:flex;flex-direction:column;gap:8px;padding:12px;border:1px solid rgba(148,163,184,.35);border-radius:10px;color:#e5e7eb;background:#121212;box-shadow:0 18px 45px #0f172a38;text-align:left;white-space:normal;transition:opacity .14s ease,transform .14s ease}.criterion-grade-tooltip__panel.is-open{opacity:1;transform:translateY(0)}.criterion-grade-tooltip__panel:after{content:"";position:absolute;left:50%;bottom:-6px;width:12px;height:12px;transform:translate(-50%) rotate(45deg);border-right:1px solid rgba(148,163,184,.35);border-bottom:1px solid rgba(148,163,184,.35);background:#121212}.criterion-grade-tooltip__panel.is-bottom:after{top:-6px;bottom:auto;transform:translate(-50%) rotate(225deg)}.criterion-grade-tooltip__title{color:#fff;font-size:12px;font-weight:850}.criterion-grade-tooltip__formula,.criterion-grade-tooltip__pending{color:#cbd5e1;font-size:11px;line-height:1.35}.criterion-grade-tooltip__result{display:flex;justify-content:space-between;gap:10px;padding:7px 9px;border-radius:8px;color:#bfdbfe;background:#4f46e52e;font-size:12px}.criterion-grade-tooltip__result strong{color:#fff}.criterion-grade-tooltip__list{display:flex;flex-direction:column;gap:6px}.criterion-grade-tooltip__item{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;align-items:start;padding:7px 8px;border:1px solid rgba(148,163,184,.18);border-radius:8px;background:#0f172ab3;font-size:11px;line-height:1.3}.criterion-grade-tooltip__item span{min-width:0;color:#f8fafc}.criterion-grade-tooltip__item strong{color:#86efac;font-variant-numeric:tabular-nums}.criterion-grade-tooltip__item em{grid-column:1 / -1;color:#bae6fd;font-style:normal}.rubric-final-grade-cell.pass{color:#14532d;background:#dcfce7}.rubric-final-grade-cell.near{color:#92400e;background:#fef3c7}.rubric-final-grade-cell.fail{color:#991b1b;background:#fee2e2}.rubric-final-grade-cell.none{color:#64748b;background:#f1f5f9}html.dark .rubric-legend-pass{background:#16653461;color:#86efac;border-color:#4ade806b}html.dark .rubric-legend-near{background:#92400e5c;color:#fcd34d;border-color:#fbbf2470}html.dark .rubric-legend-fail{background:#7f1d1d6b;color:#fca5a5;border-color:#f8717175}html.dark .rubric-legend-none{background:#121212;color:#94a3b8;border-color:#2a2a2a}html.dark .rubric-ra-head{background:var(--ra-color, #4f46e5);color:#fff}html.dark .rubric-ce-head{background:#312e81;color:#c7d2fe}html.dark .rubric-ra-grade-head{background:var(--ra-color, #4f46e5);color:#fff}html.dark .rubric-final-head{background:#052e16;color:#bbf7d0}html.dark .rubric-student-name{color:#f8fafc;background:#161616}html.dark .rubric-grade-cell.pass{color:#86efac;background:#16653461}html.dark .rubric-grade-cell.near{color:#fcd34d;background:#92400e5c}html.dark .rubric-grade-cell.fail{color:#fca5a5;background:#7f1d1d6b}html.dark .rubric-grade-cell.none{color:#94a3b8;background:#121212}html.dark .criterion-grade-tooltip__panel,html.dark .criterion-grade-tooltip__panel:after{background:#020617}html.dark .rubric-final-grade-cell.pass{color:#bbf7d0;background:#14532d}html.dark .rubric-final-grade-cell.near{color:#fde68a;background:#78350f}html.dark .rubric-final-grade-cell.fail{color:#fecaca;background:#7f1d1d}html.dark .rubric-final-grade-cell.none{color:#cbd5e1;background:#1c1c1c}.accordion-item{border:1px solid var(--border);border-radius:var(--radius);margin-bottom:8px;background:var(--white)}.accordion-header{padding:12px 16px;display:flex;align-items:center;justify-content:space-between;cursor:pointer}.accordion-header:hover{background:var(--grey-light);border-radius:var(--radius)}.accordion-body{padding:0 16px 16px;border-top:1px solid var(--border)}.accordion-toggle{font-size:18px;color:var(--text-muted);transition:transform .2s}.accordion-toggle.open{transform:rotate(180deg)}.ra-colored-block{border-left:5px solid var(--ra-color)}.ra-colored-block .accordion-header{background:var(--ra-color-soft)}.ra-color-badge{color:#fff;background:var(--ra-color);border-color:var(--ra-color)}.ra-color-picker{display:flex;align-items:center;gap:10px}.ra-color-picker input[type=color]{width:46px;min-width:46px;height:38px;padding:3px;cursor:pointer}.ra-color-swatches{display:flex;flex-wrap:wrap;gap:5px}.ra-color-swatches button{width:24px;height:24px;border-radius:999px;border:2px solid var(--white);box-shadow:0 0 0 1px var(--border);cursor:pointer}.ra-color-swatches button.active{box-shadow:0 0 0 2px var(--primary)}.period-badge{background:color-mix(in srgb,var(--ra-color, var(--primary)) 16%,var(--white));border-color:color-mix(in srgb,var(--ra-color, var(--primary)) 35%,var(--border));color:color-mix(in srgb,var(--ra-color, var(--primary)) 70%,var(--text))}.ra-calendar{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.ra-calendar-column{min-width:0;border:1px solid var(--border);border-radius:var(--radius);background:var(--white);overflow:hidden}.ra-calendar-column__head{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:12px 14px;border-bottom:1px solid var(--border);background:var(--bg)}.ra-calendar-column__head strong{font-size:16px;color:var(--text)}.ra-calendar-column__head span{color:var(--text-muted);font-size:12px;font-weight:700}.ra-calendar-stack{display:flex;flex-direction:column;gap:10px;min-height:260px;padding:12px}.ra-calendar-card{display:grid;gap:7px;width:100%;border:1px solid var(--ra-color);border-left:6px solid var(--ra-color);border-radius:8px;background:var(--ra-color-soft);color:var(--text);text-align:left;padding:12px;cursor:pointer;transition:transform .12s ease,box-shadow .12s ease}.ra-calendar-card:hover{box-shadow:var(--shadow-md);transform:translateY(-1px)}.ra-calendar-card[draggable=true]{cursor:grab}.ra-calendar-card.is-dragging{opacity:.4;cursor:grabbing;transform:none}.ra-calendar-column.is-drop-target{border-color:var(--primary);box-shadow:0 0 0 2px color-mix(in srgb,var(--primary) 25%,transparent)}.ra-calendar-column.is-drop-target .ra-calendar-stack{background:color-mix(in srgb,var(--primary) 7%,transparent)}.ra-calendar-card strong{font-size:13px;line-height:1.25}.ra-calendar-card>span:last-child{color:var(--text-muted);font-size:12px;font-weight:700}.ra-calendar-empty{display:grid;place-items:center;min-height:96px;border:1px dashed var(--border);border-radius:8px;color:var(--text-muted);font-size:13px;background:var(--bg)}.normativa-import-panel{border:1px solid var(--border);border-radius:8px;padding:14px;background:var(--white)}.normativa-import-panel__header,.normativa-import-result__head,.normativa-import-actions{display:flex;justify-content:space-between;gap:12px;align-items:flex-start;margin-bottom:12px}.normativa-review-badges{display:flex;flex-wrap:wrap;gap:8px;justify-content:flex-end}.normativa-import-panel__header h3{margin:0 0 4px;font-size:17px}.normativa-import-form .form-group{margin-bottom:10px}.normativa-import-compact-grid{display:grid;grid-template-columns:minmax(220px,280px) minmax(0,1fr);gap:12px;align-items:end}.normativa-import-compact-grid textarea.form-control{min-height:58px}.normativa-import-actions{align-items:center;justify-content:flex-start;margin:4px 0 0}.normativa-saved-draft{display:flex;align-items:center;justify-content:space-between;gap:12px}.normativa-import-result{margin-top:18px;border-top:1px solid var(--border);padding-top:16px}.normativa-progress{margin-top:16px;padding:12px;border:1px solid var(--border);border-radius:6px;background:var(--bg)}.normativa-progress__bar{height:8px;overflow:hidden;border-radius:999px;background:var(--border)}.normativa-progress__bar span{display:block;width:42%;height:100%;border-radius:inherit;background:var(--primary);animation:normativa-progress 1.25s ease-in-out infinite}.normativa-progress p{margin:8px 0 0;color:var(--text-muted);font-size:13px}@keyframes normativa-progress{0%{transform:translate(-110%)}50%{transform:translate(85%)}to{transform:translate(240%)}}.normativa-rationale{margin-bottom:12px;padding:12px;border:1px solid var(--border);border-radius:6px;background:var(--primary-light)}.normativa-rationale__head{display:flex;justify-content:space-between;gap:12px;margin-bottom:8px}.normativa-rationale__head p{margin:4px 0 0}.normativa-rationale textarea.form-control{min-height:96px;background:var(--white)}.normativa-rationale-history{margin-top:10px;border-top:1px solid var(--border);padding-top:8px}.normativa-rationale-history summary{cursor:pointer;color:var(--text);font-size:13px;font-weight:800}.normativa-rationale-history>div{display:grid;gap:8px;max-height:240px;overflow:auto;margin-top:8px}.normativa-rationale-history article{padding:8px;border:1px solid var(--border);border-radius:6px;background:var(--white)}.normativa-rationale-history article strong{display:block;margin-bottom:4px;color:var(--text-muted);font-size:11px}.normativa-rationale-history article p,.normativa-rationale-history article em{display:block;margin:0;color:var(--text);font-size:12px;line-height:1.35}.normativa-rationale-history article em{margin-top:4px;color:var(--text-muted)}.normativa-weight-overview{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:8px;margin-bottom:12px}.normativa-weight-total,.normativa-weight-pill{display:grid;gap:8px;padding:8px 10px;border:1px solid var(--border);border-radius:6px;background:var(--bg);font-size:12px}.normativa-weight-total{background:var(--white)}.normativa-weight-pill{border-left:5px solid var(--ra-color);background:var(--ra-color-soft)}.normativa-weight-pill.open{grid-column:span 2}.normativa-weight-total span,.normativa-weight-pill span{color:var(--text-muted);font-weight:800}.normativa-weight-total strong{color:var(--text);font-size:18px;font-variant-numeric:tabular-nums}.normativa-weight-total strong.ok,.normativa-weight-pill em.ok{color:var(--success)}.normativa-weight-total strong.alert,.normativa-weight-pill em.alert{color:var(--danger)}.normativa-weight-pill em{font-style:normal;font-size:11px;font-weight:800;font-variant-numeric:tabular-nums}.normativa-weight-pill__toggle{display:flex;align-items:center;justify-content:space-between;gap:8px;width:100%;padding:0;border:0;background:transparent;color:inherit;cursor:pointer;text-align:left}.normativa-weight-pill__toggle span{color:var(--text);font-size:14px}.normativa-weight-pill__input{display:grid;gap:4px}.normativa-weight-pill__input input{width:100%;padding:6px 8px;border:1px solid var(--border);border-radius:6px;background:var(--white);color:var(--text);font:inherit;font-size:13px;font-variant-numeric:tabular-nums}.normativa-summary-ce-list{display:grid;gap:5px;margin-top:2px}.normativa-summary-ce-row{display:grid;grid-template-columns:54px 42px minmax(0,1fr);gap:6px;align-items:start;padding:6px;border:1px solid var(--border);border-radius:6px;background:var(--white);font-size:11px}.normativa-summary-ce-row strong,.normativa-summary-ce-row span{color:var(--text);font-variant-numeric:tabular-nums}.normativa-summary-ce-row p{margin:0;color:var(--text);line-height:1.3}.normativa-draft-tools,.normativa-ra-tools{display:flex;flex-wrap:wrap;align-items:center;gap:8px}.normativa-draft-tools{justify-content:flex-end;position:sticky;top:0;z-index:2;margin:0 0 12px;padding:8px;border:1px solid var(--border);border-radius:8px;background:color-mix(in srgb,var(--white) 94%,var(--primary) 6%)}.normativa-ra-tools{justify-content:space-between;margin:6px 0 0}.normativa-ra-preview{display:grid;gap:10px}.normativa-ra-preview__item{border:1px solid var(--border);border-left:5px solid var(--ra-color, var(--border));border-radius:6px;padding:10px;background:var(--bg)}.normativa-ra-preview__item.weights-ok{border-top-color:color-mix(in srgb,var(--success) 36%,var(--border));border-right-color:color-mix(in srgb,var(--success) 36%,var(--border));border-bottom-color:color-mix(in srgb,var(--success) 36%,var(--border))}.normativa-ra-preview__item.weights-alert{border-top-color:color-mix(in srgb,var(--warning) 55%,var(--border));border-right-color:color-mix(in srgb,var(--warning) 55%,var(--border));border-bottom-color:color-mix(in srgb,var(--warning) 55%,var(--border))}.normativa-ra-preview__item strong{display:inline-block;margin-bottom:2px}.normativa-ra-preview__item p{margin:4px 0 6px;color:var(--text);font-size:12px;line-height:1.35}.normativa-ra-preview__item span{color:var(--text-muted);font-size:12px}.normativa-weight-row,.normativa-ce-row{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}.normativa-weight-row>div{display:flex;align-items:center;gap:8px;min-width:0}.normativa-weight-row label,.normativa-ce-row label{display:grid;gap:4px;min-width:84px;color:var(--text-muted);font-size:10px;font-weight:700}.normativa-weight-row input,.normativa-ce-row input{width:76px;padding:5px 7px;border:1px solid var(--border);border-radius:6px;background:var(--white);color:var(--text);font:inherit;font-size:12px;font-variant-numeric:tabular-nums}.normativa-ra-draft-header{margin:-10px -10px 8px;padding:9px 10px;border-radius:6px 6px 0 0;background:var(--ra-color-soft);border-bottom:1px solid color-mix(in srgb,var(--ra-color) 35%,var(--border))}.normativa-ra-draft-header>div{flex:1;flex-wrap:wrap}.normativa-ra-draft-title{align-items:baseline}.normativa-ra-draft-title>strong:first-child{flex:0 0 auto;color:var(--text);font-size:16px;line-height:1.25}.normativa-ra-title-inline{flex:1 1 520px;min-width:220px;color:var(--text);font-size:16px;line-height:1.25}.normativa-ce-list{display:grid;gap:6px;margin-top:8px}.normativa-ce-row{display:grid;grid-template-columns:72px minmax(0,1fr) 150px;align-items:center;min-height:40px;padding:6px 8px;border:1px solid var(--border);border-radius:6px;background:var(--white);font-size:12px}.normativa-ce-row>strong{color:var(--text);font-variant-numeric:tabular-nums}.normativa-ce-row>span{color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;line-height:1.25}.normativa-ce-row .normativa-ce-weight{display:grid;grid-template-columns:auto 76px;align-items:center;justify-content:end;gap:8px;min-width:0}.normativa-ce-row .normativa-ce-weight span{color:var(--text-muted);font-size:11px;font-weight:800;white-space:nowrap}.normativa-ce-row .normativa-ce-weight input{width:76px}.normativa-confirm-comment{margin-top:14px}.planning-toolbar{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:16px}.planning-toolbar h3{font-size:18px;margin-bottom:4px}.planning-calendar{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.planning-calendar-column{min-width:0;border:1px solid var(--border);border-radius:var(--radius);background:var(--white);overflow:hidden}.planning-calendar-head{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:12px 14px;border-bottom:1px solid var(--border);background:var(--bg)}.planning-calendar-head strong{font-size:15px}.planning-calendar-head span{color:var(--text-muted);font-size:12px;font-weight:800}.planning-calendar-lane{display:flex;flex-direction:column;gap:10px;min-height:420px;padding:12px;background-image:linear-gradient(to bottom,transparent 47px,var(--border) 48px);background-size:100% 48px}.planning-card{display:grid;gap:8px;border:1px solid color-mix(in srgb,var(--ra-color, var(--primary)) 45%,var(--border));border-left:6px solid var(--ra-color, var(--primary));border-radius:8px;background:color-mix(in srgb,var(--ra-color, var(--primary)) 10%,var(--white));color:var(--text);padding:12px;box-shadow:var(--shadow)}.planning-card-top,.planning-card-meta,.planning-card-actions{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.planning-card-top{justify-content:space-between}.planning-card strong{font-size:13px;line-height:1.25}.planning-card p{color:var(--text-muted);font-size:12px;line-height:1.35}.planning-card-meta{color:var(--text-muted);font-size:11px;font-weight:800}.planning-card-actions{justify-content:flex-end}.planning-empty{display:grid;place-items:center;min-height:110px;border:1px dashed var(--border);border-radius:8px;color:var(--text-muted);font-size:13px;background:var(--bg)}.planning-table-wrapper{border-radius:var(--radius)}.planning-table th{background:#b9cde2;color:#111827;text-align:center;font-weight:800}.planning-table td{vertical-align:middle}.planning-table tbody tr:nth-child(2n) td{background:color-mix(in srgb,var(--bg) 55%,var(--white))}.planning-order{display:flex;align-items:center;gap:4px}.planning-order span{width:22px;color:var(--text-muted);font-size:12px;font-weight:800;text-align:center}.planning-unit-input{min-width:260px}.planning-ra-code{display:block;color:#23601f;text-align:center}.planning-period-cell{text-align:center;background:color-mix(in srgb,var(--bg) 65%,var(--white))}html.dark .planning-table th{background:#2a2a2a;color:#e2e8f0}.comment-thread{display:flex;flex-direction:column;gap:12px}.comment-bubble{padding:12px 14px;border-radius:8px;max-width:85%}.comment-bubble.teacher{background:var(--primary-light);align-self:flex-start}.comment-bubble.student{background:var(--grey-light);align-self:flex-end}.comment-meta{font-size:11px;color:var(--text-muted);margin-bottom:4px}.comment-text{font-size:13px}.ra-activity-panel{margin-bottom:16px;padding:14px;border:1px solid var(--border);border-radius:var(--radius);background:var(--bg)}.ra-activity-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:12px}.ra-metric-pills{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}.ra-activity-empty{color:var(--text-muted);font-size:13px}.ra-activity-table th,.ra-activity-table td{padding:8px 10px}.ra-activity-table td{vertical-align:top}.ra-activity-link{margin-left:6px;font-size:11px;text-decoration:none}.ra-ce-tags{display:flex;flex-wrap:wrap;gap:4px}.theme-toggle{justify-content:center;margin-top:8px;border:1px solid var(--border);background:var(--white)}.theme-toggle:hover{background:var(--grey-light)}.notification-toggle{position:relative}.notification-count{margin-left:auto;min-width:18px;height:18px;display:inline-flex;align-items:center;justify-content:center;border-radius:999px;background:var(--danger);color:#fff;font-size:10px;font-weight:800}.notification-popover{margin:6px 4px 10px;padding:8px;border:1px solid var(--border);border-radius:var(--radius);background:var(--bg);max-height:220px;overflow:auto}.notification-item{padding:8px;border-bottom:1px solid var(--border)}.notification-item:last-child{border-bottom:none}.notification-item strong{display:block;font-size:12px;color:var(--text)}.notification-item p{color:var(--text-muted);font-size:11px;line-height:1.35;margin-top:2px}.notification-item span{color:var(--text-muted);font-size:10px}.activities-hero{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:16px;padding:16px;border:1px solid var(--border);border-radius:var(--radius);background:var(--white);box-shadow:var(--shadow)}.activities-actions{display:flex;align-items:center;gap:12px;flex-wrap:wrap;justify-content:flex-end}.activity-search{width:220px}.activity-select{width:170px}.activity-filter{display:inline-flex;gap:4px;padding:4px;border:1px solid var(--border);border-radius:999px;background:var(--bg)}.activity-filter button{border:none;background:transparent;color:var(--text-muted);border-radius:999px;padding:5px 10px;font-size:12px;font-weight:600;cursor:pointer}.activity-filter button:hover{color:var(--text);background:var(--grey-light)}.activity-filter button.active{background:var(--primary);color:#fff}.activity-name-line{display:flex;align-items:center;gap:8px;min-width:0;flex-wrap:nowrap;max-width:100%}.activity-name-line strong{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.activities-table th{font-size:11px}.activities-table td:first-child strong{font-size:13px}.linked-criteria{display:flex;flex-wrap:wrap;gap:5px;align-items:center;max-width:460px}.activity-toggle{display:flex;align-items:center;gap:5px;font-size:11px;color:var(--text-muted);margin-bottom:4px}.publication-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.publication-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 0;border-bottom:1px solid var(--border)}.publication-row:last-child{border-bottom:none}.publication-row strong{font-size:13px}.publication-row p{max-width:420px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.publication-preview{grid-column:1 / -1}.student-preview-ra{border:1px solid var(--border);border-radius:var(--radius);background:var(--bg);margin-bottom:10px;overflow:hidden}.student-preview-ra__head{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:8px;padding:10px 12px;background:var(--grey-light)}.student-preview-ra__head strong{color:var(--primary);font-size:13px}.student-preview-ra__head span{color:var(--text-muted);font-size:12px;font-weight:700}.student-preview-ra__head b{font-variant-numeric:tabular-nums;font-size:14px}.student-preview-ce{display:grid;grid-template-columns:60px 56px minmax(0,1fr);gap:8px;padding:8px 12px;border-top:1px solid var(--border);align-items:center}.student-preview-ce span,.student-preview-ce b{font-size:12px;font-weight:800}.student-preview-ce p{color:var(--text-muted);font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.assignment-layout{display:grid;grid-template-columns:240px 1fr;gap:16px;min-height:520px}.assignment-summary{display:flex;flex-direction:column;gap:12px;border-right:1px solid var(--border);padding-right:16px}.assignment-summary-card{padding:14px;border:1px solid var(--border);border-radius:var(--radius);background:var(--bg)}.assignment-kicker{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted);margin-bottom:4px}.assignment-selected-list{display:flex;align-content:flex-start;gap:6px;flex-wrap:wrap;min-height:180px;max-height:280px;overflow:auto;padding:10px;border:1px solid var(--border);border-radius:var(--radius);background:var(--bg)}.assignment-chip{border:1px solid var(--border);border-radius:999px;padding:4px 8px;background:var(--primary-light);color:var(--primary);font-size:12px;font-weight:700;cursor:pointer}.assignment-chip:hover{border-color:var(--primary)}.assignment-main{min-width:0;display:flex;flex-direction:column;gap:12px}.assignment-toolbar{display:flex;gap:10px;align-items:center}.assignment-toolbar .form-control{flex:1}.assignment-ra-list{display:flex;flex-direction:column;gap:8px;max-height:460px;overflow:auto;padding-right:4px}.assignment-ra{border:1px solid var(--border);border-radius:var(--radius);background:var(--white);overflow:hidden}.assignment-ra.has-selection{border-color:color-mix(in srgb,var(--primary) 45%,var(--border));box-shadow:0 0 0 1px color-mix(in srgb,var(--primary) 22%,transparent)}.assignment-ra-header{display:flex;align-items:center;gap:10px;padding:10px 12px;background:var(--bg);border-bottom:1px solid transparent}.assignment-expand{width:24px;height:24px;border:1px solid var(--border);border-radius:6px;background:var(--white);color:var(--text-muted);cursor:pointer;display:inline-flex;align-items:center;justify-content:center;font-size:16px;line-height:1}.assignment-expand:hover{color:var(--text);background:var(--grey-light)}.assignment-ra-title{flex:1;min-width:0;display:flex;align-items:center;gap:8px;border:none;background:transparent;color:var(--text);text-align:left;cursor:pointer;font-weight:600}.assignment-ra-title span:last-child{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.assignment-ce-list{display:flex;flex-direction:column;gap:6px;padding:10px 12px 12px 46px}.assignment-ce{display:grid;grid-template-columns:auto 64px 1fr;gap:8px;align-items:start;padding:8px 10px;border:1px solid var(--border);border-radius:7px;cursor:pointer;background:var(--white)}.assignment-ce:hover{background:var(--grey-light)}.assignment-ce.selected{border-color:var(--primary);background:var(--primary-light)}.assignment-ce-code{color:var(--primary);font-weight:800;font-size:12px}.assignment-ce-text{color:var(--text);font-size:12px;line-height:1.35}.assignment-empty{padding:32px 16px}.mejora-item-grey{background:var(--bg);border:1px solid var(--border);border-radius:8px;padding:10px 14px;display:flex;align-items:flex-start;gap:10px}.mejora-item-red{background:var(--danger-light);border:1px solid var(--danger);border-radius:8px;padding:10px 14px;display:flex;align-items:flex-start;gap:10px;opacity:.92}.activity-row-inset{background:var(--bg);border-radius:6px;padding:4px 10px;display:flex;justify-content:space-between;align-items:center;font-size:12px}.importance-dot{display:inline-block;width:8px;height:8px;border-radius:50%}.importance-dot.low{background:var(--grey)}.importance-dot.medium{background:var(--warning)}.importance-dot.high{background:var(--danger)}.importance-dots{display:inline-flex;gap:3px;align-items:center}.activity-summary-row{display:flex;align-items:center;gap:12px;padding:12px 14px;border:1px solid var(--border);border-radius:var(--radius);background:var(--white);margin-bottom:6px;transition:box-shadow .15s}.activity-summary-row:hover{box-shadow:var(--shadow-md)}.activity-summary-name{flex:1;min-width:0;font-weight:500;font-size:13px;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.activity-summary-grade{min-width:52px;text-align:right;font-weight:700;font-size:15px;font-variant-numeric:tabular-nums}.activity-summary-grade.pass{color:var(--success)}.activity-summary-grade.near{color:var(--warning)}.activity-summary-grade.fail{color:var(--danger)}.activity-summary-grade.none{color:var(--text-muted);font-weight:400;font-size:12px}.activity-ce-chips{display:flex;flex-wrap:wrap;gap:3px}.grade-hero{display:flex;flex-direction:column;align-items:flex-end;gap:4px;min-width:140px}.grade-hero-number{font-size:48px;font-weight:800;line-height:1;font-variant-numeric:tabular-nums;letter-spacing:0}.grade-hero-number.pass{color:var(--success)}.grade-hero-number.near{color:var(--warning)}.grade-hero-number.fail{color:var(--danger)}.grade-hero-number.none{color:var(--text-muted)}.grade-hero-label{font-size:12px;color:var(--text-muted);text-align:right}.grade-hero-bar{width:140px}.student-progress-page{display:flex;flex-direction:column;gap:16px}.student-module-card{cursor:pointer;min-height:100%;padding:16px;border:1px solid var(--border);border-radius:var(--radius);background:var(--white);box-shadow:var(--shadow);transition:border-color .18s,box-shadow .18s,transform .18s}.student-module-card:hover{border-color:color-mix(in srgb,var(--primary) 42%,var(--border));box-shadow:var(--shadow-md);transform:translateY(-1px)}.student-module-card__title{color:var(--text);font-weight:800;font-size:15px;margin-bottom:4px}.student-module-ra-summary{display:grid;grid-template-columns:1fr;gap:7px;margin-top:12px;padding-top:10px;border-top:1px solid var(--border)}.student-module-ra-summary span{display:block;color:var(--text-muted);font-size:11px;font-weight:800;margin-bottom:4px}.student-module-ra-summary div div{display:flex;flex-wrap:wrap;gap:4px}.student-module-ra-summary strong{display:inline-flex;padding:2px 7px;border-radius:999px;font-size:11px;border:1px solid transparent}.student-module-ra-summary strong.pass{color:#fff;background:var(--ra-color, #16a34a);border-color:var(--ra-color, #16a34a)}.student-module-ra-summary strong.fail{color:#fff;background:var(--ra-color, #dc2626);border-color:var(--ra-color, #dc2626)}html.dark .student-module-ra-summary strong.pass{color:#fff;background:var(--ra-color, #16a34a);border-color:var(--ra-color, #16a34a)}html.dark .student-module-ra-summary strong.fail{color:#fff;background:var(--ra-color, #dc2626);border-color:var(--ra-color, #dc2626)}.student-progress-header{align-items:stretch;display:grid;grid-template-columns:minmax(0,1fr) minmax(430px,560px)}.student-grade-hero{min-width:0;padding:16px;border:1px solid var(--border);border-radius:var(--radius);background:var(--white);box-shadow:var(--shadow);display:flex;align-items:center;flex-direction:row;flex-wrap:wrap;gap:14px 18px}.student-grade-hero__label{font-size:11px;font-weight:700;text-transform:uppercase;color:var(--text-muted)}.student-grade-hero__number{font-size:54px;line-height:1;font-weight:900;font-variant-numeric:tabular-nums}.student-grade-hero__number.pass,.student-table-grade.pass,.student-ra-pill__grade.pass,.student-ra-card__grade.pass,.student-ce-row strong.pass{color:var(--success)}.student-grade-hero__number.near,.student-table-grade.near,.student-ra-pill__grade.near,.student-ra-card__grade.near,.student-ce-row strong.near{color:var(--warning)}.student-grade-hero__number.fail,.student-table-grade.fail,.student-ra-pill__grade.fail,.student-ra-card__grade.fail,.student-ce-row strong.fail{color:var(--danger)}.student-grade-hero__number.none,.student-table-grade.none,.student-ra-pill__grade.none,.student-ra-card__grade.none,.student-ce-row strong.none{color:var(--text-muted)}.student-grade-hero__status{min-height:22px}.student-grade-hero__hint{font-size:12px;color:var(--text-muted)}.student-grade-hero__partial{font-size:12px;color:var(--text-muted);font-weight:700}.student-grade-hero__official{font-size:11px;color:var(--text-muted);padding-top:4px;border-top:1px solid var(--border);flex-basis:100%}.student-grade-hero__risk{display:inline-flex;align-self:flex-start;padding:3px 8px;border-radius:999px;background:var(--danger-light);color:var(--danger);border:1px solid color-mix(in srgb,var(--danger) 35%,var(--border));font-size:11px;font-weight:800}.student-grade-hero .progress-bar{min-width:180px;flex:1}.student-tabs{display:flex;gap:4px;padding:4px;border:1px solid var(--border);border-radius:var(--radius);background:var(--white);box-shadow:var(--shadow);overflow-x:auto}.student-tabs button{border:none;background:transparent;color:var(--text-muted);border-radius:6px;padding:8px 12px;font-size:13px;font-weight:700;cursor:pointer;white-space:nowrap}.student-tabs button:hover{background:var(--grey-light);color:var(--text)}.student-tabs button.active{background:var(--primary);color:#fff}.student-tab-panel{display:flex;flex-direction:column;gap:16px}.student-risk-banner{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;padding:14px 16px;border:1px solid var(--border);border-radius:var(--radius);background:var(--white);box-shadow:var(--shadow)}.student-risk-banner strong{display:block;font-size:14px}.student-risk-banner p{margin-top:4px;color:var(--text-muted);font-size:12px}.student-risk-banner.danger{border-color:color-mix(in srgb,var(--danger) 42%,var(--border));background:var(--danger-light)}.student-risk-banner.danger strong{color:var(--danger)}.student-risk-banner.pending{border-color:color-mix(in srgb,var(--warning) 42%,var(--border));background:var(--warning-light)}.student-risk-banner.pending strong{color:var(--warning)}.student-summary-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.student-summary-card{padding:16px;border:1px solid var(--border);border-radius:var(--radius);background:var(--white);box-shadow:var(--shadow)}.student-summary-card span{display:block;color:var(--text-muted);font-size:12px;font-weight:700;margin-bottom:4px}.student-summary-card strong{display:block;color:var(--primary);font-size:28px;line-height:1.1}.student-summary-card p{margin-top:6px;color:var(--text-muted);font-size:12px}.student-section{padding:16px;border:1px solid var(--border);border-radius:var(--radius);background:var(--white);box-shadow:var(--shadow)}.student-section__head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:14px}.student-section__head h3{margin:0;color:var(--text);font-size:21px;line-height:1.18;font-weight:850;letter-spacing:0}.student-section__head p{margin-top:3px;color:var(--text-muted);font-size:12px}.student-activity-list{display:flex;flex-direction:column;gap:8px}.student-ra-activity-groups{display:flex;flex-direction:column;gap:12px}.student-ra-activity-group{padding:12px;border:1px solid var(--ra-color);border-left:6px solid var(--ra-color);border-radius:var(--radius);background:var(--ra-color)}.student-ra-activity-group__head{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:10px}.student-ra-activity-group__head strong{display:block;color:#fff;font-size:17px;font-weight:900}.student-ra-activity-group__head span{color:#ffffffd6;font-size:12px;font-weight:700}.student-ra-activity-group__head b,.student-ra-pill__grade,.student-ra-card__grade{display:inline-flex;align-items:center;justify-content:center;min-width:64px;padding:7px 10px;border-radius:8px;background:var(--white);border:1px solid var(--border);box-shadow:var(--shadow)}.student-ra-activity-group__head b.pass,.student-ra-pill__grade.pass,.student-ra-card__grade.pass{color:#14532d;background:#bbf7d0;border-color:#86efac}.student-ra-activity-group__head b.near,.student-ra-pill__grade.near,.student-ra-card__grade.near{color:#78350f;background:#fde68a;border-color:#facc15}.student-ra-activity-group__head b.fail,.student-ra-pill__grade.fail,.student-ra-card__grade.fail{color:#7f1d1d;background:#fecaca;border-color:#f87171}.student-ra-activity-group__head b.none,.student-ra-pill__grade.none,.student-ra-card__grade.none{color:#475569;background:#e2e8f0;border-color:#cbd5e1}.student-activity-card{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:12px;align-items:center;padding:12px;border:1px solid var(--border);border-radius:var(--radius);background:var(--bg)}.student-activity-card.compact{grid-template-columns:minmax(0,1fr) auto}.student-activity-card__main{min-width:0}.student-activity-card__title{display:flex;align-items:center;gap:8px;min-width:0}.student-activity-card__title strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.student-activity-card__meta{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-top:6px;color:var(--text-muted);font-size:12px}.student-activity-card__grade{min-width:54px;text-align:right;font-size:18px;font-weight:800;font-variant-numeric:tabular-nums}.student-activity-card__grade.pass{color:var(--success)}.student-activity-card__grade.near{color:var(--warning)}.student-activity-card__grade.fail{color:var(--danger)}.student-activity-card__grade.none{color:var(--text-muted);font-size:14px}.student-activity-card__details{grid-column:1 / -1;display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:8px;padding-top:10px;border-top:1px solid var(--border)}.student-feedback-box{padding:10px;border:1px solid var(--border);border-radius:var(--radius);background:var(--white)}.student-feedback-box strong{display:block;color:var(--primary);font-size:12px;margin-bottom:4px}.student-feedback-box p{color:var(--text);font-size:12px;line-height:1.45}.student-link-button{border:1px solid var(--border);border-radius:6px;background:var(--white);color:var(--primary);cursor:pointer;padding:6px 10px;font-size:12px;font-weight:700}.student-link-button:hover{background:var(--primary-light)}.student-impact{display:inline-flex;align-items:center;gap:5px;padding:3px 8px;border-radius:999px;border:1px solid var(--border);font-size:11px;font-weight:700}.student-impact strong{font-variant-numeric:tabular-nums}.student-impact em{font-style:normal;opacity:.7;font-weight:600}.student-impact--low{color:var(--grey);background:var(--grey-light)}.student-impact--medium{color:var(--warning);background:var(--warning-light);border-color:color-mix(in srgb,var(--warning) 32%,var(--border))}.student-impact--high{color:var(--danger);background:var(--danger-light);border-color:color-mix(in srgb,var(--danger) 32%,var(--border))}.student-criterion-chip{padding:10px;border:1px solid var(--border);border-radius:7px;background:var(--white)}.student-criterion-chip strong{color:var(--primary);font-size:12px}.student-criterion-chip span{margin-left:6px;color:var(--text-muted);font-size:11px}.student-criterion-chip p{margin-top:5px;color:var(--text);font-size:12px;line-height:1.35}.student-filter{display:inline-flex;gap:4px;padding:4px;border:1px solid var(--border);border-radius:999px;background:var(--bg)}.student-filter button{border:none;background:transparent;border-radius:999px;color:var(--text-muted);cursor:pointer;padding:5px 9px;font-size:12px;font-weight:700}.student-filter button.active{background:var(--primary);color:#fff}.student-filter-stack{display:flex;align-items:center;gap:8px;flex-wrap:wrap;justify-content:flex-end}.student-filter-stack .form-control{min-width:230px;max-width:320px}.student-weight-legend{display:flex;flex-wrap:wrap;gap:8px;margin:-4px 0 12px;color:var(--text-muted);font-size:11px;font-weight:700}.student-weight-legend span{display:inline-flex;align-items:center;gap:5px}.student-weight-legend i{width:9px;height:9px;border-radius:999px;display:inline-block}.student-weight-legend .weight-low{background:#94a3b8}.student-weight-legend .weight-medium{background:#22c55e}.student-weight-legend .weight-high{background:#f59e0b}.student-weight-legend .weight-very-high{background:#ef4444}.student-ra-strip,.student-ra-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:8px}.student-ra-pill,.student-ra-card{padding:12px;border:1px solid var(--border);border-radius:var(--radius);background:var(--bg)}.student-ra-pill{display:flex;align-items:center;justify-content:space-between;gap:12px}.student-ra-pill.fail,.student-ra-card.fail{border-color:color-mix(in srgb,var(--danger) 42%,var(--border));box-shadow:inset 3px 0 0 var(--danger)}.student-ra-pill.near,.student-ra-card.near{border-color:color-mix(in srgb,var(--warning) 42%,var(--border));box-shadow:inset 3px 0 0 var(--warning)}.student-ra-pill.pass,.student-ra-card.pass{border-color:color-mix(in srgb,var(--success) 32%,var(--border))}.student-ra-pill,.student-ra-card{background:var(--ra-color);border-color:var(--ra-color);box-shadow:var(--shadow);color:#fff}.student-ra-pill strong{display:block;color:#fff;font-size:14px}.student-ra-pill span,.student-ra-card p{color:#ffffffd6;font-size:11px}.student-ra-pill__grade,.student-ra-card__grade{font-weight:800;font-variant-numeric:tabular-nums}.student-ra-card__top{display:flex;justify-content:space-between;align-items:center;color:#ffffffd6;font-size:12px}.student-ra-card__top strong{color:#fff;font-size:14px}.student-ra-card__grade{margin:8px 0;font-size:24px;font-weight:900}.student-ra-card p{margin-top:8px}.student-notebook-table td,.student-notebook-table th{white-space:nowrap}.student-notebook-table td:first-child{white-space:normal;min-width:240px}.student-table-grade{font-size:15px;font-weight:800;font-variant-numeric:tabular-nums}.student-ra-impact{display:inline-flex;padding:3px 8px;border-radius:999px;background:var(--primary-light);color:var(--primary);font-size:11px;font-weight:800;font-variant-numeric:tabular-nums}.student-code-list{display:flex;gap:4px;flex-wrap:wrap}.student-rubric-wrap{max-height:340px}.student-rubric-table{min-width:520px}.student-rubric-table .rubric-ce-head span{font-weight:400;font-size:10px}html.dark .student-ra-pill,html.dark .student-ra-card,html.dark .student-ra-activity-group{background:var(--ra-color);border-color:var(--ra-color)}html.dark .student-ra-activity-group__head strong,html.dark .student-ra-activity-group__head span{color:#f8fafc}html.dark .student-ra-activity-group__head b.pass,html.dark .student-ra-pill__grade.pass,html.dark .student-ra-card__grade.pass{color:#dcfce7;background:#166534;border-color:#22c55e}html.dark .student-ra-activity-group__head b.near,html.dark .student-ra-pill__grade.near,html.dark .student-ra-card__grade.near{color:#fffbeb;background:#92400e;border-color:#f59e0b}html.dark .student-ra-activity-group__head b.fail,html.dark .student-ra-pill__grade.fail,html.dark .student-ra-card__grade.fail{color:#fee2e2;background:#991b1b;border-color:#ef4444}html.dark .student-ra-activity-group__head b.none,html.dark .student-ra-pill__grade.none,html.dark .student-ra-card__grade.none{color:#e2e8f0;background:#2a2a2a;border-color:#64748b}.student-good-news{padding:18px;border:1px solid color-mix(in srgb,var(--success) 35%,var(--border));border-radius:var(--radius);background:var(--success-light);color:var(--success)}.student-good-news p{margin-top:4px;font-size:13px;color:var(--text)}.student-improve-list{display:flex;flex-direction:column;gap:8px}.student-improve-item{display:flex;justify-content:space-between;gap:12px;padding:12px;border:1px solid var(--border);border-radius:var(--radius);background:var(--bg)}.student-improve-item.fail{border-color:color-mix(in srgb,var(--danger) 42%,var(--border));background:var(--danger-light)}.student-improve-item.near{border-color:color-mix(in srgb,var(--warning) 42%,var(--border));background:var(--warning-light)}.student-improve-item__type{display:block;color:var(--text-muted);font-size:11px;font-weight:700;text-transform:uppercase;margin-bottom:2px}.student-improve-item p{margin-top:4px;color:var(--text-muted);font-size:12px}.student-improve-item__side{display:flex;align-items:flex-end;flex-direction:column;gap:6px;flex-shrink:0}.student-results-list{display:flex;flex-direction:column;gap:8px}.student-result-details{border:1px solid var(--border);border-radius:var(--radius);background:var(--bg)}.student-result-details summary{display:grid;grid-template-columns:auto auto 1fr;align-items:center;gap:10px;padding:12px;cursor:pointer}.student-result-details summary strong{font-size:16px;font-variant-numeric:tabular-nums}.student-result-details summary span:last-child{color:var(--text-muted);font-size:12px}.student-result-details__body{padding:0 12px 12px}.student-result-details__body>p{margin-bottom:10px;color:var(--text);font-size:13px}.student-ce-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px;padding:10px 0;border-top:1px solid var(--border)}.student-ce-row p{margin-top:5px;font-size:12px;color:var(--text-muted);line-height:1.35}.student-ce-row>div:last-child{display:flex;align-items:flex-end;flex-direction:column;gap:2px}.student-ce-row>div:last-child span{color:var(--text-muted);font-size:11px}.student-comment-thread{margin-bottom:16px;max-height:360px;overflow-y:auto}.student-comment-box{display:flex;gap:8px}.normativa-confirm-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin-top:8px}.normativa-confirm-summary span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;padding:8px 10px;border:1px solid var(--border);border-radius:6px;background:var(--bg);color:var(--text);font-size:12px;font-weight:700}.normativa-links-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.normativa-link-card{min-width:0;padding:14px;border:1px solid var(--border);border-radius:8px;background:var(--bg)}.normativa-link-card p{margin:10px 0 8px;font-size:13px;font-weight:700;line-height:1.35}.normativa-link-card small{display:block;margin-bottom:12px;color:var(--text-muted);line-height:1.35}.normativa-cycle-field{grid-column:1 / -1}.normativa-module-row{grid-template-columns:minmax(130px,180px) minmax(0,1fr)}.normativa-list{border-top:1px solid var(--border);padding-top:16px}.normativa-section{display:grid;gap:10px;margin-bottom:18px}.normativa-section__head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;padding:10px 12px;border:1px solid var(--border);border-radius:8px;background:color-mix(in srgb,var(--primary) 5%,var(--white))}.normativa-section__head h5{margin:0;font-size:14px}.normativa-section__head p{margin:4px 0 0;color:var(--text-muted);font-size:12px;line-height:1.35}.normativa-empty-section{padding:18px;border:1px dashed var(--border);border-radius:8px}.normativa-item-row{display:grid;gap:10px;padding:14px;border:1px solid var(--border);border-radius:8px;background:var(--bg);margin-bottom:12px}.normativa-item-row.confirmed{border-color:color-mix(in srgb,var(--success) 45%,var(--border))}.normativa-item-row__head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px}.normativa-item-badges{display:flex;flex-wrap:wrap;gap:6px;margin-top:6px}.normativa-item-grid,.normativa-add-grid{display:grid;grid-template-columns:minmax(120px,.7fr) minmax(160px,1fr) minmax(120px,.7fr);gap:10px}.normativa-readonly{display:grid;gap:10px}.normativa-readonly div{display:grid;grid-template-columns:120px minmax(0,1fr);gap:10px;align-items:start}.normativa-readonly span{color:var(--text-muted);font-size:12px;font-weight:700}.normativa-readonly strong,.normativa-readonly a{min-width:0;color:var(--text);font-size:13px;line-height:1.35;word-break:break-word}.normativa-readonly a{color:var(--primary);text-decoration:none}.normativa-delete-confirm{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:10px 12px;border:1px solid color-mix(in srgb,var(--danger) 45%,var(--border));border-radius:6px;background:var(--danger-light);color:var(--danger);font-size:13px;font-weight:700}.normativa-add-box{display:grid;gap:10px;padding:14px;border:1px dashed var(--border);border-radius:8px;background:color-mix(in srgb,var(--primary) 4%,var(--white))}.normativa-add-box h4{margin:0}.normativa-source-card{display:flex;justify-content:space-between;align-items:flex-start;gap:14px;padding:14px;margin-bottom:16px;border:1px solid var(--border);border-radius:8px;background:color-mix(in srgb,var(--primary) 5%,var(--white))}.normativa-source-card--compact{padding:10px 12px;margin-bottom:10px}.normativa-source-card>div{display:grid;gap:5px;min-width:0}.normativa-source-card strong{line-height:1.35}.normativa-source-card a{color:var(--primary);font-size:12px;text-decoration:none;word-break:break-word}@media (max-width: 760px){.ra-activity-head{flex-direction:column}.ra-calendar,.planning-calendar,.normativa-links-grid{grid-template-columns:1fr}.normativa-item-row__head{flex-direction:column}.normativa-module-row,.normativa-item-grid,.normativa-add-grid{grid-template-columns:1fr}.normativa-readonly div{grid-template-columns:1fr;gap:3px}.normativa-delete-confirm{align-items:flex-start;flex-direction:column}.normativa-source-card{flex-direction:column}.normativa-import-compact-grid{grid-template-columns:1fr}.normativa-import-panel__header,.normativa-import-result__head,.normativa-import-actions{flex-direction:column;align-items:stretch}.normativa-draft-tools{position:static;justify-content:flex-start}.normativa-ce-row{grid-template-columns:58px minmax(0,1fr)}.normativa-ce-row .normativa-ce-weight{grid-column:1 / -1;justify-content:end;width:100%}.planning-toolbar{flex-direction:column}.planning-toolbar .btn-group{width:100%;justify-content:flex-start}.planning-calendar-lane{min-height:180px}.ra-metric-pills{justify-content:flex-start}.activities-hero{flex-direction:column}.activities-actions{width:100%;justify-content:flex-start}.activity-search,.activity-select{width:100%}.publication-grid,.assignment-layout{grid-template-columns:1fr}.assignment-summary{border-right:none;border-bottom:1px solid var(--border);padding-right:0;padding-bottom:14px}.assignment-toolbar{flex-direction:column;align-items:stretch}.assignment-ce-list{padding-left:12px}.student-progress-header{display:flex;flex-direction:column}.student-grade-hero{min-width:0}.dashboard-insights,.student-summary-grid{grid-template-columns:1fr}.student-section__head{flex-direction:column}.student-filter-stack{width:100%;justify-content:flex-start}.student-filter-stack .form-control{width:100%;max-width:none}.student-filter{width:100%;overflow-x:auto;border-radius:var(--radius)}.student-activity-card,.student-activity-card.compact{grid-template-columns:1fr;align-items:stretch}.student-activity-card__grade{text-align:left}.student-link-button{width:100%}.student-improve-item{flex-direction:column}.student-improve-item__side{align-items:flex-start}.student-comment-box{flex-direction:column}.normativa-confirm-summary{grid-template-columns:1fr}}.activity-date-summary{display:flex;min-width:150px;flex-direction:column;gap:3px;font-size:11px;white-space:nowrap}.activity-date-summary b{display:inline-block;min-width:48px;color:var(--text-muted)}.activity-date-summary small{margin-top:3px;color:var(--primary);font-size:10px}.activity-date-editor{margin-top:14px;padding:12px;border:1px solid var(--border);border-radius:8px;background:var(--bg)}.activity-date-editor__heading{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:10px}.activity-date-editor__heading p{margin:3px 0 0}.calendar-page-header{align-items:flex-end}.calendar-view-switch{display:inline-flex;padding:3px;border:1px solid var(--border);border-radius:8px;background:var(--white)}.calendar-view-switch button{padding:7px 13px;border:0;border-radius:6px;color:var(--text-muted);background:transparent;font:inherit;font-size:12px;font-weight:750;cursor:pointer}.calendar-view-switch button.active{color:#fff;background:var(--primary)}.calendar-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-bottom:14px}.calendar-summary article{display:grid;grid-template-columns:1fr auto;align-items:end;min-height:82px;padding:13px 15px;border:1px solid var(--border);border-radius:8px;background:var(--white)}.calendar-summary article span{color:var(--text-muted);font-size:11px;font-weight:750;text-transform:uppercase}.calendar-summary article strong{grid-row:1 / 3;grid-column:2;color:var(--text);font-size:28px;font-variant-numeric:tabular-nums}.calendar-summary article small{color:var(--text-muted);font-size:11px}.calendar-summary article.has-warning{border-color:#dc262659;background:#fee2e26b}.calendar-summary article.has-warning strong{color:var(--danger)}.calendar-layout{display:grid;grid-template-columns:minmax(0,1fr) 300px;align-items:start;gap:14px}.calendar-card{min-width:0;padding:0;overflow:hidden}.calendar-toolbar{display:flex;align-items:center;gap:7px;min-height:52px;padding:9px 12px;border-bottom:1px solid var(--border)}.calendar-toolbar h3{margin:0 0 0 5px;color:var(--text);font-size:15px;text-transform:capitalize}.calendar-month-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr))}.calendar-weekday{padding:8px;border-right:1px solid var(--border);border-bottom:1px solid var(--border);color:var(--text-muted);background:var(--bg);text-align:center;font-size:10px;font-weight:800;text-transform:uppercase}.calendar-day{min-height:112px;padding:7px 5px 5px;border-right:1px solid var(--border);border-bottom:1px solid var(--border);background:var(--white)}.calendar-day.outside{background:var(--bg);opacity:.62}.calendar-day-number{display:grid;place-items:center;width:23px;height:23px;margin:0 0 4px 2px;color:var(--text-muted);border-radius:50%;font-size:11px;font-weight:750}.calendar-day.is-today .calendar-day-number,.calendar-week-day.is-today header strong{color:#fff;background:var(--primary)}.calendar-event{display:flex;width:100%;min-width:0;align-items:center;gap:4px;margin-bottom:3px;padding:4px 5px;overflow:hidden;border:0;border-left:3px solid var(--module-color);border-radius:4px;color:var(--text);background:color-mix(in srgb,var(--module-color) 11%,var(--white));text-align:left;cursor:pointer}.calendar-event span{flex:0 0 auto;color:var(--text-muted);font-size:8px}.calendar-event strong{overflow:hidden;font-size:9px;text-overflow:ellipsis;white-space:nowrap}.calendar-event.status-overdue,.calendar-event.status-closed{border-left-color:var(--danger);background:#ef44441a}.calendar-event.status-graded{opacity:.62}.calendar-more{padding:2px 5px;border:0;color:var(--primary);background:transparent;font-size:9px;font-weight:750;cursor:pointer}.calendar-week-grid{display:grid;grid-template-columns:repeat(7,minmax(110px,1fr));min-height:480px;overflow-x:auto}.calendar-week-day{min-width:110px;border-right:1px solid var(--border);background:var(--white)}.calendar-week-day header{display:flex;min-height:58px;flex-direction:column;align-items:center;justify-content:center;gap:3px;border-bottom:1px solid var(--border);color:var(--text-muted);font-size:10px;text-transform:uppercase}.calendar-week-day header strong{display:grid;place-items:center;width:27px;height:27px;border-radius:50%;color:var(--text);font-size:13px}.calendar-week-day>div{padding:6px}.calendar-agenda{min-height:440px}.calendar-agenda-row{display:grid;width:100%;grid-template-columns:4px 48px minmax(0,1fr) auto;align-items:center;gap:12px;padding:11px 14px;border:0;border-bottom:1px solid var(--border);color:var(--text);background:var(--white);text-align:left;cursor:pointer}.calendar-agenda-row:hover{background:var(--bg)}.calendar-agenda-row>i{width:4px;height:34px;border-radius:4px}.calendar-agenda-date,.calendar-agenda-main{display:flex;flex-direction:column}.calendar-agenda-date{color:var(--text-muted);font-size:10px;text-transform:uppercase}.calendar-agenda-date strong{color:var(--text);font-size:18px}.calendar-agenda-main{min-width:0;gap:3px}.calendar-agenda-main strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:12px}.calendar-agenda-main small{color:var(--text-muted);font-size:10px}.calendar-status{display:inline-flex;width:-moz-max-content;width:max-content;padding:3px 7px;border-radius:999px;color:#1e40af;background:#dbeafe;font-size:9px;font-weight:800}.calendar-status.status-today{color:#92400e;background:#fef3c7}.calendar-status.status-overdue,.calendar-status.status-closed{color:#991b1b;background:#fee2e2}.calendar-status.status-graded{color:#166534;background:#dcfce7}.calendar-side{display:flex;flex-direction:column;gap:14px}.reminder-settings,.calendar-detail{padding:14px}.reminder-master-toggle{margin:8px 0 10px}.reminder-time-row{display:grid;grid-template-columns:74px 1fr;gap:7px;margin-bottom:9px}.reminder-settings>.btn{width:100%;justify-content:center}.reminder-settings>p{margin:9px 0 0}.calendar-detail{position:relative}.calendar-detail-close{position:absolute;top:8px;right:9px;border:0;color:var(--text-muted);background:transparent;font-size:20px;cursor:pointer}.calendar-detail h3{margin:10px 24px 6px 0;color:var(--text);font-size:16px}.calendar-detail-module{display:flex;align-items:center;gap:7px;color:var(--text-muted);font-size:11px}.calendar-detail-module i{width:8px;height:8px;border-radius:50%}.calendar-detail>p:not(.calendar-detail-module){display:flex;justify-content:space-between;gap:10px;padding:7px 0;border-bottom:1px solid var(--border);font-size:11px}.calendar-detail>p span{color:var(--text-muted)}.calendar-detail>p strong{color:var(--text);text-align:right}.calendar-reminder-select{display:block;margin-top:11px}.calendar-reminder-select>span{display:block;margin-bottom:5px;color:var(--text-muted);font-size:10px;font-weight:750;text-transform:uppercase}.calendar-detail-actions{display:flex;flex-wrap:wrap;gap:6px;margin-top:12px}.reminder-tray{position:fixed;z-index:900;top:16px;right:16px;display:flex;width:min(350px,calc(100vw - 32px));flex-direction:column;gap:8px;pointer-events:none}.reminder-toast{position:relative;padding:13px 38px 13px 14px;border:1px solid rgba(59,130,246,.3);border-left:4px solid var(--primary);border-radius:10px;color:var(--text);background:var(--white);box-shadow:0 16px 40px #0f172a33;pointer-events:auto;animation:reminder-in .22s ease-out}.reminder-toast__eyebrow{display:block;margin-bottom:3px;color:var(--primary);font-size:10px;font-weight:850;text-transform:uppercase}.reminder-toast>strong{display:block;font-size:13px}.reminder-toast>p{margin:4px 0 9px;color:var(--text-muted);font-size:10px}.reminder-toast>div{display:flex;gap:6px}.reminder-toast__close{position:absolute;top:7px;right:8px;width:25px;height:25px;border:0;border-radius:50%;color:var(--text-muted);background:var(--bg);font-size:18px;cursor:pointer}@keyframes reminder-in{0%{opacity:0;transform:translateY(-8px)}}html.dark .calendar-summary article.has-warning{background:#7f1d1d4d}html.dark .calendar-status{color:#bfdbfe;background:#1e40af6b}html.dark .calendar-status.status-today{color:#fde68a;background:#92400e66}html.dark .calendar-status.status-overdue,html.dark .calendar-status.status-closed{color:#fecaca;background:#7f1d1d73}html.dark .calendar-status.status-graded{color:#bbf7d0;background:#14532d80}@media (max-width: 1050px){.calendar-layout{grid-template-columns:1fr}.calendar-side{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width: 760px){.calendar-page-header{align-items:stretch}.calendar-view-switch{width:100%}.calendar-view-switch button{flex:1}.calendar-summary{grid-template-columns:repeat(2,minmax(0,1fr))}.calendar-month-grid{min-width:680px}.calendar-card{overflow-x:auto}.calendar-side{grid-template-columns:1fr}.calendar-agenda-row{grid-template-columns:4px 42px minmax(0,1fr)}.calendar-agenda-row .calendar-status{display:none}.activity-date-editor__heading{flex-direction:column}}@media (prefers-reduced-motion: reduce){.reminder-toast{animation:none}}.planning-toolbar{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:14px}.planning-toolbar h3{margin:0}.planning-module-hours{display:grid;grid-template-columns:repeat(3,minmax(150px,1fr));gap:10px;margin-bottom:14px;padding:12px;border:1px solid var(--border);border-radius:8px;background:var(--bg)}.planning-module-hours>div,.planning-fixed-hours>div{display:flex;flex-direction:column;gap:3px}.planning-module-hours span,.planning-fixed-hours span{color:var(--text-muted);font-size:11px;text-transform:uppercase;letter-spacing:.04em}.planning-module-hours strong,.planning-fixed-hours strong{color:var(--text);font-size:15px}.planning-hours-source strong{font-size:13px}.planning-hours-missing{margin-bottom:14px;padding:12px;border:1px solid var(--danger);border-radius:8px;background:var(--danger-light);color:var(--danger)}.planning-hours-missing p{margin:4px 0 10px;font-size:13px}.planning-hours-form{display:grid;grid-template-columns:minmax(140px,200px) minmax(140px,200px) auto;gap:10px;align-items:end}.planning-hours-form label{display:flex;flex-direction:column;gap:4px;color:var(--text);font-size:12px;font-weight:600}.planning-fixed-hours{display:grid;grid-template-columns:repeat(2,minmax(140px,220px));gap:12px}.btn-ai{background:linear-gradient(135deg,#6366f1,#8b5cf6);color:#fff;border:none;border-radius:8px;padding:10px 18px;font-weight:700;font-size:13px;cursor:pointer;transition:opacity .15s}.btn-ai:hover{opacity:.88}.btn-ai:disabled{opacity:.5;cursor:not-allowed}.ai-planning-wizard{padding:18px;border:1px solid var(--border);border-radius:var(--radius);background:var(--white);box-shadow:var(--shadow)}.ai-planning-wizard h3{margin:0 0 14px}.wizard-section{margin-bottom:18px;padding:14px;border:1px solid var(--border);border-radius:8px;background:var(--bg)}.wizard-section h4{margin:0 0 10px;font-size:14px}.wizard-section h5{margin:10px 0 6px;font-size:12px;color:var(--text-muted)}.wizard-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:10px;align-items:end}.wizard-grid label{display:flex;flex-direction:column;gap:4px;font-size:12px;font-weight:600;color:var(--text-muted)}.wizard-check{display:flex;align-items:center;gap:8px;font-size:13px;font-weight:600;margin-bottom:10px;cursor:pointer}.wizard-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:14px}.ai-draft-view{display:flex;flex-direction:column;gap:14px}.draft-banner{display:flex;align-items:center;gap:12px;padding:10px 14px;border:1px solid color-mix(in srgb,var(--warning) 45%,var(--border));border-radius:8px;background:var(--warning-light)}.draft-hours-summary{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:8px;padding:12px;border:1px solid var(--border);border-radius:8px;background:var(--bg);font-size:13px}.draft-hours-summary div{display:flex;gap:6px}.text-warning{color:var(--warning);font-weight:700}.text-danger{color:var(--danger);font-weight:700}.text-success{color:var(--success);font-weight:700}.draft-units-table tr.draft-row-dual{background:color-mix(in srgb,var(--primary) 6%,var(--white))}.draft-section{margin-top:4px;padding:12px;border:1px solid var(--border);border-radius:8px;background:var(--bg)}.draft-section summary{cursor:pointer;font-size:14px}.draft-section p{margin-top:8px;font-size:13px;line-height:1.5;color:var(--text)}.ra-sequencing-list{display:flex;flex-direction:column;gap:8px;margin-top:10px}.ra-seq-item{padding:8px 10px;border:1px solid var(--border);border-radius:6px;background:var(--white)}.dual-summary{display:grid;gap:6px;font-size:13px}.draft-actions{display:flex;justify-content:flex-end;gap:8px;padding-top:8px;border-top:1px solid var(--border)}.badge-warning{background:var(--warning-light);color:var(--warning);border:1px solid color-mix(in srgb,var(--warning) 35%,var(--border))}.badge-info{background:color-mix(in srgb,var(--primary) 12%,var(--white));color:var(--primary);border:1px solid color-mix(in srgb,var(--primary) 25%,var(--border))}.badge-red{background:var(--danger-light);color:var(--danger);border:1px solid color-mix(in srgb,var(--danger) 35%,var(--border))}html.dark .ai-planning-wizard{background:var(--bg)}html.dark .wizard-section{background:var(--white)}html.dark .draft-banner{background:#92400e40;border-color:#f59e0b4d}html.dark .draft-section{background:var(--white)}html.dark .ra-seq-item{background:var(--bg)}html.dark .btn-ai{background:linear-gradient(135deg,#818cf8,#a78bfa)}html.dark .draft-units-table tr.draft-row-dual{background:color-mix(in srgb,var(--primary) 10%,var(--bg))}@media (max-width: 760px){.planning-toolbar{flex-direction:column}.planning-module-hours,.planning-hours-form,.planning-fixed-hours,.wizard-grid{grid-template-columns:1fr}.wizard-actions{flex-direction:column}.draft-hours-summary{grid-template-columns:1fr 1fr}.draft-actions{flex-direction:column}}.tw-datepicker{width:100%;cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none;border-radius:.375rem;border-width:1px;--tw-border-opacity: 1;border-color:rgb(209 213 219 / var(--tw-border-opacity, 1));--tw-bg-opacity: 1;background-color:rgb(255 255 255 / var(--tw-bg-opacity, 1));padding:.5rem .75rem;font-size:.875rem;line-height:1.25rem;--tw-shadow: 0 1px 2px 0 rgb(0 0 0 / .05);--tw-shadow-colored: 0 1px 2px 0 var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow);transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s;font-size:12px}.tw-datepicker:focus{--tw-border-opacity: 1;border-color:rgb(59 130 246 / var(--tw-border-opacity, 1));outline:2px solid transparent;outline-offset:2px;--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000);--tw-ring-opacity: 1;--tw-ring-color: rgb(59 130 246 / var(--tw-ring-opacity, 1))}.tw-datepicker{color:var(--text);min-height:38px}html.dark .tw-datepicker{--tw-border-opacity: 1;border-color:rgb(75 85 99 / var(--tw-border-opacity, 1));--tw-bg-opacity: 1;background-color:rgb(31 41 55 / var(--tw-bg-opacity, 1))}html.dark .tw-datepicker:focus{--tw-border-opacity: 1;border-color:rgb(96 165 250 / var(--tw-border-opacity, 1));--tw-ring-opacity: 1;--tw-ring-color: rgb(96 165 250 / var(--tw-ring-opacity, 1))}html.dark .tw-datepicker{color-scheme:dark}.student-privacy-notice{margin-top:24px;padding:16px 18px;border:1px solid var(--border);border-radius:var(--radius);background:var(--bg);color:var(--text-muted);font-size:12px;line-height:1.55}.student-privacy-notice strong{color:var(--text)}.student-privacy-notice p{margin:6px 0 0}.student-privacy-notice.compact{margin-top:16px;padding:12px 14px;font-size:11px}.whatsnew-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1100;display:flex;align-items:center;justify-content:center;padding:24px;background:#09090b73;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);animation:whatsnew-fade .16s ease-out}.whatsnew{width:100%;max-width:470px;max-height:min(86vh,700px);display:flex;flex-direction:column;overflow:hidden;border-radius:14px;background:var(--white);border:1px solid var(--border);box-shadow:0 20px 50px -16px #00000047;animation:whatsnew-enter .18s ease-out}.whatsnew__head{position:relative;padding:26px 26px 18px}.whatsnew__overline{margin:0;font-size:11px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--text-muted);font-variant-numeric:tabular-nums}.whatsnew__title{margin:8px 0 0;font-family:Outfit,sans-serif;font-size:23px;font-weight:600;line-height:1.2;letter-spacing:-.018em;color:var(--text)}.whatsnew__date{margin:5px 0 0;font-size:13px;color:var(--text-muted)}.whatsnew__close{position:absolute;top:18px;right:18px;width:28px;height:28px;display:grid;place-items:center;border:none;border-radius:7px;background:transparent;color:var(--text-muted);font-size:19px;line-height:1;cursor:pointer;transition:background .12s ease,color .12s ease}.whatsnew__close:hover{background:var(--grey-light);color:var(--text)}.whatsnew__body{padding:0 26px 4px;overflow-y:auto}.whatsnew__list{list-style:none;margin:0;padding:0}.whatsnew__item{display:flex;align-items:baseline;gap:12px;padding:13px 0;border-top:1px solid var(--border)}.whatsnew__item:first-child{border-top:none;padding-top:4px}.whatsnew__item p{margin:0;font-size:13.5px;line-height:1.55;color:var(--text)}.whatsnew__dot{flex-shrink:0;width:6px;height:6px;margin-top:1px;border-radius:50%;background:var(--tone, var(--primary))}.whatsnew__item.tone-blue{--tone: #4f46e5}.whatsnew__item.tone-violet{--tone: #ff6b6b}.whatsnew__item.tone-teal{--tone: #0891b2}.whatsnew__item.tone-green{--tone: #16a34a}.whatsnew__item.tone-amber{--tone: #d97706}.whatsnew__item.tone-pink{--tone: #db2777}.whatsnew__item.tone-muted{--tone: var(--grey)}html.dark .whatsnew__item.tone-blue{--tone: #818cf8}html.dark .whatsnew__item.tone-violet{--tone: #ff7b7b}html.dark .whatsnew__item.tone-teal{--tone: #22d3ee}html.dark .whatsnew__item.tone-green{--tone: #4ade80}html.dark .whatsnew__item.tone-amber{--tone: #fbbf24}html.dark .whatsnew__item.tone-pink{--tone: #f472b6}.whatsnew__fixes{margin-top:18px}.whatsnew__label{margin:0 0 2px;font-family:Inter,sans-serif;font-size:11px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--text-muted)}.whatsnew__fixes .whatsnew__item p{color:var(--text-muted)}.whatsnew__footer{padding:18px 26px 22px;display:flex;justify-content:flex-end}.whatsnew__cta{padding:9px 20px;border:none;border-radius:8px;background:var(--primary);color:#fff;font-family:inherit;font-size:13.5px;font-weight:600;cursor:pointer;transition:background .12s ease}.whatsnew__cta:hover{background:var(--primary-dark)}html.dark .whatsnew__cta{color:#0a0a0a}@keyframes whatsnew-fade{0%{opacity:0}to{opacity:1}}@keyframes whatsnew-enter{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}@media (prefers-reduced-motion: reduce){.whatsnew-overlay,.whatsnew{animation:none}}@media (max-width: 560px){.whatsnew-overlay{padding:14px}.whatsnew__head{padding:22px 20px 16px}.whatsnew__body{padding:0 20px 4px}.whatsnew__footer{padding:16px 20px 18px}.whatsnew__title{font-size:20px}}.student-periods__grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:12px;margin-bottom:18px}.student-period-card{display:flex;flex-direction:column;gap:4px;align-items:flex-start;text-align:left;padding:14px 16px;border-radius:14px;border:1px solid var(--border);background:var(--surface);cursor:pointer;transition:border-color .15s ease,transform .15s ease,box-shadow .15s ease}.student-period-card:hover{transform:translateY(-2px);box-shadow:var(--shadow-md)}.student-period-card.is-selected{border-color:var(--primary);box-shadow:0 0 0 3px color-mix(in srgb,var(--primary) 18%,transparent)}.student-period-card__label{font-size:13px;font-weight:650;color:var(--text)}.student-period-card__grade{font-size:26px;font-weight:800;line-height:1.1}.student-period-card__meta{font-size:12px;color:var(--text-muted)}.student-periods__downloads{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:20px}.student-periods__detail{margin-top:8px}.student-periods__table{width:100%;border-collapse:collapse;margin-top:10px}.student-periods__table th,.student-periods__table td{border-bottom:1px solid var(--border);padding:10px 12px;text-align:left;font-size:14px}.student-periods__table th{font-size:12px;text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted);font-weight:700}.student-periods__table .num{text-align:right;font-variant-numeric:tabular-nums}.student-periods__table tfoot td{border-bottom:0;border-top:2px solid var(--border);background:var(--grey-light);font-size:14px}.student-periods__ra{display:inline-block;padding:2px 8px;border-radius:6px;border:1px solid transparent;font-size:12px;font-weight:800;margin-right:8px}.student-periods__ra-title{color:var(--text-muted);font-size:13px}.student-periods__explain{margin-top:14px;padding:12px 14px;border-radius:10px;background:var(--primary-light);color:var(--text);font-size:13px;line-height:1.55}.grade-pass{color:var(--success);font-weight:600}.grade-fail{color:var(--danger);font-weight:600}.recovery-test{border:1px solid var(--border);border-radius:10px;background:var(--white);overflow:hidden}.recovery-test__head{display:flex;align-items:center;justify-content:space-between;padding:10px 12px;cursor:pointer}.recovery-test__head:hover{background:var(--grey-light)}.recovery-test__body{padding:4px 12px 12px}.recovery-row-off td{opacity:.45}.ra-recovered{box-shadow:inset 0 0 0 2px var(--warning);border-radius:6px}.ra-recovered-badge{display:inline-block;margin-left:4px;font-size:10px;font-weight:700;color:var(--warning)}.student-ra-card__recovery{font-size:11px;line-height:1.5}.calendar-year-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:12px;padding:4px}.calendar-year-month{text-align:left;padding:10px 12px;border:1px solid var(--border);border-radius:12px;background:var(--white);cursor:pointer;transition:border-color .15s,box-shadow .15s}.calendar-year-month:hover{border-color:var(--primary);box-shadow:0 4px 14px #0000000f}.calendar-year-month.is-current{border-color:var(--primary)}.calendar-year-month header{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}.calendar-year-month header strong{font-size:12px;font-weight:700;text-transform:capitalize}.calendar-year-month header span{font-size:10px;font-weight:700;color:var(--primary);background:var(--primary-light);border-radius:999px;padding:1px 6px;min-width:18px;text-align:center}.calendar-year-days{display:grid;grid-template-columns:repeat(7,1fr);gap:2px}.calendar-year-days i{display:grid;place-items:center;height:18px;border-radius:4px;font-size:9px;font-style:normal;color:var(--text-muted)}.calendar-year-weekday{font-weight:700;opacity:.55}.calendar-year-day.has-events{background:var(--primary-light);color:var(--primary);font-weight:700}.calendar-year-day.has-overdue{background:var(--danger-light);color:var(--danger);font-weight:700}.calendar-year-day.is-today{outline:1.5px solid var(--primary)}.placeholder\:text-gray-400::-moz-placeholder{--tw-text-opacity: 1;color:rgb(156 163 175 / var(--tw-text-opacity, 1))}.placeholder\:text-gray-400::placeholder{--tw-text-opacity: 1;color:rgb(156 163 175 / var(--tw-text-opacity, 1))}.first\:mt-1:first-child{margin-top:.25rem}.last\:border-0:last-child{border-width:0px}.last\:pb-0:last-child{padding-bottom:0}.focus-within\:ring-2:focus-within{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.focus-within\:ring-blue-600:focus-within{--tw-ring-opacity: 1;--tw-ring-color: rgb(37 99 235 / var(--tw-ring-opacity, 1))}.hover\:scale-105:hover{--tw-scale-x: 1.05;--tw-scale-y: 1.05;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.hover\:border-gray-200:hover{--tw-border-opacity: 1;border-color:rgb(229 231 235 / var(--tw-border-opacity, 1))}.hover\:border-gray-300:hover{--tw-border-opacity: 1;border-color:rgb(209 213 219 / var(--tw-border-opacity, 1))}.hover\:border-green-600:hover{--tw-border-opacity: 1;border-color:rgb(22 163 74 / var(--tw-border-opacity, 1))}.hover\:border-orange-200:hover{--tw-border-opacity: 1;border-color:rgb(254 215 170 / var(--tw-border-opacity, 1))}.hover\:border-red-100:hover{--tw-border-opacity: 1;border-color:rgb(254 226 226 / var(--tw-border-opacity, 1))}.hover\:border-red-200:hover{--tw-border-opacity: 1;border-color:rgb(254 202 202 / var(--tw-border-opacity, 1))}.hover\:bg-blue-100:hover{--tw-bg-opacity: 1;background-color:rgb(219 234 254 / var(--tw-bg-opacity, 1))}.hover\:bg-blue-50:hover{--tw-bg-opacity: 1;background-color:rgb(239 246 255 / var(--tw-bg-opacity, 1))}.hover\:bg-blue-700:hover{--tw-bg-opacity: 1;background-color:rgb(29 78 216 / var(--tw-bg-opacity, 1))}.hover\:bg-emerald-50:hover{--tw-bg-opacity: 1;background-color:rgb(236 253 245 / var(--tw-bg-opacity, 1))}.hover\:bg-emerald-700:hover{--tw-bg-opacity: 1;background-color:rgb(4 120 87 / var(--tw-bg-opacity, 1))}.hover\:bg-gray-100:hover{--tw-bg-opacity: 1;background-color:rgb(243 244 246 / var(--tw-bg-opacity, 1))}.hover\:bg-gray-100\/80:hover{background-color:#f3f4f6cc}.hover\:bg-gray-200:hover{--tw-bg-opacity: 1;background-color:rgb(229 231 235 / var(--tw-bg-opacity, 1))}.hover\:bg-gray-50:hover{--tw-bg-opacity: 1;background-color:rgb(249 250 251 / var(--tw-bg-opacity, 1))}.hover\:bg-indigo-700:hover{--tw-bg-opacity: 1;background-color:rgb(67 56 202 / var(--tw-bg-opacity, 1))}.hover\:bg-orange-50:hover{--tw-bg-opacity: 1;background-color:rgb(255 247 237 / var(--tw-bg-opacity, 1))}.hover\:bg-red-50:hover{--tw-bg-opacity: 1;background-color:rgb(254 242 242 / var(--tw-bg-opacity, 1))}.hover\:bg-red-700:hover{--tw-bg-opacity: 1;background-color:rgb(185 28 28 / var(--tw-bg-opacity, 1))}.hover\:bg-white:hover{--tw-bg-opacity: 1;background-color:rgb(255 255 255 / var(--tw-bg-opacity, 1))}.hover\:bg-white\/70:hover{background-color:#ffffffb3}.hover\:text-blue-600:hover{--tw-text-opacity: 1;color:rgb(37 99 235 / var(--tw-text-opacity, 1))}.hover\:text-blue-700:hover{--tw-text-opacity: 1;color:rgb(29 78 216 / var(--tw-text-opacity, 1))}.hover\:text-emerald-700:hover{--tw-text-opacity: 1;color:rgb(4 120 87 / var(--tw-text-opacity, 1))}.hover\:text-emerald-900:hover{--tw-text-opacity: 1;color:rgb(6 78 59 / var(--tw-text-opacity, 1))}.hover\:text-gray-700:hover{--tw-text-opacity: 1;color:rgb(55 65 81 / var(--tw-text-opacity, 1))}.hover\:text-gray-800:hover{--tw-text-opacity: 1;color:rgb(31 41 55 / var(--tw-text-opacity, 1))}.hover\:text-gray-900:hover{--tw-text-opacity: 1;color:rgb(17 24 39 / var(--tw-text-opacity, 1))}.hover\:text-orange-600:hover{--tw-text-opacity: 1;color:rgb(234 88 12 / var(--tw-text-opacity, 1))}.hover\:text-red-600:hover{--tw-text-opacity: 1;color:rgb(220 38 38 / var(--tw-text-opacity, 1))}.hover\:text-red-700:hover{--tw-text-opacity: 1;color:rgb(185 28 28 / var(--tw-text-opacity, 1))}.hover\:underline:hover{text-decoration-line:underline}.hover\:no-underline:hover{text-decoration-line:none}.hover\:opacity-100:hover{opacity:1}.hover\:opacity-90:hover{opacity:.9}.hover\:shadow-md:hover{--tw-shadow: 0 4px 6px -1px rgb(0 0 0 / .1), 0 2px 4px -2px rgb(0 0 0 / .1);--tw-shadow-colored: 0 4px 6px -1px var(--tw-shadow-color), 0 2px 4px -2px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.focus\:border-blue-500:focus{--tw-border-opacity: 1;border-color:rgb(59 130 246 / var(--tw-border-opacity, 1))}.focus\:outline-none:focus{outline:2px solid transparent;outline-offset:2px}.focus\:ring-0:focus{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(0px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.focus\:ring-2:focus{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.focus\:ring-inset:focus{--tw-ring-inset: inset}.focus\:ring-blue-500\/20:focus{--tw-ring-color: rgb(59 130 246 / .2)}.focus\:ring-blue-600:focus{--tw-ring-opacity: 1;--tw-ring-color: rgb(37 99 235 / var(--tw-ring-opacity, 1))}.focus-visible\:outline-blue-600:focus-visible{outline-color:#2563eb}.focus-visible\:outline-red-600:focus-visible{outline-color:#dc2626}.disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\:opacity-50:disabled{opacity:.5}.disabled\:opacity-60:disabled{opacity:.6}.disabled\:shadow-none:disabled{--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.disabled\:hover\:bg-indigo-600:hover:disabled{--tw-bg-opacity: 1;background-color:rgb(79 70 229 / var(--tw-bg-opacity, 1))}.group:hover .group-hover\:scale-110{--tw-scale-x: 1.1;--tw-scale-y: 1.1;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.group:hover .group-hover\:bg-white\/25{background-color:#ffffff40}.group:hover .group-hover\:text-gray-600{--tw-text-opacity: 1;color:rgb(75 85 99 / var(--tw-text-opacity, 1))}.group:hover .group-hover\:text-orange-600{--tw-text-opacity: 1;color:rgb(234 88 12 / var(--tw-text-opacity, 1))}.group:hover .group-hover\:opacity-0{opacity:0}.group:hover .group-hover\:opacity-100{opacity:1}.dark\:divide-neutral-800:is(.dark *)>:not([hidden])~:not([hidden]){--tw-divide-opacity: 1;border-color:rgb(38 38 38 / var(--tw-divide-opacity, 1))}.dark\:border-amber-500\/20:is(.dark *){border-color:#f59e0b33}.dark\:border-amber-500\/30:is(.dark *){border-color:#f59e0b4d}.dark\:border-amber-800\/50:is(.dark *){border-color:#92400e80}.dark\:border-blue-400:is(.dark *){--tw-border-opacity: 1;border-color:rgb(96 165 250 / var(--tw-border-opacity, 1))}.dark\:border-blue-500\/20:is(.dark *){border-color:#3b82f633}.dark\:border-blue-500\/30:is(.dark *){border-color:#3b82f64d}.dark\:border-blue-500\/40:is(.dark *){border-color:#3b82f666}.dark\:border-blue-800\/50:is(.dark *){border-color:#1e40af80}.dark\:border-blue-900\/40:is(.dark *){border-color:#1e3a8a66}.dark\:border-blue-900\/50:is(.dark *){border-color:#1e3a8a80}.dark\:border-emerald-700:is(.dark *){--tw-border-opacity: 1;border-color:rgb(4 120 87 / var(--tw-border-opacity, 1))}.dark\:border-emerald-800\/50:is(.dark *){border-color:#065f4680}.dark\:border-green-500:is(.dark *){--tw-border-opacity: 1;border-color:rgb(34 197 94 / var(--tw-border-opacity, 1))}.dark\:border-green-500\/20:is(.dark *){border-color:#22c55e33}.dark\:border-indigo-900\/30:is(.dark *){border-color:#312e814d}.dark\:border-indigo-900\/50:is(.dark *){border-color:#312e8180}.dark\:border-neutral-600:is(.dark *){--tw-border-opacity: 1;border-color:rgb(82 82 82 / var(--tw-border-opacity, 1))}.dark\:border-neutral-700:is(.dark *){--tw-border-opacity: 1;border-color:rgb(64 64 64 / var(--tw-border-opacity, 1))}.dark\:border-neutral-700\/50:is(.dark *){border-color:#40404080}.dark\:border-neutral-800:is(.dark *){--tw-border-opacity: 1;border-color:rgb(38 38 38 / var(--tw-border-opacity, 1))}.dark\:border-neutral-800\/60:is(.dark *){border-color:#26262699}.dark\:border-neutral-800\/70:is(.dark *){border-color:#262626b3}.dark\:border-red-900\/30:is(.dark *){border-color:#7f1d1d4d}.dark\:border-red-900\/50:is(.dark *){border-color:#7f1d1d80}.dark\:bg-\[\#0a0a0a\]\/50:is(.dark *){background-color:#0a0a0a80}.dark\:bg-\[\#0a0a0a\]\/80:is(.dark *){background-color:#0a0a0acc}.dark\:bg-amber-500\/10:is(.dark *){background-color:#f59e0b1a}.dark\:bg-amber-500\/5:is(.dark *){background-color:#f59e0b0d}.dark\:bg-amber-900:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(120 53 15 / var(--tw-bg-opacity, 1))}.dark\:bg-amber-900\/20:is(.dark *){background-color:#78350f33}.dark\:bg-amber-900\/40:is(.dark *){background-color:#78350f66}.dark\:bg-amber-900\/50:is(.dark *){background-color:#78350f80}.dark\:bg-black\/20:is(.dark *){background-color:#0003}.dark\:bg-blue-500\/10:is(.dark *){background-color:#3b82f61a}.dark\:bg-blue-500\/5:is(.dark *){background-color:#3b82f60d}.dark\:bg-blue-900\/10:is(.dark *){background-color:#1e3a8a1a}.dark\:bg-blue-900\/20:is(.dark *){background-color:#1e3a8a33}.dark\:bg-blue-900\/30:is(.dark *){background-color:#1e3a8a4d}.dark\:bg-blue-900\/40:is(.dark *){background-color:#1e3a8a66}.dark\:bg-blue-900\/50:is(.dark *){background-color:#1e3a8a80}.dark\:bg-emerald-500\/10:is(.dark *){background-color:#10b9811a}.dark\:bg-emerald-800:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(6 95 70 / var(--tw-bg-opacity, 1))}.dark\:bg-emerald-900:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(6 78 59 / var(--tw-bg-opacity, 1))}.dark\:bg-emerald-900\/40:is(.dark *){background-color:#064e3b66}.dark\:bg-emerald-900\/50:is(.dark *){background-color:#064e3b80}.dark\:bg-emerald-900\/70:is(.dark *){background-color:#064e3bb3}.dark\:bg-green-500:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(34 197 94 / var(--tw-bg-opacity, 1))}.dark\:bg-green-500\/10:is(.dark *){background-color:#22c55e1a}.dark\:bg-green-500\/20:is(.dark *){background-color:#22c55e33}.dark\:bg-green-500\/5:is(.dark *){background-color:#22c55e0d}.dark\:bg-green-900\/20:is(.dark *){background-color:#14532d33}.dark\:bg-green-900\/50:is(.dark *){background-color:#14532d80}.dark\:bg-indigo-900\/10:is(.dark *){background-color:#312e811a}.dark\:bg-indigo-900\/20:is(.dark *){background-color:#312e8133}.dark\:bg-indigo-900\/30:is(.dark *){background-color:#312e814d}.dark\:bg-indigo-900\/40:is(.dark *){background-color:#312e8166}.dark\:bg-indigo-900\/60:is(.dark *){background-color:#312e8199}.dark\:bg-neutral-500:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(115 115 115 / var(--tw-bg-opacity, 1))}.dark\:bg-neutral-600:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(82 82 82 / var(--tw-bg-opacity, 1))}.dark\:bg-neutral-700:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(64 64 64 / var(--tw-bg-opacity, 1))}.dark\:bg-neutral-800:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(38 38 38 / var(--tw-bg-opacity, 1))}.dark\:bg-neutral-800\/30:is(.dark *){background-color:#2626264d}.dark\:bg-neutral-800\/40:is(.dark *){background-color:#26262666}.dark\:bg-neutral-800\/60:is(.dark *){background-color:#26262699}.dark\:bg-neutral-900:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(23 23 23 / var(--tw-bg-opacity, 1))}.dark\:bg-neutral-900\/40:is(.dark *){background-color:#17171766}.dark\:bg-neutral-900\/50:is(.dark *){background-color:#17171780}.dark\:bg-neutral-950:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(10 10 10 / var(--tw-bg-opacity, 1))}.dark\:bg-orange-700:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(194 65 12 / var(--tw-bg-opacity, 1))}.dark\:bg-orange-900\/20:is(.dark *){background-color:#7c2d1233}.dark\:bg-red-500\/10:is(.dark *){background-color:#ef44441a}.dark\:bg-red-500\/20:is(.dark *){background-color:#ef444433}.dark\:bg-red-900\/20:is(.dark *){background-color:#7f1d1d33}.dark\:bg-violet-500\/10:is(.dark *){background-color:#8b5cf61a}.dark\:bg-violet-500\/15:is(.dark *){background-color:#8b5cf626}.dark\:bg-white:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(255 255 255 / var(--tw-bg-opacity, 1))}.dark\:from-emerald-900\/20:is(.dark *){--tw-gradient-from: rgb(6 78 59 / .2) var(--tw-gradient-from-position);--tw-gradient-to: rgb(6 78 59 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.dark\:from-white:is(.dark *){--tw-gradient-from: #fff var(--tw-gradient-from-position);--tw-gradient-to: rgb(255 255 255 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.dark\:to-gray-400:is(.dark *){--tw-gradient-to: #9ca3af var(--tw-gradient-to-position)}.dark\:to-teal-900\/20:is(.dark *){--tw-gradient-to: rgb(19 78 74 / .2) var(--tw-gradient-to-position)}.dark\:text-amber-100:is(.dark *){--tw-text-opacity: 1;color:rgb(254 243 199 / var(--tw-text-opacity, 1))}.dark\:text-amber-300:is(.dark *){--tw-text-opacity: 1;color:rgb(252 211 77 / var(--tw-text-opacity, 1))}.dark\:text-amber-400:is(.dark *){--tw-text-opacity: 1;color:rgb(251 191 36 / var(--tw-text-opacity, 1))}.dark\:text-amber-500\/80:is(.dark *){color:#f59e0bcc}.dark\:text-black:is(.dark *){--tw-text-opacity: 1;color:rgb(0 0 0 / var(--tw-text-opacity, 1))}.dark\:text-blue-100:is(.dark *){--tw-text-opacity: 1;color:rgb(219 234 254 / var(--tw-text-opacity, 1))}.dark\:text-blue-300:is(.dark *){--tw-text-opacity: 1;color:rgb(147 197 253 / var(--tw-text-opacity, 1))}.dark\:text-blue-400:is(.dark *){--tw-text-opacity: 1;color:rgb(96 165 250 / var(--tw-text-opacity, 1))}.dark\:text-emerald-200:is(.dark *){--tw-text-opacity: 1;color:rgb(167 243 208 / var(--tw-text-opacity, 1))}.dark\:text-emerald-300:is(.dark *){--tw-text-opacity: 1;color:rgb(110 231 183 / var(--tw-text-opacity, 1))}.dark\:text-emerald-400:is(.dark *){--tw-text-opacity: 1;color:rgb(52 211 153 / var(--tw-text-opacity, 1))}.dark\:text-gray-100:is(.dark *){--tw-text-opacity: 1;color:rgb(243 244 246 / var(--tw-text-opacity, 1))}.dark\:text-gray-300:is(.dark *){--tw-text-opacity: 1;color:rgb(209 213 219 / var(--tw-text-opacity, 1))}.dark\:text-green-300:is(.dark *){--tw-text-opacity: 1;color:rgb(134 239 172 / var(--tw-text-opacity, 1))}.dark\:text-green-400:is(.dark *){--tw-text-opacity: 1;color:rgb(74 222 128 / var(--tw-text-opacity, 1))}.dark\:text-indigo-200:is(.dark *){--tw-text-opacity: 1;color:rgb(199 210 254 / var(--tw-text-opacity, 1))}.dark\:text-indigo-300:is(.dark *){--tw-text-opacity: 1;color:rgb(165 180 252 / var(--tw-text-opacity, 1))}.dark\:text-indigo-300\/80:is(.dark *){color:#a5b4fccc}.dark\:text-indigo-400:is(.dark *){--tw-text-opacity: 1;color:rgb(129 140 248 / var(--tw-text-opacity, 1))}.dark\:text-indigo-400\/80:is(.dark *){color:#818cf8cc}.dark\:text-neutral-100:is(.dark *){--tw-text-opacity: 1;color:rgb(245 245 245 / var(--tw-text-opacity, 1))}.dark\:text-neutral-200:is(.dark *){--tw-text-opacity: 1;color:rgb(229 229 229 / var(--tw-text-opacity, 1))}.dark\:text-neutral-300:is(.dark *){--tw-text-opacity: 1;color:rgb(212 212 212 / var(--tw-text-opacity, 1))}.dark\:text-neutral-400:is(.dark *){--tw-text-opacity: 1;color:rgb(163 163 163 / var(--tw-text-opacity, 1))}.dark\:text-neutral-50:is(.dark *){--tw-text-opacity: 1;color:rgb(250 250 250 / var(--tw-text-opacity, 1))}.dark\:text-neutral-500:is(.dark *){--tw-text-opacity: 1;color:rgb(115 115 115 / var(--tw-text-opacity, 1))}.dark\:text-neutral-600:is(.dark *){--tw-text-opacity: 1;color:rgb(82 82 82 / var(--tw-text-opacity, 1))}.dark\:text-orange-400:is(.dark *){--tw-text-opacity: 1;color:rgb(251 146 60 / var(--tw-text-opacity, 1))}.dark\:text-orange-500\/80:is(.dark *){color:#f97316cc}.dark\:text-red-100:is(.dark *){--tw-text-opacity: 1;color:rgb(254 226 226 / var(--tw-text-opacity, 1))}.dark\:text-red-300:is(.dark *){--tw-text-opacity: 1;color:rgb(252 165 165 / var(--tw-text-opacity, 1))}.dark\:text-red-400:is(.dark *){--tw-text-opacity: 1;color:rgb(248 113 113 / var(--tw-text-opacity, 1))}.dark\:text-violet-300:is(.dark *){--tw-text-opacity: 1;color:rgb(196 181 253 / var(--tw-text-opacity, 1))}.dark\:text-white:is(.dark *){--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity, 1))}.dark\:shadow-none:is(.dark *){--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.dark\:ring-amber-500\/30:is(.dark *){--tw-ring-color: rgb(245 158 11 / .3)}.dark\:ring-amber-500\/40:is(.dark *){--tw-ring-color: rgb(245 158 11 / .4)}.dark\:ring-blue-500\/30:is(.dark *){--tw-ring-color: rgb(59 130 246 / .3)}.dark\:ring-green-500\/30:is(.dark *){--tw-ring-color: rgb(34 197 94 / .3)}.dark\:ring-neutral-700:is(.dark *){--tw-ring-opacity: 1;--tw-ring-color: rgb(64 64 64 / var(--tw-ring-opacity, 1))}.dark\:ring-red-500\/30:is(.dark *){--tw-ring-color: rgb(239 68 68 / .3)}.dark\:ring-violet-500\/30:is(.dark *){--tw-ring-color: rgb(139 92 246 / .3)}.dark\:placeholder\:text-neutral-500:is(.dark *)::-moz-placeholder{--tw-text-opacity: 1;color:rgb(115 115 115 / var(--tw-text-opacity, 1))}.dark\:placeholder\:text-neutral-500:is(.dark *)::placeholder{--tw-text-opacity: 1;color:rgb(115 115 115 / var(--tw-text-opacity, 1))}.dark\:hover\:border-neutral-700:hover:is(.dark *){--tw-border-opacity: 1;border-color:rgb(64 64 64 / var(--tw-border-opacity, 1))}.dark\:hover\:border-orange-800\/50:hover:is(.dark *){border-color:#9a341280}.dark\:hover\:border-red-900\/30:hover:is(.dark *){border-color:#7f1d1d4d}.dark\:hover\:border-red-900\/50:hover:is(.dark *){border-color:#7f1d1d80}.dark\:hover\:bg-blue-500\/20:hover:is(.dark *){background-color:#3b82f633}.dark\:hover\:bg-blue-900\/20:hover:is(.dark *){background-color:#1e3a8a33}.dark\:hover\:bg-emerald-900\/30:hover:is(.dark *){background-color:#064e3b4d}.dark\:hover\:bg-neutral-700:hover:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(64 64 64 / var(--tw-bg-opacity, 1))}.dark\:hover\:bg-neutral-800:hover:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(38 38 38 / var(--tw-bg-opacity, 1))}.dark\:hover\:bg-neutral-800\/40:hover:is(.dark *){background-color:#26262666}.dark\:hover\:bg-neutral-800\/50:hover:is(.dark *){background-color:#26262680}.dark\:hover\:bg-neutral-800\/60:hover:is(.dark *){background-color:#26262699}.dark\:hover\:bg-orange-900\/20:hover:is(.dark *){background-color:#7c2d1233}.dark\:hover\:bg-red-900\/20:hover:is(.dark *){background-color:#7f1d1d33}.dark\:hover\:bg-red-900\/30:hover:is(.dark *){background-color:#7f1d1d4d}.dark\:hover\:text-blue-400:hover:is(.dark *){--tw-text-opacity: 1;color:rgb(96 165 250 / var(--tw-text-opacity, 1))}.dark\:hover\:text-emerald-300:hover:is(.dark *){--tw-text-opacity: 1;color:rgb(110 231 183 / var(--tw-text-opacity, 1))}.dark\:hover\:text-emerald-400:hover:is(.dark *){--tw-text-opacity: 1;color:rgb(52 211 153 / var(--tw-text-opacity, 1))}.dark\:hover\:text-neutral-100:hover:is(.dark *){--tw-text-opacity: 1;color:rgb(245 245 245 / var(--tw-text-opacity, 1))}.dark\:hover\:text-neutral-200:hover:is(.dark *){--tw-text-opacity: 1;color:rgb(229 229 229 / var(--tw-text-opacity, 1))}.dark\:hover\:text-neutral-300:hover:is(.dark *){--tw-text-opacity: 1;color:rgb(212 212 212 / var(--tw-text-opacity, 1))}.dark\:hover\:text-orange-400:hover:is(.dark *){--tw-text-opacity: 1;color:rgb(251 146 60 / var(--tw-text-opacity, 1))}.dark\:hover\:text-red-300:hover:is(.dark *){--tw-text-opacity: 1;color:rgb(252 165 165 / var(--tw-text-opacity, 1))}.dark\:hover\:text-red-400:hover:is(.dark *){--tw-text-opacity: 1;color:rgb(248 113 113 / var(--tw-text-opacity, 1))}.dark\:hover\:text-white:hover:is(.dark *){--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity, 1))}.group:hover .dark\:group-hover\:text-neutral-300:is(.dark *){--tw-text-opacity: 1;color:rgb(212 212 212 / var(--tw-text-opacity, 1))}.group:hover .dark\:group-hover\:text-orange-300:is(.dark *){--tw-text-opacity: 1;color:rgb(253 186 116 / var(--tw-text-opacity, 1))}@media (min-width: 640px){.sm\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.sm\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.sm\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.sm\:flex-row{flex-direction:row}.sm\:items-center{align-items:center}}@media (min-width: 768px){.md\:col-span-1{grid-column:span 1 / span 1}.md\:col-span-2{grid-column:span 2 / span 2}.md\:col-span-3{grid-column:span 3 / span 3}.md\:hidden{display:none}.md\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.md\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.md\:grid-cols-\[1fr_1\.2fr\]{grid-template-columns:1fr 1.2fr}.md\:flex-row{flex-direction:row}.md\:flex-col{flex-direction:column}.md\:items-start{align-items:flex-start}.md\:items-end{align-items:flex-end}.md\:border-t-0{border-top-width:0px}.md\:p-5{padding:1.25rem}.md\:p-8{padding:2rem}.md\:pt-0{padding-top:0}.md\:text-4xl{font-size:2.25rem;line-height:2.5rem}}@media (min-width: 1024px){.lg\:col-span-2{grid-column:span 2 / span 2}.lg\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.lg\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (min-width: 1280px){.xl\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.xl\:flex-row{flex-direction:row}.xl\:items-center{align-items:center}.xl\:justify-end{justify-content:flex-end}}
