.school-portal{--sage-50:#e1ecdf;--sage-100:#d3e8d5;--sage-200:#c9d6c7;--sage-300:#b7ccb9;--sage-500:#6e8472;--sage-600:#6b7e6e;--sage-700:#506354;--sage-800:#394b3d;--sage-900:#0e1f13;--n-white:#ffffff;--n-25:#f8faf7;--n-50:#f2f4f2;--n-100:#eceeec;--n-150:#e6e9e6;--n-200:#e1e3e1;--n-300:#c3c7c8;--n-600:#747879;--n-800:#434749;--n-900:#181f21;--amber-50:#faf2e2;--amber-100:#f3e6cc;--amber-300:#d9b765;--amber-500:#c49a48;--amber-700:#7a5a21;--red-100:#ffdad6;--red-300:#ff8a80;--red-500:#d24b47;--red-700:#ba1a1a;--red-900:#93000a;--radius:0.625rem;--background:var(--n-25);--foreground:var(--n-900);--card:var(--n-white);--card-foreground:var(--n-900);--popover:var(--n-white);--popover-foreground:var(--n-900);--primary:var(
		--sage-800
	);--primary-foreground:var(--n-white);--primary-hover:var(--sage-900);--secondary:var(--n-100);--secondary-foreground:var(--n-900);--muted:var(--n-100);--muted-foreground:var(--n-800);--accent:var(--sage-50);--accent-foreground:var(--sage-800);--nav-hover:var(--sage-50);--destructive:var(--red-700);--destructive-foreground:var(--n-white);--success:var(--sage-700);--border:var(--n-200);--input:var(--n-300);--ring:var(--sage-700);--sidebar:var(--n-white);--sidebar-foreground:var(--n-900);--sidebar-accent:var(--sage-800);--sidebar-accent-foreground:var(--n-white);--sidebar-border:var(--n-200);--ok-bg:var(--sage-100);--ok-fg:var(--sage-800);--ok-line:var(--sage-300);--wait-bg:var(--amber-100);--wait-fg:var(--amber-700);--wait-line:var(--amber-300);--danger-bg:var(--red-100);--danger-fg:var(--red-900);--radius-sm:calc(var(--radius) - 4px);--radius-md:calc(var(--radius) - 2px);--radius-lg:var(--radius);--radius-xl:calc(var(--radius) + 4px);--sidebar-w:244px;--logo-ink:#141519;--logo-accent:#8ab245;--ti-ink:#141519;--ti-accent:#39c689;font-family:var(--font-geist-sans),"Geist",ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif;background:var(--background);color:var(--foreground);height:100svh;overflow:hidden;font-feature-settings:"cv11","ss01";-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;*,:after,:before{box-sizing:border-box}*{margin:0}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit}svg{display:block}.mono{font-family:var(--font-geist-mono),"Geist Mono",ui-monospace,monospace;font-variant-numeric:tabular-nums}.muted{color:var(--muted-foreground)}[hidden]{display:none!important}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.surface{height:100svh}#surface-app,#surface-auth{overflow:hidden}.on-sage{--logo-ink:#ffffff;--ti-ink:#ffffff}.ti-l-dark{display:none}.logo-turtle,.logo-word{display:block}.logo-word{aspect-ratio:1836/466}.logo-turtil{aspect-ratio:1382/267}.logo-turtil svg{display:block;width:100%;height:100%}.poweredby{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:7px;flex:none}.poweredby .pb-t{font-size:12px;color:var(--muted-foreground);letter-spacing:.01em;line-height:1}.on-sage .poweredby .pb-t{color:color-mix(in oklab,var(--n-white) 80%,transparent)}.poweredby .logo-turtil{width:82px}.logo-turtle{aspect-ratio:1/1;background-repeat:no-repeat;background-size:447.8% auto;background-position:20.13% 14.29%}#surface-auth .page{display:grid;height:100%;grid-template-columns:1fr}@media (min-width:1024px){#surface-auth .page{grid-template-columns:1fr 1fr}}#surface-auth .pane-form{display:flex;flex-direction:column;gap:10px;padding:20px 20px 16px;min-height:0}@media (min-width:768px){#surface-auth .pane-form{padding:28px 36px 20px}}#surface-auth .pane-top{display:flex;align-items:center;flex:none;padding-bottom:4px}#surface-auth .pane-logo{width:112px}@media (min-width:1024px){#surface-auth .pane-top{display:none}}#surface-auth .form-center{display:flex;flex-direction:column;flex:1 1 auto;align-items:center;justify-content:center;min-height:0;overflow-y:auto;overscroll-behavior:contain}#surface-auth .form{width:100%;max-width:540px;display:flex;flex-direction:column;gap:20px;margin:auto;padding:4px 0}#surface-auth .form-head{display:flex;flex-direction:column;gap:7px;text-align:center}#surface-auth .form-head h1{font-size:25px;line-height:1.15;font-weight:600;letter-spacing:-.02em;text-wrap:balance}#surface-auth .form-head p{font-size:14.5px;line-height:1.5;color:var(--muted-foreground);text-wrap:pretty;max-width:46ch;margin-inline:auto}#surface-auth .form-head p a{color:var(--foreground);font-weight:500;text-decoration:underline;text-underline-offset:3px;cursor:pointer}#surface-auth .fields,#surface-auth .frow{display:grid;gap:14px}#surface-auth .frow{grid-template-columns:1fr 1fr;align-items:start}@media (max-width:620px){#surface-auth .frow{grid-template-columns:1fr}}@media (max-height:800px){#surface-auth .pane-form{padding:16px 36px 14px}#surface-auth .form{gap:16px}#surface-auth .fields,#surface-auth .frow{gap:11px}#surface-auth .form-head h1{font-size:22px}#surface-auth .form-head p{font-size:13.5px}#surface-auth .btn,#surface-auth .input,#surface-auth .input-wrap,#surface-auth .select{height:42px}.otp-cell{width:44px;height:48px;font-size:18px}}@media (max-width:767px){#surface-auth .form-center{justify-content:safe center}#surface-auth .fields>.btn-primary{position:sticky;bottom:0;z-index:2;margin-top:6px;box-shadow:0 0 0 9px var(--background),0 -18px 14px -8px var(--background)}#surface-auth .pb-auth{border-top:1px solid var(--border);padding-top:12px;margin-top:2px}}@media (max-height:660px){#surface-auth .form-head p,#surface-auth .steps{display:none}#surface-auth .field-hint{font-size:12px}#surface-auth .btn,#surface-auth .input,#surface-auth .input-wrap,#surface-auth .select{height:40px}}#surface-auth .field{display:grid;gap:7px}#surface-auth .label{font-size:14.5px;font-weight:500;line-height:1.3;display:flex;align-items:center;justify-content:flex-start;gap:8px}#surface-auth .label .opt{color:var(--muted-foreground);font-weight:400;font-size:13.5px}#surface-auth .input,#surface-auth .select{height:46px;width:100%;border:1px solid var(--input);border-radius:var(--radius-md);background:var(--card);padding:0 13px;font-size:15px;color:var(--foreground);outline:0;transition:box-shadow .15s ease,border-color .15s ease}#surface-auth .input::placeholder{color:var(--muted-foreground)}#surface-auth .input:focus-visible,#surface-auth .select:focus-visible{border-color:var(--ring);box-shadow:0 0 0 3px color-mix(in oklab,var(--ring) 45%,transparent)}#surface-auth .select{appearance:none;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%23888' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><path d='m6 9 6 6 6-6'/></svg>");background-repeat:no-repeat;background-position:right 12px center;padding-right:36px}#surface-auth .input.is-invalid,#surface-auth .select.is-invalid{border-color:var(--destructive)}#surface-auth .input-wrap{display:flex;align-items:center;height:46px;border:1px solid var(--input);border-radius:var(--radius-md);background:var(--card);overflow:hidden;transition:box-shadow .15s ease,border-color .15s ease}#surface-auth .input-wrap:focus-within{border-color:var(--ring);box-shadow:0 0 0 3px color-mix(in oklab,var(--ring) 45%,transparent)}#surface-auth .input-wrap.is-invalid{border-color:var(--destructive)}#surface-auth .input-wrap>input{flex:1 1 auto;min-width:0;height:100%;border:0;outline:0;background:transparent;padding:0 13px;font-size:15px;color:var(--foreground)}#surface-auth .input-wrap>input::placeholder{color:var(--muted-foreground)}#surface-auth .input-wrap>input.num{font-variant-numeric:tabular-nums;letter-spacing:.01em}#surface-auth .prefix{display:flex;align-items:center;gap:6px;height:100%;padding:0 13px;font-size:15px;color:var(--muted-foreground);border-right:1px solid var(--border);user-select:none;white-space:nowrap}#surface-auth .prefix svg{width:16px;height:16px}#surface-auth .field-hint{font-size:13px;line-height:1.45;color:var(--muted-foreground);display:flex;align-items:flex-start;gap:6px}#surface-auth .field-hint svg{width:14px;height:14px;flex:none;margin-top:2px}#surface-auth .field-err{font-size:13px;line-height:1.45;color:var(--destructive);font-weight:500}.otp+.field-err{margin-top:12px;text-align:center}.otp{align-items:center;justify-content:center}.otp,.otp-group{display:flex;gap:8px}.otp-cell{width:48px;height:54px;flex:none;text-align:center;font-size:20px;font-weight:500;font-variant-numeric:tabular-nums;border:1px solid var(--input);border-radius:var(--radius-md);background:var(--card);color:var(--foreground);outline:0;padding:0;transition:box-shadow .15s,border-color .15s}.otp-cell:focus{border-color:var(--ring);box-shadow:0 0 0 3px color-mix(in oklab,var(--ring) 45%,transparent);position:relative;z-index:1}.otp.is-invalid .otp-cell{border-color:var(--destructive)}.otp-sep{width:14px;height:1.5px;border-radius:2px;background:var(--border);flex:none}@media (max-width:400px){.otp-cell{width:40px;height:48px;font-size:18px}}#surface-auth .resend{text-align:center;font-size:14px;color:var(--muted-foreground)}#surface-auth .resend a{color:var(--foreground);font-weight:500;text-decoration:underline;text-underline-offset:3px;cursor:pointer}#surface-auth .resend a.disabled{color:var(--muted-foreground);text-decoration:none;cursor:default;pointer-events:none}#surface-auth .btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;height:46px;padding:0 18px;border-radius:var(--radius-md);border:1px solid transparent;font-size:15px;font-weight:500;line-height:1;cursor:pointer;white-space:nowrap;transition:background-color .15s ease,opacity .15s ease,box-shadow .15s ease;outline:none}#surface-auth .btn:focus-visible{box-shadow:0 0 0 3px color-mix(in oklab,var(--ring) 45%,transparent)}#surface-auth .btn-primary{background:var(--primary);color:var(--primary-foreground);box-shadow:0 1px 2px 0 rgb(0 0 0/.05)}#surface-auth .btn-primary:hover{background:var(--primary-hover)}#surface-auth .btn-outline{background:var(--card);color:var(--foreground);border-color:var(--border)}#surface-auth .btn-outline:hover{background:var(--accent)}#surface-auth .btn-block{width:100%}#surface-auth .btn:disabled{opacity:.55;cursor:not-allowed}#surface-auth .legal{font-size:12.5px;color:var(--muted-foreground);text-align:center;line-height:1.5;flex:none;margin:-2px 0 2px}#surface-auth .authswitch{margin:2px 0 4px;display:grid;grid-template-columns:1fr 1fr;gap:4px;padding:4px;border:1px solid var(--sage-100);border-radius:var(--radius-lg);background:var(--sage-50)}#surface-auth .authswitch button{height:40px;border:0;border-radius:var(--radius-md);background:transparent;color:var(--sage-800);font-size:15px;font-weight:500;cursor:pointer;transition:background-color .14s,color .14s}#surface-auth .authswitch button:hover{background:color-mix(in oklab,var(--n-white) 55%,transparent)}#surface-auth .authswitch button.on{background:var(--n-white);color:var(--sage-800);font-weight:600;box-shadow:0 1px 2px rgb(0 0 0/.06)}#surface-auth .authswitch button:focus-visible{outline:2px solid var(--ring);outline-offset:-2px}@media (max-height:800px){#surface-auth .authswitch button{height:36px;font-size:14.5px}}#surface-auth .legal a{text-decoration:underline;text-underline-offset:3px}#surface-auth .done-wrap{display:flex;flex-direction:column;align-items:center;text-align:center;gap:18px}#surface-auth .done-badge{display:grid;place-items:center;width:60px;height:60px;border-radius:999px;background:var(--primary);color:var(--primary-foreground)}#surface-auth .done-badge svg{width:30px;height:30px}#surface-auth .known-card{display:flex;align-items:center;gap:14px;padding:16px;border:1px solid var(--border);border-radius:var(--radius-xl);background:var(--card);text-align:left;width:100%}#surface-auth .known-card .kc-ic{display:grid;place-items:center;width:44px;height:44px;border-radius:var(--radius-lg);background:var(--muted);flex:none}#surface-auth .known-card .kc-ic svg{width:21px;height:21px}#surface-auth .known-card .kc-name{font-size:15.5px;font-weight:600;letter-spacing:-.01em}#surface-auth .known-card .kc-meta{font-size:13px;color:var(--muted-foreground);margin-top:2px}#surface-auth .pane-brand{position:relative;display:none;overflow:hidden;background:var(--sage-800);color:var(--n-white);border-right:0}@media (min-width:1024px){#surface-auth .pane-brand{display:block;order:1}#surface-auth .pane-form{order:2}}#surface-auth .pane-brand .grid-bg{position:absolute;inset:0;background-image:linear-gradient(to right,color-mix(in oklab,var(--n-white) 9%,transparent) 1px,transparent 1px),linear-gradient(to bottom,color-mix(in oklab,var(--n-white) 9%,transparent) 1px,transparent 1px);background-size:44px 44px;mask-image:radial-gradient(ellipse 80% 70% at 50% 40%,#000 40%,transparent 100%);-webkit-mask-image:radial-gradient(ellipse 80% 70% at 50% 40%,#000 40%,transparent 100%)}#surface-auth .pane-brand .brand-inner{position:relative;height:100%;display:flex;flex-direction:column;justify-content:center;padding:48px}#surface-auth .brand-hero{max-width:430px}#surface-auth .brand-hero .mark-lg{width:232px;margin-bottom:34px}#surface-auth .brand-hero h2{font-size:31px;line-height:1.15;font-weight:600;letter-spacing:-.025em;text-wrap:balance}#surface-auth .brand-hero p{margin-top:14px;font-size:15.5px;line-height:1.55;color:color-mix(in oklab,var(--n-white) 82%,transparent);text-wrap:pretty}#surface-auth .brand-steps{margin-top:28px;display:grid;gap:12px}#surface-auth .brand-step{display:flex;align-items:center;gap:12px;font-size:14.5px;color:color-mix(in oklab,var(--n-white) 88%,transparent)}#surface-auth .brand-step .tick{display:grid;place-items:center;width:22px;height:22px;border-radius:999px;background:color-mix(in oklab,var(--n-white) 18%,transparent);color:var(--n-white);flex:none}#surface-auth .brand-step .tick svg{width:13px;height:13px}#surface-auth .dock{position:fixed;top:16px;right:16px;z-index:50;display:flex;align-items:center;gap:6px;padding:6px;border:1px solid var(--border);border-radius:999px;background:color-mix(in oklab,var(--card) 88%,transparent);backdrop-filter:blur(8px);box-shadow:0 8px 30px rgb(0 0 0/.1)}#surface-auth .icon-btn{display:grid;place-items:center;width:34px;height:34px;border-radius:999px;border:1px solid transparent;background:transparent;color:var(--foreground);cursor:pointer}#surface-auth .icon-btn:hover{background:var(--accent)}#surface-auth .icon-btn svg{width:16px;height:16px}#surface-auth .reset-btn{display:inline-flex;align-items:center;gap:7px;height:34px;padding:0 14px 0 11px;border-radius:999px;border:1px solid var(--input);background:transparent;color:var(--foreground);font-size:13.5px;font-weight:500;cursor:pointer}#surface-auth .reset-btn:hover{background:var(--accent)}#surface-auth .reset-btn svg{width:15px;height:15px}#surface-auth .steps{display:flex;align-items:center;justify-content:center;gap:7px}#surface-auth .steps .sdot{width:7px;height:7px;border-radius:999px;background:var(--border)}#surface-auth .steps .sdot.on{background:var(--foreground);width:22px}.maps-field{position:relative}.maps-sug{position:absolute;top:calc(100% + 6px);left:0;right:0;z-index:30;background:var(--card);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:0 16px 40px rgb(0 0 0/.16);overflow:hidden;max-height:268px;overflow-y:auto}.maps-sug-item{display:flex;align-items:center;gap:10px;width:100%;padding:12px 13px;border:0;background:transparent;text-align:left;font-size:14.5px;color:var(--foreground);cursor:pointer}.maps-sug-item.hl,.maps-sug-item:hover{background:var(--accent)}.maps-sug-item svg{width:16px;height:16px;color:var(--muted-foreground);flex:none}.maps-sug-item .ms-sub{display:block;font-size:12.5px;color:var(--muted-foreground);margin-top:1px}.maps-sug-note{padding:8px 13px;font-size:12px;color:var(--muted-foreground);border-top:1px solid var(--border);background:var(--muted)}.app{display:grid;grid-template-columns:var(--sidebar-w) 1fr;height:100svh;overflow:hidden;transition:grid-template-columns .2s ease}.app.rail{--sidebar-w:70px}.sidebar{background:var(--sidebar);color:var(--sidebar-foreground);border-right:1px solid var(--sidebar-border);height:100%}.sb-head,.sidebar{display:flex;flex-direction:column;overflow:hidden}.sb-head{align-items:flex-start;justify-content:center;gap:4px;height:64px;padding:0 15px;flex:none}.sb-word{width:82px;flex:none}.sb-turtle{width:30px;flex:none;display:none}.sb-school{font-size:12.5px;color:var(--muted-foreground);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}.app.rail .sb-head{align-items:center;padding:0}.app.rail .sb-school,.app.rail .sb-word{display:none}.app.rail .sb-turtle{display:block}.sb-nav{flex:1 1 auto;overflow-y:auto;overscroll-behavior:contain;padding:12px;display:flex;flex-direction:column;gap:3px}.sb-group-label{font-size:11px;text-transform:uppercase;letter-spacing:.07em;color:var(--muted-foreground);padding:14px 10px 6px}.app.rail .sb-group-label{opacity:0;height:10px;padding:0}.nav-item{display:flex;align-items:center;gap:12px;height:44px;padding:0 11px;border-radius:var(--radius-md);color:color-mix(in oklab,var(--sidebar-foreground) 72%,transparent);font-size:14.5px;cursor:pointer;white-space:nowrap;transition:background-color .12s,color .12s}.nav-item svg{width:19px;height:19px;flex:none}.nav-item:hover{background:var(--sage-50);color:var(--sage-800)}.nav-item.active{font-weight:600}.nav-item.active,.nav-item.active:hover{background:var(--sidebar-accent);color:var(--sidebar-accent-foreground)}.nav-item:focus-visible{outline:2px solid var(--ring);outline-offset:-2px}.app.rail .nav-label{display:none}.sb-foot{border-top:1px solid var(--sidebar-border);padding:12px;display:flex;flex-direction:column;gap:3px;flex:none}.pb-desk{padding:26px 0 8px}#surface-auth .pb-brand{align-items:flex-start;margin-top:34px}@media (min-width:1024px){#surface-auth .pb-auth{display:none}}@media (max-width:767px){.pb-desk{display:none}}.main{display:flex;flex-direction:column;min-width:0;height:100%;overflow:hidden}.topbar{height:64px;flex:none;border-bottom:1px solid var(--border);display:flex;align-items:center;gap:12px;padding:0 20px;background:var(--card);z-index:20}.topbar-title{display:none;min-width:0}.topbar-logo{display:none;width:28px;flex:none}.topbar-title .tt-1{font-size:15px;font-weight:600;letter-spacing:-.01em}.topbar-title .tt-1,.topbar-title .tt-2{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.topbar-title .tt-2{font-size:12.5px;color:var(--muted-foreground)}.icon-btn{display:grid;place-items:center;width:40px;height:40px;border-radius:var(--radius-md);border:1px solid transparent;background:transparent;color:var(--foreground);cursor:pointer;flex:none}.icon-btn:hover{background:var(--accent)}.icon-btn:focus-visible{outline:2px solid var(--ring);outline-offset:1px}.icon-btn svg{width:19px;height:19px}.search{position:relative;flex:1 1 auto;max-width:460px}.search>svg{position:absolute;left:13px;top:50%;transform:translateY(-50%);width:17px;height:17px;color:var(--muted-foreground);pointer-events:none}.search input{width:100%;height:44px;border:1px solid var(--input);border-radius:var(--radius-md);background:var(--card);padding:0 13px 0 38px;font-size:15px;color:var(--foreground);outline:none;transition:box-shadow .15s,border-color .15s}.search input::placeholder{color:var(--muted-foreground)}.search input:focus-visible{border-color:var(--ring);box-shadow:0 0 0 3px color-mix(in oklab,var(--ring) 45%,transparent)}.topbar-right{margin-left:auto;display:flex;align-items:center;gap:6px;position:relative}.avatar{width:32px;height:32px;background:var(--accent);color:var(--accent-foreground);place-items:center;font-size:12.5px;font-weight:600;flex:none}.avatar,.profile-btn{border-radius:999px;display:grid}.profile-btn{place-items:center;width:44px;height:44px;border:1px solid transparent;background:transparent;cursor:pointer;color:var(--foreground)}.profile-btn.is-open,.profile-btn:hover{background:var(--accent)}.scroll-area{flex:1 1 auto;overflow-y:auto;overscroll-behavior:contain}.content{padding:28px 32px 64px;width:100%}.bottom-dock,.bottom-nav{display:none}@media (max-width:767px){.app,.app.rail{grid-template-columns:1fr}#sbToggle,.sidebar{display:none}.topbar-logo,.topbar-title{display:block}.content{padding:20px 16px 40px}.scroll-area{padding-bottom:calc(126px + env(safe-area-inset-bottom, 0px))}.bottom-dock{display:block;position:fixed;left:0;right:0;bottom:0;z-index:45;background:var(--card);border-top:1px solid var(--border);padding-bottom:env(safe-area-inset-bottom,0);box-shadow:0 -1px 0 rgb(0 0 0/.02)}.bottom-nav{display:grid;grid-template-columns:repeat(3,1fr)}.bottom-dock .poweredby{padding:7px 0 9px;border-top:1px solid var(--border)}.bn-item{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;height:62px;border:0;background:transparent;cursor:pointer;color:var(--muted-foreground);font-size:11.5px;font-weight:500;letter-spacing:-.01em;-webkit-tap-highlight-color:transparent}.bn-item svg{width:22px;height:22px;stroke-width:1.9}.bn-item.active{color:var(--sage-700);font-weight:600}.bn-item.active svg{stroke-width:2.4}.bn-item:focus-visible{outline:2px solid var(--ring);outline-offset:-3px;border-radius:var(--radius-md)}}.page-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:22px}.page-head h1{font-size:27px;font-weight:600;letter-spacing:-.02em}.page-head .sub{font-size:15px;color:var(--muted-foreground);margin-top:6px;max-width:62ch;line-height:1.5}.head-actions{display:flex;gap:10px;flex:none}@media (max-width:767px){.page-head{flex-direction:column;gap:14px}.page-head h1{font-size:23px}.head-actions{width:100%}.head-actions .btn{flex:1}}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;height:42px;padding:0 16px;border-radius:var(--radius-md);border:1px solid transparent;font-size:14.5px;font-weight:500;line-height:1;cursor:pointer;white-space:nowrap;transition:background-color .15s,opacity .15s;outline:none}.btn:focus-visible{box-shadow:0 0 0 3px color-mix(in oklab,var(--ring) 45%,transparent)}.btn svg{width:17px;height:17px}.btn-primary{background:var(--primary);color:var(--primary-foreground);box-shadow:0 1px 2px 0 rgb(0 0 0/.05)}.btn-primary:hover{background:var(--primary-hover)}.btn-outline{background:var(--card);color:var(--foreground);border-color:var(--border);box-shadow:0 1px 2px 0 rgb(0 0 0/.05)}.btn-outline:hover{background:var(--accent)}.btn-ghost{background:transparent;color:var(--foreground)}.btn-ghost:hover{background:var(--accent)}.btn-danger{background:transparent;color:var(--destructive);border-color:color-mix(in oklab,var(--destructive) 35%,var(--border))}.btn-danger:hover{background:color-mix(in oklab,var(--destructive) 8%,transparent)}.btn-sm{height:36px;padding:0 12px;font-size:13.5px}.btn-block{width:100%}.btn:disabled{opacity:.5;cursor:not-allowed}.card{border:1px solid var(--border);border-radius:var(--radius-xl);background:var(--card);box-shadow:0 1px 2px rgb(0 0 0/.03)}.narrow{max-width:820px}.table-wrap{overflow:hidden}.table-scroll{overflow-x:auto;-webkit-overflow-scrolling:touch}table{width:100%;border-collapse:collapse}thead th{text-align:left;font-size:12px;font-weight:600;letter-spacing:.05em;text-transform:uppercase;color:var(--muted-foreground);padding:13px 16px;white-space:nowrap}tbody td,thead th{border-bottom:1px solid var(--border)}tbody td{padding:14px 16px;font-size:15px;vertical-align:middle}tbody tr:last-child td{border-bottom:0}tbody tr.rowlink{cursor:pointer;transition:background-color .1s}tbody tr.rowlink:hover{background:color-mix(in oklab,var(--muted) 55%,transparent)}td.col-act,th.col-act{width:128px;text-align:right}td.col-check,th.col-check{width:46px;padding-right:0}.chk{appearance:none;width:18px;height:18px;border:1.5px solid color-mix(in oklab,var(--foreground) 30%,transparent);border-radius:4px;background:var(--card);cursor:pointer;display:grid;place-items:center;flex:none}.chk:checked{background:var(--primary);border-color:var(--primary)}.chk:checked:after{content:"";width:9px;height:5px;border:2px solid var(--primary-foreground);border-top:0;border-right:0;transform:rotate(-45deg) translate(.5px,-1px)}.chk:indeterminate{background:var(--primary);border-color:var(--primary)}.chk:indeterminate:after{content:"";width:9px;height:2px;background:var(--primary-foreground);border-radius:1px}.chk:focus-visible{box-shadow:0 0 0 3px color-mix(in oklab,var(--ring) 45%,transparent)}.bulk-bar{display:flex;align-items:center;gap:12px;padding:11px 16px;border:1px solid var(--border);border-radius:var(--radius-xl);background:var(--card);margin-bottom:14px;box-shadow:0 1px 2px rgb(0 0 0/.04)}.bulk-bar .bcount{font-size:14.5px;font-weight:500}.bulk-bar .bspace{margin-left:auto}.cell-person{display:flex;align-items:center;gap:11px}.cell-person .avatar{width:34px;height:34px;font-size:12px}.cell-person .pn,.cell-strong{font-weight:500}td .cell-strong{display:inline-block;max-width:240px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;vertical-align:middle}.cell-sub{font-size:13px;color:var(--muted-foreground);margin-top:2px}.badge{display:inline-flex;align-items:center;gap:6px;height:26px;padding:0 10px;border-radius:999px;font-size:13px;font-weight:500;border:1px solid var(--border);background:var(--card);color:var(--foreground);white-space:nowrap}.class-chips{display:flex;flex-wrap:nowrap;gap:5px;align-items:center}.cchip.more{background:transparent;border:1px dashed var(--border);color:var(--muted-foreground)}.cchip{padding:0 9px;background:var(--muted)}.cchip,.subj-chip{display:inline-flex;align-items:center;height:24px;border-radius:999px;font-size:12.5px;font-weight:500;white-space:nowrap}.subj-chip{padding:0 10px;background:var(--card);color:var(--muted-foreground);border:1px solid var(--input)}.subj-chips{display:flex;gap:5px;flex-wrap:nowrap;align-items:center}.st-pill{display:inline-flex;align-items:center;gap:6px;height:24px;padding:0 10px;border-radius:999px;font-size:12.5px;font-weight:600;white-space:nowrap;border:1px solid transparent}.st-pill:before{content:"";width:6px;height:6px;border-radius:999px;background:currentColor;flex:none}.st-pill.active{background:var(--ok-bg);color:var(--ok-fg);border-color:var(--ok-line)}.st-pill.pending{background:var(--wait-bg);color:var(--wait-fg);border-color:var(--wait-line)}.st-pill.inactive{background:var(--n-100);color:var(--n-600);border-color:var(--n-300)}.row-acts{display:flex;align-items:center;gap:2px;justify-content:flex-end}.act-ic{display:grid;place-items:center;width:38px;height:38px;border-radius:var(--radius-md);border:1px solid transparent;background:transparent;color:var(--muted-foreground);cursor:pointer;flex:none}.act-ic:hover{background:var(--accent);color:var(--foreground)}.act-ic:focus-visible{outline:2px solid var(--ring);outline-offset:1px}.act-ic.danger:hover{background:color-mix(in oklab,var(--destructive) 10%,transparent);color:var(--destructive)}.self-lock{display:inline-flex;cursor:not-allowed}.self-lock .act-ic:disabled{opacity:.4;pointer-events:none}.sheet-item:disabled{opacity:.5;cursor:not-allowed}.btn-danger{background:var(--destructive);color:var(--destructive-foreground);border-color:var(--destructive)}.btn-danger:hover{background:color-mix(in oklab,var(--destructive) 86%,#000);border-color:color-mix(in oklab,var(--destructive) 86%,#000)}.btn-danger:focus-visible{outline:2px solid var(--destructive);outline-offset:2px}.act-ic svg{width:17px;height:17px}td.table-empty{padding:56px 20px;text-align:center;color:var(--muted-foreground);font-size:15px;border-bottom:0}tr.table-empty-row:hover{background:transparent}.rlist-empty{padding:44px 20px;text-align:center;color:var(--muted-foreground);font-size:15px}.pager{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:13px 16px;border-top:1px solid var(--border);flex-wrap:wrap}.pager:empty{display:none}.pager-left{gap:16px;flex-wrap:wrap}.pager-left,.pager-right{display:flex;align-items:center}.pager-right{gap:12px;margin-left:auto}.pager-info,.pager-size{font-size:13.5px;color:var(--muted-foreground)}.pager-size{display:inline-flex;align-items:center;gap:8px}.pager-select{height:34px;min-width:62px;border:1px solid var(--border);border-radius:var(--radius-md);background:var(--card);color:var(--foreground);font-size:13.5px;padding:0 26px 0 10px;cursor:pointer;appearance:none;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%23888' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><path d='m6 9 6 6 6-6'/></svg>");background-repeat:no-repeat;background-position:right 7px center}.pager-select:focus-visible{border-color:var(--ring);box-shadow:0 0 0 3px color-mix(in oklab,var(--ring) 45%,transparent);outline:none}.pager-btn,.pager-page{font-size:13.5px;color:var(--foreground);white-space:nowrap}.pager-btn{display:inline-flex;align-items:center;gap:5px;height:36px;padding:0 12px;border-radius:var(--radius-md);border:1px solid var(--border);background:var(--card);font-weight:500;cursor:pointer}.pager-btn:hover:not(:disabled){background:var(--accent)}.pager-btn:focus-visible{outline:2px solid var(--ring);outline-offset:1px}.pager-btn:disabled{opacity:.45;cursor:not-allowed}.pager-btn svg{width:15px;height:15px}@media (max-width:620px){.pager{gap:10px}.pager-left,.pager-right{width:100%}.pager-right{justify-content:space-between;margin-left:0}}.search-row{display:flex;align-items:center;gap:10px;margin-bottom:16px}.search-row .search{flex:1 1 auto;max-width:none}.filter-wrap{position:relative;flex:none}.filter-btn{height:44px}.filter-count{display:inline-grid;place-items:center;min-width:19px;height:19px;padding:0 5px;border-radius:999px;background:var(--primary);color:var(--primary-foreground);font-size:11.5px;font-weight:600;font-variant-numeric:tabular-nums}.filter-panel{position:absolute;top:calc(100% + 8px);right:0;z-index:55;width:310px;max-width:calc(100vw - 32px);background:var(--card);border:1px solid var(--border);border-radius:var(--radius-xl);box-shadow:0 20px 50px rgb(0 0 0/.18);overflow:hidden}.fp-body{padding:16px 18px;display:grid;gap:14px}.fp-label{font-size:13.5px;font-weight:600;margin-bottom:6px}.fp-foot{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:13px 18px;border-top:1px solid var(--border)}@media (max-width:767px){.search-row .filter-btn .fb-label{display:none}}.empty{display:flex;flex-direction:column;align-items:center;text-align:center;padding:64px 24px}.empty .eic{display:grid;place-items:center;width:60px;height:60px;border-radius:var(--radius-lg);background:var(--muted);color:var(--muted-foreground);margin-bottom:18px}.empty .eic svg{width:28px;height:28px}.empty h2{font-size:19px;font-weight:600}.empty p{font-size:15px;color:var(--muted-foreground);margin-top:8px;max-width:44ch;line-height:1.55}.empty .eacts{display:flex;gap:10px;margin-top:22px;flex-wrap:wrap;justify-content:center}@media (max-width:767px){.empty{padding:44px 18px}.empty .eacts{width:100%}.empty .eacts .btn{flex:1}}.sub-head{display:flex;align-items:center;gap:12px;margin-bottom:22px;flex-wrap:wrap}.sub-head h1{font-size:23px;font-weight:600;letter-spacing:-.02em}.sub-head .sub{font-size:14px;color:var(--muted-foreground);margin-top:4px}.back-btn{display:inline-flex;align-items:center;gap:6px;height:40px;padding:0 13px 0 10px;border-radius:var(--radius-md);border:1px solid var(--border);background:var(--card);font-size:14px;cursor:pointer;color:var(--foreground)}.back-btn:hover{background:var(--accent)}.back-btn svg{width:16px;height:16px}.acad-label{font-size:12px;font-weight:600;letter-spacing:.07em;text-transform:uppercase;color:var(--muted-foreground);margin-bottom:12px}.acad-label-row{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px}.acad-block{margin-bottom:30px}.acad-count{color:var(--muted-foreground);font-variant-numeric:tabular-nums;margin-left:6px;font-weight:400}.tip-wrap{position:relative;display:inline-flex}.tip-wrap .btn:disabled{opacity:.5;cursor:not-allowed}.tip{position:absolute;top:calc(100% + 8px);right:0;z-index:60;width:268px;padding:10px 12px;border-radius:var(--radius-lg);background:var(--primary);color:var(--primary-foreground);font-size:13px;font-weight:400;line-height:1.5;box-shadow:0 12px 30px rgb(0 0 0/.2);opacity:0;visibility:hidden;transform:translateY(-4px);transition:opacity .14s,transform .14s,visibility .14s;pointer-events:none}.tip-wrap.tip-open .tip,.tip-wrap:focus-visible .tip,.tip-wrap:hover .tip{opacity:1;visibility:visible;transform:translateY(0)}.tip-wrap.tip-sm .tip{width:216px;font-size:12.5px;padding:9px 11px}.tip-wrap.tip-sm .act-ic:disabled{opacity:.4;cursor:not-allowed}@media (max-width:767px){.tip-wrap:not(.tip-sm),.tip-wrap:not(.tip-sm) .btn{width:100%}.tip-wrap:not(.tip-sm) .tip{left:0;right:0;width:auto}.tip-wrap.tip-sm .tip{display:none}}.setup-note{display:flex;align-items:flex-start;gap:12px;padding:14px 16px;margin-bottom:18px;border:1px solid var(--border);border-radius:var(--radius-xl);background:var(--card);box-shadow:0 1px 2px rgb(0 0 0/.03)}.setup-note .sn-ic{display:grid;place-items:center;width:22px;height:22px;flex:none;color:var(--muted-foreground);margin-top:1px}.setup-note .sn-ic svg{width:19px;height:19px}.setup-note .sn-txt{flex:1;min-width:0;font-size:14.5px;line-height:1.55;color:var(--foreground)}.setup-note .sn-x{display:grid;place-items:center;width:32px;height:32px;flex:none;border:0;border-radius:var(--radius-md);background:transparent;color:var(--muted-foreground);cursor:pointer}.setup-note .sn-x:hover{background:var(--accent);color:var(--foreground)}.setup-note .sn-x svg{width:16px;height:16px}.setup-note .sn-x:focus-visible{outline:2px solid var(--ring);outline-offset:1px}.acad-table td,.acad-table th{border-right:1px solid var(--border)}.acad-table td:last-child,.acad-table th:last-child{border-right:0}.acad-table td{vertical-align:top}.acad-table tbody tr:hover{background:transparent}.acad-table th:first-child{width:42%}.acad-name{font-weight:500;color:var(--foreground)}.acad-click{cursor:pointer}.acad-click:hover{background:color-mix(in oklab,var(--muted) 55%,transparent)}td.acad-parent{background:color-mix(in oklab,var(--muted) 30%,transparent)}.acad-subj{margin-top:10px}td.acad-parent.acad-click:hover{background:color-mix(in oklab,var(--muted) 60%,transparent)}.secc-inner{display:flex;align-items:center;gap:10px;min-height:32px}.acad-secacts{display:inline-flex;gap:2px;margin-left:auto;padding-left:12px;flex:none}.acad-secacts .act-ic{width:32px;height:32px}.acad-secacts .act-ic svg{width:16px;height:16px}.acad-secacts .act-ic.danger{color:var(--destructive)}tr.acad-addrow td.acad-add{border-top:1px dashed var(--border)}td.acad-add{cursor:pointer;color:var(--muted-foreground)}td.acad-add:hover{background:color-mix(in oklab,var(--muted) 55%,transparent);color:var(--foreground)}td.acad-add .add-inline{display:inline-flex;align-items:center;gap:7px;min-height:32px;font-size:14px;font-weight:500}td.acad-add .add-inline svg{width:16px;height:16px}.sec-card{display:flex;align-items:center;gap:14px;padding:15px 16px;border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--card);margin-bottom:10px}.sec-card .sc-name{font-weight:600;font-size:15px}.sec-card .sc-meta{font-size:13.5px;color:var(--muted-foreground);margin-top:3px}.sec-card .sc-right{margin-left:auto;display:flex;align-items:center;gap:2px;flex:none}.band{border:1px solid var(--border);border-radius:var(--radius-lg);overflow:hidden;margin-bottom:12px}.band-head{padding:12px 14px 0}.band-title{font-size:14px;font-weight:600}.band-note{font-size:13px;color:var(--muted-foreground);margin-top:3px;line-height:1.45}.band-body{padding:12px 14px 14px}.sec-chips{display:flex;flex-wrap:wrap;gap:7px}.sec{min-height:40px;padding:0 14px;border-radius:999px;border:1px solid var(--border);background:var(--card);font-size:14px;font-weight:500;cursor:pointer;color:var(--foreground);display:inline-flex;align-items:center;gap:7px}.sec:hover{background:var(--accent)}.sec:focus-visible{outline:2px solid var(--ring);outline-offset:2px}.sec:disabled{opacity:.4;cursor:not-allowed}.sec:disabled:hover{background:var(--card)}.sec.on{background:var(--primary);color:var(--primary-foreground);border-color:var(--primary)}.sec .sec-tick{width:15px;height:15px;display:none}.sec.on .sec-tick{display:block}.gband{display:flex;flex-wrap:wrap;gap:7px;margin-bottom:14px}.gchip{min-height:40px;padding:0 15px;border-radius:999px;border:1px solid var(--border);background:var(--card);font-size:14px;font-weight:500;cursor:pointer;color:var(--foreground);display:inline-flex;align-items:center;gap:7px}.gchip:hover{background:var(--accent)}.gchip:focus-visible{outline:2px solid var(--ring);outline-offset:2px}.gchip.sel{border-color:var(--primary)}.gchip .gcount,.gchip.sel{background:var(--primary);color:var(--primary-foreground)}.gchip .gcount{display:inline-flex;align-items:center;justify-content:center;min-width:20px;height:20px;padding:0 6px;border-radius:999px;font-size:11.5px;font-weight:600}.gchip.sel .gcount{background:var(--primary-foreground);color:var(--primary)}.pick-row{display:flex;align-items:center;gap:12px;padding:10px 0;border-bottom:1px solid var(--border);flex-wrap:wrap}.pick-row:last-child{border-bottom:0}.pick-row .pr-spacer{margin-left:auto}.seg{display:inline-flex;border:1px solid var(--border);border-radius:var(--radius-md);overflow:hidden;background:var(--card)}.seg button{height:38px;padding:0 13px;border:0;border-right:1px solid var(--border);background:transparent;color:var(--muted-foreground);font-size:13.5px;font-weight:500;cursor:pointer;white-space:nowrap}.seg button:last-child{border-right:0}.seg button:hover{background:var(--accent);color:var(--foreground)}.seg button.on{background:var(--primary);color:var(--primary-foreground)}.seg button:focus-visible{outline:2px solid var(--ring);outline-offset:-2px}.seg.needs{border-color:var(--destructive)}.seg button.taken,.seg button.taken:hover{background:var(--muted);color:color-mix(in oklab,var(--muted-foreground) 55%,transparent);cursor:not-allowed;text-decoration:line-through;text-decoration-thickness:1px}.seg button.on:not(:last-child){border-right-color:color-mix(in oklab,var(--primary-foreground) 45%,transparent)}.pick-summary{margin-top:12px;padding:12px 14px;border-radius:var(--radius-lg);background:var(--muted);font-size:13.5px;line-height:1.55;color:var(--foreground)}.pick-summary .ps-none,.ps-head{color:var(--muted-foreground)}.ps-head{font-size:11.5px;text-transform:uppercase;letter-spacing:.05em;font-weight:600;margin-bottom:6px}.ps-tbl{width:100%;border-collapse:collapse}.ps-tbl td{padding:7px 0;border-bottom:1px solid var(--border);vertical-align:middle}.ps-tbl tr:last-child td{border-bottom:0}.ps-tbl .ps-c{font-weight:600;font-size:14px;width:72px;white-space:nowrap}.ps-tbl .ps-need{font-size:13px;color:var(--destructive)}.field{display:grid;gap:7px;margin-bottom:18px}.label{font-size:14.5px;font-weight:500}.label .opt{color:var(--muted-foreground);font-weight:400;font-size:13.5px}.select,.text-input{height:44px;width:100%;border:1px solid var(--input);border-radius:var(--radius-md);background:var(--card);padding:0 12px;font-size:15px;color:var(--foreground);outline:none}.select:focus-visible,.text-input:focus-visible{border-color:var(--ring);box-shadow:0 0 0 3px color-mix(in oklab,var(--ring) 45%,transparent)}.select{appearance:none;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%23888' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><path d='m6 9 6 6 6-6'/></svg>");background-repeat:no-repeat;background-position:right 11px center;padding-right:34px}.input-wrap{display:flex;align-items:center;height:44px;border:1px solid var(--input);border-radius:var(--radius-md);background:var(--card);overflow:hidden}.input-wrap:focus-within{border-color:var(--ring);box-shadow:0 0 0 3px color-mix(in oklab,var(--ring) 45%,transparent)}.input-wrap .pfx{display:flex;align-items:center;height:100%;padding:0 11px;font-size:14.5px;color:var(--muted-foreground);border-right:1px solid var(--border)}.input-wrap input{flex:1;min-width:0;height:100%;border:0;outline:0;background:transparent;padding:0 12px;font-size:15px;color:var(--foreground);font-variant-numeric:tabular-nums}.input-wrap.is-invalid,.select.is-invalid,.text-input.is-invalid{border-color:var(--destructive)}.err-text{font-size:13px;font-weight:500;line-height:1.45}.err-text,.req{color:var(--destructive)}.req{font-weight:600;margin-left:-5px}.hint-text{font-size:13px;color:var(--muted-foreground);line-height:1.45}.overlay{position:fixed;inset:0;background:rgb(0 0 0/.5);z-index:40;animation:fade .15s ease}.modal{position:fixed;z-index:50;left:50%;top:50%;transform:translate(-50%,-50%);width:calc(100% - 32px);max-width:520px;background:var(--card);border:1px solid var(--border);border-radius:var(--radius-xl);box-shadow:0 24px 60px rgb(0 0 0/.22);display:flex;flex-direction:column;max-height:88svh;animation:pop .16s ease}.modal-w440{max-width:440px}.modal-w460{max-width:460px}.modal-w540{max-width:540px}.modal-w560{max-width:560px}.modal-w620{max-width:620px}.modal-head{display:flex;align-items:flex-start;gap:12px;padding:20px 20px 12px}.modal-head>div{min-width:0}.modal-head h3{font-size:18px;font-weight:600;letter-spacing:-.01em;overflow-wrap:anywhere}.modal-head .mh-sub{font-size:14px;color:var(--muted-foreground);margin-top:4px;line-height:1.45;overflow-wrap:anywhere}.modal-head .x{margin-left:auto;flex:none}.modal-body{padding:4px 20px 8px;overflow-y:auto}.modal-foot{display:flex;gap:10px;justify-content:flex-end;padding:16px 20px 20px}@media (max-width:620px){.modal,.modal-w440,.modal-w460,.modal-w540,.modal-w560,.modal-w620{left:0;right:0;bottom:0;top:auto;transform:none;width:100%;max-width:none;border-radius:var(--radius-xl) var(--radius-xl) 0 0;max-height:92svh;animation:sheetup .2s ease;padding-bottom:env(safe-area-inset-bottom,0)}.modal-foot{flex-direction:column-reverse}.modal-foot .btn{width:100%}}.drawer{position:fixed;z-index:50;top:0;right:0;height:100svh;width:440px;max-width:100vw;background:var(--card);border-left:1px solid var(--border);box-shadow:-18px 0 50px rgb(0 0 0/.16);display:flex;flex-direction:column;animation:slide .2s ease}.drawer-head{padding:20px;border-bottom:1px solid var(--border);display:flex;align-items:flex-start;gap:12px}.drawer-head .avatar{width:44px;height:44px;font-size:15px}.drawer-head>div{min-width:0}.drawer-head h3{font-size:18px;font-weight:600;overflow-wrap:anywhere;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;line-clamp:2;overflow:hidden}.drawer-head .dh-sub{font-size:13.5px;color:var(--muted-foreground);margin-top:3px}.drawer-body{flex:1 1 auto;overflow-y:auto;overscroll-behavior:contain;display:flex;flex-direction:column;gap:26px;padding:20px 20px calc(20px + env(safe-area-inset-bottom, 0px))}.dsec .dsec-t{font-size:12px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--muted-foreground);margin-bottom:10px}.dl{display:flex;align-items:center;gap:12px;padding:12px 0;border-bottom:1px solid var(--border);font-size:14.5px}.dl:last-child{border-bottom:0}.dl .dk{color:var(--muted-foreground);width:116px;flex:none;font-size:14px}.dl .dv{font-weight:500;min-width:0;overflow-wrap:anywhere}.drawer-foot{flex:none;display:flex;gap:10px;padding:16px 20px calc(16px + env(safe-area-inset-bottom, 0px));border-top:1px solid var(--border);background:var(--card)}.drawer-foot .btn{flex:1}.drawer .dform .field:last-child{margin-bottom:0}@media (max-width:620px){.drawer{width:100%;border-left:0}.dl,.dl .dk{display:block}.dl .dk{width:auto;margin-bottom:5px}}.notice{display:grid;grid-template-columns:auto 1fr;gap:12px;align-items:start;padding:14px 16px;border:1px solid var(--border);border-radius:var(--radius-lg);font-size:14px;line-height:1.5;background:var(--card)}.notice>svg{width:18px;height:18px;margin-top:1px;flex:none}.notice .nt{font-weight:600}.notice .nd{color:var(--muted-foreground);margin-top:3px}.notice.warn{border-color:color-mix(in oklab,var(--wait-line) 45%,var(--border));background:color-mix(in oklab,var(--wait-line) 7%,var(--card))}.notice.warn>svg{color:var(--wait-fg)}.notice.bad{border-color:color-mix(in oklab,var(--destructive) 45%,var(--border));background:color-mix(in oklab,var(--destructive) 6%,var(--card))}.notice.bad>svg{color:var(--destructive)}.context-pill{display:inline-flex;align-items:center;gap:8px;height:34px;padding:0 13px;border-radius:999px;background:var(--muted);font-size:13.5px;font-weight:500}.context-pill svg{width:15px;height:15px;color:var(--muted-foreground)}.toast{position:fixed;left:50%;bottom:26px;transform:translateX(-50%);z-index:60;display:flex;align-items:center;gap:10px;padding:13px 18px;border-radius:999px;background:var(--primary);color:var(--primary-foreground);font-size:14px;font-weight:500;box-shadow:0 12px 34px rgb(0 0 0/.24);animation:up .2s ease;max-width:calc(100vw - 32px)}.toast svg{width:16px;height:16px;flex:none}@media (max-width:767px){.toast{bottom:calc(138px + env(safe-area-inset-bottom, 0px))}}.route-list{display:flex;flex-direction:column;gap:10px}.route-row{display:flex;align-items:flex-start;gap:13px;width:100%;padding:15px 16px;border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--card);cursor:pointer;text-align:left;transition:border-color .12s,background-color .12s}.route-row:hover{border-color:color-mix(in oklab,var(--foreground) 32%,transparent);background:color-mix(in oklab,var(--muted) 40%,transparent)}.route-row:focus-visible{outline:2px solid var(--ring);outline-offset:2px}.route-row .rr-ic{display:grid;place-items:center;width:40px;height:40px;border-radius:var(--radius-md);background:var(--muted);color:var(--foreground);flex:none}.route-row .rr-ic svg{width:20px;height:20px}.route-row .rr-txt{min-width:0;flex:1;display:block}.route-row .rr-t{display:block;font-size:15px;font-weight:600}.route-row .rr-d{display:block;font-size:13.5px;color:var(--muted-foreground);line-height:1.45;margin-top:2px}.route-row .rr-best{display:inline-flex;align-items:center;gap:5px;margin-top:7px;font-size:12.5px;font-weight:500;color:var(--muted-foreground)}.route-row .rr-best svg{width:13px;height:13px}.route-row .rr-go{color:var(--muted-foreground);flex:none;align-self:center}.route-row .rr-go svg{width:18px;height:18px}.dropzone{border:1.5px dashed var(--border);border-radius:var(--radius-xl);background:var(--card);padding:34px 24px;text-align:center;cursor:pointer;transition:border-color .15s,background-color .15s}.dropzone.over,.dropzone:hover{border-color:color-mix(in oklab,var(--foreground) 40%,transparent);background:color-mix(in oklab,var(--muted) 50%,transparent)}.dropzone:focus-visible{outline:2px solid var(--ring);outline-offset:2px}.dropzone.locked{opacity:.5;cursor:not-allowed}.dropzone.locked:hover{border-color:var(--border);background:var(--card)}.select:disabled{opacity:.55;cursor:not-allowed}.dropzone .dic{display:grid;place-items:center;width:48px;height:48px;border-radius:999px;background:var(--muted);color:var(--muted-foreground);margin:0 auto 14px}.dropzone .dic svg{width:22px;height:22px}.dropzone .dt{font-size:15.5px;font-weight:500}.dropzone .ds{font-size:13.5px;color:var(--muted-foreground);margin-top:5px}.samplerow{display:flex;align-items:center;gap:14px;width:100%;margin-top:16px;padding:14px 16px;border:1px solid var(--border);border-radius:var(--radius-lg);background:color-mix(in oklab,var(--muted) 45%,var(--card))}.samplerow .sr-ic{display:grid;place-items:center;width:44px;height:44px;flex:none;border:1px solid var(--border);border-radius:var(--radius-md);background:var(--card);color:var(--success)}.samplerow .sr-ic svg{width:21px;height:21px}.samplerow .sr-txt{flex:1;min-width:0}.samplerow .sr-t{display:block;font-size:14.5px;font-weight:600;letter-spacing:-.01em}.samplerow .sr-d{display:block;font-size:13px;color:var(--muted-foreground);margin-top:2px;line-height:1.45;overflow-wrap:anywhere}.samplerow .sr-dl{display:inline-flex;align-items:center;gap:8px;flex:none;height:38px;padding:0 13px;border:0;border-radius:var(--radius-md);background:transparent;color:var(--foreground);font-size:14px;font-weight:500;cursor:pointer}.samplerow .sr-dl:hover{background:var(--accent)}.samplerow .sr-dl:focus-visible{outline:2px solid var(--ring);outline-offset:1px}.samplerow .sr-dl svg{width:16px;height:16px}.file-row{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-top:14px}@media (max-width:560px){.samplerow{flex-wrap:wrap}.samplerow .sr-dl{width:100%;justify-content:center;border:1px solid var(--border)}}.file-pill{display:inline-flex;align-items:center;gap:9px;padding:9px 13px;border:1px solid var(--border);border-radius:999px;background:var(--card);font-size:13.5px}.file-pill svg{width:16px;height:16px;color:var(--muted-foreground)}.bulk-wrap{border:1px solid var(--border);border-radius:var(--radius-xl);background:var(--card);overflow:hidden}.bulk-scroll{overflow-x:auto;-webkit-overflow-scrolling:touch}table.bulk{width:100%;border-collapse:collapse;min-width:720px}table.bulk thead th{padding:11px 12px;font-size:11.5px}table.bulk td{padding:6px 8px;border-bottom:1px solid var(--border);vertical-align:top}table.bulk tbody tr:hover{background:transparent}table.bulk .bnum{width:46px;text-align:center;color:var(--muted-foreground);font-size:13px;font-variant-numeric:tabular-nums;padding-top:17px}table.bulk .bdel{width:52px}.gcell{position:relative}.gin{width:100%;height:42px;border:1px solid var(--input);border-radius:var(--radius-md);background:var(--card);padding:0 11px;font-size:14.5px;color:var(--foreground);outline:none}.gin:focus{border-color:var(--ring);box-shadow:0 0 0 3px color-mix(in oklab,var(--ring) 45%,transparent);position:relative;z-index:2}.gin.num{font-variant-numeric:tabular-nums}.gin.bad{border-color:var(--destructive)}.gerr{font-size:12px;color:var(--destructive);margin-top:4px;line-height:1.35}.gwrap-phone{display:flex;align-items:center;height:42px;border:1px solid var(--input);border-radius:var(--radius-md);background:var(--card);overflow:hidden}.gwrap-phone:focus-within{border-color:var(--ring);box-shadow:0 0 0 3px color-mix(in oklab,var(--ring) 45%,transparent)}.gwrap-phone.bad{border-color:var(--destructive)}.gwrap-phone .gpfx{padding:0 9px;font-size:13.5px;color:var(--muted-foreground);border-right:1px solid var(--border);height:100%;display:flex;align-items:center}.gwrap-phone input{flex:1;min-width:0;height:100%;border:0;outline:0;background:transparent;padding:0 10px;font-size:14.5px;color:var(--foreground);font-variant-numeric:tabular-nums}.bulk-foot{display:flex;align-items:center;gap:12px;padding:14px 16px;border-top:1px solid var(--border);flex-wrap:wrap}.bulk-foot .bf-space{margin-left:auto}.count-pill{display:inline-flex;align-items:center;gap:7px;height:30px;padding:0 11px;border-radius:999px;font-size:13px;font-weight:500;background:var(--muted);color:var(--foreground);font-variant-numeric:tabular-nums}.count-pill.good{background:color-mix(in oklab,var(--success) 16%,var(--card));color:color-mix(in oklab,var(--success) 78%,var(--foreground))}.count-pill.bad{background:color-mix(in oklab,var(--destructive) 13%,var(--card));color:var(--destructive)}.count-pill svg{width:14px;height:14px}.imp-summary{gap:8px;flex-wrap:wrap;margin-bottom:16px}.imp-head,.imp-summary{display:flex;align-items:center}.imp-head{gap:12px;padding:12px 16px}.imp-head .btn{margin-left:auto}table.bulk td.fix-acts{padding:10px 12px;white-space:nowrap;vertical-align:top}.fix-acts-in{display:inline-flex;align-items:center;gap:6px}table.bulk td.fix-acts .btn{gap:6px}table.bulk td.fix-acts .btn svg{width:14px;height:14px}table.bulk tr.fix-note td{border-top:0;padding:0 12px 10px}table.bulk tr.fix-note:hover{background:transparent}.sticky-foot{position:sticky;bottom:0;display:flex;align-items:center;gap:12px;padding:14px 0 0;margin-top:18px;border-top:1px solid var(--border);background:var(--background);flex-wrap:wrap}.sticky-foot .sf-note{font-size:13.5px;color:var(--muted-foreground)}.sticky-foot .sf-acts{margin-left:auto;display:flex;gap:10px}@media (max-width:620px){.sticky-foot{flex-direction:column;align-items:stretch}.sticky-foot .sf-acts{margin-left:0}.sticky-foot .sf-acts .btn{flex:1}}.result{display:flex;flex-direction:column;align-items:center;text-align:center;padding:60px 24px}.result .rbadge{display:grid;place-items:center;width:60px;height:60px;border-radius:999px;background:var(--primary);color:var(--primary-foreground);margin-bottom:20px}.result .rbadge svg{width:29px;height:29px}.result h2{font-size:23px;font-weight:600;letter-spacing:-.02em}.result p{font-size:15px;color:var(--muted-foreground);margin-top:9px;max-width:46ch;line-height:1.55}.result .racts{display:flex;gap:10px;margin-top:24px;flex-wrap:wrap;justify-content:center}.handoff{display:flex;flex-direction:column;align-items:center;text-align:center;padding:40px 22px}.handoff .hic{display:grid;place-items:center;width:60px;height:60px;border-radius:var(--radius-lg);background:var(--muted);color:var(--muted-foreground);margin-bottom:18px}.handoff .hic svg{width:28px;height:28px}.handoff h2{font-size:19px;font-weight:600}.handoff p{font-size:15px;color:var(--muted-foreground);margin-top:9px;max-width:40ch;line-height:1.55}.handoff .hacts{display:flex;flex-direction:column;gap:10px;margin-top:22px;width:100%;max-width:320px}.linkpanel{display:flex;align-items:center;gap:16px;padding:20px;border:1px solid var(--border);border-radius:var(--radius-xl);background:var(--card);box-shadow:0 1px 3px rgb(0 0 0/.05);margin-bottom:18px;flex-wrap:wrap}.linkpanel .lp-txt{min-width:0;flex:1 1 260px}.linkpanel .lp-t{display:block;font-size:17px;font-weight:600;letter-spacing:-.01em}.linkpanel .lp-d{font-size:14px;margin-top:3px;line-height:1.5}.linkpanel .lp-avail,.linkpanel .lp-d{display:block;color:var(--muted-foreground)}.linkpanel .lp-avail{font-size:13px;font-weight:500}.linkpanel .lp-stores{display:flex;flex-direction:column;align-items:flex-start;gap:9px;flex:none;align-self:center}.linkpanel .lp-badges{display:flex;align-items:center;gap:14px;flex-wrap:wrap}.storeset{display:inline-flex;align-items:center;gap:6px}.badge-link{display:block;border-radius:7px;transition:opacity .14s,transform .14s}.badge-link:hover{opacity:.82}.badge-link:focus-visible{outline:2px solid var(--ring);outline-offset:3px}.badge-link svg{display:block;height:44px;width:auto}.badge-copy{display:grid;place-items:center;width:44px;height:44px;border:1px solid var(--border);border-radius:8px;background:var(--card);color:var(--muted-foreground);cursor:pointer;flex:none;transition:background-color .14s,color .14s}.badge-copy:hover{background:var(--accent);color:var(--foreground)}.badge-copy:focus-visible{outline:2px solid var(--ring);outline-offset:2px}.badge-copy svg{width:17px;height:17px}@media (max-width:860px){.linkpanel{align-items:flex-start}.linkpanel .lp-stores{width:100%;align-self:flex-start}}@media (max-width:420px){.linkpanel .lp-badges{gap:10px}.badge-link svg{height:40px}.badge-copy{width:40px;height:40px}}.app-block{max-width:900px;margin-bottom:34px}.app-block-head{display:flex;align-items:flex-start;gap:13px;margin-bottom:14px}.app-block-head .abh-ic{display:grid;place-items:center;width:44px;height:44px;border-radius:var(--radius-lg);background:var(--primary);color:var(--primary-foreground);flex:none}.app-block-head .abh-ic svg{width:22px;height:22px}.app-block-head h2{font-size:17px;font-weight:600;letter-spacing:-.01em}.app-block-head .abh-who{font-size:13.5px;color:var(--muted-foreground);margin-top:3px;line-height:1.5}.plat-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}@media (max-width:720px){.plat-grid{grid-template-columns:1fr}}.plat-card{position:relative;overflow:hidden;padding:22px 24px 24px;border:1px solid var(--border);border-radius:var(--radius-xl);background:var(--card);box-shadow:0 1px 2px rgb(0 0 0/.03)}.plat-card .pc-t{font-size:22px;font-weight:600;letter-spacing:-.02em}.plat-card .pc-s{font-size:13.5px;color:var(--muted-foreground);margin-top:3px}.plat-card .pc-acts{display:flex;gap:9px;margin-top:18px;flex-wrap:wrap}.plat-card .pc-glyph{position:absolute;right:-14px;bottom:-14px;width:104px;height:104px;border-radius:999px;background:var(--muted);display:grid;place-items:center;pointer-events:none}.plat-card .pc-glyph svg{width:40px;height:40px;margin:-8px 0 0 -8px;color:color-mix(in oklab,var(--foreground) 42%,transparent)}.plat-card .pc-acts,.plat-card .pc-s,.plat-card .pc-t{position:relative;z-index:1}.pmenu{position:absolute;top:calc(100% + 12px);right:0;z-index:56;width:312px;max-width:calc(100vw - 24px);background:var(--card);border:1px solid var(--border);border-radius:var(--radius-xl);box-shadow:0 22px 55px rgb(0 0 0/.2);overflow:hidden;animation:pmpop .14s ease}.pm-head{display:flex;align-items:center;gap:12px;padding:16px}.pm-head .avatar{width:42px;height:42px;font-size:14px}.pm-id{min-width:0;flex:1}.pm-name{font-size:14.5px;font-weight:600;letter-spacing:-.01em}.pm-meta,.pm-name{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.pm-meta{font-size:13px;color:var(--muted-foreground);margin-top:2px}.pm-school{display:flex;align-items:center;gap:12px;padding:13px 16px;border-top:1px solid var(--border);border-bottom:1px solid var(--border);background:var(--muted)}.pm-list{padding:6px}.pm-item{display:flex;align-items:center;gap:11px;width:100%;padding:11px 10px;border:0;border-radius:var(--radius-md);background:transparent;color:var(--foreground);font-size:14.5px;font-weight:500;text-align:left;cursor:pointer}.pm-item svg{width:17px;height:17px;flex:none;color:var(--muted-foreground)}.pm-item:hover{background:var(--accent)}.pm-item.danger,.pm-item.danger svg{color:var(--destructive)}.pm-item.danger:hover{background:color-mix(in oklab,var(--destructive) 10%,transparent)}.pm-sep{height:1px;background:var(--border)}.pf-card{max-width:none;margin-bottom:18px;overflow:hidden}.pf-body{padding:4px 20px}.pf-row{display:grid;grid-template-columns:240px 1fr;align-items:center;gap:20px;min-height:58px;padding:12px 0;border-bottom:1px solid var(--border);font-size:15px}.pf-row:last-child{border-bottom:0}.pf-k{font-size:14.5px;color:var(--muted-foreground)}.pf-v{min-width:0;font-weight:500;overflow-wrap:anywhere}.pf-v.is-empty{font-weight:400;color:var(--muted-foreground)}.pf-a{display:flex;gap:4px;justify-content:flex-end}.pf-edit{grid-column:2/4;display:flex;align-items:center;gap:10px;flex-wrap:wrap}.pf-edit .input-wrap,.pf-edit .select,.pf-edit .text-input{max-width:380px;flex:1 1 220px}.pf-edit .err-text{flex:1 1 100%}.pf-note{font-size:13px;color:var(--muted-foreground);padding:14px 20px 16px;margin-top:2px;border-top:1px solid var(--border);background:var(--muted);line-height:1.5}@media (max-width:760px){.pf-row{grid-template-columns:1fr;gap:4px;padding:14px 0}}.touch-card{display:flex;align-items:flex-start;gap:16px;padding:22px;flex-wrap:wrap}.touch-card .tc-ic{display:grid;place-items:center;width:48px;height:48px;border-radius:var(--radius-lg);background:var(--muted);color:var(--foreground);flex:none}.touch-card .tc-ic svg{width:23px;height:23px}.touch-card .tc-txt{flex:1 1 260px;min-width:0}.touch-card h2{font-size:17px;font-weight:600;letter-spacing:-.01em}.touch-card p{font-size:14.5px;color:var(--muted-foreground);margin-top:5px;line-height:1.55}.touch-card p.tc-note{font-size:13.5px;font-weight:500;color:var(--foreground);margin-top:8px}.touch-card .tc-acts{display:flex;align-items:center;gap:10px;flex:none;align-self:center;flex-wrap:wrap}.touch-card .tc-acts .btn{text-decoration:none}.touch-card .tc-mail{flex:1 1 100%;display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin-top:4px;padding-top:18px;border-top:1px solid var(--border)}.touch-card .tm-block{display:flex;flex-direction:column;gap:5px;min-width:0}.touch-card .tm-line{display:flex;align-items:center;gap:10px;min-width:0}.touch-card .tm-k{font-size:13.5px;color:var(--muted-foreground)}.touch-card .tc-mail .btn{margin-left:auto}.touch-card .tm-v{font-size:15px;font-weight:600;color:var(--foreground);text-decoration:underline;text-underline-offset:3px;text-decoration-color:color-mix(in oklab,var(--foreground) 30%,transparent);user-select:all}.touch-card .tm-v:hover{text-decoration-color:var(--foreground)}.touch-card .tm-copy{display:grid;place-items:center;width:38px;height:38px;border:1px solid var(--border);border-radius:var(--radius-md);background:var(--card);color:var(--muted-foreground);cursor:pointer;flex:none;transition:background-color .14s,color .14s}.touch-card .tm-copy:hover{background:var(--accent);color:var(--foreground)}.touch-card .tm-copy:focus-visible{outline:2px solid var(--ring);outline-offset:2px}.touch-card .tm-copy svg{width:16px;height:16px}@media (max-width:700px){.touch-card .tc-mail{align-items:flex-start}.touch-card .tc-mail .btn{margin-left:0;width:100%}.touch-card .tc-acts{width:100%;align-self:flex-start}.touch-card .tc-acts .btn{flex:1 1 auto}}.tk-known{border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--muted);padding:12px 14px;margin-bottom:18px}.tk-row{display:flex;gap:12px;align-items:baseline;padding:5px 0}.tk-row .tk-k{font-size:13.5px;color:var(--muted-foreground);flex:none;width:108px}.tk-row .tk-v{font-size:14.5px;font-weight:600;min-width:0;overflow-wrap:anywhere}.tk-note{font-size:13px;color:var(--muted-foreground);margin-top:8px;line-height:1.45}.ta-input{width:100%;min-height:96px;border:1px solid var(--input);border-radius:var(--radius-md);background:var(--card);padding:10px 12px;font:inherit;font-size:15px;color:var(--foreground);resize:vertical}.ta-input:focus{outline:2px solid var(--ring);outline-offset:-1px;border-color:var(--ring)}.ta-input.is-invalid{border-color:var(--destructive)}.ta-foot{display:flex;align-items:center;gap:10px;margin-top:6px}.ta-count{margin-left:auto;font-size:12.5px;color:var(--muted-foreground);font-variant-numeric:tabular-nums}.ta-count.at-limit{color:var(--destructive);font-weight:600}.done-mark{display:grid;place-items:center;width:62px;height:62px;border-radius:999px;margin:4px auto 18px;background:color-mix(in oklab,var(--success) 16%,var(--card));color:var(--success)}.done-mark svg{width:30px;height:30px}.done-body{text-align:center;padding:6px 4px 2px}.done-body h3{font-size:19px;font-weight:600;letter-spacing:-.01em}.done-body p{font-size:14.5px;color:var(--muted-foreground);margin-top:8px;line-height:1.55;max-width:38ch;margin-inline:auto}@media (max-width:767px){.rlist{display:flex;flex-direction:column}.rrow{display:flex;align-items:flex-start;gap:13px;padding:15px 16px;border-bottom:1px solid var(--border)}.rrow:last-child{border-bottom:0}.rrow .rr-main{min-width:0;flex:1}.rrow .rr-name{font-size:15.5px;font-weight:600;letter-spacing:-.01em}.rrow .rr-meta{font-size:13.5px;color:var(--muted-foreground);margin-top:4px;line-height:1.5;overflow-wrap:anywhere}.rrow .rr-chips{margin-top:9px}.rrow .rr-more{flex:none}.fac-row{display:flex;flex-direction:column;padding:14px 16px;border-bottom:1px solid var(--border)}.fac-row:last-child{border-bottom:0}.fac-row-head{display:flex;align-items:center;gap:10px}.avatar.sm{width:34px;height:34px;font-size:12.5px;flex:none}.fac-row-name{flex:1;min-width:0;font-size:15.5px;font-weight:600;letter-spacing:-.01em;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.fac-row-head .st-pill,.fac-row-more{flex:none}.fac-row-body{display:block;width:100%;text-align:left;background:transparent;border:0;cursor:pointer;padding:0 0 0 44px}.fac-row-meta{display:flex;align-items:center;gap:6px;margin-top:4px;font-size:13px;color:var(--muted-foreground)}.fac-row-dot{opacity:.6}.fac-row-chips{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin-top:10px}.fac-row-chips .class-chips,.fac-row-chips .subj-chips{display:inline-flex;flex-wrap:wrap;gap:6px}}.rlist{display:none}@media (max-width:767px){.desk-only{display:none!important}.rlist{display:flex}}@media (min-width:768px){.mob-only{display:none!important}}.sheet{position:fixed;z-index:50;left:0;right:0;bottom:0;background:var(--card);border-top:1px solid var(--border);border-radius:var(--radius-xl) var(--radius-xl) 0 0;box-shadow:0 -14px 44px rgb(0 0 0/.22);animation:sheetup .2s ease;padding-bottom:env(safe-area-inset-bottom,0)}.sheet-head{padding:18px 20px 8px}.sheet-head .sh-t{font-size:16px;font-weight:600;overflow-wrap:anywhere}.sheet-head .sh-s{font-size:13.5px;color:var(--muted-foreground);margin-top:3px;overflow-wrap:anywhere}.sheet-list{padding:6px 10px 14px;display:flex;flex-direction:column;gap:2px}.sheet-item{display:flex;align-items:center;gap:13px;width:100%;padding:15px 12px;border:0;border-radius:var(--radius-md);background:transparent;color:var(--foreground);font-size:15.5px;font-weight:500;text-align:left;cursor:pointer}.sheet-item svg{width:19px;height:19px;color:var(--muted-foreground);flex:none}.sheet-item:hover{background:var(--accent)}.sheet-item.danger,.sheet-item.danger svg{color:var(--destructive)}}@keyframes fade{0%{opacity:0}}@keyframes pop{0%{opacity:0;transform:translate(-50%,-48%) scale(.97)}}@keyframes sheetup{0%{transform:translateY(14px);opacity:.7}}@keyframes slide{0%{transform:translateX(16px);opacity:.6}}@keyframes up{0%{opacity:0;transform:translate(-50%,8px)}}@keyframes pmpop{0%{opacity:0;transform:translateY(-6px)}}.dark .school-portal,html.dark .school-portal{--background:#000000;--foreground:#f4f4f5;--card:#101012;--card-foreground:#f4f4f5;--popover:#101012;--popover-foreground:#f4f4f5;--primary:#b7ccb9;--primary-foreground:#0b0b0d;--primary-hover:#c9d6c7;--secondary:#1b1b1e;--secondary-foreground:#f4f4f5;--muted:#1b1b1e;--muted-foreground:#a1a1aa;--accent:#1b1b1e;--accent-foreground:#f4f4f5;--nav-hover:#1b1b1e;--destructive:#ff8a80;--destructive-foreground:#0b0b0d;--success:#b7ccb9;--border:#262629;--input:#3a3a3f;--ring:#6e8472;--sidebar:#000000;--sidebar-foreground:#f4f4f5;--sidebar-accent:#232327;--sidebar-accent-foreground:#f4f4f5;--sidebar-border:#1e1e21;--ok-bg:#14311a;--ok-fg:#cfe6cf;--ok-line:#2f5236;--wait-bg:#3a2f14;--wait-fg:#e7c887;--wait-line:#5a4a22;--danger-bg:#3a1f1d;--danger-fg:#ffb4ab;--logo-ink:#f4f4f5;--ti-ink:#f4f4f5}.dark .school-portal .st-pill.inactive,html.dark .school-portal .st-pill.inactive{background:#1e3324;color:#a9b8ac;border-color:#35503f}.dark .school-portal .subj-chip,html.dark .school-portal .subj-chip{color:var(--muted-foreground);border-color:var(--input)}@font-face{font-family:GeistSans;src:url(/_next/static/media/0b78ff376f6b9734-s.p.woff2) format("woff2");font-display:swap;font-weight:100 900}@font-face{font-family:GeistSans Fallback;src:local("Arial");ascent-override:94.56%;descent-override:27.76%;line-gap-override:0.00%;size-adjust:106.28%}.__className_8adcd2{font-family:GeistSans,GeistSans Fallback}.__variable_8adcd2{--font-geist-sans:"GeistSans","GeistSans Fallback"}@font-face{font-family:GeistMono;src:url(/_next/static/media/723e11e5093b8e80.p.woff2) format("woff2");font-display:swap;font-weight:100 900}.__className_46451f{font-family:GeistMono,ui-monospace,SFMono-Regular,Roboto Mono,Menlo,Monaco,Liberation Mono,DejaVu Sans Mono,Courier New,monospace}.__variable_46451f{--font-geist-mono:"GeistMono",ui-monospace,SFMono-Regular,Roboto Mono,Menlo,Monaco,Liberation Mono,DejaVu Sans Mono,Courier New,monospace}