@import"https://fonts.googleapis.com/css2?family=Sen&display=swap";/*! tailwindcss v4.1.3 | MIT License | https://tailwindcss.com */@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-translate-x:0;--tw-translate-y:0;--tw-translate-z:0;--tw-rotate-x:rotateX(0);--tw-rotate-y:rotateY(0);--tw-rotate-z:rotateZ(0);--tw-skew-x:skewX(0);--tw-skew-y:skewY(0);--tw-space-x-reverse:0;--tw-border-style:solid;--tw-leading:initial;--tw-font-weight:initial;--tw-tracking:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-outline-style:solid;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial;--tw-backdrop-blur:initial;--tw-backdrop-brightness:initial;--tw-backdrop-contrast:initial;--tw-backdrop-grayscale:initial;--tw-backdrop-hue-rotate:initial;--tw-backdrop-invert:initial;--tw-backdrop-opacity:initial;--tw-backdrop-saturate:initial;--tw-backdrop-sepia:initial;--tw-ease:initial;--tw-scale-x:1;--tw-scale-y:1;--tw-scale-z:1;--tw-gradient-position:initial;--tw-gradient-from:#0000;--tw-gradient-via:#0000;--tw-gradient-to:#0000;--tw-gradient-stops:initial;--tw-gradient-via-stops:initial;--tw-gradient-from-position:0%;--tw-gradient-via-position:50%;--tw-gradient-to-position:100%}}}@layer theme{:root,:host{--font-sans:ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";--font-mono:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;--color-red-500:oklch(63.7% .237 25.331);--color-red-700:oklch(50.5% .213 27.518);--color-yellow-50:oklch(98.7% .026 102.212);--color-yellow-400:oklch(85.2% .199 91.936);--color-yellow-500:oklch(79.5% .184 86.047);--color-green-400:oklch(79.2% .209 151.711);--color-green-500:oklch(72.3% .219 149.579);--color-cyan-200:oklch(91.7% .08 205.041);--color-blue-300:oklch(80.9% .105 251.813);--color-blue-500:oklch(62.3% .214 259.815);--color-gray-100:oklch(96.7% .003 264.542);--color-gray-200:oklch(92.8% .006 264.531);--color-gray-300:oklch(87.2% .01 258.338);--color-gray-400:oklch(70.7% .022 261.325);--color-gray-500:oklch(55.1% .027 264.364);--color-gray-800:oklch(27.8% .033 256.848);--color-black:#000;--color-white:#fff;--spacing:4px;--text-xs:.75rem;--text-xs--line-height:calc(1/.75);--text-sm:.875rem;--text-sm--line-height:calc(1.25/.875);--text-base:1rem;--text-base--line-height: 1.5 ;--text-lg:1.125rem;--text-lg--line-height:calc(1.75/1.125);--text-xl:1.25rem;--text-xl--line-height:calc(1.75/1.25);--text-2xl:1.5rem;--text-2xl--line-height:calc(2/1.5);--text-3xl:1.875rem;--text-3xl--line-height: 1.2 ;--text-5xl:3rem;--text-5xl--line-height:1;--font-weight-normal:400;--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--tracking-wide:.025em;--leading-relaxed:1.625;--leading-loose:2;--radius-xs:.125rem;--radius-sm:.25rem;--radius-md:.375rem;--radius-lg:.5rem;--radius-xl:.75rem;--radius-2xl:1rem;--ease-in:cubic-bezier(.4,0,1,1);--ease-out:cubic-bezier(0,0,.2,1);--ease-in-out:cubic-bezier(.4,0,.2,1);--animate-spin:spin 1s linear infinite;--blur-sm:8px;--blur-md:12px;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4,0,.2,1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;-moz-tab-size:4;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab,red,red)){::placeholder{color:color-mix(in oklab,currentcolor 50%,transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){-webkit-appearance:button;-moz-appearance:button;appearance:button}::file-selector-button{-webkit-appearance:button;-moz-appearance:button;appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}body{--tw-gradient-position:to right in oklab;background-image:linear-gradient(var(--tw-gradient-stops));--tw-gradient-from:var(--color-cyan-200);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position));--tw-gradient-to:var(--color-blue-300)}html,*{font-family:sen}::-webkit-scrollbar{background:0 0;width:0;height:0}input:focus,select:focus{--tw-outline-style:none;outline-style:none}button{cursor:pointer}.boarding{background-image:linear-gradient(70deg,#0a28281a,#0a282833),url(https://wallpaperaccess.com/full/1508713.jpg);background-position:50%;background-repeat:no-repeat}.loader{animation:1s ease-in infinite forwards loader}.slide-up{animation:60ms ease-in 20ms alternate forwards slide-up}@keyframes loader{0%{background-color:#fff;width:10px;height:5px}to{background-color:orange;border-radius:2%;width:180px;height:5px}}}@layer components;@layer utilities{.visible{visibility:visible}.sr-only{clip:rect(0,0,0,0);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.static{position:static}.sticky{position:sticky}.-top-2{top:calc(var(--spacing)*-2)}.top-5{top:calc(var(--spacing)*5)}.-right-1{right:calc(var(--spacing)*-1)}.right-4{right:calc(var(--spacing)*4)}.right-5{right:calc(var(--spacing)*5)}.bottom-0{bottom:calc(var(--spacing)*0)}.bottom-4{bottom:calc(var(--spacing)*4)}.left-0{left:calc(var(--spacing)*0)}.z-0{z-index:0}.z-50{z-index:50}.container{width:100%}@media (min-width:40rem){.container{max-width:40rem}}@media (min-width:48rem){.container{max-width:48rem}}@media (min-width:64rem){.container{max-width:64rem}}@media (min-width:80rem){.container{max-width:80rem}}@media (min-width:96rem){.container{max-width:96rem}}.m-1{margin:calc(var(--spacing)*1)}.m-2{margin:calc(var(--spacing)*2)}.mx-2{margin-inline:calc(var(--spacing)*2)}.my-2{margin-block:calc(var(--spacing)*2)}.my-3{margin-block:calc(var(--spacing)*3)}.my-4{margin-block:calc(var(--spacing)*4)}.mt-2{margin-top:calc(var(--spacing)*2)}.mt-3{margin-top:calc(var(--spacing)*3)}.mt-4{margin-top:calc(var(--spacing)*4)}.mb-1{margin-bottom:calc(var(--spacing)*1)}.mb-2{margin-bottom:calc(var(--spacing)*2)}.block{display:block}.contents{display:contents}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline{display:inline}.table{display:table}.h-1\/2{height:50%}.h-4{height:calc(var(--spacing)*4)}.h-10{height:calc(var(--spacing)*10)}.h-12{height:calc(var(--spacing)*12)}.h-20{height:calc(var(--spacing)*20)}.h-28{height:calc(var(--spacing)*28)}.h-48{height:calc(var(--spacing)*48)}.h-96{height:calc(var(--spacing)*96)}.h-\[50vh\]{height:50vh}.h-\[100px\]{height:100px}.h-\[120px\]{height:120px}.h-auto{height:auto}.h-full{height:100%}.h-screen{height:100vh}.min-h-80{min-height:calc(var(--spacing)*80)}.min-h-96{min-height:calc(var(--spacing)*96)}.w-1\/2{width:50%}.w-3\/4{width:75%}.w-4{width:calc(var(--spacing)*4)}.w-4\/5{width:80%}.w-10{width:calc(var(--spacing)*10)}.w-12{width:calc(var(--spacing)*12)}.w-20{width:calc(var(--spacing)*20)}.w-48{width:calc(var(--spacing)*48)}.w-72{width:calc(var(--spacing)*72)}.w-\[48\%\]{width:48%}.w-\[80\%\]{width:80%}.w-\[90\%\]{width:90%}.w-\[100px\]{width:100px}.w-auto{width:auto}.w-full{width:100%}.w-screen{width:100vw}.flex-1{flex:1}.table-auto{table-layout:auto}.table-fixed{table-layout:fixed}.translate-z-12{--tw-translate-z:calc(var(--spacing)*12);translate:var(--tw-translate-x)var(--tw-translate-y)var(--tw-translate-z)}.rotate-x-0{--tw-rotate-x:rotateX(0deg);transform:var(--tw-rotate-x)var(--tw-rotate-y)var(--tw-rotate-z)var(--tw-skew-x)var(--tw-skew-y)}.transform{transform:var(--tw-rotate-x)var(--tw-rotate-y)var(--tw-rotate-z)var(--tw-skew-x)var(--tw-skew-y)}.animate-spin{animation:var(--animate-spin)}.cursor-pointer{cursor:pointer}.resize{resize:both}.flex-col{flex-direction:column}.flex-row{flex-direction:row}.flex-wrap{flex-wrap:wrap}.items-center{align-items:center}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.gap-2{gap:calc(var(--spacing)*2)}.gap-3{gap:calc(var(--spacing)*3)}.gap-5{gap:calc(var(--spacing)*5)}.gap-8{gap:calc(var(--spacing)*8)}:where(.space-x-2>:not(:last-child)){--tw-space-x-reverse:0;margin-inline-start:calc(calc(var(--spacing)*2)*var(--tw-space-x-reverse));margin-inline-end:calc(calc(var(--spacing)*2)*calc(1 - var(--tw-space-x-reverse)))}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.overflow-y-auto{overflow-y:auto}.rounded{border-radius:.25rem}.rounded-full{border-radius:3.40282e38px}.rounded-lg{border-radius:var(--radius-lg)}.rounded-md{border-radius:var(--radius-md)}.rounded-sm{border-radius:var(--radius-sm)}.rounded-xl{border-radius:var(--radius-xl)}.rounded-xs{border-radius:var(--radius-xs)}.rounded-t-2xl{border-top-left-radius:var(--radius-2xl);border-top-right-radius:var(--radius-2xl)}.rounded-t-md{border-top-left-radius:var(--radius-md);border-top-right-radius:var(--radius-md)}.rounded-l-full{border-top-left-radius:3.40282e38px;border-bottom-left-radius:3.40282e38px}.border{border-style:var(--tw-border-style);border-width:1px}.border-2{border-style:var(--tw-border-style);border-width:2px}.border-x-2{border-inline-style:var(--tw-border-style);border-inline-width:2px}.border-y{border-block-style:var(--tw-border-style);border-block-width:1px}.border-y-2{border-block-style:var(--tw-border-style);border-block-width:2px}.border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.border-t-2{border-top-style:var(--tw-border-style);border-top-width:2px}.border-b{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.border-none{--tw-border-style:none;border-style:none}.border-gray-300{border-color:var(--color-gray-300)}.border-gray-400{border-color:var(--color-gray-400)}.border-red-700{border-color:var(--color-red-700)}.border-x-blue-500{border-inline-color:var(--color-blue-500)}.border-b-gray-200{border-bottom-color:var(--color-gray-200)}.border-b-gray-400{border-bottom-color:var(--color-gray-400)}.bg-\[\#7ccc63\]\/80{background-color:#7ccc63cc}.bg-\[\#0197af\]\/80{background-color:#0197afcc}.bg-\[\#e74c3c\]\/80{background-color:#e74c3ccc}.bg-\[\#f39c12\]\/80{background-color:#f39c12cc}.bg-black{background-color:var(--color-black)}.bg-blue-500{background-color:var(--color-blue-500)}.bg-gray-100{background-color:var(--color-gray-100)}.bg-gray-200{background-color:var(--color-gray-200)}.bg-gray-300{background-color:var(--color-gray-300)}.bg-gray-500{background-color:var(--color-gray-500)}.bg-green-400{background-color:var(--color-green-400)}.bg-green-500{background-color:var(--color-green-500)}.bg-red-500{background-color:var(--color-red-500)}.bg-red-500\/100{background-color:#fb2c36}@supports (color:color-mix(in lab,red,red)){.bg-red-500\/100{background-color:color-mix(in oklab,var(--color-red-500)100%,transparent)}}.bg-white{background-color:var(--color-white)}.bg-white\/40{background-color:#fff6}@supports (color:color-mix(in lab,red,red)){.bg-white\/40{background-color:color-mix(in oklab,var(--color-white)40%,transparent)}}.bg-white\/60{background-color:#fff9}@supports (color:color-mix(in lab,red,red)){.bg-white\/60{background-color:color-mix(in oklab,var(--color-white)60%,transparent)}}.bg-yellow-500{background-color:var(--color-yellow-500)}.bg-cover{background-size:cover}.object-contain{object-fit:contain}.object-cover{object-fit:cover}.p-1{padding:calc(var(--spacing)*1)}.p-2{padding:calc(var(--spacing)*2)}.p-3{padding:calc(var(--spacing)*3)}.p-5{padding:calc(var(--spacing)*5)}.p-20{padding:calc(var(--spacing)*20)}.p-\[2px\]{padding:2px}.px-4{padding-inline:calc(var(--spacing)*4)}.py-2{padding-block:calc(var(--spacing)*2)}.py-5{padding-block:calc(var(--spacing)*5)}.py-10{padding-block:calc(var(--spacing)*10)}.pt-3{padding-top:calc(var(--spacing)*3)}.pb-3{padding-bottom:calc(var(--spacing)*3)}.text-center{text-align:center}.text-left{text-align:left}.text-right{text-align:right}.text-2xl{font-size:var(--text-2xl);line-height:var(--tw-leading,var(--text-2xl--line-height))}.text-3xl{font-size:var(--text-3xl);line-height:var(--tw-leading,var(--text-3xl--line-height))}.text-5xl{font-size:var(--text-5xl);line-height:var(--tw-leading,var(--text-5xl--line-height))}.text-base{font-size:var(--text-base);line-height:var(--tw-leading,var(--text-base--line-height))}.text-lg{font-size:var(--text-lg);line-height:var(--tw-leading,var(--text-lg--line-height))}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.text-xl{font-size:var(--text-xl);line-height:var(--tw-leading,var(--text-xl--line-height))}.text-xs{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.text-\[10px\]{font-size:10px}.leading-loose{--tw-leading:var(--leading-loose);line-height:var(--leading-loose)}.leading-relaxed{--tw-leading:var(--leading-relaxed);line-height:var(--leading-relaxed)}.font-bold{--tw-font-weight:var(--font-weight-bold);font-weight:var(--font-weight-bold)}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.font-normal{--tw-font-weight:var(--font-weight-normal);font-weight:var(--font-weight-normal)}.font-semibold{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.tracking-wide{--tw-tracking:var(--tracking-wide);letter-spacing:var(--tracking-wide)}.whitespace-nowrap{white-space:nowrap}.text-black{color:var(--color-black)}.text-gray-300{color:var(--color-gray-300)}.text-gray-500{color:var(--color-gray-500)}.text-gray-800{color:var(--color-gray-800)}.text-green-500{color:var(--color-green-500)}.text-red-500{color:var(--color-red-500)}.text-red-700{color:var(--color-red-700)}.text-white{color:var(--color-white)}.text-yellow-50{color:var(--color-yellow-50)}.text-yellow-400{color:var(--color-yellow-400)}.text-yellow-500{color:var(--color-yellow-500)}.capitalize{text-transform:capitalize}.lowercase{text-transform:lowercase}.uppercase{text-transform:uppercase}.italic{font-style:italic}.line-through{text-decoration-line:line-through}.overline{text-decoration-line:overline}.underline{text-decoration-line:underline}.shadow{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a),0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-2xl{--tw-shadow:0 25px 50px -12px var(--tw-shadow-color,#00000040);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-lg{--tw-shadow:0 10px 15px -3px var(--tw-shadow-color,#0000001a),0 4px 6px -4px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-md{--tw-shadow:0 4px 6px -1px var(--tw-shadow-color,#0000001a),0 2px 4px -2px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ring{--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(1px + var(--tw-ring-offset-width))var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.outline{outline-style:var(--tw-outline-style);outline-width:1px}.blur{--tw-blur:blur(8px);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,)}.drop-shadow{--tw-drop-shadow-size:drop-shadow(0 1px 2px var(--tw-drop-shadow-color,#0000001a))drop-shadow(0 1px 1px var(--tw-drop-shadow-color,#0000000f));--tw-drop-shadow:drop-shadow(0 1px 2px #0000001a)drop-shadow(0 1px 1px #0000000f);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,)}.grayscale{--tw-grayscale:grayscale(100%);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,)}.grayscale\!{--tw-grayscale:grayscale(100%)!important;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,)!important}.invert{--tw-invert:invert(100%);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,)}.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-md{--tw-backdrop-blur:blur(var(--blur-md));-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(var(--blur-sm));-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{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition\!{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter!important;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function))!important;transition-duration:var(--tw-duration,var(--default-transition-duration))!important}.transition-all{transition-property:all;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.delay-50{transition-delay:50ms}.ease-in{--tw-ease:var(--ease-in);transition-timing-function:var(--ease-in)}.ease-in-out{--tw-ease:var(--ease-in-out);transition-timing-function:var(--ease-in-out)}.ease-out{--tw-ease:var(--ease-out);transition-timing-function:var(--ease-out)}.transform-3d{transform-style:preserve-3d}.placeholder\:text-sm::placeholder{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.odd\:border-y-gray-200:nth-child(odd){border-block-color:var(--color-gray-200)}.even\:border-y-gray-400:nth-child(2n){border-block-color:var(--color-gray-400)}@media (hover:hover){.hover\:scale-105:hover{--tw-scale-x:105%;--tw-scale-y:105%;--tw-scale-z:105%;scale:var(--tw-scale-x)var(--tw-scale-y)}.hover\:transition:hover{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}}@media (min-width:48rem){.md\:left-1\/4{left:25%}.md\:mx-20{margin-inline:calc(var(--spacing)*20)}.md\:mx-40{margin-inline:calc(var(--spacing)*40)}.md\:my-2{margin-block:calc(var(--spacing)*2)}.md\:flex{display:flex}.md\:table-cell{display:table-cell}.md\:h-40{height:calc(var(--spacing)*40)}.md\:w-1\/2{width:50%}.md\:w-1\/4{width:25%}.md\:w-40{width:calc(var(--spacing)*40)}.md\:w-80{width:calc(var(--spacing)*80)}.md\:w-\[30vw\]{width:30vw}.md\:w-\[32\%\]{width:32%}.md\:w-\[35\%\]{width:35%}.md\:w-\[55vw\]{width:55vw}.md\:w-auto{width:auto}.md\:flex-row{flex-direction:row}.md\:flex-nowrap{flex-wrap:nowrap}.md\:p-2{padding:calc(var(--spacing)*2)}.md\:p-20{padding:calc(var(--spacing)*20)}.md\:py-3{padding-block:calc(var(--spacing)*3)}.md\:text-lg{font-size:var(--text-lg);line-height:var(--tw-leading,var(--text-lg--line-height))}.md\:text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}}}@property --tw-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-z{syntax:"*";inherits:false;initial-value:0}@property --tw-rotate-x{syntax:"*";inherits:false;initial-value:rotateX(0)}@property --tw-rotate-y{syntax:"*";inherits:false;initial-value:rotateY(0)}@property --tw-rotate-z{syntax:"*";inherits:false;initial-value:rotateZ(0)}@property --tw-skew-x{syntax:"*";inherits:false;initial-value:skewX(0)}@property --tw-skew-y{syntax:"*";inherits:false;initial-value:skewY(0)}@property --tw-space-x-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-leading{syntax:"*";inherits:false}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-tracking{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-outline-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}@property --tw-backdrop-blur{syntax:"*";inherits:false}@property --tw-backdrop-brightness{syntax:"*";inherits:false}@property --tw-backdrop-contrast{syntax:"*";inherits:false}@property --tw-backdrop-grayscale{syntax:"*";inherits:false}@property --tw-backdrop-hue-rotate{syntax:"*";inherits:false}@property --tw-backdrop-invert{syntax:"*";inherits:false}@property --tw-backdrop-opacity{syntax:"*";inherits:false}@property --tw-backdrop-saturate{syntax:"*";inherits:false}@property --tw-backdrop-sepia{syntax:"*";inherits:false}@property --tw-ease{syntax:"*";inherits:false}@property --tw-scale-x{syntax:"*";inherits:false;initial-value:1}@property --tw-scale-y{syntax:"*";inherits:false;initial-value:1}@property --tw-scale-z{syntax:"*";inherits:false;initial-value:1}@property --tw-gradient-position{syntax:"*";inherits:false}@property --tw-gradient-from{syntax:"<color>";inherits:false;initial-value:#0000}@property --tw-gradient-via{syntax:"<color>";inherits:false;initial-value:#0000}@property --tw-gradient-to{syntax:"<color>";inherits:false;initial-value:#0000}@property --tw-gradient-stops{syntax:"*";inherits:false}@property --tw-gradient-via-stops{syntax:"*";inherits:false}@property --tw-gradient-from-position{syntax:"<length-percentage>";inherits:false;initial-value:0%}@property --tw-gradient-via-position{syntax:"<length-percentage>";inherits:false;initial-value:50%}@property --tw-gradient-to-position{syntax:"<length-percentage>";inherits:false;initial-value:100%}@keyframes spin{to{transform:rotate(360deg)}}.portal-session-warning{position:fixed;bottom:24px;left:50%;transform:translate(-50%);z-index:1000;width:min(560px,calc(100% - 32px));padding:16px 20px;border:1px solid #fcd34d;border-radius:12px;background:#fffbeb;color:#78350f;box-shadow:0 8px 24px #0f172a1a;font-size:14px;line-height:1.5}.portal-layout{--portal-sidebar-width: 256px;min-height:100vh;min-height:100dvh;background:#f8fafc;color:#0f172a;font-size:14px;line-height:1.5}.portal-layout.is-collapsed{--portal-sidebar-width: 80px}.portal-layout :is(a,button):focus-visible{outline:2px solid #f59e0b;outline-offset:3px}.portal-layout button:disabled{cursor:not-allowed}.portal-skip-link{position:fixed;z-index:100;top:12px;left:12px;padding:12px 18px;border-radius:10px;background:#0f172a;color:#fff;transform:translateY(-160%)}.portal-skip-link:focus{transform:translateY(0)}.portal-workspace{min-width:0;margin-left:var(--portal-sidebar-width)}.portal-main-content{min-height:calc(100dvh - 84px);outline:none}.portal-route-content{max-width:1184px;min-height:calc(100dvh - 132px);margin:24px auto;padding:24px;border:1px solid #e2e8f0;border-radius:16px;background:#fff}.portal-main-content:not(.is-dashboard){padding:0 28px 24px}.portal-settings-error{max-width:1120px;margin:20px auto 0;padding:12px 18px;border:1px solid #fecaca;border-radius:10px;background:#fef2f2;color:#b91c1c;font-size:12px}.portal-settings-error button{margin-left:8px;font-weight:600;text-decoration:underline}.portal-icon-button{display:inline-flex;flex-shrink:0;align-items:center;justify-content:center;width:40px;height:40px;border:1px solid transparent;border-radius:10px;background:transparent;color:#64748b;font-size:20px}.portal-icon-button:hover{border-color:#e2e8f0;background:#f8fafc;color:#0f172a}.portal-avatar{display:inline-flex;flex-shrink:0;align-items:center;justify-content:center;width:36px;height:36px;overflow:hidden;border:1px solid #fde68a;border-radius:11px;background:#fffbeb;color:#92400e;font-size:12px;font-weight:700}.portal-avatar img{width:100%;height:100%;object-fit:cover}.portal-sidebar{position:fixed;z-index:40;top:0;bottom:0;left:0;display:flex;flex-direction:column;width:var(--portal-sidebar-width);height:100vh;height:100dvh;border-right:1px solid #e2e8f0;background:#fff}.portal-sidebar-brand{display:flex;flex-shrink:0;align-items:center;justify-content:space-between;min-height:84px;padding:16px 20px;border-bottom:1px solid #f1f5f9}.portal-sidebar-brand>.portal-brand{order:1}.portal-sidebar-brand>.portal-icon-button{order:2}.portal-brand{display:flex;min-width:0;align-items:center;gap:12px}.portal-brand-logo{display:grid;place-items:center;flex-shrink:0;width:40px;height:40px;padding:7px;border:1px solid #f1f5f9;border-radius:12px;background:#f8fafc}.portal-brand-logo img{width:100%;height:100%;object-fit:contain}.portal-brand-copy{min-width:0}.portal-brand-copy strong{display:block;font-size:13px;font-weight:700;line-height:1.5;overflow-wrap:anywhere}.portal-brand-copy>span{display:block;margin-top:2px;color:#94a3b8;font-size:10px}.portal-sidebar-nav{flex:1;min-height:0;overflow-y:auto;padding:18px 14px 12px;scrollbar-width:thin;scrollbar-color:#e2e8f0 transparent}.portal-nav-group+.portal-nav-group{margin-top:18px}.portal-nav-label{margin:0 12px 8px;color:#94a3b8;font-size:10px;font-weight:700;letter-spacing:.1em;text-transform:uppercase}.portal-nav-link{position:relative;display:flex;align-items:center;gap:12px;min-height:42px;margin:3px 0;padding:10px 12px;border:1px solid transparent;border-radius:10px;color:#64748b;font-size:12px;font-weight:500;transition:background .15s,color .15s}.portal-nav-link>svg{flex-shrink:0;font-size:18px;color:#94a3b8}.portal-nav-link:hover{background:#f8fafc;color:#0f172a}.portal-nav-link.is-active{border-color:#fef3c7;background:#fffbeb;color:#92400e;font-weight:700}.portal-nav-link.is-active>svg{color:#b45309}.portal-nav-active-dot{display:none;flex-shrink:0;width:5px;height:5px;margin-left:auto;border-radius:50%;background:#f59e0b}.portal-nav-link.is-active .portal-nav-active-dot{display:block}.portal-sidebar-bottom{flex-shrink:0;padding:12px 20px 16px;border-top:1px solid #f1f5f9}.portal-school-period{margin-bottom:10px;padding:12px 14px;border:1px solid #e2e8f0;border-radius:10px;background:#f8fafc}.portal-school-period>span{display:block;margin-bottom:4px;color:#94a3b8;font-size:10px}.portal-school-period strong{display:block;color:#334155;font-size:12px;font-weight:600}.portal-school-period p{margin-top:2px;color:#64748b;font-size:10px}.portal-support-link{display:flex;align-items:center;gap:10px;padding:10px 0;color:#64748b;font-size:11px}.portal-support-link>svg{flex-shrink:0;font-size:16px}.portal-support-link .portal-support-arrow{margin-left:auto;font-size:12px}.portal-support-link:hover{color:#92400e}.portal-sidebar-student{display:flex;align-items:center;gap:10px;margin-top:10px;padding-top:14px;border-top:1px solid #f1f5f9}.portal-sidebar-student>div{min-width:0}.portal-sidebar-student strong{display:block;overflow:hidden;color:#334155;font-size:11px;font-weight:600;text-overflow:ellipsis;white-space:nowrap}.portal-sidebar-student>div>span{display:block;margin-top:2px;color:#94a3b8;font-size:10px}.portal-signout{display:flex;align-items:center;gap:10px;width:100%;margin-top:10px;padding:9px 10px;border-radius:8px;color:#64748b;font-size:11px;text-align:left}.portal-signout:hover:not(:disabled){background:#fef2f2;color:#b91c1c}.portal-signout svg{flex-shrink:0;font-size:16px}.portal-collapse-button{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;margin-top:8px;padding:9px 0;border-top:1px solid #f1f5f9;color:#94a3b8;font-size:10px}.portal-collapse-button:hover{color:#475569}.portal-sidebar.is-rail .portal-brand-copy,.portal-sidebar.is-rail .portal-nav-label,.portal-sidebar.is-rail .portal-nav-link>span,.portal-sidebar.is-rail .portal-support-link>span,.portal-sidebar.is-rail .portal-support-arrow,.portal-sidebar.is-rail .portal-sidebar-student>div,.portal-sidebar.is-rail .portal-signout>span{display:none}.portal-sidebar.is-rail .portal-sidebar-brand{padding:16px 20px}.portal-sidebar.is-rail .portal-sidebar-nav{padding:18px 14px 12px}.portal-sidebar.is-rail .portal-nav-link{justify-content:center;gap:0;padding:12px 0}.portal-sidebar.is-rail .portal-nav-group+.portal-nav-group{padding-top:14px;border-top:1px solid #f1f5f9}.portal-sidebar.is-rail .portal-sidebar-bottom{padding:12px 16px 16px}.portal-sidebar.is-rail .portal-support-link,.portal-sidebar.is-rail .portal-sidebar-student,.portal-sidebar.is-rail .portal-signout{justify-content:center}.portal-topnav{position:sticky;z-index:30;top:0;display:flex;align-items:center;justify-content:space-between;gap:20px;min-height:84px;padding:16px 32px;border-bottom:1px solid #e2e8f0;background:#ffffffed;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.portal-topnav-leading{display:flex;min-width:0;align-items:center;gap:14px}.portal-breadcrumb{display:flex;min-width:0;align-items:center;gap:10px;color:#334155;font-size:12px}.portal-breadcrumb>a{color:#94a3b8}.portal-breadcrumb>a:hover{color:#92400e}.portal-breadcrumb>svg{flex-shrink:0;color:#cbd5e1;font-size:12px}.portal-breadcrumb>span{overflow:hidden;font-weight:600;text-overflow:ellipsis;white-space:nowrap}.portal-topnav-actions{display:flex;flex-shrink:0;align-items:center;gap:20px}.portal-topnav-period{display:flex;align-items:center;gap:8px;color:#475569;font-size:11px}.portal-period-dot{width:6px;height:6px;border-radius:50%;background:#f59e0b}.portal-period-year{display:block;margin-top:2px;color:#94a3b8;font-size:10px}.portal-notices{position:relative;border-color:#e2e8f0}.portal-notice-count{position:absolute;top:-5px;right:-5px;display:grid;place-items:center;min-width:18px;height:18px;padding:0 3px;border:2px solid white;border-radius:8px;background:#f59e0b;color:#78350f;font-size:9px;font-weight:700}.portal-account{position:relative}.portal-account-trigger{display:flex;align-items:center;gap:10px;padding:5px 8px 5px 5px;border:1px solid transparent;border-radius:12px;text-align:left}.portal-account-trigger:hover,.portal-account-trigger.is-open{border-color:#e2e8f0;background:#f8fafc}.portal-account-copy{min-width:0;max-width:140px}.portal-account-copy strong{display:block;overflow:hidden;color:#334155;font-size:12px;font-weight:600;text-overflow:ellipsis;white-space:nowrap}.portal-account-copy>span{display:block;margin-top:2px;color:#94a3b8;font-size:10px}.portal-account-chevron{margin-left:10px;color:#94a3b8;font-size:14px}.portal-account-trigger.is-open .portal-account-chevron{transform:rotate(180deg)}.portal-account-panel{position:absolute;z-index:35;top:calc(100% + 12px);right:0;width:310px;max-height:calc(100dvh - 110px);overflow-y:auto;padding:8px;border:1px solid #e2e8f0;border-radius:16px;background:#fff;box-shadow:0 16px 48px #0f172a14}.portal-account-summary{display:flex;align-items:center;gap:12px;padding:14px}.portal-account-summary .portal-avatar{width:42px;height:42px;border-radius:12px}.portal-account-summary>div{min-width:0}.portal-account-summary strong{display:block;color:#0f172a;font-size:13px;font-weight:600;overflow-wrap:anywhere}.portal-account-summary>div>span{display:block;margin-top:3px;color:#94a3b8;font-size:11px}.portal-account-link{display:flex;align-items:center;gap:10px;padding:12px 14px;border-radius:9px;color:#475569;font-size:12px}.portal-account-link:hover{background:#f8fafc}.portal-account-link>svg:last-child{margin-left:auto;color:#94a3b8}.portal-profiles{margin-top:8px;padding:14px 6px 8px;border-top:1px solid #f1f5f9}.portal-profiles h2{display:flex;align-items:center;gap:7px;margin:0 8px 12px;color:#94a3b8;font-size:10px;font-weight:600;letter-spacing:.04em}.portal-profile-option{display:flex;align-items:center;gap:10px;width:100%;margin:4px 0;padding:10px 8px;border:1px solid transparent;border-radius:10px;color:#475569;text-align:left}.portal-profile-option:hover:not(:disabled){border-color:#e2e8f0;background:#f8fafc}.portal-profile-option.is-selected{border-color:#fef3c7;background:#fffbeb}.portal-profile-option>span:not(.portal-avatar){flex:1;min-width:0}.portal-profile-option strong{display:block;overflow:hidden;font-size:11px;font-weight:600;text-overflow:ellipsis;white-space:nowrap}.portal-profile-option>span>span{display:block;margin-top:2px;color:#94a3b8;font-size:10px}.portal-profile-option>svg{flex-shrink:0;color:#94a3b8;font-size:15px}.portal-profile-option.is-selected>svg{color:#b45309}.portal-profile-option:disabled:not(.is-selected){opacity:.5}.portal-profiles-status{padding:10px 8px;color:#94a3b8;font-size:11px;line-height:1.7}.portal-profiles-status button{color:#475569;font-weight:600;text-decoration:underline}.portal-account-error{display:flex;align-items:flex-start;gap:8px;margin:8px;padding:10px;border-radius:8px;background:#fef2f2;color:#b91c1c;font-size:11px;line-height:1.7}.portal-account-error>svg{flex-shrink:0;margin-top:3px}.portal-account-signout{display:flex;align-items:center;gap:10px;width:100%;margin-top:6px;padding:12px 14px;border-top:1px solid #f1f5f9;border-radius:0 0 8px 8px;color:#b91c1c;font-size:12px}.portal-account-signout:hover:not(:disabled){background:#fef2f2}.portal-account-signout:disabled,.portal-signout:disabled{opacity:.5}.portal-drawer-backdrop{position:fixed;z-index:49;top:0;right:0;bottom:0;left:0;width:100%;height:100dvh;background:#0f172a66;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px)}.portal-sidebar.is-drawer{z-index:50;width:min(300px,calc(100vw - 48px));box-shadow:12px 0 40px #0f172a1a;animation:portal-drawer-in .18s ease-out}.portal-sidebar.is-drawer .portal-sidebar-brand{gap:8px;padding-right:12px}@keyframes portal-drawer-in{0%{transform:translate(-100%)}to{transform:translate(0)}}@media (max-width: 1199px){.portal-topnav{padding-left:24px;padding-right:24px}.portal-topnav-actions{gap:12px}.portal-topnav-period{display:none}}@media (max-width: 1023px){.portal-workspace{margin-left:0}.portal-topnav{min-height:72px;padding:12px 20px}.portal-main-content{min-height:calc(100dvh - 72px)}}@media (max-width: 600px){.portal-topnav{gap:8px;min-height:68px;padding:10px 16px}.portal-topnav-leading{gap:8px}.portal-breadcrumb{font-size:12px}.portal-breadcrumb>a,.portal-breadcrumb>svg{display:none}.portal-topnav-actions{gap:8px}.portal-account-copy,.portal-account-chevron{display:none}.portal-account-trigger{padding:3px}.portal-account-panel{position:fixed;top:76px;right:12px;width:min(320px,calc(100vw - 24px));max-height:calc(100dvh - 90px)}.portal-main-content:not(.is-dashboard){padding:0 12px 16px}.portal-route-content{margin-top:16px;padding:12px;border-radius:12px}.portal-settings-error{margin:12px}}@media (max-height: 740px){.portal-school-period{display:none}.portal-sidebar-bottom{padding-top:8px;padding-bottom:10px}.portal-sidebar-student{padding-top:10px;margin-top:6px}}@media (prefers-reduced-motion: reduce){.portal-sidebar.is-drawer{animation:none}.portal-nav-link{transition:none}.portal-layout .animate-spin{animation:none}}.portal-route-content.is-classmates{padding:0;border:0;background:transparent}.classmates-page{color:#0f172a;font-size:14px;line-height:1.5}.classmates-page :is(h1,h2,h3){font-weight:700}.classmates-page :is(button,input,select):focus-visible{outline:2px solid #f59e0b;outline-offset:3px}.classmates-page button:disabled{opacity:.45;cursor:not-allowed}.cm-heading{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:24px}.cm-eyebrow{color:#64748b;font-size:10px;font-weight:700;letter-spacing:.12em}.cm-heading h1{margin:6px 0 8px;font-size:32px;letter-spacing:-.04em}.cm-heading>div>p:last-child{color:#64748b;font-size:13px}.cm-button{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:40px;padding:10px 14px;border:1px solid #e2e8f0;border-radius:9px;background:#fff;color:#475569;font-size:11px;font-weight:600}.cm-button:hover:not(:disabled){background:#f8fafc}.cm-class-summary{display:flex;align-items:center;gap:16px;padding:24px;border:1px solid #e2e8f0;border-top:3px solid #fbbf24;border-radius:14px;background:#fff}.cm-class-icon{display:grid;place-items:center;flex-shrink:0;width:48px;height:48px;border:1px solid #fde68a;border-radius:14px;background:#fffbeb;color:#a16207;font-size:23px}.cm-class-summary h2{font-size:20px;letter-spacing:-.03em}.cm-class-summary p{margin-top:4px;color:#94a3b8;font-size:11px}.cm-class-count{margin-left:auto;text-align:right}.cm-class-count>strong{display:block;font-size:28px;font-weight:700;letter-spacing:-.04em}.cm-class-count>span{display:block;color:#94a3b8;font-size:11px}.cm-directory{min-width:0;overflow:hidden;margin-top:24px;border:1px solid #e2e8f0;border-radius:16px;background:#fff}.cm-directory-heading{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:22px 24px;border-bottom:1px solid #f1f5f9}.cm-directory-heading h2{font-size:17px;letter-spacing:-.02em}.cm-directory-heading p{margin-top:4px;color:#94a3b8;font-size:11px}.cm-view-toggle{display:flex;flex-shrink:0;gap:3px;padding:4px;border:1px solid #e2e8f0;border-radius:10px;background:#f8fafc}.cm-view-toggle button{display:grid;place-items:center;width:32px;height:32px;border:1px solid transparent;border-radius:7px;color:#94a3b8}.cm-view-toggle button[aria-pressed=true]{border-color:#e2e8f0;background:#fff;color:#334155;box-shadow:0 1px 3px #0f172a08}.cm-toolbar{display:flex;align-items:flex-end;gap:16px;padding:20px 24px 16px}.cm-search{display:flex;align-items:center;gap:10px;flex:1;min-width:0;min-height:42px;padding:0 12px;border:1px solid #e2e8f0;border-radius:9px;color:#94a3b8}.cm-search input{width:100%;min-width:0;padding:11px 0;outline:none;background:transparent;color:#334155;font-size:11px}.cm-search:focus-within{border-color:#f59e0b;box-shadow:0 0 0 3px #fef3c7}.cm-sort label{display:block;margin-bottom:5px;color:#94a3b8;font-size:10px}.cm-sort select{min-height:42px;padding:8px 12px;border:1px solid #e2e8f0;border-radius:9px;background:#fff;color:#64748b;font-size:11px}.cm-scope{display:flex;gap:6px;padding:0 24px 18px;border-bottom:1px solid #f1f5f9}.cm-scope button{display:flex;align-items:center;gap:7px;padding:8px 12px;border:1px solid transparent;border-radius:8px;color:#64748b;font-size:11px;font-weight:600}.cm-scope button>span{padding:1px 5px;border-radius:4px;background:#f1f5f9;color:#94a3b8;font-size:9px}.cm-scope button[aria-pressed=true]{border-color:#fde68a;background:#fffbeb;color:#92400e}.cm-scope button[aria-pressed=true]>span{background:#fef3c7;color:#92400e}.cm-members{padding:24px}.cm-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}.cm-member{position:relative;min-width:0;border:1px solid #e2e8f0;border-radius:12px;background:#fff}.cm-member.is-self{border-color:#fde68a;background:#fffdf5}.cm-grid .cm-member{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px;min-height:190px;padding:28px 16px;text-align:center}.cm-member-avatar{width:64px;height:64px;border-color:#e2e8f0;border-radius:20px;background:#f8fafc;color:#64748b;font-size:20px}.cm-member.is-self .cm-member-avatar{border-color:#fde68a;background:#fffbeb;color:#92400e}.cm-member-info{min-width:0}.cm-member-info h3{color:#334155;font-size:13px;font-weight:600;overflow-wrap:anywhere;line-height:1.6}.cm-member-info p{margin-top:4px;color:#94a3b8;font-size:10px}.cm-you{position:absolute;top:10px;right:10px;padding:3px 7px;border-radius:5px;background:#fef3c7;color:#92400e;font-size:9px;font-weight:600}.cm-list{display:flex;flex-direction:column;gap:10px}.cm-list .cm-member{display:flex;align-items:center;gap:16px;min-height:76px;padding:14px 18px}.cm-list .cm-member-avatar{width:44px;height:44px;border-radius:13px;font-size:14px}.cm-list .cm-you{position:static;margin-left:auto}.cm-pagination{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:16px 24px;border-top:1px solid #f1f5f9;color:#94a3b8;font-size:10px}.cm-pagination>div{display:flex;align-items:center;gap:10px}.cm-icon-button{display:grid;place-items:center;width:32px;height:32px;border:1px solid #e2e8f0;border-radius:8px;background:#fff;color:#64748b}.cm-icon-button:hover:not(:disabled){background:#f8fafc;color:#0f172a}.cm-state{display:flex;align-items:center;justify-content:center;flex-direction:column;min-height:350px;padding:32px;text-align:center}.cm-state>span{display:grid;place-items:center;width:50px;height:50px;margin-bottom:16px;border-radius:14px;background:#f8fafc;color:#64748b;font-size:22px}.cm-state h3{font-size:17px}.cm-state p{max-width:360px;margin-top:8px;color:#94a3b8;font-size:12px;line-height:1.8}.cm-state button{margin-top:20px}.cm-clear{color:#475569;font-size:11px;font-weight:600;text-decoration:underline;text-underline-offset:3px}.cm-footer{display:flex;align-items:flex-start;justify-content:center;gap:8px;margin-top:22px;padding:8px;color:#94a3b8;font-size:11px}.cm-footer svg{flex-shrink:0;margin-top:2px}.cm-footer a{color:#475569;text-decoration:underline;text-underline-offset:3px}@media (max-width:1199px){.cm-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (max-width:760px){.cm-heading{flex-direction:column;align-items:flex-start;gap:16px}.cm-heading h1{font-size:28px}.cm-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.cm-class-summary{flex-wrap:wrap;padding:20px}.cm-class-count{width:100%;margin:0;padding-top:14px;border-top:1px solid #f1f5f9;text-align:left;display:flex;align-items:baseline;gap:10px}.cm-class-count strong{font-size:24px}}@media (max-width:600px){.cm-directory-heading{padding:18px}.cm-directory-heading h2{font-size:15px}.cm-toolbar{flex-wrap:wrap;padding:18px;gap:12px}.cm-search{flex-basis:100%}.cm-sort{width:100%}.cm-sort select{width:100%;min-height:36px}.cm-scope{padding:0 18px 16px}.cm-members{padding:18px}.cm-grid{gap:12px}.cm-grid .cm-member{min-height:180px;padding:26px 10px 18px}.cm-member-avatar{width:56px;height:56px;border-radius:17px;font-size:18px}.cm-member-info h3{font-size:12px}.cm-list .cm-member{padding:12px;gap:10px}.cm-pagination{flex-wrap:wrap;padding:16px 18px}.cm-pagination>div{margin-left:auto}}@media (prefers-reduced-motion:reduce){.classmates-page .animate-spin{animation:none}}.portal-login{position:relative;display:flex;min-height:100vh;min-height:100dvh;align-items:center;justify-content:center;padding:40px 16px;background:#f8fafc;color:#0f172a}.portal-login:before{content:"";position:absolute;inset:0 0 auto;height:256px;pointer-events:none;background:linear-gradient(to bottom,#fef3c799,transparent)}.portal-login-card{position:relative;width:100%;max-width:420px;overflow:hidden;border:1px solid #e2e8f0cc;border-radius:24px;background:#fff;box-shadow:0 20px 25px -5px #e2e8f099,0 8px 10px -6px #e2e8f099}.portal-login-accent{height:6px;background:#fbbf24}.portal-login-content{padding:32px 24px}.portal-login-brand{display:flex;align-items:center;gap:12px;margin-bottom:32px}.portal-login-logo{display:flex;flex-shrink:0;width:48px;height:48px;align-items:center;justify-content:center;padding:8px;border:1px solid #f1f5f9;border-radius:16px;background:#f8fafc}.portal-login-logo img{width:100%;height:100%;object-fit:contain}.portal-login-brand p{font-size:14px;font-weight:700}.portal-login-brand span{display:block;margin-top:2px;font-size:12px;color:#64748b}.portal-login-heading{margin-bottom:28px}.portal-login-heading h1{font-size:24px;font-weight:700;letter-spacing:-.025em}.portal-login-heading p{margin-top:8px;color:#64748b;font-size:14px;line-height:24px}.portal-login-form{display:flex;flex-direction:column;gap:20px}.portal-login-field label{display:block;margin-bottom:8px;color:#334155;font-size:14px;font-weight:500}.portal-login-input{display:flex;align-items:center;gap:12px;min-height:48px;padding:0 16px;border:1px solid #cbd5e1;border-radius:12px;background:#fff}.portal-login-input>svg{flex-shrink:0;color:#94a3b8}.portal-login-input input{min-width:0;width:100%;padding:12px 0;font-size:14px;color:#0f172a;background:transparent;outline:none}.portal-login-input input::placeholder{color:#94a3b8}.portal-login-input:focus-within{border-color:#f59e0b;box-shadow:0 0 0 4px #fef3c7}.portal-login-toggle{padding:8px 0 8px 4px;color:#94a3b8}.portal-login-primary{display:flex;align-items:center;justify-content:center;gap:10px;min-height:48px;padding:12px 16px;border-radius:12px;background:#0f172a;color:#fff;font-size:14px;font-weight:600;box-shadow:0 10px 15px -3px #0f172a1a}.portal-login-primary:hover:not(:disabled){background:#1e293b}.portal-login-school{display:flex;align-items:center;gap:12px;padding:16px;border:1px solid #e2e8f0;border-radius:12px;background:#f8fafc}.portal-login-school img{flex-shrink:0;width:44px;height:44px;padding:4px;object-fit:contain;border-radius:8px;background:#fff}.portal-login-school>div{flex:1;min-width:0;overflow-wrap:anywhere}.portal-login-school strong{display:block;font-size:14px;font-weight:600}.portal-login-school span{display:block;margin-top:4px;color:#64748b;font-size:12px}.portal-login-school button{font-size:14px;color:#475569}.portal-login-hint,.portal-login-help{color:#64748b;font-size:12px;line-height:20px}.portal-login-hint{margin-top:8px}.portal-login-help{text-align:center}.portal-login-error{display:flex;align-items:flex-start;gap:10px;margin-bottom:20px;padding:12px 14px;border:1px solid #fecaca;border-radius:12px;background:#fef2f2;color:#b91c1c;font-size:14px;line-height:22px;overflow-wrap:anywhere}.portal-login-error svg{flex-shrink:0;margin-top:3px}.portal-login-retry{padding:12px;border:1px solid #e2e8f0;border-radius:12px;color:#475569;font-size:14px}.portal-login-support{margin-top:40px;padding-top:24px;border-top:1px solid #e2e8f0;text-align:center;font-size:14px}.portal-login-support p{color:#64748b}.portal-login-support a{display:inline-block;margin-top:4px;color:#334155;font-weight:600}.portal-login-support a:hover{color:#b45309}.portal-login-copyright{padding:0 24px 24px;text-align:center;color:#94a3b8;font-size:12px}.portal-login button:disabled{opacity:.6;cursor:not-allowed}.portal-login :is(a,button):focus-visible{outline:2px solid #f59e0b;outline-offset:4px}@media (min-width: 640px){.portal-login{padding-left:24px;padding-right:24px}.portal-login-content{padding:40px 36px}}.portal-route-content.is-fees{padding:0;border:0;background:transparent}.fees-page{color:#0f172a;font-size:14px;line-height:1.5}.fees-page :is(h1,h2,h3),.fp-dialog h2{font-weight:700}.fees-page :is(button,input,select):focus-visible,.fp-dialog button:focus-visible{outline:2px solid #f59e0b;outline-offset:3px}.fees-page button:disabled{opacity:.45;cursor:not-allowed}.fp-heading{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:24px}.fp-eyebrow{color:#64748b;font-size:10px;font-weight:700;letter-spacing:.12em}.fp-heading h1{margin:6px 0 8px;font-size:32px;letter-spacing:-.04em}.fp-heading>div>p:last-child{color:#64748b;font-size:13px}.fp-button{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;gap:8px;min-height:40px;padding:10px 14px;border:1px solid #0f172a;border-radius:9px;background:#0f172a;color:#fff;font-size:11px;font-weight:600}.fp-secondary{border-color:#e2e8f0;background:#fff;color:#475569}.fp-button:hover:not(:disabled){filter:brightness(.96)}.fp-period{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:20px 24px;border:1px solid #e2e8f0;border-top:3px solid #fbbf24;border-radius:14px;background:#fff}.fp-period h2{display:flex;align-items:center;gap:8px;font-size:14px}.fp-period h2 svg{color:#94a3b8}.fp-period p{margin-top:4px;color:#64748b;font-size:11px}.fp-period-controls{display:flex;gap:12px}.fp-period-controls label,.fp-history-filters label{display:block;margin-bottom:6px;color:#64748b;font-size:10px;font-weight:600}.fp-period-controls select{min-width:145px;min-height:42px;padding:8px 30px 8px 12px;border:1px solid #cbd5e1;border-radius:9px;background:#fff;color:#334155;font-size:12px}.fp-metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin:24px 0}.fp-metric{padding:20px;border:1px solid #e2e8f0;border-radius:14px;background:#fff;min-width:0}.fp-metric>div{display:flex;align-items:center;justify-content:space-between;gap:8px;color:#64748b;font-size:11px;font-weight:600}.fp-metric>div>svg{flex-shrink:0;color:#94a3b8;font-size:17px}.fp-metric>strong{display:block;margin:14px 0 6px;font-size:24px;font-weight:700;letter-spacing:-.04em;overflow-wrap:anywhere}.fp-metric>p{color:#94a3b8;font-size:10px;line-height:1.7}.fp-green>strong,.fp-green>div>svg{color:#15803d}.fp-amber>strong,.fp-amber>div>svg{color:#a16207}.fp-notice{display:flex;align-items:flex-start;gap:10px;margin-bottom:20px;padding:12px 16px;border:1px solid #fde68a;border-radius:10px;background:#fffbeb;color:#92400e;font-size:11px;line-height:1.8}.fp-notice>svg{flex-shrink:0;margin-top:4px}.fp-columns{display:grid;grid-template-columns:minmax(0,2fr) minmax(270px,.85fr);gap:24px;align-items:start}.fp-panel{min-width:0;overflow:hidden;border:1px solid #e2e8f0;border-radius:16px;background:#fff}.fp-panel-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:22px 24px;border-bottom:1px solid #f1f5f9}.fp-panel-heading h2{font-size:16px;letter-spacing:-.02em}.fp-panel-heading p{margin-top:4px;color:#94a3b8;font-size:11px}.fp-panel-heading>svg{color:#94a3b8;font-size:18px}.fp-history-controls{padding:18px 24px;border-bottom:1px solid #f1f5f9}.fp-search{display:flex;align-items:center;gap:10px;min-height:42px;padding:0 12px;border:1px solid #e2e8f0;border-radius:9px;color:#94a3b8}.fp-search input{width:100%;min-width:0;padding:11px 0;outline:none;background:transparent;color:#334155;font-size:11px}.fp-search:focus-within{border-color:#f59e0b;box-shadow:0 0 0 3px #fef3c7}.fp-history-filters{display:flex;gap:12px;margin-top:14px}.fp-history-filters>div{flex:1;min-width:0}.fp-history-filters select{width:100%;padding:8px 10px;border:1px solid #e2e8f0;border-radius:8px;background:#fff;color:#64748b;font-size:11px}.fp-payment-table{width:100%;border-collapse:collapse;text-align:left}.fp-payment-table thead{background:#fafbfc;color:#94a3b8;font-size:10px}.fp-payment-table th,.fp-payment-table td{padding:16px 12px;border-bottom:1px solid #f1f5f9}.fp-payment-table th:first-child{padding-left:24px}.fp-payment-table td:last-child{padding-right:24px}.fp-payment-table tbody th{width:40%;font-weight:400}.fp-payment-table tbody th strong{display:block;color:#334155;font-size:12px;font-weight:600}.fp-payment-table tbody th>span{display:block;margin-top:4px;color:#94a3b8;font-size:10px}.fp-payment-table small{display:inline-block;margin-top:6px;padding:2px 5px;border-radius:4px;background:#f1f5f9;color:#64748b;font-size:9px}.fp-payment-table td{color:#64748b;font-size:11px}.fp-payment-table .fp-payment-amount{color:#0f172a;font-weight:600;white-space:nowrap}.fp-payment-table tbody tr:hover{background:#f8fafc}.fp-details-button{display:flex;align-items:center;gap:4px;padding:8px 0;color:#64748b;font-size:10px}.fp-details-button:hover{color:#a16207}.fp-table-wrap{overflow-x:auto}.fp-pagination{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:16px 24px;color:#94a3b8;font-size:10px}.fp-pagination>div{display:flex;align-items:center;gap:10px}.fp-icon-button{display:grid;place-items:center;flex-shrink:0;width:32px;height:32px;border:1px solid #e2e8f0;border-radius:8px;background:#fff;color:#64748b}.fp-icon-button:hover:not(:disabled){background:#f8fafc;color:#0f172a}.fp-state{display:flex;align-items:center;justify-content:center;flex-direction:column;min-height:320px;padding:32px 24px;text-align:center}.fp-state>span{display:grid;place-items:center;width:50px;height:50px;margin-bottom:16px;border-radius:14px;background:#f8fafc;color:#64748b;font-size:22px}.fp-state h3{font-size:16px}.fp-state p{max-width:330px;margin-top:8px;color:#94a3b8;font-size:12px;line-height:1.8}.fp-state button{margin-top:18px}.fp-text-link{color:#475569;font-size:11px;font-weight:600;text-decoration:underline;text-underline-offset:3px}.fp-side{display:flex;flex-direction:column;gap:24px}.fp-breakdown{padding:8px 24px}.fp-breakdown>div{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:18px 0;border-bottom:1px solid #f1f5f9}.fp-breakdown>div:last-child{border-bottom:0}.fp-breakdown strong{color:#334155;font-size:11px;font-weight:600;overflow-wrap:anywhere}.fp-breakdown>div>span>span{display:block;margin-top:4px;color:#94a3b8;font-size:10px}.fp-breakdown>p{padding:20px 0;color:#94a3b8;font-size:11px}.fp-account-help{padding:24px;border:1px solid #e2e8f0;border-radius:16px;background:#fff}.fp-help-icon{display:grid;place-items:center;width:40px;height:40px;margin-bottom:14px;border:1px solid #fde68a;border-radius:11px;background:#fffbeb;color:#a16207;font-size:18px}.fp-account-help h2{font-size:15px}.fp-account-help>p{margin-top:10px;color:#94a3b8;font-size:11px;line-height:1.8}.fp-bills-link{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:18px;padding:12px 14px;border:1px solid #e2e8f0;border-radius:9px;color:#475569;font-size:11px;font-weight:600}.fp-bills-link:hover{background:#f8fafc}.fp-account-help>div{margin-top:20px;padding-top:18px;border-top:1px solid #f1f5f9}.fp-account-help>div>p{color:#94a3b8;font-size:11px;line-height:1.7}.fp-account-help>div>a{display:inline-flex;align-items:center;gap:8px;margin-top:10px;color:#475569;font-size:11px;font-weight:600}.fp-mobile-records{display:none}.fp-dialog{position:fixed;top:0;right:0;bottom:0;left:0;width:min(500px,calc(100vw - 32px));max-height:calc(100dvh - 48px);margin:auto;padding:0;overflow-y:auto;border:1px solid #e2e8f0;border-radius:18px;background:#fff;color:#0f172a;box-shadow:0 24px 80px #0f172a26}.fp-dialog::backdrop{background:#0f172a66;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px)}.fp-dialog-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:24px;border-bottom:1px solid #f1f5f9}.fp-dialog-heading h2{margin-top:5px;font-size:20px;letter-spacing:-.03em}.fp-dialog-amount{padding:24px;background:#f8fafc}.fp-dialog-amount>span{display:block;color:#94a3b8;font-size:11px}.fp-dialog-amount strong{display:block;margin-top:6px;font-size:30px;font-weight:700;letter-spacing:-.04em}.fp-detail-list{padding:8px 24px}.fp-detail-list>div{display:flex;justify-content:space-between;align-items:flex-start;gap:20px;padding:12px 0;border-bottom:1px solid #f1f5f9;font-size:12px}.fp-detail-list dt{flex-shrink:0;color:#94a3b8}.fp-detail-list dd{text-align:right;overflow-wrap:anywhere;color:#334155}.fp-dialog-note{padding:18px 24px 24px;color:#94a3b8;font-size:11px;line-height:1.8}@media (max-width:1199px){.fp-columns{grid-template-columns:minmax(0,1fr)}.fp-side{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.fp-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:760px){.fp-heading{flex-direction:column;align-items:flex-start;gap:16px}.fp-heading h1{font-size:28px}.fp-period{flex-direction:column;align-items:flex-start;gap:16px;padding:18px}.fp-period-controls{width:100%;gap:10px}.fp-period-controls>div{flex:1;min-width:0}.fp-period-controls select{min-width:0;width:100%;padding-right:18px}.fp-metrics{gap:12px}.fp-metric{padding:16px}.fp-metric>strong{font-size:21px}.fp-side{grid-template-columns:minmax(0,1fr)}}@media (max-width:600px){.fp-panel-heading,.fp-history-controls{padding:18px}.fp-panel-heading h2{font-size:15px}.fp-panel-heading .fp-button{padding:8px 10px;font-size:10px}.fp-table-wrap{display:none}.fp-mobile-records{display:block}.fp-mobile-payment{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;width:100%;padding:18px;border-bottom:1px solid #f1f5f9;text-align:left}.fp-mobile-payment>span{min-width:0}.fp-mobile-payment>span:last-child{text-align:right}.fp-mobile-payment strong{display:block;color:#334155;font-size:12px;font-weight:600;overflow-wrap:anywhere}.fp-mobile-payment>span>span{display:block;margin-top:5px;color:#94a3b8;font-size:10px}.fp-mobile-payment small{display:block;margin-top:4px;color:#94a3b8;font-size:9px}.fp-mobile-payment>span:last-child>span{display:flex;align-items:center;justify-content:flex-end;gap:4px}.fp-pagination{flex-wrap:wrap;padding:16px 18px}.fp-pagination>div{margin-left:auto}.fp-dialog-heading,.fp-dialog-amount{padding:20px}.fp-detail-list{padding-left:20px;padding-right:20px}.fp-detail-list>div{font-size:11px}}.portal-route-content.is-news{padding:0;border:0;background:transparent}.news-page{color:#0f172a;font-size:14px;line-height:1.5}.news-page :is(h1,h2,h3),.nw-reader h2{font-weight:700}.news-page :is(button,input,select):focus-visible,.nw-reader :is(button,a):focus-visible{outline:2px solid #f59e0b;outline-offset:3px}.news-page button:disabled{opacity:.45;cursor:not-allowed}.nw-heading{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:24px}.nw-eyebrow{color:#64748b;font-size:10px;font-weight:700;letter-spacing:.12em}.nw-heading h1{margin:6px 0 8px;font-size:32px;letter-spacing:-.04em}.nw-heading>div>p:last-child{color:#64748b;font-size:13px}.nw-button{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:40px;padding:10px 14px;border:1px solid #0f172a;border-radius:9px;background:#0f172a;color:#fff;font-size:11px;font-weight:600}.nw-secondary{border-color:#e2e8f0;background:#fff;color:#475569}.nw-button:hover:not(:disabled){filter:brightness(.96)}.nw-period{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:20px 24px;border:1px solid #e2e8f0;border-top:3px solid #fbbf24;border-radius:14px;background:#fff}.nw-period h2{display:flex;align-items:center;gap:8px;font-size:14px}.nw-period h2 svg{color:#94a3b8}.nw-period p{margin-top:4px;color:#64748b;font-size:11px}.nw-period-controls{display:flex;gap:12px}.nw-period-controls label,.nw-filters label{display:block;margin-bottom:6px;color:#64748b;font-size:10px;font-weight:600}.nw-period-controls select{min-width:145px;min-height:42px;padding:8px 30px 8px 12px;border:1px solid #cbd5e1;border-radius:9px;background:#fff;color:#334155;font-size:12px}.nw-columns{display:grid;grid-template-columns:minmax(0,2fr) minmax(260px,.8fr);gap:24px;margin-top:24px;align-items:start}.nw-feed{min-width:0;border:1px solid #e2e8f0;border-radius:16px;background:#fff;overflow:hidden}.nw-feed-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:22px 24px;border-bottom:1px solid #f1f5f9}.nw-feed-heading h2{display:flex;align-items:center;gap:10px;font-size:17px;letter-spacing:-.02em}.nw-feed-heading h2>span{padding:2px 7px;border-radius:6px;background:#f1f5f9;color:#64748b;font-size:10px}.nw-feed-heading p{margin-top:4px;color:#94a3b8;font-size:11px}.nw-feed-heading>svg{color:#94a3b8;font-size:20px}.nw-toolbar{padding:18px 24px;border-bottom:1px solid #f1f5f9}.nw-search{display:flex;align-items:center;gap:10px;min-height:42px;padding:0 12px;border:1px solid #e2e8f0;border-radius:9px;color:#94a3b8}.nw-search input{width:100%;min-width:0;padding:11px 0;outline:none;background:transparent;color:#334155;font-size:11px}.nw-search:focus-within{border-color:#f59e0b;box-shadow:0 0 0 3px #fef3c7}.nw-filters{display:flex;gap:12px;margin-top:14px}.nw-filters>div{flex:1;min-width:0}.nw-filters select{width:100%;padding:8px 10px;border:1px solid #e2e8f0;border-radius:8px;background:#fff;color:#64748b;font-size:11px}.nw-notices{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;padding:24px}.nw-card{min-width:0;border:1px solid #e2e8f0;border-radius:12px;overflow:hidden;transition:border-color .15s,box-shadow .15s}.nw-card:hover{border-color:#fbbf24;box-shadow:0 4px 16px #0f172a06}.nw-card-button{display:flex;flex-direction:column;align-items:stretch;width:100%;height:100%;padding:20px;text-align:left}.nw-card-meta{display:flex;align-items:flex-start;justify-content:space-between;flex-wrap:wrap;gap:8px}.nw-type{display:inline-flex;align-items:center;gap:6px;padding:4px 7px;border-radius:6px;background:#fffbeb;color:#a16207;font-size:9px;font-weight:600}.nw-card-meta time{color:#94a3b8;font-size:10px;padding-top:4px}.nw-card-title{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;margin:16px 0 8px;color:#0f172a;font-size:15px;font-weight:700;line-height:1.5}.nw-preview{display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;min-height:57px;margin-bottom:14px;color:#64748b;font-size:11px;line-height:1.8}.nw-audience{display:inline-flex;align-items:center;gap:6px;color:#94a3b8;font-size:10px}.nw-card-footer{display:flex;align-items:center;justify-content:space-between;gap:10px;width:100%;margin-top:auto;padding-top:16px;border-top:1px solid #f1f5f9;color:#94a3b8;font-size:10px}.nw-card-footer>span:first-child{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.nw-card-footer>span:last-child{display:inline-flex;align-items:center;flex-shrink:0;gap:5px;color:#475569;font-weight:600}.nw-pagination{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:16px 24px;border-top:1px solid #f1f5f9;color:#94a3b8;font-size:10px}.nw-pagination>div{display:flex;align-items:center;gap:10px}.nw-icon-button{display:grid;place-items:center;flex-shrink:0;width:32px;height:32px;border:1px solid #e2e8f0;border-radius:8px;background:#fff;color:#64748b}.nw-icon-button:hover:not(:disabled){background:#f8fafc;color:#0f172a}.nw-state{display:flex;align-items:center;justify-content:center;flex-direction:column;min-height:350px;padding:32px;text-align:center}.nw-state>span{display:grid;place-items:center;width:50px;height:50px;margin-bottom:16px;border-radius:14px;background:#f8fafc;color:#64748b;font-size:22px}.nw-state h3{font-size:17px}.nw-state p{max-width:350px;margin-top:8px;color:#94a3b8;font-size:12px;line-height:1.8}.nw-state button{margin-top:20px}.nw-clear{color:#475569;font-size:11px;font-weight:600;text-decoration:underline;text-underline-offset:3px}.nw-side{display:flex;flex-direction:column;gap:24px}.nw-school-panel,.nw-help-panel{padding:24px;border:1px solid #e2e8f0;border-radius:16px;background:#fff}.nw-school-icon,.nw-help-panel>span{display:grid;place-items:center;width:40px;height:40px;margin-bottom:14px;border:1px solid #fde68a;border-radius:11px;background:#fffbeb;color:#a16207;font-size:18px}.nw-side h2{font-size:15px}.nw-side p{margin-top:10px;color:#94a3b8;font-size:11px;line-height:1.8}.nw-school-panel dl{margin-top:18px;padding-top:8px;border-top:1px solid #f1f5f9}.nw-school-panel dl>div{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-top:12px;font-size:11px}.nw-school-panel dt{color:#94a3b8}.nw-school-panel dd{color:#475569;font-weight:600;text-align:right}.nw-help-panel a{display:inline-flex;align-items:center;gap:8px;margin-top:18px;color:#475569;font-size:11px;font-weight:600}.nw-reader{position:fixed;top:0;right:0;bottom:0;left:0;width:min(720px,calc(100vw - 32px));max-height:calc(100dvh - 48px);margin:auto;padding:0;overflow-y:auto;border:1px solid #e2e8f0;border-radius:18px;background:#fff;color:#0f172a;box-shadow:0 24px 80px #0f172a26}.nw-reader::backdrop{background:#0f172a66;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px)}.nw-reader-top{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:20px 28px 0}.nw-reader-heading{padding:20px 28px 24px;border-bottom:1px solid #f1f5f9}.nw-reader-heading h2{margin-bottom:14px;font-size:26px;letter-spacing:-.03em;line-height:1.35;overflow-wrap:anywhere}.nw-reader-heading>div{display:flex;flex-wrap:wrap;gap:8px 16px;margin-bottom:12px;color:#94a3b8;font-size:11px}.nw-rich-content{padding:26px 28px;color:#334155;font-size:14px;line-height:1.9;overflow-wrap:anywhere}.nw-rich-content :is(p,div,ul,ol,blockquote,pre,table){margin-bottom:16px}.nw-rich-content :is(h1,h2,h3,h4){margin:20px 0 10px;color:#0f172a;font-weight:700;line-height:1.5}.nw-rich-content h1{font-size:23px}.nw-rich-content h2{font-size:21px}.nw-rich-content h3{font-size:18px}.nw-rich-content h4{font-size:16px}.nw-rich-content ul{list-style:disc;padding-left:22px}.nw-rich-content ol{list-style:decimal;padding-left:22px}.nw-rich-content a{color:#a16207;text-decoration:underline;text-underline-offset:3px}.nw-rich-content blockquote{padding:12px 16px;border-left:3px solid #fbbf24;background:#fffbeb}.nw-rich-content pre{padding:14px;overflow-x:auto;border-radius:8px;background:#f8fafc;white-space:pre-wrap}.nw-rich-content img{max-width:100%;height:auto;margin:16px 0;border-radius:10px}.nw-rich-content table{display:block;max-width:100%;overflow-x:auto;border-collapse:collapse}.nw-rich-content :is(td,th){padding:8px 12px;border:1px solid #e2e8f0}.nw-no-content{padding:28px;color:#94a3b8;font-size:13px}.nw-reader-footer{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:18px 28px;border-top:1px solid #f1f5f9;color:#94a3b8;font-size:11px}@media (max-width:1199px){.nw-columns{grid-template-columns:minmax(0,1fr)}.nw-side{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:760px){.nw-heading{flex-direction:column;align-items:flex-start;gap:16px}.nw-heading h1{font-size:28px}.nw-period{flex-direction:column;align-items:flex-start;gap:16px;padding:18px}.nw-period-controls{width:100%;gap:10px}.nw-period-controls>div{flex:1;min-width:0}.nw-period-controls select{min-width:0;width:100%;padding-right:18px}.nw-side{grid-template-columns:minmax(0,1fr)}}@media (max-width:600px){.nw-feed-heading,.nw-toolbar{padding:18px}.nw-notices{grid-template-columns:minmax(0,1fr);padding:18px;gap:12px}.nw-card-button{padding:18px}.nw-card-title{font-size:15px}.nw-pagination{flex-wrap:wrap;padding:16px 18px}.nw-pagination>div{margin-left:auto}.nw-reader{width:calc(100vw - 24px);max-height:calc(100dvh - 24px)}.nw-reader-top{padding:18px 20px 0}.nw-reader-heading{padding:18px 20px}.nw-reader-heading h2{font-size:22px}.nw-rich-content{padding:22px 20px;font-size:13px}.nw-reader-footer{padding:16px 20px}}@media (prefers-reduced-motion:reduce){.nw-card{transition:none}.news-page .animate-spin{animation:none}}.portal-route-content.is-attendance{padding:0;border:0;background:transparent}.attendance-page{color:#0f172a;font-size:14px;line-height:1.5}.attendance-page :is(h1,h2,h3){font-weight:700}.attendance-page :is(button,select):focus-visible{outline:2px solid #f59e0b;outline-offset:3px}.attendance-page button:disabled{cursor:not-allowed;opacity:.45}.at-heading{display:flex;align-items:center;justify-content:space-between;gap:24px;margin-bottom:28px}.at-eyebrow{color:#64748b;font-size:10px;font-weight:700;letter-spacing:.12em}.at-heading h1{margin:6px 0 8px;font-size:32px;line-height:1.2;letter-spacing:-.04em}.at-heading>div>p:last-child{color:#64748b;font-size:13px}.at-student{display:flex;align-items:center;gap:10px;min-width:0;padding:10px 14px;border:1px solid #e2e8f0;border-radius:12px;background:#fff}.at-student strong{display:block;color:#334155;font-size:12px;font-weight:600}.at-student>div>span{display:block;margin-top:3px;color:#94a3b8;font-size:11px}.at-period{display:flex;align-items:center;justify-content:space-between;gap:24px;padding:20px 24px;border:1px solid #e2e8f0;border-top:3px solid #fbbf24;border-radius:14px;background:#fff}.at-period h2{display:flex;align-items:center;gap:8px;font-size:14px}.at-period h2 svg{color:#94a3b8}.at-period p{margin-top:5px;color:#64748b;font-size:11px}.at-period-controls{display:flex;align-items:flex-end;gap:12px}.at-period-controls label{display:block;margin-bottom:6px;color:#64748b;font-size:11px;font-weight:600}.at-period-controls select{min-width:140px;min-height:42px;padding:8px 30px 8px 12px;border:1px solid #cbd5e1;border-radius:9px;background:#fff;color:#334155;font-size:12px}.at-icon-button{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;width:36px;height:36px;border:1px solid #e2e8f0;border-radius:9px;background:#fff;color:#64748b;font-size:17px}.at-icon-button:hover:not(:disabled){border-color:#cbd5e1;background:#f8fafc;color:#0f172a}.at-period-controls>.at-icon-button{width:42px;height:42px}.at-metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin:24px 0}.at-metric{padding:20px;border:1px solid #e2e8f0;border-radius:14px;background:#fff}.at-metric>div{display:flex;align-items:center;justify-content:space-between;gap:12px;color:#64748b;font-size:11px;font-weight:600}.at-metric>div svg{flex-shrink:0;color:#94a3b8;font-size:17px}.at-metric>strong{display:block;margin:12px 0 5px;font-size:28px;font-weight:700;letter-spacing:-.04em}.at-metric>p{color:#94a3b8;font-size:10px;line-height:1.7}.at-metric.at-green>strong,.at-green>div svg{color:#15803d}.at-metric.at-rose>strong,.at-rose>div svg{color:#be123c}.at-data-notice{display:flex;align-items:flex-start;gap:10px;margin:-4px 0 24px;padding:12px 16px;border:1px solid #fde68a;border-radius:10px;background:#fffbeb;color:#92400e;font-size:11px;line-height:1.8}.at-data-notice>svg{flex-shrink:0;margin-top:4px;font-size:16px}.at-content{display:grid;grid-template-columns:minmax(340px,.95fr) minmax(0,1.3fr);gap:24px;align-items:start}.at-panel{min-width:0;overflow:hidden;border:1px solid #e2e8f0;border-radius:16px;background:#fff}.at-panel-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:22px 24px;border-bottom:1px solid #f1f5f9}.at-panel-heading h2{font-size:16px;letter-spacing:-.02em}.at-panel-heading p{margin-top:4px;color:#94a3b8;font-size:11px}.at-panel-heading>svg{flex-shrink:0;color:#94a3b8;font-size:19px}.at-button{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:40px;padding:10px 14px;border:1px solid #0f172a;border-radius:9px;background:#0f172a;color:#fff;font-size:11px;font-weight:600}.at-button:hover:not(:disabled){background:#1e293b}.at-button-light{border-color:#e2e8f0;background:#fff;color:#475569}.at-button-light:hover:not(:disabled){background:#f8fafc}.at-month-controls{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:20px 24px 12px}.at-month-controls select{max-width:100%;padding:6px 10px;background:transparent;color:#334155;font-size:13px;font-weight:600;cursor:pointer}.at-calendar{padding:8px 24px 16px}.at-weekdays,.at-calendar-days{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:6px}.at-weekdays{margin-bottom:12px;text-align:center;color:#94a3b8;font-size:10px}.at-calendar-day,.at-calendar-spacer{min-width:0;aspect-ratio:1}.at-calendar-day{display:flex;align-items:center;justify-content:center;flex-direction:column;gap:3px;min-height:36px;padding:4px;border:1px solid transparent;border-radius:9px;font-size:12px;font-weight:600}.at-calendar-day>span{display:flex;font-size:10px}.at-unrecorded{background:#f8fafc;color:#94a3b8;font-weight:400}.at-day-present{border-color:#dcfce7;background:#f0fdf4;color:#15803d}.at-day-absent{border-color:#ffe4e6;background:#fff1f2;color:#be123c}.at-day-review,.at-day-unknown{border-color:#fef3c7;background:#fffbeb;color:#a16207}.at-calendar-day:hover:not(.at-unrecorded){border-color:currentColor}.at-calendar-day.is-selected{outline:2px solid #f59e0b;outline-offset:2px}.at-calendar-legend{display:flex;flex-wrap:wrap;align-items:center;gap:10px 16px;padding:4px 24px 18px;color:#64748b;font-size:10px}.at-calendar-legend>span{display:flex;align-items:center;gap:6px}.at-calendar-legend i{width:7px;height:7px;border-radius:50%}.at-dot-present{background:#22c55e}.at-dot-absent{background:#fb7185}.at-dot-unrecorded{background:#cbd5e1}.at-dot-review{background:#fbbf24}.at-day-detail,.at-calendar-help{margin:0 24px 18px;padding:14px;border:1px solid #e2e8f0;border-radius:10px;background:#f8fafc}.at-day-detail>div{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:8px;margin-bottom:8px}.at-day-detail strong{color:#334155;font-size:11px;font-weight:600}.at-day-detail p{margin-top:4px;color:#64748b;font-size:11px;line-height:1.7}.at-calendar-help p{color:#475569;font-size:11px}.at-calendar-help>span{display:block;margin-top:4px;color:#94a3b8;font-size:10px}.at-calendar-note{padding:14px 24px;border-top:1px solid #f1f5f9;color:#94a3b8;font-size:10px}.at-no-dates{margin-top:24px;min-height:200px;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:12px;text-align:center}.at-no-dates svg{color:#94a3b8;font-size:22px}.at-history-controls{padding:18px 24px;border-bottom:1px solid #f1f5f9}.at-status-filters{display:flex;flex-wrap:wrap;gap:6px}.at-status-filters button{display:inline-flex;align-items:center;gap:6px;padding:8px 10px;border:1px solid transparent;border-radius:8px;color:#64748b;font-size:10px;font-weight:600}.at-status-filters button>span{padding:1px 4px;border-radius:4px;background:#f1f5f9;color:#94a3b8;font-size:9px}.at-status-filters button.is-active{border-color:#fde68a;background:#fffbeb;color:#92400e}.at-status-filters button.is-active>span{background:#fef3c7;color:#92400e}.at-status-filters button:hover{background:#f8fafc}.at-history-sort{display:flex;align-items:center;justify-content:flex-end;gap:8px;margin-top:12px}.at-history-sort label{color:#94a3b8;font-size:10px}.at-history-sort select{padding:5px 8px;border:1px solid #e2e8f0;border-radius:7px;background:#fff;color:#64748b;font-size:10px}.at-table-wrap{overflow-x:auto}.at-history-table{width:100%;border-collapse:collapse;text-align:left}.at-history-table thead{background:#fafbfc;color:#94a3b8;font-size:10px}.at-history-table th,.at-history-table td{padding:14px 12px;border-bottom:1px solid #f1f5f9}.at-history-table th:first-child{padding-left:24px}.at-history-table th:last-child,.at-history-table td:last-child{padding-right:24px}.at-history-table tbody th{font-weight:500}.at-history-table tbody th>strong{display:block;color:#334155;font-size:11px;font-weight:500}.at-history-table tbody th>span{display:block;margin-top:3px;color:#94a3b8;font-size:10px}.at-history-table tbody td{color:#64748b;font-size:11px}.at-history-table tbody tr:hover{background:#f8fafc}.at-status{display:inline-flex;align-items:center;gap:5px;padding:4px 7px;border-radius:6px;font-size:10px;font-weight:600;white-space:nowrap}.at-status svg{flex-shrink:0;font-size:12px}.at-status-present{background:#f0fdf4;color:#15803d}.at-status-absent{background:#fff1f2;color:#be123c}.at-status-review,.at-status-unknown{background:#fffbeb;color:#a16207}.at-pagination{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:16px 24px;color:#94a3b8;font-size:10px}.at-pagination>div{display:flex;align-items:center;gap:10px}.at-pagination .at-icon-button{width:30px;height:30px;border-radius:7px;font-size:14px}.at-state{display:flex;min-height:350px;align-items:center;justify-content:center;flex-direction:column;padding:40px 24px;text-align:center}.at-state>span{display:grid;place-items:center;width:52px;height:52px;margin-bottom:18px;border:1px solid #e2e8f0;border-radius:15px;background:#f8fafc;color:#64748b;font-size:22px}.at-state h2{font-size:17px}.at-state p{max-width:400px;margin-top:8px;color:#64748b;font-size:12px;line-height:1.8}.at-state button{margin-top:20px}.at-filter-empty{display:flex;min-height:260px;align-items:center;justify-content:center;flex-direction:column;padding:24px;text-align:center}.at-filter-empty>svg{margin-bottom:12px;color:#94a3b8;font-size:22px}.at-filter-empty h3{font-size:14px}.at-filter-empty p{margin-top:6px;color:#94a3b8;font-size:11px}.at-text-button{margin-top:14px;color:#475569;font-size:11px;font-weight:600;text-decoration:underline;text-underline-offset:3px}.at-latest{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:8px;margin-top:24px;color:#94a3b8;font-size:11px}.at-latest strong{color:#64748b;font-weight:500}@media (max-width: 1199px){.at-content{grid-template-columns:minmax(0,1fr)}.at-calendar-panel{max-width:none}.at-calendar,.at-month-controls{max-width:500px;margin:0 auto}.at-calendar-legend{justify-content:center}.at-period{align-items:flex-start;flex-direction:column;gap:16px}}@media (max-width: 760px){.at-heading{align-items:flex-start;flex-direction:column;gap:16px}.at-heading h1{font-size:28px}.at-student{width:100%}.at-metrics{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.at-metric{padding:16px}.at-period{padding:18px}.at-period-controls{width:100%;gap:8px}.at-period-controls>div{flex:1;min-width:0}.at-period-controls select{width:100%;min-width:0;padding-right:18px}.at-content{gap:20px}}@media (max-width: 480px){.at-panel-heading,.at-history-controls{padding:18px}.at-panel-heading h2{font-size:15px}.at-calendar,.at-month-controls{padding-left:18px;padding-right:18px}.at-calendar-day{min-height:32px;font-size:11px}.at-weekdays,.at-calendar-days{gap:4px}.at-calendar-legend{justify-content:flex-start;padding-left:18px;padding-right:18px}.at-day-detail,.at-calendar-help{margin-left:18px;margin-right:18px}.at-history-table th,.at-history-table td{padding:14px 8px}.at-history-table th:first-child{padding-left:18px}.at-history-table th:last-child,.at-history-table td:last-child{padding-right:18px}.at-pagination{flex-wrap:wrap;padding:16px 18px}.at-pagination>div{margin-left:auto}.at-status{padding:4px 5px;font-size:9px}.at-button-light{padding:8px 10px;font-size:10px}}@media (prefers-reduced-motion: reduce){.attendance-page .animate-spin{animation:none}}.portal-route-content.is-timetable{padding:0;border:0;background:transparent}.timetable-page{color:#0f172a;font-size:14px;line-height:1.5}.timetable-page :is(h1,h2,h3,h4){font-weight:700}.timetable-page :is(button,[tabindex]):focus-visible{outline:2px solid #f59e0b;outline-offset:3px}.timetable-page button:disabled{opacity:.45;cursor:not-allowed}.tt-heading{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:24px}.tt-eyebrow{color:#64748b;font-size:10px;font-weight:700;letter-spacing:.12em}.tt-heading h1{margin:6px 0 8px;font-size:32px;letter-spacing:-.04em}.tt-heading>div>p:last-child{color:#64748b;font-size:13px}.tt-heading-actions{display:flex;gap:10px;align-items:center}.tt-button{display:inline-flex;justify-content:center;align-items:center;gap:8px;min-height:42px;padding:10px 16px;border:1px solid #0f172a;border-radius:10px;background:#0f172a;color:#fff;font-size:12px;font-weight:600}.tt-secondary{background:#fff;border-color:#e2e8f0;color:#475569}.tt-button:hover:not(:disabled){filter:brightness(.95)}.tt-icon-button{display:grid;place-items:center;flex-shrink:0;width:42px;height:42px;border:1px solid #e2e8f0;border-radius:10px;background:#fff;color:#64748b}.tt-context{display:flex;align-items:center;flex-wrap:wrap;gap:12px 24px;padding:18px 22px;border:1px solid #e2e8f0;border-top:3px solid #fbbf24;border-radius:14px;background:#fff;color:#64748b;font-size:12px}.tt-context>span:first-child{display:flex;align-items:center;gap:10px;color:#334155}.tt-context>span:last-child:not(:first-child){margin-left:auto;font-size:11px}.tt-notice{display:flex;align-items:flex-start;gap:10px;margin-top:16px;padding:12px 16px;border:1px solid #fde68a;border-radius:10px;background:#fffbeb;color:#92400e;font-size:12px}.tt-notice svg{flex-shrink:0;margin-top:3px}.tt-overview{display:grid;grid-template-columns:minmax(240px,.65fr) minmax(0,1.5fr);gap:20px;margin:24px 0}.tt-today,.tt-now{padding:24px;border:1px solid #e2e8f0;border-radius:14px;background:#fff}.tt-today{display:flex;align-items:center;gap:16px}.tt-today-icon{display:grid;place-items:center;flex-shrink:0;width:44px;height:44px;border:1px solid #fde68a;border-radius:12px;background:#fffbeb;color:#a16207;font-size:20px}.tt-today p{color:#64748b;font-size:11px}.tt-today h2{margin:4px 0;font-size:22px;letter-spacing:-.03em}.tt-today span{color:#94a3b8;font-size:10px}.tt-now{display:flex;align-items:center;justify-content:space-between;gap:20px}.tt-card-label{display:flex;align-items:center;gap:7px;color:#64748b;font-size:10px;font-weight:600;letter-spacing:.06em}.tt-now h2{margin:8px 0 6px;font-size:19px;letter-spacing:-.02em}.tt-now>div>p:last-child{color:#94a3b8;font-size:11px}.tt-next{max-width:40%;padding-left:20px;border-left:1px solid #e2e8f0}.tt-next span{display:block;color:#94a3b8;font-size:10px}.tt-next strong{display:block;margin-top:5px;color:#475569;font-size:12px;font-weight:600}.tt-schedule{overflow:hidden;border:1px solid #e2e8f0;border-radius:16px;background:#fff}.tt-schedule-heading{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:22px 24px;border-bottom:1px solid #f1f5f9}.tt-schedule-heading h2{font-size:17px;letter-spacing:-.02em}.tt-schedule-heading p{margin-top:4px;color:#94a3b8;font-size:11px}.tt-view-toggle{display:flex;padding:4px;border:1px solid #e2e8f0;border-radius:10px;background:#f8fafc}.tt-view-toggle button{display:flex;align-items:center;gap:7px;padding:7px 12px;border:1px solid transparent;border-radius:7px;color:#64748b;font-size:11px}.tt-view-toggle button[aria-pressed=true]{border-color:#e2e8f0;background:#fff;color:#0f172a;box-shadow:0 1px 3px #0f172a08}.tt-day-tabs{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px;padding:20px 24px;border-bottom:1px solid #f1f5f9}.tt-day-tabs button{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;min-height:48px;padding:10px 6px;border:1px solid #e2e8f0;border-radius:10px;color:#64748b;font-size:12px}.tt-day-tabs button[aria-pressed=true]{border-color:#fbbf24;background:#fffbeb;color:#92400e;font-weight:600}.tt-day-tabs small{font-size:9px;color:#a16207}.tt-day-tabs .tt-day-short{display:none}.tt-day-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:20px 24px 10px}.tt-day-heading h3{font-size:14px}.tt-day-heading>span{color:#94a3b8;font-size:11px}.tt-lesson-list{padding:0 24px 22px;list-style:none}.tt-lesson-list li{display:flex;align-items:center;gap:18px;min-height:84px;margin-top:10px;padding:16px 18px;border:1px solid #e2e8f0;border-radius:12px}.tt-lesson-number{display:grid;place-items:center;flex-shrink:0;width:36px;height:36px;border-radius:10px;background:#f8fafc;color:#94a3b8;font-size:11px;font-weight:600}.tt-lesson-time{flex-shrink:0;min-width:125px}.tt-lesson-time strong{display:block;font-size:11px;font-weight:600;color:#475569}.tt-lesson-time>span{display:flex;align-items:center;gap:5px;margin-top:5px;color:#94a3b8;font-size:10px}.tt-lesson-list h4{font-size:14px;font-weight:600;overflow-wrap:anywhere}.tt-lesson-list li.is-live{border-color:#fbbf24;background:#fffbeb}.tt-lesson-list li.is-live .tt-lesson-number{background:#fef3c7;color:#92400e}.tt-live-badge{display:inline-flex;flex-shrink:0;align-items:center;gap:6px;margin-left:auto;padding:5px 8px;border-radius:6px;background:#fef3c7;color:#92400e;font-size:10px;font-weight:600}.tt-live-badge i{width:5px;height:5px;border-radius:50%;background:#f59e0b}.tt-ended{display:flex;flex-shrink:0;align-items:center;gap:5px;margin-left:auto;color:#94a3b8;font-size:10px}.tt-lesson-list li.is-unassigned h4{color:#94a3b8;font-weight:400}.tt-day-view.is-hidden,.tt-week-view.is-hidden{display:none}.tt-table-scroll{overflow-x:auto}.tt-table-scroll table{width:100%;min-width:850px;border-collapse:collapse;table-layout:fixed}.tt-table-scroll th,.tt-table-scroll td{padding:18px 12px;border-bottom:1px solid #f1f5f9;border-right:1px solid #f1f5f9;font-size:11px;text-align:left;vertical-align:top;overflow-wrap:anywhere}.tt-table-scroll thead th{background:#fafbfc;color:#475569;font-weight:600}.tt-table-scroll th>span{display:block;margin-top:5px;color:#94a3b8;font-size:9px;font-weight:400}.tt-table-scroll tbody th{color:#334155;font-weight:600}.tt-table-scroll tbody td{color:#64748b}.tt-table-scroll tbody tr.is-today th{background:#fffbeb;color:#92400e}.tt-table-scroll td.is-live{background:#fffbeb;color:#92400e;font-weight:600}.tt-unassigned-text{color:#cbd5e1}.tt-scroll-hint{display:none;padding:12px 24px;color:#94a3b8;font-size:10px}.tt-schedule-note{display:flex;align-items:flex-start;gap:8px;padding:16px 24px;border-top:1px solid #f1f5f9;color:#94a3b8;font-size:10px}.tt-schedule-note svg{flex-shrink:0;margin-top:2px}.tt-footer{display:flex;align-items:flex-start;justify-content:center;gap:8px;margin-top:22px;padding:8px;color:#94a3b8;font-size:11px}.tt-footer svg{flex-shrink:0;margin-top:2px}.tt-footer a{color:#475569;text-decoration:underline;text-underline-offset:3px}.tt-state{display:flex;align-items:center;justify-content:center;flex-direction:column;min-height:350px;padding:32px;border:1px solid #e2e8f0;border-radius:16px;background:#fff;text-align:center}.tt-state>span{display:grid;place-items:center;width:52px;height:52px;margin-bottom:18px;border-radius:15px;background:#f8fafc;color:#64748b;font-size:22px}.tt-state h2{font-size:17px}.tt-state p{max-width:400px;margin-top:8px;color:#64748b;font-size:12px;line-height:1.8}.tt-state button{margin-top:20px}@media (max-width:1199px){.tt-overview{grid-template-columns:minmax(0,1fr)}.tt-scroll-hint{display:block}}@media (max-width:700px){.tt-heading{align-items:flex-start;flex-direction:column;gap:16px}.tt-heading h1{font-size:28px}.tt-now{align-items:flex-start;flex-direction:column}.tt-next{max-width:none;width:100%;padding:12px 0 0;border-left:0;border-top:1px solid #f1f5f9}.tt-context{align-items:flex-start;flex-direction:column;gap:6px}.tt-context>span:last-child:not(:first-child){margin-left:0}.tt-day-tabs{gap:5px;padding:16px}.tt-day-tabs button{font-size:10px;padding:8px 2px;overflow:hidden}.tt-day-tabs button>span{max-width:3ch;overflow:hidden;white-space:nowrap}.tt-schedule-heading{padding:18px 16px}.tt-schedule-heading h2{font-size:15px}.tt-view-toggle button{padding:7px 9px}.tt-day-heading{padding:18px 16px 6px}.tt-lesson-list{padding:0 16px 18px}.tt-lesson-list li{display:grid;grid-template-columns:36px minmax(0,1fr);gap:10px 12px;padding:14px}.tt-lesson-number{grid-row:1/3}.tt-lesson-time{min-width:0;display:flex;align-items:center;justify-content:space-between;gap:8px}.tt-lesson-time>span{margin-top:0}.tt-lesson-list h4{grid-column:2;font-size:13px}.tt-live-badge,.tt-ended{grid-column:2;margin-left:0;justify-self:start}.tt-schedule-note{padding:14px 16px}}@media print{@page class-timetable{size:A4 landscape;margin:12mm}.timetable-page{page:class-timetable}.portal-sidebar,.portal-topnav,.portal-skip-link,.tt-heading-actions,.tt-overview,.tt-day-view,.tt-view-toggle,.tt-footer,.tt-scroll-hint{display:none!important}.portal-workspace{margin:0}.portal-main-content:not(.is-dashboard){padding:0}.portal-route-content{margin:0;max-width:none}.tt-week-view.is-hidden{display:block}.tt-table-scroll{overflow:visible}.tt-table-scroll table{min-width:0}.tt-schedule{border-color:#cbd5e1}.tt-table-scroll th,.tt-table-scroll td{padding:12px 8px;color:#0f172a}.tt-context{margin-bottom:20px}.tt-heading h1{font-size:24px}}@media (max-width:700px){.tt-day-tabs button>.tt-day-full{display:none}.tt-day-tabs button>.tt-day-short{display:inline;max-width:none}}.portal-route-content.is-bills{padding:0;border:0;background:transparent}.bills-page{color:#0f172a;font-size:14px;line-height:1.5}.bills-page :is(h1,h2){font-weight:700}.bills-page :is(button,select):focus-visible{outline:2px solid #f59e0b;outline-offset:3px}.bills-page button:disabled{opacity:.45;cursor:not-allowed}.bl-heading{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:24px}.bl-eyebrow{color:#64748b;font-size:10px;font-weight:700;letter-spacing:.1em}.bl-heading h1{margin:6px 0 8px;font-size:32px;letter-spacing:-.04em}.bl-heading>div>p:last-child{color:#64748b;font-size:13px}.bl-button{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:40px;padding:10px 14px;border:1px solid #0f172a;border-radius:9px;background:#0f172a;color:#fff;font-size:11px;font-weight:600}.bl-secondary{border-color:#e2e8f0;background:#fff;color:#475569}.bl-button:hover:not(:disabled){filter:brightness(.96)}.bl-period{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:20px 24px;border:1px solid #e2e8f0;border-top:3px solid #fbbf24;border-radius:14px;background:#fff}.bl-period h2{display:flex;align-items:center;gap:8px;font-size:14px}.bl-period h2 svg{color:#94a3b8}.bl-period p{margin-top:4px;color:#64748b;font-size:11px}.bl-period-controls{display:flex;gap:12px}.bl-period-controls label{display:block;margin-bottom:6px;color:#64748b;font-size:10px;font-weight:600}.bl-period-controls select{min-width:145px;min-height:42px;padding:8px 30px 8px 12px;border:1px solid #cbd5e1;border-radius:9px;background:#fff;color:#334155;font-size:12px}.bl-metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin:24px 0}.bl-metric{min-width:0;padding:20px;border:1px solid #e2e8f0;border-radius:14px;background:#fff}.bl-metric>div{display:flex;align-items:center;justify-content:space-between;gap:8px;color:#64748b;font-size:11px;font-weight:600}.bl-metric svg{color:#94a3b8;flex-shrink:0;font-size:17px}.bl-metric>strong{display:block;margin:14px 0 6px;font-size:24px;font-weight:700;letter-spacing:-.04em;overflow-wrap:anywhere}.bl-metric>p{color:#94a3b8;font-size:10px;line-height:1.7}.bl-amber>strong,.bl-amber svg{color:#a16207}.bl-notice{display:flex;align-items:flex-start;gap:10px;margin-bottom:20px;padding:12px 16px;border:1px solid #fde68a;border-radius:10px;background:#fffbeb;color:#92400e;font-size:11px;line-height:1.8}.bl-notice svg{flex-shrink:0;margin-top:4px}.bl-columns{display:grid;grid-template-columns:minmax(0,2fr) minmax(270px,.85fr);gap:24px;align-items:start}.bl-panel{overflow:hidden;min-width:0;border:1px solid #e2e8f0;border-radius:16px;background:#fff}.bl-panel-heading{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:24px;border-bottom:1px solid #f1f5f9}.bl-panel-heading h2{margin:5px 0;font-size:20px;letter-spacing:-.03em}.bl-panel-heading>div>p:last-child{color:#94a3b8;font-size:11px}.bl-document-actions{display:flex;flex-shrink:0;gap:8px}.bl-student-details{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px 24px;padding:22px 24px;background:#f8fafc}.bl-student-details dt{color:#94a3b8;font-size:10px}.bl-student-details dd{margin-top:4px;color:#334155;font-size:12px;font-weight:500;overflow-wrap:anywhere}.bl-record-picker{padding:16px 24px;border-bottom:1px solid #f1f5f9}.bl-record-picker label{display:block;margin-bottom:6px;color:#64748b;font-size:11px}.bl-record-picker select{max-width:100%;padding:8px 10px;border:1px solid #e2e8f0;border-radius:8px;background:#fff;color:#475569;font-size:11px}.bl-table-wrap table{width:100%;border-collapse:collapse;text-align:left}.bl-table-wrap thead{background:#fafbfc;color:#94a3b8;font-size:10px}.bl-table-wrap th,.bl-table-wrap td{padding:18px 24px;border-bottom:1px solid #f1f5f9}.bl-table-wrap th:last-child,.bl-table-wrap td{text-align:right}.bl-table-wrap tbody th{font-weight:500}.bl-table-wrap tbody th>strong{font-size:12px;color:#334155;font-weight:500;overflow-wrap:anywhere}.bl-table-wrap tbody td{white-space:nowrap;font-size:12px;font-weight:600;color:#334155}.bl-optional-badge,.bl-credit-badge{display:inline-block;margin-left:8px;padding:3px 6px;border-radius:5px;background:#fffbeb;color:#a16207;font-size:9px;white-space:nowrap}.bl-credit-badge{background:#f0fdf4;color:#15803d}.bl-document-totals{max-width:400px;margin:0 0 0 auto;padding:20px 24px}.bl-document-totals>div{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:8px 0;color:#64748b;font-size:11px}.bl-document-totals strong{color:#334155;font-weight:600}.bl-document-totals .bl-total{margin-top:10px;padding-top:16px;border-top:1px solid #e2e8f0;color:#0f172a;font-size:16px;font-weight:700}.bl-total>strong{color:#0f172a;font-size:20px}.bl-document-note{padding:16px 24px;border-top:1px solid #f1f5f9;color:#94a3b8;font-size:11px;line-height:1.8}.bl-side{display:flex;flex-direction:column;gap:24px}.bl-explanation,.bl-support{padding:24px}.bl-help-icon{display:grid;place-items:center;width:40px;height:40px;margin-bottom:14px;border:1px solid #fde68a;border-radius:11px;background:#fffbeb;color:#a16207;font-size:18px}.bl-explanation h2,.bl-support h2{font-size:15px}.bl-explanation p,.bl-support p{margin-top:10px;color:#94a3b8;font-size:11px;line-height:1.8}.bl-payments-link{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:18px;padding:12px 14px;border:1px solid #e2e8f0;border-radius:9px;color:#475569;font-size:11px;font-weight:600}.bl-payments-link:hover{background:#f8fafc}.bl-support a{display:inline-flex;align-items:center;gap:8px;margin-top:14px;color:#475569;font-size:11px;font-weight:600}.bl-state{display:flex;align-items:center;justify-content:center;flex-direction:column;min-height:350px;padding:32px;border:1px solid #e2e8f0;border-radius:16px;background:#fff;text-align:center}.bl-state>span{display:grid;place-items:center;width:50px;height:50px;margin-bottom:16px;border-radius:14px;background:#f8fafc;color:#64748b;font-size:22px}.bl-state h2{font-size:17px}.bl-state p{max-width:380px;margin-top:8px;color:#94a3b8;font-size:12px;line-height:1.8}.bl-state button{margin-top:20px}.bl-no-items{padding:24px;color:#94a3b8;font-size:12px}@media (max-width:1199px){.bl-columns{grid-template-columns:minmax(0,1fr)}.bl-side{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.bl-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:760px){.bl-heading{flex-direction:column;align-items:flex-start;gap:16px}.bl-heading h1{font-size:28px}.bl-period{flex-direction:column;align-items:flex-start;gap:16px;padding:18px}.bl-period-controls{width:100%;gap:10px}.bl-period-controls>div{flex:1;min-width:0}.bl-period-controls select{min-width:0;width:100%;padding-right:18px}.bl-metrics{gap:12px}.bl-metric{padding:16px}.bl-metric>strong{font-size:21px}.bl-side{grid-template-columns:minmax(0,1fr)}}@media (max-width:600px){.bl-panel-heading{align-items:flex-start;flex-direction:column;padding:20px 18px}.bl-student-details{padding:18px;gap:16px}.bl-student-details dd{font-size:11px}.bl-table-wrap th,.bl-table-wrap td{padding:16px 18px}.bl-table-wrap tbody th>strong,.bl-table-wrap tbody td{font-size:11px}.bl-optional-badge,.bl-credit-badge{display:block;width:fit-content;margin:5px 0 0}.bl-document-totals,.bl-document-note{padding-left:18px;padding-right:18px}.bl-record-picker{padding:16px 18px}}@media print{@page school-bill{size:A4 portrait;margin:14mm}.bills-page{page:school-bill}.portal-layout:has(.bills-page),.portal-layout:has(.bills-page) .portal-main-content{min-height:0;background:#fff}.bills-page .bl-heading,.bills-page .bl-period,.bills-page .bl-metrics,.bills-page .bl-side,.bills-page .bl-document-actions,.bills-page .bl-record-picker{display:none}.bl-columns{display:block}.bl-panel{overflow:visible;border-color:#cbd5e1}.bl-table-wrap tr{break-inside:avoid}.bl-document{max-width:none}.bl-notice{break-inside:avoid}}.portal-route-content.is-profile{padding:0;border:0;background:transparent}.profile-page{color:#0f172a;font-size:14px;line-height:1.5}.profile-page :is(h1,h2){font-weight:700}.profile-page :is(a,button):focus-visible{outline:2px solid #f59e0b;outline-offset:3px}.profile-page button:disabled{opacity:.45;cursor:not-allowed}.pf-heading{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:24px}.pf-eyebrow{color:#64748b;font-size:10px;font-weight:700;letter-spacing:.12em}.pf-heading h1{margin:6px 0 8px;font-size:32px;letter-spacing:-.04em}.pf-heading>div>p:last-child{color:#64748b;font-size:13px}.pf-button{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:42px;padding:10px 16px;border:1px solid #0f172a;border-radius:10px;background:#0f172a;color:#fff;font-size:11px;font-weight:600}.pf-secondary{background:#fff;border-color:#e2e8f0;color:#475569}.pf-button:hover:not(:disabled){filter:brightness(.96)}.pf-notice{display:flex;align-items:flex-start;gap:10px;margin-bottom:20px;padding:12px 16px;border:1px solid #fde68a;border-radius:10px;background:#fffbeb;color:#92400e;font-size:11px;line-height:1.8}.pf-notice svg{flex-shrink:0;margin-top:4px}.pf-notice button{font-weight:600;text-decoration:underline;text-underline-offset:3px}.pf-refresh-status{display:flex;align-items:center;gap:8px;margin:-6px 0 18px;color:#94a3b8;font-size:11px}.pf-identity{display:flex;align-items:center;gap:22px;padding:28px;border:1px solid #e2e8f0;border-top:3px solid #fbbf24;border-radius:16px;background:#fff}.pf-avatar{width:88px;height:88px;border-radius:24px;font-size:28px}.pf-identity-copy{min-width:0}.pf-identity-copy h2{font-size:25px;letter-spacing:-.03em;overflow-wrap:anywhere}.pf-identity-copy>p{margin-top:6px;color:#64748b;font-size:12px}.pf-id{display:flex;align-items:center;gap:8px;margin-top:12px;color:#64748b;font-size:11px}.pf-id>span{font-weight:600}.pf-id button{display:grid;place-items:center;width:28px;height:28px;border:1px solid #e2e8f0;border-radius:7px;color:#94a3b8}.pf-id button:hover{color:#a16207}.pf-status{flex-shrink:0;margin-left:auto;padding:6px 10px;border-radius:7px;background:#f1f5f9;color:#64748b;font-size:11px;font-weight:600}.pf-status.is-active{background:#f0fdf4;color:#15803d}.pf-status.is-inactive{background:#fff1f2;color:#be123c}.pf-copy-status{margin:12px 0 0;color:#475569;font-size:11px}.pf-columns{display:grid;grid-template-columns:minmax(0,2fr) minmax(270px,.85fr);gap:24px;margin-top:24px;align-items:start}.pf-main,.pf-side{display:flex;flex-direction:column;gap:24px;min-width:0}.pf-panel{min-width:0;overflow:hidden;border:1px solid #e2e8f0;border-radius:16px;background:#fff}.pf-panel-heading{display:flex;align-items:center;gap:12px;padding:22px 24px;border-bottom:1px solid #f1f5f9}.pf-panel-heading>span{display:grid;place-items:center;flex-shrink:0;width:36px;height:36px;border-radius:10px;background:#f8fafc;color:#94a3b8;font-size:17px}.pf-panel h2{font-size:16px;letter-spacing:-.02em}.pf-panel-heading p{margin-top:4px;color:#94a3b8;font-size:11px}.pf-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px 28px;padding:24px}.pf-fields dt{color:#94a3b8;font-size:10px}.pf-fields dd{margin-top:6px;color:#334155;font-size:12px;font-weight:500;overflow-wrap:anywhere}.pf-fields dd.is-missing{color:#94a3b8;font-weight:400}.pf-contacts{padding:8px 24px}.pf-contact{display:flex;align-items:flex-start;gap:12px;padding:18px 0;border-bottom:1px solid #f1f5f9}.pf-contact:last-child{border-bottom:0}.pf-contact-icon{display:grid;place-items:center;flex-shrink:0;width:36px;height:36px;border:1px solid #e2e8f0;border-radius:10px;background:#f8fafc;color:#94a3b8}.pf-contact>div{min-width:0}.pf-contact p{color:#94a3b8;font-size:10px}.pf-contact strong{display:block;margin-top:3px;color:#334155;font-size:12px;font-weight:600;overflow-wrap:anywhere}.pf-contact a,.pf-contact>div>span{display:inline-flex;align-items:center;gap:6px;margin-top:6px;color:#64748b;font-size:11px}.pf-contact a:hover{color:#a16207}.pf-contact-panel,.pf-managed,.pf-record-info{padding:24px}.pf-contact-panel>div{display:flex;align-items:flex-start;gap:12px;margin-top:20px}.pf-contact-panel>div>svg{flex-shrink:0;margin-top:2px;color:#94a3b8;font-size:17px}.pf-contact-panel>div>span{min-width:0}.pf-contact-panel strong{display:block;color:#94a3b8;font-size:10px;font-weight:500}.pf-contact-panel a,.pf-contact-panel>div>span>span{display:block;margin-top:5px;color:#475569;font-size:12px;overflow-wrap:anywhere}.pf-managed-icon{display:grid;place-items:center;width:40px;height:40px;margin-bottom:14px;border:1px solid #fde68a;border-radius:11px;background:#fffbeb;color:#a16207;font-size:18px}.pf-managed>p{margin-top:10px;color:#94a3b8;font-size:11px;line-height:1.8}.pf-managed>a{margin-top:18px;width:100%}.pf-managed .pf-managed-note{margin-top:12px;font-size:10px}.pf-record-info dl{margin-top:18px}.pf-record-info dl>div{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-top:12px;font-size:11px}.pf-record-info dt{color:#94a3b8}.pf-record-info dd{color:#475569;text-align:right}.pf-record-info>a{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:20px;padding-top:16px;border-top:1px solid #f1f5f9;color:#475569;font-size:11px;font-weight:600}.pf-empty{display:flex;align-items:center;justify-content:center;flex-direction:column;min-height:350px;padding:32px;border:1px solid #e2e8f0;border-radius:16px;background:#fff;text-align:center}.pf-empty>svg{margin-bottom:16px;color:#94a3b8;font-size:28px}.pf-empty h2{font-size:17px}.pf-empty p{max-width:350px;margin-top:8px;color:#94a3b8;font-size:12px;line-height:1.8}.pf-empty a{margin-top:20px}@media (max-width:1199px){.pf-columns{grid-template-columns:minmax(0,1fr)}.pf-side{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:760px){.pf-heading{align-items:flex-start;flex-direction:column;gap:16px}.pf-heading h1{font-size:28px}.pf-identity{flex-wrap:wrap;gap:16px;padding:22px}.pf-avatar{width:72px;height:72px;border-radius:20px;font-size:24px}.pf-identity-copy{flex:1}.pf-identity-copy h2{font-size:20px}.pf-status{margin:0}.pf-side{grid-template-columns:minmax(0,1fr)}}@media (max-width:600px){.pf-panel-heading{padding:18px}.pf-panel h2{font-size:15px}.pf-fields{padding:20px 18px;gap:20px}.pf-contacts{padding:4px 18px}.pf-contact-panel,.pf-managed,.pf-record-info{padding:20px}.pf-identity{gap:14px;padding:20px 18px}.pf-avatar{width:64px;height:64px;border-radius:18px;font-size:21px}.pf-identity-copy h2{font-size:19px}.pf-identity-copy>p{font-size:11px}}@media (prefers-reduced-motion:reduce){.profile-page .animate-spin{animation:none}}.student-dashboard{max-width:1184px;margin:0 auto;padding:32px;color:#0f172a;font-size:14px;line-height:1.5}.student-dashboard h1,.student-dashboard h2,.student-dashboard h3{font-weight:700}.student-dashboard h2{font-size:17px;letter-spacing:-.02em}.dx-heading{display:flex;align-items:center;justify-content:space-between;gap:24px;margin-bottom:28px}.dx-eyebrow{color:#64748b;font-size:10px;font-weight:700;letter-spacing:.12em}.dx-heading h1{margin:6px 0 8px;font-size:clamp(25px,3vw,32px);line-height:1.2;letter-spacing:-.04em}.dx-heading>div>p:last-child{max-width:600px;color:#64748b;line-height:1.7}.dx-button{display:inline-flex;flex-shrink:0;justify-content:center;align-items:center;gap:9px;padding:11px 16px;min-height:44px;border:1px solid #0f172a;border-radius:10px;background:#0f172a;color:#fff;font-size:12px;font-weight:600;text-decoration:none;transition:background .15s,border-color .15s}.dx-button:hover:not(:disabled){background:#1e293b}.dx-button-light{border-color:#e2e8f0;background:#fff;color:#334155}.dx-button-light:hover:not(:disabled){background:#f1f5f9;border-color:#cbd5e1}.student-dashboard button:disabled{opacity:.5;cursor:not-allowed}.student-dashboard :is(a,button,select,[tabindex]):focus-visible{outline:2px solid #f59e0b;outline-offset:4px}.dx-student{display:flex;gap:16px;align-items:center;padding:24px;border:1px solid #e2e8f0;border-top:3px solid #fbbf24;border-radius:16px;background:#fff}.dx-avatar{position:relative;display:grid;place-items:center;flex-shrink:0;width:56px;height:56px;border:1px solid #fde68a;border-radius:16px;background:#fffbeb;color:#92400e;font-size:20px;font-weight:700;overflow:hidden}.dx-avatar img{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;object-fit:cover}.dx-student-name{min-width:0}.dx-student-name h2{overflow-wrap:anywhere}.dx-student-name p{margin-top:4px;color:#64748b;font-size:12px}.dx-student-details{display:flex;gap:28px;margin-left:auto}.dx-student-details dt{color:#64748b;font-size:11px}.dx-student-details dd{margin-top:4px;font-size:12px;font-weight:600;overflow-wrap:anywhere}.dx-period{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:28px 0 22px}.dx-period h2{display:flex;align-items:center;gap:8px;font-size:14px}.dx-period h2 svg{color:#64748b}.dx-period p{margin-top:4px;color:#64748b;font-size:12px}.dx-filters{display:flex;gap:12px;align-items:flex-end}.dx-filters label{display:block;margin-bottom:6px;color:#475569;font-size:11px;font-weight:600}.dx-filters select{min-width:135px;min-height:42px;border:1px solid #cbd5e1;padding:8px 32px 8px 12px;border-radius:9px;background:#fff;color:#334155;font-size:12px}.dx-icon-button{display:grid;place-items:center;width:42px;height:42px;border:1px solid #cbd5e1;border-radius:9px;background:#fff;color:#475569}.dx-icon-button:hover{background:#f1f5f9}.dx-metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin-bottom:24px}.dx-metric{min-width:0;padding:20px;border:1px solid #e2e8f0;border-radius:14px;background:#fff}.dx-metric-label{display:flex;justify-content:space-between;gap:12px;color:#64748b;font-size:11px;font-weight:600}.dx-metric-label svg{color:#94a3b8;font-size:16px;flex-shrink:0}.dx-metric>strong{display:block;margin:14px 0 6px;font-size:clamp(18px,2vw,23px);font-weight:700;letter-spacing:-.03em;overflow-wrap:anywhere}.dx-metric>p{color:#64748b;font-size:11px;line-height:1.6}.dx-metric-green>strong,.dx-metric-green svg{color:#15803d}.dx-metric-amber>strong,.dx-metric-amber svg{color:#a16207}.dx-columns{display:grid;grid-template-columns:minmax(0,1.9fr) minmax(280px,1fr);gap:24px;align-items:start}.dx-panel{min-width:0;border:1px solid #e2e8f0;border-radius:16px;background:#fff;overflow:hidden;box-shadow:0 2px 4px #0f172a03}.dx-panel-heading{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:22px 24px;border-bottom:1px solid #f1f5f9}.dx-panel-heading h2{margin-top:3px}.dx-panel-heading p:not(.dx-eyebrow){margin-top:5px;color:#64748b;font-size:11px}.dx-section-icon{font-size:19px;color:#94a3b8;flex-shrink:0}.dx-badge{display:inline-flex;align-items:center;gap:5px;padding:5px 9px;border-radius:7px;background:#f0fdf4;color:#15803d;font-size:10px;font-weight:600}.dx-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:320px;padding:40px 28px;text-align:center}.dx-empty-icon{display:grid;place-items:center;width:52px;height:52px;margin-bottom:18px;border:1px solid #e2e8f0;border-radius:15px;background:#f8fafc;color:#64748b;font-size:22px}.dx-empty h3{font-size:16px}.dx-empty p{max-width:350px;margin-top:8px;color:#64748b;font-size:12px;line-height:1.8}.dx-empty>:last-child:not(p){margin-top:22px}.dx-loading{display:flex;align-items:center;justify-content:center;gap:10px;min-height:320px;padding:24px;color:#64748b;font-size:13px}.dx-report-context{display:flex;justify-content:space-between;flex-wrap:wrap;gap:8px;padding:14px 24px;background:#f8fafc;color:#64748b;font-size:11px}.dx-report-context strong{color:#334155}.dx-table-scroll{overflow-x:auto}.dx-table-hint{display:none}.dx-results{width:100%;min-width:480px;border-collapse:collapse;font-size:12px}.dx-results thead{color:#64748b;background:#fafbfc;font-size:10px}.dx-results th,.dx-results td{padding:15px 10px;border-bottom:1px solid #f1f5f9;text-align:center;white-space:nowrap}.dx-results th:first-child{width:40%;padding-left:24px;text-align:left;white-space:normal}.dx-results th:last-child,.dx-results td:last-child{padding-right:24px}.dx-results tbody th{font-weight:500;color:#334155}.dx-results tbody tr:hover{background:#f8fafc}.dx-grade{display:inline-block;min-width:28px;padding:3px 6px;border-radius:6px;background:#f1f5f9;color:#475569;font-size:11px;font-weight:600}.dx-progress-list{padding:8px 24px 20px}.dx-progress-list section{margin-top:20px}.dx-progress-list h3{margin-bottom:8px;font-size:13px}.dx-progress-list dl>div{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;padding:12px 0;border-bottom:1px solid #f1f5f9;font-size:12px}.dx-progress-list dt{color:#475569}.dx-progress-list dd{max-width:45%;color:#0f172a;text-align:right;font-weight:500}.dx-remarks{margin:20px 24px;padding:16px;border-radius:10px;background:#fffbeb}.dx-remarks h3{color:#92400e;font-size:11px}.dx-remarks p{margin-top:6px;color:#475569;font-size:12px;line-height:1.7}.dx-inline-notice{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin:16px 24px;padding:12px;border:1px solid #fde68a;border-radius:9px;color:#92400e;background:#fffbeb;font-size:11px;line-height:1.7}.dx-inline-notice button{font-weight:700;text-decoration:underline;text-underline-offset:3px}.dx-error{border-color:#fecaca;color:#b91c1c;background:#fef2f2}.dx-report-footer{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:20px 24px;border-top:1px solid #f1f5f9}.dx-text-link{display:inline-flex;align-items:center;gap:8px;color:#475569;font-size:11px;font-weight:600}.dx-text-link:hover{color:#a16207}.dx-side{display:flex;flex-direction:column;gap:24px}.dx-side-content{padding:22px 24px}.dx-side-content .dx-inline-notice{margin:0 0 16px}.dx-side-content>.dx-text-link{margin-top:22px}.dx-muted{color:#64748b;font-size:11px;line-height:1.7}.dx-attendance-rate{display:flex;align-items:baseline;gap:9px}.dx-attendance-rate strong{font-size:30px;font-weight:700;letter-spacing:-.04em}.dx-attendance-rate span{color:#64748b;font-size:11px}.dx-attendance-bar{height:8px;margin:16px 0;overflow:hidden;border-radius:8px;background:#fef3c7}.dx-attendance-bar>span{display:block;height:100%;border-radius:8px;background:#22c55e}.dx-attendance-legend{display:flex;gap:18px;flex-wrap:wrap;font-size:11px;color:#64748b}.dx-attendance-legend span{display:inline-flex;align-items:center;gap:6px}.dx-attendance-legend strong{color:#334155}.dx-attendance-legend i{width:6px;height:6px;border-radius:50%;background:#22c55e}.dx-attendance-legend span:last-child i{background:#fbbf24}.dx-payment-total{margin:6px 0;font-size:26px;font-weight:700;letter-spacing:-.04em;overflow-wrap:anywhere}.dx-payment-list{margin-top:18px}.dx-payment-list>div{display:flex;justify-content:space-between;align-items:flex-start;gap:10px;padding:12px 0;border-top:1px solid #f1f5f9;font-size:11px}.dx-payment-list strong{font-weight:500}.dx-payment-list span{display:block;margin-top:3px;color:#94a3b8;font-size:10px}.dx-quick{margin-top:32px}.dx-quick-heading p{margin-top:4px;color:#64748b;font-size:12px}.dx-shortcuts{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin-top:16px}.dx-shortcuts>a{display:flex;gap:12px;align-items:center;padding:18px 16px;border:1px solid #e2e8f0;border-radius:12px;background:#fff;transition:border-color .15s,box-shadow .15s}.dx-shortcuts>a:hover{border-color:#fbbf24;box-shadow:0 4px 12px #0f172a05}.dx-shortcut-icon{display:grid;place-items:center;flex-shrink:0;width:36px;height:36px;border-radius:10px;background:#f8fafc;color:#64748b;font-size:17px}.dx-shortcuts h3{font-size:11px}.dx-shortcuts p{margin-top:4px;color:#64748b;font-size:10px;line-height:1.7}.dx-shortcuts>a>svg{margin-left:auto;flex-shrink:0;color:#94a3b8;font-size:12px}.dx-theme{display:flex;align-items:center;justify-content:center;gap:10px;margin-top:28px;padding:16px;color:#64748b;font-size:11px;text-align:center}.dx-theme span{font-weight:600}@media (max-width: 1024px){.dx-shortcuts{grid-template-columns:repeat(2,minmax(0,1fr))}.dx-student-details{gap:16px}.dx-period{align-items:flex-start;flex-direction:column;gap:16px}.dx-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width: 760px){.student-dashboard{padding:24px 16px}.dx-heading{align-items:flex-start;gap:12px}.dx-heading>.dx-button{padding:8px 10px;font-size:11px}.dx-student{flex-wrap:wrap;padding:20px}.dx-student-details{width:100%;margin:6px 0 0;padding-top:16px;border-top:1px solid #f1f5f9;justify-content:space-between}.dx-columns{grid-template-columns:minmax(0,1fr);gap:20px}.dx-side{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.dx-panel-heading,.dx-side-content{padding:20px}.dx-metrics{gap:12px}.dx-metric{padding:16px}}@media (max-width: 480px){.dx-heading{flex-direction:column}.dx-heading>.dx-button{min-height:38px}.dx-filters{width:100%;gap:8px}.dx-filters>div{flex:1;min-width:0}.dx-filters select{min-width:0;width:100%;padding-right:20px}.dx-side,.dx-shortcuts{grid-template-columns:minmax(0,1fr)}.dx-panel-heading,.dx-report-context,.dx-report-footer{padding-left:18px;padding-right:18px}.dx-student-details{flex-wrap:wrap;gap:16px}.dx-report-footer{flex-wrap:wrap}.dx-report-footer .dx-button{width:100%}.dx-shortcuts>a{padding:16px}.dx-theme{flex-direction:column;gap:4px}}@media (prefers-reduced-motion: reduce){.student-dashboard .animate-spin{animation:none}.dx-button,.dx-shortcuts>a{transition:none}}@media (max-width: 480px){.dx-table-hint{display:block;padding:10px 18px;color:#64748b;font-size:10px;background:#f8fafc}}
