/*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */
@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,::backdrop,:after,:before{--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-space-y-reverse:0;--tw-border-style:solid;--tw-gradient-position:initial;--tw-gradient-from:#0000;--tw-gradient-via:#0000;--tw-gradient-to:#0000;--tw-gradient-stops:initial;--tw-gradient-via-stops:initial;--tw-gradient-from-position:0%;--tw-gradient-via-position:50%;--tw-gradient-to-position:100%;--tw-leading:initial;--tw-font-weight:initial;--tw-tracking:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-outline-style:solid;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial;--tw-backdrop-blur:initial;--tw-backdrop-brightness:initial;--tw-backdrop-contrast:initial;--tw-backdrop-grayscale:initial;--tw-backdrop-hue-rotate:initial;--tw-backdrop-invert:initial;--tw-backdrop-opacity:initial;--tw-backdrop-saturate:initial;--tw-backdrop-sepia:initial}}}@layer theme{:host,:root{--font-sans:"Plus Jakarta Sans", "Segoe UI", sans-serif;--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--color-white:#fff;--spacing:.25rem;--container-md:28rem;--container-lg:32rem;--container-xl:36rem;--container-3xl:48rem;--container-4xl:56rem;--container-5xl:64rem;--container-6xl:72rem;--text-xs:.75rem;--text-xs--line-height:1.33333;--text-sm:.875rem;--text-sm--line-height:1.42857;--text-lg:1.125rem;--text-lg--line-height:1.55556;--text-xl:1.25rem;--text-xl--line-height:1.4;--text-2xl:1.5rem;--text-2xl--line-height:1.33333;--text-3xl:1.875rem;--text-3xl--line-height:1.2;--text-4xl:2.25rem;--text-4xl--line-height:1.11111;--text-5xl:3rem;--text-5xl--line-height:1;--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--font-weight-extrabold:800;--tracking-widest:.1em;--radius-lg:.5rem;--radius-xl:.75rem;--radius-2xl:1rem;--radius-3xl:1.5rem;--shadow-lg:0 10px 15px -3px #0000001a, 0 4px 6px -4px #0000001a;--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono);--color-navy:#0b1f4d;--color-navy-deep:#071533;--color-ink:#12203a;--color-muted:#5c6b82;--color-orange:#ff7a1a;--color-orange-dark:#e25e00;--color-sky:#eef5ff;--color-mist:#f5f8fc;--color-line:#e3ebf5;--color-card:#fff;--color-pine:#0f8f6a;--color-clay:#c2412d}}@layer base{*,::backdrop,:after,:before{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}:host,html{-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;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,pre,samp{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}menu,ol,ul{list-style:none}audio,canvas,embed,iframe,img,object,svg,video{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,optgroup,select,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-day-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-second-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;overflow:hidden}.absolute,.sr-only{position:absolute}.relative{position:relative}.sticky{position:sticky}.top-0{top:0}.top-8{top:calc(var(--spacing)*8)}.top-24{top:calc(var(--spacing)*24)}.-right-2{right:calc(var(--spacing)*-2)}.right-0{right:0}.bottom-6{bottom:calc(var(--spacing)*6)}.-left-4{left:calc(var(--spacing)*-4)}.left-8{left:calc(var(--spacing)*8)}.z-20{z-index:20}.z-30{z-index:30}.mx-auto{margin-inline:auto}.mt-1{margin-top:var(--spacing)}.mt-2{margin-top:calc(var(--spacing)*2)}.mt-3{margin-top:calc(var(--spacing)*3)}.mt-4{margin-top:calc(var(--spacing)*4)}.mt-5{margin-top:calc(var(--spacing)*5)}.mt-6{margin-top:calc(var(--spacing)*6)}.mt-8{margin-top:calc(var(--spacing)*8)}.mt-10{margin-top:calc(var(--spacing)*10)}.mb-3{margin-bottom:calc(var(--spacing)*3)}.mb-4{margin-bottom:calc(var(--spacing)*4)}.block{display:block}.contents{display:contents}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline{display:inline}.inline-block{display:inline-block}.table{display:table}.h-9{height:calc(var(--spacing)*9)}.h-28{height:calc(var(--spacing)*28)}.h-80{height:calc(var(--spacing)*80)}.max-h-64{max-height:calc(var(--spacing)*64)}.min-h-screen{min-height:100vh}.w-9{width:calc(var(--spacing)*9)}.w-52{width:calc(var(--spacing)*52)}.w-56{width:calc(var(--spacing)*56)}.w-full{width:100%}.max-w-3xl{max-width:var(--container-3xl)}.max-w-4xl{max-width:var(--container-4xl)}.max-w-5xl{max-width:var(--container-5xl)}.max-w-6xl{max-width:var(--container-6xl)}.max-w-lg{max-width:var(--container-lg)}.max-w-md{max-width:var(--container-md)}.max-w-xl{max-width:var(--container-xl)}.min-w-max{min-width:max-content}.border-collapse{border-collapse:collapse}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.cursor-pointer{cursor:pointer}.resize{resize:both}.list-none{list-style-type:none}.flex-wrap{flex-wrap:wrap}.place-items-center{place-items:center}.items-center{align-items:center}.justify-between{justify-content:space-between}.gap-2{gap:calc(var(--spacing)*2)}.gap-3{gap:calc(var(--spacing)*3)}.gap-4{gap:calc(var(--spacing)*4)}.gap-6{gap:calc(var(--spacing)*6)}.gap-8{gap:calc(var(--spacing)*8)}.gap-10{gap:calc(var(--spacing)*10)}:where(.space-y-3>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(var(--spacing)*3*var(--tw-space-y-reverse));margin-block-end:calc(var(--spacing)*3*(1 - var(--tw-space-y-reverse)))}:where(.space-y-4>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(var(--spacing)*4*var(--tw-space-y-reverse));margin-block-end:calc(var(--spacing)*4*(1 - var(--tw-space-y-reverse)))}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.rounded{border-radius:.25rem}.rounded-2xl{border-radius:var(--radius-2xl)}.rounded-3xl{border-radius:var(--radius-3xl)}.rounded-\[2rem\]{border-radius:2rem}.rounded-full{border-radius:2147483647px}.rounded-lg{border-radius:var(--radius-lg)}.rounded-xl{border-radius:var(--radius-xl)}.border{border-style:var(--tw-border-style);border-width:1px}.border-b{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.border-line{border-color:var(--color-line)}.border-line\/80{border-color:#e3ebf5cc}@supports (color:color-mix(in lab,red,red)){.border-line\/80{border-color:color-mix(in oklab,var(--color-line) 80%,transparent)}}.border-navy\/15{border-color:#0b1f4d26}@supports (color:color-mix(in lab,red,red)){.border-navy\/15{border-color:color-mix(in oklab,var(--color-navy) 15%,transparent)}}.border-orange\/30{border-color:#ff7a1a4d}@supports (color:color-mix(in lab,red,red)){.border-orange\/30{border-color:color-mix(in oklab,var(--color-orange) 30%,transparent)}}.border-white\/20{border-color:#fff3}@supports (color:color-mix(in lab,red,red)){.border-white\/20{border-color:color-mix(in oklab,var(--color-white) 20%,transparent)}}.bg-card{background-color:var(--color-card)}.bg-mist{background-color:var(--color-mist)}.bg-navy{background-color:var(--color-navy)}.bg-navy-deep{background-color:var(--color-navy-deep)}.bg-orange{background-color:var(--color-orange)}.bg-orange\/10{background-color:#ff7a1a1a}@supports (color:color-mix(in lab,red,red)){.bg-orange\/10{background-color:color-mix(in oklab,var(--color-orange) 10%,transparent)}}.bg-pine{background-color:var(--color-pine)}.bg-sky{background-color:var(--color-sky)}.bg-white{background-color:var(--color-white)}.bg-white\/15{background-color:#ffffff26}@supports (color:color-mix(in lab,red,red)){.bg-white\/15{background-color:color-mix(in oklab,var(--color-white) 15%,transparent)}}.bg-white\/90{background-color:#ffffffe6}@supports (color:color-mix(in lab,red,red)){.bg-white\/90{background-color:color-mix(in oklab,var(--color-white) 90%,transparent)}}.bg-gradient-to-b{--tw-gradient-position:to bottom in oklab;background-image:linear-gradient(var(--tw-gradient-stops))}.bg-\[radial-gradient\(circle_at_30\%_20\%\,\#ffb067\,transparent_25\%\)\,linear-gradient\(160deg\,\#1d4ed8\,\#0b1f4d\)\]{background-image:radial-gradient(circle at 30% 20%,#ffb067,#0000 25%),linear-gradient(160deg,#1d4ed8,#0b1f4d)}.from-sky{--tw-gradient-from:var(--color-sky)}.from-sky,.to-white{--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.to-white{--tw-gradient-to:var(--color-white)}.p-2{padding:calc(var(--spacing)*2)}.p-4{padding:calc(var(--spacing)*4)}.p-5{padding:calc(var(--spacing)*5)}.p-6{padding:calc(var(--spacing)*6)}.p-8{padding:calc(var(--spacing)*8)}.px-2{padding-inline:calc(var(--spacing)*2)}.px-3{padding-inline:calc(var(--spacing)*3)}.px-4{padding-inline:calc(var(--spacing)*4)}.px-5{padding-inline:calc(var(--spacing)*5)}.px-6{padding-inline:calc(var(--spacing)*6)}.px-8{padding-inline:calc(var(--spacing)*8)}.py-2{padding-block:calc(var(--spacing)*2)}.py-3{padding-block:calc(var(--spacing)*3)}.py-4{padding-block:calc(var(--spacing)*4)}.py-6{padding-block:calc(var(--spacing)*6)}.py-8{padding-block:calc(var(--spacing)*8)}.py-12{padding-block:calc(var(--spacing)*12)}.py-16{padding-block:calc(var(--spacing)*16)}.text-center{text-align:center}.text-left{text-align:left}.text-2xl{font-size:var(--text-2xl);line-height:var(--tw-leading,var(--text-2xl--line-height))}.text-3xl{font-size:var(--text-3xl);line-height:var(--tw-leading,var(--text-3xl--line-height))}.text-4xl{font-size:var(--text-4xl);line-height:var(--tw-leading,var(--text-4xl--line-height))}.text-5xl{font-size:var(--text-5xl);line-height:var(--tw-leading,var(--text-5xl--line-height))}.text-lg{font-size:var(--text-lg);line-height:var(--tw-leading,var(--text-lg--line-height))}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.text-xl{font-size:var(--text-xl);line-height:var(--tw-leading,var(--text-xl--line-height))}.text-xs{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.text-\[10px\]{font-size:10px}.leading-\[1\.05\]{--tw-leading:1.05;line-height:1.05}.font-bold{--tw-font-weight:var(--font-weight-bold);font-weight:var(--font-weight-bold)}.font-extrabold{--tw-font-weight:var(--font-weight-extrabold);font-weight:var(--font-weight-extrabold)}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.font-semibold{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.tracking-\[0\.14em\]{--tw-tracking:.14em;letter-spacing:.14em}.tracking-\[0\.18em\]{--tw-tracking:.18em;letter-spacing:.18em}.tracking-widest{--tw-tracking:var(--tracking-widest);letter-spacing:var(--tracking-widest)}.text-clay{color:var(--color-clay)}.text-ink{color:var(--color-ink)}.text-ink\/70{color:#12203ab3}@supports (color:color-mix(in lab,red,red)){.text-ink\/70{color:color-mix(in oklab,var(--color-ink) 70%,transparent)}}.text-muted{color:var(--color-muted)}.text-navy{color:var(--color-navy)}.text-navy\/70{color:#0b1f4db3}@supports (color:color-mix(in lab,red,red)){.text-navy\/70{color:color-mix(in oklab,var(--color-navy) 70%,transparent)}}.text-navy\/80{color:#0b1f4dcc}@supports (color:color-mix(in lab,red,red)){.text-navy\/80{color:color-mix(in oklab,var(--color-navy) 80%,transparent)}}.text-orange{color:var(--color-orange)}.text-orange-dark{color:var(--color-orange-dark)}.text-pine{color:var(--color-pine)}.text-white{color:var(--color-white)}.text-white\/70{color:#ffffffb3}@supports (color:color-mix(in lab,red,red)){.text-white\/70{color:color-mix(in oklab,var(--color-white) 70%,transparent)}}.text-white\/75{color:#ffffffbf}@supports (color:color-mix(in lab,red,red)){.text-white\/75{color:color-mix(in oklab,var(--color-white) 75%,transparent)}}.text-white\/80{color:#fffc}@supports (color:color-mix(in lab,red,red)){.text-white\/80{color:color-mix(in oklab,var(--color-white) 80%,transparent)}}.uppercase{text-transform:uppercase}.italic{font-style:italic}.underline{text-decoration-line:underline}.shadow-lg{--tw-shadow:0 10px 15px -3px var(--tw-shadow-color,#0000001a), 0 4px 6px -4px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-card{--tw-shadow-color:#fff}@supports (color:color-mix(in lab,red,red)){.shadow-card{--tw-shadow-color:color-mix(in oklab, var(--color-card) var(--tw-shadow-alpha), transparent)}}.shadow-orange\/30{--tw-shadow-color:#ff7a1a4d}@supports (color:color-mix(in lab,red,red)){.shadow-orange\/30{--tw-shadow-color:color-mix(in oklab, color-mix(in oklab, var(--color-orange) 30%, transparent) var(--tw-shadow-alpha), transparent)}}.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,)}.backdrop-blur{--tw-backdrop-blur:blur(8px);-webkit-backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,)}@media (hover:hover){.hover\:bg-sky:hover{background-color:var(--color-sky)}}@media (width>=40rem){.sm\:inline{display:inline}}@media (width>=48rem){.md\:block{display:block}.md\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.md\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.md\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}}@media (width>=64rem){.lg\:flex{display:flex}.lg\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}}}:root{--shell:#0c1736;--shell-2:#132246;--canvas:#f3f6fb;--surface:#fff;--surface-2:#f7f9fd;--ink:#14213d;--muted:#66758c;--line:#e5edf6;--shadow:0 4px 24px #10204812;--shadow-lg:0 16px 48px #1020481f;--hero-from:#2f6fed;--hero-to:#6d5efc;--good:#128a5b;--good-soft:#e8f8f0;--warn:#c97812;--warn-soft:#fff4e4;--accent-soft:#e8f0ff;--danger:#c2412d;--danger-soft:#ffeae6;--purple:#7c3aed;--purple-soft:#f3eeff;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}html.dark{--canvas:#0b1020;--surface:#151c33;--surface-2:#1c2542;--ink:#f4f7ff;--muted:#a9b4cc;--line:#ffffff14;--shadow:none;--shadow-lg:none;--good-soft:#128a5b2e;--warn-soft:#ffa82e29;--accent-soft:#4f7cff29;--danger-soft:#c2412d2e;--purple-soft:#7c3aed2e;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*,:after,:before{box-sizing:border-box}body{background:var(--canvas);color:var(--ink);font-family:var(--font-sans);-webkit-font-smoothing:antialiased;margin:0;font-size:14px;line-height:1.5}button,input,select,textarea{font:inherit}.btn,.side-link,.user-card,button{cursor:pointer}a{color:inherit;text-decoration:none}.nav-progress{z-index:50;background:0 0;height:3px;position:fixed;top:0;left:0;right:0;overflow:hidden}.nav-progress span{background:#ff7a1a;width:40%;height:100%;animation:.9s ease-in-out infinite nav-slide;display:block}@keyframes nav-slide{0%{transform:translate(-120%)}to{transform:translate(320%)}}.is-loading{opacity:.55;pointer-events:none}.shell{background:var(--canvas);min-height:100vh;color:var(--ink)}.sidebar{z-index:30;color:#fff;scrollbar-width:thin;scrollbar-color:#ffffff38 transparent;background:linear-gradient(170deg,#0f1d42,#0a1428);flex-direction:column;width:256px;padding:18px 16px 22px;transition:width .18s cubic-bezier(.4,0,.2,1);display:flex;position:fixed;top:0;bottom:0;left:0;overflow:hidden auto}.sidebar::-webkit-scrollbar{width:6px}.sidebar::-webkit-scrollbar-track{background:0 0}.sidebar::-webkit-scrollbar-thumb{background:#ffffff38;border-radius:99px}.shell.collapsed .sidebar{width:72px;padding-left:8px;padding-right:8px}.shell.collapsed .brand-name,.shell.collapsed .nav-label,.shell.collapsed .school-chip,.shell.collapsed .side-footer,.shell.collapsed .side-workspace,.shell.collapsed .year-chip{display:none}.workspace{min-width:0;min-height:100vh;margin-left:256px;transition:margin-left .18s cubic-bezier(.4,0,.2,1)}.shell.collapsed .workspace{margin-left:72px}.side-head{justify-content:space-between;align-items:center;gap:8px;margin-bottom:20px;display:flex}.shell.collapsed .side-head{justify-content:center;gap:0}.shell.collapsed .brand-mark,.shell.collapsed .collapse-btn{width:36px;height:36px}.shell.collapsed .side-link{justify-content:center;padding-inline:0}.collapse-btn{color:#ffffffe6;background:#ffffff1a;border:0;border-radius:10px;flex:none;place-items:center;width:36px;height:36px;display:grid}.collapse-btn:hover{background:#ffffff2e}.brand{letter-spacing:-.03em;align-items:center;gap:10px;min-width:0;font-size:17px;font-weight:800;display:flex}.shell.collapsed .brand{justify-content:center}.brand-mark{color:#fff;background:linear-gradient(135deg,#2f6bff,#4f46e5);border-radius:10px;flex:none;place-items:center;width:36px;height:36px;font-size:15px;font-weight:900;display:grid;box-shadow:0 4px 14px #2f6bff73}.school-chip{background:#ffffff12;border-radius:14px;margin:0 4px 16px;padding:10px 12px;position:relative}.school-chip.is-open{z-index:6}.school-chip>span{color:#ffffff80;letter-spacing:.04em;text-transform:uppercase;font-size:11px;font-weight:600;display:block}.school-chip>strong{color:#fff;margin-top:2px;font-size:13px;font-weight:700;display:block}.chip-trigger{color:#fff;text-align:left;background:0 0;border:0;justify-content:space-between;align-items:center;gap:8px;width:100%;margin-top:2px;display:flex}.chip-trigger strong{font-size:13px;font-weight:700}.chip-trigger svg{color:#ffffff8c;flex:none}.chip-menu{z-index:5;background:#182443;border:1px solid #ffffff1f;border-radius:12px;padding:4px;position:absolute;top:calc(100% + 6px);left:0;right:0;overflow:hidden;box-shadow:0 16px 36px #00000059}.chip-menu button{color:#ffffffe0;text-align:left;background:0 0;border:0;border-radius:8px;justify-content:space-between;align-items:center;gap:8px;width:100%;padding:8px 10px;font-size:13px;font-weight:650;display:flex}.chip-menu button.is-selected,.chip-menu button:hover{color:#fff;background:#ffffff1a}.side-nav{flex:1;align-content:start;gap:2px;display:grid}.side-link{color:#ffffffa6;border-radius:10px;align-items:center;gap:10px;padding:6px 10px;font-size:13.5px;font-weight:600;transition:background .15s,color .15s;display:flex}.side-link:hover{color:#fffffff2;background:#ffffff14}.side-link.is-active{color:#fff;background:#2f6bff4d}.side-link.is-active svg{color:#7aadff}.side-link svg{opacity:.85;flex:none}.side-divider{background:#ffffff14;height:1px;margin:8px 4px}.side-footer{margin-top:auto;padding-top:12px}.side-footer a{color:#ffffff80;border-radius:10px;align-items:center;gap:8px;padding:6px 10px;font-size:12px;font-weight:600;display:flex}.side-footer a:hover{color:#fffc;background:#ffffff0f}.side-back{color:#fffc;border-radius:10px;align-items:center;gap:8px;min-width:0;padding:6px 10px;font-size:13.5px;font-weight:700;display:flex}.side-back:hover{color:#fff;background:#ffffff14}.shell.collapsed .side-back{justify-content:center;padding-inline:0}.side-workspace{color:#fff;margin:0 10px 16px;font-size:13px;font-weight:800}.grades-top-title{min-width:0}.grades-kicker{color:var(--muted);margin:0;font-size:11px;font-weight:700}.grades-top-title strong{letter-spacing:-.02em;font-size:15px;font-weight:800;display:block}.topbar{z-index:25;border-bottom:1px solid var(--line);background:var(--surface);box-shadow:0 1px 0 var(--line),0 4px 16px #1020480a;align-items:center;gap:14px;padding:12px 28px;display:flex;position:sticky;top:0}.search{flex:1;max-width:440px;position:relative}.search input{border:1.5px solid var(--line);background:var(--surface-2);width:100%;color:var(--ink);border-radius:12px;outline:none;padding:9px 14px 9px 40px;font-size:13.5px;transition:border-color .15s}.search input:focus{background:var(--surface);border-color:#2f6bff}.search input::placeholder{color:var(--muted)}.search svg{color:var(--muted);position:absolute;top:10px;left:12px}.search-results{z-index:20;border:1.5px solid var(--line);background:var(--surface);box-shadow:var(--shadow-lg);border-radius:14px;position:absolute;top:calc(100% + 6px);left:0;right:0;overflow:hidden}.search-results a{padding:10px 14px;font-size:13px;display:block}.search-results a:hover{background:var(--surface-2)}.top-meta{align-items:center;gap:8px;margin-left:auto;display:flex}.date-label{color:var(--muted);white-space:nowrap;font-size:12.5px;font-weight:600}.icon-btn{background:var(--surface);width:38px;height:38px;color:var(--ink);border:1.5px solid var(--line);border-radius:11px;place-items:center;transition:background .15s,border-color .15s;display:grid;position:relative}.icon-btn:hover{background:var(--surface-2);border-color:#c8d8ee}.notif-dot{border:1.5px solid var(--surface);background:#f44;border-radius:50%;width:7px;height:7px;position:absolute;top:7px;right:7px}.user-box{position:relative}.user-card{border:1.5px solid var(--line);background:var(--surface);border-radius:14px;align-items:center;gap:10px;padding:5px 12px 5px 5px;transition:border-color .15s;display:flex}.user-card:hover{border-color:#c8d8ee}.avatar{color:#fff;background:linear-gradient(135deg,#2f6bff,#6d5efc);border-radius:10px;flex:none;place-items:center;width:34px;height:34px;font-size:12px;font-weight:800;display:grid}.avatar-sm{border-radius:8px;width:30px;height:30px;font-size:11px}.avatar-lg{border-radius:14px;width:48px;height:48px;font-size:16px}.avatar-circle{border-radius:50%}.avatar-green{background:linear-gradient(135deg,#0f8f6a,#10b981)!important}.avatar-orange{background:linear-gradient(135deg,#f97316,#ff7a1a)!important}.avatar-purple{background:linear-gradient(135deg,#7c3aed,#a855f7)!important}.avatar-red{background:linear-gradient(135deg,#ef4444,#c2412d)!important}.avatar-teal{background:linear-gradient(135deg,#0891b2,#06b6d4)!important}.avatar-pink{background:linear-gradient(135deg,#db2777,#ec4899)!important}.user-card strong{font-size:13px;font-weight:700;line-height:1.2;display:block}.user-card small{color:var(--muted);font-size:11px}.user-menu{z-index:30;border:1.5px solid var(--line);background:var(--surface);width:200px;box-shadow:var(--shadow-lg);border-radius:14px;padding:6px;position:absolute;top:calc(100% + 8px);right:0}.user-menu a,.user-menu button{text-align:left;width:100%;color:var(--ink);background:0 0;border:0;border-radius:10px;align-items:center;gap:8px;padding:8px 10px;font-size:13px;font-weight:600;display:flex}.user-menu a:hover,.user-menu button:hover{background:var(--surface-2)}.user-menu .menu-divider{background:var(--line);height:1px;margin:4px 0}.user-menu .menu-danger{color:var(--danger)!important}.menu-btn{display:none}.canvas{padding:10px 28px 48px}.page-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:16px;margin-bottom:24px;padding-top:4px;display:flex}.page-head h1{letter-spacing:-.04em;margin:0;font-size:26px;font-weight:800;line-height:1.15}.lede,.page-head .lede{color:var(--muted);margin-top:4px;font-size:13.5px}.btn{white-space:nowrap;border:0;border-radius:11px;justify-content:center;align-items:center;gap:7px;padding:9px 18px;font-size:13.5px;font-weight:700;transition:filter .15s,transform .1s,box-shadow .15s;display:inline-flex}.btn:hover{filter:brightness(1.06)}.btn:active{transform:translateY(1px)}.btn-sm{border-radius:9px;padding:6px 12px;font-size:12.5px}.btn-lg{border-radius:13px;padding:12px 24px;font-size:15px}.btn-icon{padding:9px 10px}.btn-primary{color:#fff;background:#2f6bff;box-shadow:0 4px 14px #2f6bff4d}.btn-green{color:#fff;background:#17a36a;box-shadow:0 4px 14px #17a36a40}.btn-orange{color:#fff;background:#ff7a1a;box-shadow:0 4px 14px #ff7a1a40}.btn-blue{color:#fff;background:#2f6bff;box-shadow:0 4px 14px #2f6bff40}.btn-purple{color:#fff;background:#7c3aed;box-shadow:0 4px 14px #7c3aed40}.btn-danger{background:var(--danger);color:#fff}.btn-ghost{background:var(--surface);color:var(--ink);border:1.5px solid var(--line)}.btn-ghost:hover{background:var(--surface-2);border-color:#c8d8ee}.btn-soft{color:#fff;background:#ffffff29}.btn-soft:hover{background:#ffffff3d}.btn-link{color:#2f6bff;cursor:pointer;background:0 0;border:0;padding:0;font-size:13px;font-weight:750}.hero{background:linear-gradient(105deg,var(--hero-from),var(--hero-to));color:#fff;border-radius:20px;justify-content:space-between;align-items:center;gap:20px;margin-top:0;padding:24px 28px;display:flex;position:relative;overflow:hidden}.hero:before{content:"";background:#ffffff12;border-radius:50%;width:240px;height:240px;position:absolute;top:-60px;right:-60px}.hero .eyebrow{letter-spacing:.02em;background:#ffffff2e;border-radius:999px;padding:4px 12px;font-size:11.5px;font-weight:700;display:inline-flex}.hero h2{letter-spacing:-.04em;margin-top:10px;font-size:26px;font-weight:800}.stats{grid-template-columns:repeat(4,1fr);gap:14px;margin-top:20px;display:grid}.stat{border:1.5px solid var(--line);background:var(--surface);box-shadow:var(--shadow);border-radius:18px;align-items:flex-start;gap:14px;padding:18px 20px;transition:box-shadow .2s,border-color .2s;display:flex}.stat:hover{box-shadow:var(--shadow-lg);border-color:#d5e3f7}.stat-icon{border-radius:13px;flex:none;place-items:center;width:44px;height:44px;font-size:20px;display:grid}.stat-icon-blue{color:#2f6bff;background:#e8f0ff}.stat-icon-green{color:#17a36a;background:#e8f8f0}.stat-icon-orange{color:#ff7a1a;background:#fff3e6}.stat-icon-purple{color:#7c3aed;background:#f3eeff}.stat-icon-teal{color:#0891b2;background:#e0f7fa}.stat-body{min-width:0}.stat b{letter-spacing:-.05em;margin-top:2px;font-size:30px;font-weight:800;line-height:1;display:block}.stat span{color:var(--muted);font-size:12.5px;font-weight:600}.stat-trend{margin-top:4px;font-size:11.5px;font-weight:600}.stat-trend-up{color:var(--good)}.stat-trend-down{color:var(--danger)}.card{border:1.5px solid var(--line);background:var(--surface);box-shadow:var(--shadow);border-radius:18px}.card-head{letter-spacing:-.01em;justify-content:space-between;align-items:center;padding:16px 18px 10px;font-size:14px;font-weight:800;display:flex}.card-head a,.card-link{color:#2f6bff;font-size:12.5px;font-weight:700}.card-head a:hover,.card-link:hover{text-decoration:underline}.card-body{padding:0 8px 12px}.card-p{padding:16px 18px}.split{grid-template-columns:1.35fr 1fr;gap:14px;margin-top:16px;display:grid}.row{border-radius:12px;align-items:center;gap:12px;padding:10px 12px;transition:background .12s;display:flex}.row:hover{background:var(--surface-2)}.dot{background:#2f6bff;border-radius:99px;flex:none;width:5px;height:28px}.dot-green{background:#17a36a}.dot-orange{background:#ff7a1a}.dot-purple{background:#7c3aed}.pill{white-space:nowrap;border-radius:999px;align-items:center;gap:5px;padding:4px 10px;font-size:11.5px;font-weight:750;display:inline-flex}.pill:before{content:"";opacity:.6;background:currentColor;border-radius:50%;width:6px;height:6px}.pill-good{background:var(--good-soft);color:var(--good)}.pill-warn{background:var(--warn-soft);color:var(--warn)}.pill-next{background:var(--accent-soft);color:#3d6bff}.pill-danger{background:var(--danger-soft);color:var(--danger)}.pill-purple{background:var(--purple-soft);color:var(--purple)}.pill-muted{background:var(--surface-2);color:var(--muted)}html.dark .pill-next{color:#b9c9ff}.pill-sm{padding:3px 8px;font-size:10.5px}.attention{border-radius:12px;align-items:center;gap:12px;padding:10px 12px;transition:background .12s;display:flex}.attention:hover{background:var(--surface-2)}.initials{color:#fff;border-radius:999px;flex:none;place-items:center;width:38px;height:38px;font-size:12px;font-weight:800;display:grid}.schedule-row{border-radius:12px;align-items:center;gap:12px;padding:10px 14px;transition:background .12s;display:flex}.schedule-row:hover{background:var(--surface-2)}.schedule-time{color:var(--muted);min-width:80px;font-size:11.5px;font-weight:600}.schedule-dot{background:#2f6bff;border-radius:50%;flex:none;width:10px;height:10px}.schedule-info{flex:1;min-width:0}.schedule-info strong{font-size:13.5px;font-weight:700;display:block}.schedule-info span{color:var(--muted);font-size:12px;display:block}.list{border:1.5px solid var(--line);background:var(--surface);border-radius:18px;overflow:hidden}.list .item,.list a{border-top:1px solid var(--line);justify-content:space-between;align-items:center;gap:12px;padding:13px 16px;display:flex}.list .item:first-child,.list a:first-child{border-top:0}.list .item:hover,.list a:hover{background:var(--surface-2)}.sheet{border:1.5px solid var(--line);background:var(--surface);border-radius:18px;overflow:auto}.sheet table{border-collapse:collapse;width:100%;font-size:13.5px}.sheet td,.sheet th{border-bottom:1px solid var(--line);text-align:left;white-space:nowrap;vertical-align:middle;padding:11px 14px}.sheet th{background:var(--surface-2);color:var(--muted);text-transform:uppercase;letter-spacing:.04em;font-size:11.5px;font-weight:750}.sheet th.sortable{cursor:pointer;-webkit-user-select:none;user-select:none}.sheet th.sortable:hover{background:var(--line);color:var(--ink)}.sheet th.sort-active{color:#2f6bff}.sheet th .sort-icon{opacity:.5;margin-left:4px;font-size:10px;display:inline-block}.sheet th.sort-active .sort-icon{opacity:1}.sheet tr:last-child td{border-bottom:0}.sheet td.wrap,.sheet th.wrap{white-space:normal}.sheet tbody tr.is-link{cursor:pointer}.sheet tbody tr:hover td{background:var(--surface-2)}.sheet-actions{align-items:center;gap:4px;display:flex}.action-btn{border:1.5px solid var(--line);width:30px;height:30px;color:var(--muted);background:0 0;border-radius:8px;place-items:center;font-size:16px;font-weight:800;line-height:1;transition:background .12s,border-color .12s;display:grid}.action-btn:hover{background:var(--surface-2);color:var(--ink);border-color:#c8d8ee}.dropdown-menu{z-index:40;border:1.5px solid var(--line);background:var(--surface);min-width:170px;box-shadow:var(--shadow-lg);border-radius:13px;padding:5px;position:absolute}.dropdown-menu a,.dropdown-menu button{text-align:left;width:100%;color:var(--ink);background:0 0;border:0;border-radius:9px;align-items:center;gap:8px;padding:8px 12px;font-size:13px;font-weight:600;display:flex}.dropdown-menu a:hover,.dropdown-menu button:hover{background:var(--surface-2)}.dropdown-menu .item-danger{color:var(--danger)!important}.dropdown-menu .menu-divider{background:var(--line);height:1px;margin:4px 0}.rel{position:relative}.pagination{border-top:1px solid var(--line);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;padding:14px 18px;display:flex}.page-info{color:var(--muted);font-size:12.5px;font-weight:600}.page-btns{gap:4px;display:flex}.page-btn{border:1.5px solid var(--line);width:32px;height:32px;color:var(--muted);cursor:pointer;background:0 0;border-radius:9px;place-items:center;font-size:13px;font-weight:700;transition:all .12s;display:grid}.page-btn:hover{color:#2f6bff;border-color:#2f6bff}.page-btn.is-active{color:#fff;background:#2f6bff;border-color:#2f6bff}.page-btn:disabled{opacity:.4;cursor:not-allowed}.page-btn-wide{width:auto;padding:0 12px}.filter-bar{flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:16px;display:flex}.field{border:1.5px solid var(--line);background:var(--surface);color:var(--ink);border-radius:11px;outline:none;padding:9px 13px;font-size:13.5px;transition:border-color .15s,box-shadow .15s}.field:focus{border-color:#2f6bff;box-shadow:0 0 0 3px #2f6bff1f}.field::placeholder{color:var(--muted)}select.field{appearance:none;background-image:url(data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2214%22%20height%3D%2214%22%20fill%3D%22none%22%20stroke%3D%22%2366758c%22%20stroke-width%3D%222%22%20viewBox%3D%220%200%2024%2024%22%3E%3Cpath%20d%3D%22m6%209%206%206%206-6%22%2F%3E%3C%2Fsvg%3E);background-position:right 8px center;background-repeat:no-repeat;padding-right:28px}.search-field{position:relative}.search-field input{padding-left:36px}.search-field svg{color:var(--muted);pointer-events:none;position:absolute;top:50%;left:11px;transform:translateY(-50%)}.stack{gap:14px;display:grid}.stack-sm{gap:8px;display:grid}.grid-2{grid-template-columns:1fr 1fr}.grid-2,.grid-3{gap:14px;display:grid}.grid-3{grid-template-columns:repeat(3,1fr)}.form-grid{grid-template-columns:1fr 1fr;gap:12px;display:grid}.empty-state{text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:10px;padding:48px 24px;display:flex}.empty-state .empty-icon{opacity:.4;font-size:36px}.empty-state p{color:var(--muted);max-width:380px;font-size:13.5px}.modal-overlay{z-index:50;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:#0a122c73;place-items:center;padding:24px;display:grid;position:fixed;inset:0}.modal{background:var(--surface);border-radius:22px;width:100%;max-width:540px;overflow:hidden;box-shadow:0 24px 80px #0a143c38}.modal-head{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;padding:20px 24px 14px;display:flex}.modal-head h2{letter-spacing:-.02em;margin:0;font-size:17px;font-weight:800}.modal-body{padding:20px 24px}.modal-foot{border-top:1px solid var(--line);justify-content:flex-end;gap:10px;padding:14px 24px 20px;display:flex}.close-btn{background:var(--surface-2);width:32px;height:32px;color:var(--muted);border:0;border-radius:9px;place-items:center;display:grid}.close-btn:hover{background:var(--line);color:var(--ink)}.step-bar{gap:0;margin-bottom:20px}.step-bar,.step-item{align-items:center;display:flex}.step-item{flex:1;gap:8px}.step-item:not(:last-child):after{content:"";background:var(--line);flex:1;height:2px;margin:0 8px}.step-num{border:2px solid var(--line);background:var(--surface);width:28px;height:28px;color:var(--muted);border-radius:50%;flex:none;place-items:center;font-size:12px;font-weight:800;display:grid}.step-item.is-active .step-num{color:#fff;background:#2f6bff;border-color:#2f6bff}.step-item.is-done .step-num{color:#fff;background:#17a36a;border-color:#17a36a}.step-item.is-active:not(:last-child):after{background:#2f6bff}.step-item.is-done:not(:last-child):after{background:#17a36a}.step-label{color:var(--muted);font-size:12px;font-weight:700}.step-item.is-active .step-label{color:#2f6bff}.step-item.is-done .step-label{color:var(--good)}.notif-row{border-radius:12px;align-items:flex-start;gap:12px;padding:12px 14px;transition:background .12s;display:flex}.notif-row:hover{background:var(--surface-2)}.notif-row.unread .notif-title{font-weight:750}.notif-dot-mark{background:#2f6bff;border-radius:50%;flex:none;width:8px;height:8px;margin-top:6px}.notif-title{color:var(--ink);font-size:13.5px;line-height:1.4}.notif-meta{color:var(--muted);margin-top:2px;font-size:12px}.resource-grid{grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:14px;display:grid}.resource-card{border:1.5px solid var(--line);background:var(--surface);box-shadow:var(--shadow);border-radius:16px;transition:box-shadow .2s,transform .2s;overflow:hidden}.resource-card:hover{box-shadow:var(--shadow-lg);transform:translateY(-2px)}.resource-thumb{-o-object-fit:cover;object-fit:cover;background:#e8f0ff;width:100%;height:120px;display:block}.resource-thumb-placeholder{background:linear-gradient(135deg,#e8f0ff,#f3eeff);place-items:center;width:100%;height:120px;font-size:32px;display:grid}.resource-info{padding:12px 14px}.resource-tag{text-transform:uppercase;letter-spacing:.06em;color:#ff7a1a;font-size:10.5px;font-weight:750}.resource-title{margin:4px 0;font-size:13.5px;font-weight:750}.resource-meta{color:var(--muted);font-size:12px}.tabs{border-bottom:1.5px solid var(--line);gap:4px;margin-bottom:20px;display:flex}.tab-btn{color:var(--muted);cursor:pointer;background:0 0;border:0;border-bottom:2.5px solid #0000;border-radius:10px 10px 0 0;margin-bottom:-2px;padding:10px 16px;font-size:13.5px;font-weight:700;transition:color .15s,border-color .15s}.tab-btn:hover{color:var(--ink)}.tab-btn.is-active{color:#2f6bff;border-bottom-color:#2f6bff}.tabs-scroll{scrollbar-width:thin;flex-wrap:nowrap;overflow-x:auto}.tabs-scroll .tab-btn{white-space:nowrap;flex:none}.health-banner{background:var(--danger-soft);border:1px solid #f0c7c7;border-radius:16px;justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:16px;padding:14px 16px;display:flex}.health-banner strong{margin-bottom:6px;display:block}.health-banner ul{margin:0;padding-left:18px}.domain-toolbar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;display:flex}.domain-title{margin:0;font-size:16px}.domain-stats{grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:10px;display:grid}.domain-stats .stat{flex-direction:column;gap:4px}.domain-card{border:1px solid var(--line);background:var(--surface);border-radius:16px;gap:10px;padding:16px;display:grid}.domain-card-head{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.domain-meta{color:var(--muted);margin:2px 0 0;font-size:13px}.domain-pills{flex-wrap:wrap;gap:6px;display:flex}.protocol-card{background:var(--danger-soft);border-color:#f0c7c7}@supports (color:color-mix(in lab,red,red)){.protocol-card{background:color-mix(in srgb,var(--danger-soft) 55%,var(--surface))}}.thread-reply{border-left:2px solid var(--line);margin-left:12px;padding-left:12px}.file-list{gap:6px;margin:0;padding:0;list-style:none;display:grid}.file-list li{color:var(--muted);justify-content:space-between;gap:12px;font-size:13px;display:flex}.excuse-split{grid-template-columns:1fr 1fr;gap:12px;display:grid}.excuse-split div{background:var(--surface-2);border-radius:12px;gap:2px;padding:12px;display:grid}.excuse-split strong{font-size:28px}.excuse-split span{color:var(--muted);font-size:13px}.heat-month{margin-top:14px}.heat-month h3{text-transform:capitalize;margin:0 0 8px;font-size:14px}.heat-grid{flex-wrap:wrap;gap:4px;display:flex}.heat-cell{background:var(--surface-2);border:0;border-radius:4px;width:18px;height:18px;padding:0}.heat-cell.is-present{background:var(--good)}.heat-cell.is-absent{background:var(--danger)}.heat-cell.is-late{background:var(--warn)}.heat-cell.is-excused{background:#7c5cbf}.heat-detail{border-top:1px solid var(--line);margin-top:14px;padding-top:12px}.rich-note{font-size:14px;line-height:1.5}.rich-note p{margin:0 0 8px}.rich-note ol,.rich-note ul{margin:0 0 8px;padding-left:18px}.rich-note a{color:#2f6bff}.form-label{color:var(--muted);text-transform:uppercase;letter-spacing:.04em;gap:6px;font-size:12px;font-weight:750;display:grid}.form-hint,.form-label .field,.form-label .rich-editor,.form-label .roll-editor{text-transform:none;letter-spacing:0;font-weight:500}.form-hint{color:var(--muted);margin-top:3px;font-size:11.5px}.toggle{cursor:pointer;align-items:center;gap:8px;display:flex}.toggle input{display:none}.toggle-track{background:var(--line);border-radius:999px;flex:none;width:38px;height:22px;transition:background .2s;position:relative}.toggle-track:after{content:"";background:#fff;border-radius:50%;width:16px;height:16px;transition:transform .2s;position:absolute;top:3px;left:3px;box-shadow:0 1px 4px #0003}.toggle input:checked+.toggle-track{background:#2f6bff}.toggle input:checked+.toggle-track:after{transform:translate(16px)}.shadow-card{box-shadow:0 18px 50px #0b1f4d14}.gradebook{border:1.5px solid var(--line);background:var(--surface);border-radius:18px;overflow:auto}.gradebook-sheet{padding-bottom:16px}.gradebook th{background:var(--surface-2);color:var(--ink);font-size:11px;font-weight:750}.gradebook .sticky-name,.gradebook .sticky-no{z-index:1;background:var(--surface);position:sticky}.gradebook .sticky-no{box-sizing:border-box;white-space:nowrap;width:56px;min-width:56px;max-width:56px;left:0}.gradebook .sticky-name{min-width:200px;left:56px;box-shadow:8px 0 12px -10px #10204873}.gradebook thead .sticky-name,.gradebook thead .sticky-no{z-index:3;background:var(--surface-2)}.gradebook tbody .sticky-name,.gradebook tbody .sticky-no{z-index:2;background:var(--surface)}.gradebook input{width:64px;color:var(--ink);text-align:center;background:0 0}.gradebook .band-vista{color:#16356b;background:#dbe7ff}.gradebook .band-lilac{background:#efe6ff}.gradebook .band-green{background:#e5f6df}.gradebook .band-blue{background:#e5f0ff}.gradebook .band-red{background:#ffe4dc}.gradebook .band-sand{background:#f6f0e4}.gradebook .pair-alt{background:#f3f5f8}.gradebook .system-col{background:#fff6e8}html.dark .gradebook .band-vista{color:#e8eeff;background:#243864}html.dark .gradebook .band-lilac{background:#2a2444}html.dark .gradebook .band-green{background:#1c3328}html.dark .gradebook .band-blue{background:#1c2c44}html.dark .gradebook .band-red{background:#3a2424}html.dark .gradebook .band-sand{background:#332c22}html.dark .gradebook .pair-alt{background:#1a2238}html.dark .gradebook .system-col{background:#3a2e1c}html.dark .gradebook tbody .sticky-name,html.dark .gradebook tbody .sticky-no{background:var(--surface)}html.dark .gradebook thead .sticky-name,html.dark .gradebook thead .sticky-no{background:var(--surface-2)}html.dark .gradebook .sticky-name{box-shadow:8px 0 12px -10px #000000b3}html.dark .topbar{box-shadow:none}.date-field{width:100%;display:block;position:relative}.date-field.is-compact{width:fit-content;min-width:220px}.date-native{opacity:0;pointer-events:none;width:1px;height:1px;position:absolute}.date-trigger{border:1.5px solid var(--line);background:var(--surface);width:100%;color:var(--ink);text-align:left;border-radius:11px;justify-content:space-between;align-items:center;gap:10px;padding:9px 13px;transition:border-color .15s;display:flex}.date-trigger:focus{border-color:#2f6bff;outline:none}.date-trigger svg,.date-trigger.is-empty{color:var(--muted)}.date-trigger svg{flex:none}.date-panel{z-index:40;border:1.5px solid var(--line);background:var(--surface);border-radius:18px;width:292px;padding:12px;position:absolute;top:calc(100% + 8px);left:0;box-shadow:0 18px 50px #0b1f4d29}.date-panel.is-above{top:auto;bottom:calc(100% + 8px)}.date-panel.is-end{left:auto;right:0}.date-nav{justify-content:space-between;align-items:center;gap:8px;margin-bottom:10px;display:flex}.date-nav strong{letter-spacing:-.02em;text-transform:capitalize;font-size:14px;font-weight:800}.date-nav-btn,.date-step{background:var(--surface-2);width:32px;height:32px;color:var(--ink);border:0;border-radius:10px;place-items:center;font-size:16px;display:grid}.date-grid,.date-weekdays{grid-template-columns:repeat(7,1fr);gap:2px;display:grid}.date-weekdays span{color:var(--muted);text-align:center;padding:4px 0 6px;font-size:11px;font-weight:750}.date-day{height:34px;color:var(--ink);background:0 0;border:0;border-radius:10px;font-size:13px;font-weight:650}.date-day:hover{background:var(--surface-2)}.date-day.is-outside{color:var(--muted);opacity:.55}.date-day.is-today{box-shadow:inset 0 0 0 1px #2f6bff}.date-day.is-selected,.date-day.is-selected:hover{color:#fff;opacity:1;box-shadow:none;background:#2f6bff}.date-time{border-top:1px solid var(--line);grid-template-columns:1fr 1fr;gap:8px;margin-top:12px;padding-top:12px;display:grid}.date-time label{color:var(--muted);gap:6px;font-size:11px;font-weight:750;display:grid}.date-time-row{align-items:center;gap:4px;display:flex}.date-time input{border:1px solid var(--line);background:var(--surface-2);width:42px;color:var(--ink);text-align:center;border-radius:10px;padding:6px 0;font-weight:750}.date-foot{justify-content:space-between;gap:8px;margin-top:10px;display:flex}.date-foot button{color:#2f6bff;background:0 0;border:0;border-radius:10px;padding:6px 8px;font-size:13px;font-weight:750}.date-foot button:hover{background:var(--accent-soft)}.toast{z-index:100;background:var(--ink);color:#fff;border-radius:14px;align-items:center;gap:10px;min-width:260px;max-width:360px;padding:12px 18px;font-size:13.5px;font-weight:600;animation:.25s toast-in;display:flex;position:fixed;bottom:24px;right:24px;box-shadow:0 16px 40px #00000040}.toast-success{background:#15764c}.toast-error{background:var(--danger)}@keyframes toast-in{0%{opacity:0;transform:translateY(20px)}}@media (width<=1200px){.stats{grid-template-columns:repeat(2,1fr)}.split{grid-template-columns:1fr}}@media (width<=1100px){.form-grid,.grid-2{grid-template-columns:1fr 1fr}.date-label{display:none}}@media (width<=860px){.shell.collapsed .sidebar,.sidebar{width:268px;padding-left:16px;padding-right:16px;transform:translate(-110%)}.shell.collapsed .brand-mark,.shell.collapsed .collapse-btn{width:36px;height:36px}.sidebar.open{transform:none;box-shadow:4px 0 40px #00000038}.shell.collapsed .workspace,.workspace{margin-left:0}.menu-btn{display:grid}.canvas,.topbar{padding-left:16px;padding-right:16px}.form-grid,.grid-2,.split,.stats{grid-template-columns:1fr}.hero{display:grid}.user-card small,.user-card strong{display:none}.resource-grid{grid-template-columns:repeat(2,1fr)}}@media (width<=520px){.stats{grid-template-columns:1fr 1fr}.resource-grid{grid-template-columns:1fr}.filter-bar{gap:6px}.page-head h1{font-size:22px}}.text-muted{color:var(--muted)}.text-ink{color:var(--ink)}.text-blue{color:#2f6bff}.text-orange{color:#ff7a1a}.text-green{color:#17a36a}.text-danger{color:var(--danger)}.text-sm{font-size:12.5px}.text-xs{font-size:11.5px}.text-lg{font-size:16px}.font-bold{font-weight:700}.font-semibold{font-weight:600}.font-extrabold{font-weight:800}.mt-1{margin-top:4px}.mt-2{margin-top:8px}.mt-3{margin-top:12px}.mt-4{margin-top:16px}.mt-5{margin-top:20px}.mb-3{margin-bottom:12px}.mb-4{margin-bottom:16px}.mb-5{margin-bottom:20px}.gap-2{gap:8px}.gap-3{gap:12px}.flex{display:flex}.flex-wrap{flex-wrap:wrap}.items-center{align-items:center}.justify-between{justify-content:space-between}.p-4{padding:16px}.p-5{padding:20px}.px-4{padding-left:16px;padding-right:16px}.py-6{padding-top:24px;padding-bottom:24px}.w-full{width:100%}.block{display:block}.hidden{display:none}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.rounded{border-radius:8px}.uppercase{text-transform:uppercase}.tracking-wide{letter-spacing:.06em}.self-center{align-self:center}.cursor-pointer{cursor:pointer}.min-w-max{min-width:max-content}.whitespace-nowrap{white-space:nowrap}.text-white{color:#fff}.text-white\/80{color:#fffc}.opacity-0{opacity:0}.pointer-events-none{pointer-events:none}.border-line{border-color:var(--line)}.border-collapse{border-collapse:collapse}.clay,.text-clay{color:#c2412d}.back-link{color:var(--muted);align-items:center;gap:6px;margin-bottom:18px;font-size:13px;font-weight:700;display:inline-flex}.back-link:hover{color:var(--ink)}.dossier{flex-direction:column;gap:16px;height:calc(100dvh - 132px);min-height:0;display:flex}.dossier>.back-link{margin-bottom:0}.dossier-panel{background:var(--surface);border:1.5px solid var(--line);min-height:0;box-shadow:var(--shadow);border-radius:18px;flex-direction:column;flex:1;display:flex;overflow:hidden}.dossier-panel .tabs{background:var(--surface-2);border-bottom:1.5px solid var(--line);scrollbar-width:none;flex:none;gap:2px;margin:0;padding:8px 10px 0}.dossier-panel .tabs::-webkit-scrollbar{display:none}.dossier-panel .tab-btn{color:var(--muted);background:0 0;border:1.5px solid #0000;border-bottom:0;border-radius:12px 12px 0 0;align-items:center;gap:6px;margin-bottom:0;display:inline-flex}.dossier-panel .tab-btn:hover{color:var(--ink);background:var(--surface)}@supports (color:color-mix(in lab,red,red)){.dossier-panel .tab-btn:hover{background:color-mix(in srgb,var(--surface) 65%,transparent)}}.dossier-panel .tab-btn.is-active{background:var(--surface);color:#2f6bff;border-color:var(--line);border-bottom:1.5px solid var(--surface);margin-bottom:-1.5px}.dossier-panel .tab-btn.is-active .tab-count{background:var(--accent-soft);color:#2f6bff}.dossier-body{background:var(--surface);flex:1;min-height:0;padding:16px 16px 20px;overflow:auto}.tab-count{min-width:16px;height:16px;color:var(--muted);place-items:center;padding:0 4px;font-size:10.5px;font-weight:750;line-height:1;display:inline-grid}.filter-tray,.tab-count{background:var(--surface-2);border-radius:999px}.filter-tray{border:1px solid var(--line);flex-wrap:wrap;align-items:center;gap:2px;padding:4px;display:inline-flex}.filter-chip{color:var(--muted);cursor:pointer;background:0 0;border:0;border-radius:999px;padding:6px 12px;font-size:12.5px;font-weight:700}.filter-chip:hover{color:var(--ink)}.filter-chip.is-on{background:var(--surface);color:#2f6bff;box-shadow:0 1px 2px #10204814}.label-row{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:8px;display:flex}.field-hint{text-transform:none;letter-spacing:0;color:var(--muted);margin:0;font-size:11.5px;font-weight:650}.search-select{position:relative}.search-select-menu{z-index:8;background:var(--surface);border:1.5px solid var(--line);box-shadow:var(--shadow-lg);border-radius:12px;max-height:220px;margin:0;padding:6px;list-style:none;position:absolute;top:calc(100% + 4px);left:0;right:0;overflow:auto}.search-select-menu button{text-align:left;width:100%;color:var(--ink);cursor:pointer;background:0 0;border:0;border-radius:8px;padding:8px 10px;font-size:13.5px;font-weight:650}.file-drop,.search-select-menu button.is-active,.search-select-menu button:hover{background:var(--surface-2)}.file-drop{text-align:center;color:var(--muted);border:1.5px dashed #c5d4ea;border-radius:16px;justify-items:center;gap:6px;padding:22px 16px;font-size:13px;display:grid}.file-drop.is-over{background:var(--accent-soft);border-color:#2f6bff}.file-drop strong{color:var(--ink);font-size:14px}.file-drop-list{gap:6px;width:100%;margin:8px 0 0;padding:0;list-style:none;display:grid}.file-drop-list li{background:var(--surface);border:1px solid var(--line);color:var(--ink);text-align:left;border-radius:10px;justify-content:space-between;align-items:center;gap:8px;padding:8px 10px;font-size:13px;display:flex}.file-drop-list button{color:var(--muted);cursor:pointer;background:0 0;border:0;font-size:16px}.tab-dot{background:var(--danger);border-radius:50%;flex:none;width:7px;height:7px}button.card-link{cursor:pointer;background:0 0;border:0;padding:0}.form-error{color:var(--danger);margin-bottom:12px;font-size:13px;font-weight:700}.toggle-label{color:var(--ink);text-transform:none;letter-spacing:0;font-size:13px;font-weight:650}.profile-hero-frame{z-index:5;position:relative;container:profile-hero/inline-size}.profile-hero{border:1.5px solid var(--line);background:var(--surface);box-shadow:var(--shadow);border-radius:18px;grid-template-columns:minmax(0,1fr);grid-template-areas:"identity""actions""metrics";align-items:center;gap:10px 16px;margin:0;padding:14px 16px;display:grid}.profile-identity{grid-area:identity;align-items:center;gap:12px;min-width:0;display:flex}.profile-actions{flex-wrap:wrap;grid-area:actions;align-items:center;gap:8px;display:flex}.profile-metrics{grid-area:metrics;gap:8px;min-width:0;display:grid}.profile-id-copy{justify-items:start;gap:4px;min-width:0;display:grid}.profile-identity h1{letter-spacing:-.03em;overflow-wrap:break-word;margin:0;font-size:20px;font-weight:800;line-height:1.15}.profile-meta{color:var(--muted);overflow-wrap:anywhere;margin:0;font-size:12.5px;font-weight:600}.profile-photo{-o-object-fit:cover;object-fit:cover;border-radius:12px;flex:none;width:44px;height:44px}.profile-initials{color:#fff;background:linear-gradient(135deg,#2f6bff,#6d5efc);place-items:center;font-size:14px;font-weight:800;display:grid}.dossier-metrics{color:var(--muted);flex-wrap:wrap;align-items:baseline;margin:0;font-size:13px;font-weight:600;display:flex}.dossier-metrics button{color:inherit;font:inherit;cursor:pointer;background:0 0;border:0;padding:0}.dossier-metrics button:hover{color:var(--ink)}.dossier-metrics b{color:var(--ink);font-variant-numeric:tabular-nums;font-weight:800}.dossier-metrics .sep{margin:0 6px}.dossier-chip{background:var(--danger-soft);color:var(--danger);cursor:pointer;border:0;border-radius:999px;align-items:center;gap:6px;padding:3px 8px;font-size:12.5px;font-weight:750;display:inline-flex}.dossier-pop{gap:10px;width:min(360px,80vw);max-height:320px;padding:12px;display:grid;top:calc(100% + 6px);left:0;overflow:auto}.dossier-pop section{gap:4px;display:grid}button.attention{text-align:left;cursor:pointer;background:0 0;border:0;width:100%}.attention .timeline-mark{display:block}.dossier-pop strong{font-size:13.5px}@container profile-hero (width>=680px){.profile-hero{grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"identity actions""metrics metrics"}.profile-actions{justify-content:flex-end}}.profile-stats{grid-template-columns:repeat(5,1fr);gap:12px;margin-bottom:16px;display:grid}.profile-stats-3{grid-template-columns:repeat(3,1fr)}.profile-stats .stat{margin:0}.alert-list{flex-wrap:wrap;gap:10px;margin-bottom:18px;display:flex}.alert-card{border:1.5px solid #0000;border-radius:14px;gap:2px;min-width:180px;padding:12px 14px;display:grid}.alert-card strong{font-size:13.5px;font-weight:800}.alert-card span{font-size:12.5px;font-weight:600}.alert-card.is-warning{background:var(--warn-soft);color:var(--warn)}.alert-card.is-positive{background:var(--good-soft);color:var(--good)}.timeline{gap:0;padding:6px 16px 16px;display:grid}.timeline-item{grid-template-columns:16px 1fr;gap:12px;padding:10px 0;display:grid}.timeline-mark{background:#2f6bff;border-radius:50%;width:10px;height:10px;margin-top:5px}.timeline-mark.is-incidents{background:var(--danger)}.timeline-mark.is-notes{background:#7c3aed}.timeline-mark.is-attendance{background:#17a36a}.timeline-mark.is-documents{background:#ff7a1a}.timeline-title{margin:0;font-size:14px;font-weight:750}.timeline-detail,.timeline-meta{color:var(--muted);margin:2px 0 0;font-size:12.5px}.subject-grid{grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:12px;display:grid}.doc-grid{grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:14px;display:grid}.subject-card{border:1.5px solid var(--line);background:var(--surface);border-radius:16px;align-content:start;gap:6px;padding:16px;display:grid}.chart-title,.subject-card span{color:var(--muted);font-size:12.5px;font-weight:700}.subject-card strong{letter-spacing:-.04em;font-size:28px;font-weight:800}.doc-toolbar{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.doc-search{flex:200px;min-width:180px;max-width:320px}.doc-group{gap:10px;display:grid}.doc-group-title{letter-spacing:.05em;text-transform:uppercase;color:var(--muted);margin:0;font-size:12px;font-weight:800}.doc-card{border:1.5px solid var(--line);background:#fff;border-radius:16px;grid-template-columns:minmax(0,1fr) 88px;gap:8px 12px;padding:14px;display:grid;box-shadow:0 1px 2px #1020480a}.doc-card-main{align-content:start;gap:6px;min-width:0;display:grid}.doc-card-id{align-items:flex-start;gap:10px;min-width:0;display:flex}.doc-card-id strong{font-size:14.5px;line-height:1.3}.doc-card-copy{gap:4px;min-width:0;display:grid}.doc-card-copy p{color:var(--muted);margin:0;font-size:12px;font-weight:650}.doc-mark{color:#fff;letter-spacing:.02em;border-radius:10px;flex:none;place-items:center;width:36px;height:36px;font-size:10px;font-weight:800;display:grid}.doc-mark.is-pdf{background:#e11d2e}.doc-mark.is-word{background:#2b579a}.doc-mark.is-image{background:#0f8f6a}.doc-mark.is-video{background:#7c3aed}.doc-mark.is-file{background:#5c6b82}.doc-preview{border:1px solid var(--line);background:#fbfcfe;border-radius:8px;place-items:center;width:88px;height:108px;display:grid;overflow:hidden;box-shadow:inset 0 0 0 1px #fff9}.doc-preview img{-o-object-fit:cover;object-fit:cover;width:100%;height:100%}.doc-sheet{background:#fff;border:1px solid #e6edf6;border-radius:3px;align-content:center;justify-items:center;gap:5px;width:62px;height:80px;padding:8px;display:grid;box-shadow:0 1px 3px #1020480f}.doc-sheet span{background:#e5edf6;border-radius:99px;width:70%;height:3px}.doc-connection{color:var(--muted);margin:0;font-size:12px;font-weight:650}.doc-card-actions{flex-wrap:wrap;grid-column:1/-1;align-items:center;gap:8px;display:flex}.doc-menu{margin-left:auto;position:relative}.doc-menu-pop{z-index:6;background:var(--surface);border:1.5px solid var(--line);min-width:168px;box-shadow:var(--shadow-lg);border-radius:12px;padding:6px;display:grid;position:absolute;top:calc(100% + 4px);right:0}.doc-menu-pop button{text-align:left;color:var(--ink);cursor:pointer;background:0 0;border:0;border-radius:8px;padding:8px 10px;font-size:13px;font-weight:700}.doc-menu-pop button:hover{background:var(--surface-2)}.doc-menu-pop button.is-danger{color:var(--danger)}.chart-title{text-transform:uppercase;letter-spacing:.04em;margin:0 0 8px}.chart-single{letter-spacing:-.04em;margin:8px 0 0;font-size:32px;font-weight:800}.trend-chart{width:100%;height:140px}.chart-label{fill:var(--muted);font-size:10px;font-weight:700}.assign-bars{gap:12px;display:grid}.assign-bars>div{grid-template-columns:92px 1fr auto;align-items:center;gap:8px;font-size:13px;font-weight:700;display:grid}.assign-track{background:var(--surface-2);border-radius:99px;height:8px;overflow:hidden}.assign-fill{border-radius:99px;height:100%}.assign-fill.is-done{background:#17a36a}.assign-fill.is-missing{background:#ff7a1a}.snapshot{gap:10px;margin:0;display:grid}.snapshot div{justify-content:space-between;gap:12px;display:flex}.snapshot dt{color:var(--muted);font-size:12.5px;font-weight:700}.snapshot dd{text-align:right;margin:0;font-size:13.5px;font-weight:750}.guardian-card strong{font-size:16px}.guardian-head{justify-content:space-between;align-items:flex-start;gap:10px;display:flex}.guardian-head p,.guardian-meta{color:var(--muted);margin:2px 0 0;font-size:13px}.guardian-meta{grid-template-columns:1fr 1fr;gap:10px;margin-top:14px;display:grid}.guardian-meta dt{text-transform:uppercase;letter-spacing:.04em;font-size:11px;font-weight:750}.guardian-meta dd{color:var(--ink);margin:2px 0 0;font-size:13.5px;font-weight:700}.guardian-actions{flex-wrap:wrap;gap:8px;margin-top:14px;display:flex}.drawer-overlay{z-index:60;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:#0a122c73;justify-content:flex-end;display:flex;position:fixed;inset:0}.drawer{background:var(--surface);width:min(560px,100%);height:100%;overflow:auto;box-shadow:-16px 0 48px #0a143c2e}.drawer-body{padding:20px 24px 32px}.drawer-body .field,.profile-overlay .field{width:100%}.drawer-body textarea.field{resize:vertical;min-height:120px}.profile-overlay{z-index:70;background:var(--canvas);padding:20px 28px 48px;position:fixed;inset:0;overflow:auto}.profile-overlay-bar{align-items:center;gap:14px;margin-bottom:20px;display:flex}.profile-overlay-bar h2{margin:0;font-size:20px;font-weight:800}.choice-grid{grid-template-columns:1fr 1fr;gap:8px;display:grid}.choice-grid-3{grid-template-columns:1fr 1fr 1fr}.choice-card{border:1.5px solid var(--line);background:var(--surface);text-align:left;cursor:pointer;color:var(--ink);border-radius:12px;padding:10px 12px}.choice-card strong{font-size:13.5px;display:block}.choice-card span{color:var(--muted);margin-top:2px;font-size:12px;font-weight:600;display:block}.choice-card.is-on{background:#2f6bff14;border-color:#2f6bff}.student-pick{gap:6px;max-height:280px;margin-top:8px;display:grid;overflow:auto}.student-pick label{text-transform:none;letter-spacing:0;color:var(--ink);align-items:center;gap:8px;font-size:13.5px;font-weight:650;display:flex}.file-row,.link-row{border:1px solid var(--line);background:var(--surface-2);border-radius:10px;justify-content:space-between;align-items:center;gap:8px;padding:8px 10px;font-size:13px;display:flex}.composer-error{color:var(--danger);margin:0 0 12px;font-size:13px;font-weight:700}.assignment-builder{background:var(--canvas);flex-direction:column;padding:0;animation:.18s builder-in;display:flex;overflow:hidden}@keyframes builder-in{0%{opacity:0}to{opacity:1}}.builder-top{background:var(--surface);border-bottom:1px solid var(--line);flex:none;align-items:center;height:56px;padding:0 18px;display:flex}.builder-back{color:var(--muted);background:0 0;border:0;border-radius:10px;align-items:center;gap:6px;padding:6px 8px;font-size:13.5px;font-weight:700;display:inline-flex}.builder-back:hover{background:var(--surface-2);color:var(--ink)}.builder-scroll{flex:1;min-height:0;padding:28px 40px 36px;overflow:auto}.builder-wrap{width:min(1440px,100%);margin:0 auto}.builder-head{margin-bottom:22px}.builder-head h1{letter-spacing:-.04em;margin:0;font-size:28px;font-weight:800}.builder-live-title{letter-spacing:-.03em;color:var(--ink);margin:6px 0 0;font-size:20px;font-weight:750}.builder-live-title.is-empty{color:var(--muted);font-weight:650}.builder-grid{grid-template-columns:minmax(0,1fr) 300px;align-items:start;gap:22px;display:grid}.builder-sources{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-bottom:14px;display:grid}.builder-source{text-align:left;min-height:96px;color:var(--ink);border:1.5px solid var(--line);background:var(--surface);border-radius:16px;align-items:flex-start;gap:12px;padding:16px;transition:border-color .15s,box-shadow .15s;display:flex;position:relative;box-shadow:0 1px 2px #1020480a}.builder-source:hover:not(:disabled){border-color:#c5d4ee}.builder-source.is-on{border-color:#2f6bff;box-shadow:0 0 0 3px #2f6bff1f}.builder-source.is-soon,.builder-source:disabled{opacity:1;background:var(--surface-2);color:var(--muted);cursor:default}.builder-source.is-soon{grid-template-columns:36px minmax(0,1fr);grid-template-areas:"badge badge""icon copy";gap:8px 12px;display:grid}.builder-source.is-soon>.builder-soon{grid-area:badge;justify-self:end;position:static}.builder-source.is-soon .builder-source-icon{grid-area:icon}.builder-source.is-soon>span:last-child{grid-area:copy;min-width:0}.builder-source strong{letter-spacing:-.02em;font-size:14px;font-weight:800;display:block}.builder-source small{color:var(--muted);margin-top:3px;font-size:12.5px;font-weight:600;line-height:1.4;display:block}.builder-source-icon{background:var(--accent-soft);color:#2f6bff;border-radius:10px;flex:none;place-items:center;width:36px;height:36px;display:grid}.builder-source-icon.is-ai{background:var(--purple-soft);color:var(--purple)}.builder-soon,.builder-source-icon.is-store{background:var(--good-soft);color:var(--good)}.builder-soon{letter-spacing:.01em;border-radius:999px;align-items:center;padding:2px 8px;font-size:10.5px;font-weight:800;display:inline-flex}.builder-source>.builder-soon{position:absolute;top:10px;right:10px}.builder-ai{border:1.5px solid var(--line);background:var(--surface);border-radius:16px;gap:10px;margin-bottom:14px;padding:16px;display:grid}.builder-ai textarea.field{resize:vertical;min-height:84px}.builder-ai p,.builder-hint{color:var(--muted);margin:0;font-size:12.5px;font-weight:600}.builder-ai-foot{align-items:center;gap:8px;display:flex}.builder-error{z-index:2;border:1px solid var(--danger);margin:0 0 12px;padding:10px 12px;position:sticky;top:0}@supports (color:color-mix(in lab,red,red)){.builder-error{border:1px solid color-mix(in srgb,var(--danger) 25%,transparent)}}.builder-error{background:var(--danger-soft);color:var(--danger);border-radius:12px;font-size:13px;font-weight:700}.builder-section{border:1.5px solid var(--line);background:var(--surface);border-radius:16px;margin-bottom:12px;scroll-margin-top:12px;box-shadow:0 1px 2px #10204808}.builder-section-head{width:100%;color:var(--ink);text-align:left;cursor:pointer;background:0 0;border:0;align-items:center;gap:12px;padding:14px 16px;display:flex}.builder-section-copy{flex:1;gap:1px;min-width:0;display:grid}.builder-section-copy strong{letter-spacing:-.02em;font-size:14.5px;font-weight:800}.builder-section-copy small{color:var(--muted);font-size:12.5px;font-weight:600}.builder-num{color:#fff;background:#2f6bff;border-radius:50%;flex:none;place-items:center;width:26px;height:26px;font-size:12px;font-weight:800;display:grid}.builder-section:not(.is-open) .builder-num{background:var(--accent-soft);color:#2f6bff}.builder-chevron{color:var(--muted);flex:none;transition:transform .15s}.builder-section.is-open .builder-chevron{transform:rotate(180deg)}.builder-chip{text-overflow:ellipsis;white-space:nowrap;background:var(--surface-2);max-width:160px;color:var(--muted);border-radius:999px;flex:none;padding:3px 8px;font-size:11px;font-weight:750;overflow:hidden}.builder-section-body{gap:14px;padding:2px 16px 16px;display:grid}.builder-split{grid-template-columns:1fr 1fr;gap:12px;display:grid}.builder-split-3{grid-template-columns:1.3fr 1fr 1fr}.builder-span{grid-column:1/-1}.assignment-builder .form-label{text-transform:none;letter-spacing:0;color:var(--ink);font-size:12.5px;font-weight:750}.assignment-builder .req{color:var(--danger)}.field-icon{display:block;position:relative}.field-icon>svg{color:var(--muted);pointer-events:none;position:absolute;top:50%;left:12px;transform:translateY(-50%)}.field-icon .field{padding-left:36px}.date-field.is-invalid .date-trigger,.field.is-invalid,.filter-select.is-invalid .filter-select-trigger,.rich-editor.is-invalid,.student-pick.is-invalid{border-color:var(--danger);background:var(--danger-soft);box-shadow:0 0 0 3px #c2412d1f}.student-pick.is-invalid{border:1.5px solid var(--danger);border-radius:12px;padding:8px}.builder-choices{grid-template-columns:1fr 1fr;gap:10px;display:grid}.builder-choice{border:1.5px solid var(--line);background:var(--surface);text-align:left;width:100%;color:var(--ink);cursor:pointer;border-radius:14px;align-items:flex-start;gap:10px;padding:12px;display:flex}.builder-choice.is-on{background:#2f6bff0f;border-color:#2f6bff}.builder-choice strong{font-size:13.5px;display:block}.builder-choice small{color:var(--muted);margin-top:2px;font-size:12px;font-weight:600;display:block}.builder-choice-icon{background:var(--surface-2);width:32px;height:32px;color:var(--muted);border-radius:10px;flex:none;place-items:center;display:grid}.builder-choice.is-on .builder-choice-icon{background:var(--accent-soft);color:#2f6bff}.builder-check{color:#2f6bff;flex:none;margin-left:auto}.builder-roster{gap:8px;display:grid}.builder-roster.is-invalid{border:1.5px solid var(--danger);background:var(--danger-soft);border-radius:12px;padding:8px}.builder-roster-bar{justify-content:space-between;align-items:center;gap:12px;display:flex}.builder-roster-bar .search-field{flex:1}.builder-checkline{color:var(--ink);text-transform:none;letter-spacing:0;align-items:center;gap:8px;font-size:13.5px;font-weight:700;display:flex}.builder-inline{justify-self:start}.builder-summary{border:1.5px solid var(--line);background:var(--surface);box-shadow:var(--shadow);border-radius:16px;gap:2px;padding:18px 22px 16px;display:grid;position:sticky;top:0}.builder-summary-head{justify-content:space-between;align-items:center;gap:8px;margin-bottom:8px;display:flex}.builder-summary-head h2{margin:0;font-size:15px;font-weight:800}.builder-meta{width:100%;color:var(--ink);text-align:left;background:0 0;border:0;border-radius:8px;align-items:center;gap:8px;padding:8px;font-size:12.5px;display:flex}button.builder-meta{cursor:pointer}button.builder-meta:hover{background:var(--surface-2)}.builder-meta svg{color:var(--muted);flex:none}.builder-meta>span{color:var(--muted);font-weight:650}.builder-meta strong,.builder-meta>span{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.builder-meta strong{text-align:right;max-width:52%;margin-left:auto;font-size:12.5px;font-weight:750}.builder-meta-go{color:var(--muted)}.builder-meta .toggle{margin-left:4px}.builder-tip{background:var(--accent-soft);color:#2451c7;border-radius:12px;align-items:flex-start;gap:10px;margin-top:10px;padding:12px;display:flex}.builder-tip span{background:var(--surface);color:#2f6bff;border-radius:8px;flex:none;place-items:center;width:28px;height:28px;display:grid}html.dark .builder-tip{color:#d5e2ff}.builder-tip p{margin:0;font-size:12.5px;font-weight:650;line-height:1.45}.builder-dock{border-top:1px solid var(--line);background:var(--surface);flex:none}@supports (color:color-mix(in lab,red,red)){.builder-dock{background:color-mix(in srgb,var(--surface) 92%,transparent)}}.builder-dock{-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);padding:12px 40px}.builder-dock-inner{width:min(1440px,100%);margin:0 auto}.builder-dock-actions{justify-content:space-between;align-items:center;gap:12px;width:calc(100% - 322px);display:flex}.builder-dock-primary{align-items:center;gap:8px;display:flex}.builder-dock .btn:disabled{opacity:.55;cursor:not-allowed;filter:none;transform:none}@media (width<=980px){.builder-choices,.builder-grid,.builder-sources,.builder-split,.builder-split-3{grid-template-columns:1fr}.builder-summary{position:static}.builder-dock-actions{width:100%}.builder-scroll{padding:20px 16px 28px}.builder-dock{padding:12px 16px}.choice-grid{grid-template-columns:1fr}}@media (width<=1100px){.grid-3,.profile-stats,.profile-stats-3{grid-template-columns:1fr 1fr}}@media (width<=720px){.grid-3,.guardian-meta,.profile-stats,.profile-stats-3{grid-template-columns:1fr}}.roll{flex-direction:column;height:calc(100dvh - 74px);min-height:0;margin:-10px -28px -48px;display:flex}.roll-top{z-index:6;padding:12px 28px 0;position:relative}.roll-scroll{z-index:1;flex:1;min-height:0;padding:0 28px 28px;position:relative;overflow:auto}.roll-sr{clip:rect(0,0,0,0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.roll-crumbs{color:var(--muted);align-items:center;gap:8px;font-size:12.5px;font-weight:650;display:flex}.roll-crumbs .is-current,.roll-crumbs a:hover{color:var(--ink)}.roll-date{background:var(--accent-soft);border-radius:16px;justify-content:space-between;gap:16px;margin:14px 0 12px;padding:14px 16px}.roll-date,.roll-date-main{flex-wrap:wrap;align-items:center;display:flex}.roll-date-main{gap:8px;min-width:0}.roll-date-main p{color:var(--ink);letter-spacing:-.03em;margin:0;font-size:18px;font-weight:750}.roll-date-icon{color:var(--muted);flex:none}.roll-date-sep{color:var(--muted);font-weight:700}.roll-shift{background:var(--surface);width:32px;height:32px;color:var(--ink);border:0;border-radius:10px;flex:none;place-items:center;display:grid}.roll-shift:hover{background:var(--surface-2)}.roll-date-change .date-field,.roll-date-change .date-field.is-compact{width:auto;min-width:0}.roll-date-change .date-trigger{width:auto;color:var(--muted);background:0 0;border:0;gap:6px;padding:4px 2px;font-size:13px;font-weight:700}.roll-date-change .date-trigger:focus,.roll-date-change .date-trigger:hover{color:var(--ink);border-color:#0000}.roll-course{position:relative}.roll-course-btn{border:1px solid var(--line);background:var(--surface);color:var(--ink);border-radius:12px;align-items:center;gap:8px;padding:6px 12px;font-size:13px;font-weight:700;display:inline-flex}button.roll-course-btn:hover{border-color:#c8d8ee}.roll-course-menu{min-width:180px;top:calc(100% + 6px);left:auto;right:0}.roll-toolbar{z-index:4;background:var(--surface);border-bottom:1px solid var(--line);flex-wrap:wrap;align-items:center;gap:12px;margin:0 -28px;padding:10px 28px;display:flex;position:sticky;top:0}.roll-toolbar.is-stuck{box-shadow:var(--shadow)}.roll-view{border:1px solid var(--line);background:var(--surface);border-radius:10px;gap:2px;padding:2px}.roll-view,.roll-view button{align-items:center;display:inline-flex}.roll-view button{color:var(--muted);background:0 0;border:0;border-radius:8px;gap:6px;padding:6px 10px;font-size:13px;font-weight:700}.roll-view button.is-on{background:var(--accent-soft);color:#2f6bff}.roll-search{min-width:160px;max-width:280px;color:var(--muted);flex:1;align-items:center;gap:8px;display:flex}.roll-search input{width:100%;color:var(--ink);background:0 0;border:0;outline:none;font-size:13.5px}.roll-search input::placeholder{color:var(--muted)}.roll-toolbar-actions{align-items:center;gap:8px;margin-left:auto;display:flex}.roll .btn:disabled,.roll .btn:disabled:hover{opacity:.5;cursor:not-allowed;filter:none;box-shadow:none;transform:none}.roll-chips{flex-wrap:wrap;gap:8px 16px;margin-top:12px;display:flex}.roll-chip{color:var(--muted);align-items:center;gap:6px;font-size:13px;font-weight:650;display:inline-flex}.roll-chip b{color:var(--ink);font-variant-numeric:tabular-nums;font-weight:750}.roll-chip i{background:var(--muted);border-radius:50%;width:7px;height:7px}.roll-chip i.is-present{background:var(--good)}.roll-chip i.is-absent{background:var(--danger)}.roll-chip i.is-late{background:var(--warn)}.roll-chip i.is-excused{background:var(--purple)}.roll-chip.is-done{color:var(--good);font-weight:750}.roll-banner{border:1px solid var(--line);background:var(--good-soft);color:var(--good);border-radius:12px;align-items:center;gap:8px;margin-top:12px;padding:10px 14px;font-size:13.5px;font-weight:700;display:flex}.roll-banner.is-offline{background:var(--warn-soft);color:var(--warn)}.roll-banner.is-import{background:var(--surface-2);color:var(--ink)}.roll-banner button{color:inherit;background:0 0;border:0;font-weight:750;text-decoration:underline}.roll-sheet{border:1.5px solid var(--line);background:var(--surface);border-radius:18px;margin-top:12px}.roll-head,.roll-row{grid-template-columns:minmax(180px,1.4fr) 100px minmax(240px,1.5fr) 48px 44px;align-items:center;gap:8px;padding-right:8px;display:grid}.roll-head{background:var(--surface-2);color:var(--muted);letter-spacing:.04em;text-transform:uppercase;padding:10px 8px 10px 16px;font-size:11.5px;font-weight:750}.roll-row{border-top:1px solid var(--line);border-left:3px solid #0000;min-height:58px}.roll-row.is-present{border-left-color:var(--good);background:var(--good-soft)}@supports (color:color-mix(in lab,red,red)){.roll-row.is-present{background:color-mix(in srgb,var(--good-soft) 72%,var(--surface))}}.roll-row.is-absent{border-left-color:var(--danger);background:var(--danger-soft)}@supports (color:color-mix(in lab,red,red)){.roll-row.is-absent{background:color-mix(in srgb,var(--danger-soft) 72%,var(--surface))}}.roll-row.is-late{border-left-color:var(--warn);background:var(--warn-soft)}@supports (color:color-mix(in lab,red,red)){.roll-row.is-late{background:color-mix(in srgb,var(--warn-soft) 72%,var(--surface))}}.roll-row.is-excused{border-left-color:var(--purple);background:var(--purple-soft)}@supports (color:color-mix(in lab,red,red)){.roll-row.is-excused{background:color-mix(in srgb,var(--purple-soft) 72%,var(--surface))}}.roll-person{align-items:center;gap:10px;min-width:0;padding-left:14px;display:flex}.roll-person div{min-width:0}.roll-card strong,.roll-person strong{text-overflow:ellipsis;white-space:nowrap;font-size:13.5px;font-weight:700;display:block;overflow:hidden}.roll-card small,.roll-code,.roll-person small{color:var(--muted);font-size:12px;font-weight:600}.roll-code{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.roll-sort{color:inherit;font:inherit;letter-spacing:inherit;text-transform:inherit;background:0 0;border:0;align-items:center;gap:4px;padding:0;display:inline-flex}.roll-sort.is-active{color:#2f6bff}.roll-seg{border:1px solid var(--line);background:var(--surface);border-radius:10px;max-width:100%;padding:2px;display:inline-flex}.roll-seg button{color:var(--muted);white-space:nowrap;background:0 0;border:0;border-radius:8px;padding:5px 8px;font-size:12px;font-weight:700}.roll-seg button.is-present{background:var(--good-soft);color:var(--good)}.roll-seg button.is-absent{background:var(--danger-soft);color:var(--danger)}.roll-seg button.is-late{background:var(--warn-soft);color:var(--warn)}.roll-seg button.is-excused{background:var(--purple-soft);color:var(--purple)}.roll-note{width:34px;height:34px;color:var(--muted);background:0 0;border:0;border-radius:10px;place-items:center;display:grid;position:relative}.roll-note:hover{background:var(--surface-2);color:var(--ink)}.roll-note.has-note{color:#2f6bff}.roll-note.has-note:after{content:"";background:#2f6bff;border-radius:50%;width:6px;height:6px;position:absolute;top:6px;right:6px}.roll-more{position:relative}.roll-menu{z-index:6;border:1.5px solid var(--line);background:var(--surface);min-width:168px;box-shadow:var(--shadow-lg);border-radius:12px;padding:4px;position:absolute;top:calc(100% + 4px);right:0}.roll-menu a,.roll-menu button{width:100%;color:var(--ink);text-align:left;background:0 0;border:0;border-radius:8px;align-items:center;padding:8px 10px;font-size:13px;font-weight:650;display:flex}.roll-menu a:hover,.roll-menu button.is-selected,.roll-menu button:hover{background:var(--surface-2)}.roll-note:focus-visible,.roll-seg button:focus-visible,.roll-shift:focus-visible,.roll-sort:focus-visible,.roll-view button:focus-visible{outline-offset:2px;outline:2px solid #2f6bff}.roll-cards{grid-template-columns:1fr 1fr;gap:12px;margin-top:12px;display:grid}.roll-card{border:1.5px solid var(--line);background:var(--surface);box-shadow:var(--shadow);border-radius:18px;align-content:start;gap:14px;padding:16px;transition:box-shadow .15s,transform .15s;display:grid;position:relative}.roll-card:hover{box-shadow:var(--shadow-lg);transform:translateY(-1px)}.roll-card.is-present{background:var(--good-soft)}@supports (color:color-mix(in lab,red,red)){.roll-card.is-present{background:color-mix(in srgb,var(--good-soft) 65%,var(--surface))}}.roll-card.is-absent{background:var(--danger-soft)}@supports (color:color-mix(in lab,red,red)){.roll-card.is-absent{background:color-mix(in srgb,var(--danger-soft) 65%,var(--surface))}}.roll-card.is-late{background:var(--warn-soft)}@supports (color:color-mix(in lab,red,red)){.roll-card.is-late{background:color-mix(in srgb,var(--warn-soft) 65%,var(--surface))}}.roll-card.is-excused{background:var(--purple-soft)}@supports (color:color-mix(in lab,red,red)){.roll-card.is-excused{background:color-mix(in srgb,var(--purple-soft) 65%,var(--surface))}}.roll-card-person{align-items:center;gap:12px;min-width:0;padding-right:36px;display:flex}.roll-card .avatar{box-shadow:0 0 0 2px var(--surface),0 0 0 4px var(--line)}.roll-card.is-present .avatar{box-shadow:0 0 0 2px var(--surface),0 0 0 4px var(--good)}.roll-card.is-absent .avatar{box-shadow:0 0 0 2px var(--surface),0 0 0 4px var(--danger)}.roll-card.is-late .avatar{box-shadow:0 0 0 2px var(--surface),0 0 0 4px var(--warn)}.roll-card.is-excused .avatar{box-shadow:0 0 0 2px var(--surface),0 0 0 4px var(--purple)}.roll-card .roll-seg{display:flex}.roll-card .roll-seg button{flex:1}.roll-card-note{position:absolute;top:10px;right:10px}.roll-empty,.roll-none{text-align:center;justify-items:center;gap:8px;padding:48px 16px;display:grid}.roll-empty p,.roll-none{color:var(--ink);margin:0;font-size:14px;font-weight:700}.roll-none{color:var(--muted);padding:28px 16px;font-size:13.5px}.roll-empty-icon{background:var(--surface-2);width:52px;height:52px;color:var(--muted);border-radius:14px;place-items:center;display:grid}.roll-empty .btn{margin-top:6px}.roll-skel{background:var(--surface-2);border-radius:8px;height:12px;animation:1.2s ease-in-out infinite roll-pulse;display:block}.roll-skel-avatar{border-radius:10px;flex:none;width:36px;height:36px}.roll-skel-line{width:128px}.roll-skel-code{width:64px}.roll-skel-status{width:180px;height:28px}.roll-skel-icon{width:28px;height:28px}.roll-row:nth-child(2n) .roll-skel-line{width:96px}@keyframes roll-pulse{50%{opacity:.45}}.sr-only{clip:rect(0,0,0,0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.page-skel{gap:16px;display:grid}.page-skel-card{border:1px solid var(--line);background:var(--surface);border-radius:22px;gap:14px;padding:24px;display:grid}.page-skel-block,.page-skel-line,.page-skel-row,.page-skel-stat{background:var(--surface-2);border-radius:12px;animation:1.2s ease-in-out infinite roll-pulse;display:block}.page-skel-line{width:42%;height:14px}.page-skel-line.is-lg{border-radius:14px;width:56%;height:28px}.page-skel-line.is-md{width:72%;height:12px}.page-skel-stats{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;display:grid}.page-skel-stats.is-four{grid-template-columns:repeat(4,minmax(0,1fr))}.page-skel-stat{border-radius:18px;height:88px}.page-skel-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;display:grid}.page-skel-block{height:180px}.page-skel-block.is-short{height:120px}.page-skel-row{height:44px}@media (width<=800px){.page-skel-grid,.page-skel-stats,.page-skel-stats.is-four{grid-template-columns:1fr}}.roll-overlay{z-index:60;background:#0a122c47;justify-content:flex-end;display:flex;position:fixed;inset:0}.roll-drawer{background:var(--surface);flex-direction:column;width:min(440px,100%);height:100%;display:flex;box-shadow:-16px 0 48px #0a143c2e}.roll-drawer-head{border-bottom:1px solid var(--line);align-items:flex-start;gap:12px;padding:16px 18px;display:flex}.roll-drawer-head .icon-btn{flex:none}.roll-drawer-id{flex:1;min-width:0}.roll-drawer-id strong{text-overflow:ellipsis;white-space:nowrap;font-size:15px;font-weight:800;display:block;overflow:hidden}.roll-drawer-meta{flex-wrap:wrap;align-items:center;gap:8px;margin-top:4px;display:flex}.roll-drawer-date,.roll-drawer-id small{color:var(--muted);font-size:12px;font-weight:650}.roll-drawer-body{flex:1;padding:16px 18px 20px;overflow:auto}.roll-drawer-foot{border-top:1px solid var(--line);justify-content:space-between;gap:10px;padding:14px 18px;display:flex}.roll-phrases{flex-wrap:wrap;gap:6px;margin-bottom:12px;display:flex}.roll-phrases button{border:1px solid var(--line);background:var(--surface-2);color:var(--ink);border-radius:999px;padding:5px 10px;font-size:12px;font-weight:650}.roll-phrases button:hover{border-color:#c8d8ee}.rich-editor{resize:vertical;border:1.5px solid var(--line);background:var(--surface);border-radius:12px;flex-direction:column;display:flex;overflow:auto}.rich-editor:focus-within{border-color:#2f6bff;box-shadow:0 0 0 3px #2f6bff1f}.rich-editor.is-invalid:focus-within{border-color:var(--danger);box-shadow:0 0 0 3px #c2412d1f}.roll-editor-bar{border-bottom:1px solid var(--line);background:var(--surface-2);border-radius:11px 11px 0 0;flex-wrap:wrap;gap:2px;margin:0;padding:4px 6px;display:flex}.roll-editor-bar button{min-width:32px;height:32px;color:var(--ink);background:0 0;border:0;border-radius:8px;place-items:center;padding:0 6px;font-size:12px;font-weight:800;display:grid}.roll-editor-bar button.is-on,.roll-editor-bar button:hover{background:var(--surface)}.rich-editor-gap{background:var(--line);align-self:stretch;width:1px;margin:6px 4px}.roll-editor{box-sizing:border-box;background:0 0;border:0;border-radius:0;outline:none;flex:auto;width:100%;min-height:150px;padding:12px 14px;font-size:14px;line-height:1.5;position:relative;overflow:auto}.roll-editor.is-empty:before{content:attr(data-placeholder);color:var(--muted);pointer-events:none;position:absolute;top:12px;left:14px;right:14px}.roll-editor:focus{box-shadow:none;outline:none}.roll-editor a{color:#2f6bff;text-decoration:underline}.rich-note img,.roll-editor img{border-radius:8px;max-width:100%;height:auto}.rich-note h2,.roll-editor h2{margin:.4em 0;font-size:1.25em}.rich-note h3,.roll-editor h3{margin:.35em 0;font-size:1.1em}.rich-note blockquote,.roll-editor blockquote{border-left:3px solid var(--line);margin:.4em 0;padding-left:12px}.rich-editor-meta{border-top:1px solid var(--line);color:var(--muted);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:6px 12px;padding:8px 22px 10px 12px;font-size:12px;display:flex}.rich-editor-alert,.rich-editor-count,.rich-editor-limits{margin:0}.rich-editor-alert{font-weight:700}.rich-editor-alert.is-warn{color:var(--warn)}.rich-editor-alert.is-over{color:var(--danger)}.rich-editor-count{font-variant-numeric:tabular-nums;margin-left:auto;font-weight:750}.filter-select{position:relative}.filter-select-trigger{border:1.5px solid var(--line);background:var(--surface);width:100%;color:var(--ink);text-align:left;border-radius:11px;justify-content:space-between;align-items:center;gap:10px;padding:9px 13px;font-size:13.5px;font-weight:500;display:flex}.filter-select-trigger:focus{border-color:#2f6bff;outline:none;box-shadow:0 0 0 3px #2f6bff1f}.filter-select-trigger .is-placeholder,.filter-select.is-disabled .filter-select-trigger{color:var(--muted)}.filter-select.is-disabled .filter-select-trigger{cursor:not-allowed;background:var(--surface-2)}.filter-select-trigger svg{color:var(--muted);flex:none}.filter-select-panel{z-index:80;border:1.5px solid var(--line);background:var(--surface);box-shadow:var(--shadow-lg);border-radius:12px;padding:8px;position:fixed}.filter-select-list{max-height:220px;margin:8px 0 0;padding:0;list-style:none;overflow:auto}.filter-select-list button{width:100%;color:var(--ink);text-align:left;background:0 0;border:0;border-radius:8px;padding:8px 10px;font-size:13.5px;font-weight:650}.filter-select-list button.is-active,.filter-select-list button:hover{background:var(--surface-2)}.filter-select-list button.is-current{color:#2f6bff}.filter-select-empty{color:var(--muted);margin:8px 4px 2px;font-size:12.5px;font-weight:650}.roll-drop{border:1.5px dashed var(--line);background:var(--surface-2);text-align:center;color:var(--muted);border-radius:14px;margin-top:14px;padding:16px;font-size:13px}.roll-drop.is-over{background:var(--accent-soft);border-color:#2f6bff}.roll-drop p{margin:4px 0 0}.roll-drop ul{text-align:left;margin:10px 0 0;padding:0;list-style:none}.roll-drop li{color:var(--ink);justify-content:space-between;align-items:center;gap:8px;padding:4px 0;font-weight:650;display:flex}.roll-drop li button{color:var(--muted);background:0 0;border:0;font-size:16px}.roll-share{border:1px solid var(--line);border-radius:10px;margin-top:16px;padding:2px;display:flex}.roll-share button{color:var(--muted);background:0 0;border:0;border-radius:8px;flex:1;padding:8px 10px;font-size:12.5px;font-weight:700}.roll-share button.is-on{background:var(--accent-soft);color:#2f6bff}@media (width<=860px){.roll{margin-left:-16px;margin-right:-16px}.roll-scroll,.roll-toolbar,.roll-top{padding-left:16px;padding-right:16px}.roll-toolbar{margin-left:-16px;margin-right:-16px}.roll-cards{grid-template-columns:1fr}.roll-head{display:none}.roll-row{grid-template-columns:1fr auto auto;grid-template-areas:"person note more""status status status";gap:10px;min-height:0;padding:12px 8px 12px 0}.roll-person{grid-area:person}.roll-code,.roll-skel-code{display:none}.roll-status-cell{grid-area:status;padding-left:14px}.roll-status-cell .roll-seg{display:flex}.roll-status-cell .roll-seg button{flex:1}.roll-row>div:nth-child(4){grid-area:note}.roll-more{grid-area:more}.roll-date-main p{font-size:16px}}@media print{.roll-chips,.roll-overlay,.roll-toolbar,.sidebar,.topbar{display:none!important}.shell.collapsed .workspace,.workspace{margin-left:0!important}.roll,.roll-scroll{height:auto!important;overflow:visible!important}.canvas{padding:0!important}}.plan-intent{grid-template-columns:1fr 1fr;gap:16px;max-width:760px;display:grid}.plan-intent-card{text-align:left;min-height:188px;color:var(--ink);border:1.5px solid var(--line);background:var(--surface);border-radius:20px;padding:28px 24px;transition:border-color .15s,box-shadow .15s,transform .15s;box-shadow:0 1px 2px #1020480a}.plan-intent-card:hover{border-color:#2f6bff;transform:translateY(-1px);box-shadow:0 0 0 3px #2f6bff1f}.plan-intent-card strong{letter-spacing:-.03em;font-size:18px;font-weight:800;display:block}.plan-intent-card span{color:var(--muted);margin-top:8px;font-size:13.5px;font-weight:600;line-height:1.45;display:block}.plan-choice-grid{grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:10px;display:grid}.plan-choice-grid .choice-card{min-height:76px;padding:16px 14px}.plan-doc-wall{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:16px;display:grid}.plan-doc-card{border:1.5px solid var(--line);background:var(--surface);text-align:left;color:var(--ink);cursor:pointer;border-radius:16px;flex-direction:column;transition:border-color .15s,box-shadow .15s,transform .15s;display:flex;overflow:hidden;box-shadow:0 1px 2px #1020480a}.plan-doc-card:hover{border-color:#2f6bff;transform:translateY(-2px);box-shadow:0 8px 24px #1020481a}.plan-doc-thumb{background:#eef2f7;height:210px;position:relative;overflow:hidden}.plan-doc-thumb iframe{pointer-events:none;transform-origin:top;background:#fff;border:0;width:816px;height:1056px;margin-left:-408px;position:absolute;top:10px;left:50%;transform:scale(.24);box-shadow:0 8px 24px #0f172a1f}.plan-doc-thumb-overlay{opacity:0;color:#fff;background:#0f172a47;place-items:center;font-size:13px;font-weight:700;transition:opacity .15s;display:grid;position:absolute;inset:0}.plan-doc-card:hover .plan-doc-thumb-overlay{opacity:1}.plan-doc-body{padding:12px 14px 14px}.plan-doc-body strong{font-size:13.5px;font-weight:800;display:block}.plan-doc-body span{color:var(--muted);margin-top:4px;font-size:12px;font-weight:600;display:block}.plan-doc-price{margin-top:8px;font-size:14px;font-weight:800}.plan-viewer{z-index:80;background:var(--canvas);flex-direction:column;display:flex;position:fixed;inset:0}.plan-viewer-top{background:var(--surface);border-bottom:1px solid var(--line);flex:none;justify-content:space-between;align-items:center;gap:12px;min-height:56px;padding:0 18px;display:flex}.plan-viewer-frame{flex:1;min-height:0;padding:20px}.plan-viewer-frame iframe{background:#fff;border:0;border-radius:12px;width:100%;height:100%;box-shadow:0 8px 32px #1020481f}.plan-composer-meta{flex-wrap:wrap;gap:8px;margin:8px 0 18px;display:flex}@media (width<=720px){.plan-intent{grid-template-columns:1fr}}.gb-page{flex-direction:column;min-height:calc(100vh - 88px);margin:0 -8px;display:flex}.gb-head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-bottom:14px;padding:0 8px;display:flex}.gb-head h1{letter-spacing:-.03em;margin:0;font-size:22px;font-weight:800}.gb-head .lede{margin-top:2px}.gb-head-actions{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.gb-save{color:var(--muted);font-size:12px;font-weight:650}.gb-layout{flex:1;grid-template-columns:260px minmax(0,1fr) 300px;align-items:stretch;gap:12px;min-height:0;padding-bottom:72px;display:grid}.gb-col{border:1.5px solid var(--line);background:var(--surface);box-shadow:var(--shadow);border-radius:20px;flex-direction:column;min-height:0;display:flex;overflow:hidden}.gb-col-head{letter-spacing:.04em;text-transform:uppercase;color:var(--muted);justify-content:space-between;align-items:center;gap:8px;padding:14px 16px 10px;font-size:12px;font-weight:800;display:flex}.gb-col-body{flex:1;min-height:0;padding:0 12px 16px;overflow:auto}.gb-search{border:1.5px solid var(--line);background:var(--surface-2);border-radius:12px;align-items:center;gap:8px;margin:0 12px 10px;padding:8px 10px;display:flex}.gb-search input{width:100%;color:var(--ink);background:0 0;border:0;outline:none}.gb-chip-btn{text-align:left;border:1.5px solid var(--line);background:var(--surface);width:100%;color:var(--ink);border-radius:14px;align-items:center;gap:10px;margin-bottom:8px;padding:10px 12px;transition:border-color .15s,transform .12s,box-shadow .15s,background .15s;display:flex}.gb-chip-btn:hover{background:var(--surface-2);border-color:#c8d8ee}.gb-chip-btn.is-used{opacity:.72}.gb-chip-btn.is-dragging{opacity:.45}.gb-chip-icon{text-align:center;width:28px;font-size:18px}.gb-chip-copy{flex:1;min-width:0}.gb-chip-copy strong{font-size:13px;font-weight:750;display:block}.gb-chip-copy span{color:var(--muted);font-size:11.5px;display:block}.gb-add-mini{background:var(--accent-soft);color:#2f6bff;border:0;border-radius:9px;flex:none;width:28px;height:28px;font-size:18px;font-weight:700}.gb-section-label{letter-spacing:.06em;text-transform:uppercase;color:var(--muted);margin:14px 4px 8px;font-size:11px;font-weight:800}.gb-comp{--gb-accent:#2f6bff;--gb-soft:var(--accent-soft);border:1.5px solid var(--line);background:var(--surface);border-radius:18px;margin-bottom:12px;padding:14px 14px 10px;transition:border-color .15s,box-shadow .2s,transform .15s}.gb-comp.is-selected{border-color:var(--gb-accent);box-shadow:0 0 0 3px var(--gb-accent)}@supports (color:color-mix(in lab,red,red)){.gb-comp.is-selected{box-shadow:0 0 0 3px color-mix(in srgb,var(--gb-accent) 16%,transparent)}}.gb-comp.is-lit{border-color:var(--gb-accent)}.gb-comp.is-dim{opacity:.48}.gb-comp.is-lilac{--gb-accent:#7c3aed;--gb-soft:var(--purple-soft)}.gb-comp.is-green{--gb-accent:#128a5b;--gb-soft:var(--good-soft)}.gb-comp.is-blue{--gb-accent:#2f6bff;--gb-soft:var(--accent-soft)}.gb-comp.is-orange{--gb-accent:#e25e00;--gb-soft:var(--warn-soft)}.gb-comp-top{cursor:pointer;justify-content:space-between;align-items:flex-start;gap:10px;display:flex}.gb-comp-top h3{letter-spacing:-.02em;margin:0;font-size:15px;font-weight:800}.gb-comp-meta{color:var(--muted);font-size:12px;font-weight:750}.gb-comp-meta.is-good{color:var(--good)}.gb-comp-meta.is-warn{color:var(--warn)}.gb-comp-meta.is-over{color:var(--danger)}.gb-bar{background:var(--surface-2);border-radius:99px;height:8px;margin:10px 0 12px;overflow:hidden}.gb-bar>span{border-radius:inherit;background:var(--gb-accent);height:100%;transition:width .35s cubic-bezier(.4,0,.2,1);display:block}.gb-bar.is-good>span{background:var(--good)}.gb-bar.is-over>span{background:var(--danger)}.gb-row{cursor:pointer;border-radius:12px;align-items:center;gap:8px;padding:8px;transition:background .12s;display:flex}.gb-row.is-on,.gb-row:hover{background:var(--gb-soft)}.gb-row-name{flex:1;min-width:0;font-size:13px;font-weight:700}.gb-weight{border:1.5px solid var(--line);background:var(--surface);border-radius:10px;align-items:center;gap:4px;padding:2px 8px;display:flex}.gb-weight input{text-align:right;width:42px;color:var(--ink);background:0 0;border:0;outline:none;font-size:13px;font-weight:800}.gb-weight span{font-weight:700}.gb-drop,.gb-weight span{color:var(--muted);font-size:12px}.gb-drop{border:1.5px dashed var(--line);border-radius:12px;place-items:center;min-height:44px;margin-top:6px;font-weight:650;display:grid}.gb-drop.is-over{border-color:var(--gb-accent);background:var(--gb-soft);color:var(--gb-accent)}.gb-footer{z-index:8;border:1.5px solid var(--line);background:var(--surface);border-radius:18px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;margin-top:8px;display:flex;position:sticky;bottom:0}@supports (color:color-mix(in lab,red,red)){.gb-footer{background:color-mix(in srgb,var(--surface) 92%,transparent)}}.gb-footer{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);box-shadow:var(--shadow-lg);padding:10px 14px}.gb-pills{flex-wrap:wrap;gap:6px;display:flex}.gb-status{background:var(--surface-2);color:var(--muted);cursor:pointer;border:0;border-radius:999px;padding:5px 10px;font-size:11.5px;font-weight:750}.gb-status.is-good{background:var(--good-soft);color:var(--good)}.gb-status.is-warn{background:var(--warn-soft);color:var(--warn)}.gb-status.is-over{background:var(--danger-soft);color:var(--danger)}.gb-inspector h2{margin:0 0 4px;font-size:18px;font-weight:800}.gb-inspector p.hint{color:var(--muted);margin:0 0 14px;font-size:13px}.gb-field{margin-bottom:12px}.gb-field label{color:var(--muted);margin-bottom:5px;font-size:11.5px;font-weight:750;display:block}.gb-choice{gap:8px;display:grid}.gb-choice button{text-align:left;border:1.5px solid var(--line);background:var(--surface);color:var(--ink);border-radius:14px;padding:12px 14px}.gb-choice button strong{font-size:13.5px;display:block}.gb-choice button span{color:var(--muted);margin-top:2px;font-size:12px;display:block}.gb-choice button.is-on{background:var(--accent-soft);border-color:#2f6bff}.gb-overlay{z-index:40;background:#0c17366b;place-items:center;padding:20px;display:grid;position:fixed;inset:0}.gb-modal{background:var(--surface);width:min(560px,100%);max-height:min(88vh,720px);box-shadow:var(--shadow-lg);border-radius:22px;padding:22px;overflow:auto}.gb-modal h2{margin:0 0 6px;font-size:20px;font-weight:800}.gb-first{gap:14px;max-width:720px;margin:24px auto;display:grid}.gb-first-card{border:1.5px solid var(--line);background:var(--surface);box-shadow:var(--shadow);border-radius:20px;padding:22px}.gb-first-card h2{margin:0 0 8px;font-size:22px;font-weight:800}.gb-pack{border:1.5px solid var(--line);text-align:left;background:var(--surface-2);width:100%;color:var(--ink);border-radius:14px;margin-top:10px;padding:12px}.gb-pack strong{display:block}.gb-range{accent-color:#2f6bff;width:100%}.gb-locked{background:var(--warn-soft);color:var(--warn);border-radius:14px;align-items:center;gap:10px;margin-bottom:12px;padding:10px 14px;font-size:13px;font-weight:700;display:flex}.gb-preview-table{border-collapse:collapse;width:100%;font-size:13px}.gb-preview-table td,.gb-preview-table th{border-bottom:1px solid var(--line);text-align:left;padding:8px}.gb-preview-table td.num{text-align:right;font-variant-numeric:tabular-nums;font-weight:700}.gb-fab{z-index:20;color:#fff;background:#2f6bff;border:0;border-radius:16px;width:52px;height:52px;font-size:28px;bottom:18px;right:18px;box-shadow:0 10px 24px #2f6bff59}.gb-fab,.gb-sheet{display:none;position:fixed}.gb-sheet{z-index:30;background:#0c173666;inset:0}.gb-sheet-panel{background:var(--surface);max-height:86vh;box-shadow:var(--shadow-lg);border-radius:22px 22px 0 0;padding:8px 8px 20px;position:absolute;bottom:0;left:0;right:0;overflow:auto}.gb-empty{text-align:center;color:var(--muted);padding:28px 12px;font-size:13.5px}.gb-complete-pop{animation:.45s gb-pop}@keyframes gb-pop{0%{transform:scale(.98)}40%{transform:scale(1.015)}to{transform:scale(1)}}@media (width<=1100px){.gb-layout{grid-template-columns:220px minmax(0,1fr)}.gb-inspector-col{display:none}.gb-page.is-mobile-inspector .gb-sheet{display:block}}@media (width<=840px){.gb-layout{grid-template-columns:1fr}.gb-rail-col{display:none}.gb-fab{place-items:center;display:grid}.gb-page.is-mobile-rail .gb-sheet{display:block}.gb-footer{position:static}}.tt-wrap{border:1.5px solid var(--line);background:var(--surface);border-radius:18px;overflow:auto}.tt-grid{min-width:720px;display:grid}.tt-cell,.tt-corner,.tt-day,.tt-time{border-bottom:1px solid var(--line);border-right:1px solid var(--line);min-height:76px}.tt-corner,.tt-day,.tt-time{background:var(--surface-2)}.tt-day{text-transform:uppercase;letter-spacing:.04em;min-height:44px;padding:12px;font-size:12px;font-weight:800}.tt-time{color:var(--muted);padding:10px 8px;font-size:11.5px;font-weight:700}.tt-cell{flex-direction:column;gap:6px;padding:6px;display:flex}.tt-block,.tt-cell.is-drop{background:#e8f0ff}.tt-block{text-align:left;width:100%;color:var(--ink);cursor:pointer;border:0;border-radius:12px;flex-direction:column;gap:2px;padding:8px 10px;display:flex}.tt-block strong{font-size:12.5px;font-weight:800}.tt-block span{color:var(--muted);font-size:11.5px}.tt-room{font-size:11px!important}.tt-block.is-review{background:#fff3e6}.tt-block.is-missing{background:#fde8e8}.tt-flag{color:#c2410c;font-size:10.5px;font-style:normal;font-weight:800}.tt-empty{text-align:center;color:var(--muted);padding:28px}.tt-meta{align-items:center;gap:10px;margin-bottom:14px}.tt-days,.tt-meta{flex-wrap:wrap;display:flex}.tt-days{gap:8px}.tt-day-chip{align-items:center;gap:6px;font-size:12.5px;font-weight:700;display:flex}.tt-summary{margin:12px 0 16px}.tt-toggle{gap:8px;display:flex}.tt-steps{gap:8px;margin-top:12px;padding:0;list-style:none;display:grid}.tt-steps li{color:var(--muted);font-size:13.5px}.tt-steps li.is-on{color:var(--ink);font-weight:700}.tt-steps li.is-done{color:#17a36a}.tt-actions{flex-wrap:wrap;gap:6px;margin-top:6px;display:flex}.sheet tr.is-on td{background:#e8f0ff}.agenda-dot{border-radius:50%;flex:none;width:10px;height:10px;display:inline-block}.agenda-flags{flex-wrap:wrap;gap:6px;margin-top:6px;display:flex}.agenda-week{grid-template-columns:repeat(5,minmax(0,1fr));gap:12px;display:grid}.agenda-week-head{cursor:pointer;text-align:left;background:0 0;border:0;justify-content:space-between;align-items:baseline;width:100%;padding:0 0 10px;display:flex}.agenda-week-head.is-today strong{color:#2f6bff}.agenda-month{grid-template-columns:repeat(7,minmax(0,1fr));gap:6px;display:grid}.agenda-month-label{color:var(--muted);text-transform:uppercase;padding:4px 6px;font-size:11.5px;font-weight:800}.agenda-cell{border:1.5px solid var(--line);background:var(--surface);text-align:left;cursor:pointer;border-radius:12px;flex-direction:column;gap:4px;min-height:96px;padding:8px;display:flex}.agenda-cell strong{font-size:12.5px}.agenda-cell.is-today{background:#e8f0ff;border-color:#2f6bff}.agenda-cell.is-on{box-shadow:0 0 0 2px #2f6bff40}.agenda-cell.is-mute{opacity:.42}.agenda-mini{width:100%;color:var(--ink);text-align:left;cursor:pointer;white-space:nowrap;text-overflow:ellipsis;background:0 0;border:0;align-items:center;gap:6px;padding:0;font-size:11.5px;font-weight:700;display:flex;overflow:hidden}.agenda-type-list{gap:8px;display:grid}.agenda-type-btn{border:1.5px solid var(--line);background:var(--surface);cursor:pointer;border-radius:12px;align-items:center;gap:10px;width:100%;padding:10px 12px;font-weight:700;display:flex}.agenda-type-btn.is-on{background:#e8f0ff;border-color:#2f6bff}.agenda-tabs{border:1.5px solid var(--line);background:var(--surface-2);border-radius:999px;gap:2px;padding:3px;display:inline-flex}.agenda-tab{color:var(--muted);cursor:pointer;background:0 0;border:0;border-radius:999px;padding:7px 16px;font-size:13px;font-weight:700}.agenda-tab.is-on{background:var(--surface);color:var(--ink);box-shadow:0 1px 4px #0f172a14}.agenda-overlay{flex-direction:column;padding:0;display:flex;overflow:hidden}.agenda-overlay .builder-top{justify-content:flex-start;gap:14px}.agenda-overlay .builder-top strong{font-size:15px}.agenda-overlay-body{flex:1;min-height:0;padding:0 20px 24px;overflow:auto}.roll.is-overlay{min-height:calc(100dvh - 72px)}.roll.is-overlay .roll-top{padding-top:8px}@media (width<=900px){.agenda-week{grid-template-columns:1fr}.agenda-month{grid-template-columns:repeat(7,minmax(36px,1fr))}.agenda-cell{min-height:64px;padding:6px}}.onboard{text-align:center;flex-direction:column;align-items:center;gap:10px;padding:28px 8px 8px;display:flex}.onboard h2{letter-spacing:-.03em;margin:0;font-size:22px}.onboard>p{max-width:460px;color:var(--muted);font-size:14px}.onboard-grid{grid-template-columns:1fr 1fr;gap:14px;width:100%;max-width:720px;margin-top:8px;display:grid}.onboard-card{text-align:left;border:1.5px solid var(--line);background:var(--surface);color:inherit;cursor:pointer;border-radius:18px;flex-direction:column;gap:6px;padding:20px 22px;text-decoration:none;display:flex}.onboard-card:hover{border-color:#2f6bff;box-shadow:0 10px 28px #2f6bff14}.onboard-card:disabled{opacity:.65;cursor:wait}.onboard-kicker{letter-spacing:.04em;text-transform:uppercase;color:#2f6bff;font-size:11px;font-weight:800}.onboard-card strong{font-size:16px}.onboard-card p{color:var(--muted);margin:0;font-size:13px}.import-drop{border:2px dashed var(--line);background:var(--surface);text-align:center;cursor:pointer;border-radius:20px;place-items:center;gap:8px;padding:40px 24px;display:grid;position:relative}.import-drop.is-over{background:#e8f0ff;border-color:#2f6bff}.import-drop-icon{font-size:34px}.import-drop strong{font-size:16px}.import-drop p{max-width:420px;color:var(--muted);font-size:13.5px}.import-file{opacity:0;cursor:pointer;position:absolute;inset:0}.import-formats{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-top:16px;display:grid}.import-format{border:1.5px solid var(--line);background:var(--surface);border-radius:16px;padding:16px 18px}.import-format strong{margin-bottom:6px;display:block}.import-format p{color:var(--muted);margin:0;font-size:13px}@media (width<=700px){.import-formats,.onboard-grid{grid-template-columns:1fr}}@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-space-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-gradient-position{syntax:"*";inherits:false}@property --tw-gradient-from{syntax:"<color>";inherits:false;initial-value:#0000}@property --tw-gradient-via{syntax:"<color>";inherits:false;initial-value:#0000}@property --tw-gradient-to{syntax:"<color>";inherits:false;initial-value:#0000}@property --tw-gradient-stops{syntax:"*";inherits:false}@property --tw-gradient-via-stops{syntax:"*";inherits:false}@property --tw-gradient-from-position{syntax:"<length-percentage>";inherits:false;initial-value:0%}@property --tw-gradient-via-position{syntax:"<length-percentage>";inherits:false;initial-value:50%}@property --tw-gradient-to-position{syntax:"<length-percentage>";inherits:false;initial-value:100%}@property --tw-leading{syntax:"*";inherits:false}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-tracking{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-outline-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}@property --tw-backdrop-blur{syntax:"*";inherits:false}@property --tw-backdrop-brightness{syntax:"*";inherits:false}@property --tw-backdrop-contrast{syntax:"*";inherits:false}@property --tw-backdrop-grayscale{syntax:"*";inherits:false}@property --tw-backdrop-hue-rotate{syntax:"*";inherits:false}@property --tw-backdrop-invert{syntax:"*";inherits:false}@property --tw-backdrop-opacity{syntax:"*";inherits:false}@property --tw-backdrop-saturate{syntax:"*";inherits:false}@property --tw-backdrop-sepia{syntax:"*";inherits:false}.g-shell{--g-bg:#eef3fb;--g-panel:#fff;--g-soft:#f5f8fd;--g-ink:#14213d;--g-mute:#66758c;--g-line:#e5edf6;--g-acc:#2b44c9;--g-accbg:#eef2ff;--g-ok:#128a5b;--g-okbg:#e6f6ee;--g-warn:#c97812;--g-warnbg:#fff4e4;--g-mint:#e6f6ef;--g-gold:#fff6d6;--g-gold-ink:#c48912;--g-violet:#6d5ef6;--g-violetbg:#f3eeff;--g-shadow:0 8px 24px #14285a0a;--ink:var(--g-ink);--muted:var(--g-mute);--line:var(--g-line);--surface:var(--g-panel);--surface-2:var(--g-soft);--canvas:var(--g-bg);background:var(--g-bg);min-height:100vh;color:var(--g-ink);font-family:Instrument Sans,Plus Jakarta Sans,system-ui,sans-serif}html.dark .g-shell{--g-bg:#0b1020;--g-panel:#151c33;--g-soft:#1c2542;--g-ink:#f4f7ff;--g-mute:#a9b4cc;--g-line:#ffffff14;--g-acc:#8ea0ff;--g-accbg:#242a52;--g-ok:#6fd3a0;--g-okbg:#17332a;--g-warn:#f0bc66;--g-warnbg:#3a2d14;--g-mint:#17332a;--g-gold:#3a2d14;--g-gold-ink:#f0bc66;--g-violet:#b8a6ff;--g-violetbg:#7c3aed2e}.g-shell .btn-primary{background:var(--g-acc);box-shadow:none;border-radius:10px;font-weight:600}.g-side{z-index:30;background:var(--g-panel);border-right:1px solid var(--g-line);flex-direction:column;gap:24px;width:256px;padding:24px 16px;display:flex;position:fixed;top:0;bottom:0;left:0;overflow:auto}.g-back{width:fit-content;color:var(--g-mute);background:0 0;border:0;border-radius:8px;align-items:center;gap:8px;padding:6px 2px;font-size:13px;font-weight:500;display:flex}.g-back:hover{color:var(--g-ink)}.g-brand{flex-direction:column;gap:14px;padding:4px 12px;display:flex}.g-brand-mark{background:#2b44c9;border-radius:12px;place-items:center;width:40px;height:40px;display:grid}.g-brand-copy strong{font-size:20px;font-weight:600;line-height:1.5;display:block}.g-brand-copy p{color:var(--g-mute);margin:4px 0 0;font-size:12px;line-height:1.5}.g-side-rule{display:none}.g-nav{flex-direction:column;gap:8px;display:flex}.g-nav-link{height:48px;color:var(--g-ink);border-radius:12px;align-items:center;gap:10px;padding:0 12px;font-size:14px;font-weight:500;display:flex}.g-nav-link:hover{background:var(--g-soft)}.g-nav-link.is-active{color:#fff;background:#2b44c9;font-weight:600}.g-nav-link.is-active img:not([src*=side-3]){filter:brightness(0)invert()}.g-work{min-width:0;min-height:100vh;margin-left:256px}.g-top{z-index:20;background:var(--g-bg);border-bottom:0;justify-content:space-between;align-items:center;gap:16px;height:72px;padding:0 32px;display:flex;position:sticky;top:0}.g-menu-btn{border:1px solid var(--g-line);background:var(--g-soft);width:36px;height:36px;color:var(--g-ink);border-radius:10px;place-items:center;display:none}.g-crumb{min-width:0;color:var(--g-mute);align-items:center;gap:12px;font-size:14px;display:flex}.g-crumb strong{color:var(--g-ink);font-weight:600}.g-user-wrap{position:relative}.g-user{color:inherit;text-align:left;background:0 0;border:0;border-radius:14px;align-items:center;gap:12px;padding:4px 2px;display:flex}.g-user-avatar{color:#fff;background:#2b44c9;border-radius:18px;flex:none;place-items:center;width:36px;height:36px;font-size:14px;font-weight:600;display:grid}.g-user-copy{flex-direction:column;gap:2px;display:flex}.g-user-copy strong{font-size:14px;font-weight:600}.g-user-copy small{color:var(--g-mute);font-size:12px}.g-user-menu{z-index:30;border:1px solid var(--g-line);background:var(--g-panel);border-radius:12px;min-width:180px;position:absolute;top:calc(100% + 8px);right:0;overflow:hidden;box-shadow:0 12px 40px #1e1c1929}.g-user-menu a,.g-user-menu button{width:100%;color:var(--g-ink);font:inherit;text-align:left;background:0 0;border:0;padding:10px 14px;font-size:13px;font-weight:500;display:block}.g-user-menu a:hover,.g-user-menu button:hover{background:var(--g-soft)}.g-user-menu .is-danger{color:var(--danger)}.g-user-rule{background:var(--g-line);height:1px}.g-main{padding:8px 32px 56px}.g-home,.g-main.is-home{flex-direction:column;display:flex}.g-home{gap:24px;min-width:0}.g-home>.g-split,.g-home>section{scroll-margin-top:88px}.g-card{border:1px solid var(--g-line);background:var(--g-panel);box-shadow:var(--g-shadow);border-radius:24px;flex-direction:column;gap:20px;padding:28px;display:flex}.g-card.is-tight{gap:12px;padding:24px}.g-card.is-flush{box-shadow:none;border:0}.g-pills{flex-wrap:wrap;gap:8px;display:flex}.g-pill-acc,.g-pill-ok,.g-pill-soft,.g-pill-warn{border-radius:999px;align-items:center;padding:5px 10px;font-size:12px;font-weight:600;line-height:1.5;display:inline-flex}.g-pill-soft{background:var(--g-soft);color:var(--g-mute)}.g-pill-acc{background:var(--g-accbg);color:var(--g-acc);gap:6px}.g-hello{letter-spacing:-.02em;font-size:30px;font-weight:600;line-height:1.25}.g-lede{color:var(--g-mute);margin:0;font-size:14px;line-height:1.5}.g-welcome{flex-direction:column;gap:10px;display:flex}.g-stats{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;display:grid}.g-stat{border:1px solid var(--g-line);background:var(--g-panel);border-radius:18px;flex-direction:column;gap:6px;min-width:0;padding:16px 18px;display:flex}.g-stat>span{color:var(--g-mute);font-size:12px;font-weight:600}.g-stat-value{align-items:center;gap:10px;display:flex}.g-stat-icon{border-radius:18px;flex:none;place-items:center;width:36px;height:36px;display:grid}.g-stat-icon.is-ok{background:var(--g-okbg)}.g-stat-icon.is-star{background:#fff4d6}.g-stat-icon.is-warn{background:var(--g-warnbg)}.g-stat b{font-variant-numeric:tabular-nums;font-size:28px;font-weight:600;line-height:1.2}.g-stat small{font-size:12px;line-height:1.5}.g-stat small.is-ok{color:var(--g-ok)}.g-stat small.is-acc{color:var(--g-acc)}.g-stat small.is-warn{color:var(--g-warn)}.g-chips{flex-wrap:wrap;gap:12px;display:flex}.g-chip{background:var(--g-violetbg);color:var(--g-violet);border:0;border-radius:999px;align-items:center;gap:8px;padding:8px 12px;font-size:13px;font-weight:600;display:inline-flex}.g-card-head{justify-content:space-between;align-items:center;gap:16px;display:flex}.g-card-head h2,.g-split-card h2{margin:0;font-size:18px;font-weight:600;line-height:1.5}.g-title-block h2{margin:0;font-size:20px;font-weight:600;line-height:1.5}.g-title-with-icon{align-items:center;gap:8px;display:flex}.g-chart-note,.g-title-block p{color:var(--g-mute);margin:4px 0 0;font-size:14px}.g-alert{background:var(--g-soft);width:100%;color:inherit;text-align:left;border:0;border-radius:16px;align-items:center;gap:12px;padding:14px 16px;display:flex}.g-alert.is-info{background:var(--g-accbg)}.g-alert-icon{background:var(--g-warnbg);border-radius:18px;flex:none;place-items:center;width:36px;height:36px;display:grid}.g-alert-icon.is-acc{background:var(--g-accbg)}.g-alert p{flex:1;min-width:0;margin:0;font-size:13px;line-height:1.4}.g-alert-action{background:0 0;border:0;padding:0}.g-alert-action,.g-alert-when{color:var(--g-acc);flex:none;font-size:13px;font-weight:600}.g-alert-when{align-items:center;gap:6px;display:inline-flex}.g-block{flex-direction:column;gap:16px;min-width:0;display:flex}.g-section-head{gap:16px}.g-chart-grid{grid-template-columns:1fr 1fr;gap:20px;display:grid}.g-chart-box{border:1px solid var(--g-line);background:var(--g-panel);min-width:0;box-shadow:var(--g-shadow);border-radius:20px;flex-direction:column;gap:18px;padding:22px;display:flex}.g-chart-head{justify-content:space-between;align-items:center;gap:12px;display:flex}.g-avg-box>strong,.g-chart-box>strong,.g-chart-head strong{font-size:14px;font-weight:600}.g-vbars{border-bottom:1px solid var(--g-line);align-items:stretch;gap:12px}.g-chart-box .g-vbars,.g-vbars{height:144px}.g-chart-box .g-vbar{justify-content:flex-end;height:100%}.g-vbar{gap:8px;min-width:0}.g-vbar em{color:var(--g-mute)}.g-vbar i{background:#7c6cf6;border-radius:8px 8px 0 0;width:48px;max-width:100%;display:block}.g-vbar:first-child i{background:#f07167}.g-vbar:nth-child(2) i{background:#e9a23b}.g-vbar:nth-child(3) i{background:#d4a84a}.g-vbar:nth-child(4) i{background:#2bbbad}.g-vbar:nth-child(5) i{background:#7c6cf6}.g-vbar-labels{color:var(--g-mute);text-align:center;gap:12px;font-size:12px;display:flex}.g-vbar-labels span{flex:1;min-width:0}.g-avg-box{background:var(--g-mint);border:0;gap:16px}.g-avg-box,.g-avg-row{flex-direction:column;display:flex}.g-avg-row{gap:8px}.g-avg-sub,.g-avg-top{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.g-avg-top b,.g-avg-top span{font-size:13px}.g-avg-top b{font-variant-numeric:tabular-nums;font-weight:600}.g-avg-track{background:#14213d14;overflow:hidden}.g-avg-fill,.g-avg-track{border-radius:99px;height:8px}.g-avg-fill{background:#1fa97a}.g-avg-sub b,.g-avg-sub span{color:var(--g-mute);font-size:12px}.g-avg-sub b{font-variant-numeric:tabular-nums;font-weight:600}.g-btn-acc{color:#fff;background:#2b44c9;border:0;border-radius:12px;align-items:center;gap:8px;padding:8px 14px;font-size:13px;font-weight:600;display:inline-flex}.g-stars-board{background:var(--g-gold);border:0}.g-stars-actions{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:14px;display:flex}.g-stars-week{color:var(--g-gold-ink);white-space:nowrap;font-size:13px;font-weight:600}.g-stars-note{color:var(--g-mute);margin:0;font-size:12px;line-height:1.5}.g-stars{grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;display:grid}.g-star-card{background:var(--g-panel);border:0;border-radius:16px;flex-direction:column;gap:12px;min-width:0;padding:16px;display:flex}.g-star-person{align-items:center;gap:12px;display:flex}.g-avatar{background:var(--g-accbg);width:40px;height:40px;color:var(--g-acc);border-radius:20px;flex:none;place-items:center;font-size:13px;font-weight:600;display:grid}.g-avatar.is-violet{color:#fff;background:#7c6cf6}.g-avatar.is-gold{color:#fff;background:#e8b44a}.g-avatar.is-teal{color:#fff;background:#2bb3a3}.g-avatar.is-coral{color:#fff;background:#f07167}.g-avatar.is-blue{color:#fff;background:#2b44c9}.g-activity-copy strong,.g-class-copy strong,.g-star-person strong{font-size:14px;font-weight:600;display:block}.g-activity-copy small,.g-class-copy small,.g-class-eval small,.g-star-person small{color:var(--g-mute);font-size:12px}.g-star-row{justify-content:space-between;gap:8px}.g-star-dots,.g-star-row{align-items:center;display:flex}.g-star-dots{gap:4px}.g-star-count{color:var(--g-gold-ink);white-space:nowrap;flex:none;align-items:center;gap:6px;padding:0;font-size:12px;font-weight:600;display:inline-flex}.g-star-card p{color:var(--g-mute);margin:0;font-size:13px;line-height:1.5}.g-star-tags{flex-wrap:wrap;gap:8px;display:flex}.g-split{grid-template-columns:1fr 1fr;gap:24px;display:grid}.g-split-card{border:1px solid var(--g-line);background:var(--g-panel);min-width:0;box-shadow:var(--g-shadow);border-radius:24px;flex-direction:column;gap:16px;padding:24px;display:flex}.g-activity-row,.g-class-row{background:var(--g-soft);min-height:76px;color:inherit;border:0;border-radius:16px;align-items:center;gap:16px;padding:14px 16px;display:flex}.g-class-copy{flex:180px;min-width:0}.g-class-copy strong{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.g-class-eval{flex:0 140px;min-width:0}.g-class-eval p,.g-class-eval small{white-space:nowrap}.g-class-eval p{text-overflow:ellipsis;margin:2px 0 0;font-size:13px;overflow:hidden}.g-open{background:var(--g-panel);width:36px;height:36px;color:var(--g-acc);border:0;border-radius:18px;flex:none;place-items:center;display:grid}.g-activity-row:hover,.g-class-row:hover{background:#eaf0fa}.g-activity-row{gap:12px}.g-activity-copy{flex:1;min-width:0}.g-activity-meta{flex-direction:column;align-items:flex-end;gap:2px;display:flex}.g-activity-meta time{color:var(--g-mute);font-size:12px}.g-empty-soft{color:var(--g-mute);padding:20px 8px;font-size:13px}.g-btn-ghost{border:1px solid var(--g-line);background:var(--g-panel);color:var(--g-acc);border-radius:10px;align-items:center;gap:8px;padding:8px 12px;font-size:13px;font-weight:600;display:inline-flex}.g-btn-ghost:disabled{opacity:.45;cursor:not-allowed}.g-page-head{justify-content:space-between;align-items:flex-start;gap:16px;display:flex}.g-page-title{letter-spacing:-.02em;align-items:center;gap:10px;margin:0;font-size:28px;font-weight:600;line-height:1.25;display:flex}.g-book{gap:20px;min-width:0;padding:22px 22px 8px}.g-book .g-card-head{align-items:flex-start}.g-book .g-btn-ghost{color:var(--g-ink);font-weight:500}.g-book-actions{flex-wrap:wrap;flex:none;align-items:center;gap:8px;display:flex}.g-book-toolbar{flex-wrap:wrap;align-items:flex-end;gap:12px 16px;min-width:0;padding-bottom:8px;display:flex}.g-book-field{flex-direction:column;flex:none;gap:6px;min-width:0;display:flex}.g-book-field>span{color:var(--g-mute);font-size:12px;font-weight:500}.g-book-field .filter-select{width:156px}.g-book-field.is-period .filter-select{width:210px}.g-book-count{color:var(--g-mute);white-space:nowrap;margin:0 0 10px auto;padding-left:24px;font-size:13px}.g-book .g-empty{border:1px dashed var(--g-line);background:var(--g-soft);border-radius:16px;padding:40px 20px}.g-book .g-empty strong{font-size:16px;font-weight:600}.g-book .g-empty p{color:var(--g-mute);margin:6px 0 0}.g-book-table{background:var(--g-soft);border-radius:16px;margin:0 -8px;overflow-x:auto}.g-book-table table{border-collapse:separate;border-spacing:0;width:100%;min-width:560px}.g-book-table td,.g-book-table th{border-bottom:1px solid var(--g-line);background:var(--g-panel);vertical-align:middle;padding:13px 14px}.g-book-table thead th{z-index:2;background:var(--g-soft);color:var(--g-mute);text-align:left;padding-top:16px;padding-bottom:16px;font-size:12px;font-weight:600;position:sticky;top:0}.g-book-table tbody td{background:var(--g-panel)}.g-book-table tbody th,.g-book-table tfoot th,.g-book-table thead th:first-child{text-align:left}.g-book-student{flex-direction:column;align-items:flex-start;gap:5px;display:flex}.g-book-student strong{white-space:nowrap;font-size:14px;font-weight:600}.g-book-flag{white-space:nowrap;align-items:center;gap:6px;font-size:12px;font-weight:600;line-height:1;display:inline-flex}.g-book-flag.is-sobresaliente{color:var(--g-violet)}.g-book-flag.is-bien{color:var(--g-ok)}.g-book-flag.is-progreso{color:#1fa97a}.g-book-flag.is-apoyo{color:var(--g-warn)}.g-book-star-count{font-variant-numeric:tabular-nums;align-items:center;gap:3px;display:inline-flex}.g-book-table .num{text-align:right;font-variant-numeric:tabular-nums}.g-book-col{white-space:normal;flex-direction:column;align-items:flex-end;gap:2px;min-width:84px;max-width:108px;display:flex}.g-book-col strong{color:var(--g-ink);font-size:12px;font-weight:600;line-height:1.3}.g-book-col small{color:var(--g-mute);font-size:11px;font-weight:500}.g-book-table td:first-child,.g-book-table th:first-child{z-index:1;white-space:nowrap;width:1%;min-width:198px;position:sticky;left:0}.g-book-table thead th:first-child{z-index:3}.g-book-table td.num,.g-book-table th.num{min-width:92px}.g-book-table tbody td.g-book-period,.g-book-table tfoot td.g-book-period,.g-book-table thead th.g-book-period{background:#f3eeff;box-shadow:inset 1px 0 #e4dcff}.g-book-table tbody th{background:var(--g-panel)}.g-book-table .g-book-empty{color:var(--g-mute)}.g-band-pill{font-variant-numeric:tabular-nums;border-radius:999px;justify-content:center;min-width:52px;padding:5px 10px;font-size:13px;font-weight:600;display:inline-flex}.g-band-pill.is-sobresaliente{color:#6d5ef6;background:#e8e4ff}.g-band-pill.is-bien{color:#128a5b;background:#e6f6ee}.g-band-pill.is-progreso{color:#0f8f6a;background:#d8f4ec}.g-band-pill.is-apoyo{color:#c97812;background:#fff1dc}.g-band-pill.is-summary{color:#2b44c9;background:#e4dcff}.g-book-table tfoot td,.g-book-table tfoot th{background:#eef3fb;border-bottom:0;font-size:13px;font-weight:600}.g-book-table tfoot th{text-align:left}.g-book-table tbody tr:hover td,.g-book-table tbody tr:hover th{background:#f7f9fd}.g-book-table tbody tr:hover .g-book-period{background:#ece6ff}.g-book-table .g-score{width:56px;color:inherit;font:inherit;font-variant-numeric:tabular-nums;text-align:right;background:0 0;border:1px solid #0000;border-radius:8px;padding:4px 2px}.g-book-table .g-score::placeholder{color:var(--g-mute)}.g-book-table .g-score:focus,.g-book-table .g-score:hover{border-color:var(--g-line);background:var(--g-panel);outline:none}.g-book-table .g-score:focus{border-color:var(--g-acc);box-shadow:0 0 0 3px #2b44c91f}.g-book-legend-wrap{flex-direction:column;gap:8px;margin-top:-8px;display:flex}.g-book-legend{color:var(--g-mute);flex-wrap:wrap;align-items:center;gap:16px;font-size:13px;font-weight:600;display:flex}.g-legend-item{align-items:center;gap:8px;display:inline-flex}.g-legend-item:before{content:"";border-radius:99px;width:8px;height:8px}.g-legend-item.is-sobresaliente{color:var(--g-violet)}.g-legend-item.is-sobresaliente:before{background:var(--g-violet)}.g-legend-item.is-bien{color:var(--g-ok)}.g-legend-item.is-bien:before{background:var(--g-ok)}.g-legend-item.is-progreso{color:#1fa97a}.g-legend-item.is-progreso:before{background:#1fa97a}.g-legend-item.is-apoyo{color:var(--g-warn)}.g-legend-item.is-apoyo:before{background:var(--g-warn)}.g-legend-item.is-empty{color:var(--g-mute);font-weight:500}.g-legend-item.is-empty:before{display:none}.g-book-hint{color:var(--g-mute);margin:0;font-size:12px}.g-legend-item:has(img):before{display:none}.g-book-scroll{margin-left:auto;font-size:12px}.g-title-block.is-mark{align-items:flex-start;gap:14px;display:flex}.g-page-mark{background:#e4ebf8;border-radius:14px;flex:none;place-items:center;width:44px;height:44px;display:grid}.g-grow{flex:1;min-width:12px}.g-results-toolbar{gap:14px;padding:20px 22px 18px}.g-results-toolbar .g-book-toolbar{padding-bottom:0}.g-results-help{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px 16px;display:flex}.g-results-help p{color:var(--g-mute);margin:0;font-size:13px}.g-results-schema{color:var(--g-acc);align-items:center;gap:6px;font-size:13px;font-weight:600;display:inline-flex}.g-seg-acc{background:var(--g-soft);border:0;border-radius:12px;padding:4px}.g-seg-acc button{min-width:40px;color:var(--g-mute);padding:6px 12px;font-size:13px}.g-seg-acc button.is-on{background:var(--g-acc);color:#fff}.g-results-card{border-radius:20px;min-width:0;overflow:hidden}.g-results-table{background:var(--g-soft);overflow-x:hidden}.g-results-table table{table-layout:fixed;border-collapse:separate;border-spacing:0;width:100%;min-width:0}.g-results-table td,.g-results-table th{border-bottom:1px solid var(--g-line);background:var(--g-panel);vertical-align:middle;padding:13px 14px}.g-results-table thead th{z-index:2;background:var(--g-soft);color:var(--g-mute);text-align:left;padding-top:16px;padding-bottom:16px;font-size:12px;font-weight:600;position:sticky;top:0}.g-results-table .num{text-align:right;font-variant-numeric:tabular-nums}.g-results-table tbody td{color:var(--g-ink);font-size:14px;font-weight:500}.g-results-table tbody th,.g-results-table tfoot th,.g-results-table thead th:first-child{text-align:left}.g-results-table td:first-child,.g-results-table th:first-child{z-index:1;width:32%;min-width:0;position:sticky;left:0}.g-results-table thead th:first-child{z-index:3}.g-results-table tbody th{background:var(--g-panel)}.g-results-table td.num,.g-results-table th.num{width:auto;min-width:0}.g-comp-head{min-width:0;color:var(--g-ink);white-space:normal;flex-direction:column;align-items:flex-end;gap:4px;font-size:13px;font-weight:600;line-height:1.3}.g-comp-head small{color:var(--g-mute);align-items:center;gap:5px;font-size:11px;font-weight:600;display:inline-flex}.g-results-table thead th.is-c0{background:#e8eefc}.g-results-table thead th.is-c1{background:#e6f6ef}.g-results-table thead th.is-c2{background:#f3eeff}.g-results-table thead th.g-results-final{background:#e8eefc}.g-results-table tfoot td,.g-results-table tfoot th{background:#e8eef8;border-bottom:0;font-size:13px;font-weight:600}.g-results-table tfoot th{text-align:left}.g-results-table tbody tr:hover td,.g-results-table tbody tr:hover th{background:#f7f9fd}.g-results-stars{color:var(--g-mute);flex-wrap:wrap;align-items:center;gap:10px 14px;margin:0;font-size:13px;display:flex}.g-star-chip{color:var(--g-gold-ink);align-items:center;gap:6px;font-weight:600;display:inline-flex}.g-results-stars-meta{color:var(--g-mute);font-weight:500}.g-results-note{background:#e4ebf8;border-radius:16px;flex-direction:column;gap:4px;padding:16px 18px;display:flex}.g-results-note strong{align-items:center;gap:8px;font-size:14px;font-weight:600;display:inline-flex}.g-results-note p{color:var(--g-mute);margin:0 0 0 24px;font-size:13px;line-height:1.5}.g-shell .filter-select-trigger{border:1px solid var(--g-line);background:var(--g-panel);color:var(--g-ink);border-radius:10px;padding:8px 12px;font-size:13px;font-weight:500}.g-shell .filter-select-trigger:focus{border-color:var(--g-acc);box-shadow:0 0 0 3px #2b44c91f}.g-shell .filter-select.is-disabled .filter-select-trigger{background:var(--g-soft);color:var(--g-mute)}.g-shell .grades-page{max-width:none}.g-icon-btn{border:1px solid var(--g-line);background:var(--g-panel);width:40px;height:40px;color:var(--g-ink);border-radius:12px;place-items:center;padding:0;font-size:20px;line-height:1;display:grid}.g-icon-btn:hover{background:var(--g-soft)}.g-btn-ghost.is-danger,.g-row-link.is-danger{color:var(--danger)}.g-book-field.is-search{flex:1;min-width:220px}.g-book-field.is-search .field{width:100%}.g-book-table tbody tr.is-click{cursor:pointer}.g-book-table .g-book-student{flex-wrap:wrap}.g-book-table .g-book-student strong{white-space:normal}.g-book-table .g-lede{-webkit-line-clamp:2;-webkit-box-orient:vertical;margin:4px 0 0;display:-webkit-box;overflow:hidden}.g-row-actions{flex-wrap:wrap;justify-content:flex-end;gap:4px 10px;display:inline-flex}.g-row-link{color:var(--g-acc);font:inherit;background:0 0;border:0;padding:0;font-size:13px;font-weight:600}.g-row-link:disabled{opacity:.45;cursor:not-allowed}.g-drawer-overlay{z-index:70;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:#0a122c73;justify-content:flex-end;display:flex;position:fixed;inset:0}.g-drawer{background:var(--g-panel);flex-direction:column;width:min(440px,100%);height:100%;display:flex;box-shadow:-16px 0 48px #0a143c2e}.g-drawer-head{border-bottom:1px solid var(--g-line);justify-content:space-between;align-items:flex-start;gap:12px;padding:22px 22px 16px;display:flex}.g-drawer-head h2{margin:0;font-size:20px;font-weight:600}.g-drawer-head .g-lede{margin-top:6px}.g-drawer-body{flex:1;padding:20px 22px 28px;overflow:auto}.g-drawer-foot{border-top:1px solid var(--g-line);background:var(--g-panel);flex-wrap:wrap;justify-content:flex-end;gap:8px;padding:14px 22px 18px;display:flex}.g-help,.g-rubric-view{gap:18px;display:grid}.g-help section{gap:8px;display:grid}.g-help h3,.g-rubric-view h3{margin:0;font-size:14px;font-weight:700}.g-help li,.g-help p,.g-rubric-view p{color:var(--g-mute);margin:0;font-size:14px;line-height:1.55}.g-help ol{gap:8px;margin:0;padding-left:18px;display:grid}.g-help-note{background:var(--g-accbg);color:var(--g-acc);border-radius:14px;padding:12px 14px;font-size:13px;font-weight:600}.g-rubric-meta{flex-wrap:wrap;gap:8px;display:flex}.g-rubric-criteria{gap:8px;margin:0;padding:0;list-style:none;display:grid}.g-rubric-criteria li{border:1px solid var(--g-line);background:var(--g-soft);border-radius:12px;justify-content:space-between;align-items:center;gap:12px;padding:10px 12px;display:flex}.g-rubric-criteria li>div{gap:2px;min-width:0;display:grid}.g-rubric-criteria strong{font-size:13px;font-weight:650}.g-rubric-criteria span{color:var(--g-mute);font-variant-numeric:tabular-nums}.rubric-overlay{z-index:80;background:var(--g-bg);position:fixed;inset:0;overflow:auto}.rubric-overlay-bar{z-index:2;background:var(--g-bg);align-items:center;gap:16px;min-height:72px;padding:16px 32px;display:flex;position:sticky;top:0}.rubric-overlay-bar .g-page-title{font-size:22px}.rubric-overlay .rubric-composer{padding:8px 32px 48px}.rubric-overlay .field{width:100%}@media (width<=960px){.g-chart-grid,.g-split,.g-stars{grid-template-columns:1fr}}@media (width<=860px){.g-stats{grid-template-columns:1fr}.g-class-copy{width:auto}.g-class-row{flex-wrap:wrap}.g-page-head{flex-direction:column}.g-book-toolbar{flex-wrap:wrap}.g-book-field,.g-book-field .filter-select,.g-book-field.is-period .filter-select{width:100%}.g-book-count{margin:0}.g-book-actions{width:100%}.g-book-actions .g-btn-acc,.g-book-actions .g-btn-ghost{flex:1;justify-content:center}.g-book-scroll{margin-left:0}.g-grow{display:none}.g-seg-acc{width:100%}.g-seg-acc button{flex:1}.g-results-help{flex-direction:column;align-items:flex-start}.rubric-overlay-bar{flex-wrap:wrap;padding:16px}.rubric-overlay .rubric-composer{padding:8px 16px 40px}}@media (width<=900px){.g-side{transition:transform .18s;transform:translate(-102%)}.g-side.open{transform:none;box-shadow:8px 0 32px #1e1c192e}.g-work{margin-left:0}.g-menu-btn{display:grid}.g-main,.g-top{padding-left:16px;padding-right:16px}}.grades-page{max-width:none}.grades-toolbar{flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:16px;display:flex}.grades-toolbar .g-grow{flex:1;min-width:12px}.g-table-wrap{overflow-x:auto}.g-table{border-collapse:collapse;width:100%;min-width:560px}.g-table th{text-align:left;color:var(--muted);border-top:1px solid var(--line);white-space:nowrap;font-size:13px;font-weight:600}.g-table td,.g-table th{border-bottom:1px solid var(--line);padding:11px 12px 11px 0}.g-table .num{font-variant-numeric:tabular-nums}.g-table .num,.g-table th.num{text-align:right}.g-table .is-warn{color:var(--warn)}.g-table tbody tr.is-click:hover{background:var(--surface-2);cursor:pointer}.g-table tfoot td{color:var(--muted);border-bottom:0}.g-table input.g-score{text-align:right;width:64px;color:inherit;font:inherit;font-variant-numeric:tabular-nums;background:0 0;border:0;padding:4px 0}.g-table .comp-head{flex-direction:column;align-items:flex-end;gap:2px;display:flex}.g-table .comp-head small{color:var(--muted);font-size:11px;font-weight:700}.g-dot{align-items:center;gap:8px;display:inline-flex}.g-dot i{background:var(--muted);border-radius:99px;width:7px;height:7px}.g-dot.is-ok i{background:var(--good)}.g-dot.is-warn i{background:var(--warn)}.g-pill{border-radius:99px;align-items:center;padding:2px 8px;font-size:12px;font-weight:700;display:inline-flex}.g-pill-ok{background:var(--good-soft);color:var(--good)}.g-pill-warn{background:var(--warn-soft);color:var(--warn)}.g-tag{background:var(--accent-soft);color:#2f6bff;border-radius:99px;padding:2px 8px;font-size:12px;font-weight:600}.g-seg,.g-tag{display:inline-flex}.g-seg{border:1.5px solid var(--line);background:var(--surface);border-radius:11px;gap:2px;padding:2px}.g-seg button{color:var(--muted);font:inherit;background:0 0;border:0;border-radius:9px;padding:4px 14px;font-weight:600}.g-seg button.is-on{background:var(--surface-2);color:var(--ink)}.g-seg.g-seg-acc{background:var(--g-soft,#f5f8fd);border:0;border-radius:12px;padding:4px}.g-seg.g-seg-acc button{min-width:40px;color:var(--g-mute,var(--muted));padding:6px 12px;font-size:13px}.g-shell .g-seg.g-seg-acc{background:var(--g-soft,#f5f8fd);border:0;border-radius:12px;padding:4px}.g-shell .g-seg.g-seg-acc button.is-on{background:var(--g-acc,#2b44c9);color:#fff}.g-attention{border:1.5px solid var(--line);background:var(--surface);border-radius:16px;overflow:hidden}.g-attention .g-att-row,.g-attention a{border-top:1px solid var(--line);color:inherit;align-items:center;gap:10px;padding:12px 14px;display:flex}.g-attention .g-att-row:first-child,.g-attention a:first-child{border-top:0}.g-attention a:hover{background:var(--surface-2)}.g-attention .g-mark{background:var(--warn);border-radius:99px;flex:none;width:6px;height:6px}.g-attention .g-mark.is-acc{background:#2f6bff}.g-attention span{color:#2f6bff;white-space:nowrap;margin-left:auto;font-weight:700}.g-attention .is-mute{color:var(--muted)}.g-empty{border:1.5px dashed var(--line);text-align:center;background:var(--surface);border-radius:16px;padding:36px 20px}.g-empty strong{margin-bottom:6px;font-size:16px;display:block}.g-empty p{color:var(--muted);margin:0 0 16px}.g-charts{grid-template-columns:1fr 1fr;gap:32px;display:grid}.g-chart-sub{color:var(--muted);margin:4px 0 16px;font-size:13px}.g-vbars{border-bottom:1px solid var(--line);align-items:flex-end;gap:10px;height:140px;display:flex}.g-vbar{flex-direction:column;flex:1;justify-content:flex-end;align-items:center;height:100%;display:flex}.g-vbar em{font-variant-numeric:tabular-nums;margin-bottom:4px;font-size:12px;font-style:normal}.g-vbar span{background:#2f6bff;border-radius:4px 4px 0 0;width:100%;max-width:36px;min-height:4px;display:block}.g-vbar.is-low span{background:var(--warn)}.g-vbar small{color:var(--muted);margin-top:8px;font-size:12px}.g-hbar{grid-template-columns:130px 1fr 40px;align-items:center;gap:10px;margin-bottom:10px;display:grid}.g-hbar .track{background:var(--line);border-radius:4px;height:8px;overflow:hidden}.g-hbar .fill{background:#2f6bff;border-radius:4px;height:100%}.g-hbar b{text-align:right;font-variant-numeric:tabular-nums;font-weight:600}.g-activity,.g-class-row{border-top:1px solid var(--line);color:inherit;align-items:center;gap:12px;padding:12px 0;display:flex}.g-activity:last-child,.g-class-row:last-child{border-bottom:1px solid var(--line)}.g-activity:hover,.g-class-row:hover{background:var(--surface-2)}.g-class-row strong{flex:1;font-weight:600}.g-activity span,.g-class-row span{color:var(--muted)}.g-class-row .sub{width:130px}.g-class-row .count{text-align:right;width:110px}.g-class-row .last{text-align:right;width:150px}.g-section{margin-bottom:36px}.g-section-head{justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:12px;display:flex}.g-section-head h2{margin:0;font-size:16px;font-weight:800}.g-hint{color:var(--muted);margin-top:12px;font-size:13px}.g-hello{margin:0;font-size:18px;font-weight:800}.g-panel-foot{border-top:1px solid var(--line);background:var(--surface);justify-content:flex-end;gap:8px;padding:14px 24px 20px;display:flex;position:sticky;bottom:0}.g-field{gap:6px;margin-bottom:16px;display:grid}.g-field label{font-weight:650}.g-field .field{width:100%}.g-criteria,.g-criteria-row{gap:8px;display:grid}.g-criteria-row{grid-template-columns:1fr 72px auto;align-items:center}.g-comp-block{margin-bottom:22px}.g-comp-head{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:12px;margin-bottom:4px;padding-bottom:8px;display:flex}.g-comp-head strong{font-size:15px}.g-alloc{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:12px;padding:9px 0;display:flex}.g-alloc input{text-align:right;width:64px;font:inherit;font-variant-numeric:tabular-nums;color:inherit;background:0 0;border:0}.g-links{flex-wrap:wrap;gap:16px;margin-top:20px;display:flex}.g-links a,.g-links button{color:#2f6bff;font:inherit;background:0 0;border:0;padding:0;font-weight:700}.g-links .is-mute{color:var(--muted)}.rubric-composer{max-width:1280px;margin:0 auto}.rc-setup{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:12px;display:grid}.rc-levels{gap:8px;margin-bottom:16px;display:flex}.rc-levels button{border:1px solid var(--g-line);background:var(--g-panel);font:inherit;cursor:pointer;border-radius:999px;padding:8px 14px;font-weight:650}.rc-levels button.is-on{background:var(--g-ink);color:#fff}.rc-grid{grid-template-columns:1.1fr 1.2fr .9fr;gap:16px;display:grid}.rc-col{background:var(--g-panel);border:1px solid var(--g-line);border-radius:18px;min-height:420px;padding:16px}.rc-col h3{margin:0 0 10px;font-size:15px}.rc-tree{gap:6px;max-height:58vh;margin-top:12px;display:grid;overflow:auto}.rc-group{letter-spacing:.06em;text-transform:uppercase;color:var(--g-mute);margin:10px 0 2px;font-size:11px;font-weight:800}.rc-attr{text-align:left;border:1px solid var(--g-line);background:var(--g-soft);cursor:grab;font:inherit;border-radius:12px;gap:2px;padding:8px 10px;display:grid}.rc-attr span{color:var(--g-mute);font-size:12px}.rc-attr.is-on{outline:2px solid var(--g-acc);background:var(--g-accbg);cursor:default}.rc-drop-hint{border:1.5px dashed var(--g-line);text-align:center;border-radius:16px;margin:12px 0 0;padding:36px 16px}.rc-drop-list{gap:8px;margin:12px 0 0;padding:0;list-style:none;display:grid}.rc-drop-row{border:1px solid var(--g-line);background:var(--g-soft);cursor:grab;border-radius:14px;grid-template-columns:minmax(0,1.2fr) 88px minmax(0,1fr) auto;align-items:center;gap:8px;padding:10px;display:grid}.rc-drop-copy{gap:2px;min-width:0;display:grid}.rc-drop-copy strong{font-size:13px}.rc-drop-copy span{color:var(--g-mute);font-size:12px}.rc-comp-field,.rc-points-field{gap:4px;display:grid}.rc-comp-field span,.rc-points-field span{color:var(--g-mute);font-size:11px;font-weight:700}.rc-points{appearance:textfield}.rc-points::-webkit-inner-spin-button{appearance:none;margin:0}.rc-points::-webkit-outer-spin-button{appearance:none;margin:0}.rc-budget{gap:8px;margin:12px 0 0;padding:0;list-style:none;display:grid}.rc-budget li{background:var(--g-soft);border-radius:12px;gap:2px;padding:10px 12px;display:grid}.rc-budget li strong{font-size:13px}.rc-budget li span{font-size:13px;font-weight:650}.rc-budget li small{color:var(--g-mute);font-size:12px}.rc-budget .is-ok{background:var(--g-okbg)}.rc-budget .is-ok span{color:var(--g-ok)}.rc-budget .is-over,.rc-budget .is-short{background:var(--g-warnbg)}.rc-budget .is-over span,.rc-budget .is-short span{color:var(--g-warn)}.rc-criteria{gap:8px;margin:12px 0 0;padding:0;list-style:none;display:grid}.rc-criteria li{grid-template-columns:1fr 72px auto;align-items:center;gap:8px;display:grid}.rc-bar{background:var(--g-soft);border-radius:99px;height:8px;margin:8px 0;overflow:hidden}.rc-bar i{background:var(--g-acc);height:100%;display:block}.rc-weights strong.is-off{color:var(--g-warn)}.rc-weights strong.is-ok{color:var(--g-ok)}.rc-weight{justify-content:space-between;align-items:center;gap:8px;margin:8px 0;display:flex}.rc-weight input{width:72px}@media (width<=1100px){.rc-setup{grid-template-columns:1fr 1fr}.rc-drop-row{grid-template-columns:1fr 88px}.rc-comp-field{grid-column:1/-1}}@media (width<=980px){.rc-grid{grid-template-columns:1fr}}@media (width<=720px){.g-charts{grid-template-columns:1fr}.g-class-row{flex-wrap:wrap}.g-class-row .count,.g-class-row .last,.g-class-row .sub{width:auto}}.p-shell{--g-acc:#1d4ed8;--g-accbg:#eff6ff}.p-shell .g-brand-mark,.p-shell .g-btn-acc,.p-shell .g-nav-link.is-active,.p-shell .p-brand-mark{background:#1d4ed8}.p-shell .g-nav{flex:1}.p-side-cta{margin-top:auto;padding:0 4px 8px}.p-side-new{justify-content:center;width:100%;text-decoration:none}.p-plan{gap:18px;max-width:1100px;margin:0 auto;display:grid}.p-plan-bar{flex-direction:column;align-items:stretch;gap:14px;display:flex}.p-plan-identity{flex:1;min-width:0}.p-style-chip{color:#1d4ed8;letter-spacing:.06em;text-transform:uppercase;background:#eff6ff;border-radius:999px;align-items:center;gap:6px;padding:4px 10px;font-size:11px;font-weight:800;display:inline-flex}.p-plan-identity h1,.p-title-input{width:100%;color:var(--g-ink);letter-spacing:-.03em;background:0 0;border:0;margin:8px 0 0;padding:0;font-size:28px;font-weight:700;line-height:1.2;display:block}.p-title-input:focus{outline:none}.p-plan-meta{flex-wrap:wrap;gap:8px;margin-top:10px;display:flex}.p-plan-meta span{border:1px solid var(--g-line);background:var(--g-panel);color:var(--g-mute);border-radius:999px;align-items:center;padding:4px 10px;font-size:12px;font-weight:650;display:inline-flex}.p-plan-actions{flex-wrap:wrap;flex:none;justify-content:flex-end;align-items:center;gap:8px;display:flex}.p-mode-toggle{border:1px solid var(--g-line);background:var(--g-panel);border-radius:12px;padding:3px;display:inline-flex}.p-mode-toggle button{color:var(--g-mute);background:0 0;border:0;border-radius:9px;align-items:center;gap:6px;padding:7px 12px;font-size:13px;font-weight:700;display:inline-flex}.p-mode-toggle button.is-on{color:#fff;background:#1d4ed8}.p-status{min-width:150px}.p-more{position:relative}.p-more-menu{z-index:30;border:1px solid var(--g-line);background:var(--g-panel);border-radius:14px;min-width:180px;padding:6px;position:absolute;top:calc(100% + 6px);right:0;box-shadow:0 12px 32px #14285a1f}.p-more-menu a,.p-more-menu button{width:100%;color:var(--g-ink);text-align:left;background:0 0;border:0;border-radius:10px;padding:8px 10px;font-size:13px;font-weight:650;text-decoration:none;display:flex}.p-more-menu a:hover,.p-more-menu button:hover{background:var(--g-soft)}.p-flash{margin:0;font-size:13px;font-weight:650}.teacher-form-page{background:#fff;border-radius:24px;overflow:hidden;box-shadow:0 8px 24px #14285a0a}.teacher-form-masthead{color:#fff;background:linear-gradient(135deg,#1d4ed8,#2563eb 58%,#3b82f6);gap:16px;padding:22px 24px 18px;display:grid}.teacher-form-brand .teacher-kicker{letter-spacing:.08em;text-transform:uppercase;color:#dbeafe;background:#ffffff24;border-radius:999px;margin-bottom:8px;padding:4px 10px;font-size:11px;font-weight:800;display:inline-block}.teacher-form-brand h2{letter-spacing:-.03em;margin:0;font-size:24px;font-weight:800}.teacher-form-brand p{color:#ffffffd1;margin:6px 0 0;font-size:13.5px}.teacher-form-meta{grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin:0;display:grid}.teacher-form-meta div{background:#ffffff1f;border:1px solid #ffffff29;border-radius:14px;padding:10px 12px}.teacher-form-meta dt{letter-spacing:.06em;text-transform:uppercase;color:#bfdbfe;font-size:10.5px;font-weight:800}.teacher-form-meta dd{margin:4px 0 0;font-size:13.5px;font-weight:750}.teacher-form-body{background:#f8fafc;gap:14px;padding:18px 18px 24px;display:grid}.preview-activity,.preview-card{background:#fff;border:1.5px solid #e2e8f0;border-radius:18px;padding:18px;box-shadow:0 1px 2px #1020480a}.preview-activity-top strong,.preview-card-head h3,.preview-repeater-head h3{letter-spacing:-.02em;margin:0;font-size:16px;font-weight:800}.preview-activities,.preview-card-body,.preview-moments,.preview-phase,.preview-row{gap:12px;display:grid}.preview-row{align-items:start}.preview-activity-top,.preview-repeater-head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-bottom:4px;display:flex}.preview-activity-top>div:first-child{flex:1;gap:2px;min-width:0;display:grid}.preview-activity-top strong{display:block}.preview-activity-top span,.preview-repeater-head span{color:#64748b;font-size:12px;font-weight:700}.preview-activity-tools{flex-wrap:wrap;gap:6px;display:flex}.preview-ghost-btn{color:#1d4ed8;background:#eff6ff;border:1px solid #dbeafe;border-radius:999px;padding:6px 12px;font-size:12px;font-weight:750}.preview-phase{background:#f8fafc;border:1px solid #e2e8f0;border-left:4px solid #93c5fd;border-radius:16px;padding:14px}.preview-phase[data-phase=inicio]{background:#f0fdf4;border-color:#bbf7d0 #bbf7d0 #bbf7d0 #22c55e}.preview-phase[data-phase=cierre]{background:#fff7ed;border-color:#fed7aa #fed7aa #fed7aa #f97316}.preview-phase[data-phase=evaluacion]{background:#eef2ff;border-color:#c7d2fe #c7d2fe #c7d2fe #6366f1}.preview-moment strong,.preview-moments h4,.preview-phase h4{margin:0;font-size:13px;font-weight:800}.preview-field{gap:6px;min-width:0;display:grid}.preview-field>span{letter-spacing:.04em;text-transform:uppercase;color:#64748b;font-size:11px;font-weight:800}.preview-value{color:#0f172a;padding:8px 0 2px;font-size:15px;font-weight:750}.preview-control,.preview-field .field,.preview-rich{color:#0f172a;background:#fff;border:1.5px solid #e2e8f0;border-radius:11px;width:100%;padding:10px 12px;font-size:13.5px}.preview-rich{white-space:pre-wrap;background:#f8fafc;min-height:72px;line-height:1.5}.preview-rich :where(p,ul,ol){margin:0 0 8px}.preview-moment{background:#fff;border:1px solid #e2e8f0;gap:8px}.preview-add-row,.preview-moment{border-radius:14px;padding:12px;display:grid}.preview-add-row{background:#f8fbff;border:1px dashed #bfdbfe;grid-template-columns:1fr 1fr auto auto;align-items:end;gap:10px}.p-home-table{overflow-x:auto}.p-home-table table{min-width:720px}.p-home-table td p{margin:2px 0 0}html.dark .teacher-form-page{background:var(--g-panel)}html.dark .teacher-form-body{background:var(--g-soft)}html.dark .preview-activity,html.dark .preview-card,html.dark .preview-field .field,html.dark .preview-moment,html.dark .preview-rich{background:var(--g-panel);border-color:var(--g-line);color:var(--g-ink)}html.dark .preview-card-head h3,html.dark .preview-phase h4,html.dark .preview-value{color:var(--g-ink)}html.dark .preview-phase{background:var(--g-soft)}@media (width<=960px){.p-plan-actions{justify-content:flex-start}.teacher-form-meta{grid-template-columns:1fr 1fr}}@media (width<=720px){.preview-add-row,.teacher-form-meta{grid-template-columns:1fr}.preview-row{grid-template-columns:1fr!important}.p-plan-identity h1,.p-title-input{font-size:22px}}.hand-note{color:#3d5a99;letter-spacing:.01em;transform-origin:100% 100%;pointer-events:none;-webkit-user-select:none;user-select:none;align-items:flex-end;gap:6px;margin:0;font-family:Caveat,Segoe Script,cursive;font-size:22px;font-weight:600;line-height:1.15;display:flex;transform:rotate(-5deg)}.hand-note-text{text-align:right;text-underline-offset:6px;max-width:220px;-webkit-text-decoration:underline wavy;text-decoration:underline wavy;text-decoration-thickness:1.5px}.hand-note-heart{opacity:.85;flex:none;margin-bottom:2px}.hand-note.is-compact{font-size:18px;transform:rotate(-4deg)}.hand-note.is-compact .hand-note-text{max-width:180px}.topbar-hand{flex:none;margin-right:4px}html.dark .hand-note{color:#9db6e8}.plan-wizard{background:#f5f8fc}.plan-wizard-top{background:var(--surface);border-bottom:1px solid var(--line);flex:none;justify-content:space-between;align-items:flex-start;gap:18px;padding:18px 28px 12px;display:flex}.plan-wizard-brand{align-items:flex-start;gap:14px;min-width:0;display:flex}.plan-wizard-badge{color:#2f6bff;background:#e8f0ff;border-radius:50%;flex:none;place-items:center;width:42px;height:42px;display:grid}.plan-wizard-brand h1{letter-spacing:-.03em;margin:0;font-size:22px;font-weight:800}.plan-wizard-brand p{color:var(--muted);margin:3px 0 0;font-size:13.5px;font-weight:600}.plan-wizard-end{flex:none;align-items:flex-start;gap:18px;padding-top:4px;display:flex}.plan-wizard-close{width:36px;height:36px;color:var(--muted);background:0 0;border:0;border-radius:10px;place-items:center;display:grid}.plan-wizard-close:hover{background:var(--surface-2);color:var(--ink)}.plan-wizard-steps{background:var(--surface);border-bottom:1px solid var(--line);flex:none;grid-template-columns:repeat(5,minmax(0,1fr));gap:0;padding:0 28px;display:grid}.plan-wizard-step{min-height:64px;color:var(--muted);align-items:center;gap:10px;padding:10px 16px 10px 0;display:flex}.plan-wizard-num{z-index:1;border:2px solid var(--line);background:var(--surface);width:28px;height:28px;color:var(--muted);border-radius:50%;flex:none;place-items:center;font-size:12px;font-weight:800;display:grid;position:relative}.plan-wizard-step.is-active .plan-wizard-num{color:#fff;background:#2f6bff;border-color:#2f6bff}.plan-wizard-step.is-done .plan-wizard-num{color:#fff;background:#17a36a;border-color:#17a36a}.plan-wizard-copy{z-index:1;background:var(--surface);min-width:0;padding-right:10px;position:relative}.plan-wizard-copy strong{color:var(--ink);font-size:13px;font-weight:800;text-decoration:none;display:block}.plan-wizard-step.is-active .plan-wizard-copy strong{color:#2f6bff}.plan-wizard-copy small{color:var(--muted);margin-top:1px;font-size:11.5px;font-weight:600;display:block}.plan-wizard-body{flex:1;grid-template-columns:260px minmax(0,1fr);gap:22px;min-height:0;padding:22px 28px 20px;display:grid;overflow:auto}.plan-wizard-body.is-wide{grid-template-columns:minmax(0,1fr)}.plan-wizard-rail{align-content:start;gap:12px;display:grid}.plan-rail-card{border:1px solid var(--line);background:var(--surface);border-radius:18px;padding:16px;box-shadow:0 1px 2px #1020480a}.plan-rail-card h2,.plan-rail-help strong{margin:0;font-size:13.5px;font-weight:800}.plan-rail-card p,.plan-rail-help p{color:var(--muted);margin:4px 0 0;font-size:12.5px;font-weight:600;line-height:1.45}.plan-rail-kicker{color:#2f6bff;align-items:center;gap:8px;margin-bottom:8px;font-size:12px;font-weight:800;display:flex}.plan-rail-kicker span{background:#e8f0ff;border-radius:50%;place-items:center;width:28px;height:28px;display:grid}.plan-recent{gap:2px;margin-top:10px;display:grid}.plan-recent-item{width:100%;color:var(--ink);text-align:left;background:0 0;border:0;border-radius:12px;grid-template-columns:28px minmax(0,1fr);align-items:center;gap:10px;padding:8px 6px;display:grid}.plan-recent-item:hover{background:var(--surface-2)}.plan-recent-dot{border-radius:8px;place-items:center;width:28px;height:28px;font-size:12px;display:grid}.plan-recent-item strong{font-size:12.5px;font-weight:800;display:block}.plan-recent-item small{color:var(--muted);font-size:11.5px;font-weight:600;display:block}.plan-rail-help{background:linear-gradient(#f4f8ff,#eef4ff);border:1px solid #d9e7ff;border-radius:18px;padding:16px}.plan-rail-help a{color:#2f6bff;margin-top:10px;font-size:12.5px;font-weight:800;display:inline-flex}.plan-wizard-main{min-width:0}.plan-wizard-main h2{letter-spacing:-.04em;margin:4px 0 0;font-size:26px;font-weight:800}.plan-wizard-lede{color:var(--muted);margin:6px 0 18px;font-size:14px;font-weight:600}.plan-type-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;display:grid}.plan-type-card{text-align:left;min-height:230px;color:var(--ink);border:1.5px solid var(--line);background:var(--surface);border-radius:20px;flex-direction:column;padding:18px 16px 14px;transition:border-color .15s,box-shadow .15s,background .15s;display:flex;box-shadow:0 1px 2px #1020480a}.plan-type-card:hover{border-color:#c5d4ee}.plan-type-card.is-on{background:#f4f8ff;border-color:#2f6bff;box-shadow:0 0 0 3px #2f6bff1a}.plan-type-icon{border-radius:12px;place-items:center;width:42px;height:42px;margin-bottom:16px;display:grid}.plan-type-card strong{letter-spacing:-.02em;font-size:16px;font-weight:800;display:block}.plan-type-card p{color:var(--muted);margin:8px 0 0;font-size:13px;font-weight:600;line-height:1.45}.plan-type-foot{justify-content:space-between;align-items:center;gap:8px;margin-top:auto;padding-top:16px;display:flex}.plan-popular{color:#2f6bff;background:#e8f0ff;border-radius:999px;align-items:center;gap:4px;padding:3px 8px;font-size:11px;font-weight:800;display:inline-flex}.plan-radio{background:#fff;border:2px solid #c9d4e6;border-radius:50%;width:16px;height:16px}.plan-type-card.is-on .plan-radio{border-color:#2f6bff;box-shadow:inset 0 0 0 4px #2f6bff}.plan-type-note{color:#35558f;background:#eef4ff;border-radius:14px;align-items:flex-start;gap:10px;margin-top:16px;padding:12px 14px;font-size:13px;font-weight:650;line-height:1.45;display:flex}.plan-tone-blue{color:#2f6bff;background:#e8f0ff}.plan-tone-green{color:#128a5b;background:#e7f8ef}.plan-tone-purple{color:#7c3aed;background:#f3eeff}.plan-tone-orange{color:#e07012;background:#fff1e6}.plan-tone-teal{color:#0f8a86;background:#e6f7f6}.plan-tone-pink{color:#c24184;background:#fdeef6}.plan-tone-cyan{color:#0284c7;background:#e8f7ff}.plan-tone-amber{color:#b45309;background:#fff6e5}.plan-tone-indigo{color:#4338ca;background:#eef0ff}.plan-tone-slate{color:#475569;background:#eef2f7}.plan-toolbar{flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:14px;display:flex}.plan-search{flex:1;min-width:220px;position:relative}.plan-search svg{color:var(--muted);position:absolute;top:11px;left:12px}.plan-search .field{padding-left:36px}.plan-chip-row{flex-wrap:wrap;gap:8px;display:flex}.plan-chip{border:1.5px solid var(--line);background:var(--surface);color:var(--muted);border-radius:999px;padding:6px 12px;font-size:12.5px;font-weight:750}.plan-chip.is-on{color:#2f6bff;background:#e8f0ff;border-color:#2f6bff}.plan-room-grid,.plan-subject-grid{grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:12px;display:grid}.plan-room-card,.plan-subject-card{text-align:left;min-height:132px;color:var(--ink);border:1.5px solid var(--line);background:var(--surface);border-radius:18px;flex-direction:column;padding:16px;display:flex;box-shadow:0 1px 2px #1020480a}.plan-room-card:hover,.plan-subject-card:hover{border-color:#c5d4ee}.plan-room-card.is-on,.plan-subject-card.is-on{background:#f4f8ff;border-color:#2f6bff;box-shadow:0 0 0 3px #2f6bff1a}.plan-room-card strong,.plan-subject-card strong{letter-spacing:-.02em;font-size:15px;font-weight:800;display:block}.plan-room-card span,.plan-subject-card span{color:var(--muted);margin-top:4px;font-size:12.5px;font-weight:600;display:block}.plan-subject-icon{border-radius:14px;place-items:center;width:44px;height:44px;margin-bottom:12px;display:grid}.plan-details-grid{grid-template-columns:minmax(0,1.15fr) minmax(280px,.85fr);align-items:start;gap:18px;display:grid}.plan-details-card,.plan-ready-card{border:1.5px solid var(--line);background:var(--surface);border-radius:20px;padding:20px;box-shadow:0 1px 2px #1020480a}.plan-details-card h3,.plan-ready-card h3{margin:0 0 14px;font-size:16px;font-weight:800}.plan-ready-hero{color:#2f6bff;background:linear-gradient(#f7fbff,#eef5ff);border-radius:18px;place-items:center;min-height:180px;margin-bottom:8px;display:grid}.plan-ready-list{gap:8px;margin:14px 0 0;display:grid}.plan-ready-list div{justify-content:space-between;gap:12px;font-size:13px;display:flex}.plan-ready-list span{color:var(--muted);font-weight:650}.plan-ready-list strong{text-align:right;font-weight:800}.plan-ready-banner{color:#35558f;background:#eef4ff;border-radius:14px;margin-top:16px;padding:12px 14px;font-size:13px;font-weight:650}.plan-wizard-foot{background:var(--surface);border-top:1px solid var(--line);flex:none;align-items:center;gap:12px;padding:14px 28px}.plan-edit-head,.plan-wizard-foot{justify-content:space-between;display:flex}.plan-edit-head{flex-wrap:wrap;align-items:flex-start;gap:14px;margin-bottom:16px}.plan-edit-head h1{letter-spacing:-.03em;margin:2px 0 0;font-size:24px;font-weight:800}.plan-edit-meta{flex-wrap:wrap;gap:8px;margin-top:8px;display:flex}.plan-editor{grid-template-columns:220px minmax(0,1fr);align-items:start;gap:18px;display:grid}.plan-editor-nav{border:1.5px solid var(--line);background:var(--surface);border-radius:18px;gap:4px;padding:12px;display:grid;position:sticky;top:12px}.plan-editor-nav p{color:var(--muted);letter-spacing:.06em;text-transform:uppercase;margin:0 8px 8px;font-size:11px;font-weight:800}.plan-editor-nav button{width:100%;color:var(--ink);text-align:left;background:0 0;border:0;border-radius:12px;align-items:center;gap:8px;padding:9px 10px;font-size:13px;font-weight:750;display:flex}.plan-editor-nav button.is-on{color:#2f6bff;background:#e8f0ff}.plan-editor-main{gap:14px;min-width:0;display:grid}.plan-editor-section{border:1.5px solid var(--line);background:var(--surface);border-radius:18px;padding:18px;scroll-margin-top:16px;box-shadow:0 1px 2px #10204808}.plan-editor-section h2{margin:0 0 12px;font-size:16px;font-weight:800}.plan-choice-list{gap:8px;display:grid}.plan-choice-list label{border:1.5px solid var(--line);background:var(--surface-2);border-radius:12px;align-items:flex-start;gap:10px;padding:10px 12px;font-size:13px;font-weight:650;display:flex}.plan-market{width:min(1100px,100%);margin:0 auto}@media (width<=1080px){.plan-type-grid{grid-template-columns:1fr 1fr}.plan-details-grid,.plan-editor{grid-template-columns:1fr}.plan-wizard-steps{grid-template-columns:repeat(5,minmax(72px,1fr));overflow-x:auto}.plan-wizard-copy small{display:none}}@media (width<=860px){.plan-wizard-body{grid-template-columns:1fr;padding:16px}.plan-wizard-foot,.plan-wizard-steps,.plan-wizard-top{padding-left:16px;padding-right:16px}.topbar-hand{display:none}.plan-wizard-end .hand-note{font-size:16px}}@media (width<=640px){.plan-type-grid{grid-template-columns:1fr}}.onb-shell{color:#f4f7ff;background:radial-gradient(900px 480px at 10% -10%,#2f6bff47,#0000 55%),radial-gradient(720px 420px at 110% 8%,#ff7a1a2e,#0000 50%),linear-gradient(165deg,#07122e,#102048 48%,#0b1736);flex-direction:column;min-height:100vh;display:flex}.onb-top{justify-content:space-between;align-items:center;padding:22px 28px 0;display:flex}.onb-brand{color:#fff;letter-spacing:-.03em;align-items:center;gap:10px;font-weight:800;display:inline-flex}.onb-mark{background:linear-gradient(135deg,#2f6bff,#6d5efc);border-radius:11px;width:36px;height:36px;font-weight:900;box-shadow:0 8px 20px #2f6bff59}.onb-mark,.onb-stage{place-items:center;display:grid}.onb-stage{flex:1;padding:24px 20px 40px}.onb-panel{-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);background:#ffffff14;border:1px solid #ffffff1f;border-radius:28px;width:min(920px,100%);padding:36px 36px 28px;box-shadow:0 30px 80px #00000047}.onb-kicker{color:#ffb26a;letter-spacing:.12em;text-transform:uppercase;background:#ff7a1a24;border-radius:999px;align-items:center;gap:8px;padding:5px 11px;font-size:11.5px;font-weight:800;display:inline-flex}.onb-title{letter-spacing:-.045em;margin:14px 0 8px;font-size:clamp(28px,4vw,42px);font-weight:800;line-height:1.12}.onb-lede{color:#f4f7ffb8;max-width:540px;margin:0 0 28px;font-size:15.5px;line-height:1.55}.onb-dots{gap:8px;margin-bottom:24px;display:flex}.onb-dot{background:#ffffff38;border-radius:99px;width:8px;height:8px;transition:width .18s,background .18s}.onb-dot.is-done{background:#3ee0a0}.onb-dot.is-current{background:#ff7a1a;width:26px}.onb-cards{grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin:8px 0 28px;display:grid}.onb-choice{text-align:left;color:inherit;background:#ffffff0f;border:1px solid #ffffff1f;border-radius:20px;flex-direction:column;gap:8px;min-height:148px;padding:18px 18px 16px;transition:transform .16s,border-color .16s,background .16s;display:flex}.onb-choice:hover{background:#ffffff1a;border-color:#ff7a1a8c;transform:translateY(-2px)}.onb-choice-icon{background:linear-gradient(#ffffff29,#ffffff0a);border-radius:14px;place-items:center;width:44px;height:44px;display:grid}.onb-choice strong{font-size:16px}.onb-choice p{color:#f4f7ff9e;margin:0;font-size:13px}.onb-form{gap:16px;max-width:520px;display:grid}.onb-field label{color:#f4f7ffb3;margin-bottom:6px;font-size:12px;font-weight:750;display:block}.onb-field input,.onb-field select{color:#fff;background:#07122e73;border:1.5px solid #ffffff24;border-radius:14px;width:100%;padding:12px 14px}.onb-photo{align-items:center;gap:16px;display:flex}.onb-avatar{-o-object-fit:cover;object-fit:cover;background:linear-gradient(135deg,#2f6bff,#6d5efc);border-radius:22px;place-items:center;width:72px;height:72px;font-size:22px;font-weight:800;display:grid}.onb-list{gap:10px;display:grid}.onb-class{background:#ffffff12;border:1px solid #ffffff1a;border-radius:16px;justify-content:space-between;align-items:center;gap:12px;padding:14px 16px;display:flex}.onb-class b{font-size:15px;display:block}.onb-class span{color:#f4f7ff99;font-size:12.5px}.onb-foot{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-top:28px;display:flex}.onb-ghost{color:#f4f7ffb3;background:0 0;border:0;font-weight:700}.onb-error{color:#ffd2c8;background:#c2412d33;border-radius:12px;margin-top:12px;padding:10px 12px;font-size:13px}.onb-rec-grid{grid-template-columns:1.15fr .85fr;gap:14px;margin-top:22px;display:grid}.onb-rec{text-align:left;color:inherit;background:#ffffff14;border:1px solid #ffffff1f;border-radius:22px;padding:22px}.onb-rec.is-primary{background:linear-gradient(160deg,#2f6bff59,#0e1c4059);border-color:#2f6bff66}.onb-rec h3{margin:0 0 8px;font-size:18px}.onb-rec p{color:#f4f7ffb3;margin:0 0 16px;font-size:13.5px}.onb-dash{border:1.5px solid var(--line);background:linear-gradient(135deg,#2f6bff14,#ff7a1a14);border-radius:22px;margin-bottom:18px;padding:18px 20px}.onb-dash-head{justify-content:space-between;align-items:center;gap:12px;margin-bottom:10px;display:flex}.onb-bar{background:var(--line);border-radius:99px;height:8px;margin-bottom:12px;overflow:hidden}.onb-bar span{border-radius:inherit;background:linear-gradient(90deg,#2f6bff,#ff7a1a);height:100%;display:block}.onb-checks{flex-wrap:wrap;gap:8px;display:flex}.onb-check{background:var(--surface-2);color:var(--muted);border-radius:999px;padding:6px 10px;font-size:12.5px;font-weight:700}.onb-check.is-done{background:var(--good-soft);color:var(--good)}.onb-intro{z-index:70;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#07122e8c;place-items:center;padding:20px;display:grid;position:fixed;inset:0}.onb-intro-card{background:var(--surface);width:min(560px,100%);color:var(--ink);box-shadow:var(--shadow-lg);border-radius:24px;padding:28px}.onb-intro-card h2{letter-spacing:-.03em;margin:10px 0 8px;font-size:26px}.onb-intro-card p{color:var(--muted)}.onb-intro-actions{gap:10px;margin-top:20px;display:grid}.tour-root{z-index:80;pointer-events:none;position:fixed;inset:0}.tour-root *{pointer-events:auto}.tour-mask{background:#07122e94;position:absolute;inset:0}.tour-hole{border-radius:16px;outline:2px solid #ffffffb3;transition:top .18s,left .18s,width .18s,height .18s;position:absolute;box-shadow:0 0 0 9999px #07122e94,0 0 0 6px #ff7a1a73}.tour-card{background:var(--surface);width:min(340px,100vw - 24px);color:var(--ink);box-shadow:var(--shadow-lg);border-radius:20px;padding:18px 18px 14px;position:absolute}.tour-card h3{margin:0 0 6px;font-size:17px}.tour-card p{color:var(--muted);margin:0 0 14px;font-size:13.5px}.tour-nav{justify-content:space-between;align-items:center;gap:8px;display:flex}.tour-sheet{width:auto;position:absolute;bottom:12px;left:12px;right:12px}@media (width<=800px){.onb-cards,.onb-rec-grid{grid-template-columns:1fr}.onb-panel{padding:24px 18px 20px}.onb-top{padding:16px 16px 0}}@media (prefers-reduced-motion:reduce){.onb-choice,.onb-dot,.tour-hole{transition:none}}
