@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-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-border-style:solid;--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}}}@layer theme{:root,:host{--font-sans:"Source Han Sans SC", "Noto Sans SC", "PingFang SC", "Microsoft YaHei", "Segoe UI", sans-serif;--font-serif:"Source Han Serif SC", "Noto Serif SC", "Songti SC", "STSong", "SimSun", serif;--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4, 0, .2, 1);--default-font-family:"Source Han Sans SC", "Noto Sans SC", "PingFang SC", "Microsoft YaHei", "Segoe UI", sans-serif;--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%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", Arial, 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;-webkit-text-decoration:inherit;-webkit-text-decoration: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:where(:not(iframe)){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}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.visible{visibility:visible}.sr-only{clip-path:inset(50%);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.relative{position:relative}.sticky{position:sticky}.block{display:block}.flex{display:flex}.hidden{display:none}.inline{display:inline}.inline-flex{display:inline-flex}.table{display:table}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.flex-wrap{flex-wrap:wrap}.border{border-style:var(--tw-border-style);border-width:1px}.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)}.outline{outline-style:var(--tw-outline-style);outline-width:1px}.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,)}.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,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}}@font-face{font-display:block;font-family:KaTeX_AMS;font-style:normal;font-weight:400;src:url(../media/KaTeX_AMS-Regular.25ieegmnh38ts.woff2)format("woff2"),url(../media/KaTeX_AMS-Regular.10y3kupq4t663.woff)format("woff"),url(../media/KaTeX_AMS-Regular.418dr7cz3fo2x.ttf)format("truetype")}@font-face{font-display:block;font-family:KaTeX_Caligraphic;font-style:normal;font-weight:700;src:url(../media/KaTeX_Caligraphic-Bold.06b-ya9t43ioz.woff2)format("woff2"),url(../media/KaTeX_Caligraphic-Bold.2vmk2hva4ctha.woff)format("woff"),url(../media/KaTeX_Caligraphic-Bold.40ltxhe834pns.ttf)format("truetype")}@font-face{font-display:block;font-family:KaTeX_Caligraphic;font-style:normal;font-weight:400;src:url(../media/KaTeX_Caligraphic-Regular.2eph4dlhid_m9.woff2)format("woff2"),url(../media/KaTeX_Caligraphic-Regular.3gxeetazf831f.woff)format("woff"),url(../media/KaTeX_Caligraphic-Regular.07-7u27-nhn_r.ttf)format("truetype")}@font-face{font-display:block;font-family:KaTeX_Fraktur;font-style:normal;font-weight:700;src:url(../media/KaTeX_Fraktur-Bold.2sasz-d-jtw8y.woff2)format("woff2"),url(../media/KaTeX_Fraktur-Bold.1alcy76__wdj2.woff)format("woff"),url(../media/KaTeX_Fraktur-Bold.19yqa_tc9d_gx.ttf)format("truetype")}@font-face{font-display:block;font-family:KaTeX_Fraktur;font-style:normal;font-weight:400;src:url(../media/KaTeX_Fraktur-Regular.2d10y4xmjvzlf.woff2)format("woff2"),url(../media/KaTeX_Fraktur-Regular.110oo81prr9n5.woff)format("woff"),url(../media/KaTeX_Fraktur-Regular.2qhy34r6a05dn.ttf)format("truetype")}@font-face{font-display:block;font-family:KaTeX_Main;font-style:normal;font-weight:700;src:url(../media/KaTeX_Main-Bold.3-rowy8o6_4ky.woff2)format("woff2"),url(../media/KaTeX_Main-Bold.0v1esh257kqpe.woff)format("woff"),url(../media/KaTeX_Main-Bold.0us_n0tnxlxu7.ttf)format("truetype")}@font-face{font-display:block;font-family:KaTeX_Main;font-style:italic;font-weight:700;src:url(../media/KaTeX_Main-BoldItalic.14r2naom8mrec.woff2)format("woff2"),url(../media/KaTeX_Main-BoldItalic.13355ck5zr48q.woff)format("woff"),url(../media/KaTeX_Main-BoldItalic.3x_u9cepaced0.ttf)format("truetype")}@font-face{font-display:block;font-family:KaTeX_Main;font-style:italic;font-weight:400;src:url(../media/KaTeX_Main-Italic.0lig0v9j0700p.woff2)format("woff2"),url(../media/KaTeX_Main-Italic.0afv392dj4w59.woff)format("woff"),url(../media/KaTeX_Main-Italic.2hkw3230mfwcv.ttf)format("truetype")}@font-face{font-display:block;font-family:KaTeX_Main;font-style:normal;font-weight:400;src:url(../media/KaTeX_Main-Regular.1ryvsdzh2w1_e.woff2)format("woff2"),url(../media/KaTeX_Main-Regular.15u8r3b2y7fv4.woff)format("woff"),url(../media/KaTeX_Main-Regular.0symfa7dqj6jd.ttf)format("truetype")}@font-face{font-display:block;font-family:KaTeX_Math;font-style:italic;font-weight:700;src:url(../media/KaTeX_Math-BoldItalic.1oopuu636h4il.woff2)format("woff2"),url(../media/KaTeX_Math-BoldItalic.12pl58orkw9rg.woff)format("woff"),url(../media/KaTeX_Math-BoldItalic.0y5w36a5aq__2.ttf)format("truetype")}@font-face{font-display:block;font-family:KaTeX_Math;font-style:italic;font-weight:400;src:url(../media/KaTeX_Math-Italic.32405s1aq8vas.woff2)format("woff2"),url(../media/KaTeX_Math-Italic.0w0b1ugh62cfr.woff)format("woff"),url(../media/KaTeX_Math-Italic.2vkekfblmz5nb.ttf)format("truetype")}@font-face{font-display:block;font-family:KaTeX_SansSerif;font-style:normal;font-weight:700;src:url(../media/KaTeX_SansSerif-Bold.0h3wi2z_eouyg.woff2)format("woff2"),url(../media/KaTeX_SansSerif-Bold.1ovw5p-yjp56g.woff)format("woff"),url(../media/KaTeX_SansSerif-Bold.2d03q85pwxpti.ttf)format("truetype")}@font-face{font-display:block;font-family:KaTeX_SansSerif;font-style:italic;font-weight:400;src:url(../media/KaTeX_SansSerif-Italic.0wkjc4dm2kcit.woff2)format("woff2"),url(../media/KaTeX_SansSerif-Italic.1qavw__2zz8gk.woff)format("woff"),url(../media/KaTeX_SansSerif-Italic.3i-q087b23-m8.ttf)format("truetype")}@font-face{font-display:block;font-family:KaTeX_SansSerif;font-style:normal;font-weight:400;src:url(../media/KaTeX_SansSerif-Regular.2peiewu59z3d-.woff2)format("woff2"),url(../media/KaTeX_SansSerif-Regular.1i4afx8nk8n4r.woff)format("woff"),url(../media/KaTeX_SansSerif-Regular.31pbu25feko_c.ttf)format("truetype")}@font-face{font-display:block;font-family:KaTeX_Script;font-style:normal;font-weight:400;src:url(../media/KaTeX_Script-Regular.11h14300o9pd0.woff2)format("woff2"),url(../media/KaTeX_Script-Regular.3110jb9c-bxna.woff)format("woff"),url(../media/KaTeX_Script-Regular.28p_x7iz71ofe.ttf)format("truetype")}@font-face{font-display:block;font-family:KaTeX_Size1;font-style:normal;font-weight:400;src:url(../media/KaTeX_Size1-Regular.03lhvx36ekcou.woff2)format("woff2"),url(../media/KaTeX_Size1-Regular.1slf4bh0hc6vm.woff)format("woff"),url(../media/KaTeX_Size1-Regular.1y57-ck23ey8c.ttf)format("truetype")}@font-face{font-display:block;font-family:KaTeX_Size2;font-style:normal;font-weight:400;src:url(../media/KaTeX_Size2-Regular.14s5gg-puz6h-.woff2)format("woff2"),url(../media/KaTeX_Size2-Regular.0-kwyvx03omo8.woff)format("woff"),url(../media/KaTeX_Size2-Regular.2u0s-b07k2o9m.ttf)format("truetype")}@font-face{font-display:block;font-family:KaTeX_Size3;font-style:normal;font-weight:400;src:url(../media/KaTeX_Size3-Regular.1n1rgzz84z8r9.woff2)format("woff2"),url(../media/KaTeX_Size3-Regular.04o9a_02gu_e8.woff)format("woff"),url(../media/KaTeX_Size3-Regular.1pkn-dge4q0fv.ttf)format("truetype")}@font-face{font-display:block;font-family:KaTeX_Size4;font-style:normal;font-weight:400;src:url(../media/KaTeX_Size4-Regular.2sgotkdv3dcyv.woff2)format("woff2"),url(../media/KaTeX_Size4-Regular.3p2r1l7xmebxv.woff)format("woff"),url(../media/KaTeX_Size4-Regular.2uelkfk2yna5e.ttf)format("truetype")}@font-face{font-display:block;font-family:KaTeX_Typewriter;font-style:normal;font-weight:400;src:url(../media/KaTeX_Typewriter-Regular.11gr2d2wuwz77.woff2)format("woff2"),url(../media/KaTeX_Typewriter-Regular.12f8myjij3617.woff)format("woff"),url(../media/KaTeX_Typewriter-Regular.3nee9kjfy6nm8.ttf)format("truetype")}.katex{text-indent:0;text-rendering:auto;font:1.21em/1.2 KaTeX_Main,Times New Roman,serif;position:relative}.katex *{border-color:currentColor;-ms-high-contrast-adjust:none!important}.katex .katex-version:after{content:"0.18.4"}.katex .katex-mathml{clip-path:inset(50%);border:0;width:1px;height:1px;padding:0;position:absolute;overflow:hidden}.katex .katex-html>.katex-newline{display:block}.katex .katex-base{white-space:nowrap;width:min-content;position:relative}.katex .katex-base,.katex .katex-strut{display:inline-block}.katex .textbf{font-weight:700}.katex .textit{font-style:italic}.katex .textrm{font-family:KaTeX_Main}.katex .textsf{font-family:KaTeX_SansSerif}.katex .texttt{font-family:KaTeX_Typewriter}.katex .mathnormal{font-family:KaTeX_Math;font-style:italic}.katex .mathit{font-family:KaTeX_Main;font-style:italic}.katex .mathrm{font-style:normal}.katex .mathbf{font-family:KaTeX_Main;font-weight:700}.katex .boldsymbol{font-family:KaTeX_Math;font-style:italic;font-weight:700}.katex .amsrm,.katex .mathbb,.katex .textbb{font-family:KaTeX_AMS}.katex .mathcal{font-family:KaTeX_Caligraphic}.katex .mathfrak,.katex .textfrak{font-family:KaTeX_Fraktur}.katex .mathboldfrak,.katex .textboldfrak{font-family:KaTeX_Fraktur;font-weight:700}.katex .mathtt{font-family:KaTeX_Typewriter}.katex .mathscr,.katex .textscr{font-family:KaTeX_Script}.katex .mathsf,.katex .textsf{font-family:KaTeX_SansSerif}.katex .mathboldsf,.katex .textboldsf{font-family:KaTeX_SansSerif;font-weight:700}.katex .mathitsf,.katex .mathsfit,.katex .textitsf{font-family:KaTeX_SansSerif;font-style:italic}.katex .mainrm{font-family:KaTeX_Main;font-style:normal}.katex .vlist-t{border-collapse:collapse;table-layout:fixed;display:inline-table}.katex .vlist-r{display:table-row}.katex .vlist{vertical-align:bottom;display:table-cell;position:relative}.katex .vlist>span{height:0;display:block;position:relative}.katex .vlist>span>span{display:inline-block}.katex .vlist>span>.pstrut{width:0;overflow:hidden}.katex .vlist-t2{margin-right:-2px}.katex .vlist-s{vertical-align:bottom;width:2px;min-width:2px;font-size:1px;display:table-cell}.katex .katex-vbox{flex-direction:column;align-items:baseline;display:inline-flex}.katex .katex-thinbox{flex-direction:row;width:0;max-width:0;display:inline-flex}.katex .msupsub{text-align:left}.katex .mfrac>span>span{text-align:center}.katex .mfrac .frac-line{border-bottom-style:solid;width:100%;display:inline-block}.katex .katex-hdashline,.katex .katex-hline,.katex .katex-overline .overline-line,.katex .katex-rule,.katex .katex-underline .underline-line,.katex .mfrac .frac-line{min-height:1px}.katex .mspace{display:inline-block}.katex .katex-smash{line-height:0;display:inline}.katex .clap,.katex .llap,.katex .rlap{width:0;position:relative}.katex .clap>.katex-inner,.katex .llap>.katex-inner,.katex .rlap>.katex-inner{position:absolute}.katex .clap>.katex-fix,.katex .llap>.katex-fix,.katex .rlap>.katex-fix{display:inline-block}.katex .llap>.katex-inner{right:0}.katex .clap>.katex-inner,.katex .rlap>.katex-inner{left:0}.katex .clap>.katex-inner>span{margin-left:-50%;margin-right:50%}.katex .katex-rule{border:0 solid;display:inline-block;position:relative}.katex .katex-hline,.katex .katex-overline .overline-line,.katex .katex-underline .underline-line{border-bottom-style:solid;width:100%;display:inline-block}.katex .katex-hdashline{border-bottom-style:dashed;width:100%;display:inline-block}.katex .sqrt>.katex-root{margin-left:.277778em;margin-right:-.555556em}.katex .fontsize-ensurer.reset-size1.size1,.katex .katex-sizing.reset-size1.size1{font-size:1em}.katex .fontsize-ensurer.reset-size1.size2,.katex .katex-sizing.reset-size1.size2{font-size:1.2em}.katex .fontsize-ensurer.reset-size1.size3,.katex .katex-sizing.reset-size1.size3{font-size:1.4em}.katex .fontsize-ensurer.reset-size1.size4,.katex .katex-sizing.reset-size1.size4{font-size:1.6em}.katex .fontsize-ensurer.reset-size1.size5,.katex .katex-sizing.reset-size1.size5{font-size:1.8em}.katex .fontsize-ensurer.reset-size1.size6,.katex .katex-sizing.reset-size1.size6{font-size:2em}.katex .fontsize-ensurer.reset-size1.size7,.katex .katex-sizing.reset-size1.size7{font-size:2.4em}.katex .fontsize-ensurer.reset-size1.size8,.katex .katex-sizing.reset-size1.size8{font-size:2.88em}.katex .fontsize-ensurer.reset-size1.size9,.katex .katex-sizing.reset-size1.size9{font-size:3.456em}.katex .fontsize-ensurer.reset-size1.size10,.katex .katex-sizing.reset-size1.size10{font-size:4.148em}.katex .fontsize-ensurer.reset-size1.size11,.katex .katex-sizing.reset-size1.size11{font-size:4.976em}.katex .fontsize-ensurer.reset-size2.size1,.katex .katex-sizing.reset-size2.size1{font-size:.833333em}.katex .fontsize-ensurer.reset-size2.size2,.katex .katex-sizing.reset-size2.size2{font-size:1em}.katex .fontsize-ensurer.reset-size2.size3,.katex .katex-sizing.reset-size2.size3{font-size:1.16667em}.katex .fontsize-ensurer.reset-size2.size4,.katex .katex-sizing.reset-size2.size4{font-size:1.33333em}.katex .fontsize-ensurer.reset-size2.size5,.katex .katex-sizing.reset-size2.size5{font-size:1.5em}.katex .fontsize-ensurer.reset-size2.size6,.katex .katex-sizing.reset-size2.size6{font-size:1.66667em}.katex .fontsize-ensurer.reset-size2.size7,.katex .katex-sizing.reset-size2.size7{font-size:2em}.katex .fontsize-ensurer.reset-size2.size8,.katex .katex-sizing.reset-size2.size8{font-size:2.4em}.katex .fontsize-ensurer.reset-size2.size9,.katex .katex-sizing.reset-size2.size9{font-size:2.88em}.katex .fontsize-ensurer.reset-size2.size10,.katex .katex-sizing.reset-size2.size10{font-size:3.45667em}.katex .fontsize-ensurer.reset-size2.size11,.katex .katex-sizing.reset-size2.size11{font-size:4.14667em}.katex .fontsize-ensurer.reset-size3.size1,.katex .katex-sizing.reset-size3.size1{font-size:.714286em}.katex .fontsize-ensurer.reset-size3.size2,.katex .katex-sizing.reset-size3.size2{font-size:.857143em}.katex .fontsize-ensurer.reset-size3.size3,.katex .katex-sizing.reset-size3.size3{font-size:1em}.katex .fontsize-ensurer.reset-size3.size4,.katex .katex-sizing.reset-size3.size4{font-size:1.14286em}.katex .fontsize-ensurer.reset-size3.size5,.katex .katex-sizing.reset-size3.size5{font-size:1.28571em}.katex .fontsize-ensurer.reset-size3.size6,.katex .katex-sizing.reset-size3.size6{font-size:1.42857em}.katex .fontsize-ensurer.reset-size3.size7,.katex .katex-sizing.reset-size3.size7{font-size:1.71429em}.katex .fontsize-ensurer.reset-size3.size8,.katex .katex-sizing.reset-size3.size8{font-size:2.05714em}.katex .fontsize-ensurer.reset-size3.size9,.katex .katex-sizing.reset-size3.size9{font-size:2.46857em}.katex .fontsize-ensurer.reset-size3.size10,.katex .katex-sizing.reset-size3.size10{font-size:2.96286em}.katex .fontsize-ensurer.reset-size3.size11,.katex .katex-sizing.reset-size3.size11{font-size:3.55429em}.katex .fontsize-ensurer.reset-size4.size1,.katex .katex-sizing.reset-size4.size1{font-size:.625em}.katex .fontsize-ensurer.reset-size4.size2,.katex .katex-sizing.reset-size4.size2{font-size:.75em}.katex .fontsize-ensurer.reset-size4.size3,.katex .katex-sizing.reset-size4.size3{font-size:.875em}.katex .fontsize-ensurer.reset-size4.size4,.katex .katex-sizing.reset-size4.size4{font-size:1em}.katex .fontsize-ensurer.reset-size4.size5,.katex .katex-sizing.reset-size4.size5{font-size:1.125em}.katex .fontsize-ensurer.reset-size4.size6,.katex .katex-sizing.reset-size4.size6{font-size:1.25em}.katex .fontsize-ensurer.reset-size4.size7,.katex .katex-sizing.reset-size4.size7{font-size:1.5em}.katex .fontsize-ensurer.reset-size4.size8,.katex .katex-sizing.reset-size4.size8{font-size:1.8em}.katex .fontsize-ensurer.reset-size4.size9,.katex .katex-sizing.reset-size4.size9{font-size:2.16em}.katex .fontsize-ensurer.reset-size4.size10,.katex .katex-sizing.reset-size4.size10{font-size:2.5925em}.katex .fontsize-ensurer.reset-size4.size11,.katex .katex-sizing.reset-size4.size11{font-size:3.11em}.katex .fontsize-ensurer.reset-size5.size1,.katex .katex-sizing.reset-size5.size1{font-size:.555556em}.katex .fontsize-ensurer.reset-size5.size2,.katex .katex-sizing.reset-size5.size2{font-size:.666667em}.katex .fontsize-ensurer.reset-size5.size3,.katex .katex-sizing.reset-size5.size3{font-size:.777778em}.katex .fontsize-ensurer.reset-size5.size4,.katex .katex-sizing.reset-size5.size4{font-size:.888889em}.katex .fontsize-ensurer.reset-size5.size5,.katex .katex-sizing.reset-size5.size5{font-size:1em}.katex .fontsize-ensurer.reset-size5.size6,.katex .katex-sizing.reset-size5.size6{font-size:1.11111em}.katex .fontsize-ensurer.reset-size5.size7,.katex .katex-sizing.reset-size5.size7{font-size:1.33333em}.katex .fontsize-ensurer.reset-size5.size8,.katex .katex-sizing.reset-size5.size8{font-size:1.6em}.katex .fontsize-ensurer.reset-size5.size9,.katex .katex-sizing.reset-size5.size9{font-size:1.92em}.katex .fontsize-ensurer.reset-size5.size10,.katex .katex-sizing.reset-size5.size10{font-size:2.30444em}.katex .fontsize-ensurer.reset-size5.size11,.katex .katex-sizing.reset-size5.size11{font-size:2.76444em}.katex .fontsize-ensurer.reset-size6.size1,.katex .katex-sizing.reset-size6.size1{font-size:.5em}.katex .fontsize-ensurer.reset-size6.size2,.katex .katex-sizing.reset-size6.size2{font-size:.6em}.katex .fontsize-ensurer.reset-size6.size3,.katex .katex-sizing.reset-size6.size3{font-size:.7em}.katex .fontsize-ensurer.reset-size6.size4,.katex .katex-sizing.reset-size6.size4{font-size:.8em}.katex .fontsize-ensurer.reset-size6.size5,.katex .katex-sizing.reset-size6.size5{font-size:.9em}.katex .fontsize-ensurer.reset-size6.size6,.katex .katex-sizing.reset-size6.size6{font-size:1em}.katex .fontsize-ensurer.reset-size6.size7,.katex .katex-sizing.reset-size6.size7{font-size:1.2em}.katex .fontsize-ensurer.reset-size6.size8,.katex .katex-sizing.reset-size6.size8{font-size:1.44em}.katex .fontsize-ensurer.reset-size6.size9,.katex .katex-sizing.reset-size6.size9{font-size:1.728em}.katex .fontsize-ensurer.reset-size6.size10,.katex .katex-sizing.reset-size6.size10{font-size:2.074em}.katex .fontsize-ensurer.reset-size6.size11,.katex .katex-sizing.reset-size6.size11{font-size:2.488em}.katex .fontsize-ensurer.reset-size7.size1,.katex .katex-sizing.reset-size7.size1{font-size:.416667em}.katex .fontsize-ensurer.reset-size7.size2,.katex .katex-sizing.reset-size7.size2{font-size:.5em}.katex .fontsize-ensurer.reset-size7.size3,.katex .katex-sizing.reset-size7.size3{font-size:.583333em}.katex .fontsize-ensurer.reset-size7.size4,.katex .katex-sizing.reset-size7.size4{font-size:.666667em}.katex .fontsize-ensurer.reset-size7.size5,.katex .katex-sizing.reset-size7.size5{font-size:.75em}.katex .fontsize-ensurer.reset-size7.size6,.katex .katex-sizing.reset-size7.size6{font-size:.833333em}.katex .fontsize-ensurer.reset-size7.size7,.katex .katex-sizing.reset-size7.size7{font-size:1em}.katex .fontsize-ensurer.reset-size7.size8,.katex .katex-sizing.reset-size7.size8{font-size:1.2em}.katex .fontsize-ensurer.reset-size7.size9,.katex .katex-sizing.reset-size7.size9{font-size:1.44em}.katex .fontsize-ensurer.reset-size7.size10,.katex .katex-sizing.reset-size7.size10{font-size:1.72833em}.katex .fontsize-ensurer.reset-size7.size11,.katex .katex-sizing.reset-size7.size11{font-size:2.07333em}.katex .fontsize-ensurer.reset-size8.size1,.katex .katex-sizing.reset-size8.size1{font-size:.347222em}.katex .fontsize-ensurer.reset-size8.size2,.katex .katex-sizing.reset-size8.size2{font-size:.416667em}.katex .fontsize-ensurer.reset-size8.size3,.katex .katex-sizing.reset-size8.size3{font-size:.486111em}.katex .fontsize-ensurer.reset-size8.size4,.katex .katex-sizing.reset-size8.size4{font-size:.555556em}.katex .fontsize-ensurer.reset-size8.size5,.katex .katex-sizing.reset-size8.size5{font-size:.625em}.katex .fontsize-ensurer.reset-size8.size6,.katex .katex-sizing.reset-size8.size6{font-size:.694444em}.katex .fontsize-ensurer.reset-size8.size7,.katex .katex-sizing.reset-size8.size7{font-size:.833333em}.katex .fontsize-ensurer.reset-size8.size8,.katex .katex-sizing.reset-size8.size8{font-size:1em}.katex .fontsize-ensurer.reset-size8.size9,.katex .katex-sizing.reset-size8.size9{font-size:1.2em}.katex .fontsize-ensurer.reset-size8.size10,.katex .katex-sizing.reset-size8.size10{font-size:1.44028em}.katex .fontsize-ensurer.reset-size8.size11,.katex .katex-sizing.reset-size8.size11{font-size:1.72778em}.katex .fontsize-ensurer.reset-size9.size1,.katex .katex-sizing.reset-size9.size1{font-size:.289352em}.katex .fontsize-ensurer.reset-size9.size2,.katex .katex-sizing.reset-size9.size2{font-size:.347222em}.katex .fontsize-ensurer.reset-size9.size3,.katex .katex-sizing.reset-size9.size3{font-size:.405093em}.katex .fontsize-ensurer.reset-size9.size4,.katex .katex-sizing.reset-size9.size4{font-size:.462963em}.katex .fontsize-ensurer.reset-size9.size5,.katex .katex-sizing.reset-size9.size5{font-size:.520833em}.katex .fontsize-ensurer.reset-size9.size6,.katex .katex-sizing.reset-size9.size6{font-size:.578704em}.katex .fontsize-ensurer.reset-size9.size7,.katex .katex-sizing.reset-size9.size7{font-size:.694444em}.katex .fontsize-ensurer.reset-size9.size8,.katex .katex-sizing.reset-size9.size8{font-size:.833333em}.katex .fontsize-ensurer.reset-size9.size9,.katex .katex-sizing.reset-size9.size9{font-size:1em}.katex .fontsize-ensurer.reset-size9.size10,.katex .katex-sizing.reset-size9.size10{font-size:1.20023em}.katex .fontsize-ensurer.reset-size9.size11,.katex .katex-sizing.reset-size9.size11{font-size:1.43981em}.katex .fontsize-ensurer.reset-size10.size1,.katex .katex-sizing.reset-size10.size1{font-size:.24108em}.katex .fontsize-ensurer.reset-size10.size2,.katex .katex-sizing.reset-size10.size2{font-size:.289296em}.katex .fontsize-ensurer.reset-size10.size3,.katex .katex-sizing.reset-size10.size3{font-size:.337512em}.katex .fontsize-ensurer.reset-size10.size4,.katex .katex-sizing.reset-size10.size4{font-size:.385728em}.katex .fontsize-ensurer.reset-size10.size5,.katex .katex-sizing.reset-size10.size5{font-size:.433944em}.katex .fontsize-ensurer.reset-size10.size6,.katex .katex-sizing.reset-size10.size6{font-size:.48216em}.katex .fontsize-ensurer.reset-size10.size7,.katex .katex-sizing.reset-size10.size7{font-size:.578592em}.katex .fontsize-ensurer.reset-size10.size8,.katex .katex-sizing.reset-size10.size8{font-size:.694311em}.katex .fontsize-ensurer.reset-size10.size9,.katex .katex-sizing.reset-size10.size9{font-size:.833173em}.katex .fontsize-ensurer.reset-size10.size10,.katex .katex-sizing.reset-size10.size10{font-size:1em}.katex .fontsize-ensurer.reset-size10.size11,.katex .katex-sizing.reset-size10.size11{font-size:1.19961em}.katex .fontsize-ensurer.reset-size11.size1,.katex .katex-sizing.reset-size11.size1{font-size:.200965em}.katex .fontsize-ensurer.reset-size11.size2,.katex .katex-sizing.reset-size11.size2{font-size:.241158em}.katex .fontsize-ensurer.reset-size11.size3,.katex .katex-sizing.reset-size11.size3{font-size:.281351em}.katex .fontsize-ensurer.reset-size11.size4,.katex .katex-sizing.reset-size11.size4{font-size:.321543em}.katex .fontsize-ensurer.reset-size11.size5,.katex .katex-sizing.reset-size11.size5{font-size:.361736em}.katex .fontsize-ensurer.reset-size11.size6,.katex .katex-sizing.reset-size11.size6{font-size:.401929em}.katex .fontsize-ensurer.reset-size11.size7,.katex .katex-sizing.reset-size11.size7{font-size:.482315em}.katex .fontsize-ensurer.reset-size11.size8,.katex .katex-sizing.reset-size11.size8{font-size:.578778em}.katex .fontsize-ensurer.reset-size11.size9,.katex .katex-sizing.reset-size11.size9{font-size:.694534em}.katex .fontsize-ensurer.reset-size11.size10,.katex .katex-sizing.reset-size11.size10{font-size:.833601em}.katex .fontsize-ensurer.reset-size11.size11,.katex .katex-sizing.reset-size11.size11{font-size:1em}.katex .delimsizing.size1{font-family:KaTeX_Size1}.katex .delimsizing.size2{font-family:KaTeX_Size2}.katex .delimsizing.size3{font-family:KaTeX_Size3}.katex .delimsizing.size4{font-family:KaTeX_Size4}.katex .delimsizing.mult .delim-size1>span{font-family:KaTeX_Size1}.katex .delimsizing.mult .delim-size4>span{font-family:KaTeX_Size4}.katex .nulldelimiter{width:.12em;display:inline-block}.katex .delimcenter,.katex .op-symbol{position:relative}.katex .op-symbol.small-op{font-family:KaTeX_Size1}.katex .op-symbol.large-op{font-family:KaTeX_Size2}.katex .katex-accent>.vlist-t,.katex .op-limits>.vlist-t{text-align:center}.katex .katex-accent .accent-body{position:relative}.katex .katex-accent .accent-body:not(.accent-full){width:0}.katex .katex-overlay{display:block}.katex .mtable .vertical-separator{min-width:1px;display:inline-block}.katex .mtable .arraycolsep{display:inline-block}.katex .mtable .col-align-c>.vlist-t{text-align:center}.katex .mtable .col-align-l>.vlist-t{text-align:left}.katex .mtable .col-align-r>.vlist-t{text-align:right}.katex .svg-align{text-align:left}.katex svg{fill:currentColor;stroke:currentColor;height:inherit;width:100%;display:block;position:absolute}.katex svg path{stroke:none}.katex svg{fill-rule:nonzero;fill-opacity:1;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1}.katex img{border-style:none;min-width:0;max-width:none;min-height:0;max-height:none}.katex .katex-stretchy{width:100%;display:block;position:relative;overflow:hidden}.katex .katex-stretchy:after,.katex .katex-stretchy:before{content:""}.katex .hide-tail{width:100%;position:relative;overflow:hidden}.katex .halfarrow-left{width:50.2%;position:absolute;left:0;overflow:hidden}.katex .halfarrow-right{width:50.2%;position:absolute;right:0;overflow:hidden}.katex .brace-left{width:25.1%;position:absolute;left:0;overflow:hidden}.katex .brace-center{width:50%;position:absolute;left:25%;overflow:hidden}.katex .brace-right{width:25.1%;position:absolute;right:0;overflow:hidden}.katex .x-arrow-pad{padding:0 .5em}.katex .cd-arrow-pad{padding:0 .55556em 0 .27778em}.katex .mover,.katex .munder,.katex .x-arrow{text-align:center}.katex .boxpad{padding:0 .3em}.katex .fbox,.katex .fcolorbox{box-sizing:border-box;border:.04em solid}.katex .cancel-pad{padding:0 .2em}.katex .cancel-lap{margin-left:-.2em;margin-right:-.2em}.katex .katex-sout{border-bottom-style:solid;border-bottom-width:.08em}.katex .angl{box-sizing:border-box;border-top:.049em solid;border-right:.049em solid;margin-right:.03889em}.katex .anglpad{padding:0 .03889em}.katex .eqn-num:before{content:"(" counter(katexEqnNo) ")";counter-increment:katexEqnNo}.katex .mml-eqn-num:before{content:"(" counter(mmlEqnNo) ")";counter-increment:mmlEqnNo}.katex .mtr-glue{width:50%}.katex .cd-vert-arrow{display:inline-block;position:relative}.katex .cd-label-left{text-align:left;display:inline-block;position:absolute;right:calc(50% + .3em)}.katex .cd-label-right{text-align:right;display:inline-block;position:absolute;left:calc(50% + .3em)}.katex-display{text-align:center;margin:1em 0;display:block}.katex-display>.katex{text-align:center;white-space:nowrap;display:block}.katex-display>.katex>.katex-html{display:block;position:relative}.katex-display>.katex>.katex-html>.katex-tag{position:absolute;right:0}.katex-display.leqno>.katex>.katex-html>.katex-tag{left:0;right:auto}.katex-display.fleqn>.katex{text-align:left;padding-left:2em}body{counter-reset:katexEqnNo mmlEqnNo}:root{--bg-deep:#e8efe9;--bg:#f3f7f4;--surface:#fffcf7;--ink:#18231c;--muted:#5c6b62;--line:#d5e0d8;--accent:#1f6b54;--accent-soft:#d9eee6;--warn:#8a5a2b;--shadow:0 18px 50px #18231c14;--radius:18px;--max:1080px;--font-sans:"Source Han Sans SC", "Noto Sans SC", "PingFang SC", "Microsoft YaHei", "Segoe UI", sans-serif;--font-serif:"Source Han Serif SC", "Noto Serif SC", "Songti SC", "STSong", "SimSun", serif}*{box-sizing:border-box}html,body{min-height:100%;margin:0}body{color:var(--ink);font-family:var(--font-sans), "PingFang SC", sans-serif;background:var(--bg);line-height:1.7}a{color:inherit;text-decoration:none}.page-bg{z-index:-1;background:radial-gradient(900px 480px at 12% -10%, #cfe8dc 0%, transparent 55%), radial-gradient(700px 420px at 90% 8%, #e7efd8 0%, transparent 50%), linear-gradient(180deg, var(--bg-deep), var(--bg) 42%, #eef3ef);position:fixed;inset:0}.shell{width:min(var(--max), calc(100% - 2rem));margin-inline:auto}.site-header{z-index:20;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#f3f7f4d1;border-bottom:1px solid #d5e0d8cc;position:sticky;top:0}.header-inner{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.75rem 1rem;min-height:4rem;padding:.35rem 0;display:flex}.brand{font-family:var(--font-serif), serif;letter-spacing:.04em;flex-shrink:0;max-width:100%;font-size:1.25rem;font-weight:700}.nav{color:var(--muted);flex-wrap:wrap;justify-content:flex-end;gap:.15rem .35rem;max-width:100%;font-size:.95rem;display:flex}.nav a{border-radius:8px;align-items:center;min-height:2.4rem;padding:.45rem .5rem;display:inline-flex}.nav a:hover{color:var(--accent);background:var(--accent)}@supports (color:color-mix(in lab, red, red)){.nav a:hover{background:color-mix(in srgb, var(--accent) 8%, transparent)}}.nav-login{color:var(--accent);font-weight:600}.login-page{place-items:center;min-height:calc(100vh - 10rem);padding:3rem 0 4rem;display:grid}.login-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);width:min(420px,100%);box-shadow:var(--shadow);padding:1.75rem 1.5rem 1.5rem}.login-eyebrow{font-family:var(--font-serif), serif;color:var(--accent);letter-spacing:.06em;margin:0 0 .35rem;font-size:.95rem}.login-form{margin-top:1.25rem}.main-area{min-height:calc(100vh - 8rem)}.site-footer{border-top:1px solid var(--line);margin-top:4rem}.footer-inner{color:var(--muted);padding:1.5rem 0 2rem;font-size:.85rem}.hero{padding:4.5rem 0 3.5rem}.hero-brand{font-family:var(--font-serif), serif;letter-spacing:.02em;margin:0 0 1rem;font-size:clamp(2.6rem,7vw,4.4rem);line-height:1.15}.hero-lead{max-width:34rem;color:var(--muted);margin:0 0 2rem;font-size:1.1rem}.cta-row{flex-wrap:wrap;gap:.85rem;display:flex}.cta-row-spread{align-items:center;width:100%}.cta-row-spread>.btn-ghost:last-child{margin-left:auto}.btn{cursor:pointer;border:1px solid #0000;border-radius:999px;justify-content:center;align-items:center;gap:.4rem;padding:.7rem 1.25rem;font-size:.95rem;transition:all .18s;display:inline-flex}.btn-primary{background:var(--accent);color:#f7fffb}.btn-primary:hover{filter:brightness(1.05)}.btn-secondary{background:var(--surface);border-color:var(--line)}.btn-secondary:hover{border-color:var(--accent);color:var(--accent)}.btn-ghost{border-color:var(--line);color:var(--accent);background:0 0}.btn-locked,.btn-locked:disabled{color:#5a5a5a;cursor:not-allowed;opacity:1;filter:none;background:#c8c8c8;border-color:#b0b0b0}.btn-locked:hover{filter:none}.roll-fields{border:none;min-width:0;margin:0;padding:0;display:contents}.roll-fields:disabled .field,.roll-fields:disabled .meta{opacity:.72}.roll-fields:disabled input,.roll-fields:disabled select{cursor:not-allowed;background:var(--surface)}@supports (color:color-mix(in lab, red, red)){.roll-fields:disabled input,.roll-fields:disabled select{background:color-mix(in srgb, var(--surface) 85%, #d0d0d0)}}.section{padding:1.5rem 0 3rem}.section-title{font-family:var(--font-serif), serif;margin:0 0 .4rem;font-size:1.8rem}.section-desc{color:var(--muted);margin:0 0 1.5rem}.list{gap:.9rem;display:grid}.item{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:1.1rem 1.2rem}.item-title{font-family:var(--font-serif), serif;margin:0 0 .35rem;font-size:1.2rem}.meta{color:var(--muted);flex-wrap:wrap;gap:.5rem .85rem;font-size:.85rem;display:flex}.tag{background:var(--accent-soft);color:var(--accent);border-radius:999px;padding:.15rem .55rem;font-size:.78rem;display:inline-flex}.empty{border:1px dashed var(--line);border-radius:var(--radius);color:var(--muted);background:#fffcf780;padding:2rem}.prose-math{overflow-wrap:anywhere;font-size:1.02rem}.prose-math p{margin:.6rem 0}.prose-math .katex{font-size:1.05em}.prose-math .katex-display,.trajectory-timeline-card .prose-math{-webkit-overflow-scrolling:touch;max-width:100%;overflow-x:auto}.prose-math hr{border:0;border-top:1px solid var(--line);margin:.85rem 0}.feedback-preview .prose-math p,.trajectory-timeline-card .prose-math p{margin:.2rem 0}.feedback-preview .prose-math hr,.trajectory-timeline-card .prose-math hr{margin:.65rem 0}.answer-block{margin-top:1.25rem}.answer-panel{border:1px solid var(--line);background:#f7faf7;border-radius:12px;margin-top:.85rem;padding:1rem}.admin-shell{width:min(920px,100% - 2rem);margin:2rem auto 3rem}.admin-topbar{grid-template-columns:1fr auto 1fr;align-items:center;gap:.75rem;margin-bottom:.75rem;display:grid}.admin-topbar>:first-child{justify-self:start}.admin-topbar-center{text-align:center;justify-self:center}.admin-topbar>:last-child{justify-self:end}.admin-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:1.4rem}.teacher-income-panel{border:1px solid var(--line);background:var(--accent);border-radius:12px;margin:1rem 0 1.5rem;padding:.9rem 1rem 1rem}@supports (color:color-mix(in lab, red, red)){.teacher-income-panel{background:color-mix(in srgb, var(--accent) 5%, #fff)}}.teacher-income-formula{letter-spacing:.02em;border:1px solid var(--line);word-break:break-word;background:#fff;border-radius:8px;margin:0 0 .75rem;padding:.55rem .7rem;font-size:1.15rem;font-weight:700}.teacher-income-terms{gap:.55rem;margin:0;padding:0;list-style:none;display:grid}.teacher-income-terms li{border:1px solid var(--line);background:#fff;border-radius:8px;gap:.15rem;padding:.45rem .55rem;display:grid}@supports (color:color-mix(in lab, red, red)){.teacher-income-terms li{border:1px solid color-mix(in srgb, var(--line) 85%, transparent)}}.teacher-income-terms li{font-size:.92rem}.teacher-income-term-sum{color:var(--accent);font-weight:700}.teacher-income-term-meta{color:var(--muted);font-size:.78rem}.teacher-income-total{color:var(--muted);margin:.75rem 0 0;font-size:.95rem}.admin-nav{flex-wrap:wrap;gap:.75rem;margin:0 0 1.5rem;display:flex}.overview-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:.85rem 1.25rem;display:grid}.student-profile-card{border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);margin:.5rem 0 .35rem;padding:.75rem .9rem}@supports (color:color-mix(in lab, red, red)){.student-profile-card{background:color-mix(in srgb, var(--surface) 88%, #e8f2ec)}}.student-profile-card .item-title{margin:0;font-size:1.05rem}.student-profile-head{justify-content:space-between;align-items:baseline;gap:.75rem;margin-bottom:.4rem;display:flex}.student-profile-name{margin:0;font-size:1.25rem;font-weight:700;line-height:1.25}.student-profile-compact{flex-direction:column;gap:.35rem;font-size:.9rem;display:flex}.student-profile-balance{color:var(--ink);margin:0;font-size:.9rem}.student-profile-balance strong{font-weight:700}.student-profile-meta{color:var(--ink);flex-wrap:wrap;gap:.25rem .85rem;margin:0;display:flex}.student-profile-meta span{white-space:nowrap}.student-profile-meta em{color:var(--muted,#667);margin-right:.25rem;font-style:normal}.student-profile-subjects{flex-wrap:wrap;gap:.3rem;margin:0;display:flex}.student-profile-chip{border:1px solid var(--line);background:var(--surface);border-radius:999px;align-items:center;padding:.15rem .5rem;font-size:.82rem;line-height:1.3;display:inline-flex}.student-profile-note{color:var(--muted,#667);margin:0;font-size:.85rem}.student-profile-card .editable-compact{grid-template-columns:minmax(0,1fr) auto;align-items:start;gap:.5rem .75rem;display:grid}.student-profile-card .editable-compact-body{grid-area:1/1}.student-profile-card .editable-compact-cta{grid-area:1/2;margin-top:0!important}.student-profile-card form.form-grid{grid-column:1/-1}.student-overview .panel-block{margin-top:1rem;padding-top:.85rem}.student-overview .panel-block .item-title{margin-bottom:.35rem;font-size:1.05rem}.student-overview .panel-block .section-desc{margin:0 0 .5rem;font-size:.88rem}.student-money-row{border-top:1px solid var(--line);grid-template-columns:1fr 1fr;gap:.75rem;margin-top:1rem;padding-top:.85rem;display:grid}.student-money-card{border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);min-width:0;padding:.65rem .75rem}.student-money-card .item-title{margin:0 0 .25rem;font-size:1rem}.student-money-card .section-desc{margin:0;font-size:.82rem;line-height:1.35}.student-money-card .editable-compact-cta{margin-top:.45rem!important}.student-ledger-wrap{overflow-x:auto}.student-ledger-wrap .table{width:max-content;min-width:100%;font-size:.86rem}.student-ledger-wrap .table th,.student-ledger-wrap .table td{white-space:nowrap;vertical-align:middle;padding:.4rem .45rem}.student-ledger-wrap .table th:nth-child(7),.student-ledger-wrap .table td:nth-child(7){white-space:normal;max-width:18rem;line-height:1.4}.student-ledger-wrap .btn{white-space:nowrap;flex-shrink:0}.btn-sm{padding:.35rem .85rem!important;font-size:.86rem!important}.editable-compact{flex-direction:column;gap:.35rem;display:flex}.editable-compact-body{min-width:0}.editable-compact-cta{gap:.45rem;margin-top:0!important}.form-grid--dense{gap:.45rem!important}.form-grid--2col{grid-template-columns:1fr 1fr}.form-grid--2col .field-span-2,.form-grid--2col .assign-block,.form-grid--2col .cta-row,.form-grid--2col .flash{grid-column:1/-1}label.field--inline{grid-template-columns:4.5rem minmax(0,1fr);align-items:center;gap:.4rem .55rem;font-size:.88rem;display:grid}label.field--inline textarea{resize:vertical;min-height:2.4rem}label.field--check{align-items:center;gap:.4rem;font-size:.88rem;display:flex}@media (max-width:720px){.student-money-row,.form-grid--2col,label.field--inline{grid-template-columns:1fr}}@media (max-width:640px){.overview-grid,.admin-topbar{grid-template-columns:1fr}.admin-topbar-center,.admin-topbar>:last-child{justify-self:start}}.subject-stack{gap:.35rem;display:grid}.panel-block{border-top:1px solid var(--line);margin-top:1.75rem;padding-top:1.25rem}.trajectory-gate{border:1px solid var(--accent);justify-content:space-between;align-items:center;gap:.75rem;margin:.65rem 0 .15rem;padding:.7rem .9rem;display:flex}@supports (color:color-mix(in lab, red, red)){.trajectory-gate{border:1px solid color-mix(in srgb, var(--accent) 28%, var(--line))}}.trajectory-gate{border-radius:var(--radius);background:linear-gradient(120deg, var(--accent-soft) 0%, #fffcf7e6 55%, var(--surface) 100%);box-shadow:var(--shadow)}.trajectory-gate-copy{min-width:0}.trajectory-gate-copy .item-title{color:var(--ink);margin:0;font-size:1.05rem}.trajectory-gate-copy .section-desc{margin:.2rem 0 0;font-size:.86rem}.trajectory-gate .btn{flex-shrink:0}@media (max-width:640px){.trajectory-gate{flex-direction:column;align-items:stretch}.trajectory-gate .btn{width:100%}}.trajectory-attachments{margin-top:.85rem}.trajectory-photo-grid{grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:.75rem;display:grid}.trajectory-photo{border:1px solid var(--line);background:#fff;border-radius:12px;margin:0;overflow:hidden}.trajectory-photo img{object-fit:cover;width:100%;height:140px;display:block}.trajectory-photo figcaption,.trajectory-remove{color:var(--muted);word-break:break-all;padding:.35rem .5rem;font-size:.78rem;display:block}.trajectory-remove{cursor:pointer}.trajectory-remove.inline{align-items:center;gap:.35rem;margin-left:.65rem;padding:0;display:inline-flex}.trajectory-doc-list{color:var(--muted);margin:.5rem 0 0;padding-left:1.1rem;font-size:.9rem}.trajectory-doc-list a{color:var(--accent)}.trajectory-timeline{margin:.75rem 0 0;padding:0;list-style:none}.trajectory-timeline-item{grid-template-columns:1.25rem minmax(0,1fr);gap:.65rem .85rem;padding-bottom:1.15rem;display:grid;position:relative}.trajectory-timeline-item:last-child{padding-bottom:0}.trajectory-timeline-axis{position:relative}.trajectory-timeline-axis:before{content:"";background:var(--line);width:2px;position:absolute;top:0;bottom:-1.25rem;left:50%;transform:translate(-50%)}@supports (color:color-mix(in lab, red, red)){.trajectory-timeline-axis:before{background:color-mix(in srgb, var(--line) 70%, var(--accent) 30%)}}.trajectory-timeline-item:first-child .trajectory-timeline-axis:before{top:.35rem}.trajectory-timeline-item:last-child .trajectory-timeline-axis:before{bottom:.35rem}.trajectory-timeline-dot{background:var(--accent);width:.7rem;height:.7rem;box-shadow:0 0 0 2px var(--accent);border:2px solid #fff;border-radius:50%;position:absolute;top:.35rem;left:50%;transform:translate(-50%)}@supports (color:color-mix(in lab, red, red)){.trajectory-timeline-dot{box-shadow:0 0 0 2px color-mix(in srgb, var(--accent) 35%, transparent)}}.trajectory-timeline-dot{z-index:1}.trajectory-timeline-card{border:1px solid var(--line);background:#fffef9;border-radius:14px;min-width:0;padding:.85rem .95rem 1rem;box-shadow:0 10px 28px #18231c0a}.trajectory-project{letter-spacing:.06em;border-radius:10px;align-items:center;margin:0 0 .7rem;padding:.35rem .85rem;font-size:1.22rem;font-weight:800;line-height:1.2;display:inline-flex}.trajectory-project--feedback{background:var(--accent-soft);color:var(--accent)}.trajectory-project--homework{color:#2b6cb0;background:#e8f1fb}.trajectory-project--exam{color:#c05621;background:#fff0e6}.trajectory-project--misc{color:#5a6570;background:#eef1f4}.trajectory-info-row{border:1px solid var(--line);background:#f7faf7;border-radius:10px;flex-wrap:wrap;gap:.35rem 1.1rem;margin:0 0 .55rem;padding:.5rem .7rem;display:flex}@supports (color:color-mix(in lab, red, red)){.trajectory-info-row{border:1px solid color-mix(in srgb, var(--line) 85%, transparent)}}.trajectory-info-row{color:var(--muted);font-size:.88rem}.trajectory-info-row strong{color:var(--ink);font-weight:650}.trajectory-admin-note{color:var(--muted);margin:0 0 .55rem;font-size:.78rem}.trajectory-card-divider{border:0;border-top:1px solid var(--line);margin:.65rem 0 .75rem}.trajectory-lesson{margin:0 0 .85rem;font-size:1.1rem;line-height:1.45}.trajectory-lesson strong{color:var(--accent);font-weight:700}.trajectory-sec{background:var(--accent-soft);border-radius:6px;margin:.85rem 0 .3rem;padding:.2rem .55rem;font-size:1.02rem;font-weight:700;display:inline-block}@supports (color:color-mix(in lab, red, red)){.trajectory-sec{background:color-mix(in srgb, var(--accent-soft) 55%, #fff)}}.trajectory-sec-body{color:#243028;margin:.15rem 0 .1rem;font-size:.94rem}.trajectory-entry-title{margin:0 0 .45rem;font-size:1.08rem;font-weight:700}.trajectory-timeline-actions{margin-top:.75rem}.trajectory-filters{flex-wrap:wrap;align-items:end;gap:.55rem .75rem;margin:.5rem 0 1rem;display:flex}.trajectory-filters label{color:var(--muted);gap:.2rem;font-size:.78rem;display:grid}.trajectory-filters select,.trajectory-filters input[type=date]{min-width:0;max-width:100%;min-height:2.4rem;font:inherit;color:var(--ink);background:#fff;border:1px solid #e7e5e4;border-radius:8px;padding:.35rem .55rem}.trajectory-filters .btn{min-height:2.4rem}.trajectory-thumbs{flex-wrap:wrap;gap:.4rem;margin-top:.65rem;display:flex}.trajectory-thumb-wrap{width:4.5rem;height:4.5rem;position:relative}.trajectory-thumb{border:1px solid var(--line);cursor:pointer;background:#f5f5f4;border-radius:8px;width:4.5rem;height:4.5rem;padding:0;position:relative;overflow:hidden}.trajectory-thumb-wrap .trajectory-thumb{width:100%;height:100%}.trajectory-thumb img{object-fit:cover;width:100%;height:100%;display:block}.trajectory-thumb-more{color:var(--muted);justify-content:center;align-items:center;font-size:.9rem;font-weight:700;display:inline-flex}.trajectory-thumb-x,.trajectory-doc-x{z-index:2;color:#fff;cursor:pointer;background:#282828d1;border:none;border-radius:50%;justify-content:center;align-items:center;width:1.35rem;height:1.35rem;padding:0;font-size:1rem;line-height:1;display:inline-flex;position:absolute;top:-.35rem;right:-.35rem}.trajectory-thumb-x:hover,.trajectory-doc-x:hover{background:#b91c1c}.trajectory-doc-item{align-items:center;gap:.45rem;display:flex}.trajectory-doc-x{flex-shrink:0;position:static}.trajectory-thumbs.is-editable .trajectory-thumb{cursor:default}.cta-row.editable-actions{flex-wrap:wrap;align-items:center;gap:.55rem;display:flex}.editable-danger{color:#9a3412!important}.trajectory-form-row{grid-template-columns:repeat(3,minmax(0,1fr));gap:.65rem;display:grid}.trajectory-write-mode{flex-wrap:wrap;align-items:center;gap:.55rem 1.1rem;display:flex}.trajectory-write-mode-label{flex-shrink:0;font-size:.92rem}.trajectory-write-mode-row{flex-wrap:wrap;align-items:center;gap:.85rem 1.25rem;display:flex}.trajectory-write-mode-opt{color:var(--ink);white-space:nowrap;align-items:center;gap:.35rem;font-size:.92rem;display:inline-flex}.feedback-template{border:1px solid var(--line);background:var(--accent);border-radius:12px;gap:.65rem;padding:.75rem .85rem;display:grid}@supports (color:color-mix(in lab, red, red)){.feedback-template{background:color-mix(in srgb, var(--accent) 4%, #fff)}}.feedback-template-readonly{grid-template-columns:repeat(auto-fit,minmax(9rem,1fr));gap:.35rem 1rem;font-size:.88rem;display:grid}.feedback-template-readonly span{color:var(--muted);font-size:.75rem;display:block}.feedback-template-readonly strong{font-weight:600}.feedback-time-row{grid-template-columns:minmax(0,1.3fr) minmax(0,1fr) minmax(0,1fr);gap:.45rem;display:grid}.trajectory-modal-form{gap:.75rem}@media (max-width:640px){.trajectory-form-row,.feedback-time-row{grid-template-columns:1fr}}.trajectory-lightbox{z-index:80;background:#18231cb8;place-items:center;padding:1rem;display:grid;position:fixed;inset:0}.trajectory-lightbox-inner{background:#fff;border-radius:14px;max-width:min(92vw,52rem);max-height:90vh;padding:.85rem;overflow:auto}.trajectory-lightbox-inner img{object-fit:contain;max-width:100%;max-height:70vh;margin:0 auto;display:block}.trajectory-lightbox-close{border:1px solid var(--line);cursor:pointer;background:#fff;border-radius:8px;min-height:2.5rem;margin:0 0 .5rem auto;padding:.55rem 1rem;display:block}.trajectory-lightbox-nav{justify-content:center;align-items:center;gap:.75rem;margin-top:.5rem;display:flex}.trajectory-lightbox-nav button{border:1px solid var(--line);cursor:pointer;background:#fff;border-radius:8px;min-width:4.5rem;min-height:2.5rem;padding:.55rem 1rem}.trajectory-lightbox-nav button:disabled{opacity:.4;cursor:default}.markdown-live-field .markdown-live-preview{border:1px dashed var(--accent);margin-top:.45rem;padding:.65rem .75rem}@supports (color:color-mix(in lab, red, red)){.markdown-live-field .markdown-live-preview{border:1px dashed color-mix(in srgb, var(--accent) 30%, var(--line))}}.markdown-live-field .markdown-live-preview{background:var(--accent);border-radius:10px}@supports (color:color-mix(in lab, red, red)){.markdown-live-field .markdown-live-preview{background:color-mix(in srgb, var(--accent) 4%, #fff)}}.markdown-live-preview-label{color:var(--muted);margin-bottom:.35rem;font-size:.75rem;font-weight:700}.trajectory-public.shell{width:min(44rem,100% - 2rem)}.trajectory-public .trajectory-filters{margin-top:1rem}@media (max-width:640px){.trajectory-public.shell{width:calc(100% - 1.25rem)}.trajectory-public .section-title{font-size:clamp(1.45rem,7vw,1.85rem);line-height:1.25}.trajectory-filters{grid-template-columns:1fr 1fr;align-items:stretch;gap:.65rem;display:grid}.trajectory-filters label{min-width:0}.trajectory-filters select,.trajectory-filters input[type=date]{box-sizing:border-box;width:100%}.trajectory-filters>.btn{justify-content:center;width:100%}.trajectory-timeline-card{padding:.75rem .8rem .9rem}.trajectory-project{padding:.3rem .7rem;font-size:1.05rem}.trajectory-info-row{gap:.3rem .75rem;padding:.45rem .55rem;font-size:.82rem}.trajectory-thumb-wrap,.trajectory-thumb{width:4rem;height:4rem}}.form-grid{gap:.7rem;display:grid}.time-presets-row{margin:0;line-height:1.55}label.field,div.field{gap:.35rem;font-size:.92rem;display:grid}.field-label{color:var(--ink);opacity:1;flex-wrap:wrap;align-items:baseline;gap:.4rem;font-size:1.02rem;font-weight:700;line-height:1.3;display:inline-flex}.field-label-hint{color:var(--muted);white-space:nowrap;font-size:.78rem;font-weight:500}.field-value{color:var(--ink);font-size:.95rem;font-weight:500;line-height:1.35}.inline-kv{flex-wrap:wrap;align-items:baseline;gap:.45rem .65rem;min-width:0;display:flex}.inline-kv-spread{justify-content:space-between;width:100%}.inline-kv-main{flex-wrap:wrap;align-items:baseline;gap:.45rem .65rem;min-width:0;display:inline-flex}.session-inline-meta{align-items:baseline}.session-inline-meta>.inline-kv-spread{column-gap:.75rem}div.field>span:not(.field-label):not(.field-value):not(.field-label-hint){opacity:1;color:var(--ink);font-size:1.02rem;font-weight:700}div.field>strong{font-size:.95rem;font-weight:500}.student-check-text{line-height:1.35;display:inline}.student-check-teacher{color:var(--muted);font-size:.92em;font-weight:400;display:inline}fieldset.field>legend.field-label{margin-bottom:.35rem;padding:0}input,textarea,select{border:1px solid var(--line);width:100%;font:inherit;color:var(--ink);background:#fff;border-radius:10px;padding:.65rem .8rem}textarea{resize:vertical;min-height:140px}.table{border-collapse:collapse;width:100%;font-size:.92rem}.table th,.table td{text-align:left;border-bottom:1px solid var(--line);vertical-align:top;padding:.7rem .4rem}.flash{background:var(--accent-soft);color:var(--accent);border-radius:10px;margin-bottom:1rem;padding:.75rem 1rem}.error{color:#8a2f2a;background:#fdeceb}@media (max-width:640px){.shell{width:min(var(--max), calc(100% - 1.25rem))}.header-inner{align-items:flex-start;min-height:0;padding:.55rem 0 .45rem}.brand{padding-top:.35rem;font-size:1.1rem;line-height:1.3}.nav{justify-content:flex-start;gap:.1rem .15rem;width:100%;font-size:.82rem}.nav a{min-height:2.35rem;padding:.4rem .45rem}.hero{padding:2.4rem 0 2rem}.hero-brand{font-size:clamp(2.1rem,11vw,2.8rem)}.hero-lead{margin-bottom:1.35rem;font-size:1rem}.cta-row .btn{flex:auto;justify-content:center;min-width:min(100%,9.5rem)}.teacher-wall-grid{grid-template-columns:1fr;gap:.75rem}.teacher-wall-card{padding:.85rem .9rem}.teacher-profile-hero{flex-direction:column;align-items:flex-start}.teacher-profile-hero .section-title{font-size:clamp(1.45rem,7vw,1.85rem)}.item{padding:.95rem 1rem}.section{padding-block:1.75rem}}.pdf-stack{gap:1.25rem;width:100%;display:grid}.pdf-page{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);overflow:hidden}.pdf-page-label{color:var(--muted);border-bottom:1px solid var(--line);background:#f7faf7;padding:.55rem .9rem;font-size:.82rem}.pdf-page canvas{display:block;width:100%!important;height:auto!important}.pdf-hint{color:var(--muted);text-align:center;margin:0;font-size:.85rem}.teacher-wall{padding-top:.5rem}.teacher-wall-grid{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:1rem;display:grid}.teacher-wall-card{border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);box-shadow:var(--shadow);color:inherit;align-items:center;gap:.85rem;padding:1rem 1.05rem;text-decoration:none;transition:border-color .18s,transform .18s;display:flex}.teacher-wall-card:hover{border-color:var(--accent)}@supports (color:color-mix(in lab, red, red)){.teacher-wall-card:hover{border-color:color-mix(in srgb, var(--accent) 40%, var(--line))}}.teacher-wall-card:hover{transform:translateY(-1px)}.teacher-wall-card:hover .teacher-wall-avatar-hint{text-decoration:underline}.teacher-wall-card:hover .teacher-wall-avatar{border-color:var(--accent)}@supports (color:color-mix(in lab, red, red)){.teacher-wall-card:hover .teacher-wall-avatar{border-color:color-mix(in srgb, var(--accent) 55%, var(--line))}}.teacher-wall-card:hover .teacher-wall-avatar{box-shadow:0 0 0 2px var(--accent-soft)}.teacher-wall-avatar-hint{color:var(--accent);margin-top:.35rem;font-size:.75rem;line-height:1.2;display:inline-block}.teacher-wall-avatar{background:var(--accent-soft);width:56px;height:56px;color:var(--accent);font-family:var(--font-serif), serif;border:1px solid #0000;border-radius:14px;flex-shrink:0;place-items:center;font-size:1.25rem;font-weight:700;transition:border-color .15s,box-shadow .15s;display:grid;overflow:hidden}.teacher-wall-avatar.lg{border-radius:18px;width:88px;height:88px;font-size:1.8rem}.teacher-wall-avatar img{object-fit:cover;width:100%;height:100%}.teacher-wall-copy .item-title{margin:0 0 .25rem;font-size:1.05rem}.teacher-profile-hero{align-items:center;gap:1.15rem;min-width:0;display:flex}.teacher-profile-hero>div{overflow-wrap:anywhere;min-width:0}.home-showcase{padding-top:.5rem}.intro-entry-section.is-home .intro-entry-section-head{margin-bottom:.35rem}.intro-entry-section-head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.75rem 1rem;display:flex}.intro-entry-empty{margin-top:.65rem}.intro-entry-list{gap:1.75rem;margin-top:.85rem;display:grid}.intro-entry-card{box-shadow:none;background:0 0;border:none;margin:0;padding:0}.intro-entry-card-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:.65rem 1rem;margin-bottom:.45rem;display:flex}.intro-entry-title{font-family:var(--font-serif), "Source Han Serif SC", "Noto Serif SC", serif;letter-spacing:.02em;color:var(--ink);margin:0;font-size:1.35rem;font-weight:600;line-height:1.35}.intro-entry-tools{flex-wrap:wrap;gap:.35rem;display:flex}.intro-entry-body{white-space:pre-wrap;color:var(--muted);max-width:42rem;margin:0 0 .85rem;line-height:1.65}.intro-entry-gallery{gap:.75rem;display:grid}.intro-entry-gallery.layout-one{grid-template-columns:1fr}.intro-entry-gallery.layout-two{grid-template-columns:1fr 1fr}.intro-entry-gallery.layout-three{grid-template-rows:auto auto;grid-template-columns:1.15fr 1fr}.intro-entry-gallery.layout-three .intro-entry-shot:first-child{grid-row:1/span 2;min-height:100%}.intro-entry-gallery.layout-four{grid-template-columns:1fr 1fr}.intro-entry-gallery.layout-many{grid-template-columns:repeat(auto-fill,minmax(148px,1fr))}.intro-entry-shot{border:1px solid var(--line);margin:0;padding:0;position:relative}@supports (color:color-mix(in lab, red, red)){.intro-entry-shot{border:1px solid color-mix(in srgb, var(--line) 80%, var(--accent) 20%)}}.intro-entry-shot{background:var(--accent-soft);border-radius:14px;overflow:hidden}@supports (color:color-mix(in lab, red, red)){.intro-entry-shot{background:color-mix(in srgb, var(--accent-soft) 35%, var(--surface))}}.intro-entry-shot{cursor:zoom-in;aspect-ratio:4/3;width:100%;transition:border-color .18s,transform .18s;display:block}.intro-entry-shot:hover{border-color:var(--accent)}@supports (color:color-mix(in lab, red, red)){.intro-entry-shot:hover{border-color:color-mix(in srgb, var(--accent) 45%, var(--line))}}.intro-entry-shot:hover{transform:translateY(-1px)}.intro-entry-gallery.layout-one .intro-entry-shot{aspect-ratio:16/9;max-height:420px}.intro-entry-shot img{object-fit:cover;width:100%;height:100%;display:block}.intro-entry-shot.editable{cursor:default}.intro-entry-shot.editable:hover{transform:none}.intro-entry-remove{color:#fff;cursor:pointer;background:#141820b8;border:none;border-radius:999px;width:1.65rem;height:1.65rem;font-size:1.1rem;line-height:1;position:absolute;top:.35rem;right:.35rem}.intro-lightbox{z-index:80;place-items:center;padding:1.5rem;display:grid;position:fixed;inset:0}.intro-lightbox-backdrop{cursor:pointer;background:#0c1018c7;border:none;position:absolute;inset:0}.intro-lightbox-img{z-index:1;object-fit:contain;border-radius:8px;max-width:min(96vw,1100px);max-height:88vh;position:relative;box-shadow:0 18px 48px #00000059}.intro-lightbox-meta{z-index:1;color:#fff;background:#0c1018a6;border-radius:999px;margin:0;padding:.25rem .7rem;font-size:.85rem;position:absolute;bottom:1.25rem;left:50%;transform:translate(-50%)}@media (max-width:640px){.intro-entry-gallery.layout-two,.intro-entry-gallery.layout-three,.intro-entry-gallery.layout-four{grid-template-columns:1fr 1fr}.intro-entry-gallery.layout-three .intro-entry-shot:first-child{grid-row:auto}.intro-entry-gallery.layout-one .intro-entry-shot{aspect-ratio:4/3;max-height:none}.intro-entry-title{font-size:1.2rem}}.assign-block{border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);margin-top:.5rem;padding:1rem}@supports (color:color-mix(in lab, red, red)){.assign-block{background:color-mix(in srgb, var(--surface) 92%, var(--accent-soft))}}.assign-head{flex-wrap:wrap;align-items:baseline;gap:.5rem 1rem;margin-bottom:.35rem;display:flex}.assign-list{gap:.35rem;margin:.5rem 0 .75rem;padding:0;list-style:none;display:grid}.assign-list li{background:var(--surface);border:1px solid var(--line);border-radius:8px;justify-content:space-between;align-items:center;gap:.75rem;padding:.45rem .6rem;display:flex}.assign-menu-wrap{margin-top:.35rem;display:inline-block;position:relative}.assign-menu{z-index:20;border:1px solid var(--line);min-width:12rem;max-height:16rem;box-shadow:var(--shadow);background:#fff;border-radius:10px;padding:.35rem;position:absolute;top:calc(100% + .35rem);left:0;overflow:auto}.assign-menu-title{opacity:.7;padding:.35rem .55rem;font-size:.8rem}.assign-menu-item{text-align:left;width:100%;font:inherit;cursor:pointer;color:var(--ink);background:0 0;border:0;border-radius:8px;padding:.5rem .65rem;display:block}.assign-menu-item:hover{background:var(--accent-soft)}.assign-menu-item.muted{opacity:.65;font-size:.88rem}.materials-tabs{flex-wrap:wrap;gap:.5rem;margin:0 0 1rem;display:flex}.materials-tab{border:1px solid var(--line);background:var(--surface);color:var(--ink);border-radius:999px;align-items:center;padding:.45rem 1rem;font-size:.92rem;text-decoration:none;display:inline-flex}.materials-tab.is-active{background:var(--accent);border-color:var(--accent);color:#f7fffb}.materials-split{flex:1;grid-template-columns:minmax(10rem,14rem) minmax(0,1fr);align-items:stretch;gap:1rem 1.25rem;min-height:0;display:grid}@media (max-width:800px){.materials-split{grid-template-columns:1fr}}.materials-shell{flex-direction:column;min-height:calc(100vh - 11rem);display:flex}.materials-side{border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);padding:.75rem}@supports (color:color-mix(in lab, red, red)){.materials-side{background:color-mix(in srgb, var(--surface) 92%, #eee)}}.materials-side{align-self:stretch}.materials-side-head{margin-bottom:.5rem;font-size:.95rem;font-weight:700}.materials-section-list{gap:.25rem;margin:0;padding:0;list-style:none;display:grid}.materials-section-link{color:var(--ink);width:100%;font:inherit;text-align:left;cursor:pointer;background:0 0;border:1px solid #0000;border-radius:8px;justify-content:space-between;align-items:center;gap:.5rem;padding:.45rem .55rem;text-decoration:none;display:flex}.materials-section-link:hover{background:var(--surface)}.materials-section-link.is-active{background:var(--surface);border-color:var(--accent);font-weight:600}.materials-main{border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);min-height:22rem;position:relative;overflow:hidden}.materials-main-body{min-height:22rem;padding:.85rem 1rem 1rem}.materials-type-bar{flex-wrap:wrap;align-items:baseline;gap:.35rem .85rem;margin-bottom:.35rem;line-height:1.35;display:flex}.materials-type-name{margin:0;font-size:1.25rem;font-weight:700}.materials-type-stat,.materials-type-meta{white-space:nowrap}.materials-boards-title{margin:1rem 0 .65rem;font-size:1.05rem}.materials-mode-chip{background:var(--accent-soft);border-radius:8px;margin:0 0 .85rem;padding:.4rem .75rem}@supports (color:color-mix(in lab, red, red)){.materials-mode-chip{background:color-mix(in srgb, var(--accent-soft) 80%, var(--surface))}}.materials-mode-chip{border:1px solid var(--accent)}@supports (color:color-mix(in lab, red, red)){.materials-mode-chip{border:1px solid color-mix(in srgb, var(--accent) 25%, var(--line))}}.materials-mode-chip{color:var(--ink);font-size:.88rem}.materials-toolbar{flex-wrap:wrap;gap:.5rem;margin:.5rem 0 .35rem;display:flex}.materials-side-create{border-top:1px solid var(--line);margin-top:.85rem;padding-top:.65rem}.materials-subject-grid{grid-template-columns:repeat(auto-fill,minmax(8.5rem,1fr));gap:.65rem;display:grid}.materials-subject-card-wrap{grid-template-rows:1fr auto;gap:.2rem;min-height:6.25rem;display:grid}.materials-subject-card-wrap.is-editing .materials-subject-card{border-color:var(--accent)}.materials-subject-card{box-sizing:border-box;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);flex-direction:column;justify-content:space-between;align-items:flex-start;gap:.35rem;width:100%;height:5.25rem;min-height:5.25rem;max-height:5.25rem;padding:.75rem .8rem;display:flex}@supports (color:color-mix(in lab, red, red)){.materials-subject-card{background:color-mix(in srgb, var(--surface) 92%, #eee)}}.materials-subject-card{color:var(--ink);text-align:left;cursor:pointer;font:inherit;overflow:hidden}.materials-subject-card:hover{border-color:var(--accent)}.materials-subject-card-name{-webkit-line-clamp:2;-webkit-box-orient:vertical;font-size:.98rem;font-weight:700;line-height:1.25;display:-webkit-box;overflow:hidden}.materials-subject-edit{justify-self:start;padding:.15rem .45rem;font-size:.82rem}.materials-subject-edit.is-active{color:var(--accent);font-weight:700}.materials-drawer{z-index:5;justify-content:flex-end;display:flex;position:absolute;inset:0}.materials-drawer-backdrop{background:var(--ink);border:0;margin:0;padding:0;position:absolute;inset:0}@supports (color:color-mix(in lab, red, red)){.materials-drawer-backdrop{background:color-mix(in srgb, var(--ink) 28%, transparent)}}.materials-drawer-backdrop{cursor:pointer}.materials-drawer-panel{z-index:1;background:var(--surface);border-left:1px solid var(--line);width:min(22rem,92%);height:100%;box-shadow:-8px 0 24px var(--ink);padding:.85rem 1rem 1.25rem;position:relative;overflow:auto}@supports (color:color-mix(in lab, red, red)){.materials-drawer-panel{box-shadow:-8px 0 24px color-mix(in srgb, var(--ink) 8%, transparent)}}.materials-drawer-head{justify-content:flex-start;align-items:center;gap:.5rem;margin-bottom:.85rem;display:flex}.materials-drawer-actions{flex-wrap:nowrap;grid-column:1/-1;align-items:center;gap:.5rem;margin-top:.5rem;display:flex}.materials-wire-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:.75rem 1rem;margin-bottom:.85rem;display:flex}.materials-wire-actions{flex-wrap:wrap;gap:.5rem;margin:.65rem 0 0;display:flex}.materials-crumb{flex-wrap:wrap;align-items:center;gap:.35rem .5rem;margin-bottom:.5rem;display:flex}.materials-form-compact{grid-template-columns:1fr 1fr;gap:.45rem .75rem;margin-bottom:.65rem;display:grid}.materials-form-compact .field{gap:.2rem;font-size:.88rem}.materials-form-compact .field input,.materials-form-compact .field select,.materials-form-compact .field textarea{padding:.35rem .5rem;font-size:.9rem}.materials-form-span2{grid-column:1/-1}.materials-form-compact .field-check{flex-direction:row;align-items:center;gap:.5rem;padding-top:1.35rem;display:flex}.materials-form-compact .field-check input{width:auto}@media (max-width:640px){.materials-form-compact{grid-template-columns:1fr}.materials-form-compact .field-check{padding-top:0}.materials-shell{min-height:auto}}.drive-shell{gap:0}.drive-layout{border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);flex:1;grid-template-columns:minmax(11rem,15rem) minmax(0,1fr);gap:0;min-height:24rem;display:grid;overflow:hidden}.drive-tree{border-right:1px solid var(--line);background:var(--surface);padding:.75rem}@supports (color:color-mix(in lab, red, red)){.drive-tree{background:color-mix(in srgb, var(--surface) 92%, #eee)}}.drive-tree{overflow:auto}.drive-tree-list,.drive-tree-children{margin:0;padding:0;list-style:none}.drive-tree-node{margin-bottom:.15rem}.drive-tree-children{margin:.05rem 0 .4rem 1.15rem;padding:0}.drive-tree-row{align-items:stretch;gap:.1rem;display:flex}.drive-tree-twist{color:var(--muted);cursor:pointer;font:inherit;background:0 0;border:0;flex:0 0 1.35rem;padding:0}.drive-tree-folder{min-width:0;color:var(--ink);font:inherit;text-align:left;cursor:pointer;background:0 0;border:1px solid #0000;border-radius:8px;flex:1;align-items:center;gap:.4rem;padding:.42rem .5rem;display:flex}.drive-tree-folder:hover{background:var(--surface)}@supports (color:color-mix(in lab, red, red)){.drive-tree-folder:hover{background:color-mix(in srgb, var(--surface) 70%, #fff)}}.drive-tree-folder.is-on{background:var(--accent-soft)}@supports (color:color-mix(in lab, red, red)){.drive-tree-folder.is-on{background:color-mix(in srgb, var(--accent-soft) 85%, var(--surface))}}.drive-tree-folder.is-on{box-shadow:inset 3px 0 0 var(--accent);border-color:#0000;font-weight:700}.drive-tree-folder.is-on.is-branch{opacity:.95;font-weight:600}.drive-tree-child{align-items:stretch;min-height:2rem;display:flex}.drive-tree-rail{flex:0 0 1.1rem;margin-right:.15rem;position:relative}.drive-tree-rail-line{background:var(--line);width:1px;position:absolute;top:0;bottom:0;left:.35rem}@supports (color:color-mix(in lab, red, red)){.drive-tree-rail-line{background:color-mix(in srgb, var(--line) 20%, #9aa3ad)}}.drive-tree-rail-elbow{border-left:1px solid var(--line);width:.7rem;height:50%;position:absolute;top:0;left:.35rem}@supports (color:color-mix(in lab, red, red)){.drive-tree-rail-elbow{border-left:1px solid color-mix(in srgb, var(--line) 20%, #9aa3ad)}}.drive-tree-rail-elbow{border-bottom:1px solid var(--line)}@supports (color:color-mix(in lab, red, red)){.drive-tree-rail-elbow{border-bottom:1px solid color-mix(in srgb, var(--line) 20%, #9aa3ad)}}.drive-tree-leaf{min-width:0;color:var(--ink);font:inherit;text-align:left;cursor:pointer;background:0 0;border:1px solid #0000;border-radius:6px;flex:1;justify-content:space-between;align-items:center;gap:.35rem;padding:.35rem .45rem;font-size:.92rem;display:flex}.drive-tree-leaf:hover{background:var(--surface)}.drive-tree-leaf.is-on{background:var(--accent-soft)}@supports (color:color-mix(in lab, red, red)){.drive-tree-leaf.is-on{background:color-mix(in srgb, var(--accent-soft) 90%, var(--surface))}}.drive-tree-leaf.is-on{box-shadow:inset 3px 0 0 var(--accent);font-weight:650}.drive-tree-empty{opacity:.75;align-items:center;padding-right:.35rem}.drive-tree-name{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.drive-icon{flex:none;font-size:1rem;line-height:1}.drive-main{flex-direction:column;min-width:0;min-height:24rem;padding:.75rem 1rem 1rem;display:flex}.drive-toolbar{border-bottom:1px solid var(--line);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.5rem .75rem;margin-bottom:.75rem;padding-bottom:.65rem;display:flex}.drive-toolbar-title{min-width:0;font-size:1.02rem}.drive-toolbar-actions{flex-wrap:wrap;gap:.45rem;display:flex}.drive-dialog-actions{flex-wrap:nowrap;grid-column:1/-1;justify-content:space-between;align-items:center;gap:.5rem;margin-top:.55rem;display:flex}.drive-dialog-actions-right{flex-wrap:nowrap;align-items:center;gap:.45rem;margin-left:auto;display:flex}.drive-file-list{gap:.65rem;display:grid}.drive-file-card{border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);padding:.7rem .85rem .6rem}@supports (color:color-mix(in lab, red, red)){.drive-file-card{background:color-mix(in srgb, var(--surface) 96%, #eee)}}.drive-file-title{margin:0 0 .4rem;font-size:1.02rem;font-weight:700;line-height:1.3}.drive-file-description{color:var(--muted);white-space:pre-wrap;margin:0 0 .45rem;font-size:.86rem;line-height:1.5}.drive-file-meta{flex-wrap:wrap;align-items:center;gap:.35rem .55rem;display:flex}.drive-file-delete{min-height:2rem;margin-left:auto;padding:.35rem .85rem;font-size:.95rem}.drive-file-action{min-height:2rem;padding:.35rem .75rem;font-size:.86rem}.drive-tag-row{flex-wrap:wrap;gap:.35rem;display:flex}.drive-tag{background:var(--accent-soft);border-radius:999px;align-items:center;padding:.12rem .55rem;display:inline-flex}@supports (color:color-mix(in lab, red, red)){.drive-tag{background:color-mix(in srgb, var(--accent-soft) 88%, #fff)}}.drive-tag{color:var(--accent)}@supports (color:color-mix(in lab, red, red)){.drive-tag{color:color-mix(in srgb, var(--accent) 75%, #123)}}.drive-tag{font-size:.8rem;font-weight:600;line-height:1.4}.drive-folder-grid{grid-template-columns:repeat(auto-fill,minmax(8.5rem,1fr));gap:.65rem;display:grid}.drive-folder-card{grid-template-rows:1fr auto;gap:.2rem;min-height:7rem;display:grid}.drive-folder-main{box-sizing:border-box;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);flex-direction:column;justify-content:flex-start;align-items:flex-start;gap:.35rem;width:100%;height:6.25rem;padding:.7rem .75rem;display:flex}@supports (color:color-mix(in lab, red, red)){.drive-folder-main{background:color-mix(in srgb, var(--surface) 94%, #eee)}}.drive-folder-main{color:var(--ink);font:inherit;text-align:left;cursor:pointer;overflow:hidden}.drive-folder-main:hover{border-color:var(--accent)}.drive-folder-emoji{font-size:1.35rem;line-height:1}.drive-folder-title{-webkit-line-clamp:2;-webkit-box-orient:vertical;font-size:.95rem;font-weight:700;line-height:1.25;display:-webkit-box;overflow:hidden}.drive-folder-more{justify-self:start;padding:.15rem .45rem;font-size:.82rem}.drive-dialog{z-index:40;place-items:center;padding:1rem;display:grid;position:fixed;inset:0}.drive-dialog-backdrop{background:var(--ink);border:0;margin:0;padding:0;position:absolute;inset:0}@supports (color:color-mix(in lab, red, red)){.drive-dialog-backdrop{background:color-mix(in srgb, var(--ink) 35%, transparent)}}.drive-dialog-backdrop{cursor:pointer}.drive-dialog-panel{z-index:1;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);width:min(28rem,100%);max-height:min(85vh,40rem);box-shadow:var(--shadow);padding:1rem 1.1rem 1.15rem;position:relative;overflow:auto}@media (max-width:800px){.drive-layout{grid-template-columns:1fr}.drive-tree{border-right:0;border-bottom:1px solid var(--line);max-height:12rem}.drive-file-delete{margin-left:0}}.month-cal{margin:1rem 0 .5rem;position:relative}.month-cal-head{flex-wrap:nowrap;justify-content:space-between;align-items:center;gap:.75rem 1rem;margin-bottom:.5rem;display:flex}.month-cal-head .item-title{flex:auto;min-width:0}.month-cal-actions{flex-wrap:wrap;flex:none;justify-content:flex-end;margin-left:auto}.month-cal-grid{background:var(--line);border:1px solid var(--line);border-radius:var(--radius);grid-template-columns:repeat(7,minmax(0,1fr));gap:1px;display:grid;overflow:hidden}.month-cal-dow{background:var(--surface)}@supports (color:color-mix(in lab, red, red)){.month-cal-dow{background:color-mix(in srgb, var(--surface) 85%, var(--accent-soft))}}.month-cal-dow{text-align:center;padding:.5rem .35rem;font-size:.82rem;font-weight:600}.month-cal-cell{background:var(--surface);vertical-align:top;min-height:4.25rem;padding:.3rem .35rem .4rem}.month-cal-cell.empty{background:var(--surface)}@supports (color:color-mix(in lab, red, red)){.month-cal-cell.empty{background:color-mix(in srgb, var(--surface) 70%, #e8e8e8)}}.month-cal-cell.empty{min-height:2rem}.month-cal-cell.has-sessions{background:var(--surface)}@supports (color:color-mix(in lab, red, red)){.month-cal-cell.has-sessions{background:color-mix(in srgb, var(--surface) 90%, var(--accent-soft))}}.month-cal-cell.has-sessions{min-height:5rem}.month-cal-chip-wrap{gap:.2rem;display:grid}.month-cal-chip.gamma-abbr{text-overflow:ellipsis;white-space:nowrap;justify-content:space-between;align-items:center;gap:.25rem;padding:.2rem .35rem;font-size:.7rem;display:flex;overflow:hidden}.gamma-caret{color:var(--accent);flex-shrink:0}.gamma-panel{background:var(--accent-soft);border-radius:6px;gap:.1rem;padding:.35rem .4rem;display:grid}@supports (color:color-mix(in lab, red, red)){.gamma-panel{background:color-mix(in srgb, var(--accent-soft) 55%, #fff)}}.gamma-panel{border:1px solid var(--accent)}@supports (color:color-mix(in lab, red, red)){.gamma-panel{border:1px solid color-mix(in srgb, var(--accent) 30%, var(--line))}}.gamma-panel{font-size:.68rem;line-height:1.35}.gamma-detail-link{color:var(--accent);margin-top:.15rem;font-size:.68rem;font-weight:600;display:inline-block}.month-cal-cell.editable-day{cursor:pointer}.month-cal-cell.editable-day:hover{outline:2px solid var(--accent)}@supports (color:color-mix(in lab, red, red)){.month-cal-cell.editable-day:hover{outline:2px solid color-mix(in srgb, var(--accent) 55%, transparent)}}.month-cal-cell.editable-day:hover{outline-offset:-2px;z-index:1}.schedule-board.mode-rollcall .month-cal-cell.has-sessions{box-shadow:inset 0 0 0 1px var(--accent)}@supports (color:color-mix(in lab, red, red)){.schedule-board.mode-rollcall .month-cal-cell.has-sessions{box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--accent) 35%, transparent)}}.month-cal-daynum{margin-bottom:.2rem;font-size:.8rem;font-weight:700}.month-cal-daytop{justify-content:space-between;align-items:flex-start;gap:.35rem;margin-bottom:.15rem;display:flex}.month-cal-daytop .month-cal-daynum{margin-bottom:0}.month-cal-count-badge{letter-spacing:0;color:#fff;background:var(--accent);border-radius:999px;flex-shrink:0;justify-content:center;align-items:center;min-width:1.25rem;height:1.25rem;padding:0 .35rem;font-size:.68rem;font-weight:700;display:inline-flex}@supports (color:color-mix(in lab, red, red)){.month-cal-count-badge{background:color-mix(in srgb, var(--accent) 88%, #1a1a1a)}}.month-cal-count-badge{line-height:1}.month-cal-people{color:var(--muted);margin:0 0 .2rem;font-size:.65rem;line-height:1.3}.month-cal-empty-hint{color:var(--muted);margin:.15rem 0 0;font-size:.68rem}@supports (color:color-mix(in lab, red, red)){.month-cal-empty-hint{color:color-mix(in srgb, var(--muted) 70%, transparent)}}.month-cal-chip.line-chip{padding:.22rem .3rem;font-size:.68rem;line-height:1.3}.month-cal-fold{margin-top:.15rem;position:relative}.month-cal-fold-btn{font:inherit;color:var(--accent);cursor:pointer;background:0 0;border:none;padding:.1rem 0;font-size:.65rem;font-weight:600}.month-cal-fold-menu{z-index:25;border:1px solid var(--line);box-shadow:var(--shadow);background:#fff;border-radius:8px;margin-top:.15rem;position:absolute;top:100%;left:0;right:0;overflow:hidden}.month-cal-fold-menu-scroll{max-height:10rem;overflow-y:auto}.month-cal-fold-item{text-align:left;width:100%;font:inherit;border:none;border-bottom:1px solid var(--line);padding:.4rem .5rem;font-size:.68rem;line-height:1.35;display:block}@supports (color:color-mix(in lab, red, red)){.month-cal-fold-item{border-bottom:1px solid color-mix(in srgb, var(--line) 70%, transparent)}}.month-cal-fold-item{color:var(--ink);cursor:pointer;background:#fff}.month-cal-fold-item:last-child{border-bottom:none}.month-cal-fold-item:hover{background:var(--accent-soft)}@supports (color:color-mix(in lab, red, red)){.month-cal-fold-item:hover{background:color-mix(in srgb, var(--accent-soft) 55%, #fff)}}.month-cal-fold-item.readonly{cursor:default}.month-cal-fold-item.readonly:hover{background:#fff}.sch-filter-bar{flex-wrap:wrap;align-items:center;gap:.5rem .65rem;margin:.35rem 0 .65rem;display:flex}.sch-filter-item{position:relative}.sch-filter-trigger{font:inherit;border:1px solid var(--line);background:var(--surface);color:var(--ink);cursor:pointer;border-radius:8px;align-items:center;gap:.35rem;padding:.35rem .7rem;font-size:.82rem;display:inline-flex}.sch-filter-trigger.is-active{border-color:var(--accent)}@supports (color:color-mix(in lab, red, red)){.sch-filter-trigger.is-active{border-color:color-mix(in srgb, var(--accent) 55%, var(--line))}}.sch-filter-trigger.is-active{background:var(--accent-soft)}@supports (color:color-mix(in lab, red, red)){.sch-filter-trigger.is-active{background:color-mix(in srgb, var(--accent-soft) 45%, #fff)}}.sch-filter-label{color:var(--muted);font-size:.75rem}.sch-filter-value{text-overflow:ellipsis;white-space:nowrap;max-width:9rem;font-weight:600;overflow:hidden}.sch-filter-menu{z-index:30;border:1px solid var(--line);min-width:11rem;max-width:16rem;box-shadow:var(--shadow);background:#fff;border-radius:10px;padding:.25rem;position:absolute;top:calc(100% + .25rem);left:0}.sch-filter-menu-scroll{max-height:12rem;overflow-y:auto}.sch-filter-option{width:100%;font:inherit;text-align:left;color:var(--ink);cursor:pointer;background:0 0;border:none;border-radius:6px;align-items:center;gap:.45rem;padding:.4rem .55rem;font-size:.82rem;display:flex}.sch-filter-option:hover{background:var(--accent-soft)}@supports (color:color-mix(in lab, red, red)){.sch-filter-option:hover{background:color-mix(in srgb, var(--accent-soft) 50%, #fff)}}.sch-filter-option.muted{color:var(--muted);font-size:.78rem}.sch-filter-option input[type=checkbox]{width:1rem;height:1rem;accent-color:var(--accent)}.month-cal-events{gap:.28rem;margin:0;padding:0;list-style:none;display:grid}.month-cal-events-scroll{max-height:14rem;padding-right:.1rem;overflow-y:auto}.month-cal-events a,.month-cal-chip{text-align:left;width:100%;font:inherit;color:var(--ink);border:1px solid var(--line);white-space:normal;cursor:pointer;background:#fff;border-radius:6px;padding:.28rem .35rem;font-size:.7rem;line-height:1.35;text-decoration:none;display:block;overflow:visible}.month-cal-chip-body{gap:.08rem;display:grid}.cal-chip-line{word-break:break-word;display:block}.cal-chip-line-primary{flex-wrap:wrap;align-items:baseline;gap:.25rem .4rem;display:flex}.cal-chip-subject{color:var(--accent);font-weight:700}.cal-chip-muted{color:var(--muted);font-size:.95em}.month-cal-chip.readonly{cursor:default;background:var(--surface)}@supports (color:color-mix(in lab, red, red)){.month-cal-chip.readonly{background:color-mix(in srgb, var(--surface) 92%, #e8e8e8)}}.month-cal-readonly .month-cal-chip.readonly:hover{border-color:var(--line);color:var(--ink)}.student-check-row{flex-wrap:wrap;align-items:center;gap:.65rem 1.1rem;display:flex}.student-check-item{font:inherit;cursor:pointer;align-items:center;gap:.5rem;display:inline-flex}.student-check-item input[type=checkbox]{width:1.25rem;min-width:1.25rem;height:1.25rem;accent-color:var(--accent);cursor:pointer}.month-cal-events a:hover,.month-cal-chip:hover{border-color:var(--accent);color:var(--ink)}.month-cal-chip.rollable{border-color:var(--accent)}@supports (color:color-mix(in lab, red, red)){.month-cal-chip.rollable{border-color:color-mix(in srgb, var(--accent) 50%, var(--line))}}.month-cal-chip.rollable{box-shadow:0 0 0 1px var(--accent)}@supports (color:color-mix(in lab, red, red)){.month-cal-chip.rollable{box-shadow:0 0 0 1px color-mix(in srgb, var(--accent) 20%, transparent)}}.month-cal-chip.marked{background:#d8d8d8}@supports (color:color-mix(in lab, red, red)){.month-cal-chip.marked{background:color-mix(in srgb, #d8d8d8 55%, var(--surface))}}.month-cal-chip.marked{color:var(--ink)}@supports (color:color-mix(in lab, red, red)){.month-cal-chip.marked{color:color-mix(in srgb, var(--ink) 55%, #666)}}.month-cal-chip.marked{opacity:.82;border-color:#c4c4c4;box-shadow:inset 0 1px 3px #0000001f}.month-cal-chip.marked:hover{color:var(--ink)}@supports (color:color-mix(in lab, red, red)){.month-cal-chip.marked:hover{color:color-mix(in srgb, var(--ink) 65%, #555)}}.month-cal-chip.marked:hover{border-color:#b0b0b0}.month-cal-time{letter-spacing:.01em;margin-right:0;font-weight:700}.time-preset-link{appearance:none;font:inherit;color:var(--accent,#2563eb);text-underline-offset:2px;cursor:pointer;background:0 0;border:none;margin:0;padding:0;text-decoration:underline}.time-preset-link:hover{opacity:.85}.panel-details{border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);padding:.75rem 1rem 1rem}.panel-details>summary{list-style:none}.panel-details>summary::-webkit-details-marker{display:none}.tag-done{background:#d8d8d8}@supports (color:color-mix(in lab, red, red)){.tag-done{background:color-mix(in srgb, #d8d8d8 70%, var(--accent-soft))}}.tag-done{color:var(--ink)}@supports (color:color-mix(in lab, red, red)){.tag-done{color:color-mix(in srgb, var(--ink) 70%, #444)}}.ctx-menu{z-index:40;border:1px solid var(--line);min-width:12.5rem;max-width:18rem;max-height:20rem;box-shadow:var(--shadow);background:#fff;border-radius:10px;padding:.35rem;position:absolute;overflow:auto}.ctx-menu-title{opacity:.7;padding:.4rem .55rem .25rem;font-size:.78rem}.ctx-menu-item{text-align:left;width:100%;font:inherit;cursor:pointer;color:var(--ink);background:0 0;border:0;border-radius:8px;padding:.5rem .65rem;display:block}.ctx-menu-item:hover:not(:disabled){background:var(--accent-soft)}.ctx-menu-item:disabled{opacity:.4;cursor:not-allowed}.ctx-menu-item.muted{opacity:.7;font-size:.88rem}.modal-root{z-index:80;place-items:center;padding:1rem;display:grid;position:fixed;inset:0}.modal-backdrop{cursor:pointer;background:#14181c73;border:0;position:absolute;inset:0}.modal-panel{z-index:1;background:var(--surface);border:1px solid var(--line);border-radius:calc(var(--radius) + 4px);width:min(32rem,100%);max-height:min(90vh,52rem);box-shadow:var(--shadow);padding:1rem 1.15rem 1.25rem;position:relative;overflow:auto}.modal-panel.wide{width:min(44rem,100%)}.modal-head{border-bottom:1px solid var(--line);align-items:center;margin-bottom:.85rem;padding-bottom:.65rem;display:flex}.modal-body{gap:.75rem;display:grid}.roll-student-block{border-bottom:1px solid var(--line);padding:.75rem 0}.roll-student-block:last-child{border-bottom:0}@media (max-width:900px){.month-cal-cell{min-height:4.5rem}.month-cal-cell.has-sessions{min-height:6rem}.month-cal-events a,.month-cal-chip{font-size:.64rem}}.finance-hub-top{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:.75rem;margin-bottom:1rem;display:flex}.finance-rates-chip{font:inherit;color:#854d0e;cursor:pointer;background:#fef3c7;border:1px solid #f6e05e;border-radius:999px;padding:.4rem .9rem;font-size:.8rem;font-weight:700}.finance-rates-chip:hover{filter:brightness(.98)}.finance-tabs{background:#e7e5e4;border-radius:999px;margin-bottom:.85rem;padding:.2rem;display:inline-flex}.finance-tab{color:var(--muted);border-radius:999px;padding:.4rem 1rem;font-size:.86rem;text-decoration:none}.finance-tab.is-active{color:var(--ink);background:#fff;font-weight:700;box-shadow:0 1px 3px #00000014}.finance-filters{flex-direction:column;gap:.55rem;margin-bottom:1rem;display:flex}.finance-filters-bar{flex-flow:wrap;align-items:center;gap:.45rem .55rem}.finance-scope-hint{white-space:nowrap;margin:0}.finance-cal-bar{flex-wrap:wrap;align-items:stretch;gap:.4rem;display:inline-flex}.finance-cal-field{position:relative}.finance-cal-trigger{cursor:pointer;min-width:6.25rem;min-height:2.15rem;font:inherit;color:var(--ink);background:#fffef9;border:1px solid #e7e5e4;border-radius:10px;align-items:center;gap:.4rem;padding:.3rem .7rem;display:inline-flex}.finance-cal-field.is-open .finance-cal-trigger,.finance-cal-trigger:hover{border-color:var(--accent)}@supports (color:color-mix(in lab, red, red)){.finance-cal-field.is-open .finance-cal-trigger,.finance-cal-trigger:hover{border-color:color-mix(in srgb, var(--accent) 40%, #e7e5e4)}}.finance-cal-trigger-label{color:var(--muted);flex-shrink:0;font-size:.78rem}.finance-cal-trigger-value{text-align:left;white-space:nowrap;flex:1;font-size:.86rem;font-weight:650}.finance-cal-trigger-value.muted{color:var(--muted);font-weight:500}.finance-custom-range{position:relative}.finance-custom-range-btn{white-space:nowrap;text-overflow:ellipsis;max-width:16rem;overflow:hidden}.finance-custom-range.is-active .finance-custom-range-btn{border-color:var(--accent)}@supports (color:color-mix(in lab, red, red)){.finance-custom-range.is-active .finance-custom-range-btn{border-color:color-mix(in srgb, var(--accent) 45%, #e7e5e4)}}.finance-custom-range.is-active .finance-custom-range-btn{background:var(--accent)}@supports (color:color-mix(in lab, red, red)){.finance-custom-range.is-active .finance-custom-range-btn{background:color-mix(in srgb, var(--accent) 8%, #fff)}}.finance-custom-range-menu{z-index:45;background:#fffefb;border:1px solid #e7e5e4;border-radius:12px;gap:.45rem;min-width:15rem;padding:.65rem;display:grid;position:absolute;top:calc(100% + .35rem);right:0;box-shadow:0 12px 28px #2925241f}.finance-custom-range-field{color:var(--muted);gap:.2rem;font-size:.78rem;display:grid}.finance-custom-range-field input[type=date]{min-height:2rem;font:inherit;color:var(--ink);background:#fff;border:1px solid #e7e5e4;border-radius:8px;padding:.25rem .45rem}.finance-custom-range-err{color:#b91c1c;margin:0;font-size:.78rem}.finance-cal-panel{z-index:40;background:#fffefb;border:1px solid #e7e5e4;border-radius:12px;min-width:14rem;padding:.55rem;position:absolute;top:calc(100% + .35rem);left:0;box-shadow:0 12px 28px #2925241f}.finance-cal-panel-default{border:1px dashed var(--accent);width:100%;margin-bottom:.45rem;padding:.4rem .55rem;display:block}@supports (color:color-mix(in lab, red, red)){.finance-cal-panel-default{border:1px dashed color-mix(in srgb, var(--accent) 40%, #e7e5e4)}}.finance-cal-panel-default{background:var(--accent);border-radius:8px}@supports (color:color-mix(in lab, red, red)){.finance-cal-panel-default{background:color-mix(in srgb, var(--accent) 10%, #fff)}}.finance-cal-panel-default{color:var(--accent);cursor:pointer;text-align:center;font-size:.84rem;font-weight:700}.finance-cal-panel-default:hover{filter:brightness(.98)}.finance-cal-year-list,.finance-cal-month-grid{grid-template-columns:repeat(3,1fr);gap:.3rem;display:grid}.finance-cal-day-head{text-align:center;margin-bottom:.35rem;font-size:.85rem;font-weight:700}.finance-cal-dow{text-align:center;color:var(--muted);grid-template-columns:repeat(7,1fr);gap:.15rem;margin-bottom:.2rem;font-size:.7rem;display:grid}.finance-cal-day-grid{grid-template-columns:repeat(7,1fr);gap:.15rem;display:grid}.finance-cal-cell{cursor:pointer;color:var(--ink);background:#f5f5f4;border:1px solid #0000;border-radius:8px;padding:.4rem .2rem;font-size:.82rem}.finance-cal-day-grid .finance-cal-cell{min-height:1.85rem;padding:.35rem 0}.finance-cal-cell:hover{border-color:var(--accent)}@supports (color:color-mix(in lab, red, red)){.finance-cal-cell:hover{border-color:color-mix(in srgb, var(--accent) 35%, #e7e5e4)}}.finance-cal-cell.is-active{background:var(--accent);color:#f7fffb;font-weight:700}.finance-cal-cell.is-empty{cursor:default;pointer-events:none;background:0 0}.finance-cal-field.is-default .finance-cal-trigger{background:var(--accent)}@supports (color:color-mix(in lab, red, red)){.finance-cal-field.is-default .finance-cal-trigger{background:color-mix(in srgb, var(--accent) 6%, #fffef9)}}.finance-filter-pill{color:var(--muted);background:#fffef9;border:1px solid #e7e5e4;border-radius:999px;align-items:center;gap:.35rem;padding:.3rem .75rem;font-size:.8rem;display:inline-flex}.finance-filter-pill.muted{background:#f5f5f4}.finance-filter-pill select,.finance-filter-pill input[type=month],.finance-filter-pill input[type=date]{width:auto;font:inherit;color:var(--ink);background:0 0;border:none;padding:.15rem .1rem;font-size:.8rem;font-weight:600}.finance-hero{grid-template-columns:1.45fr 1fr 1fr 1fr;align-items:stretch;gap:.75rem;margin-bottom:1rem;display:grid}.finance-hero>.finance-card-primary{min-width:0}.finance-hero-metrics{display:contents}.finance-hero-cards{grid-template-columns:1.4fr 1fr 1fr;gap:.75rem;margin-bottom:1rem;display:grid}@media (max-width:900px){.finance-hero{grid-template-columns:1fr 1fr}.finance-hero>.finance-card-primary{grid-column:1/-1}}@media (max-width:720px){.finance-hero,.finance-hero-cards{grid-template-columns:1fr}.finance-hero>.finance-card-primary{grid-column:auto}}.finance-card{background:#fffef9;border:1px solid #e7e5e4;border-radius:16px;padding:1rem 1.1rem;box-shadow:0 10px 30px #2925240a}.finance-card-primary{color:#fafaf9;background:linear-gradient(145deg,#44403c,#292524);border:none}.finance-card-muted{color:var(--muted);margin-bottom:.35rem;font-size:.78rem}.finance-card-primary .finance-card-muted{color:#a8a29e}.finance-card-num{font-variant-numeric:tabular-nums;font-size:1.65rem;font-weight:700}.finance-card-primary .finance-card-num{color:#fef3c7}.finance-panel-tabs{gap:.75rem;margin:.5rem 0 .75rem;font-size:.9rem;display:flex}.finance-panel-tabs a{color:var(--muted);border-bottom:2px solid #0000;padding-bottom:.2rem;text-decoration:none}.finance-panel-tabs a.is-active{color:var(--ink);border-bottom-color:#78716c;font-weight:700}.finance-panel-card{background:#fffef9;border:1px solid #e7e5e4;border-radius:16px;padding:1rem 1.1rem}.finance-section-label{justify-content:space-between;align-items:baseline;gap:.5rem;margin:0 0 .55rem;font-size:.9rem;font-weight:700;display:flex}.finance-section-label small{color:var(--muted);font-weight:500}.finance-lines{display:grid}.finance-line{border-bottom:1px dashed #e7e5e4;grid-template-columns:5.5rem 1fr auto;align-items:start;gap:.5rem;padding:.55rem .35rem;font-size:.86rem;display:grid}.finance-line:last-child{border-bottom:none}.finance-line-time{color:var(--muted);font-variant-numeric:tabular-nums;font-size:.78rem}.finance-badge{color:var(--muted);background:#e7e5e4;border-radius:4px;margin-right:.3rem;padding:.1rem .4rem;font-size:.7rem;display:inline-block}.finance-money{color:#166534;font-variant-numeric:tabular-nums;white-space:nowrap;font-weight:700}.finance-bill-table-card{padding:1.15rem 1.25rem 1.35rem}.finance-bill-table-head{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:.75rem;margin-bottom:.85rem;display:flex}.finance-bill-table-title{color:#292524;margin:0;font-size:1.05rem;font-weight:750}.finance-bill-table-meta{color:var(--muted);flex-wrap:wrap;align-items:center;gap:.35rem;margin:0;font-size:.78rem;display:inline-flex}.finance-bill-table-meta a{color:var(--muted);text-underline-offset:2px;text-decoration:underline}.finance-bill-table-wrap{overflow-x:auto}.finance-bill-table{border-collapse:collapse;color:#44403c;width:100%;font-size:.9rem}.finance-bill-table th,.finance-bill-table td{text-align:left;vertical-align:middle;font-variant-numeric:tabular-nums;padding:.7rem .55rem}.finance-bill-table th:not(:first-child),.finance-bill-table td:not(:first-child){text-align:center}.finance-bill-table th.is-fee,.finance-bill-table td.is-fee{text-align:right}.finance-bill-table thead th{color:#78716c;border-bottom:1px solid #e7e5e4;font-size:.8rem;font-weight:600}.finance-bill-table tbody td{border-bottom:1px dashed #e7e5e4}.finance-bill-table tbody tr:last-child td{border-bottom:none}.finance-bill-table tfoot td{color:#292524;border-top:1px solid #d6d3d1;padding-top:.85rem;font-weight:750}.finance-bill-table td.is-fee,.finance-bill-table th.is-fee{color:#166534}.finance-bill-table tbody td.is-fee,.finance-bill-table tfoot td.is-fee{font-weight:700}.finance-attendance-detail{margin-top:.85rem;padding:1rem 1.15rem 1.1rem}.finance-attendance-detail-head{margin-bottom:.55rem}.finance-attendance-detail-title-row{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.65rem;display:flex}.finance-attendance-detail-summary{color:var(--muted);text-align:center;margin:.45rem 0 0;font-size:.78rem}.finance-attendance-scope{background:#fafaf9;border:1px solid #e7e5e4;border-radius:999px;gap:.25rem;padding:.15rem;display:inline-flex}.finance-attendance-scope-btn{color:var(--muted);border-radius:999px;padding:.2rem .65rem;font-size:.78rem;text-decoration:none}.finance-attendance-scope-btn.is-active{color:#292524;background:#fff;font-weight:650;box-shadow:0 1px 2px #29252414}.finance-attendance-list{display:grid}.finance-attendance-row{white-space:nowrap;border-bottom:1px dashed #e7e5e4;grid-template-columns:10.5rem minmax(0,1fr) 4.5rem;align-items:center;gap:.55rem .75rem;padding:.42rem .2rem;font-size:.84rem;display:grid}.finance-attendance-row:last-child{border-bottom:none}.finance-attendance-time{color:var(--muted);font-variant-numeric:tabular-nums;text-overflow:ellipsis;font-size:.78rem;overflow:hidden}.finance-attendance-main{text-overflow:ellipsis;min-width:0;line-height:1.3;overflow:hidden}.finance-attendance-fee{text-align:right;justify-self:end;font-size:.84rem}.finance-attendance-pager{border-top:1px solid #e7e5e4;flex-wrap:wrap;align-items:center;gap:.45rem .55rem;margin-top:.75rem;padding-top:.65rem;display:flex}.finance-attendance-page-btn,.finance-attendance-page-num{min-height:1.85rem;color:var(--ink);background:#fff;border:1px solid #e7e5e4;border-radius:8px;justify-content:center;align-items:center;padding:0 .55rem;font-size:.78rem;text-decoration:none;display:inline-flex}.finance-attendance-page-btn.is-disabled{opacity:.45;pointer-events:none}.finance-attendance-page-nums,.finance-attendance-page-slot{align-items:center;gap:.25rem;display:inline-flex}.finance-attendance-page-num.is-active{border-color:var(--accent)}@supports (color:color-mix(in lab, red, red)){.finance-attendance-page-num.is-active{border-color:color-mix(in srgb, var(--accent) 45%, #e7e5e4)}}.finance-attendance-page-num.is-active{background:var(--accent)}@supports (color:color-mix(in lab, red, red)){.finance-attendance-page-num.is-active{background:color-mix(in srgb, var(--accent) 10%, #fff)}}.finance-attendance-page-num.is-active{font-weight:700}.finance-attendance-ellipsis{color:var(--muted);padding:0 .1rem;font-size:.78rem}.finance-attendance-jump{color:var(--muted);align-items:center;gap:.35rem;margin-left:auto;font-size:.78rem;display:inline-flex}.finance-attendance-jump input[type=number]{width:3.2rem;min-height:1.85rem;font:inherit;border:1px solid #e7e5e4;border-radius:8px;padding:.15rem .35rem}@media (max-width:720px){.finance-attendance-row{white-space:normal;grid-template-columns:minmax(0,1fr) auto}.finance-attendance-time{white-space:nowrap;grid-column:1/-1}.finance-attendance-main{white-space:nowrap}}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@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}
