/*! 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}.fixed{position:fixed}.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}.container{width:100%}@media (width>=40rem){.container{max-width:40rem}}@media (width>=48rem){.container{max-width:48rem}}@media (width>=64rem){.container{max-width:64rem}}@media (width>=80rem){.container{max-width:80rem}}@media (width>=96rem){.container{max-width:96rem}}.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}.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}}.builder-dock-note{color:var(--muted);font-size:12.5px;font-weight:650}.drawer-overlay.is-fullscreen{z-index:70;background:var(--canvas);-webkit-backdrop-filter:none;backdrop-filter:none;justify-content:center}.drawer-overlay.is-fullscreen .drawer{width:100%;box-shadow:none;background:var(--canvas);flex-direction:column;display:flex}.drawer-overlay.is-fullscreen .drawer-body,.drawer-overlay.is-fullscreen .g-panel-foot,.drawer-overlay.is-fullscreen .modal-head{box-sizing:border-box;width:min(680px,100%);margin:0 auto}.drawer-overlay.is-fullscreen .modal-head{padding-top:32px}.drawer-overlay.is-fullscreen .drawer-body{flex:auto}.g-panel-loading{color:var(--muted);margin:0 0 12px;font-size:13px;font-weight:650}.drawer-overlay.is-fullscreen .g-panel-foot{box-shadow:none;background:0 0}@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}}.dp{width:100%;min-width:0}.dp,.dp-field{position:relative}.dp-field{align-items:center;display:flex}.dp-input{border:1.5px solid var(--line);background:var(--surface);width:100%;height:42px;color:var(--ink);font-variant-numeric:tabular-nums;text-align:left;border-radius:11px;outline:none;padding:0 40px 0 13px;font-size:13.5px;transition:border-color .15s,box-shadow .15s}.dp-input::-moz-placeholder{color:var(--muted)}.dp-input.is-empty,.dp-input::placeholder{color:var(--muted)}.dp-input:hover:not(:disabled){border-color:#b8c4d6}.dp-input:focus,.dp-input:focus-visible,.dp.is-open .dp-input{border-color:#2f6bff;box-shadow:0 0 0 3px #2f6bff1f}.dp.is-invalid .dp-input{border-color:#f87171}.dp-input:disabled{opacity:.6;cursor:not-allowed}.dp-icon{width:32px;height:32px;color:var(--muted);background:0 0;border:0;border-radius:8px;place-items:center;display:grid;position:absolute;right:5px}.dp-icon:hover:not(:disabled){background:var(--surface-2);color:var(--ink)}.dp.is-open .dp-icon{color:#2f6bff}.dp-backdrop{z-index:399;background:#0f172a73;position:fixed;inset:0}.dp-panel{z-index:400;border:1px solid var(--line);background:var(--surface);width:304px;color:var(--ink);border-radius:16px;padding:12px;font-size:13px;animation:.12s ease-out dp-in;position:fixed;box-shadow:0 18px 48px #0f172a2e,0 2px 6px #0f172a0f}html.dark .dp-panel{border-color:#ffffff1f;box-shadow:0 18px 48px #00000080}@keyframes dp-in{0%{opacity:0;transform:translateY(-4px)}}.dp-head{justify-content:space-between;align-items:center;gap:6px;margin-bottom:8px;display:flex}.dp-nav,.dp-title{color:var(--ink);background:0 0;border:0;border-radius:9px;align-items:center;gap:6px;display:inline-flex}.dp-nav{width:32px;height:32px;color:var(--muted);justify-content:center}.dp-title{height:32px;padding:0 10px;font-size:14px;font-weight:750}.dp-nav:hover,.dp-title:hover{background:var(--surface-2);color:var(--ink)}.dp-grid{border-collapse:separate;border-spacing:0 2px;table-layout:fixed;width:100%}.dp-grid th{color:var(--muted);text-align:center;padding:4px 0 6px;font-size:11.5px;font-weight:750}.dp-cell{height:36px;color:var(--ink);font-variant-numeric:tabular-nums;text-align:center;cursor:pointer;-webkit-user-select:none;user-select:none;border-radius:10px;outline:none;font-weight:600}.dp-cell:hover{background:var(--surface-2)}.dp-cell:focus-visible{box-shadow:inset 0 0 0 2px #2f6bff}.dp-cell.is-outside{color:var(--muted);opacity:.55}.dp-cell.is-weekend:not(.is-selected){color:var(--muted)}.dp-cell.is-today{color:#1d4ed8;font-weight:800;box-shadow:inset 0 0 0 1.5px #93b4ff}html.dark .dp-cell.is-today{color:#a5b8ff}.dp-cell.is-today:focus-visible{box-shadow:inset 0 0 0 2px #2f6bff}.dp-cell.is-selected,.dp-cell.is-selected:hover{color:#fff;opacity:1;background:#1d4ed8}.dp-cell[aria-disabled=true]{opacity:.3;cursor:not-allowed}.dp-grid.is-coarse{border-spacing:4px}.dp-wide{height:48px;font-size:13.5px}.dp-grid.is-week tbody tr:hover .dp-cell{background:var(--surface-2)}.dp-grid.is-week .dp-cell{border-radius:0}.dp-grid.is-week .dp-cell:first-child{border-radius:10px 0 0 10px}.dp-grid.is-week .dp-cell:last-child{border-radius:0 10px 10px 0}.dp-grid.is-week tr.is-selected .dp-cell{color:var(--ink);background:#1d4ed81f}.dp-grid.is-week tr.is-selected .dp-cell:nth-child(-n+5){color:#fff;background:#1d4ed8}html.dark .dp-grid.is-week tr.is-selected .dp-cell{background:#8ea0ff2e}html.dark .dp-grid.is-week tr.is-selected .dp-cell:nth-child(-n+5){background:#4f6bff}.dp-foot{border-top:1px solid var(--line);align-items:center;gap:8px;margin-top:8px;padding-top:10px;display:flex}.dp-hint{color:var(--muted);text-align:center;flex:1;font-size:11px}.dp-foot-btn{border:1px solid var(--line);background:var(--surface);color:var(--ink);border-radius:999px;padding:6px 12px;font-size:12.5px;font-weight:700}.dp-foot-btn:hover{background:var(--surface-2)}.dp-foot-btn.is-primary{color:#1d4ed8;background:#2f6bff1a;border-color:#0000}html.dark .dp-foot-btn.is-primary{color:#a5b8ff;background:#8ea0ff29}.dp-foot-btn:focus-visible,.dp-icon:focus-visible,.dp-nav:focus-visible,.dp-title:focus-visible{outline-offset:1px;outline:2px solid #2f6bff}.dp-sr{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.dp-panel.is-sheet{width:100%;max-width:none;padding:16px 16px calc(16px + env(safe-area-inset-bottom));border-radius:20px 20px 0 0;animation:.18s ease-out dp-sheet;inset:auto 0 0}.dp-panel.is-sheet:before{content:"";background:var(--line);border-radius:4px;width:40px;height:4px;margin:-6px auto 10px;display:block}.dp-panel.is-sheet .dp-cell{height:44px;font-size:15px}.dp-panel.is-sheet .dp-hint{display:none}@keyframes dp-sheet{0%{transform:translateY(100%)}}@media (prefers-reduced-motion:reduce){.dp-panel,.dp-panel.is-sheet{animation:none}}.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:1480px;margin:0 auto;display:grid}.p-plan-back{color:var(--muted);background:0 0;border:0;border-radius:10px;justify-self:start;align-items:center;gap:4px;margin-bottom:-8px;padding:6px 10px 6px 6px;font-size:13px;font-weight:700;display:inline-flex}.p-plan-back:hover{background:var(--surface-2);color:var(--ink)}.p-plan-back:focus-visible{outline-offset:2px;outline:2px solid #2f6bff}.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-home-table{overflow-x:auto}.p-home-table table{min-width:720px}.p-home-table td p{margin:2px 0 0}.lp-icon-btn{color:#475569;background:0 0;border:1px solid #0000;border-radius:9px;place-items:center;min-width:32px;height:32px;padding:0 6px;font-size:14px;font-weight:800;line-height:1;display:inline-grid}.lp-icon-btn:hover:not(:disabled){color:#0f172a;background:#f1f5f9}.lp-icon-btn:disabled{opacity:.35;cursor:default}.rich-editor.is-compact .roll-editor-bar{display:none}.rich-editor.is-compact:focus-within .roll-editor-bar{display:flex}.lp-menu{position:relative}.lp-menu-list{z-index:30;background:#fff;border:1px solid #e2e8f0;border-radius:12px;min-width:220px;padding:6px;display:grid;position:absolute;top:calc(100% + 4px);right:0;box-shadow:0 16px 40px #10204829}.lp-menu-list button{color:#0f172a;text-align:left;background:0 0;border:0;border-radius:8px;min-height:38px;padding:8px 10px;font-size:13px;font-weight:650}.lp-menu-list button:focus-visible,.lp-menu-list button:hover:not(:disabled){background:#f1f5f9;outline:none}.lp-menu-list button.is-danger{color:#b91c1c}.lp-menu-list button:disabled{opacity:.45}.lp-save{color:#475569;white-space:nowrap;background:#f1f5f9;border-radius:999px;align-items:center;gap:6px;min-height:34px;padding:6px 12px;font-size:12.5px;font-weight:750;display:inline-flex}.lp-save-icon{background:#fff;border-radius:999px;place-items:center;width:18px;height:18px;font-size:11px;display:inline-grid}.lp-save.is-saved{color:#047857;background:#ecfdf5}.lp-save.is-saving .lp-save-icon{animation:1s linear infinite lp-spin}.lp-save.is-error{color:#b91c1c;background:#fef2f2}.lp-save-retry{color:inherit;background:0 0;border:0;padding:0 0 0 4px;font-weight:800;text-decoration:underline}@keyframes lp-spin{to{transform:rotate(1turn)}}@media (prefers-reduced-motion:reduce){.lp-save.is-saving .lp-save-icon{animation:none}}.confirm-backdrop{z-index:1000;background:#0f172a73;place-items:center;padding:16px;display:grid;position:fixed;inset:0}.confirm-dialog{color:#0f172a;background:#fff;border-radius:20px;width:min(440px,100%);padding:22px;box-shadow:0 24px 64px #0f172a4d}.confirm-dialog h2{letter-spacing:-.01em;margin:0 0 8px;font-size:18px;font-weight:800}.confirm-dialog p{color:#475569;margin:0;font-size:14px;line-height:1.5}.confirm-actions{justify-content:flex-end;gap:8px;margin-top:20px;display:flex}.confirm-danger{color:#fff;background:#dc2626;border:0;border-radius:12px;min-height:40px;padding:8px 16px;font-weight:800}.confirm-danger:hover{background:#b91c1c}@media (pointer:coarse){.lp-icon-btn{min-width:40px;height:40px}.rich-editor.is-compact .roll-editor-bar{display:flex}}html.dark .confirm-dialog,html.dark .lp-menu-list{border-color:var(--g-line);background:var(--g-panel);color:var(--g-ink)}html.dark .lp-menu-list button{color:var(--g-ink)}html.dark .lp-icon-btn{color:var(--g-mute)}html.dark .lp-icon-btn:hover:not(:disabled){background:var(--g-soft);color:var(--g-ink)}.pe-page{gap:16px;max-width:1480px}.pe-visually-hidden{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.pe-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:16px 24px;display:flex}.pe-head-main{flex:420px;gap:4px;min-width:0;display:grid}.pe-head-main .p-plan-back{margin:0 0 4px -6px}.pe-eyebrow{color:var(--g-acc);letter-spacing:.08em;text-transform:uppercase;flex-wrap:wrap;align-items:center;gap:8px;margin:0;font-size:12px;font-weight:800;display:flex}.pe-status{background:var(--g-soft);color:var(--g-mute);letter-spacing:.02em;text-transform:none;border-radius:999px;padding:2px 8px;font-size:11px}.pe-status.is-done{background:var(--g-okbg);color:var(--g-ok)}.pe-title{width:100%;color:var(--g-ink);letter-spacing:-.03em;background:0 0;border:1px solid #0000;border-radius:10px;margin:0 0 0 -6px;padding:2px 6px;font-size:30px;font-weight:750;line-height:1.2;display:block}.pe-title-input:hover{border-color:var(--g-line)}.pe-title-input:focus{border-color:#2f6bff;outline:none;box-shadow:0 0 0 3px #2f6bff1f}.pe-meta{color:var(--g-mute);flex-wrap:wrap;margin:0;font-size:13.5px;font-weight:550;display:flex}.pe-meta span+span:before{content:"·";opacity:.7;margin:0 8px}.pe-head-actions{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:10px;display:flex}.pe-head-actions .lp-save,.pe-head-actions .lp-save.is-saved{background:0 0}.p-more-menu hr{border:0;border-top:1px solid var(--g-line);margin:6px 4px}.pe-done-badge{background:var(--g-okbg);color:var(--g-ok);padding:0 14px;font-weight:750}.pe-btn-dark,.pe-btn-soft,.pe-done-badge{border-radius:12px;align-items:center;height:40px;font-size:13.5px;display:inline-flex}.pe-btn-dark,.pe-btn-soft{white-space:nowrap;justify-content:center;gap:7px;padding:0 16px;font-weight:700;text-decoration:none}.pe-btn-dark{color:#fff;background:#0f172a;border:1px solid #0f172a}.pe-btn-dark:hover:not(:disabled){background:#1e293b}.pe-btn-soft{border:1px solid var(--g-line);background:var(--g-panel);color:var(--g-ink)}.pe-btn-soft:hover:not(:disabled){background:var(--g-soft)}.pe-btn-dark:disabled,.pe-btn-soft:disabled{opacity:.5;cursor:default}.pe-add-line:focus-visible,.pe-block-add:focus-visible,.pe-block-tab:focus-visible,.pe-btn-dark:focus-visible,.pe-btn-soft:focus-visible,.pe-chip:focus-visible,.pe-danger-link:focus-visible,.pe-handle:focus-visible,.pe-icon-btn:focus-visible,.pe-link:focus-visible,.pe-preview-sheet:focus-visible,.pe-step:focus-visible,.pe-tab-add:focus-visible,.pe-tab:focus-visible{outline-offset:2px;outline:2px solid #2f6bff}html.dark .pe-btn-dark{color:#0b1020;background:#f4f7ff;border-color:#e2e8f0}html.dark .pe-btn-dark:hover:not(:disabled){background:#dbe3f5}.pe-link{color:var(--g-acc);text-align:left;text-underline-offset:2px;background:0 0;border:0;padding:0;font-weight:700;text-decoration:underline}.pe-icon-btn{min-width:34px;height:34px;color:var(--g-mute,var(--muted));background:0 0;border:0;border-radius:10px;place-items:center;font-size:20px;line-height:1;display:inline-grid}.pe-icon-btn:hover:not(:disabled){background:var(--g-soft,var(--surface-2));color:var(--g-ink,var(--ink))}.pe-icon-btn:disabled{opacity:.35;cursor:default}.pe-alert{border:1px solid var(--g-line);background:var(--g-soft);color:var(--g-ink);border-radius:12px;margin:0;padding:10px 14px;font-size:13.5px}.pe-alert.is-error{color:#991b1b;background:#fef2f2;border-color:#fecaca}html.dark .pe-alert.is-error{color:#fecaca;background:#7f1d1d4d;border-color:#f8717159}.pe-completion ul{gap:4px;margin:6px 0 0;padding-left:18px;display:grid}.pe-completion .pe-link{color:inherit;font-weight:600}.pe-completion-head{justify-content:space-between;gap:12px;display:flex}.pe-toast{z-index:60;color:#fff;background:#0f172a;border-radius:14px;align-items:center;gap:12px;max-width:min(560px,100vw - 32px);padding:10px 10px 10px 16px;font-size:13.5px;display:flex;position:fixed;bottom:24px;left:50%;transform:translate(-50%);box-shadow:0 16px 40px #0f172a40}.pe-toast .pe-link{color:#93c5fd}.pe-toast .pe-icon-btn{color:#cbd5e1}.pe-toast.is-error{background:#7f1d1d}.pe-editor{min-width:0;position:relative}.pe-grid{grid-template-columns:minmax(0,1fr) minmax(260px,300px);align-items:start;gap:24px;display:grid}.pe-editor.is-wide .pe-grid{grid-template-columns:minmax(0,1fr) minmax(300px,360px)}.pe-editor.is-narrow .pe-grid{grid-template-columns:minmax(0,1fr)}.pe-form{gap:18px;display:grid}.pe-form,.pe-form>*{min-width:0}.pe-rail,.pe-side{min-width:0;position:sticky;top:88px}.pe-side{scrollbar-width:thin;max-height:calc(100vh - 104px);overflow:auto}.pe-steps-title{color:var(--g-ink);margin:0 0 10px;font-size:14px;font-weight:750}.pe-steps-count{color:var(--g-mute);font-weight:600}.pe-steps-list{gap:2px;margin:0;padding:0;list-style:none;display:grid}.pe-step{color:var(--g-mute);border-radius:12px;align-items:center;gap:10px;padding:8px 10px;font-size:13.5px;font-weight:650;line-height:1.25;text-decoration:none;display:flex}.pe-step:hover{background:var(--g-soft);color:var(--g-ink)}.pe-step.is-active{background:var(--g-panel);color:var(--g-ink);box-shadow:0 1px 0 var(--g-line),0 0 0 1px var(--g-line)}.pe-step-mark{border:1.5px solid var(--g-line);background:var(--g-panel);width:24px;height:24px;color:var(--g-mute);border-radius:50%;flex:none;place-items:center;font-size:12px;font-weight:800;display:inline-grid}.pe-step.is-active .pe-step-mark{border-color:var(--g-ink);color:var(--g-ink)}.pe-step.is-done .pe-step-mark{border-color:var(--g-ok);background:var(--g-ok);color:#fff}.pe-steps.is-bar{scrollbar-width:none;align-items:center;gap:14px;display:flex;overflow-x:auto}.pe-steps.is-bar .pe-steps-title{flex:none;margin:0;font-size:13px}.pe-steps.is-bar .pe-steps-list{gap:4px;display:flex}.pe-steps.is-bar .pe-step{white-space:nowrap;padding:6px 10px;font-size:13px}.pe-steps-sticky{z-index:15;background:var(--g-bg);margin:0 -4px 14px;padding:8px 4px;position:sticky;top:72px}.pe-editor.is-narrow .pe-steps.is-bar .pe-steps-title{display:none}.pe-editor.is-narrow .pe-steps.is-bar .pe-step-text{text-overflow:ellipsis;max-width:132px;overflow:hidden}.pe-card{border:1px solid var(--g-line);background:var(--g-panel);box-shadow:var(--g-shadow);border-radius:18px;padding:22px 24px 24px;scroll-margin-top:96px}.pe-editor:not(.is-wide) .pe-card{scroll-margin-top:140px}.pe-card:focus{outline:none}.pe-card.is-flagged{border-color:#fca5a5}.pe-card-head{align-items:flex-start;gap:12px;margin-bottom:18px;display:flex}.pe-card-number{background:var(--g-accbg);width:30px;height:30px;color:var(--g-acc);border-radius:10px;flex:none;place-items:center;font-size:14px;font-weight:800;display:inline-grid}.pe-card.is-done .pe-card-number{background:var(--g-okbg);color:var(--g-ok)}.pe-card-heading{flex:1;min-width:0}.pe-card-heading h2{color:var(--g-ink);letter-spacing:-.01em;margin:2px 0 0;font-size:18px;font-weight:750}.pe-card-heading p{color:var(--g-mute);margin:2px 0 0;font-size:13px}.pe-card-scope{color:var(--g-mute);font-weight:600}.pe-card-done{background:var(--g-okbg);color:var(--g-ok);border-radius:999px;align-items:center;gap:4px;padding:4px 9px;font-size:12px;font-weight:750;display:inline-flex}.pe-card-body{gap:18px}.pe-card-body,.pe-field{min-width:0;display:grid}.pe-field{align-content:start;gap:6px}.pe-label{color:var(--g-ink);font-size:13.5px;font-weight:700}.pe-required{color:#dc2626}.pe-optional{color:var(--g-mute);font-weight:550}.pe-hint{color:var(--g-mute);margin:-2px 0 2px;font-size:12.5px}.pe-field .field{width:100%}.pe-field.is-invalid .field{border-color:#f87171}.pe-row{grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:14px;display:grid}.pe-row-datos{flex-wrap:wrap;align-items:flex-end;display:flex}.pe-row-datos>*{flex:150px}.pe-row-datos>:first-child{flex:2 220px}.pe-stack{gap:14px;display:grid}.pe-group{gap:10px;display:grid}.pe-group-title{font-size:14px;font-weight:750}.pe-group-title,.pe-read{color:var(--g-ink);margin:0}.pe-read{background:var(--g-soft);white-space:pre-line;border-radius:11px;padding:9px 12px;font-size:13.5px}.pe-read.is-rich{white-space:normal}.pe-read.is-rich :where(p){margin:0 0 6px}.pe-read-list{gap:6px;margin:0;padding:0;list-style:none;display:grid}.pe-read-list li{background:var(--g-soft);color:var(--g-ink);border-radius:11px;padding:9px 12px;font-size:13.5px}.pe-empty,.pe-skeleton{color:var(--g-mute);font-size:13px}.pe-skeleton{border:1px dashed var(--g-line);border-radius:12px;padding:18px;animation:1.2s ease-in-out infinite pe-pulse}@keyframes pe-pulse{50%{opacity:.55}}.pe-curriculum{gap:18px;display:grid}.pe-chips{flex-wrap:wrap;gap:8px;margin:0;padding:0;list-style:none;display:flex}.pe-chip{border:1px solid var(--g-line);background:var(--g-panel);color:var(--g-ink);border-radius:999px;padding:7px 14px;font-size:13px;font-weight:650}button.pe-chip:hover{background:var(--g-accbg);border-color:#93c5fd}.pe-chip.is-on{color:#fff;background:#0f172a;border-color:#0f172a}html.dark .pe-chip.is-on{color:#0b1020;background:#f4f7ff;border-color:#f4f7ff}.pe-chip.is-empty:not(.is-on){opacity:.6}.pe-saving{color:var(--g-mute);margin-left:8px;font-size:12px;font-weight:600}.pe-checks{gap:8px;margin:0;padding:0;list-style:none;display:grid}.pe-check{border:1px solid var(--g-line);background:var(--g-panel);color:var(--g-ink);cursor:pointer;border-radius:12px;align-items:flex-start;gap:10px;padding:11px 14px;font-size:13.5px;line-height:1.45;display:flex}.pe-check:hover{background:var(--g-soft)}.pe-check.is-on{background:var(--g-accbg);border-color:#93c5fd}.pe-check input{accent-color:#1d4ed8;flex:none;width:17px;height:17px;margin:1px 0 0}.pe-check-tag{color:var(--g-mute);font-size:11.5px;font-weight:700;display:block}.pe-tablist,.pe-tabs{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.pe-tab-wrap{border-radius:999px;align-items:center;display:inline-flex;position:relative}.pe-tab-wrap.is-active{background:#0f172a}html.dark .pe-tab-wrap.is-active{background:#f4f7ff}.pe-tab-wrap.is-drop-before{box-shadow:-3px 0 #2f6bff}.pe-tab-wrap.is-drop-after{box-shadow:3px 0 #2f6bff}.pe-tab{border:1px solid var(--g-line);background:var(--g-panel);height:36px;color:var(--g-ink);border-radius:999px;align-items:center;gap:6px;padding:0 16px;font-size:13.5px;font-weight:700;display:inline-flex}.pe-tab:hover:not([aria-selected=true]){background:var(--g-soft)}.pe-tab[aria-selected=true]{color:#fff;background:0 0;border-color:#0000}html.dark .pe-tab[aria-selected=true]{color:#0b1020}.pe-tab[draggable=true]{cursor:grab}.pe-tab-flag{background:#ef4444;border-radius:50%;width:7px;height:7px}.pe-tab-add{height:36px;color:var(--g-mute);background:0 0;border:1px dashed #cbd5e1;border-radius:999px;align-items:center;gap:6px;padding:0 14px;font-size:13px;font-weight:700;display:inline-flex}.pe-tab-add:hover:not(:disabled){color:var(--g-acc);border-color:#2f6bff}html.dark .pe-tab-add{border-color:#fff3}.pe-activity{gap:18px;padding-top:4px;display:grid}.pe-activity-top{grid-template-columns:repeat(auto-fit,minmax(180px,1fr))}.pe-grow{grid-column:span 2}.pe-timeline{gap:0;margin:0;padding:0;list-style:none;display:grid}.pe-moment{grid-template-columns:32px minmax(0,1fr);gap:14px;padding-bottom:22px;display:grid;position:relative}.pe-moment:last-child{padding-bottom:0}.pe-moment:before{content:"";background:var(--g-line);border-radius:2px;width:2px;position:absolute;top:34px;bottom:2px;left:15px}.pe-moment:last-child:before{display:none}.pe-moment-dot{border:2px solid var(--g-line);background:var(--g-panel);width:32px;height:32px;color:var(--g-ink);border-radius:50%;place-items:center;font-size:13px;font-weight:800;display:inline-grid}.pe-moment.is-done .pe-moment-dot{border-color:var(--g-ok);background:var(--g-okbg);color:var(--g-ok)}.pe-moment-body{gap:12px;min-width:0;display:grid}.pe-moment-head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px 14px;min-height:32px;display:flex}.pe-moment-head h4{color:var(--g-ink);margin:0;font-size:15.5px;font-weight:750}.pe-duration{color:var(--g-mute);gap:8px;font-size:13px;font-weight:650}.pe-duration,.pe-duration-box{align-items:center;display:inline-flex}.pe-duration-box{border:1.5px solid var(--line);background:var(--g-panel);border-radius:10px}.pe-duration-box:focus-within{border-color:#2f6bff;box-shadow:0 0 0 3px #2f6bff1f}.pe-duration-input{width:54px;height:34px;color:var(--g-ink);-moz-appearance:textfield;background:0 0;border:0;outline:none;padding:0 4px 0 10px;font-weight:700}.pe-duration-input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.pe-duration-input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.pe-duration-input.is-text{border:1.5px solid var(--line);border-radius:10px;width:120px}.pe-duration-unit{padding-right:10px}.pe-duration-read{color:var(--g-ink);font-weight:700}.pe-momentos{gap:10px;margin:0;padding:0;list-style:none;display:grid}.pe-momento{border:1px solid var(--g-line);background:var(--g-soft);border-radius:14px;gap:6px;padding:12px;display:grid}.pe-momento.is-drop-before{box-shadow:0 -3px #2f6bff}.pe-momento.is-drop-after{box-shadow:0 3px #2f6bff}.pe-momento-head{align-items:center;gap:8px;min-height:28px;display:flex}.pe-momento-head strong{color:var(--g-ink);flex:1;font-size:13px;font-weight:750}.pe-handle{color:var(--g-mute);cursor:grab;border-radius:6px;padding:2px 4px;font-size:15px;line-height:1}.pe-add-line{color:var(--g-acc);background:0 0;border:1px dashed #cbd5e1;border-radius:10px;justify-self:start;align-items:center;gap:6px;padding:7px 12px;font-size:13px;font-weight:700;display:inline-flex}.pe-add-line:hover:not(:disabled){background:var(--g-accbg);border-color:#2f6bff}html.dark .pe-add-line{border-color:#fff3}.pe-preview{border:1px solid var(--g-line);background:var(--g-panel);box-shadow:var(--g-shadow);border-radius:18px;gap:12px;padding:16px;display:grid}.pe-preview-head{justify-content:space-between;align-items:flex-start;gap:10px;display:flex}.pe-preview-head h2{color:var(--g-ink);margin:0;font-size:15px;font-weight:750}.pe-preview-head p{color:var(--g-mute);margin:2px 0 0;font-size:12.5px}.pe-preview-head .pe-btn-soft{height:32px;padding:0 10px;font-size:12.5px}.pe-preview-sheet{cursor:zoom-in;background:#fff;border:1px solid #e2e8f0;border-radius:8px;width:100%;min-height:160px;padding:0;transition:box-shadow .15s;display:block;position:relative;overflow:hidden}.pe-preview-sheet:hover:not(:disabled){box-shadow:0 8px 22px #0f172a1f}.pe-preview-sheet:disabled{cursor:default}.pe-preview-sheet.is-loading .pe-frame{opacity:.8}.pe-preview-empty{color:#64748b;place-items:center;min-height:160px;padding:16px;font-size:13px;display:grid}.pe-preview-foot{gap:4px;display:grid}.pe-preview-caption,.pe-preview-error{color:var(--g-mute);margin:0;font-size:12px}.pe-preview-error{color:#b91c1c}.pe-preview-meta{color:var(--g-mute);justify-content:space-between;font-size:11.5px;font-weight:650;display:flex}.pe-preview-sync{color:var(--g-acc,#1d4ed8);font-size:12px;font-weight:700}.pe-frame{background:#fff;width:100%;transition:opacity .15s;position:relative;overflow:hidden}.pe-frame-doc{transform-origin:0 0;pointer-events:none;background:#fff;border:0;position:absolute;top:0;left:0}.pe-preview-fab{z-index:40;color:#fff;background:#0f172a;border:0;border-radius:999px;align-items:center;gap:8px;height:46px;padding:0 18px;font-size:14px;font-weight:750;display:inline-flex;position:fixed;bottom:18px;right:16px;box-shadow:0 12px 30px #0f172a4d}html.pe-viewer-open{overflow:hidden}.pe-viewer-overlay{z-index:200;background:#0f172a8c;place-items:center;padding:24px;display:grid;position:fixed;inset:0}.pe-viewer{background:var(--surface);width:min(1180px,100%);height:min(100%,980px);color:var(--ink);border-radius:18px;grid-template-rows:auto minmax(0,1fr);display:grid;overflow:hidden;box-shadow:0 30px 80px #0f172a59}.pe-viewer:focus{outline:none}.pe-viewer-head{border-bottom:1px solid var(--line);flex-wrap:wrap;align-items:center;gap:10px 16px;padding:12px 14px 12px 20px;display:flex}.pe-viewer-title{flex:1;min-width:160px;display:grid}.pe-viewer-title h2{margin:0;font-size:16px;font-weight:750}.pe-viewer-title span{color:var(--muted);font-size:12.5px}.pe-viewer-pages{color:var(--ink);white-space:nowrap;gap:4px;font-size:13px;font-weight:700}.pe-viewer-actions,.pe-viewer-pages{align-items:center;display:inline-flex}.pe-viewer-actions{flex-wrap:wrap;gap:8px}.pe-viewer .pe-btn-soft{border-color:var(--line);background:var(--surface);color:var(--ink);height:36px}.pe-viewer .pe-btn-soft:hover{background:var(--surface-2)}.pe-viewer .pe-btn-dark{height:36px}.pe-export{position:relative}.pe-export-menu{z-index:2;border:1px solid var(--line);background:var(--surface);border-radius:12px;min-width:140px;padding:6px;display:grid;position:absolute;top:calc(100% + 6px);right:0;box-shadow:0 12px 32px #14285a29}.pe-export-menu button{color:var(--ink);text-align:left;background:0 0;border:0;border-radius:8px;padding:8px 10px;font-size:13px;font-weight:650}.pe-export-menu button:focus-visible,.pe-export-menu button:hover{background:var(--surface-2);outline:none}.pe-viewer-body{background:#e2e8f0;padding:24px;overflow:auto}html.dark .pe-viewer-body{background:#0b1020}.pe-viewer-sheet{width:min(1056px,100%);margin:0 auto;box-shadow:0 6px 24px #0f172a2e}@media (width<=760px){.pe-title{font-size:24px}.pe-head-actions{justify-content:flex-start;width:100%}.pe-card{border-radius:16px;padding:18px 16px 20px}.pe-activity-top,.pe-row,.pe-row-datos{grid-template-columns:minmax(0,1fr)}.pe-grow{grid-column:auto}.pe-moment{grid-template-columns:26px minmax(0,1fr);gap:10px}.pe-moment-dot{width:26px;height:26px;font-size:12px}.pe-moment:before{top:28px;left:12px}.pe-viewer-overlay{padding:0}.pe-viewer{border-radius:0;width:100%;height:100%}.pe-viewer-body{padding:12px}.pe-viewer-head{padding:10px 10px 10px 14px}}@media (prefers-reduced-motion:reduce){.pe-skeleton{animation:none}}.pe-block-bar{border-bottom:1px solid var(--g-line);align-items:flex-end;gap:12px;display:flex}.pe-block-tabs{scrollbar-width:thin;flex:auto;min-width:0;display:flex;overflow-x:auto}.pe-block-tab{height:44px;color:var(--g-mute);white-space:nowrap;background:0 0;border:0;flex:none;align-items:center;gap:6px;padding:0 18px;font-size:14px;font-weight:700;display:inline-flex;position:relative}.pe-block-tab:hover:not([aria-selected=true]):not(:disabled){color:var(--g-ink)}.pe-block-tab[aria-selected=true]{color:var(--g-acc)}.pe-block-tab[aria-selected=true]:after{content:"";background:var(--g-acc);border-radius:3px 3px 0 0;height:3px;position:absolute;bottom:-1px;left:0;right:0}.pe-block-tab:disabled{opacity:.6}.pe-block-add{border:1.5px solid var(--g-acc);background:var(--g-panel);height:36px;color:var(--g-acc);white-space:nowrap;border-radius:999px;flex:none;align-items:center;gap:6px;margin-bottom:6px;padding:0 16px;font-size:13.5px;font-weight:700;display:inline-flex}.pe-block-add:hover{background:var(--g-accbg)}.pe-block-add span{font-size:17px;line-height:1}.pe-block{gap:18px;padding-top:6px;display:grid}.pe-activity-head,.pe-block-head,.pe-sub-head{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.pe-block-title{color:var(--g-ink);letter-spacing:-.01em;margin:0;font-size:22px;font-weight:800}.pe-block-meta{color:var(--g-mute);margin:2px 0 0;font-size:13px;font-weight:600}.pe-block-name{max-width:520px}.pe-activity-head{border-top:1px solid var(--g-line);align-items:center;padding-top:14px}.pe-activity-title,.pe-sub-title{color:var(--g-ink);white-space:nowrap;margin:0;font-size:16.5px;font-weight:800}.pe-node-actions{flex:none;align-items:center;gap:6px;display:inline-flex}.pe-danger-link{color:#b91c1c;cursor:pointer;background:0 0;border:0;padding:6px 4px;font-size:13.5px;font-weight:700;position:relative}.pe-danger-link:hover:not(.is-disabled){text-underline-offset:2px;text-decoration:underline}.pe-danger-link.is-disabled{color:var(--g-mute);opacity:.7;cursor:not-allowed}html.dark .pe-danger-link{color:#fca5a5}html.dark .pe-danger-link.is-disabled{color:var(--g-mute)}.pe-danger-link[data-tip]:focus-visible:after,.pe-danger-link[data-tip]:hover:after{content:attr(data-tip);z-index:30;color:#fff;text-align:left;white-space:normal;pointer-events:none;background:#0f172a;border-radius:10px;width:max-content;max-width:260px;padding:8px 10px;font-size:12.5px;font-weight:600;line-height:1.4;position:absolute;top:calc(100% + 6px);right:0;box-shadow:0 10px 30px #0f172a40}.pe-followup{gap:14px;display:grid}.pe-sub{border:1px solid var(--g-line);background:var(--g-soft);border-radius:14px;gap:12px;padding:14px 16px;display:grid}html.dark .pe-sub{background:#ffffff08}.pe-sub-head{align-items:center}.pe-sub-title{font-size:15px}.pe-sub-empty{align-items:center}.pe-followup-add,.pe-sub-empty{flex-wrap:wrap;gap:10px;display:flex}.pe-link-card{border:1px solid var(--g-line);background:var(--g-panel);border-radius:12px;grid-template-columns:auto minmax(0,1fr) auto;grid-template-areas:"icon main badge""icon actions actions";align-items:center;gap:4px 12px;padding:12px 14px;display:grid}.pe-link-icon{background:var(--g-accbg);width:36px;height:36px;color:var(--g-acc);border-radius:10px;grid-area:icon;place-items:center;display:grid}.pe-link-icon.is-evaluation{color:#7c3aed;background:#7c3aed1f}.pe-link-main{grid-area:main;min-width:0;display:grid}.pe-link-title{color:var(--g-ink);text-overflow:ellipsis;white-space:nowrap;font-size:14px;font-weight:750;overflow:hidden}.pe-link-meta{color:var(--g-mute);font-size:12.5px;font-weight:600}.pe-link-badge{color:#92400e;background:#fef3c7;border-radius:999px;grid-area:badge;justify-self:end;padding:3px 10px;font-size:12px;font-weight:750}.pe-link-badge.is-graded,.pe-link-badge.is-published{color:#166534;background:#dcfce7}.pe-link-badge.is-scheduled{color:#1e40af;background:#dbeafe}.pe-link-badge.is-archived{background:var(--g-soft);color:var(--g-mute)}html.dark .pe-link-badge{color:#fcd34d;background:#fbbf2429}.pe-link-actions{flex-wrap:wrap;grid-area:actions;gap:14px;display:flex}.pe-link.is-muted{color:var(--g-mute)}.pe-editor .rich-editor .roll-editor{height:auto;overflow:visible;min-height:108px!important}@media (width<=640px){.pe-block-bar{border-bottom:0;flex-wrap:wrap;align-items:center}.pe-block-tabs{border-bottom:1px solid var(--g-line);flex-basis:100%;order:2}.pe-block-add{margin:0 0 0 auto}.pe-block-head{flex-wrap:wrap}.pe-block-title{font-size:19px}.pe-link-card{grid-template-columns:auto minmax(0,1fr);grid-template-areas:"icon main""icon badge""icon actions"}.pe-link-badge{justify-self:start}}.p-shell{--ps-w:272px;--ps-rail:76px}.p-shell .g-side.ps-side{width:var(--ps-w);scrollbar-width:thin;background:var(--g-panel);border-right:1px solid var(--g-line);gap:18px;padding:14px 14px 18px;transition:width .22s cubic-bezier(.2,.7,.2,1),padding .22s,transform .18s;overflow:hidden auto}.p-shell .g-work{margin-left:var(--ps-w);transition:margin-left .22s cubic-bezier(.2,.7,.2,1)}.p-shell.is-rail .g-side.ps-side{width:var(--ps-rail);padding:14px 12px 18px;overflow:visible}.p-shell.is-rail .g-work{margin-left:var(--ps-rail)}@media (prefers-reduced-motion:reduce){.p-shell .g-side.ps-side,.p-shell .g-work{transition:none}}.ps-label{text-overflow:ellipsis;white-space:nowrap;min-width:0;transition:opacity .16s;overflow:hidden}.ps-side.is-collapsed .ps-label{display:none}.ps-top{justify-content:space-between;align-items:center;gap:6px;min-height:36px;display:flex}.ps-side.is-collapsed .ps-top{flex-direction:column;align-items:center;gap:8px}.ps-back,.ps-close,.ps-toggle{height:36px;color:var(--g-mute);cursor:pointer;background:0 0;border:0;border-radius:10px;align-items:center;gap:6px;font-size:13.5px;font-weight:650;text-decoration:none;display:inline-flex}.ps-back{min-width:0;padding:0 10px 0 6px}.ps-side.is-collapsed .ps-back{justify-content:center;width:40px;padding:0}.ps-close,.ps-toggle{flex:none;justify-content:center;width:36px}.ps-close{display:none}.ps-back:hover,.ps-close:hover,.ps-toggle:hover{background:var(--g-soft);color:var(--g-ink)}.ps-brand{background:linear-gradient(135deg,var(--g-accbg),transparent 85%);border:1px solid var(--g-line);border-radius:16px;align-items:center;gap:12px;padding:12px;display:flex}.ps-side.is-collapsed .ps-brand{background:0 0;border-color:#0000;justify-content:center;padding:8px 0}.ps-brand-mark{background:linear-gradient(140deg,#3b6cf6,#1d4ed8 60%,#1e3aa8);border-radius:12px;flex:none;place-items:center;width:38px;height:38px;display:grid;box-shadow:0 6px 16px #1d4ed847}.ps-brand-copy{gap:1px;display:grid}.ps-brand-copy strong{letter-spacing:-.01em;font-size:16px;font-weight:750}.ps-brand-copy small{color:var(--g-mute);font-size:12px}.ps-nav{gap:4px;display:grid}.ps-link,.ps-new{height:42px;color:var(--g-ink);cursor:pointer;background:0 0;border:0;border-radius:12px;align-items:center;gap:11px;padding:0 12px;font-size:14px;font-weight:600;text-decoration:none;display:flex}.ps-link svg{color:var(--g-mute);flex:none}.ps-link:hover{background:var(--g-soft)}.ps-link.is-active{background:var(--g-accbg);color:var(--g-acc)}.ps-link.is-active svg{color:var(--g-acc)}.ps-new{color:#fff;background:#1d4ed8;justify-content:center;margin-top:6px;box-shadow:0 6px 16px #1d4ed838}.ps-new:hover{background:#1e40af}.ps-side.is-collapsed .ps-link,.ps-side.is-collapsed .ps-new{justify-content:center;width:48px;margin-inline:auto;padding:0}.ps-section{border-top:1px solid var(--g-line);gap:8px;min-width:0;padding-top:14px;display:grid}.ps-heading{color:var(--g-mute);letter-spacing:.07em;text-transform:uppercase;align-items:baseline;gap:6px;margin:0;font-size:11.5px;font-weight:800;display:flex}.ps-count{color:var(--g-mute);letter-spacing:0;text-transform:none;font-weight:700}.ps-side.is-collapsed .ps-heading{justify-content:center}.ps-progress{background:var(--g-soft);border-radius:999px;height:5px;overflow:hidden}.ps-progress span{border-radius:inherit;background:linear-gradient(90deg,#22c55e,var(--g-ok));height:100%;transition:width .3s;display:block}.ps-seq-list,.ps-step-list{gap:2px;margin:0;padding:0;list-style:none;display:grid}.ps-step{color:var(--g-mute);border-radius:10px;align-items:center;gap:10px;padding:7px 10px;font-size:13.5px;font-weight:600;text-decoration:none;display:flex}.ps-step.is-active,.ps-step:hover{background:var(--g-soft);color:var(--g-ink)}.ps-step-mark{border:1.5px solid var(--g-line);background:var(--g-panel);border-radius:50%;flex:none;place-items:center;width:24px;height:24px;font-size:12px;font-weight:800;display:inline-grid}.ps-step.is-active .ps-step-mark{border-color:var(--g-acc);color:var(--g-acc);box-shadow:0 0 0 3px var(--g-accbg)}.ps-step.is-done .ps-step-mark{border-color:var(--g-ok);background:var(--g-ok);color:#fff}.ps-side.is-collapsed .ps-step{justify-content:center;padding:6px 0}.ps-seqs{flex:auto;align-content:start;min-height:0}.ps-heading-row{justify-content:space-between;align-items:center;gap:8px;display:flex}.ps-heading-row .ps-heading{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.ps-pill{background:var(--g-soft);border-radius:999px;flex:none;padding:1px 8px;font-size:12px;font-weight:700}.ps-pill,.ps-scope{color:var(--g-mute)}.ps-scope{margin:-4px 0 2px;font-size:12.5px}.ps-search{border:1px solid var(--g-line);background:var(--g-soft);height:36px;color:var(--g-mute);border-radius:10px;align-items:center;gap:8px;padding:0 10px;display:flex}.ps-search:focus-within{border-color:var(--g-acc);box-shadow:0 0 0 3px var(--g-accbg)}.ps-search input{min-width:0;color:var(--g-ink);background:0 0;border:0;outline:none;flex:1;font-size:13px}.ps-seq-list{scrollbar-width:thin;max-height:min(44vh,420px);margin-right:-6px;padding-right:6px;overflow-y:auto}.ps-seq{color:var(--g-ink);border:1px solid #0000;border-radius:12px;align-items:center;gap:10px;padding:8px;text-decoration:none;display:flex}.ps-seq:hover{background:var(--g-soft)}.ps-seq.is-current{border-color:color-mix(in srgb,var(--g-acc) 35%,transparent);background:var(--g-accbg)}.ps-seq-no{background:var(--g-soft);min-width:30px;height:30px;color:var(--g-ink);font-variant-numeric:tabular-nums;border-radius:9px;flex:none;place-items:center;padding:0 6px;font-size:13px;font-weight:800;display:inline-grid}.ps-seq.is-current .ps-seq-no{background:var(--g-acc);color:#fff}html.dark .ps-seq.is-current .ps-seq-no{color:#0b1020}.ps-seq-no.is-none{color:var(--g-mute)}.ps-seq-copy{gap:2px;min-width:0;display:grid}.ps-seq-copy strong{text-overflow:ellipsis;white-space:nowrap;font-size:13.5px;font-weight:650;overflow:hidden}.ps-seq-copy small{color:var(--g-mute);white-space:nowrap;align-items:center;gap:6px;font-size:12px;display:flex}.ps-dot{background:#f59e0b;border-radius:50%;flex:none;width:7px;height:7px}.ps-dot.is-in_progress{background:#3b82f6}.ps-dot.is-completed{background:#10b981}.ps-dot.is-archived{background:#94a3b8}.ps-empty{color:var(--g-mute);margin:4px 0;font-size:12.5px}.ps-rail-seqs{width:48px;height:42px;color:var(--g-mute);cursor:pointer;background:0 0;border:0;border-radius:12px;place-items:center;margin-inline:auto;display:grid;position:relative}.ps-rail-seqs:hover{background:var(--g-soft);color:var(--g-ink)}.ps-rail-badge{background:var(--g-acc);color:#fff;border-radius:999px;min-width:17px;height:17px;padding:0 4px;font-size:10.5px;font-weight:800;line-height:17px;position:absolute;top:3px;right:3px}html.dark .ps-rail-badge{color:#0b1020}.ps-side :is(a,button,input):focus-visible{outline:2px solid var(--g-acc);outline-offset:2px}.ps-side.is-collapsed [data-tip]{position:relative}.ps-side.is-collapsed [data-tip]:focus-visible:after,.ps-side.is-collapsed [data-tip]:hover:after{content:attr(data-tip);z-index:50;color:#fff;letter-spacing:0;text-transform:none;white-space:nowrap;pointer-events:none;background:#0f172a;border-radius:8px;padding:6px 10px;font-size:12.5px;font-weight:600;position:absolute;top:50%;left:calc(100% + 12px);transform:translateY(-50%);box-shadow:0 6px 18px #0f172a40}html.dark .ps-side.is-collapsed [data-tip]:focus-visible:after,html.dark .ps-side.is-collapsed [data-tip]:hover:after{color:#0b1020;background:#f4f7ff}.ps-scrim{display:none}.p-shell .g-top.ps-topbar{background:var(--g-panel);border-bottom:1px solid var(--g-line);height:60px;box-shadow:0 1px 2px #14285a0a,0 6px 16px #14285a0a}html.dark .p-shell .g-top.ps-topbar{box-shadow:0 1px #0000004d}.ps-top-spacer{flex:1}.p-shell .g-main{padding-top:24px}.p-shell .pe-steps-sticky{top:60px}.p-shell .pe-side{max-height:calc(100vh - 96px);top:80px}@media (width<=900px){.p-shell .g-work,.p-shell.is-rail .g-work{margin-left:0}.p-shell .g-side.ps-side{z-index:60;width:min(320px,88vw)}.ps-toggle{display:none}.ps-close{display:inline-flex}.ps-scrim{z-index:55;-webkit-backdrop-filter:blur(1px);backdrop-filter:blur(1px);background:#0f172a66;display:block;position:fixed;inset:0}}.p-shell .pe-head{border:1px solid var(--g-line);background:radial-gradient(120% 140% at 100% 0,#3b6cf61a,transparent 55%),linear-gradient(180deg,var(--g-panel),color-mix(in srgb,var(--g-panel) 92%,var(--g-accbg)));box-shadow:0 1px 0 var(--g-line),0 10px 30px #14285a0d;border-radius:20px;align-items:center;padding:22px 24px;position:relative;overflow:hidden}.p-shell .pe-head:before{content:"";background:linear-gradient(#3b6cf6,#1d4ed8);width:4px;position:absolute;inset:0 auto 0 0}html.dark .p-shell .pe-head{background:radial-gradient(120% 140% at 100% 0,#8ea0ff24,transparent 55%),var(--g-panel)}.pe-head-main{gap:8px}.pe-head-chips{flex-wrap:wrap;display:flex}.pe-hchip,.pe-head-chips{align-items:center;gap:6px}.pe-hchip{background:var(--g-soft);height:26px;color:var(--g-mute);white-space:nowrap;border-radius:999px;padding:0 10px;font-size:12.5px;font-weight:700;display:inline-flex}.pe-hchip.is-type{background:var(--g-accbg);color:var(--g-acc)}.pe-hchip.is-status{border:1px solid var(--g-line);background:var(--g-panel);color:var(--g-ink)}.pe-hchip-dot{background:#f59e0b;border-radius:50%;width:7px;height:7px}.pe-hchip.is-in_progress .pe-hchip-dot{background:#3b82f6}.pe-hchip.is-completed{background:var(--g-okbg);color:var(--g-ok);border-color:#0000}.pe-hchip.is-completed .pe-hchip-dot{background:var(--g-ok)}.pe-hchip.is-archived .pe-hchip-dot{background:#94a3b8}.p-shell .pe-meta{flex-wrap:wrap;gap:6px 16px;padding:0;list-style:none}.pe-meta li{align-items:center;gap:6px;min-width:0;display:inline-flex}.pe-meta li svg{color:color-mix(in srgb,var(--g-mute) 80%,transparent);flex:none}.pe-more-btn{border:1px solid var(--g-line);background:var(--g-panel);width:40px;height:40px;color:var(--g-ink);cursor:pointer;border-radius:12px;place-items:center;display:inline-grid}.pe-more-btn:hover,.pe-more-btn[aria-expanded=true]{background:var(--g-soft)}.pe-btn-primary:focus-visible,.pe-more-btn:focus-visible{outline:2px solid var(--g-acc);outline-offset:2px}.pe-btn-primary{color:#fff;white-space:nowrap;cursor:pointer;background:linear-gradient(#3b6cf6,#1d4ed8);border:0;border-radius:12px;align-items:center;gap:8px;height:40px;padding:0 18px;font-size:14px;font-weight:700;display:inline-flex;box-shadow:0 6px 16px #1d4ed847,inset 0 1px #ffffff2e}.pe-btn-primary:hover:not(:disabled){background:linear-gradient(#2f5fe8,#1e40af)}.pe-btn-primary:disabled{opacity:.6;cursor:default}.p-shell .pe-head-actions .lp-save{border:1px solid var(--g-line);background:var(--g-panel);border-radius:999px;height:32px;padding:0 10px}.p-shell .pe-head-actions .lp-save.is-error{border-color:#b91c1c4d}@media (width<=760px){.p-shell .pe-head{border-radius:16px;padding:18px 16px}.pe-head-actions .pe-btn-primary{margin-left:auto}}.pe-seqno-top{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:6px;display:flex}.pe-seqno-badge{white-space:nowrap;border-radius:999px;align-items:center;gap:4px;padding:2px 8px;font-size:11.5px;font-weight:750;display:inline-flex}.pe-seqno-badge.is-suggested{background:var(--g-accbg);color:var(--g-acc)}.pe-seqno-badge.is-custom{background:var(--g-violetbg);color:var(--g-violet)}.pe-seqno-input{position:relative}.pe-seqno-input .field{font-variant-numeric:tabular-nums;padding-left:42px;font-weight:650}.pe-seqno-hash{color:var(--g-mute);pointer-events:none;font-size:13px;font-weight:700;position:absolute;top:50%;left:12px;transform:translateY(-50%)}.pe-seqno.is-suggested .pe-seqno-input .field{border-color:color-mix(in srgb,var(--g-acc) 35%,var(--g-line));background:color-mix(in srgb,var(--g-accbg) 45%,var(--g-panel))}.pe-seqno-help{flex-wrap:wrap;align-items:baseline;gap:2px 8px;margin:0;display:flex}.pe-seqno-use{font-size:12.5px;font-weight:700}.pe-seqno-warn{background:var(--g-warnbg);color:var(--g-warn);border-radius:10px;align-items:flex-start;gap:6px;margin:2px 0 0;padding:8px 10px;font-size:12.5px;font-weight:600;line-height:1.4;display:flex}.pe-seqno-warn svg{flex:none;margin-top:2px}.p-shell .pe-row-datos{align-items:flex-start}.p-shell .pe-row-datos>:first-child{flex:100%}.p-shell .pe-row-datos>.pe-seqno{flex:240px}.pe-seqno-top{flex-wrap:nowrap;justify-content:flex-start}.pe-seqno-top .pe-label{white-space:nowrap}.pe-seqno-help{font-size:12.5px;line-height:1.45}.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-toolbar{flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:14px;display:flex}.plan-market{width:min(1100px,100%);margin:0 auto}@media (width<=860px){.plan-wizard-top{padding-left:16px;padding-right:16px}.topbar-hand{display:none}.plan-wizard-end .hand-note{font-size:16px}}body.np-lock{overflow:hidden}.np-overlay{z-index:60}.np-modal{flex-direction:column;max-width:520px;max-height:calc(100dvh - 48px);display:flex}.np-head{align-items:flex-start;gap:14px;padding:22px 24px 6px;display:flex}.np-icon{color:#6d4ee8;background:#efeafe;border-radius:12px;flex:none;place-items:center;width:44px;height:44px;display:grid}.np-head-copy{flex:1;min-width:0}.np-head-copy h2{letter-spacing:-.02em;margin:0;font-size:19px;font-weight:800}.np-head-copy p{color:var(--muted);margin:3px 0 0;font-size:13.5px;font-weight:600}.np-body{gap:16px;padding:14px 24px 24px;overflow-y:auto}.np-body,.np-field{flex-direction:column;display:flex}.np-field{border:0;gap:6px;min-width:0;margin:0;padding:0}.np-label{color:var(--ink);padding:0;font-size:13px;font-weight:700}.np-row{grid-template-columns:1fr 1fr;gap:12px;display:grid}.np-segment{grid-template-columns:repeat(4,1fr);gap:8px;display:grid}.np-segment-btn{border:1.5px solid var(--line);background:var(--surface);min-height:40px;color:var(--ink);border-radius:12px;padding:8px 6px;font-size:13.5px;font-weight:700}.np-segment-btn:hover{border-color:#c9bdfa}.np-segment-btn.is-active{color:#5534d6;background:#f3efff;border-color:#7c5cff}.np-pill:focus-visible,.np-segment-btn:focus-visible,.np-submit:focus-visible{outline-offset:2px;outline:2px solid #7c5cff}.np-select:disabled{opacity:.6;cursor:not-allowed}.np-help{color:var(--muted)}.np-error,.np-help{margin:0;font-size:12.5px}.np-error{color:#c2410c;font-weight:600}.np-pills{flex-wrap:wrap;gap:8px;display:flex}.np-pill{border:1px solid var(--line);background:var(--surface);color:var(--ink);border-radius:999px;padding:5px 12px;font-size:12.5px;font-weight:700}.np-pill:hover:not(:disabled){background:var(--surface-2)}.np-pill:disabled{opacity:.5}.np-note{background:var(--surface-2);color:var(--muted);border-radius:12px;gap:8px;margin:2px 0 0;padding:10px 12px;font-size:12.5px;line-height:1.45;display:flex}.np-note svg{flex:none;margin-top:1px}.np-note strong{color:var(--ink)}.np-summary{background:var(--surface-2);border-radius:12px;padding:12px 14px}.np-summary h3{color:var(--muted);letter-spacing:.04em;text-transform:uppercase;margin:0 0 4px;font-size:11.5px;font-weight:800}.np-summary p{margin:0}.np-summary-main{color:var(--ink);font-size:14px;font-weight:700}.np-summary-sub{color:var(--muted);font-size:13px;margin-top:2px!important}.np-alert{color:#b42318;background:#fff1eb;border-radius:12px;margin:0;padding:10px 12px;font-size:13px;font-weight:600}.np-submit{color:#fff;background:#111827;border:0;border-radius:14px;justify-content:center;align-items:center;gap:8px;width:100%;min-height:46px;font-size:14.5px;font-weight:800;display:inline-flex}.np-submit:hover:not(:disabled){background:#000}.np-submit:disabled{opacity:.45;cursor:not-allowed}.np-spinner{border:2px solid #fff6;border-top-color:#fff;border-radius:50%;width:14px;height:14px;animation:.8s linear infinite np-spin}@keyframes np-spin{to{transform:rotate(1turn)}}html.dark .np-icon{color:#b9a8ff;background:#2a2350}html.dark .np-segment-btn.is-active{color:#cfc3ff;background:#2a2350}html.dark .np-submit{color:#111827;background:#f4f5f8}html.dark .np-alert{color:#ffb4a3;background:#3a1d17}@media (width<=640px){.np-overlay{align-items:end;padding:0}.np-modal{border-radius:20px 20px 0 0;max-width:none;max-height:92dvh}.np-row{grid-template-columns:1fr}.np-segment{grid-template-columns:repeat(2,1fr)}.np-body{padding-bottom:calc(20px + env(safe-area-inset-bottom))}}@media (prefers-reduced-motion:reduce){.np-spinner{animation-duration:2s}}.np-modal:focus{outline:none}.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}}
