@font-face{font-family:Pretendard Variable;font-weight:45 920;font-style:normal;font-display:swap;src:url(/fonts/PretendardVariable.woff2) format("woff2-variations")}:root{--paper: #fdfcf9;--paper-1: #fbf9f5;--paper-2: #f4f1eb;--surface: rgba(255, 254, 251, .7);--neutral-100: #f0ede6;--neutral-150: #e4dccf;--neutral-200: #d7cdbd;--neutral-400: #6f6e68;--ink: #17231f;--ink-2: #4d514b;--ink-3: #6a6c65;--hair: #e4dccf;--botanical-gold: #b49a67;--botanical-hair: rgba(180, 154, 103, .28);--botanical-glow: rgba(218, 190, 132, .1);--glass-canvas: #f2eee5;--surface-gradient: linear-gradient(145deg, rgba(255, 254, 251, .98), rgba(248, 245, 238, .94));--glass-specular: linear-gradient(125deg, rgba(255, 255, 255, .58) 0%, rgba(255, 255, 255, .16) 38%, rgba(218, 190, 132, .075) 100%);--glass-specular-inset: linear-gradient(125deg, rgba(255, 255, 255, .34) 0%, rgba(255, 255, 255, .08) 46%, rgba(218, 190, 132, .055) 100%);--glass-surface: linear-gradient(145deg, rgba(255, 254, 251, .58), rgba(248, 245, 238, .32));--glass-surface-strong: linear-gradient(145deg, rgba(255, 254, 251, .72), rgba(248, 245, 238, .46));--glass-surface-inset: linear-gradient(145deg, rgba(255, 254, 251, .4), rgba(248, 245, 238, .18));--glass-border: rgba(169, 139, 82, .38);--glass-inset-border: rgba(169, 139, 82, .26);--glass-edge-shadow: inset 0 1px 0 rgba(255, 255, 255, .86), inset 1px 0 0 rgba(255, 255, 255, .3), inset 0 -1px 0 rgba(148, 114, 57, .08);--glass-shadow: 0 18px 46px rgba(75, 58, 31, .095), 0 2px 8px rgba(75, 58, 31, .045);--glass-inset-shadow: inset 0 1px 0 rgba(255, 255, 255, .62), inset 0 -1px 0 rgba(148, 114, 57, .055), 0 9px 24px rgba(75, 58, 31, .05);--glass-blur: blur(24px) saturate(126%);--accent: #3e7a6e;--accent-deep: #316257;--accent-tint: #eef4f2;--accent-bright: #5f968b;--clay: #b0735c;--clay-deep: #94604c;--clay-tint: #f6f0ec;--pos-text: #2c6e49;--pos-solid: #3b8c5e;--pos-tint: #e8f3ec;--warn-text: #8a5a00;--warn-solid: #c28a2c;--warn-tint: #faf1e0;--crit-text: #a8352c;--crit-solid: #c4453a;--crit-tint: #faeae8;--info-text: #2e5a7a;--info-solid: #3c7299;--info-tint: #eaf1f6;--neutral-sig: #8895a2;--bg-app: var(--paper);--bg-surface: var(--surface);--bg-surface-2: var(--paper-2);--bg-tint: var(--accent-tint);--bg-stage: #1e2724;--text-strong: var(--ink);--text-body: var(--ink-2);--text-muted: var(--ink-3);--text-on-accent: #fbfaf8;--text-on-stage: #d7ddda;--text-muted-on-stage: #8a9794;--text-accent: var(--accent-deep);--border-subtle: var(--neutral-150);--border-strong: var(--neutral-200);--border-focus: var(--accent);--focus-ring: rgba(62, 122, 110, .45);--font-sans: "Pretendard Variable", Pretendard, -apple-system, "Apple SD Gothic Neo", "Noto Sans KR", system-ui, sans-serif;--font-serif: "Noto Serif KR", "Source Serif 4", serif;--font-num: "Pretendard Variable", "JetBrains Mono", ui-monospace, monospace;--fs-display: 2.5rem;--fs-h1: 1.875rem;--fs-h2: 1.5rem;--fs-h3: 1.25rem;--fs-lead: 1.125rem;--fs-body: 1rem;--fs-sm: .875rem;--fs-xs: .8125rem;--fs-kicker: .75rem;--sp-1: 4px;--sp-2: 8px;--sp-3: 12px;--sp-4: 16px;--sp-5: 24px;--sp-6: 32px;--sp-7: 48px;--sp-8: 64px;--sp-9: 96px;--maxw: 1200px;--maxw-read: 680px;--border: var(--border-subtle);--font-mono: var(--font-num);--nav-w: 240px;--nav-w-collapsed: 72px;--topbar-h: 56px;--radius: 8px;--radius-sm: 6px;--radius-lg: 12px;--gutter: 24px;--bottom-bar-h: 60px;--radius-xl: 16px;--radius-pill: 9999px;--shadow-sm: 0 1px 2px rgba(28, 42, 42, .05);--shadow-md: 0 4px 14px rgba(28, 42, 42, .07);--shadow-island: 0 8px 24px rgba(28, 42, 42, .08), 0 2px 6px rgba(28, 42, 42, .04);--shadow-float: 0 14px 36px rgba(28, 42, 42, .12), 0 3px 10px rgba(28, 42, 42, .06);--asset-warm-elements: url(/design-elements/clinical-paper-ambient.png);--asset-login-room: url(/design-elements/login-counseling-room.png);--asset-botanical-sidebar: url(/design-elements/learner-dashboard/background-light-sidebar.png);--asset-botanical-corner: url(/design-elements/learner-dashboard/background-light-corner.png);--asset-botanical-leaf: url(/design-elements/learner-dashboard/card-leaf-sprig-light.png);--ease-out: cubic-bezier(.22, .61, .36, 1);--ease-in-out: cubic-bezier(.45, .05, .55, .95);--ease-spring: cubic-bezier(.32, .72, 0, 1);--dur-fast: .12s;--dur-base: .2s;--dur-slow: .32s;--dur-breathe: 3.2s}[data-theme=dark]{--paper: #0a1416;--paper-1: #0c1617;--paper-2: #111c1c;--surface: rgba(22, 32, 31, .68);--neutral-100: #1b2725;--neutral-150: #2b332f;--neutral-200: #3b4039;--neutral-400: #949b8f;--ink: #eee7d9;--ink-2: #c4bfb3;--ink-3: #979a8f;--hair: #30372f;--botanical-gold: #b9a275;--botanical-hair: rgba(185, 162, 117, .26);--botanical-glow: rgba(186, 156, 97, .065);--glass-canvas: #081416;--surface-gradient: linear-gradient(145deg, rgba(22, 32, 31, .98), rgba(14, 24, 25, .96));--glass-specular: linear-gradient(125deg, rgba(255, 247, 224, .055) 0%, rgba(255, 255, 255, .018) 42%, rgba(185, 162, 117, .035) 100%);--glass-specular-inset: linear-gradient(125deg, rgba(255, 247, 224, .032) 0%, rgba(255, 255, 255, .008) 46%, rgba(185, 162, 117, .022) 100%);--glass-surface: linear-gradient(145deg, rgba(22, 32, 31, .68), rgba(14, 24, 25, .5));--glass-surface-strong: linear-gradient(145deg, rgba(22, 32, 31, .82), rgba(14, 24, 25, .68));--glass-surface-inset: linear-gradient(145deg, rgba(28, 39, 37, .52), rgba(10, 22, 22, .32));--glass-border: rgba(185, 162, 117, .24);--glass-inset-border: rgba(185, 162, 117, .16);--glass-edge-shadow: inset 0 1px 0 rgba(255, 247, 224, .055), inset 1px 0 0 rgba(255, 255, 255, .018), inset 0 -1px 0 rgba(0, 0, 0, .12);--glass-shadow: 0 16px 42px rgba(0, 0, 0, .2);--glass-inset-shadow: inset 0 1px 0 rgba(255, 255, 255, .045), 0 10px 26px rgba(0, 0, 0, .11);--glass-blur: blur(20px) saturate(112%);--bg-app: #0a1416;--bg-surface: #16201f;--bg-surface-2: #111c1c;--bg-tint: #192522;--bg-stage: #091315;--text-strong: var(--ink);--text-body: var(--ink-2);--text-muted: var(--ink-3);--text-on-accent: #0f1a17;--border-subtle: #30372f;--border-strong: #45483e;--border-focus: #7da294;--accent: #7da294;--accent-deep: #92b3a6;--accent-tint: #1c2622;--accent-bright: #8db1a4;--clay: #cc8f77;--clay-deep: #e0aa92;--clay-tint: #2b211e;--focus-ring: rgba(125, 162, 148, .42);--pos-text: #9cbfa4;--pos-solid: #6f9a7e;--pos-tint: #17211a;--warn-text: #e2b566;--warn-solid: #d4a24a;--warn-tint: #2a2415;--crit-text: #e89086;--crit-solid: #d86459;--crit-tint: #2a1715;--info-text: #79b0d4;--info-solid: #5c97be;--info-tint: #15222c;--asset-botanical-sidebar: url(/design-elements/learner-dashboard/background-dark-sidebar.png);--asset-botanical-corner: url(/design-elements/learner-dashboard/background-dark-corner.png);--asset-botanical-leaf: url(/design-elements/learner-dashboard/card-leaf-sprig.png)}[data-role=learner],[data-role=instructor],[data-role=admin]{--accent: #3e7a6e;--accent-deep: #316257;--accent-bright: #5f968b;--accent-tint: #eef4f2;--focus-ring: rgba(62, 122, 110, .45)}[data-theme=dark] body[data-role=learner],[data-theme=dark] body[data-role=instructor],[data-theme=dark][data-role=instructor],[data-theme=dark] body[data-role=admin],[data-theme=dark][data-role=admin]{--accent: #7da294;--accent-deep: #92b3a6;--accent-bright: #8db1a4;--accent-tint: #1c2622;--focus-ring: rgba(125, 162, 148, .42)}*,*:before,*:after{margin:0;padding:0;box-sizing:border-box}html,body,#root{height:100%;width:100%;max-width:100vw;overflow-x:hidden}body{font-family:var(--font-sans);background:var(--bg-app);color:var(--text-strong);font-size:var(--fs-body);line-height:1.6;letter-spacing:-.01em;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;overscroll-behavior-y:contain;word-break:keep-all;overflow-wrap:break-word}a{color:var(--accent-deep);text-decoration:none;transition:color var(--dur-fast) var(--ease-out)}a:hover{text-decoration:underline;color:var(--accent)}button{font-family:inherit;cursor:pointer}input,textarea,select{font-family:inherit;font-size:inherit;color:inherit}img,svg{display:block}:focus{outline:none}:focus-visible{outline:3px solid var(--focus-ring);outline-offset:2px;border-radius:var(--radius-sm)}*{scrollbar-width:thin;scrollbar-color:var(--neutral-200) transparent}*::-webkit-scrollbar{width:10px;height:10px}*::-webkit-scrollbar-track{background:transparent}*::-webkit-scrollbar-thumb{background:var(--neutral-200);border-radius:100px;border:2px solid var(--bg-app)}*::-webkit-scrollbar-thumb:hover{background:var(--neutral-400)}.tabular{font-variant-numeric:tabular-nums;letter-spacing:0}.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}.vg-kicker{font-family:var(--font-num);font-size:var(--fs-kicker);font-weight:600;letter-spacing:.08em;color:var(--text-accent);display:inline-flex;align-items:center;gap:8px;text-transform:none}.vg-kicker__dot{width:6px;height:6px;border-radius:50%;background:var(--accent-bright);flex:none}.vg-sechead{margin-bottom:var(--sp-5)}.vg-sechead__kicker{margin-bottom:6px}.vg-sechead__title{font-size:var(--fs-h2);font-weight:600;letter-spacing:0;color:var(--text-strong);line-height:1.35}.vg-sechead__desc{font-size:var(--fs-xs);color:var(--text-muted);margin-top:4px}.vg-btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;font:600 var(--fs-sm) / 1 var(--font-sans);padding:10px 18px;border-radius:var(--radius);border:1px solid transparent;transition:background var(--dur-base) var(--ease-out),border-color var(--dur-base) var(--ease-out),transform var(--dur-fast) var(--ease-spring),box-shadow var(--dur-fast) var(--ease-out);cursor:pointer;white-space:nowrap;-webkit-user-select:none;user-select:none}.vg-btn:active{transform:translateY(1px) scale(.98)}.vg-btn:disabled{opacity:.5;cursor:not-allowed;transform:none}.vg-btn--block{width:100%}.vg-btn--sm{padding:7px 13px;font-size:var(--fs-xs)}.vg-btn--lg{padding:13px 22px;font-size:var(--fs-body)}.vg-btn--primary{background:linear-gradient(105deg,color-mix(in srgb,var(--accent) 90%,var(--bg-surface)),var(--accent));color:var(--text-on-accent);border-color:color-mix(in srgb,var(--botanical-gold) 24%,var(--accent));box-shadow:inset 0 1px color-mix(in srgb,var(--bg-surface) 32%,transparent)}.vg-btn--primary:hover:not(:disabled){background:var(--accent-deep)}.vg-btn--secondary{background:var(--surface-gradient);color:var(--text-accent);border-color:color-mix(in srgb,var(--accent) 62%,var(--botanical-hair))}.vg-btn--secondary:hover:not(:disabled){background:var(--accent-tint)}.vg-btn--ghost{background:transparent;color:var(--text-body)}.vg-btn--ghost:hover:not(:disabled){background:var(--bg-surface-2);color:var(--text-strong)}.vg-btn--danger{background:var(--crit-solid);color:var(--text-on-accent)}.vg-btn--danger:hover:not(:disabled){background:var(--crit-text)}.vg-surface.vg-surface--panel{background:var(--glass-specular),var(--glass-surface);border:1px solid var(--glass-border);border-radius:var(--radius);box-shadow:var(--glass-edge-shadow),var(--glass-shadow);-webkit-backdrop-filter:var(--glass-blur);backdrop-filter:var(--glass-blur)}.vg-surface.vg-surface--inset{background:var(--glass-specular-inset),var(--glass-surface-inset);border:0;border-radius:0;box-shadow:var(--glass-inset-shadow);-webkit-backdrop-filter:blur(12px) saturate(110%);backdrop-filter:blur(12px) saturate(110%)}.vg-surface.vg-surface--interactive{background:var(--glass-specular-inset),var(--glass-surface-inset);border:1px solid var(--glass-inset-border);border-radius:var(--radius);box-shadow:var(--glass-inset-shadow);-webkit-backdrop-filter:blur(12px) saturate(110%);backdrop-filter:blur(12px) saturate(110%);transition:background var(--dur-base) var(--ease-out),border-color var(--dur-base) var(--ease-out),transform var(--dur-fast) var(--ease-out)}.vg-surface.vg-surface--interactive:hover{border-color:color-mix(in srgb,var(--accent) 48%,var(--glass-border));background:var(--glass-specular),var(--glass-surface-strong)}.vg-surface.vg-surface--interactive:focus-visible{outline:3px solid var(--focus-ring);outline-offset:2px}.vg-surface.vg-surface--flat{box-shadow:none}.vg-surface.vg-surface--tint{background:var(--bg-tint);border-color:transparent;box-shadow:none}.vg-card{padding:var(--sp-5)}.vg-panel{border-radius:var(--radius-lg);padding:var(--sp-6)}.vg-badge{display:inline-flex;align-items:center;gap:6px;font-family:var(--font-num);font-size:var(--fs-xs);font-weight:600;letter-spacing:.01em;padding:2px 9px;border-radius:100px;line-height:1.5}.vg-badge--neutral{color:var(--ink-2);background:var(--paper-2)}.vg-badge--accent{color:var(--accent-deep);background:var(--accent-tint)}.vg-badge--pos{color:var(--pos-text);background:var(--pos-tint)}.vg-badge--warn{color:var(--warn-text);background:var(--warn-tint)}.vg-badge--crit{color:var(--crit-text);background:var(--crit-tint)}.vg-badge--info{color:var(--info-text);background:var(--info-tint)}.vg-dot{display:inline-block;width:8px;height:8px;border-radius:50%;flex:none;background:var(--neutral-200)}.vg-dot--accent{background:var(--accent)}.vg-dot--pos{background:var(--pos-solid)}.vg-dot--warn{background:var(--warn-solid)}.vg-dot--crit{background:var(--crit-solid)}.vg-dot--info{background:var(--info-solid)}.vg-dot--muted{background:var(--ink-3)}.vg-statline{display:flex;align-items:center;flex-wrap:wrap;gap:var(--sp-5)}.vg-statline__item{display:inline-flex;align-items:baseline;gap:7px}.vg-statline__num{font-size:20px;font-weight:700;color:var(--text-strong);font-variant-numeric:tabular-nums;letter-spacing:0}.vg-statline__lab{font-size:var(--fs-xs);color:var(--text-muted)}.vg-statline__sep{width:1px;height:18px;background:var(--hair)}.vg-progress{width:100%;height:8px;background:var(--paper-2);border-radius:4px;overflow:hidden}.vg-progress--slim{height:4px}.vg-progress__fill{height:100%;border-radius:4px;background:var(--accent);transition:width var(--dur-slow) var(--ease-out)}.vg-progress__fill--muted{background:var(--neutral-200)}.vg-progress__fill--warn{background:var(--warn-solid)}.vg-progress__fill--crit{background:var(--crit-solid)}.vg-progress__fill--clay{background:var(--clay)}.vg-field{display:flex;flex-direction:column;gap:6px}.vg-field__label{font-size:var(--fs-sm);font-weight:600;color:var(--text-strong)}.vg-field__hint{font-size:var(--fs-xs);color:var(--text-muted)}.vg-field__error{font-size:var(--fs-xs);color:var(--crit-text)}.vg-input{width:100%;background:var(--bg-surface-2);color:var(--text-strong);border:1px solid var(--border-strong);border-radius:var(--radius-sm);padding:10px 12px;font:var(--fs-body) / 1.5 var(--font-sans);transition:border-color var(--dur-fast) var(--ease-out),box-shadow var(--dur-fast) var(--ease-out)}.vg-input::placeholder{color:var(--neutral-400)}.vg-input:focus{border-color:var(--border-focus);outline:none;box-shadow:0 0 0 3px var(--focus-ring)}.vg-input[aria-invalid=true]{border-color:var(--crit-solid)}.vg-empty{display:flex;flex-direction:column;align-items:flex-start;gap:var(--sp-3);max-width:var(--maxw-read)}.vg-empty__title{font-size:var(--fs-h1);font-weight:700;letter-spacing:0;color:var(--text-strong);line-height:1.3}.vg-empty__desc{font-size:var(--fs-lead);color:var(--text-body);line-height:1.6}.vg-shell{width:100%;height:100vh;height:100dvh;min-height:0;display:flex;flex-direction:column;overflow:hidden;background:var(--bg-app)}.vg-shell--fullscreen{height:100dvh}.vg-topbar{flex:0 0 var(--topbar-h);min-width:0;height:var(--topbar-h);background:var(--bg-surface);border-bottom:1px solid var(--hair);display:flex;align-items:center;gap:var(--sp-5);padding:0 var(--sp-6);position:sticky;top:0;z-index:30}.vg-topbar__brand{display:flex;align-items:center;gap:10px;min-height:44px;text-decoration:none}.vg-topbar__brand:hover{text-decoration:none}.vg-topbar__mark{display:flex;align-items:center;justify-content:center;width:26px;height:26px;flex:none}.vg-topbar__wm{font-size:17px;font-weight:700;letter-spacing:0;color:var(--text-strong)}.vg-topbar__wm .v{color:var(--accent)}.vg-topbar__role{font-family:var(--font-num);font-size:13px;font-weight:600;letter-spacing:.04em;color:var(--text-accent);padding-left:var(--sp-4);margin-left:var(--sp-2);border-left:1px solid var(--hair)}.vg-topbar__spacer{flex:1}.vg-topbar__actions{min-width:0;display:flex;align-items:center;gap:var(--sp-2)}.vg-topbar__switch{min-width:0;display:inline-flex;align-items:center;gap:4px;padding:3px;border:1px solid var(--hair);border-radius:var(--radius);background:var(--bg-surface-2)}.vg-topbar__switch-link{min-width:0;min-height:44px;display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:0 8px;border-radius:calc(var(--radius) - 2px);color:var(--text-muted);font-size:12px;font-weight:650;text-decoration:none;white-space:nowrap;transition:transform var(--dur-fast) var(--ease-spring),background var(--dur-fast) var(--ease-out),color var(--dur-fast) var(--ease-out)}.vg-topbar__switch-link:active{transform:scale(.95)}.vg-topbar__switch-link:hover,.vg-topbar__switch-link.is-active{background:var(--bg-surface);color:var(--text-strong);text-decoration:none}.vg-iconbtn{display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;border-radius:var(--radius);border:1px solid transparent;background:transparent;color:var(--text-body);cursor:pointer;transition:transform var(--dur-fast) var(--ease-spring),background var(--dur-fast) var(--ease-out),color var(--dur-fast) var(--ease-out)}.vg-iconbtn:active{transform:scale(.92)}.vg-iconbtn:hover{background:var(--bg-surface-2);color:var(--text-strong)}.vg-topbar__user{min-width:0;max-width:min(320px,34vw);display:inline-flex;align-items:center;gap:9px;padding:5px 11px 5px 6px;border-radius:100px;background:var(--bg-surface-2)}.vg-topbar__avatar{width:24px;height:24px;border-radius:50%;background:var(--accent-tint);color:var(--accent-deep);display:inline-flex;align-items:center;justify-content:center;font-size:11px;font-weight:700;flex:none;overflow:hidden}.vg-topbar__avatar img{width:100%;height:100%;display:block;object-fit:cover}.vg-topbar__uname{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:13px;font-weight:600;color:var(--text-strong)}.vg-shell__body{--nav-cur: var(--nav-w);display:grid;grid-template-columns:var(--nav-cur) 1fr;flex:1 1 auto;min-height:0;overflow:hidden;align-items:start;background-image:linear-gradient(var(--hair),var(--hair));background-repeat:no-repeat;background-position:var(--nav-cur) 0;background-size:1px 100%}.vg-shell__body--bare{grid-template-columns:1fr;background-image:none}.vg-nav{position:relative;top:auto;align-self:start;width:100%;height:100%;min-height:0;background:var(--bg-surface);padding:var(--sp-5) var(--sp-3);display:flex;flex-direction:column;gap:var(--sp-1);overflow-y:auto}.vg-nav__label{font-family:var(--font-num);font-size:11px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--text-muted);padding:var(--sp-2) var(--sp-3) 6px}.vg-nav__item{display:flex;align-items:center;gap:11px;padding:9px 12px;border-radius:var(--radius);font-size:14px;font-weight:500;color:var(--text-body);text-decoration:none;transition:background var(--dur-fast) var(--ease-out),color var(--dur-fast) var(--ease-out)}.vg-nav__item:hover{background:var(--bg-surface-2);color:var(--text-strong);text-decoration:none}.vg-nav__item:focus-visible{outline:3px solid var(--focus-ring);outline-offset:2px}.vg-nav__item .vg-nav__ic{flex:none;color:var(--text-muted);display:inline-flex}.vg-nav__item.is-active{background:var(--accent-tint);color:var(--accent-deep);font-weight:600}.vg-nav__item.is-active .vg-nav__ic{color:var(--accent)}.vg-nav__spacer{flex:1}.vg-nav__foot{padding:var(--sp-3) var(--sp-3) 0;border-top:1px solid var(--hair);margin-top:var(--sp-3)}.vg-nav__ethic{font-size:11.5px;line-height:1.55;color:var(--text-muted)}.vg-main{min-width:0;height:100%;min-height:0;overflow-x:hidden;overflow-y:auto;overscroll-behavior-y:contain;scrollbar-gutter:stable;padding:var(--sp-7) var(--sp-6) var(--sp-8)}.vg-main__inner{max-width:var(--maxw);margin:0 auto}.vg-main--wide .vg-main__inner{max-width:min(1480px,100%)}.vg-main--bleed{padding:0}.vg-main--bleed .vg-main__inner{max-width:none}@media(max-width:1024px){.vg-shell__body{--nav-cur: var(--nav-w-collapsed)}.vg-shell__body--bare{grid-template-columns:1fr}.vg-nav{padding:var(--sp-4) var(--sp-2)}.vg-nav__label,.vg-nav__item span:not(.vg-nav__ic),.vg-nav__ethic{display:none}.vg-nav__item{justify-content:center;padding:11px}}@media(max-width:720px){html{scroll-padding-top:calc(var(--topbar-h) + var(--sp-2));scroll-padding-bottom:calc(var(--bottom-bar-h) + env(safe-area-inset-bottom) + var(--sp-4))}.vg-shell{height:100dvh}.vg-shell__body{display:flex;flex-direction:column;flex:1 1 auto;min-height:0;position:relative;background-image:none}.vg-shell__body--bare{display:flex}.vg-nav{position:fixed;bottom:0;left:0;right:0;top:auto;z-index:40;height:calc(var(--bottom-bar-h) + env(safe-area-inset-bottom));padding:6px max(10px,env(safe-area-inset-left)) max(6px,env(safe-area-inset-bottom)) max(10px,env(safe-area-inset-right));border-right:0;border-top:1px solid var(--hair);border-bottom:0;display:flex;flex-direction:row;align-items:center;justify-content:space-around;gap:4px;background:var(--bg-surface);box-shadow:var(--shadow-island);overflow-x:auto;overflow-y:hidden;-webkit-backdrop-filter:var(--glass-blur);backdrop-filter:var(--glass-blur)}.vg-nav__label,.vg-nav__spacer,.vg-nav__foot{display:none}.vg-nav__item{flex:1 1 0;min-width:0;max-width:96px;height:48px;min-height:48px;padding:3px 2px;flex-direction:column;justify-content:center;align-items:center;gap:2px;border-radius:var(--radius);text-align:center;transition:transform var(--dur-fast) var(--ease-spring),background var(--dur-fast) var(--ease-out)}.vg-nav__item:active{transform:scale(.93)}.vg-nav__item .vg-nav__ic{display:flex;align-items:center;justify-content:center}.vg-nav__item .vg-nav__ic svg{width:20px;height:20px}.vg-nav__item .vg-nav__txt,.vg-nav__item span:not(.vg-nav__ic){display:block;font-size:11px;font-weight:600;line-height:1.2;letter-spacing:-.01em;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.vg-topbar__role,.vg-topbar__uname{display:none}.vg-topbar{height:50px;min-height:50px;padding:0 var(--sp-3);gap:var(--sp-2)}.vg-topbar__brand{min-height:44px;gap:8px}.vg-topbar__mark{width:24px;height:24px}.vg-topbar__wm{font-size:16px}.vg-topbar__user{display:none}.vg-topbar__actions{flex:0 0 auto;gap:4px}.vg-topbar__switch{height:38px;padding:2px}.vg-topbar__switch-link{min-height:34px;padding:0 8px;font-size:11.5px}.vg-topbar__switch-link span{display:inline}.vg-iconbtn{width:40px;height:40px}.vg-main{padding:var(--sp-4) var(--sp-4) calc(var(--bottom-bar-h) + env(safe-area-inset-bottom) + var(--sp-6))}.vg-main--bleed{padding:0}}body[data-role] .vg-shell--botanical .vg-shell__body:not(.vg-shell__body--bare){position:relative;isolation:isolate;overflow:hidden}body[data-role] .vg-shell--botanical .vg-nav,body[data-role] .vg-shell--botanical .vg-main{position:relative;z-index:1}.vg-shell--botanical .vg-main:not(.vg-main--bleed),.vg-shell--learner-dashboard .vg-main:not(.vg-main--bleed){background:transparent}.vg-shell--learner-dashboard .vg-main:not(.vg-main--bleed){padding:36px 32px 72px;background:transparent}.vg-shell--botanical{--topbar-h: 64px;--nav-w: 230px}body[data-role] .vg-shell--botanical .vg-topbar{height:var(--topbar-h);background:color-mix(in srgb,var(--bg-surface) 76%,transparent);border-bottom-color:var(--botanical-hair);color:var(--text-strong);-webkit-backdrop-filter:var(--glass-blur);backdrop-filter:var(--glass-blur)}[data-theme=dark] body[data-role] .vg-shell--botanical .vg-topbar{background:color-mix(in srgb,var(--bg-app) 76%,transparent)}body[data-role] .vg-shell--botanical .vg-topbar__wm,body[data-role] .vg-shell--botanical .vg-topbar__role,body[data-role] .vg-shell--botanical .vg-topbar__uname,body[data-role] .vg-shell--botanical .vg-iconbtn{color:var(--text-strong)}body[data-role] .vg-shell--botanical .vg-topbar__wm{font-size:19px;font-weight:760}body[data-role] .vg-shell--botanical .vg-topbar__role{border-left-color:var(--botanical-hair);font-size:14px;letter-spacing:0}body[data-role] .vg-shell--botanical .vg-topbar__user{background:var(--bg-surface-2)}body[data-role] .vg-shell--botanical .vg-topbar__avatar{background:var(--accent-tint);color:var(--accent-deep)}body[data-role] .vg-shell--botanical .vg-shell__body:not(.vg-shell__body--bare){--nav-cur: var(--nav-w);background-color:color-mix(in srgb,var(--glass-canvas) 94%,var(--accent));background-image:linear-gradient(var(--botanical-hair),var(--botanical-hair)),radial-gradient(circle at 68% 18%,color-mix(in srgb,var(--accent) 12%,transparent),transparent 34rem),radial-gradient(circle at 42% 72%,color-mix(in srgb,var(--botanical-gold) 13%,transparent),transparent 42rem),var(--asset-botanical-corner),radial-gradient(circle at 76% 10%,var(--botanical-glow),transparent 30rem);background-repeat:no-repeat;background-position:var(--nav-cur) 0,center top,center bottom,right top,center top;background-size:1px 100%,100% 52rem,100% 62rem,min(66vw,980px) auto,100% 46rem}body[data-role] .vg-shell--botanical .vg-nav{top:auto;padding:var(--sp-5) var(--sp-3);background:linear-gradient(180deg,color-mix(in srgb,var(--bg-surface) 34%,transparent),color-mix(in srgb,var(--bg-app) 54%,transparent)),var(--asset-botanical-sidebar) center bottom / auto 72% no-repeat,color-mix(in srgb,var(--bg-surface) 62%,transparent);color:var(--text-strong);-webkit-backdrop-filter:var(--glass-blur);backdrop-filter:var(--glass-blur)}body[data-role] .vg-shell--botanical .vg-nav__label,body[data-role] .vg-shell--botanical .vg-nav__ethic{color:var(--text-muted)}body[data-role] .vg-shell--botanical .vg-nav__item{position:relative;isolation:isolate;overflow:hidden;min-height:50px;padding:10px 12px;flex-direction:row;justify-content:flex-start;gap:11px;border:1px solid transparent;color:var(--text-body);font-size:15px;text-align:left}body[data-role] .vg-shell--botanical .vg-nav__item:hover{border-color:color-mix(in srgb,var(--botanical-gold) 18%,var(--border-subtle));background:color-mix(in srgb,var(--bg-surface) 86%,var(--bg-tint));color:var(--text-strong)}body[data-role] .vg-shell--botanical .vg-nav__item.is-active{padding-right:58px;border-color:color-mix(in srgb,var(--botanical-gold) 34%,var(--border-subtle));background:linear-gradient(112deg,color-mix(in srgb,var(--bg-surface) 94%,var(--botanical-gold)),color-mix(in srgb,var(--bg-surface-2) 78%,transparent));color:var(--text-strong);box-shadow:inset 0 1px color-mix(in srgb,var(--bg-surface) 84%,transparent)}body[data-role] .vg-shell--botanical .vg-nav__item.is-active .vg-nav__ic{color:var(--accent)}body[data-role] .vg-shell--botanical .vg-nav__item.is-active:after{content:"";position:absolute;z-index:-1;right:0;bottom:0;width:58px;height:100%;background:var(--asset-botanical-leaf) right -20px bottom -42px / 76px 96px no-repeat;opacity:.28;pointer-events:none;display:block}body[data-role] .vg-shell--botanical .vg-nav__foot{border-top-color:var(--botanical-hair)}@media(max-width:1024px){body[data-role] .vg-shell--botanical .vg-shell__body:not(.vg-shell__body--bare){--nav-cur: var(--nav-w-collapsed)}body[data-role] .vg-shell--botanical .vg-nav{padding:var(--sp-4) var(--sp-2);background-image:none}body[data-role] .vg-shell--botanical .vg-nav__item,body[data-role] .vg-shell--botanical .vg-nav__item.is-active{min-height:46px;justify-content:center;padding:11px}body[data-role] .vg-shell--botanical .vg-nav__item.is-active:after{display:none}}@media(max-width:720px){body[data-role] .vg-shell--botanical .vg-shell__body:not(.vg-shell__body--bare){display:flex;flex-direction:column;background-image:radial-gradient(circle at 74% 12%,color-mix(in srgb,var(--accent) 14%,transparent),transparent 22rem),radial-gradient(circle at 18% 82%,color-mix(in srgb,var(--botanical-gold) 14%,transparent),transparent 28rem),var(--asset-botanical-corner);background-repeat:no-repeat;background-position:right top,left bottom,right -140px bottom -80px;background-size:100% 34rem,100% 38rem,430px auto}body[data-role] .vg-shell--botanical .vg-nav{position:fixed;bottom:0;left:0;right:0;top:auto;z-index:40;height:calc(var(--bottom-bar-h) + env(safe-area-inset-bottom));padding:6px max(10px,env(safe-area-inset-left)) max(6px,env(safe-area-inset-bottom)) max(10px,env(safe-area-inset-right));border-top:1px solid var(--botanical-hair);border-bottom:0;border-right:0;border-left:0;background:color-mix(in srgb,var(--bg-surface) 86%,transparent);box-shadow:var(--shadow-island);-webkit-backdrop-filter:var(--glass-blur);backdrop-filter:var(--glass-blur);display:flex;flex-direction:row;align-items:center;justify-content:space-around;gap:4px;overflow-x:auto;overflow-y:hidden}body[data-role] .vg-shell--botanical .vg-nav__item,body[data-role] .vg-shell--botanical .vg-nav__item.is-active{flex:1 1 0;min-width:0;max-width:96px;height:48px;min-height:48px;padding:3px 2px;flex-direction:column;justify-content:center;align-items:center;gap:2px;border-radius:var(--radius);text-align:center;border:1px solid transparent}body[data-role] .vg-shell--botanical .vg-nav__item.is-active{padding-right:2px;background:linear-gradient(112deg,color-mix(in srgb,var(--bg-surface) 92%,var(--botanical-gold)),color-mix(in srgb,var(--bg-surface-2) 80%,transparent));border-color:color-mix(in srgb,var(--botanical-gold) 34%,var(--border-subtle));box-shadow:inset 0 1px color-mix(in srgb,var(--bg-surface) 84%,transparent)}body[data-role] .vg-shell--botanical .vg-nav__item.is-active:after{display:none}body[data-role] .vg-shell--botanical .vg-nav__item .vg-nav__ic svg{width:20px;height:20px}body[data-role] .vg-shell--botanical .vg-nav__item .vg-nav__txt,body[data-role] .vg-shell--botanical .vg-nav__item span:not(.vg-nav__ic){display:block;font-size:11px;font-weight:600;line-height:1.2;letter-spacing:-.01em;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}body[data-role=learner] .vg-shell--botanical .vg-nav{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:4px;overflow-x:visible}body[data-role=learner] .vg-shell--botanical .vg-nav__item,body[data-role=learner] .vg-shell--botanical .vg-nav__item.is-active{width:100%;max-width:none;min-width:0;height:48px;padding:3px 2px}}.vg-auth-shell{position:relative;isolation:isolate;inline-size:auto;max-inline-size:100%;min-block-size:100vh;min-block-size:100dvh;overflow-x:clip;color:var(--text-body);background-color:var(--bg-app)}.vg-auth-shell>*{position:relative;z-index:1}.vg-auth-shell.vg-auth-shell--botanical{background:var(--asset-botanical-corner) right top / min(64vw,860px) auto no-repeat,radial-gradient(circle at 72% 10%,color-mix(in srgb,var(--accent) 12%,transparent),transparent 32rem),radial-gradient(circle at 28% 78%,color-mix(in srgb,var(--botanical-gold) 14%,transparent),transparent 40rem),var(--glass-canvas)}.vg-auth-shell.vg-auth-shell--botanical:after{content:"";position:absolute;z-index:0;left:-8vw;bottom:-90px;width:min(66vw,860px);height:min(74vw,980px);background:var(--asset-botanical-corner) left bottom / contain no-repeat;opacity:.55;transform:rotate(180deg);pointer-events:none}.vg-auth-shell.vg-auth-shell--room{--auth-room-veil: linear-gradient( 90deg, color-mix(in srgb, var(--bg-app) 94%, transparent) 0%, color-mix(in srgb, var(--bg-app) 86%, transparent) 48%, color-mix(in srgb, var(--bg-app) 72%, transparent) 74%, color-mix(in srgb, var(--bg-app) 62%, transparent) 100% );--auth-room-shade: linear-gradient(180deg, color-mix(in srgb, var(--bg-surface) 8%, transparent), color-mix(in srgb, var(--clay) 12%, transparent));--auth-hero-text: var(--text-strong);--auth-hero-muted: color-mix(in srgb, var(--text-body) 88%, transparent);--auth-hero-surface: color-mix(in srgb, var(--bg-surface) 48%, transparent);--auth-hero-border: color-mix(in srgb, var(--border-strong) 42%, transparent);--auth-hero-chip: color-mix(in srgb, var(--bg-surface) 62%, transparent);background:var(--auth-room-veil),var(--asset-login-room) center / cover no-repeat}[data-theme=dark] .vg-auth-shell.vg-auth-shell--room{--auth-room-veil: linear-gradient( 90deg, color-mix(in srgb, var(--bg-app) 84%, transparent) 0%, color-mix(in srgb, var(--bg-app) 72%, transparent) 48%, color-mix(in srgb, var(--bg-app) 55%, transparent) 74%, color-mix(in srgb, var(--bg-app) 62%, transparent) 100% );--auth-room-shade: linear-gradient(180deg, color-mix(in srgb, var(--bg-app) 18%, transparent), color-mix(in srgb, var(--bg-app) 42%, transparent));--auth-hero-text: var(--text-strong);--auth-hero-muted: color-mix(in srgb, var(--text-strong) 72%, transparent);--auth-hero-surface: color-mix(in srgb, var(--text-strong) 8%, transparent);--auth-hero-border: color-mix(in srgb, var(--border-subtle) 80%, transparent);--auth-hero-chip: color-mix(in srgb, var(--text-strong) 8%, transparent)}@media(max-width:620px){.vg-auth-shell.vg-auth-shell--botanical:after{left:-30vw;bottom:-24px;width:110vw;height:120vw;opacity:.42}}
