*,:after,:before{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgba(59,130,246,.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::backdrop{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgba(59,130,246,.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }/*! tailwindcss v3.4.19 | MIT License | https://tailwindcss.com*/*,:after,:before{border:0 solid #e5e7eb;box-sizing:border-box}:after,:before{--tw-content:""}:host,html{line-height:1.5;-webkit-text-size-adjust:100%;font-family:ui-sans-serif,system-ui,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-feature-settings:normal;font-variation-settings:normal;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-tap-highlight-color:transparent}body{line-height:inherit}hr{border-top-width:1px;color:inherit;height:0}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,pre,samp{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-feature-settings:normal;font-size:1em;font-variation-settings:normal}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{border-collapse:collapse;border-color:inherit;text-indent:0}button,input,optgroup,select,textarea{color:inherit;font-family:inherit;font-feature-settings:inherit;font-size:100%;font-variation-settings:inherit;font-weight:inherit;letter-spacing:inherit;line-height:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dd,dl,figure,h1,h2,h3,h4,h5,h6,hr,p,pre{margin:0}fieldset{margin:0}fieldset,legend{padding:0}menu,ol,ul{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{color:#9ca3af;opacity:1}input::placeholder,textarea::placeholder{color:#9ca3af;opacity:1}[role=button],button{cursor:pointer}:disabled{cursor:default}audio,canvas,embed,iframe,img,object,svg,video{display:block;vertical-align:middle}img,video{height:auto;max-width:100%}[hidden]:where(:not([hidden=until-found])){display:none}.sr-only{height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;clip:rect(0,0,0,0);border-width:0;white-space:nowrap}.pointer-events-none{pointer-events:none}.visible{visibility:visible}.collapse{visibility:collapse}.static{position:static}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.inset-0{inset:0}.col-span-2{grid-column:span 2/span 2}.mx-auto{margin-left:auto;margin-right:auto}.my-6{margin-bottom:1.5rem;margin-top:1.5rem}.\!mt-0{margin-top:0!important}.mb-1{margin-bottom:.25rem}.mb-2{margin-bottom:.5rem}.mb-3{margin-bottom:.75rem}.mb-4{margin-bottom:1rem}.mb-5{margin-bottom:1.25rem}.mb-6{margin-bottom:1.5rem}.ml-2{margin-left:.5rem}.ml-auto{margin-left:auto}.mt-1{margin-top:.25rem}.mt-2{margin-top:.5rem}.mt-3{margin-top:.75rem}.mt-4{margin-top:1rem}.mt-5{margin-top:1.25rem}.mt-6{margin-top:1.5rem}.block{display:block}.inline-block{display:inline-block}.flex{display:flex}.inline-flex{display:inline-flex}.table{display:table}.grid{display:grid}.hidden{display:none}.aspect-video{aspect-ratio:16/9}.h-10{height:2.5rem}.h-3{height:.75rem}.h-4{height:1rem}.h-40{height:10rem}.h-5{height:1.25rem}.h-56{height:14rem}.h-8{height:2rem}.h-9{height:2.25rem}.h-full{height:100%}.max-h-80{max-height:20rem}.max-h-96{max-height:24rem}.\!min-h-10{min-height:2.5rem!important}.\!min-h-9{min-height:2.25rem!important}.min-h-11{min-height:2.75rem}.w-1\/3{width:33.333333%}.w-10{width:2.5rem}.w-2\/3{width:66.666667%}.w-24{width:6rem}.w-3{width:.75rem}.w-3\/4{width:75%}.w-4{width:1rem}.w-5\/6{width:83.333333%}.w-56{width:14rem}.w-9{width:2.25rem}.w-full{width:100%}.min-w-0{min-width:0}.min-w-36{min-width:9rem}.min-w-40{min-width:10rem}.min-w-48{min-width:12rem}.min-w-52{min-width:13rem}.min-w-56{min-width:14rem}.min-w-64{min-width:16rem}.min-w-\[36rem\]{min-width:36rem}.max-w-2xl{max-width:42rem}.max-w-32{max-width:8rem}.max-w-3xl{max-width:48rem}.max-w-40{max-width:10rem}.max-w-4xl{max-width:56rem}.max-w-52{max-width:13rem}.max-w-xl{max-width:36rem}.max-w-xs{max-width:20rem}.flex-1{flex:1 1 0%}.shrink-0{flex-shrink:0}.caption-top{caption-side:top}.border-collapse{border-collapse:collapse}.-rotate-90{--tw-rotate:-90deg}.-rotate-90,.transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.cursor-default{cursor:default}.cursor-pointer{cursor:pointer}.resize{resize:both}.list-inside{list-style-position:inside}.list-disc{list-style-type:disc}.list-none{list-style-type:none}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.flex-col{flex-direction:column}.flex-col-reverse{flex-direction:column-reverse}.flex-wrap{flex-wrap:wrap}.place-items-center{place-items:center}.items-start{align-items:flex-start}.items-end{align-items:flex-end}.items-center{align-items:center}.items-baseline{align-items:baseline}.justify-end{justify-content:flex-end}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-2{gap:.5rem}.gap-3{gap:.75rem}.gap-4{gap:1rem}.gap-5{gap:1.25rem}.gap-6{gap:1.5rem}.gap-x-4{-moz-column-gap:1rem;column-gap:1rem}.gap-y-3{row-gap:.75rem}.space-y-1>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-bottom:calc(.25rem*var(--tw-space-y-reverse));margin-top:calc(.25rem*(1 - var(--tw-space-y-reverse)))}.space-y-2>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-bottom:calc(.5rem*var(--tw-space-y-reverse));margin-top:calc(.5rem*(1 - var(--tw-space-y-reverse)))}.space-y-3>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-bottom:calc(.75rem*var(--tw-space-y-reverse));margin-top:calc(.75rem*(1 - var(--tw-space-y-reverse)))}.space-y-4>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-bottom:calc(1rem*var(--tw-space-y-reverse));margin-top:calc(1rem*(1 - var(--tw-space-y-reverse)))}.space-y-5>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-bottom:calc(1.25rem*var(--tw-space-y-reverse));margin-top:calc(1.25rem*(1 - var(--tw-space-y-reverse)))}.space-y-6>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-bottom:calc(1.5rem*var(--tw-space-y-reverse));margin-top:calc(1.5rem*(1 - var(--tw-space-y-reverse)))}.divide-y>:not([hidden])~:not([hidden]){--tw-divide-y-reverse:0;border-bottom-width:calc(1px*var(--tw-divide-y-reverse));border-top-width:calc(1px*(1 - var(--tw-divide-y-reverse)))}.divide-gray-100>:not([hidden])~:not([hidden]){--tw-divide-opacity:1;border-color:rgb(243 244 246/var(--tw-divide-opacity,1))}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.overflow-clip{overflow:clip}.overflow-x-auto{overflow-x:auto}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.\!whitespace-normal{white-space:normal!important}.\!whitespace-nowrap{white-space:nowrap!important}.whitespace-pre-wrap{white-space:pre-wrap}.break-words{overflow-wrap:break-word}.break-all{word-break:break-all}.rounded{border-radius:.25rem}.rounded-2xl{border-radius:1rem}.rounded-full{border-radius:9999px}.rounded-lg{border-radius:.5rem}.rounded-xl{border-radius:.75rem}.border{border-width:1px}.border-b{border-bottom-width:1px}.border-t{border-top-width:1px}.border-dashed{border-style:dashed}.\!border-red-200{--tw-border-opacity:1!important;border-color:rgb(254 202 202/var(--tw-border-opacity,1))!important}.border-amber-200{--tw-border-opacity:1;border-color:rgb(253 230 138/var(--tw-border-opacity,1))}.border-gray-100{--tw-border-opacity:1;border-color:rgb(243 244 246/var(--tw-border-opacity,1))}.border-gray-200{--tw-border-opacity:1;border-color:rgb(229 231 235/var(--tw-border-opacity,1))}.border-gray-300{--tw-border-opacity:1;border-color:rgb(209 213 219/var(--tw-border-opacity,1))}.border-gray-50{--tw-border-opacity:1;border-color:rgb(249 250 251/var(--tw-border-opacity,1))}.border-indigo-100{--tw-border-opacity:1;border-color:rgb(224 231 255/var(--tw-border-opacity,1))}.border-red-200{--tw-border-opacity:1;border-color:rgb(254 202 202/var(--tw-border-opacity,1))}.\!bg-red-700{--tw-bg-opacity:1!important;background-color:rgb(185 28 28/var(--tw-bg-opacity,1))!important}.bg-amber-50{--tw-bg-opacity:1;background-color:rgb(255 251 235/var(--tw-bg-opacity,1))}.bg-canvas{--tw-bg-opacity:1;background-color:rgb(var(--color-canvas)/var(--tw-bg-opacity,1))}.bg-gray-100{--tw-bg-opacity:1;background-color:rgb(243 244 246/var(--tw-bg-opacity,1))}.bg-gray-50{--tw-bg-opacity:1;background-color:rgb(249 250 251/var(--tw-bg-opacity,1))}.bg-indigo-50{--tw-bg-opacity:1;background-color:rgb(238 242 255/var(--tw-bg-opacity,1))}.bg-indigo-50\/70{background-color:rgba(238,242,255,.7)}.bg-red-50{--tw-bg-opacity:1;background-color:rgb(254 242 242/var(--tw-bg-opacity,1))}.bg-slate-50{--tw-bg-opacity:1;background-color:rgb(248 250 252/var(--tw-bg-opacity,1))}.bg-slate-50\/70{background-color:rgba(248,250,252,.7)}.bg-white{--tw-bg-opacity:1;background-color:rgb(255 255 255/var(--tw-bg-opacity,1))}.object-cover{-o-object-fit:cover;object-fit:cover}.p-10{padding:2.5rem}.p-3{padding:.75rem}.p-4{padding:1rem}.p-5{padding:1.25rem}.p-6{padding:1.5rem}.p-8{padding:2rem}.\!px-3{padding-left:.75rem!important;padding-right:.75rem!important}.\!py-1\.5{padding-bottom:.375rem!important;padding-top:.375rem!important}.px-1{padding-left:.25rem;padding-right:.25rem}.px-2{padding-left:.5rem;padding-right:.5rem}.px-3{padding-left:.75rem;padding-right:.75rem}.px-4{padding-left:1rem;padding-right:1rem}.px-5{padding-left:1.25rem;padding-right:1.25rem}.py-10{padding-bottom:2.5rem;padding-top:2.5rem}.py-2{padding-bottom:.5rem;padding-top:.5rem}.py-3{padding-bottom:.75rem;padding-top:.75rem}.py-6{padding-bottom:1.5rem;padding-top:1.5rem}.py-8{padding-bottom:2rem;padding-top:2rem}.pl-4{padding-left:1rem}.pl-5{padding-left:1.25rem}.pt-2{padding-top:.5rem}.pt-3{padding-top:.75rem}.pt-4{padding-top:1rem}.pt-5{padding-top:1.25rem}.text-left{text-align:left}.text-center{text-align:center}.text-right{text-align:right}.font-mono{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}.text-2xl{font-size:1.5rem;line-height:2rem}.text-3xl{font-size:1.875rem;line-height:2.25rem}.text-4xl{font-size:2.25rem;line-height:2.5rem}.text-lg{font-size:1.125rem;line-height:1.75rem}.text-sm{font-size:.875rem;line-height:1.25rem}.text-xl{font-size:1.25rem;line-height:1.75rem}.text-xs{font-size:.75rem;line-height:1rem}.font-bold{font-weight:700}.font-medium{font-weight:500}.font-normal{font-weight:400}.font-semibold{font-weight:600}.capitalize{text-transform:capitalize}.leading-relaxed{line-height:1.625}.tracking-tight{letter-spacing:-.025em}.\!text-red-700{--tw-text-opacity:1!important;color:rgb(185 28 28/var(--tw-text-opacity,1))!important}.text-brand{--tw-text-opacity:1;color:rgb(var(--color-brand)/var(--tw-text-opacity,1))}.text-indigo-100{--tw-text-opacity:1;color:rgb(224 231 255/var(--tw-text-opacity,1))}.text-ink{--tw-text-opacity:1;color:rgb(var(--color-ink)/var(--tw-text-opacity,1))}.text-muted{--tw-text-opacity:1;color:rgb(var(--color-muted)/var(--tw-text-opacity,1))}.text-red-700{--tw-text-opacity:1;color:rgb(185 28 28/var(--tw-text-opacity,1))}.text-red-800{--tw-text-opacity:1;color:rgb(153 27 27/var(--tw-text-opacity,1))}.text-white{--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity,1))}.underline{text-decoration-line:underline}.antialiased{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.opacity-50{opacity:.5}.shadow-card{--tw-shadow:var(--card-shadow);--tw-shadow-colored:var(--card-shadow);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.blur{--tw-blur:blur(8px)}.blur,.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)}:root{background:var(--surface-soft);font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-synthesis:none;text-rendering:optimizeLegibility}*{box-sizing:border-box}[hidden]{display:none!important}body{margin:0;min-height:100vh;min-width:0}:root{--motion-fast:150ms;--motion-base:220ms;--motion-ease:cubic-bezier(.2,.7,.3,1)}.filter-chip,.nav-link,.primary-button,.record-actions-item,.secondary-button,.table-card-row{transition:color var(--motion-fast),background-color var(--motion-fast),border-color var(--motion-fast),box-shadow var(--motion-base),transform var(--motion-base) var(--motion-ease)}.primary-button:active,.secondary-button:active{transform:scale(.98)}.primary-button:disabled,.secondary-button:disabled{transform:none}.data-table tbody tr{transition:background-color var(--motion-fast)}.data-table tbody tr:hover{background:var(--surface-soft)}.data-table th{font-size:11px;letter-spacing:.025em}.master-filter-advanced{min-width:0}.master-filter-advanced[open]{grid-column:1/-1}.master-filter-advanced>summary{width:-moz-max-content;width:max-content}.record-view-table{max-height:72vh;overflow:auto;scrollbar-gutter:stable}.record-view-table .data-table thead{background:var(--surface);position:sticky;top:0;z-index:2}@media (hover:hover){.primary-button:hover,.secondary-button:hover{transform:translateY(-1px)}.table-card-row:hover{box-shadow:0 6px 20px rgb(15 23 42/5%)}}@media (min-width:900px){.record-list[data-view-mode=compact]>.record-view-compact{display:grid;gap:14px;grid-template-columns:repeat(2,minmax(0,1fr))}.record-view-compact>.table-card-row{margin-top:0!important}}@media (prefers-reduced-motion:reduce){*,:after,:before{scroll-behavior:auto!important}.data-table tbody tr,.filter-chip,.nav-link,.primary-button,.record-actions-item,.secondary-button,.table-card-row{transform:none!important;transition:none!important}}.request-loader{backdrop-filter:blur(6px);background:rgb(var(--color-canvas)/94%);border:0;color:rgb(var(--color-ink));height:100%;inset:0;margin:0;max-height:none;max-width:none;overflow-y:auto;overscroll-behavior:contain;padding:max(20px,env(safe-area-inset-top,0px)) 20px max(20px,env(safe-area-inset-bottom,0px));position:fixed;width:100%;z-index:300}.request-loader-visible{display:grid;place-items:center}.request-loader::backdrop{background:transparent}.request-loader-card{background:var(--surface);border:1px solid var(--border);border-radius:22px;box-shadow:0 18px 60px rgba(15,23,42,.12);min-width:0;overflow-wrap:anywhere;padding:28px 24px;text-align:center;width:min(390px,100%)}.request-loader-logo{display:block;height:72px;margin:0 auto 24px;width:72px}.request-loader-title{font-size:20px;font-weight:700;line-height:1.5;margin:0}.request-loader-copy,.request-loader-help{color:rgb(var(--color-muted));font-size:14px;line-height:1.7;margin:12px 0 0}.request-loader-help{border-top:1px solid var(--border);padding-top:16px}.request-loader-progress{background:var(--accent-border);border-radius:999px;height:4px;margin:24px 0;overflow:hidden}.request-loader-progress:after{animation:boot-progress 1.3s ease-in-out infinite;background:rgb(var(--color-brand));border-radius:inherit;content:"";display:block;height:100%;width:40%}.request-loader-dismiss{min-height:44px;width:100%}@media (prefers-reduced-motion:reduce){.request-loader-progress:after{animation:none;margin-inline:auto}}button,input,select,textarea{font:inherit}button:disabled{cursor:not-allowed;opacity:.6}.nav-link{align-items:center;border-radius:12px;color:rgb(var(--color-muted));display:flex;font-size:14px;gap:12px;padding:11px 12px;text-align:left;transition:background .15s,color .15s;width:100%}.nav-link:hover{background:var(--surface-soft);color:rgb(var(--color-ink))}.nav-link-active{font-weight:600}.primary-button{align-items:center;background:#3157d5;border-radius:10px;color:#fff;display:inline-flex;font-size:14px;font-weight:600;gap:8px;justify-content:center;min-height:42px;padding:0 16px;transition:background .15s}.primary-button:hover:not(:disabled){background:#2547bd}.secondary-button{align-items:center;background:var(--surface);border:1px solid var(--border-strong);border-radius:10px;color:var(--text);display:inline-flex;font-size:14px;font-weight:500;justify-content:center;min-height:42px;padding:0 14px}.secondary-button:hover:not(:disabled):not([aria-disabled=true]){background:var(--surface-soft)}.field-label{display:block;font-size:13px;min-width:0}.field-label,.section-label{color:rgb(var(--color-muted));font-weight:500;letter-spacing:normal;line-height:1.5;text-transform:none}.section-label{font-size:12px}.field-input{background:var(--surface);border:1px solid var(--border-strong);border-radius:9px;color:rgb(var(--color-ink));display:block;font-size:14px;margin-top:7px;max-width:100%;min-width:0;outline:none;padding:10px 12px;transition:border .15s,box-shadow .15s;width:100%}.field-input:focus{border-color:rgb(var(--color-brand));box-shadow:0 0 0 3px rgba(49,87,213,.12)}.portal-filter-bar{align-items:end;display:grid;gap:16px;grid-template-columns:minmax(0,1fr)}.portal-filter-bar>*{min-width:0}.portal-filter-bar .field-input{height:46px;min-height:46px}.portal-filter-actions>button{min-height:46px;width:100%}.portal-filter-readonly{align-items:center;cursor:default;display:flex}.portal-filter-help{color:rgb(var(--color-muted));font-size:12px;grid-column:1/-1;line-height:1.7;margin:0}.master-filter-form{align-items:end;display:grid;gap:20px;grid-template-columns:minmax(0,1fr)}.master-filter-form>*{min-width:0}.master-filter-actions{display:grid;gap:12px;grid-column:1/-1;grid-template-columns:repeat(2,minmax(0,1fr))}.master-filter-actions>*{min-height:46px;min-width:0;text-align:center}.master-filter-status{grid-column:1/-1;line-height:1.6;margin-top:-8px}.master-filter-form.subject-catalog-filter{gap:12px;padding:12px 16px}.master-filter-form.subject-catalog-filter .master-filter-search{grid-column:auto}.master-filter-form.subject-catalog-filter .master-filter-actions{gap:8px;grid-column:1/-1}.master-filter-form.subject-catalog-filter .master-filter-actions>*{min-height:40px}@media (min-width:640px){.master-filter-form{grid-template-columns:repeat(2,minmax(0,1fr))}.master-filter-search{grid-column:1/-1}.master-filter-actions{display:flex;justify-content:flex-end}.master-filter-actions>*{min-width:112px}.master-filter-form.subject-catalog-filter{gap:12px;grid-template-columns:minmax(0,1fr) minmax(0,.8fr)}.master-filter-form.subject-catalog-filter .master-filter-actions{grid-column:1/-1}}@media (min-width:1280px){.master-filter-form{grid-template-columns:minmax(0,1.35fr) repeat(3,minmax(0,1fr))}.master-filter-form.teacher-filter-form{grid-template-columns:repeat(3,minmax(0,1fr))}.master-filter-search{grid-column:auto}}@media (min-width:900px){.master-filter-form.subject-catalog-filter{grid-template-columns:minmax(0,1.4fr) minmax(0,.9fr) auto}.master-filter-form.subject-catalog-filter .master-filter-actions{grid-column:auto}.master-filter-form.subject-catalog-filter .master-filter-actions>*{min-width:96px}}.period-control{display:grid;min-width:0}.period-control>.field-label{grid-area:1/1;min-width:0}@media (min-width:768px){.portal-filter-bar{-moz-column-gap:20px;column-gap:20px;grid-template-columns:minmax(0,1fr) minmax(0,1fr) auto;row-gap:12px}.portal-filter-bar-single{grid-template-columns:minmax(0,360px) auto;justify-content:start}.portal-filter-actions>button{width:auto}}.modern-select{display:block;margin-top:7px;max-width:100%;min-width:0;position:relative}.modern-select[data-flush]{margin-top:0}.modern-select[hidden]{display:none!important}select.modern-select-native{border:0!important;clip-path:inset(50%);height:1px!important;margin:0!important;min-height:0!important;opacity:0;padding:0!important;pointer-events:none;position:absolute!important;width:1px!important}.field-input.modern-select-trigger{align-items:center;cursor:pointer;display:flex;gap:12px;justify-content:space-between;margin:0!important;min-height:44px;padding-right:14px;text-align:left;transition:border-color .18s,box-shadow .18s,background-color .18s}.detail-drawer #account-form .modern-select-trigger{font-size:16px;min-height:52px}.modern-select-trigger:hover:not(:disabled){background-color:var(--surface-hover);border-color:var(--control-hover-border)}.modern-select-open>.modern-select-trigger{border-color:#6366f1;box-shadow:0 0 0 3px rgba(79,70,229,.12)}.modern-select-trigger:disabled{background:var(--surface-soft);cursor:not-allowed}.modern-select-placeholder{color:rgb(var(--color-muted))}.modern-select-value{display:block;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.modern-select-chevron{border-bottom:1.8px solid rgb(var(--color-muted));border-right:1.8px solid rgb(var(--color-muted));flex-shrink:0;height:8px;margin:-4px 2px 0 0;transform:rotate(45deg);transition:transform .18s;width:8px}.modern-select-open .modern-select-chevron{transform:translateY(4px) rotate(225deg)}.modern-select-panel{background:var(--surface);border:1px solid var(--accent-border);border-radius:14px;box-shadow:0 14px 40px rgba(49,46,129,.16);box-sizing:border-box;color:rgb(var(--color-ink));font-size:14px;inset:auto;line-height:1.5;margin:0;overflow-y:auto;overscroll-behavior-y:contain;padding:6px;position:fixed;z-index:120}.modern-select-panel[hidden]{display:none!important}.modern-select-panel::backdrop{background:transparent}.modern-select-search{background:var(--surface);border:0;border-bottom:1px solid var(--accent-border);border-radius:13px 13px 0 0;color:rgb(var(--color-ink));margin:-6px 0 6px;outline:none;padding:12px;position:sticky;top:-6px;width:100%;z-index:1}.modern-select-search:focus{box-shadow:0 0 0 2px rgb(var(--color-brand)/20%)}.modern-select-level-label{color:rgb(var(--color-muted));font-size:12px;font-weight:500;padding:8px 12px 4px}.modern-select-no-results{color:rgb(var(--color-muted));padding:12px;text-align:center}.modern-select-group[hidden],.modern-select-level-label[hidden],.modern-select-no-results[hidden],.modern-select-option[hidden]{display:none}.modern-select-group+.modern-select-group{border-top:1px solid var(--accent-bg);margin-top:6px;padding-top:6px}.modern-select-group-label{color:rgb(var(--color-muted));font-size:12px;font-weight:500;letter-spacing:normal;padding:8px 12px 6px}.modern-select-option{align-items:center;border-radius:9px;cursor:pointer;display:flex;gap:12px;justify-content:space-between;min-height:44px;overflow-wrap:anywhere;padding:10px 12px;transition:color .14s,background-color .14s}.modern-select-option>:first-child{min-width:0}.modern-select-option-active{background:var(--accent-bg);color:rgb(var(--color-brand))}.modern-select-option[aria-selected=true]{color:rgb(var(--color-brand));font-weight:600}.modern-select-option[aria-disabled=true]{color:var(--placeholder);cursor:not-allowed}.modern-select-check{color:rgb(var(--color-brand));flex-shrink:0;opacity:0;transition:opacity .14s}.modern-select-option[aria-selected=true] .modern-select-check{opacity:1}.data-table{border-collapse:collapse;font-size:14px;text-align:left;width:100%}.data-table,.data-table th{color:rgb(var(--color-muted))}.data-table th{background:var(--surface-soft);font-size:13px;font-weight:500;letter-spacing:normal;padding:12px 20px;text-transform:none}.data-table td{border-top:1px solid var(--border);padding:14px 20px;white-space:nowrap}.status-pill{align-items:center;border-radius:6px;display:inline-flex;font-size:12px;font-weight:500;letter-spacing:normal;line-height:1.5;padding:3px 8px}.status-gray{background:var(--surface-soft);color:var(--text)}.status-pill:is(.status-green,.status-blue,.status-amber,.status-red,.status-gray){background:color-mix(in srgb,currentColor 7%,var(--surface))}.icon-blue{background:var(--blue-bg);color:var(--blue-text)}.icon-violet{background:#f4f3ff}.skeleton{animation:skeleton-shimmer 1.4s ease-in-out infinite;background:linear-gradient(90deg,var(--skeleton-base) 25%,var(--skeleton-shine) 50%,var(--skeleton-base) 75%);background-size:200% 100%;border-radius:8px}@keyframes skeleton-shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.mobile-topbar{align-items:center;background:var(--surface);border-bottom:1px solid var(--border);display:flex;justify-content:space-between;min-height:64px;padding:10px 16px;position:relative;z-index:30}.bottom-profile,.portal-mobile-menu,.profile-mobile-menu{min-width:0;position:static}.bottom-profile>summary,.portal-mobile-menu>summary,.profile-mobile-menu>summary{cursor:pointer;list-style:none}.bottom-profile>summary::-webkit-details-marker,.portal-mobile-menu>summary::-webkit-details-marker,.profile-mobile-menu>summary::-webkit-details-marker{display:none}.mobile-drawer-panel{border:1px solid var(--border);border-radius:16px;left:max(12px,env(safe-area-inset-left,0px));width:auto}.mobile-drawer-panel,.profile-popover{background:var(--surface);box-shadow:0 16px 40px rgba(24,34,48,.16);max-height:calc(100vh - 100px);max-height:calc(100dvh - 100px - env(safe-area-inset-top, 0px) - env(safe-area-inset-bottom, 0px));overflow-y:auto;overscroll-behavior-y:contain;padding:16px;position:absolute;right:max(12px,env(safe-area-inset-right,0px));top:calc(100% + 8px);z-index:50}.profile-popover{border:1px solid var(--border);border-radius:14px;max-width:calc(100% - 24px - env(safe-area-inset-left, 0px) - env(safe-area-inset-right, 0px));overflow-wrap:anywhere;width:220px}.desktop-profile-menu{flex-shrink:0;position:static}.bottom-nav{backdrop-filter:blur(12px);background:var(--surface-glass);border-top:1px solid var(--border);bottom:0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));left:0;padding:7px max(8px,env(safe-area-inset-right,0px)) calc(7px + env(safe-area-inset-bottom, 0px)) max(8px,env(safe-area-inset-left,0px));position:fixed;right:0;z-index:40}.bottom-nav-link{align-items:center;border-radius:12px;color:rgb(var(--color-muted));display:flex;flex-direction:column;font-size:12px;font-weight:500;gap:3px;justify-content:center;min-height:52px;min-width:0;overflow-wrap:anywhere;padding:4px 2px;text-align:center}.bottom-nav-link svg{height:21px;width:21px}.bottom-nav-link-active{font-weight:700}.bottom-nav-link-active svg{fill:var(--accent-bg);stroke-width:2.2}.profile-popover-bottom{bottom:calc(100% + 8px);right:max(12px,env(safe-area-inset-right,0px));top:auto}.table-card-row{background:var(--surface);border:1px solid var(--border);border-radius:14px;box-shadow:0 4px 14px rgb(24 34 48/4%);padding:15px}.table-card-field{min-width:0}.table-card-label{color:rgb(var(--color-muted));display:block;font-size:12px;font-weight:500;letter-spacing:normal;line-height:1.5;text-transform:none}.table-card-value{color:rgb(var(--color-ink));display:block;font-size:14px;overflow-wrap:anywhere}.record-view-toggle{background:var(--surface-soft);border:1px solid var(--border);border-radius:10px;display:inline-flex;gap:3px;padding:3px}.record-view-toggle button{border-radius:7px;color:rgb(var(--color-muted));cursor:pointer;font-size:12px;font-weight:600;min-height:40px;padding:0 12px}.record-view-toggle button[aria-pressed=true]{background:var(--surface);box-shadow:0 1px 3px rgba(24,34,48,.1);color:rgb(var(--color-brand))}.record-view-toggle button:focus-visible{outline:2px solid rgb(var(--color-brand));outline-offset:1px}.record-view-table{display:block;overflow-x:auto;position:relative}.record-view-compact{display:none}@media (min-width:768px){.record-list[data-view-mode=compact] .record-view-table{display:none}.record-list[data-view-mode=compact] .record-view-compact{display:block}}@media (max-width:767px){.record-list .record-view-table,.record-view-toggle{display:none}.record-list .record-view-compact{display:block}}.record-row-actions{align-items:center;display:flex;gap:12px;justify-content:flex-end;white-space:nowrap}.record-view-table .data-table td,.record-view-table .data-table th{padding:12px 16px}.record-view-table .data-table td{overflow-wrap:anywhere;white-space:normal}.record-view-table .data-table .detail-trigger{max-width:240px;min-width:160px}.record-view-table .data-table td:last-child,.record-view-table .data-table th:last-child{box-shadow:-8px 0 12px -12px rgba(24,34,48,.4);position:sticky;right:0;z-index:1}.record-view-table .data-table td:last-child{background:var(--surface)}.record-view-table .data-table th:last-child{background:var(--surface-soft)}.student-table-scroll,.teacher-table-scroll{max-width:100%;overscroll-behavior-x:contain}.student-data-table{min-width:1040px}.teacher-data-table{min-width:1440px}.record-view-table :is(.student-data-table,.teacher-data-table) td,.record-view-table :is(.student-data-table,.teacher-data-table) th{overflow-wrap:normal;white-space:nowrap}.record-view-table :is(.student-data-table,.teacher-data-table) .detail-trigger{max-width:none}.record-actions-trigger{align-items:center;display:inline-flex;flex-shrink:0;gap:8px;justify-content:center}.record-actions-trigger[aria-expanded=true]{background:var(--accent-bg);border-color:var(--accent-border);color:rgb(var(--color-brand))}.record-actions-trigger svg{flex-shrink:0;transition:transform .18s}.record-actions-trigger[aria-expanded=true] svg{transform:rotate(180deg)}.record-actions-panel{background:var(--surface);border:1px solid var(--border);border-radius:12px;box-shadow:0 12px 36px rgba(24,34,48,.16);color:rgb(var(--color-ink));display:none;inset:auto;margin:0;max-width:calc(100vw - 24px);overflow-y:auto;overscroll-behavior:contain;padding:6px;position:fixed;white-space:normal;width:220px;z-index:60}.record-actions-panel:popover-open,.record-actions-panel[data-open=true]{display:block}.record-actions-caption{color:rgb(var(--color-muted));font-size:12px;font-weight:600;overflow-wrap:anywhere;padding:8px 10px 10px}.record-actions-item{align-items:center;border-radius:8px;cursor:pointer;display:flex;font-size:14px;min-height:44px;padding:10px;text-align:left;width:100%}.record-actions-item:focus-visible,.record-actions-item:hover{background:var(--surface-soft);color:rgb(var(--color-brand))}.record-actions-item:focus-visible{outline:2px solid rgb(var(--color-brand));outline-offset:-2px}.record-actions-danger{color:var(--red-text)}.record-actions-danger:focus-visible,.record-actions-danger:hover{background:var(--red-bg);color:var(--red-text)}.record-actions-divider{background:var(--border);height:1px;margin:5px 4px}.attendance-editing{box-shadow:inset 3px 0 #3157d5}.attendance-row-actions,.attendance-save-actions{align-items:center;display:flex;flex-wrap:wrap;gap:8px}.attendance-row-actions{min-width:190px}.attendance-toggle-track{background:var(--toggle-off);border-radius:999px;flex-shrink:0;height:18px;position:relative;transition:background-color .18s;width:30px}.attendance-toggle-track:after{background:var(--toggle-knob);border-radius:50%;box-shadow:0 1px 3px rgba(24,34,48,.16);content:"";height:12px;left:3px;position:absolute;top:3px;transition:transform .18s,background-color .18s;width:12px}.attendance-toggle[aria-checked=true]{background:var(--accent-bg);border-color:var(--accent-border);color:rgb(var(--color-brand))}.attendance-toggle[aria-checked=true] .attendance-toggle-track{background:var(--toggle-on)}.attendance-toggle[aria-checked=true] .attendance-toggle-track:after{transform:translateX(12px)}@media (max-width:639px){.attendance-save-actions{align-items:stretch;flex-direction:column}}.toast-stack{display:flex;flex-direction:column;gap:12px;max-height:calc(100dvh - 32px - env(safe-area-inset-top, 0px) - env(safe-area-inset-bottom, 0px));overflow-y:auto;padding:4px;pointer-events:none;position:fixed;right:max(12px,env(safe-area-inset-right,0px));top:max(12px,env(safe-area-inset-top,0px));width:min(420px,calc(100vw - 24px - env(safe-area-inset-left, 0px) - env(safe-area-inset-right, 0px)));z-index:150}.toast{background:var(--toast-bg);border:1px solid var(--toast-border);border-left:4px solid var(--toast-accent);border-radius:14px;box-shadow:0 8px 24px rgba(24,34,48,.14);color:var(--toast-text);flex-shrink:0;padding:12px;pointer-events:auto;position:relative;width:100%}.toast-success{--toast-border:#a7f3d0;--toast-accent:#059669;--toast-bg:var(--green-bg);--toast-text:var(--green-text)}.toast-error{--toast-border:var(--red-border);--toast-accent:#e11d48;--toast-bg:var(--red-bg);--toast-text:var(--red-text)}.toast-warning{--toast-border:var(--amber-border);--toast-accent:#d97706;--toast-bg:var(--amber-bg);--toast-text:var(--amber-text)}.toast-info{--toast-border:var(--blue-border);--toast-accent:#0284c7;--toast-bg:var(--blue-bg);--toast-text:var(--blue-text)}.toast-icon{border:1px solid var(--toast-border);border-radius:50%;display:grid;flex-shrink:0;font-size:16px;font-weight:700;height:26px;place-items:center;width:26px}.toast-content{flex:1;min-width:0;overflow-wrap:anywhere}.toast-title{font-size:13px;font-weight:700;line-height:1.6}.toast-message{font-size:13px;font-weight:400;line-height:1.65;margin-top:3px}ul.toast-message{list-style:disc;padding-left:18px}.notifications-ready .notification-source{display:none!important}.notification-source{background:var(--blue-bg);border:1px solid var(--blue-border);border-radius:12px;color:var(--blue-text);font-size:13px;margin:16px 0;padding:12px 16px}.notification-source-error{background:var(--red-bg);border-color:var(--red-border);color:var(--red-text)}.notification-source-success{background:var(--green-bg);border-color:var(--green-border);color:var(--green-text)}.notification-source-warning{background:var(--amber-bg);border-color:var(--amber-border);color:var(--amber-text)}.confirm-dialog{border:0;border-radius:18px;box-shadow:0 24px 70px rgba(24,34,48,.28);color:rgb(var(--color-ink));padding:0;width:min(28rem,calc(100vw - 32px))}.academic-year-delete-dialog{inset:auto;left:50%;margin:0;max-height:calc(100dvh - 32px);overflow-y:auto;position:fixed;top:50%;translate:-50% -50%}.confirm-dialog::backdrop{backdrop-filter:blur(2px);background:rgba(16,24,40,.55)}.photo-preview-tile{background:var(--surface-soft);border-radius:12px;overflow:hidden;position:relative}.photo-preview-tile img{display:block;height:112px;-o-object-fit:cover;object-fit:cover;width:100%}.portal-shell{min-height:100vh}.portal-sidebar{display:none}.portal-workspace{display:flex;flex:1;flex-direction:column;min-height:100vh;min-width:0}.portal-school-logo,.school-logo-image{display:block;height:auto;-o-object-fit:contain;object-fit:contain;width:100%}.portal-school-logo{background:transparent;max-width:200px}.portal-topbar{align-items:center;background:var(--surface-glass);border-bottom:1px solid var(--border);display:flex;gap:8px;justify-content:space-between;min-height:76px;min-width:0;padding:calc(12px + env(safe-area-inset-top, 0px)) max(12px,env(safe-area-inset-right,0px)) 12px max(12px,env(safe-area-inset-left,0px));position:relative;z-index:40}.portal-mobile-brand{flex:1;gap:10px;min-height:44px}.portal-mobile-brand .portal-school-logo{flex-shrink:0;height:44px;max-width:44px;width:44px}.portal-topbar-actions{align-items:center;display:flex;flex-shrink:0;gap:8px}.portal-mobile-menu>.mobile-menu-toggle{display:inline-flex;flex-shrink:0;height:44px;min-height:44px;min-width:44px;padding:0;width:44px}.mobile-menu-toggle svg{display:block;flex-shrink:0;height:20px;width:20px}.portal-mobile-menu[open]>.mobile-menu-toggle{background:var(--accent-bg);border-color:var(--accent-border);color:rgb(var(--color-brand))}.mobile-drawer-panel .nav-link{min-width:0}.mobile-drawer-panel .nav-link>span{min-width:0;overflow-wrap:anywhere}.portal-profile{align-items:center;border-radius:12px;cursor:pointer;display:flex;gap:10px;list-style:none;min-height:44px;min-width:44px;padding:4px}.academic-period-menu>summary::-webkit-details-marker,.portal-profile::-webkit-details-marker{display:none}.portal-profile:hover{background:rgb(var(--color-canvas))}.portal-main{flex:1;margin:0 auto;max-width:1440px;min-width:0;padding:24px 16px;width:100%}.page-heading{align-items:center;display:flex;flex-wrap:wrap;gap:16px;justify-content:space-between;margin-bottom:24px}.nav-group-label{color:rgb(var(--color-muted));font-size:12px;font-weight:500;letter-spacing:normal;margin:0 0 8px;padding:0 12px;text-transform:none}.sidebar-context{background:linear-gradient(135deg,rgb(var(--color-canvas)),var(--violet-bg));border:1px solid var(--accent-border);border-radius:14px;margin-top:auto;padding:16px}.academic-context{align-items:center;background:var(--surface);border:1px solid var(--border);border-radius:16px;display:flex;flex-wrap:wrap;gap:12px;justify-content:space-between;margin-bottom:24px;position:relative;z-index:25}.academic-period-menu{position:static}.academic-period-panel{background:var(--surface);border:1px solid var(--border);border-radius:16px;box-shadow:0 16px 40px rgba(24,34,48,.12);padding:20px;position:absolute;right:0;top:calc(100% + 8px);width:min(360px,100%);z-index:30}details[open]>.academic-period-panel{animation:page-enter .2s var(--ease-out) both}.portal-footer{border-top:1px solid var(--border);color:rgb(var(--color-muted));display:flex;flex-wrap:wrap;font-size:11px;gap:8px;justify-content:space-between;margin:0 auto;max-width:1440px;padding:20px 16px;width:100%}body[data-mobile-bottom-nav] .portal-footer{padding-bottom:calc(104px + env(safe-area-inset-bottom, 0px))}.skip-link{background:var(--surface);border-radius:10px;color:rgb(var(--color-brand));left:16px;padding:12px 16px;position:fixed;top:-100px;z-index:100}.skip-link:focus{top:12px}.quick-action{align-items:center;background:var(--surface);border:1px solid var(--border);border-radius:14px;display:flex;gap:12px;min-height:70px;padding:14px 16px;transition:border-color .18s,background .18s}.quick-action:hover{background:var(--surface-hover);border-color:var(--accent-border)}.dashboard-columns{align-items:start;display:grid;gap:24px;margin-top:24px;min-width:0}.agenda-list-item+.agenda-list-item{border-top:1px solid var(--border)}@media (min-width:640px){.portal-main{padding:32px}.portal-topbar{padding-left:max(32px,env(safe-area-inset-left,0px));padding-right:max(32px,env(safe-area-inset-right,0px))}.portal-footer{padding-left:32px;padding-right:32px}.mobile-drawer-panel{left:max(32px,env(safe-area-inset-left,0px));margin-left:auto;max-width:384px;right:max(32px,env(safe-area-inset-right,0px))}.portal-topbar-actions{gap:12px}}@media (min-width:1024px){.portal-shell{display:flex}.portal-sidebar{background:var(--surface);border-right:1px solid var(--border);display:flex;flex-direction:column;flex-shrink:0;gap:4px;height:100dvh;overflow-y:auto;padding:24px 18px;position:sticky;top:0;width:250px}.portal-main{padding:32px}body[data-mobile-bottom-nav] .portal-footer{padding-bottom:20px}.portal-profile{border:1px solid var(--border);padding:6px 10px}.desktop-profile-menu{position:relative}.desktop-profile-menu>.profile-popover{max-width:min(320px,calc(100vw - 32px));right:0}.bottom-nav{display:none}}@media (min-width:1280px){.dashboard-columns{grid-template-columns:minmax(0,1.7fr) minmax(280px,1fr)}}.status-select-enhanced{display:none!important}.status-choices{background:var(--surface-soft);border:1px solid var(--border);border-radius:12px;display:grid;gap:4px;grid-template-columns:repeat(4,minmax(44px,1fr));margin:8px 0 12px;min-width:212px;padding:4px}.status-choice{align-items:center;border:1px solid transparent;border-radius:8px;color:rgb(var(--color-muted));cursor:pointer;display:inline-flex;font-size:12px;font-weight:600;gap:4px;justify-content:center;min-height:44px;padding:6px;transition:background .18s,border-color .18s,color .18s}.status-choice[aria-pressed=true]:before{content:"\2713"}.status-choice-hadir[aria-pressed=true]{background:var(--green-bg);border-color:#a7f3d0;color:var(--green-text)}.status-choice-izin[aria-pressed=true]{background:var(--blue-bg);border-color:var(--blue-border);color:var(--blue-text)}.status-choice-sakit[aria-pressed=true]{background:var(--amber-bg);border-color:var(--amber-border);color:var(--amber-text)}.status-choice-alpa[aria-pressed=true]{background:var(--red-bg);border-color:var(--red-border);color:var(--red-text)}.status-choices:has(button:disabled){opacity:.6}.field-error{color:var(--red-text);display:block;font-size:12px;font-weight:500;line-height:1.5;margin-top:6px}.field-input[aria-invalid=true],.field-input[aria-invalid=true]:focus,.field-input[aria-invalid=true]:hover{border-color:#e11d48;box-shadow:0 0 0 3px rgb(225 29 72/8%)}[data-attendance-row]:has(select[aria-invalid=true]) .status-choices{border-color:#e11d48;box-shadow:0 0 0 3px rgb(225 29 72/8%)}input:not(.field-input)[aria-invalid=true]{outline:2px solid #e11d48;outline-offset:2px}.filter-chip{align-items:center;background:var(--accent-bg);border:1px solid var(--accent-border);border-radius:999px;color:rgb(var(--color-brand));display:inline-flex;font-size:12px;gap:12px;min-height:44px;padding:8px 14px;transition:background .18s}.summary-card{position:relative}.summary-card-link:after{border-radius:18px;content:"";inset:0;position:absolute}.summary-card:focus-within{outline:3px solid rgba(79,70,229,.45);outline-offset:3px}.detail-trigger{align-items:center;border-radius:8px;color:rgb(var(--color-brand));cursor:pointer;display:inline-flex;gap:8px;min-height:44px;text-align:left;text-decoration:underline;text-decoration-color:var(--accent-border);text-underline-offset:4px}.detail-trigger span[aria-hidden]{color:#818cf8}.detail-drawer{background:var(--surface);border:0;border-left:1px solid var(--border);box-shadow:-12px 0 40px rgba(24,34,48,.12);color:rgb(var(--color-ink));display:none;flex-direction:column;height:var(--portal-dialog-height,100dvh);inset:var(--portal-dialog-top,0) 0 auto auto;margin:0;max-height:var(--portal-dialog-height,100dvh);max-width:100%;overflow:hidden;overscroll-behavior:none;padding:0;position:fixed;width:min(500px,100%)}.detail-drawer[open]{animation:drawer-enter .24s var(--ease-out) both;display:flex}.detail-drawer::backdrop{backdrop-filter:blur(2px);background:rgba(16,24,40,.45)}.detail-drawer-header{align-items:flex-start;background:var(--surface);border-bottom:1px solid var(--border);display:flex;flex:0 0 auto;gap:16px;justify-content:space-between;padding:max(20px,env(safe-area-inset-top,0px)) 24px 20px;position:relative;z-index:2}.detail-drawer-header>:first-child{min-width:0;overflow-wrap:anywhere}.detail-drawer-header [data-close-dialog],.detail-drawer-header form{flex-shrink:0}.detail-drawer-header button{display:grid;flex-shrink:0;font-size:24px;height:44px;min-width:44px;padding:0;place-items:center;width:44px}.detail-drawer-body{flex:1 1 auto;min-height:0;min-width:0;overflow-x:hidden;overflow-y:auto;overscroll-behavior-y:contain;padding:24px;scrollbar-gutter:stable;-webkit-overflow-scrolling:touch}.detail-drawer-footer{background:var(--surface);border-top:1px solid var(--border);display:flex;flex:0 0 auto;flex-wrap:wrap;gap:12px;padding:16px 24px max(16px,env(safe-area-inset-bottom,0px))}.detail-drawer-footer>:first-child{flex:1}.activity-change-dialog{max-height:calc(100dvh - 32px);width:min(1120px,calc(100vw - 32px))}.activity-change-dialog[open]{display:flex;flex-direction:column}.activity-change-body{min-height:0;min-width:0;overflow:auto;overscroll-behavior:contain;padding:24px}.activity-diff-grid{display:grid;gap:20px;grid-template-columns:minmax(0,1fr)}.activity-diff-grid>section{min-width:0}.activity-diff-code{background:var(--surface-soft);border:1px solid var(--border);border-radius:12px;color:rgb(var(--color-ink));font-size:13px;line-height:1.7;max-width:100%;overflow-wrap:anywhere;overflow-x:auto;padding:16px;white-space:pre-wrap}@media (min-width:768px){.activity-diff-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:639px){.activity-change-body{padding:16px}}.record-detail-fields{display:grid;gap:12px;margin-top:20px}.record-detail-fields>div{border-bottom:1px solid var(--border);padding-bottom:12px}.record-detail-fields dd{color:rgb(var(--color-ink));font-size:14px;font-weight:500;margin-top:4px;overflow-wrap:anywhere}.portal-dialog-open{overflow:hidden;overscroll-behavior:none}@media (max-width:639px){.detail-drawer{border-left:0;width:100%}.detail-drawer-header{padding:max(16px,env(safe-area-inset-top,0px)) 16px 16px}.detail-drawer-body{padding:16px}.detail-drawer-footer{padding:12px 16px max(12px,env(safe-area-inset-bottom,0px))}}@media (hover:hover){.status-choice:hover:not(:disabled){border-color:var(--accent-border)}.filter-chip:hover{background:var(--accent-hover)}.detail-trigger:hover{color:rgb(var(--color-brand));text-decoration-color:currentColor}}@keyframes drawer-enter{0%{opacity:0;transform:translateX(24px)}to{opacity:1;transform:translateX(0)}}.class-row-hidden,.period-field-hidden{display:none!important}.chart-tooltip{background:#172554;border:1px solid var(--accent-border);border-left:4px solid var(--tooltip-accent,#6366f1);border-radius:12px;box-shadow:0 8px 28px rgba(24,34,48,.18);color:#fff;left:0;max-width:min(240px,calc(100vw - 16px));opacity:0;padding:12px 16px;pointer-events:none;position:fixed;top:0;transition:opacity .18s ease,visibility 0s linear .18s;visibility:hidden;z-index:100}.chart-tooltip[data-visible]{opacity:1;transition-delay:0s;visibility:visible}.chart-tooltip strong{display:block;font-size:14px}.chart-tooltip span{color:#e0e7ff;display:block;font-size:12px;margin-top:4px}.attendance-donut [data-chart-segment]{cursor:help;transition:opacity .18s,stroke-width .18s}.attendance-donut [data-chart-segment]:focus,.attendance-donut [data-chart-segment]:hover{outline:none;stroke-width:19}.attendance-donut .chart-muted{opacity:.3}.chart-legend{border:1px solid transparent;cursor:help;transition:border-color .18s,background-color .18s}.chart-legend:focus-visible,.chart-legend:hover{background-color:var(--accent-bg);border-color:var(--accent-border)}.class-context-banner{background:var(--accent-bg);border-left:3px solid #818cf8;border-radius:0 12px 12px 0;color:rgb(var(--color-brand));margin-bottom:16px;padding:16px}.class-context-banner,.class-timeline-item{align-items:flex-start;display:flex;gap:12px}.class-timeline-item{border-left:2px solid #e0e7ff;padding:0 0 12px 16px}.class-status-tabs{display:flex;gap:8px;overflow-x:auto;padding:4px 2px 8px}.class-filter-button{background:var(--surface);border:1px solid var(--border);border-radius:999px;cursor:pointer;flex-shrink:0;font-size:12px;font-weight:600;min-height:44px;padding:8px 14px}.class-filter-button[aria-pressed=true]{background:var(--accent-bg);border-color:var(--accent-border);color:rgb(var(--color-brand))}.class-filter-button:hover{border-color:var(--accent-border)}.class-row-unrecorded{background:var(--amber-bg);border-color:var(--amber-border)}.agenda-create{scroll-margin-top:20px}.agenda-create>summary{min-height:44px;padding:8px 0}.agenda-timeline>article{border-left:3px solid #c4b5fd;min-width:0;overflow-wrap:anywhere;position:relative}:root{--brand:#4f46e5;--brand-hover:#4338ca;--ease-out:cubic-bezier(.16,1,.3,1);background:rgb(var(--color-canvas));color:rgb(var(--color-ink))}body{background-image:radial-gradient(ellipse at top right,rgb(139 92 246/5%),transparent 55%)}.primary-button{background:var(--brand);box-shadow:0 3px 8px rgba(79,70,229,.14);min-height:44px}.primary-button:hover:not(:disabled){background:var(--brand-hover);box-shadow:0 5px 14px rgba(79,70,229,.22)}.secondary-button{border-color:var(--border-strong);min-height:44px}.portal-action{gap:8px;max-width:100%;min-height:44px;text-align:center}.portal-action>svg{flex-shrink:0;height:18px;width:18px}.portal-action>span{min-width:0}.primary-button,.quick-action,.secondary-button,.toast-dismiss,[data-edit-attendance]{--action-shadow:79 70 229;transition:background-color .18s,border-color .18s,color .18s,box-shadow .18s,transform .18s}:is(a,button,summary):is(.primary-button,.secondary-button,.quick-action,[data-edit-attendance],.toast-dismiss):not(:disabled):not([aria-disabled=true]):not(.is-loading){cursor:pointer}.danger-button{--action-shadow:225 29 72}:is(.primary-button,.secondary-button,.quick-action,[data-edit-attendance]):active:not(:disabled):not([aria-disabled=true]):not(.is-loading){transform:translateY(0) scale(.98)}:is(.primary-button,.secondary-button)[aria-disabled=true]{box-shadow:none;cursor:not-allowed}:is(.primary-button,.secondary-button).is-loading{-moz-column-gap:10px;column-gap:10px;cursor:progress}[data-edit-attendance]{border-radius:10px}.quick-action>:last-child{transition:transform .18s}@media (hover:hover) and (pointer:fine){:is(.primary-button,.secondary-button):hover:not(:disabled):not([aria-disabled=true]):not(.is-loading){box-shadow:0 5px 12px rgb(var(--action-shadow)/18%);transform:translateY(-2px)}.secondary-button:hover:not(:disabled):not([aria-disabled=true]):not(.is-loading){background-color:var(--accent-bg);border-color:var(--control-hover-border);color:rgb(var(--color-brand))}.secondary-button.danger-button:hover:not(:disabled):not([aria-disabled=true]):not(.is-loading){background-color:var(--red-bg);border-color:#fda4af;color:var(--red-text)}.quick-action:hover{box-shadow:0 5px 16px rgb(var(--action-shadow)/8%);transform:translateY(-2px)}.quick-action:hover>:last-child{transform:translateX(3px)}[data-edit-attendance]:hover:not(:disabled){background-color:var(--accent-bg);box-shadow:0 3px 8px rgb(var(--action-shadow)/12%);color:rgb(var(--color-brand))}:is(.primary-button,.secondary-button,.quick-action,[data-edit-attendance]):active:not(:disabled):not([aria-disabled=true]):not(.is-loading){box-shadow:none;transform:translateY(0) scale(.98)}}:where(a,button,summary,input,select,textarea):focus-visible{outline:3px solid rgb(var(--color-brand));outline-offset:3px}.field-input:focus{border-color:var(--brand);box-shadow:0 0 0 3px rgba(79,70,229,.12)}.nav-link{min-height:44px;transition:background .18s,color .18s}.nav-link-active{background:var(--accent-bg);box-shadow:inset 3px 0 var(--brand);color:rgb(var(--color-brand))}.nav-icon{flex-shrink:0;height:20px;width:20px}.bottom-nav-link{transition:background .18s,color .18s}.bottom-nav-link-active{background:var(--accent-bg);color:rgb(var(--color-brand))}.status-green{background:var(--green-bg);color:var(--green-text)}.status-blue{background:var(--blue-bg);color:var(--blue-text)}.status-amber{background:var(--amber-bg);color:var(--amber-text)}.status-red{background:var(--red-bg);color:var(--red-text)}.status-violet{background:var(--violet-bg);color:var(--violet-text)}.icon-blue{background:var(--accent-bg);color:rgb(var(--color-brand))}.icon-violet{background:var(--violet-bg);color:#7c3aed}.icon-green{background:var(--green-bg);color:var(--green-text)}.icon-amber{background:var(--amber-bg);color:var(--amber-text)}.summary-card{background:var(--surface);border-radius:18px;border-top:3px solid var(--card-accent);isolation:isolate;overflow:clip;transition:transform .2s,box-shadow .2s,background-color .18s,border-color .18s,color .18s}.summary-card:before{background-color:var(--card-tint);border-radius:inherit;content:"";inset:0;-webkit-mask-image:linear-gradient(135deg,transparent 35%,#000);mask-image:linear-gradient(135deg,transparent 35%,#000);pointer-events:none;position:absolute;transition:background-color .18s;z-index:-1}.summary-indigo{--card-accent:#6366f1;--card-tint:var(--accent-bg)}.summary-violet{--card-accent:#8b5cf6;--card-tint:var(--violet-bg)}.summary-green{--card-accent:#10b981;--card-tint:var(--green-bg)}.summary-amber{--card-accent:#f59e0b;--card-tint:var(--amber-bg)}[data-count-up]{font-variant-numeric:tabular-nums}.dashboard-hero{background:linear-gradient(115deg,#3730a3,#4338ca 60%,#6d28d9)}.table-card-row{transition:border-color .18s,box-shadow .18s}.data-table tbody tr{transition:background .18s}.data-table tbody tr:hover{background:var(--surface-hover)}.attendance-editing{background:var(--accent-bg)!important;box-shadow:inset 3px 0 var(--brand)}.attendance-actions{backdrop-filter:blur(12px);background:var(--surface-glass);bottom:0;position:sticky;z-index:20}body[data-mobile-bottom-nav] .attendance-actions{bottom:calc(76px + env(safe-area-inset-bottom, 0px))}.page-content{animation:page-enter .28s var(--ease-out) backwards}.reveal-item{animation:page-enter .42s var(--ease-out) backwards;animation-delay:var(--reveal-delay,0ms)}.confirm-dialog[open],.photo-preview-tile{animation:pop-in .22s var(--ease-out) both}.confirm-dialog[open]::backdrop{animation:fade-in .18s ease-out}details[open]>.mobile-drawer-panel,details[open]>.profile-popover{animation:page-enter .2s var(--ease-out) both}.toast{align-items:flex-start;animation:toast-enter .3s var(--ease-out) both;display:flex;gap:10px}.toast-dismiss{background:transparent;border-radius:10px;color:inherit;display:grid;flex-shrink:0;height:44px;place-items:center;width:44px}.toast-dismiss:hover{background:rgb(24 34 48/6%)}.toast.is-leaving{animation:toast-exit .18s ease-in both}[data-motion-managed]{animation:none!important}.details-motion-content{display:flow-root}.attendance-note-slot{align-items:start;display:grid;min-height:44px}.attendance-note-slot>*{grid-area:1/1;min-width:0}[data-attendance-quick] .status-choice:before{content:"\2713";display:inline-block;flex:0 0 12px;opacity:0;transition:opacity .18s;width:12px}[data-attendance-quick] .status-choice[aria-pressed=true]:before{opacity:1}[data-attendance-quick] .attendance-actions{animation:fade-in .22s var(--ease-out)}:is(.confirm-dialog,.detail-drawer)[open]::backdrop{animation:fade-in .18s ease-out both}:is(.confirm-dialog,.detail-drawer)[data-motion-closing]::backdrop{animation:fade-out .18s ease-in both}.class-filter-button,.portal-profile{transition:background-color .18s,border-color .18s,color .18s}@keyframes fade-out{0%{opacity:1}to{opacity:0}}::view-transition-old(root){animation:fade-out .16s ease-out both}::view-transition-new(root){animation:fade-in .22s ease-out both}@supports (transition-behavior:allow-discrete){[wire\:loading\.remove],[wire\:loading]{transition:opacity .18s ease,display allow-discrete .18s}[wire\:loading\.remove][style*="display: none"],[wire\:loading][style*="display: none"]{opacity:0}@starting-style{[wire\:loading\.remove],[wire\:loading]{opacity:0}}}.status-feedback{animation:status-pulse .3s ease-out}[data-master-results]{transition:opacity .18s}[data-master-results][aria-busy=true]{opacity:.55}.search-results-frame{min-height:0;min-width:0;position:relative;transition:min-height .18s ease}.search-loading-panel{background:rgb(var(--color-canvas));border-radius:16px;inset:0;min-height:260px;pointer-events:none;position:absolute;z-index:10}.search-results-frame.search-is-loading{min-height:460px}.search-results-frame.search-is-loading>[data-master-results]{pointer-events:none}button.is-loading:before{animation:spinner .7s linear infinite;border:2px solid;border-radius:50%;border-right:2px solid transparent;content:"";flex-shrink:0;height:16px;width:16px}@media (hover:hover){.summary-card:hover{box-shadow:0 12px 28px rgba(79,70,229,.1);transform:translateY(-3px)}.table-card-row:hover{border-color:var(--accent-border)}}@media (min-width:1024px){body[data-mobile-bottom-nav] .attendance-actions{bottom:0}}@keyframes page-enter{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}@keyframes pop-in{0%{opacity:0;transform:translateY(6px) scale(.98)}to{opacity:1;transform:none}}@keyframes fade-in{0%{opacity:0}to{opacity:1}}@keyframes toast-enter{0%{opacity:0;transform:translateX(20px)}to{opacity:1;transform:translateX(0)}}@keyframes toast-exit{to{opacity:0;transform:translateX(16px)}}@keyframes spinner{to{transform:rotate(1turn)}}@keyframes status-pulse{50%{box-shadow:0 0 0 4px rgba(79,70,229,.12)}}.auth-page{background:rgb(var(--color-canvas))}.auth-page,.auth-shell{min-height:100vh;min-height:100svh}.auth-shell{display:grid}.auth-visual{display:none}.auth-form-panel{align-items:center;background:radial-gradient(ellipse at top right,rgb(99 102 241/7%),transparent 60%),var(--surface);display:flex;justify-content:center;min-width:0;padding:36px 24px}.auth-form-wrap{animation:page-enter .5s var(--ease-out) both;max-width:420px;width:100%}.auth-branding{align-items:center;display:flex;gap:16px;justify-content:space-between;margin-bottom:28px}.auth-logo{background:transparent;display:block;height:auto;max-width:350px;min-width:0;-o-object-fit:contain;object-fit:contain;width:100%}@media (max-width:1023px){.auth-logo{height:72px;width:72px}.auth-branding{margin-bottom:24px}}.auth-heading{margin-bottom:28px}.auth-kicker{color:#6366f1;display:block;font-size:11px;font-weight:700;letter-spacing:.17em;margin-bottom:10px}.auth-heading h1{font-size:clamp(1.65rem,2.4vw,2rem);font-weight:750;letter-spacing:-.035em;line-height:1.25}.auth-heading p{color:rgb(var(--color-muted));font-size:14px;line-height:1.7;margin-top:10px}.auth-form-wrap .field-input{background-color:var(--surface-soft);border-radius:12px;min-height:50px}.auth-form-wrap .field-input::-moz-placeholder{color:var(--placeholder)}.auth-form-wrap .field-input::placeholder{color:var(--placeholder)}.auth-password-field{position:relative}.auth-password-field .field-input{padding-right:56px}.auth-password-toggle{border-radius:9px;color:rgb(var(--color-brand));cursor:pointer;display:grid;height:44px;padding:0;place-items:center;position:absolute;right:4px;top:3px;transition:background-color .18s,color .18s,transform .18s var(--ease-out);width:44px}.auth-password-toggle svg{height:21px;transition:transform .2s var(--ease-out);width:21px}.auth-password-toggle:focus-visible{background:var(--accent-bg);outline-offset:1px}.auth-password-toggle:active{transform:scale(.94)}.auth-password-pupil{transform-box:fill-box;transform-origin:center;transition:opacity .2s,transform .22s var(--ease-out)}.auth-password-slash{opacity:0;stroke-dasharray:26;stroke-dashoffset:26;transition:stroke-dashoffset .22s var(--ease-out),opacity .18s}.auth-password-toggle[aria-pressed=true] .auth-password-slash{opacity:1;stroke-dashoffset:0}.auth-password-toggle[aria-pressed=true] .auth-password-pupil{opacity:.45;transform:scale(.8)}@media (hover:hover){.auth-password-toggle:hover{background:var(--accent-bg)}.auth-password-toggle:hover svg{transform:scale(1.08)}}.auth-remember{align-items:center;color:rgb(var(--color-muted));cursor:pointer;display:inline-flex;gap:9px;min-height:44px}.auth-remember input{accent-color:rgb(var(--color-brand));height:17px;width:17px}.auth-back-link,.auth-text-link{align-items:center;color:rgb(var(--color-brand));display:inline-flex;font-size:14px;font-weight:600;min-height:44px;text-underline-offset:4px}.auth-back-link:hover,.auth-text-link:hover{text-decoration:underline}.auth-back-link{margin-top:18px}.auth-submit{background:linear-gradient(110deg,#4f46e5,#6366f1);border-radius:12px;gap:16px;justify-content:center;min-height:52px}.auth-submit>:last-child{transition:transform .18s}.auth-submit:hover>:last-child{transform:translateX(3px)}.auth-footer{border-top:1px solid var(--accent-bg);font-size:12px;line-height:1.9;margin-top:38px;padding-top:22px}.auth-footer,.auth-footer span{color:rgb(var(--color-muted))}.theme-toggle{display:grid;flex-shrink:0;height:44px;min-width:44px;padding:0;place-items:center;width:44px}.theme-toggle svg{grid-area:1/1;transition:opacity .18s,transform .22s var(--ease-out)}.theme-icon-sun{opacity:0;transform:rotate(-45deg) scale(.6)}dialog.agenda-photo-dialog{background:var(--surface);color:var(--text);margin:auto;max-height:calc(100dvh - 24px);overflow:auto;padding:16px;width:min(68rem,calc(100vw - 24px))}.agenda-date-nav,.agenda-photo-controls,.agenda-photo-dialog header{align-items:center;display:flex;flex-wrap:wrap;gap:12px;justify-content:space-between}.agenda-photo-dialog h2{flex:1;font-weight:600;min-width:0;overflow-wrap:anywhere}.agenda-photo-dialog figure{margin:16px 0}.agenda-photo-stage{background:var(--surface-soft);border-radius:12px;display:grid;min-height:160px;place-items:center;touch-action:pan-y pinch-zoom}.agenda-photo-stage img{display:block;height:min(60dvh,720px);-o-object-fit:contain;object-fit:contain;width:100%}.agenda-photo-dialog figcaption{margin-top:12px;overflow-wrap:anywhere}.agenda-date-nav a,.agenda-date-nav span,.agenda-photo-dialog a,.agenda-photo-dialog button{border:1px solid var(--border-strong);border-radius:10px;min-height:44px;padding:10px 14px}.agenda-date-nav :focus-visible,.agenda-photo-dialog :focus-visible,[data-agenda-photo]:focus-visible{outline:3px solid rgb(var(--color-brand));outline-offset:3px}.agenda-date-nav{justify-content:flex-start;margin:0 0 20px}.agenda-date-nav [aria-disabled]{opacity:.6}.agenda-photo-error{padding:12px}.dark .theme-icon-moon{opacity:0;transform:rotate(45deg) scale(.6)}.dark .theme-icon-sun{opacity:1;transform:rotate(0) scale(1)}.field-input::-moz-placeholder{color:var(--placeholder);opacity:1}.field-input::placeholder{color:var(--placeholder);opacity:1}.field-input:disabled,.field-input[readonly]{background-color:var(--surface-soft)}.confirm-dialog{background:var(--surface)}.chart-track{stroke:var(--surface-soft)}.icon-violet{color:var(--violet-text)}.toast-success{--toast-border:var(--green-border)}.status-choice-hadir[aria-pressed=true]{border-color:var(--green-border)}.toast-dismiss:hover{background:rgb(var(--color-ink)/8%)}.dark .bg-white,.dark .bg-white\/95{background-color:var(--surface)}.dark :is(.bg-gray-50,.bg-gray-100,.bg-slate-50,.bg-slate-50\/70){background-color:var(--surface-soft)}.dark :is(.bg-indigo-50,.bg-indigo-50\/70){background-color:var(--accent-bg)}.dark .bg-red-50{background-color:var(--red-bg)}.dark :is(.border-gray-50,.border-gray-100,.border-gray-200){border-color:var(--border)}.dark .border-gray-300{border-color:var(--border-strong)}.dark .border-indigo-100{border-color:var(--accent-border)}.dark :is(.border-red-200,.\!border-red-200){border-color:var(--red-border)!important}.dark :is(.text-red-700,.\!text-red-700){color:var(--red-text)!important}.dark .modern-select-group+.modern-select-group{border-color:var(--border)}.dark .class-timeline-item{border-left-color:var(--accent-border)}.dark .agenda-timeline>article{border-left-color:var(--violet-text)}.dark .auth-shell{border-color:var(--border)}.dark .auth-kicker{color:rgb(var(--color-brand))}.dark .auth-footer{border-color:var(--border)}.dark :where(a,button,summary,input,select,textarea):focus-visible{outline-color:#a5b4fc}.dark input:-webkit-autofill{-webkit-text-fill-color:rgb(var(--color-ink));box-shadow:0 0 0 1000px var(--surface) inset}.academic-context,.auth-form-panel,.bg-white,.bottom-nav,.confirm-dialog,.data-table th,.detail-drawer,.field-input,.icon-amber,.icon-blue,.icon-green,.icon-violet,.mobile-drawer-panel,.portal-sidebar,.portal-topbar,.profile-popover,.status-pill,.table-card-row,body{transition:background-color .18s,color .18s,border-color .18s,box-shadow .18s}.class-recap-tile{background:var(--surface);border:1px solid var(--border);border-radius:14px;display:block;min-width:0;padding:16px;transition:background-color .18s,border-color .18s,color .18s}.class-recap-tile:hover{background-color:var(--surface-hover);border-color:var(--control-hover-border)}.attendance-row-hidden{display:none!important}.notification-tools{display:flex;justify-content:flex-end;margin-bottom:16px}.notification-history{max-height:calc(100dvh - 32px);overflow-y:auto;padding:24px;width:min(40rem,calc(100vw - 32px))}.notification-history-item{border-bottom:1px solid var(--border);overflow-wrap:anywhere;padding:16px 0}.notification-history-item:last-child{border:0}.field-feedback-anchor{display:grid;min-width:0;position:relative}.field-feedback-anchor.field-has-feedback .field-input:not(.modern-select-native),.modern-select.field-has-feedback .modern-select-trigger{padding-right:60px}.field-feedback-trigger{border-radius:8px;bottom:1px;color:var(--red-text);cursor:pointer;display:grid;height:44px;place-items:center;position:absolute;right:2px;width:44px;z-index:1}.field-feedback-trigger>span{border:1.5px solid;border-radius:50%;display:grid;font-size:12px;font-weight:700;height:20px;place-items:center;width:20px}.field-feedback-trigger:hover{background-color:var(--red-bg)}.field-feedback-trigger.field-feedback-static{flex-shrink:0;position:static}.field-feedback-anchor[data-feedback-password] .field-feedback-trigger{right:52px}.field-feedback-anchor[data-feedback-password].field-has-feedback .field-input{padding-right:104px}@media (max-width:639px){.field-input{font-size:16px}.dashboard-summary-grid .summary-card{padding:16px}.dashboard-summary-grid .summary-card>div{flex-direction:column-reverse}.dashboard-summary-grid .summary-card-link{font-size:12px}.dashboard-summary-grid .summary-card p{overflow-wrap:anywhere}}@media (max-width:767px){.portal-main{font-size:15px;line-height:1.6}.detail-drawer .text-xs,.portal-main .text-xs{font-size:13px;line-height:1.6}.detail-drawer .field-label,.portal-main .field-label{font-size:14px;line-height:1.5}.detail-drawer .field-input,.portal-main .field-input{font-size:16px;line-height:1.5;min-height:48px}.modern-select-panel{font-size:15px;line-height:1.5}.modern-select-option{min-height:48px}.modern-select-group-label{font-size:12px}.detail-drawer .table-card-label,.portal-main .table-card-label{font-size:12px;line-height:1.6}.detail-drawer .record-detail-fields dd,.portal-main .table-card-value{font-size:15px;line-height:1.6}.detail-drawer .status-pill,.portal-main .status-pill{font-size:13px}.detail-drawer :is(.primary-button,.secondary-button),.portal-main :is(.primary-button,.secondary-button){min-height:44px}.portal-main .status-choice{font-size:13px}.dashboard-summary-grid .summary-card-link{font-size:13px;line-height:1.5}.master-filter-form{padding:20px 16px}.master-filter-form .field-label{font-weight:500}.master-record-toolbar{display:grid;gap:12px;grid-template-columns:minmax(0,1fr)}.master-record-toolbar>*{min-height:46px;width:100%}.master-record-form{grid-template-columns:minmax(0,1fr);row-gap:22px}.master-record-form>*{grid-column:1/-1}.master-record-form .field-label>.text-xs{display:block;font-weight:400;margin-top:8px}.master-record-list .table-card-row{padding:16px}.master-record-list .detail-trigger{align-items:flex-start;font-size:16px;line-height:1.5;max-width:100%;min-width:0;overflow-wrap:anywhere}.master-record-list .record-view-compact p,.master-record-list .record-view-compact span{overflow-wrap:anywhere}.master-record-list .record-view-compact .detail-trigger>span[aria-hidden]{flex-shrink:0}.detail-drawer-header h2{font-size:19px;line-height:1.4}.detail-drawer-body{font-size:15px;line-height:1.6}.detail-drawer-body input[type=file]{font-size:16px;padding:10px 8px}.detail-drawer-body input[type=file]::file-selector-button{margin-right:8px;max-width:100%}}@media (min-width:1024px){.auth-page{padding:24px}.auth-shell{border:1px solid var(--accent-border);border-radius:28px;box-shadow:0 18px 70px rgb(49 46 129/7%);grid-template-columns:minmax(0,1fr) minmax(0,1.15fr);margin:auto;max-width:1600px;min-height:calc(100svh - 48px);overflow:hidden}.auth-visual{animation:fade-in .65s ease-out both;background:radial-gradient(ellipse at 85% 30%,rgba(167,139,250,.45),transparent 65%),linear-gradient(155deg,#312e81,#4f46e5 55%,#7c3aed);color:#fff;display:flex;flex-direction:column;min-height:740px;overflow:hidden;padding:38px;position:relative}.auth-visual-top{align-items:center;display:flex;gap:16px;justify-content:space-between}.auth-eyebrow{color:#e0e7ff;font-size:10px;font-weight:600;letter-spacing:.15em;line-height:1.7}.auth-visual-dot{background:#a7f3d0;border-radius:50%;box-shadow:0 0 0 5px rgba(167,243,208,.12);flex-shrink:0;height:8px;width:8px}.auth-visual-copy{margin-top:74px;position:relative;z-index:1}.auth-visual-copy h2{font-size:clamp(30px,3vw,48px);font-weight:700;letter-spacing:-.035em;line-height:1.17;margin-top:14px}.auth-visual-copy>p:last-child{color:#e0e7ff;font-size:14px;line-height:1.8;margin-top:18px;max-width:340px}.auth-school-art{display:block;height:auto;margin:-15px -38px -12px;max-width:none;width:calc(100% + 76px)}.auth-visual-footer{border-top:1px solid hsla(0,0%,100%,.2);color:#e0e7ff;display:flex;flex-wrap:wrap;font-size:11px;gap:10px;justify-content:space-between;margin-top:auto;padding-top:20px;position:relative}.auth-form-panel{padding:48px 42px}}@media (prefers-reduced-motion:reduce){*,:after,:before{animation-delay:0ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important;transition-duration:.01ms!important}.auth-password-toggle,.auth-password-toggle svg,.primary-button,.quick-action,.quick-action>:last-child,.secondary-button,.summary-card:hover,[data-edit-attendance]{transform:none!important}}.page-heading .section-label{display:none}.academic-context{border-radius:12px;padding:12px 16px}.academic-context>div>span:first-child{display:none}.master-filter-form:not(.subject-catalog-filter){gap:12px;grid-template-columns:minmax(0,1fr) auto;padding:14px 16px;position:relative}.master-filter-form:not(.subject-catalog-filter) .master-filter-search{grid-column:1/-1}.master-filter-form:not(.subject-catalog-filter) .master-filter-actions{display:flex;gap:8px;grid-column:2;grid-row:2}.master-filter-form:not(.subject-catalog-filter) .master-filter-actions>*{min-height:42px;min-width:0;padding:9px 12px}.master-filter-form:not(.subject-catalog-filter) .master-filter-advanced,.master-filter-form:not(.subject-catalog-filter) .master-filter-advanced[open]{grid-column:1;grid-row:2}.master-filter-advanced>summary{min-height:42px}.master-filter-advanced[open]>div{animation:portal-pop .16s var(--motion-ease);background:var(--surface);border:1px solid var(--border);border-radius:12px;box-shadow:0 12px 32px rgba(15,23,42,.12);left:0;margin:0;padding:18px;position:absolute;right:0;top:calc(100% + 6px);z-index:20}.master-filter-status{clip-path:inset(50%);height:1px;overflow:hidden;position:absolute;white-space:nowrap;width:1px}.academic-period-panel,.profile-popover{animation:portal-pop .16s var(--motion-ease)}.record-view-compact .table-card-row{border-radius:14px;padding:18px}@media (hover:hover){.primary-button:hover,.secondary-button:hover{box-shadow:0 3px 10px rgb(15 23 42/6%);transform:none}}@keyframes portal-pop{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}@media (min-width:640px){.master-filter-form:not(.subject-catalog-filter){grid-template-columns:minmax(180px,1fr) auto auto}.master-filter-form:not(.subject-catalog-filter) .master-filter-search{grid-column:1;grid-row:1}.master-filter-form:not(.subject-catalog-filter) .master-filter-advanced,.master-filter-form:not(.subject-catalog-filter) .master-filter-advanced[open]{grid-column:2;grid-row:1}.master-filter-form:not(.subject-catalog-filter) .master-filter-actions{grid-column:3;grid-row:1}}@media (max-width:639px){.master-filter-advanced[open]>div{max-height:65dvh;overflow-y:auto}.master-filter-form:not(.subject-catalog-filter) .master-filter-advanced,.master-filter-form:not(.subject-catalog-filter) .master-filter-advanced[open]{grid-column:1/-1;grid-row:2}.master-filter-form:not(.subject-catalog-filter) .master-filter-actions{grid-column:1/-1;grid-row:3}.master-filter-actions>*{flex:1}.master-filter-advanced>summary,.master-record-toolbar>details>summary{display:flex;justify-content:center;width:100%}}@media (min-width:900px){.record-list[data-view-mode=compact]>.record-view-compact{display:grid}}.hover\:\!bg-red-800:hover{--tw-bg-opacity:1!important;background-color:rgb(153 27 27/var(--tw-bg-opacity,1))!important}.hover\:text-brand:hover{--tw-text-opacity:1;color:rgb(var(--color-brand)/var(--tw-text-opacity,1))}.hover\:underline:hover{text-decoration-line:underline}@media (min-width:640px){.sm\:col-span-2{grid-column:span 2/span 2}.sm\:w-auto{width:auto}.sm\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.sm\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.sm\:grid-cols-\[1fr_1fr_auto\]{grid-template-columns:1fr 1fr auto}.sm\:grid-cols-\[minmax\(0\2c 2fr\)_minmax\(0\2c 1fr\)_5rem_auto\]{grid-template-columns:minmax(0,2fr) minmax(0,1fr) 5rem auto}.sm\:flex-row{flex-direction:row}.sm\:items-end{align-items:flex-end}.sm\:justify-end{justify-content:flex-end}.sm\:gap-4{gap:1rem}.sm\:p-5{padding:1.25rem}.sm\:p-6{padding:1.5rem}.sm\:py-12{padding-bottom:3rem;padding-top:3rem}.sm\:text-3xl{font-size:1.875rem;line-height:2.25rem}}@media (min-width:768px){.md\:block{display:block}.md\:hidden{display:none}.md\:grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.md\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.md\:grid-cols-5{grid-template-columns:repeat(5,minmax(0,1fr))}.md\:grid-cols-\[minmax\(220px\2c 0\.8fr\)_1\.2fr\]{grid-template-columns:minmax(220px,.8fr) 1.2fr}}@media (min-width:1024px){.lg\:col-span-4{grid-column:span 4/span 4}.lg\:block{display:block}.lg\:flex{display:flex}.lg\:hidden{display:none}.lg\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.lg\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}}@media (min-width:1280px){.xl\:col-span-4{grid-column:span 4/span 4}.xl\:block{display:block}.xl\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.xl\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}}@media (min-width:1536px){.\32xl\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}}