.learn-header{position:-webkit-sticky;position:sticky;top:0;z-index:20;background:color-mix(in srgb,var(--bg) 88%,transparent);backdrop-filter:saturate(1.6) blur(14px);-webkit-backdrop-filter:saturate(1.6) blur(14px);border-bottom:1px solid var(--line)}.learn-header-inner{max-width:1100px;margin:0 auto;padding:10px 20px;display:flex;align-items:center;gap:14px}.learn-logo{width:28px;height:28px;border-radius:8px;background:linear-gradient(145deg,var(--brand),var(--brand-700));display:grid;place-items:center;flex-shrink:0}.learn-logo-letter{font-size:12px;font-weight:800;color:#fff}.hw-card{position:relative;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--sh-xs);padding:16px 18px;display:flex;flex-direction:column;gap:10px;transition:box-shadow .16s var(--ease),border-color .16s var(--ease),transform .16s var(--ease)}.hw-card:hover{box-shadow:var(--sh);border-color:var(--line-2);transform:translateY(-1px)}.hw-card .hw-title{font-weight:700;font-size:15px;letter-spacing:-.01em;color:var(--txt);line-height:1.35}.hw-card .hw-meta{color:var(--txt-3);font-size:12.5px;font-weight:500;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.hw-card .hw-scores{color:var(--txt-3);font-size:13px}.hw-card .hw-scores strong{color:var(--brand-700);font-weight:700}.hw-card>:last-child{margin-top:auto}.hw-card.is-due{border-color:color-mix(in srgb,var(--accent) 34%,var(--line))}.hw-card.is-due:before{content:"";position:absolute;inset:0 auto 0 0;width:4px;border-radius:var(--radius) 0 0 var(--radius);background:var(--accent)}.hw-card.is-overdue{border-color:color-mix(in srgb,var(--danger) 32%,var(--line))}.hw-card.is-overdue:before{background:var(--danger)}.hw-card.is-done{background:var(--surface-2);box-shadow:none}.hw-card.is-done .hw-title{color:var(--txt-2)}.hw-card.is-done:hover{transform:none;box-shadow:var(--sh-xs)}.lex-bar.is-last{background:linear-gradient(180deg,var(--brand-700),var(--brand))!important;box-shadow:0 0 0 2px color-mix(in srgb,var(--brand) 30%,transparent)}.badge-card.earned{background:radial-gradient(ellipse 120% 90% at 50% 0,color-mix(in srgb,var(--brand) 9%,transparent) 0,transparent 60%),var(--surface);border-color:color-mix(in srgb,var(--brand) 28%,transparent);box-shadow:0 4px 14px -8px color-mix(in srgb,var(--brand) 32%,transparent),inset 0 1px 0 color-mix(in srgb,#fff 50%,transparent)}.badge-card.earned .bc-icon{filter:drop-shadow(0 3px 8px color-mix(in srgb,var(--brand) 26%,transparent))}.badge-card.earned .bc-name{color:var(--brand-700)}.badge-card.locked{opacity:1;background:var(--surface-2);border-color:var(--line)}.badge-card.locked .bc-icon{filter:grayscale(1);opacity:.45}.badge-card.locked .bc-name{color:var(--txt-3)}.badge-card.locked .bc-desc{color:var(--mut)}.bc-progress{position:relative;margin-top:6px;height:14px;border-radius:7px;background:var(--surface-3,var(--surface-2));overflow:hidden}.bc-progress>i{position:absolute;inset:0 auto 0 0;background:color-mix(in srgb,var(--brand) 38%,transparent);border-radius:7px}.bc-progress>span{position:relative;display:block;text-align:center;font-size:10px;line-height:14px;font-weight:700;color:var(--txt-3)}.mini-done-emoji{font-size:46px;line-height:1;margin-bottom:10px;display:inline-block;filter:drop-shadow(0 6px 14px color-mix(in srgb,var(--brand) 22%,transparent));animation:mini-done-pop .46s var(--ease) both}@keyframes mini-done-pop{0%{transform:scale(.72) translateY(6px)}62%{transform:scale(1.07) translateY(-3px)}to{transform:scale(1) translateY(0)}}@media (prefers-reduced-motion:reduce){.mini-done-emoji{animation:none;transform:none}}.vc-tts{border:1px solid color-mix(in srgb,var(--brand) 28%,var(--line))!important;background:var(--brand-soft-2)!important;color:var(--brand-700)!important}.vc-tts.is-on,.vc-tts:hover{border-color:var(--brand)!important;background:var(--brand-soft)!important}.vc-tts.is-on{box-shadow:0 0 0 2px var(--brand-ring)!important}.row-btns .btn .badge.accent{background:var(--surface-3)!important;color:var(--txt-2)!important;border-color:var(--line-2)!important}@media (max-width:560px){.mission{flex-direction:column!important;align-items:flex-start!important}.mission-aside{margin-top:8px}}.auth{min-height:100dvh;display:grid;grid-template-columns:1.08fr 1fr}@media (max-width:880px){.auth{grid-template-columns:1fr}.auth-brand{display:none!important}}.auth-brand{position:relative;overflow:hidden;color:#fff;padding:56px;display:flex;flex-direction:column;justify-content:space-between;gap:28px;background:radial-gradient(90% 60% at 88% 4%,color-mix(in srgb,var(--iris) 42%,transparent) 0,transparent 52%),radial-gradient(115% 80% at 16% 8%,color-mix(in srgb,var(--iris) 58%,transparent) 0,transparent 55%),radial-gradient(120% 90% at 50% 116%,#0a2c44 0,transparent 58%),linear-gradient(160deg,#0e3a57 0,var(--brand-600) 42%,var(--brand) 78%,var(--iris) 118%)}.auth-brand:after{right:-150px;bottom:-150px;width:460px;height:460px;border-radius:50%;background:radial-gradient(circle,rgba(255,255,255,.14) 0,rgba(255,255,255,0) 68%)}.auth-brand:after,.auth-brand:before{content:"";position:absolute;pointer-events:none}.auth-brand:before{inset:0;background-image:linear-gradient(rgba(255,255,255,.05) 1px,transparent 0),linear-gradient(90deg,rgba(255,255,255,.05) 1px,transparent 0);background-size:34px 34px;-webkit-mask-image:radial-gradient(120% 90% at 30% 10%,#000 0,transparent 70%);mask-image:radial-gradient(120% 90% at 30% 10%,#000 0,transparent 70%)}.auth-brand>*{position:relative;z-index:1}.auth-brand-mark{display:inline-flex;align-items:center;gap:11px;font-size:18px;font-weight:700;letter-spacing:-.3px}.auth-brand-mark .glyph{width:36px;height:36px;border-radius:11px;flex-shrink:0;display:grid;place-items:center;background:#fff;box-shadow:0 6px 16px -8px rgba(0,0,0,.5)}.auth-brand-mark .glyph svg{width:24px;height:24px}.auth-brand h1{color:#fff;font-size:34px;line-height:1.18;letter-spacing:-.02em;margin:0 0 14px}.auth-brand .lede{font-size:15.5px;opacity:.92;line-height:1.62;margin:0 0 34px;max-width:26ch}.auth-brand .copyright{font-size:12.5px;opacity:.68;letter-spacing:.01em}.auth-stack{position:relative;margin:0 0 64px;max-width:360px;padding-bottom:18px}.gaze-card{position:relative;z-index:2;background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.22);border-radius:var(--radius);padding:18px 18px 16px;box-shadow:inset 0 1px 0 rgba(255,255,255,.16),0 18px 40px -20px rgba(0,0,0,.55);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);animation:floatA 7s var(--ease) infinite}.gaze-card .gaze-cap{display:flex;align-items:center;gap:7px;font-size:11px;font-weight:700;letter-spacing:.03em;opacity:.9;margin-bottom:14px;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.gaze-card .gaze-cap .pulse{width:7px;height:7px;border-radius:50%;background:#fff;box-shadow:0 0 0 0 rgba(255,255,255,.5);animation:gazePulse 2.4s var(--ease) infinite}.gaze-line{height:9px;border-radius:var(--radius-pill);background:rgba(255,255,255,.12);margin-bottom:10px}.gaze-line.w1{width:100%}.gaze-line.w2{width:86%}.gaze-line.w3{width:92%;margin-bottom:0}.gaze-line .read{display:block;height:100%;border-radius:inherit;background:color-mix(in srgb,var(--brand-soft) 92%,#fff);width:64%}.gaze-line.w2 .read{width:100%}.gaze-line.w3 .read{width:38%}.gaze-dot{position:absolute;left:18px;bottom:16px;width:16px;height:16px;border-radius:50%;background:var(--accent);border:2.5px solid #fff;box-shadow:0 0 0 4px color-mix(in srgb,var(--accent) 38%,transparent),0 2px 8px rgba(0,0,0,.25);animation:gazeTrack 5.5s var(--ease) infinite}.auth-report-card{position:absolute;right:-22px;bottom:-38px;z-index:3;width:188px;padding:14px 15px 15px;background:rgba(255,255,255,.13);border:1px solid rgba(255,255,255,.26);border-radius:var(--radius-sm);box-shadow:inset 0 1px 0 rgba(255,255,255,.2),0 22px 44px -16px rgba(0,0,0,.6);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);transform:rotate(2deg);animation:floatB 7s var(--ease) infinite}.auth-report-card .rc-cap{font-size:11px;font-weight:700;letter-spacing:.01em;opacity:.92;margin-bottom:12px}.auth-report-card .rc-bars{display:flex;align-items:flex-end;gap:9px;height:46px;margin-bottom:12px}.auth-report-card .rc-bars span{flex:1 1;border-radius:4px 4px 2px 2px;background:rgba(255,255,255,.32)}.auth-report-card .rc-bars span:last-child{background:color-mix(in srgb,var(--brand-soft) 92%,#fff)}.auth-report-card .rc-chip{display:inline-flex;align-items:center;font-size:11px;font-weight:700;letter-spacing:.01em;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;padding:4px 10px;border-radius:var(--radius-pill);background:rgba(255,255,255,.18);border:1px solid rgba(255,255,255,.24)}@media (max-width:1080px){.auth-report-card{display:none}.auth-stack{margin-bottom:36px}}@keyframes gazePulse{0%{box-shadow:0 0 0 0 rgba(255,255,255,.5)}70%,to{box-shadow:0 0 0 8px rgba(255,255,255,0)}}@keyframes gazeTrack{0%{transform:translateY(-54px)}22%{transform:translate(170px,-54px)}40%{transform:translateY(-29px)}62%{transform:translate(150px,-29px)}80%{transform:translate(0)}to{transform:translate(58px)}}@keyframes floatA{0%,to{transform:translateY(0)}50%{transform:translateY(-6px)}}@keyframes floatB{0%,to{transform:rotate(2deg) translateY(0)}50%{transform:rotate(2deg) translateY(5px)}}@media (prefers-reduced-motion:reduce){.auth-report-card,.gaze-card,.gaze-card .gaze-cap .pulse,.gaze-dot{animation:none}.gaze-dot{transform:translate(170px,-54px)}}.auth-feats{list-style:none;margin:0;padding:0}.auth-feat{display:flex;align-items:center;gap:10px;font-size:14px;opacity:.94;margin:12px 0}.auth-feat .dot{width:18px;height:18px;border-radius:6px;flex-shrink:0;background:rgba(255,255,255,.16);border:1px solid rgba(255,255,255,.22);display:grid;place-items:center}.auth-feat .dot svg{width:11px;height:11px;stroke:#fff}.auth-form-wrap{position:relative;display:grid;place-items:center;padding:32px calc(24px + env(safe-area-inset-right)) calc(32px + env(safe-area-inset-bottom)) calc(24px + env(safe-area-inset-left));background:radial-gradient(70% 55% at 100% 0,var(--brand-soft-2) 0,transparent 60%),var(--bg)}.auth-card{width:100%;max-width:400px;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-lg);box-shadow:var(--sh-lg);padding:36px 32px;animation:rise .34s var(--ease-out) both}.auth-card-head{text-align:center;margin-bottom:24px}.auth-eyebrow{display:block;font-size:12px;font-weight:700;color:var(--brand-700);letter-spacing:.12em;text-transform:uppercase;margin-bottom:6px}.auth-card-head h2{margin:0 0 5px;font-size:22px;letter-spacing:-.4px}.auth-card-head .sub{font-size:13px;color:var(--txt-3)}.auth-card-logo{width:44px;height:44px;object-fit:contain;display:inline-block;margin-bottom:12px}.auth-steps{display:flex;justify-content:center;gap:6px;margin:8px 0 10px}.auth-step{width:26px;height:4px;border-radius:var(--radius-pill);background:var(--line)}.auth-step.on{background:var(--brand)}.auth-seg{position:relative;display:flex;gap:0;background:var(--surface-2);border:1px solid var(--line);border-radius:12px;padding:4px;margin-bottom:22px}.auth-seg-ind{position:absolute;top:4px;bottom:4px;left:4px;width:calc(50% - 4px);border-radius:9px;background:var(--surface);box-shadow:var(--sh-sm);transition:transform .22s var(--ease-out);pointer-events:none}.auth-seg[data-mode=student] .auth-seg-ind{transform:translateX(100%)}.auth-seg button{position:relative;z-index:1;flex:1 1;border:0;background:transparent;padding:9px 0;border-radius:9px;font:inherit;font-size:14px;font-weight:600;color:var(--txt-3);cursor:pointer;transition:color .16s var(--ease);display:inline-flex;align-items:center;justify-content:center;gap:6px}.auth-seg button:hover{color:var(--txt-2)}.auth-seg button.on{color:var(--brand-700)}.auth-seg button:focus-visible{outline:none;box-shadow:var(--focus-ring)}.auth-field{margin-bottom:14px}.auth-field>span{display:block;font-size:12.5px;font-weight:600;color:var(--txt-2);margin-bottom:6px}.auth-input-wrap{position:relative}.auth-input-wrap .auth-input-icon{position:absolute;left:12px;top:50%;transform:translateY(-50%);display:grid;place-items:center;color:var(--txt-3);pointer-events:none;transition:color .16s var(--ease)}.auth-input-wrap .input{padding-left:38px}.auth-input-wrap .input:focus-visible{border-color:var(--brand);box-shadow:var(--focus-ring)}.auth-input-wrap:focus-within .auth-input-icon{color:var(--brand)}.auth-pw-toggle{position:absolute;right:6px;top:50%;transform:translateY(-50%);display:grid;place-items:center;width:30px;height:30px;background:none;border:0;padding:0;border-radius:var(--radius-xs);color:var(--txt-3);cursor:pointer;line-height:1;transition:color .14s var(--ease),background-color .14s var(--ease)}.auth-pw-toggle:hover{color:var(--txt-2);background:var(--surface-2)}.auth-pw-toggle:focus-visible{outline:none;box-shadow:var(--focus-ring);color:var(--brand)}.auth-pw-input{padding-right:38px}.auth-submit{margin-top:6px;padding:12px;font-size:15px;font-weight:700;background:linear-gradient(180deg,var(--brand),var(--brand-600));border-color:transparent;transition:background .16s var(--ease),box-shadow .16s var(--ease),transform .12s var(--ease)}.auth-submit:hover:not(:disabled){background:linear-gradient(180deg,var(--brand-600),var(--brand-700));box-shadow:var(--sh-brand);transform:translateY(-1px)}.auth-submit:active:not(:disabled){transform:translateY(0)}.auth-submit:disabled{opacity:.7}.auth-err{color:var(--danger);background:var(--danger-soft);border-radius:var(--radius-xs);font-size:12.5px;font-weight:600;padding:8px 11px;margin:4px 0 12px}.auth-alt{font-size:13px;text-align:center;margin-top:18px;color:var(--txt-3);line-height:1.6}.auth-alt a{color:var(--brand-700);font-weight:700}.auth-alt a:hover{color:var(--brand);text-decoration:underline;text-underline-offset:3px}.auth-field-hint{font-size:12px;color:var(--danger);font-weight:600;padding:4px 2px 0;line-height:1.45}.auth-mobile-head{display:none;align-items:center;gap:8px;font-size:13px;color:var(--txt-3);font-weight:500;margin-bottom:12px;line-height:1.4}.auth-mobile-logo{display:inline-block;width:20px;height:20px;flex-shrink:0;background:url(/brand/readclass-logo.png) 50%/contain no-repeat}@media (max-width:880px){.auth-mobile-head{display:flex}}.social-divider{display:flex;align-items:center;gap:10px;margin:4px 0}.social-divider:after,.social-divider:before{content:"";flex:1 1;height:1px;background:var(--line)}.social-divider span{font-size:12px;color:var(--txt-3);white-space:nowrap}.social-btn{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;height:44px;border:1.5px solid var(--line);border-radius:var(--radius-sm);background:var(--surface);color:var(--txt);font-size:13.5px;font-weight:600;cursor:pointer;transition:border-color .15s,background .15s,box-shadow .15s}.social-btn:hover{border-color:var(--line-2);background:var(--surface-2);box-shadow:var(--sh-sm)}.social-btn:active{transform:translateY(1px)}.social-btn:focus-visible{outline:none;box-shadow:0 0 0 3px var(--brand-ring)}.social-btn:disabled{opacity:.55;cursor:not-allowed;pointer-events:none}.social-btn.kakao{background:#FEE500;border-color:#FEE500;color:#191600}.social-btn.kakao:hover{background:#e6cf00;border-color:#e6cf00;box-shadow:var(--sh-sm)}.auth-trust{margin:18px 0 0;text-align:center;font-size:11.5px}.auth-demo,.auth-trust{line-height:1.55;color:var(--txt-3)}.auth-demo{margin-top:18px;padding:11px 13px;border-radius:var(--radius-sm);background:var(--surface-2);border:1px solid var(--line);font-size:12px}.auth-demo b{color:var(--txt-2);font-weight:700}.tour-overlay{position:fixed;inset:0;background:rgba(15,37,54,.48);display:grid;place-items:center;z-index:100;padding:16px;animation:fade .18s ease both}.tour-card{width:440px;max-width:100%;text-align:center;background:var(--surface);border:1px solid var(--line);border-radius:20px;box-shadow:var(--sh-lg);padding:32px 28px;animation:pop .26s var(--ease) both}.topbar{height:58px;flex-shrink:0;background:color-mix(in srgb,var(--bg) 78%,transparent);backdrop-filter:saturate(1.7) blur(16px);-webkit-backdrop-filter:saturate(1.7) blur(16px);border-bottom:1px solid var(--line);box-shadow:0 1px 0 color-mix(in srgb,var(--brand-soft) 60%,transparent);padding:0 24px;position:-webkit-sticky;position:sticky;top:0;z-index:20;gap:12px}.topbar,.topbar-title{display:flex;align-items:center}.topbar-title{font-size:14px;font-weight:700;color:var(--txt);letter-spacing:-.2px;gap:8px}.topbar-title .sep{color:var(--mut);font-weight:400;margin:0 2px}.topbar-title .dim{color:var(--txt-3);font-weight:500}.topbar-spacer{flex:1 1}.crumb{font-size:13.5px;font-weight:600;color:var(--txt);display:flex;align-items:center;gap:0}.crumb .sep{color:var(--mut);margin:0 7px;font-weight:400;font-size:13px}.crumb .dim{color:var(--txt-3);font-weight:500}.search-hint{display:flex;align-items:center;gap:7px;height:32px;padding:0 10px;background:var(--surface);border:1px solid var(--line);border-radius:8px;color:var(--txt-3);font-size:12px;cursor:pointer;transition:border-color .14s var(--ease),color .14s var(--ease),box-shadow .14s var(--ease);min-width:172px}.search-hint:hover{border-color:var(--line-2);color:var(--txt-2);box-shadow:var(--sh-xs)}.search-hint svg{width:14px;height:14px;flex-shrink:0}.search-hint span{flex:1 1}.search-hint kbd{font-family:inherit;font-size:10px;font-weight:600;background:var(--surface-3);border:1px solid var(--line);border-radius:4px;padding:1px 5px;color:var(--mut)}.topbar-right{display:flex;align-items:center;gap:8px}.chip{display:inline-flex;align-items:center;gap:6px;font-size:11px;font-weight:600;color:var(--txt-3);background:var(--surface);border:1px solid var(--line);padding:5px 11px;border-radius:99px;letter-spacing:.01em}.chip .dot{width:6px;height:6px;border-radius:50%;background:var(--ok);box-shadow:0 0 0 2.5px var(--ok-soft)}.page-head{margin-bottom:22px}.page-head .eyebrow{font-size:10.5px;font-weight:700;letter-spacing:1px;color:var(--brand-700);text-transform:uppercase;margin-bottom:5px;opacity:.8}.page-head h1{font-size:22px;font-weight:800;letter-spacing:-.34px;line-height:1.22;margin-bottom:4px;color:var(--txt)}.page-head .ph-date{font-size:12.5px;font-weight:600;color:var(--txt-2);letter-spacing:-.1px;margin-bottom:6px;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.page-head p{color:var(--txt-2);font-size:13.5px}.page-head .ph-row,.page-head.ph-row{display:flex;align-items:flex-end;justify-content:space-between;gap:14px;flex-wrap:wrap}.stat.neutral .stat-ic{background:linear-gradient(160deg,var(--surface-2),var(--surface-3));color:var(--txt-2);box-shadow:inset 0 1px 0 rgba(255,255,255,.6),inset 0 0 0 1px var(--line)}.stat.neutral:hover .stat-ic{color:var(--brand);box-shadow:inset 0 1px 0 rgba(255,255,255,.6),inset 0 0 0 1px var(--brand-soft)}.sidebar-foot-btn.is-icon{width:30px;height:30px;padding:0;display:grid;place-items:center;border-radius:var(--radius-xs)}.sidebar-foot .who b,.sidebar-foot .who span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.muted{color:var(--txt-3)}.mut{color:var(--mut)}.cls-sec{display:flex;flex-direction:column;gap:0;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);box-shadow:var(--sh-xs);overflow:hidden}.cls-sec-head{display:flex;align-items:center;gap:8px;padding:10px 16px;border-bottom:1px solid var(--line);background:var(--surface-2)}.cls-sec-dow{display:inline-grid;place-items:center;width:26px;height:26px;border-radius:8px;background:var(--brand-soft);color:var(--brand-700);font-size:12px;font-weight:800;flex-shrink:0}.cls-sec-dow.empty{background:var(--surface-3);color:var(--txt-3)}.cls-sec-label{font-size:13px;font-weight:700;color:var(--txt);letter-spacing:-.01em}.cls-sec-count{margin-left:4px;font-size:11.5px;font-weight:600;color:var(--txt-3)}.cls-sec-empty-row{padding:10px 16px;font-size:12.5px;color:var(--txt-3)}.cls-sec-cards{display:flex;flex-wrap:wrap;gap:0}.cls-crd{display:flex;align-items:center;gap:12px;padding:10px 16px;border-bottom:1px solid var(--line);border-right:1px solid var(--line);background:var(--surface);text-decoration:none;color:inherit;cursor:pointer;transition:background .12s var(--ease),border-color .12s var(--ease);flex:1 1 260px;min-width:220px;max-width:400px;position:relative}.cls-crd:last-child{border-bottom:none}.cls-crd:hover{background:var(--brand-soft-2)}.cls-crd:active{background:var(--brand-soft)}.cls-crd:focus-visible{outline:none;box-shadow:inset 0 0 0 2px var(--brand)}.cls-crd-time{flex-shrink:0;width:44px;text-align:center;font-size:13px;font-weight:800;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;color:var(--brand-700);line-height:1.1;letter-spacing:-.02em}.cls-crd-time.no-time{font-size:11px;font-weight:600;color:var(--mut);letter-spacing:0}.cls-crd .cl-ic{width:32px;height:32px;border-radius:var(--radius-xs);font-size:13px;flex-shrink:0}.cls-crd-body{flex:1 1;min-width:0}.cls-crd-name{font-size:13.5px;font-weight:700;color:var(--txt);letter-spacing:-.01em}.cls-crd-meta,.cls-crd-name{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.cls-crd-meta{font-size:11.5px;color:var(--txt-3);margin-top:1px}.cls-crd-rate{flex-shrink:0;display:flex;flex-direction:column;align-items:flex-end;gap:4px}.cls-crd-rate-num{font-size:12px;font-weight:700;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;color:var(--brand-700)}.cls-crd-track{width:52px;height:4px;border-radius:99px;background:var(--surface-3);overflow:hidden}.cls-crd-track>i{display:block;height:100%;border-radius:99px;background:linear-gradient(90deg,var(--brand),var(--iris));transition:width .5s var(--ease)}.cls-crd-chev{flex-shrink:0;color:var(--mut);transition:color .12s,transform .12s}.cls-crd:hover .cls-crd-chev{color:var(--brand);transform:translateX(2px)}.cls-sec.unscheduled .cls-sec-head{background:var(--surface-3)}.cls-sec.unscheduled .cls-sec-dow{background:var(--surface);color:var(--txt-3)}@media (max-width:640px){.cls-crd{max-width:100%;flex-basis:100%;border-right:none}.cls-crd:last-child{border-bottom:none}}.cls-tt-wrap{overflow-x:auto;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);box-shadow:var(--sh-xs)}.cls-tt{border-collapse:separate;border-spacing:0;width:100%;min-width:780px;table-layout:fixed}.cls-tt thead th{padding:9px 8px;font-size:12px;font-weight:700;letter-spacing:.01em;color:var(--txt-2);background:var(--surface-2);border-bottom:1px solid var(--line-2);white-space:nowrap;text-align:center}.cls-tt thead th+th{border-left:1px solid var(--line)}.cls-tt thead th:first-child{width:56px;min-width:56px;position:-webkit-sticky;position:sticky;left:0;z-index:3;background:var(--surface-2);border-right:1px solid var(--line)}.cls-tt thead th.sun{color:color-mix(in srgb,var(--danger) 70%,var(--txt-2))}.cls-tt thead th.sat{color:color-mix(in srgb,var(--info) 70%,var(--txt-2))}.cls-tt tbody tr:hover .cls-tt-cell{background:var(--surface-2)}.cls-tt tbody tr:hover .cls-tt-time{color:var(--txt)}.cls-tt-time{width:56px;min-width:56px;padding:5px 8px 0 6px;text-align:right;background:var(--surface-2);border-right:1px solid var(--line);border-bottom:1px solid var(--line);position:-webkit-sticky;position:sticky;left:0;z-index:1;vertical-align:top;font-size:11px;font-weight:600;color:var(--txt-3);letter-spacing:.01em;white-space:nowrap;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;transition:color .12s var(--ease)}.cls-tt thead th:first-child:after,.cls-tt-time:after{content:"";position:absolute;top:0;right:-8px;bottom:-1px;width:8px;pointer-events:none;background:var(--sh-sticky-edge)}.cls-tt-cell{padding:0;vertical-align:top;height:46px;position:relative;border-left:1px solid var(--line);border-bottom:1px solid var(--line);transition:background .12s var(--ease)}.cls-tt tbody tr:last-child .cls-tt-cell,.cls-tt tbody tr:last-child .cls-tt-time{border-bottom:none}.cls-tt tbody tr.etc-row .cls-tt-cell{height:auto;min-height:36px;padding:3px 4px;display:table-cell;flex-wrap:wrap;gap:3px}.cls-tt-cell.has-class,.cls-tt-cell.no-class{background:var(--surface)}.cls-tt tbody tr .cls-tt-cell.no-class:hover{background:var(--brand-soft-2)}.cls-tt-empty-dot{display:block;width:100%;height:100%;position:relative}.cls-tt-empty-dot:after,.cls-tt-empty-dot:before{content:"";position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);background:transparent;border-radius:999px;transition:background .12s var(--ease)}.cls-tt-empty-dot:before{width:9px;height:1.5px}.cls-tt-empty-dot:after{width:1.5px;height:9px}.cls-tt-cell.no-class:hover .cls-tt-empty-dot:after,.cls-tt-cell.no-class:hover .cls-tt-empty-dot:before{background:color-mix(in srgb,var(--brand) 55%,var(--surface))}.cls-tt-cell[tabindex]:focus-visible{outline:none;box-shadow:inset 0 0 0 2px var(--brand-ring);position:relative;z-index:2}.cls-tt-hint{display:flex;align-items:center;gap:9px;padding:12px 15px;border-radius:var(--radius-sm);background:var(--warn-soft);border:1px solid color-mix(in srgb,var(--warn) 45%,transparent);color:color-mix(in srgb,var(--warn) 55%,var(--txt));font-size:13.5px;line-height:1.5;font-weight:600}.cls-tt-hint svg{color:var(--warn);flex:none}.cls-tt-hint b{color:color-mix(in srgb,var(--warn) 78%,var(--txt));font-weight:800}.cls-hero{display:flex;align-items:center;gap:18px;flex-wrap:wrap;padding:22px 24px;border-radius:var(--radius);background:var(--brand-soft-2);border:1px solid var(--brand-soft)}.cls-hero-ic{flex:none;width:46px;height:46px;border-radius:var(--radius-sm);display:grid;place-items:center;background:var(--surface);border:1px solid var(--brand-soft);color:var(--brand);box-shadow:var(--sh-sm)}.cls-hero-ic svg{width:23px;height:23px}.cls-hero-body{flex:1 1 260px;min-width:220px}.cls-hero-body h2{margin:0 0 5px;font-size:20px;font-weight:800;letter-spacing:-.02em;color:var(--txt)}.cls-hero-body p{margin:0;max-width:60ch;font-size:13.5px;color:var(--txt-2);line-height:1.55}.cls-hero .btn{flex:none}.wiz-steps{display:flex;gap:6px}.wiz-step{width:26px;height:4px;border-radius:var(--radius-pill);background:var(--line);transition:background-color .18s var(--ease),width .22s var(--ease)}.wiz-step.done,.wiz-step.on{background:var(--brand)}.wiz-step.on{width:38px}.wiz-step-label{display:flex;align-items:baseline;gap:8px}.wiz-step-label strong{font-size:16px;font-weight:700;letter-spacing:-.01em;color:var(--txt)}.wiz-step-num{font-size:12px;font-weight:700;color:var(--txt-3);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.wiz .sub{font-size:13px;color:var(--txt-2);line-height:1.55}.wiz-done{display:flex;gap:12px;align-items:flex-start;padding:14px 16px;border-radius:var(--radius-sm);background:var(--ok-soft)}.wiz-done-ic{flex:none;color:var(--ok);margin-top:1px}.wiz-done-ic svg{width:22px;height:22px;display:block}.wiz-done-t{font-size:14px;font-weight:700;color:var(--ok)}.wiz-done p{margin:3px 0 0;font-size:13px;color:var(--txt-2);line-height:1.5}.wiz-summary{border:1px solid var(--line);border-radius:var(--radius-sm);overflow:hidden}.wiz-summary-row{display:flex;align-items:center;gap:12px;padding:10px 14px;font-size:13.5px}.wiz-summary-row+.wiz-summary-row{border-top:1px solid var(--line)}.wiz-summary-k{width:76px;flex:none;color:var(--txt-3);font-weight:600}.wiz-summary-v{flex:1 1;min-width:0;font-weight:700;color:var(--txt);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cls-tt-block{position:absolute;height:calc(100% - 3px);z-index:1;border-radius:var(--radius-xs);padding:3px 8px;overflow:hidden;text-decoration:none;cursor:pointer;display:flex;flex-direction:column;justify-content:center;gap:1px;background:color-mix(in srgb,var(--bc,var(--brand)) 16%,var(--surface));color:color-mix(in srgb,var(--bc,var(--brand)) 80%,var(--txt));box-shadow:inset 3px 0 0 var(--bc,var(--brand)),inset 0 0 0 1px color-mix(in srgb,var(--bc,var(--brand)) 24%,transparent),var(--sh-xs);transition:background .14s var(--ease),box-shadow .14s var(--ease),color .14s var(--ease),transform .14s var(--ease)}.cls-tt-block:hover{background:color-mix(in srgb,var(--bc,var(--brand)) 22%,var(--surface));box-shadow:inset 3px 0 0 var(--bc,var(--brand)),inset 0 0 0 1px color-mix(in srgb,var(--bc,var(--brand)) 36%,transparent),var(--sh-sm);transform:translateY(-1px);z-index:3}.cls-tt-block:active{background:color-mix(in srgb,var(--bc,var(--brand)) 26%,var(--surface))}.cls-tt-block:focus-visible{outline:none;box-shadow:inset 3px 0 0 var(--bc,var(--brand)),0 0 0 2px var(--brand-ring);z-index:3}.cls-tt-block-name{font-size:11px;font-weight:700;line-height:1.2;letter-spacing:-.01em}.cls-tt-block-name,.cls-tt-block-time{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.cls-tt-block-time{font-size:10px;font-weight:600;line-height:1.1;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;opacity:.72;margin-top:1px}.cls-tt-block.bc-0{--bc:var(--cls-0)}.cls-tt-block.bc-1{--bc:var(--cls-1)}.cls-tt-block.bc-2{--bc:var(--cls-2)}.cls-tt-block.bc-3{--bc:var(--cls-3)}.cls-tt-block.bc-4{--bc:var(--cls-4)}.cls-tt-block.bc-5{--bc:var(--cls-5)}.cls-tt-block.bc-6{--bc:var(--cls-6)}.cls-tt-block.bc-7{--bc:var(--cls-7)}.cls-tt-cell.etc-cell .cls-tt-block{position:static;height:auto;bottom:auto;display:inline-flex;flex-direction:row;align-items:center;gap:6px;margin:2px;padding:3px 11px;border-radius:var(--radius-pill);min-height:unset;font-size:11px;white-space:nowrap;max-width:100%;box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--bc,var(--brand)) 26%,transparent)}.cls-tt-cell.etc-cell .cls-tt-block:hover{box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--bc,var(--brand)) 40%,transparent),var(--sh-xs)}.cls-tt-cell.etc-cell .cls-tt-block:before{content:"";flex:none;width:6px;height:6px;border-radius:50%;background:var(--bc,var(--brand))}.cls-tt-cell.etc-cell .cls-tt-block-time{display:none}@media (max-width:640px){.cls-tt-cell{min-width:86px;height:40px}.cls-tt-block-time{display:none}}.meta-txt{font-size:12px;color:var(--txt-2)}.page-stack{display:flex;flex-direction:column;gap:20px}.page-stack.tight{gap:14px}.filter-bar{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.filter-bar select{width:auto;min-width:160px;height:36px;padding-top:0;padding-bottom:0}.today-section-title{margin-top:2px}.today-section-ico{display:inline-grid;place-items:center;width:26px;height:26px;border-radius:var(--radius-xs);background:var(--brand-soft);color:var(--brand);flex-shrink:0}.today-section-ico svg{width:15px;height:15px}.today-section-date{margin-left:auto;font-size:12px;font-weight:500;color:var(--txt-3);letter-spacing:.01em}.today-class-grid{grid-template-columns:repeat(auto-fill,minmax(272px,1fr));margin-top:8px;align-items:stretch}.today-section{background:linear-gradient(168deg,var(--brand-soft-2) 0,color-mix(in srgb,var(--brand-soft) 60%,var(--brand-soft-2)) 100%);border:1px solid var(--line);border-radius:var(--radius);padding:16px 18px 18px;box-shadow:inset 0 1px 0 rgba(255,255,255,.5)}.today-class-card{position:relative;overflow:hidden;padding:16px 18px;background:var(--surface);transition:border-color .14s var(--ease),box-shadow .14s var(--ease),transform .14s var(--ease)}.today-class-card:hover{border-color:var(--line-2);box-shadow:var(--sh-md);transform:translateY(-1px)}.today-class-card.is-highlight{padding-left:20px;background:var(--surface)}.today-class-card.is-highlight:before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:var(--brand);border-radius:var(--radius) 0 0 var(--radius)}.today-class-card.is-highlight:hover{border-color:var(--line-2)}.today-prepare-card{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;text-align:center;cursor:pointer;padding:16px 18px;min-height:100%;border:1.5px dashed var(--prep-border);background:var(--prep-soft);color:var(--prep-ink-2);transition:border-color .14s var(--ease),box-shadow .14s var(--ease),transform .14s var(--ease),background-color .14s var(--ease)}.today-prepare-card:hover{border-color:var(--prep-border-2);box-shadow:var(--sh-md);transform:translateY(-1px);background:var(--prep-soft-2)}.today-prepare-ico{display:inline-grid;place-items:center;width:34px;height:34px;border-radius:var(--radius-pill);background:var(--prep-accent);color:#fff;box-shadow:0 2px 8px color-mix(in srgb,var(--prep-accent) 40%,transparent)}.today-prepare-ico svg{width:18px;height:18px}.today-prepare-title{font-size:14px;font-weight:800;letter-spacing:-.01em;color:var(--prep-ink)}.today-prepare-sub{font-size:11.5px;color:var(--txt-3)}.today-prepare-hint{display:flex;flex-direction:column;justify-content:center;gap:3px;padding:16px 18px;border-radius:var(--radius);background:var(--surface);border:1px solid var(--line)}.today-prepare-hint b{font-size:13.5px;font-weight:700;color:var(--txt-2)}.today-prepare-hint span{font-size:12px;color:var(--txt-3);line-height:1.5}.today-class-top{align-items:center;gap:14px}.today-class-time-col{display:flex;flex-direction:column;align-items:flex-start;gap:4px;flex-shrink:0;min-width:52px}.today-class-time{font-size:22px;font-weight:800;line-height:1;letter-spacing:-.02em;color:var(--txt);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.is-highlight .today-class-time{color:var(--brand-700)}.today-class-time-na{font-size:13px;font-weight:600;color:var(--mut)}.today-class-when{display:inline-flex;align-items:center;padding:1px 7px;border-radius:var(--radius-pill);font-size:10.5px;font-weight:700;letter-spacing:.02em;background:var(--surface-3);color:var(--txt-3)}.today-class-when.w-soon{background:var(--brand-soft);color:var(--brand-700)}.today-class-when.w-ongoing{background:var(--accent-soft);color:var(--accent)}.today-class-when.w-upcoming{background:var(--info-soft);color:var(--info)}.today-class-when.w-done{background:var(--surface-3);color:var(--mut)}.today-demo-card{position:relative;border:1.5px solid var(--demo-border);background:linear-gradient(180deg,var(--demo-soft),var(--surface) 64%);box-shadow:0 0 0 3px color-mix(in srgb,var(--demo-border) 18%,transparent)}.today-demo-card:hover{border-color:var(--demo-border-strong);box-shadow:0 0 0 4px color-mix(in srgb,var(--demo-border) 32%,transparent),var(--sh-md)}.today-demo-card{overflow:visible}.today-demo-coach{position:absolute;top:0;left:12px;transform:translateY(-55%);z-index:2;display:inline-flex;align-items:center;gap:6px;padding:6px 12px;border-radius:var(--radius-pill);background:var(--demo-ink);color:#fff;font-size:12px;font-weight:800;letter-spacing:-.1px;box-shadow:0 4px 14px -2px color-mix(in srgb,var(--demo-ink) 40%,transparent);white-space:nowrap}.today-demo-coach svg{flex-shrink:0}.today-demo-coach:after{content:"";position:absolute;left:20px;bottom:-4px;width:9px;height:9px;background:var(--demo-ink);border-radius:2px;transform:rotate(45deg)}.today-demo-start{position:relative;animation:demoStartGlow 1.7s var(--ease) infinite}.today-demo-start:hover{animation:none}@keyframes demoStartGlow{0%,to{box-shadow:0 0 0 0 color-mix(in srgb,var(--demo-ink) 85%,transparent),0 2px 10px color-mix(in srgb,var(--demo-ink) 50%,transparent)}60%{box-shadow:0 0 0 10px transparent,0 2px 10px color-mix(in srgb,var(--demo-ink) 50%,transparent)}}@media (prefers-reduced-motion:reduce){.today-demo-start{animation:none}}.today-demo-dismiss{margin-left:auto;padding:0 6px;background:transparent;border:none;cursor:pointer;font-size:12px;font-weight:600;color:var(--txt-3);text-decoration:underline;text-underline-offset:2px;transition:color .14s var(--ease)}.today-demo-dismiss:hover{color:var(--demo-dismiss)}.today-prepare-wrap{position:relative;display:flex}.today-prepare-wrap>.today-prepare-card{flex:1 1}.today-demo-coach.prep{box-shadow:0 4px 14px -2px color-mix(in srgb,var(--prep-accent) 40%,transparent)}.today-demo-coach.prep,.today-demo-coach.prep:after{background:var(--prep-accent)}.today-prepare-card.is-coach{border-style:solid;border-color:var(--prep-accent);animation:prepCoachGlow 1.7s var(--ease) infinite}.today-prepare-card.is-coach:hover{animation:none}@keyframes prepCoachGlow{0%,to{box-shadow:0 0 0 0 color-mix(in srgb,var(--prep-accent) 55%,transparent)}60%{box-shadow:0 0 0 10px transparent}}@media (prefers-reduced-motion:reduce){.today-prepare-card.is-coach{animation:none;box-shadow:0 0 0 3px color-mix(in srgb,var(--prep-accent) 25%,transparent)}}.today-class-divider{align-self:stretch;width:1px;flex-shrink:0;background:var(--line);margin:1px 0}.is-highlight .today-class-divider{background:var(--brand-soft)}.cl-ic.sm{width:24px;height:24px;border-radius:var(--radius-xs);font-size:11px}.today-empty-row{gap:14px;padding:16px 18px;background:linear-gradient(180deg,var(--brand-soft-2),transparent 56px),var(--surface)}.today-empty-ico{display:inline-grid;place-items:center;width:38px;height:38px;border-radius:var(--radius-sm);background:var(--surface-3);color:var(--txt-3);flex-shrink:0}.today-empty-ico svg{width:18px;height:18px}.today-empty-txt{display:flex;flex-direction:column;gap:2px;min-width:0}.today-empty-txt b{font-size:13.5px;font-weight:700;color:var(--txt-2)}.today-empty-txt span{font-size:12px;color:var(--txt-3)}.today-empty-row .link{flex-shrink:0;padding:7px 12px;border-radius:var(--radius-sm);background:var(--brand-soft);color:var(--brand-700);transition:background-color .14s var(--ease),color .14s var(--ease)}.today-empty-row .link:hover{background:var(--brand);color:#fff}.cal-filter-bar{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:12px}.cal-filter-bar label{font-size:12px;font-weight:600;color:var(--txt-3);white-space:nowrap}.cal-filter-bar select{height:30px;padding:0 8px;font-size:12.5px;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--surface);color:var(--txt);cursor:pointer;min-width:130px;max-width:220px;transition:border-color .12s var(--ease)}.cal-filter-bar select:hover{border-color:var(--line-2)}.cal-filter-bar select:focus-visible{outline:none;box-shadow:var(--focus-ring);border-color:var(--brand)}.cal-cell.filtered-out .cal-dots,.cal-cell.filtered-out .cal-stack{opacity:.18}.cal-cell.filtered-out .cal-d{color:var(--mut)}.cal-cell.filtered-out,.cal-cell.filtered-out:hover{background:var(--surface-2);border-color:var(--line)}.cal-cell.filtered-out:hover{box-shadow:none}.hw-assigned-block{background:var(--brand-soft-2);border:1px solid var(--brand-soft);border-radius:var(--radius-sm);padding:10px 12px;display:flex;flex-direction:column;gap:8px}.hw-assigned-block-title{font-size:11px;font-weight:700;color:var(--brand-700);text-transform:uppercase;letter-spacing:.06em;display:flex;align-items:center;gap:5px}.hw-assigned-block-title:before{content:"";display:inline-block;width:3px;height:12px;border-radius:2px;background:var(--brand);flex-shrink:0}.hw-assigned-item{display:flex;align-items:center;gap:7px;flex-wrap:wrap}.hw-assigned-item .hw-title{font-size:13px;font-weight:600;color:var(--txt-2);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1 1;min-width:0}.hw-assigned-empty{font-size:12.5px;color:var(--txt-3);font-style:italic}.cal-dots{display:none}.cal-dot{width:6px;height:6px;border-radius:50%;flex-shrink:0;background:var(--mut)}.cal-dot.cc-0{background:var(--cls-0)}.cal-dot.cc-1{background:var(--cls-1)}.cal-dot.cc-2{background:var(--cls-2)}.cal-dot.cc-3{background:var(--cls-3)}.cal-dot.cc-4{background:var(--cls-4)}.cal-dot.cc-5{background:var(--cls-5)}.cal-dot.cc-6{background:var(--cls-6)}.cal-dot.cc-7{background:var(--cls-7)}.cal-dot-more{font-size:9px;font-weight:700;color:var(--txt-3);line-height:1}@media (max-width:1024px){.nav-toggle{display:grid}.scrim{display:block}.sidebar{position:fixed;left:0;top:0;transform:translateX(-100%);transition:transform .26s var(--ease);box-shadow:none}.sidebar.open{transform:none;box-shadow:0 0 56px rgba(15,37,54,.45)}.main-col{overflow-y:auto}.topbar{padding-left:calc(44px + 14px + env(safe-area-inset-left))}}@media (max-width:900px){.view{padding:18px 16px 52px}.page-head h1{font-size:20px}.cal-cell{height:64px}.cal-chip{display:none}.cal-dots{display:flex;flex-wrap:wrap;align-items:center;gap:4px;margin-top:4px}}@media (max-width:560px){.cols-4{grid-template-columns:1fr 1fr}.stat-v{font-size:22px}.cols-2{grid-template-columns:1fr}.today-section-date{width:100%;margin:4px 0 0;order:9}.today-empty-row{flex-wrap:wrap}.today-empty-row .link{margin-left:48px}}@media (max-width:480px){.auth-form-wrap{padding:24px calc(14px + env(safe-area-inset-right)) calc(24px + env(safe-area-inset-bottom)) calc(14px + env(safe-area-inset-left))}.auth-card{padding:28px 20px}}.ph-titlebar{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}.ph-titlebar h1{margin:0}.superadmin-link{display:inline-flex;align-items:center;gap:4px;font-size:12px;color:var(--txt-3);text-decoration:none;opacity:.8}.badge.owner-inline{margin-left:8px;vertical-align:middle}.warn-note{font-size:12px;color:var(--warn);margin-top:4px}.adm-form-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));grid-gap:8px 12px;gap:8px 12px}.cred-title{font-weight:700;font-size:13.5px;margin-bottom:4px}.cred-note{font-size:12.5px;color:var(--txt-2);line-height:1.7}.cred-box{margin-top:8px;padding:8px 12px;background:var(--surface);border-radius:var(--radius-sm);border:1px solid var(--line);font-family:monospace;font-size:13px;line-height:2}.modal-sec-note{font-size:13px;color:var(--txt-3);margin:0 0 10px}.modal-sec-note.sm{font-size:12px;margin:0 0 8px}.enroll-row{display:flex;align-items:center;gap:8px;padding:6px 10px;border-radius:8px;background:var(--surface-2);border:1px solid var(--line)}.enroll-row .avatar{width:28px;height:28px}.enroll-row .en-name{flex:1 1;font-size:13px;font-weight:500}.badge.cnt-soft{font-size:10px;color:var(--txt-3);background:var(--surface-2)}.invite-note{font-size:13px;color:var(--txt-2);line-height:1.6}.invite-code-box{flex:1 1;min-width:140px;padding:10px 16px;background:var(--surface-2);border:1px solid var(--line);border-radius:var(--radius-sm);font-family:monospace;font-size:22px;font-weight:700;letter-spacing:.12em;color:var(--brand-700);text-align:center}.sched-time-label{font-size:13px;font-weight:600;color:var(--txt-2);margin-left:4px}.sched-time-input{max-width:140px}.stu-toolbar{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin:4px 0 12px}.stu-search{max-width:220px;flex:1 1;min-width:120px}.sort-select{width:auto;min-width:130px}.sort-select.sm{font-size:12px}.stu-tbl .col-vlevel{width:90px}.stu-tbl .col-avgread{width:160px;text-align:right}.stu-tbl .col-actions{width:168px}.vlevel-chip{display:inline-flex;align-items:center;padding:2px 9px;border-radius:99px;font-size:11.5px;font-weight:700}.tbl-actions{display:flex;gap:4px;justify-content:flex-end;flex-wrap:wrap}.btn.assign-cta{font-weight:800;padding:10px 20px;font-size:14px;box-shadow:var(--sh-md)}.badge.hw-type{font-size:10px;flex-shrink:0}.hw-row-action .hw-print-link{gap:4px}.hw-attempt-row .at-name+.badge{margin-left:8px}.at-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap;justify-content:flex-end}.at-actions .at-metric{display:inline-flex;align-items:baseline;gap:3px;font-size:12.5px;color:var(--txt-2);white-space:nowrap;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.at-actions .at-metric strong{font-weight:700;color:var(--txt)}.at-actions .at-metric-btn{border-color:var(--line-2);color:var(--txt-2);gap:4px}.at-actions .at-metric-btn:hover{border-color:var(--brand-soft);background:var(--brand-soft-2);color:var(--brand-700);box-shadow:none}.at-actions .at-metric-btn .ic-svg{width:13px;height:13px}.qr-summary{display:flex;align-items:baseline;gap:8px;margin-bottom:14px}.qr-summary .qr-summary-val{font-size:24px;font-weight:800;color:var(--brand-700);letter-spacing:-.02em}.qr-summary .qr-summary-sep{color:var(--txt-3);font-weight:600;margin:0 2px}.qr-summary .qr-summary-lbl{font-size:13px;color:var(--txt-2)}.quiz-card.qr-item.is-correct{border-left:3px solid var(--ok)}.quiz-card.qr-item.is-wrong{border-left:3px solid var(--danger)}.qr-item .qr-mark{flex-shrink:0;width:22px;height:22px;border-radius:var(--radius-pill);display:inline-flex;align-items:center;justify-content:center;font-size:13px;font-weight:800;line-height:1}.qr-item .qr-mark.ok{color:var(--ok);background:var(--ok-soft)}.qr-item .qr-mark.no{color:var(--danger);background:var(--danger-soft)}.qr-item .qr-qno{color:var(--txt-3);font-weight:700;margin-right:2px}.qr-answers{margin-top:10px;display:flex;flex-direction:column;gap:6px}.qr-ans-row{display:flex;align-items:baseline;gap:8px;font-size:13px}.qr-ans-label{flex-shrink:0;width:52px;color:var(--txt-3);font-size:12px;font-weight:600}.qr-ans-val{color:var(--txt);overflow-wrap:anywhere}.qr-ans-val.ok{color:var(--ok);font-weight:600}.qr-ans-val.no{color:var(--danger);font-weight:600}.prog-kpis{margin-bottom:16px}.prog-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px}.prog-head .section-title{margin:0}.prog-empty{text-align:center;padding:20px 0;color:var(--txt-3);font-size:13px}.prog-chart{background:var(--surface-2);border-radius:10px;padding:12px 8px 4px;border:1px solid var(--line);margin-bottom:12px}.prog-legend{display:flex;gap:16px;margin-bottom:16px;flex-wrap:wrap}.prog-legend span{display:flex;align-items:center;gap:5px;font-size:12px;color:var(--txt-2)}.prog-legend i{width:18px;height:3px;border-radius:2px;display:inline-block;flex-shrink:0}.psg-img{margin:12px 0}.psg-img img{max-width:100%;border-radius:10px;border:1px solid var(--line)}.section-title.sec-gap{margin-top:18px}.ko-body{font-size:14px;line-height:1.75;color:var(--txt-2);margin:6px 0 0;padding:10px 12px;background:var(--surface-2);border-radius:8px}.td-example{color:var(--txt-3);font-size:12.5px}.modal-foot-sec{margin-top:20px;padding-top:16px;border-top:1px solid var(--line)}.vocab-word-list{display:flex;flex-direction:column;gap:10px;margin-top:8px}.vocab-word-card{border-radius:10px;border:1px solid var(--line);padding:12px 14px;background:var(--surface)}.vw-head{display:flex;align-items:baseline;gap:8px;flex-wrap:wrap}.vw-term{font-size:15px;color:var(--txt)}.vw-pron{font-size:13px;color:var(--txt-3);font-style:italic}.vw-meaning{font-size:14px;color:var(--txt-2);margin-top:4px}.vw-example{font-size:13px;color:var(--txt-3);margin-top:4px;font-style:italic}.badge.syn{font-size:10.5px;background:var(--info-soft);color:var(--info);border:1px solid color-mix(in srgb,var(--info) 22%,transparent)}.badge.ant{font-size:10.5px;background:var(--surface-2);color:var(--txt-3);border:1px solid var(--line)}.asg-search{flex:1 1;min-width:140px}.pick-sort{width:auto;min-width:100px}.pick-list{max-height:44vh;overflow:auto;display:flex;flex-direction:column;gap:4px}.pick-trunc-note{font-size:12px;color:var(--txt-3);text-align:center;padding:6px 0}.badge.lvl-tint{font-size:10px;font-weight:700}.due-input{max-width:200px}.cred-inline{font-family:monospace;font-size:13.5px;margin-top:5px;line-height:1.8}