:root{--color-bg:#f6f7fb;--color-surface:#fff;--color-surface-alt:#f1f2f9;--color-border:#e3e5ef;--color-border-strong:#cdd1e3;--color-text:#1a1e2c;--color-text-muted:#656b80;--color-text-faint:#9499ac;--color-primary:#4c3ff2;--color-primary-hover:#3f32d6;--color-primary-soft:#edeafe;--color-primary-soft-strong:#ddd7fd;--color-accent:#ff8a3d;--color-accent-soft:#fff0e2;--color-success:#17a06b;--color-success-soft:#e4f8ef;--color-warning:#d68a00;--color-warning-soft:#fff3dc;--color-danger:#e0473f;--color-danger-soft:#fdecea;--color-info:#1a8fd1;--color-info-soft:#e5f4fc;--radius-sm:8px;--radius-md:12px;--radius-lg:18px;--radius-xl:26px;--shadow-sm:0 1px 2px #14152f0f;--shadow-md:0 4px 16px #14152f14;--shadow-lg:0 12px 32px #14152f1f;--font-body:"Inter", "Manrope", system-ui, -apple-system, sans-serif;--font-display:"Manrope", "Inter", system-ui, -apple-system, sans-serif;--sidebar-w:264px;--topbar-h:64px;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}*{box-sizing:border-box}html,body{margin:0;padding:0}body{font-family:var(--font-body);background:var(--color-bg);color:var(--color-text);-webkit-font-smoothing:antialiased;overflow-x:hidden}#root{min-height:100vh}h1,h2,h3,h4{font-family:var(--font-display);margin:0;font-weight:800;line-height:1.2}p{margin:0}a{color:inherit;text-decoration:none}button{font-family:inherit}ul,ol{margin:0;padding:0;list-style:none}img{max-width:100%;display:block}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-thumb{background:var(--color-border-strong);border-radius:999px}::-webkit-scrollbar-track{background:0 0}:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px;border-radius:4px}.container{max-width:1180px;margin:0 auto;padding:0 24px}.visually-hidden{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}@media (width<=720px){.container{padding:0 16px}}.btn{border-radius:var(--radius-md);cursor:pointer;white-space:nowrap;border:1px solid #0000;justify-content:center;align-items:center;gap:8px;font-weight:600;transition:background .15s,border-color .15s,transform 50ms,opacity .15s;display:inline-flex}.btn:active{transform:translateY(1px)}.btn:disabled{opacity:.55;cursor:not-allowed}.btn--md{padding:11px 20px;font-size:14.5px}.btn--sm{border-radius:var(--radius-sm);padding:7px 14px;font-size:13px}.btn--primary{background:var(--color-primary);color:#fff}.btn--primary:hover{background:var(--color-primary-hover)}.btn--secondary{background:var(--color-surface);color:var(--color-text);border-color:var(--color-border-strong)}.btn--secondary:hover{background:var(--color-surface-alt)}.btn--ghost{color:var(--color-text);background:0 0}.btn--ghost:hover{background:var(--color-surface-alt)}.btn--danger{background:var(--color-danger-soft);color:var(--color-danger)}.btn--danger:hover{background:#fbdbd8}.btn--accent{background:var(--color-accent-soft);color:#b5540a}.btn--accent:hover{background:#ffe4cb}.btn__icon{align-items:center;display:inline-flex}.icon-btn{border-radius:var(--radius-sm);width:36px;height:36px;color:var(--color-text-muted);cursor:pointer;background:0 0;border:1px solid #0000;justify-content:center;align-items:center;display:inline-flex}.icon-btn:hover{background:var(--color-surface-alt);color:var(--color-text)}.card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm)}.badge{border-radius:999px;align-items:center;gap:4px;padding:3px 10px;font-size:12px;font-weight:700;display:inline-flex}.badge--neutral{background:var(--color-surface-alt);color:var(--color-text-muted)}.badge--success{background:var(--color-success-soft);color:var(--color-success)}.badge--warning{background:var(--color-warning-soft);color:var(--color-warning)}.badge--info{background:var(--color-info-soft);color:var(--color-info)}.badge--accent{background:var(--color-accent-soft);color:#b5540a}.badge--primary{background:var(--color-primary-soft);color:var(--color-primary)}.progress{background:var(--color-surface-alt);border-radius:999px;width:100%;height:8px;overflow:hidden}.progress__fill{background:linear-gradient(90deg, var(--color-primary), #8b7dff);border-radius:999px;height:100%;transition:width .4s}.tabs{border-bottom:1px solid var(--color-border);gap:4px;display:flex;overflow-x:auto}.tabs__item{color:var(--color-text-muted);cursor:pointer;white-space:nowrap;background:0 0;border:none;border-bottom:2px solid #0000;padding:10px 16px;font-size:14px;font-weight:600}.tabs__item.is-active{color:var(--color-primary);border-bottom-color:var(--color-primary)}.empty-state{text-align:center;color:var(--color-text-muted);padding:48px 24px}.empty-state__icon{background:var(--color-primary-soft);width:56px;height:56px;color:var(--color-primary);border-radius:999px;justify-content:center;align-items:center;margin:0 auto 16px;display:inline-flex}.empty-state h3{color:var(--color-text);margin-bottom:6px;font-size:17px}.empty-state p{max-width:380px;margin:0 auto;font-size:14px}.empty-state__action{margin-top:18px}.modal-overlay{z-index:100;background:#14152873;justify-content:center;align-items:center;padding:20px;display:flex;position:fixed;inset:0}.modal{background:var(--color-surface);border-radius:var(--radius-lg);width:100%;max-width:520px;max-height:88vh;box-shadow:var(--shadow-lg);flex-direction:column;display:flex}.modal__header{border-bottom:1px solid var(--color-border);justify-content:space-between;align-items:center;padding:18px 20px;display:flex}.modal__header h3{font-size:17px}.modal__body{padding:20px;overflow-y:auto}.modal__footer{border-top:1px solid var(--color-border);justify-content:flex-end;gap:10px;padding:16px 20px;display:flex}.field{flex-direction:column;gap:6px;font-size:13.5px;display:flex}.field__label{color:var(--color-text);font-weight:600}.field__required{color:var(--color-danger)}.field__hint{color:var(--color-text-faint);font-size:12px}.input{border:1px solid var(--color-border-strong);border-radius:var(--radius-sm);background:var(--color-surface);color:var(--color-text);width:100%;padding:10px 12px;font-family:inherit;font-size:14px}.input:focus{outline:2px solid var(--color-primary);outline-offset:1px;border-color:var(--color-primary)}.textarea{resize:vertical;min-height:80px}.switch{cursor:pointer;align-items:center;gap:10px;font-size:13.5px;display:inline-flex}.switch input{opacity:0;width:1px;height:1px;position:absolute}.switch__track{background:var(--color-border-strong);border-radius:999px;flex-shrink:0;width:40px;height:22px;transition:background .15s;position:relative}.switch__thumb{width:18px;height:18px;box-shadow:var(--shadow-sm);background:#fff;border-radius:50%;transition:transform .15s;position:absolute;top:2px;left:2px}.switch input:checked+.switch__track{background:var(--color-primary)}.switch input:checked+.switch__track .switch__thumb{transform:translate(18px)}.switch input:focus-visible+.switch__track{outline:2px solid var(--color-primary);outline-offset:2px}.steps{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.steps__item{color:var(--color-text-faint);align-items:center;gap:8px;font-size:13px;font-weight:600;display:flex}.steps__item:not(:last-child):after{content:"";background:var(--color-border-strong);width:24px;height:1px;margin-left:4px}.steps__dot{background:var(--color-surface-alt);width:26px;height:26px;color:var(--color-text-muted);border-radius:50%;justify-content:center;align-items:center;font-size:12px;display:inline-flex}.steps__item.is-active{color:var(--color-primary)}.steps__item.is-active .steps__dot{background:var(--color-primary);color:#fff}.steps__item.is-done .steps__dot{background:var(--color-success-soft);color:var(--color-success)}@media (width<=640px){.steps__label{display:none}}.shell{flex-direction:column;min-height:100vh;display:flex}.topbar{height:var(--topbar-h);background:var(--color-surface);border-bottom:1px solid var(--color-border);z-index:40;align-items:center;gap:14px;padding:0 20px;display:flex;position:sticky;top:0}.topbar__burger{color:var(--color-text);cursor:pointer;background:0 0;border:none;padding:6px;display:none}.topbar__brand{font-family:var(--font-display);color:var(--color-text);align-items:center;gap:8px;font-size:17px;font-weight:800;display:flex}.topbar__brand-icon{background:var(--color-primary);color:#fff;border-radius:9px;justify-content:center;align-items:center;width:32px;height:32px;display:inline-flex}.topbar__spacer{flex:1}.lang-switch{border:1px solid var(--color-border-strong);background:var(--color-surface);color:var(--color-text);cursor:pointer;border-radius:999px;align-items:center;gap:6px;padding:7px 12px;font-size:12.5px;font-weight:700;display:inline-flex}.lang-switch:hover{background:var(--color-surface-alt)}.topbar__auth-cta{align-items:center;gap:10px;display:flex}.topbar__link{border-radius:var(--radius-sm);color:var(--color-text);padding:8px 14px;font-size:14px;font-weight:600}.topbar__link:hover{background:var(--color-surface-alt)}.topbar__link--filled{background:var(--color-primary);color:#fff}.topbar__link--filled:hover{background:var(--color-primary-hover)}.topbar__user{align-items:center;gap:6px;display:flex}.topbar__avatar{background:var(--color-primary-soft);width:34px;height:34px;color:var(--color-primary);border-radius:50%;justify-content:center;align-items:center;font-size:14px;font-weight:700;display:inline-flex}.shell__body{flex:1;min-height:0;display:flex}.sidebar{width:var(--sidebar-w);background:var(--color-surface);border-right:1px solid var(--color-border);top:var(--topbar-h);height:calc(100vh - var(--topbar-h));flex-direction:column;flex-shrink:0;padding:18px 12px;display:flex;position:sticky;overflow-y:auto}.sidebar__list{flex-direction:column;flex:1;gap:2px;display:flex}.sidebar__link{border-radius:var(--radius-sm);color:var(--color-text-muted);align-items:center;gap:12px;padding:10px 12px;font-size:14.5px;font-weight:600;display:flex;position:relative}.sidebar__link:hover{background:var(--color-surface-alt);color:var(--color-text)}.sidebar__link.is-active{background:var(--color-primary-soft);color:var(--color-primary)}.sidebar__link span{flex:1}.sidebar__lock{color:var(--color-text-faint);flex:none!important}.sidebar__footer{border-top:1px solid var(--color-border);margin-top:14px;padding-top:14px}.sidebar__footer p{color:var(--color-text-faint);font-size:12px;line-height:1.5}.sidebar__scrim{display:none}.content{flex:1;min-width:0;padding:28px 28px 60px}@media (width<=960px){.topbar__burger{display:inline-flex}.sidebar{left:-280px;top:var(--topbar-h);height:calc(100vh - var(--topbar-h));z-index:60;box-shadow:var(--shadow-lg);transition:left .2s;position:fixed}.sidebar.is-open{left:0}.sidebar__scrim{inset:var(--topbar-h) 0 0 0;z-index:50;background:#14152859;display:block;position:fixed}.content{padding:20px 16px 48px}.topbar__auth-cta .topbar__link:not(.topbar__link--filled){display:none}}@media (width<=480px){.topbar__brand span{display:none}}.material-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);flex-direction:column;gap:8px;padding:16px;transition:border-color .15s,transform .15s,box-shadow .15s;display:flex}.material-card:hover{border-color:var(--color-primary-soft-strong);box-shadow:var(--shadow-md);transform:translateY(-2px)}.material-card__top{justify-content:space-between;align-items:center;display:flex}.material-card__icon{border-radius:var(--radius-sm);background:var(--color-primary-soft);width:34px;height:34px;color:var(--color-primary);justify-content:center;align-items:center;display:inline-flex}.material-card h4{color:var(--color-text);font-size:15px;font-weight:700;line-height:1.3}.material-card__meta{color:var(--color-text-muted);font-size:12.5px}.material-card__foot{color:var(--color-text-faint);align-items:center;gap:8px;margin-top:4px;font-size:12px;display:flex}.material-card__lang{background:var(--color-surface-alt);color:var(--color-text-muted);border-radius:5px;padding:1px 6px;font-weight:700}.material-card__rating{color:var(--color-warning);align-items:center;gap:3px;font-weight:600;display:inline-flex}.material-card__author{text-overflow:ellipsis;white-space:nowrap;max-width:110px;margin-left:auto;overflow:hidden}.home{flex-direction:column;gap:56px;max-width:1180px;margin:0 auto;display:flex}.hero{grid-template-columns:1.1fr .9fr;align-items:center;gap:40px;padding:36px 8px 8px;display:grid}.hero__text{flex-direction:column;align-items:flex-start;gap:18px;display:flex}.hero__text h1{letter-spacing:-.5px;font-size:40px}.hero__subtitle{color:var(--color-text-muted);max-width:520px;font-size:16px;line-height:1.6}.hero__cta{flex-wrap:wrap;gap:12px;display:flex}.hero__stats{gap:28px;margin-top:8px;display:flex}.hero__stats div{flex-direction:column;display:flex}.hero__stats strong{font-family:var(--font-display);font-size:22px;font-weight:800}.hero__stats span{color:var(--color-text-muted);font-size:12.5px}.hero__visual{justify-content:center;align-items:center;height:320px;display:flex;position:relative}.hero__blob{background:radial-gradient(circle at 30% 30%, var(--color-primary-soft), transparent 60%), radial-gradient(circle at 70% 70%, var(--color-accent-soft), transparent 55%);border-radius:var(--radius-xl);border:1px solid var(--color-border);position:absolute;inset:0}.hero__card{background:var(--color-surface);border:1px solid var(--color-border);box-shadow:var(--shadow-md);border-radius:var(--radius-md);z-index:2;align-items:center;gap:8px;padding:12px 16px;font-size:13px;font-weight:700;display:flex;position:absolute}.hero__card--1{color:var(--color-primary);top:30px;left:10px}.hero__card--2{color:var(--color-warning);bottom:40px;right:10px}.features h2{margin-bottom:20px;font-size:24px}.features__grid{grid-template-columns:repeat(3,1fr);gap:16px;display:grid}.feature-card{padding:22px}.feature-card__icon{border-radius:var(--radius-sm);background:var(--color-primary-soft);width:40px;height:40px;color:var(--color-primary);justify-content:center;align-items:center;margin-bottom:14px;display:inline-flex}.feature-card h3{margin-bottom:6px;font-size:16px}.feature-card p{color:var(--color-text-muted);font-size:13.5px;line-height:1.55}.explore__head{justify-content:space-between;align-items:flex-end;margin-bottom:18px;display:flex}.explore__head h2{font-size:22px}.explore__subtitle{color:var(--color-text-muted);margin-top:4px;font-size:13.5px}.explore__all{color:var(--color-primary);flex-shrink:0;align-items:center;gap:4px;font-size:13.5px;font-weight:700;display:inline-flex}.explore__filters{flex-wrap:wrap;gap:10px;margin-bottom:20px;display:flex}.explore__search{border:1px solid var(--color-border-strong);border-radius:var(--radius-sm);background:var(--color-surface);min-width:220px;color:var(--color-text-faint);flex:1;align-items:center;gap:8px;padding:0 12px;display:flex}.explore__search input{color:var(--color-text);background:0 0;border:none;outline:none;flex:1;padding:10px 0;font-size:14px}.explore__grid{grid-template-columns:repeat(3,1fr);gap:14px;display:grid}@media (width<=900px){.hero{grid-template-columns:1fr}.hero__visual{order:-1;height:220px}.features__grid,.explore__grid{grid-template-columns:repeat(2,1fr)}}@media (width<=560px){.hero__text h1{font-size:30px}.features__grid,.explore__grid{grid-template-columns:1fr}}.auth-shell{min-height:calc(100vh - var(--topbar-h) - 60px);justify-content:center;align-items:center;padding:30px 0;display:flex}.auth-card{width:100%;max-width:400px;padding:32px}.auth-card__head{align-items:center;gap:12px;margin-bottom:22px;display:flex}.auth-card__icon{border-radius:var(--radius-sm);background:var(--color-primary);color:#fff;flex-shrink:0;justify-content:center;align-items:center;width:40px;height:40px;display:inline-flex}.auth-card__head h2{font-size:19px}.auth-form{flex-direction:column;gap:16px;display:flex}.auth-form__row{justify-content:flex-end;margin-top:-8px;display:flex}.auth-form__forgot{color:var(--color-primary);font-size:12.5px;font-weight:600}.auth-card__error{color:var(--color-danger);background:var(--color-danger-soft);border-radius:var(--radius-sm);padding:8px 10px;font-size:12.5px}.auth-card__notice{color:var(--color-text-faint);background:var(--color-surface-alt);border-radius:var(--radius-sm);margin-top:18px;padding:10px 12px;font-size:12px;line-height:1.5}.auth-card__switch{text-align:center;color:var(--color-text-muted);margin-top:16px;font-size:13.5px}.auth-card__switch a{color:var(--color-primary);font-weight:700}.auth-card__student{border:1px dashed var(--color-border-strong);border-radius:var(--radius-sm);color:var(--color-text-muted);justify-content:center;align-items:center;gap:8px;margin-top:18px;padding:10px;font-size:13px;font-weight:700;display:flex}.auth-card__student:hover{background:var(--color-surface-alt)}.wizard{flex-direction:column;gap:22px;max-width:760px;margin:0 auto;display:flex}.wizard__head h1{margin-bottom:6px;font-size:26px}.wizard__head p{color:var(--color-text-muted);font-size:14.5px}.wizard__card{padding:26px}.wizard__grid{grid-template-columns:1fr 1fr;gap:18px;display:grid}.wizard__grid .field:nth-child(5){grid-column:1/-1}.wizard__grid .field:has(textarea){grid-column:1/-1}.attach-input{border:1px dashed var(--color-border-strong);border-radius:var(--radius-sm);color:var(--color-text-muted);cursor:pointer;align-items:center;gap:8px;padding:10px 12px;font-size:13.5px;display:flex}.attach-input:hover{background:var(--color-surface-alt)}.wizard__outputs-title{margin-bottom:14px;font-weight:700}.wizard__outputs-grid{grid-template-columns:1fr 1fr;gap:10px;display:grid}.output-toggle{border:1px solid var(--color-border);border-radius:var(--radius-md);cursor:pointer;align-items:center;gap:12px;padding:12px 14px;font-size:14px;font-weight:600;display:flex}.output-toggle.is-on{border-color:var(--color-primary-soft-strong);background:var(--color-primary-soft)}.wizard__summary{gap:14px;margin-bottom:16px;display:grid}.wizard__summary dt{text-transform:uppercase;letter-spacing:.04em;color:var(--color-text-faint);margin-bottom:3px;font-size:12px}.wizard__summary dd{font-size:15px;font-weight:600}.wizard__notice{color:var(--color-text-muted);background:var(--color-surface-alt);border-radius:var(--radius-sm);margin-top:8px;padding:10px 12px;font-size:12.5px;line-height:1.5}.wizard__nav{justify-content:space-between;display:flex}.wizard-generating{justify-content:center;align-items:center;min-height:60vh;display:flex}.wizard-generating__card{text-align:center;width:100%;max-width:420px;padding:36px 28px}.wizard-generating__spark{color:var(--color-primary);margin-bottom:12px}.wizard-generating__card h2{margin-bottom:4px;font-size:19px}.wizard-generating__topic{color:var(--color-text-muted);margin-bottom:20px;font-size:13.5px}.wizard-generating__list{text-align:left;flex-direction:column;gap:10px;display:flex}.wizard-generating__item{color:var(--color-text-faint);border-radius:var(--radius-sm);align-items:center;gap:10px;padding:8px 10px;font-size:14px;display:flex}.wizard-generating__item.is-active{color:var(--color-primary);background:var(--color-primary-soft)}.wizard-generating__item.is-done{color:var(--color-success)}.wizard-generating__dot{border:2px solid var(--color-border-strong);border-radius:50%;width:18px;height:18px;display:inline-block}.spin{animation:1s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}@media (width<=640px){.wizard__grid,.wizard__outputs-grid{grid-template-columns:1fr}}.editor-plan,.editor-presentation,.editor-test,.editor-worksheet{flex-direction:column;gap:16px;display:flex}.editor-plan__stages-head{justify-content:space-between;align-items:center;margin-top:6px;display:flex}.editor-plan__stages-head h4{font-size:14.5px}.editor-plan__stages{flex-direction:column;gap:10px;display:flex}.stage-row{border:1px solid var(--color-border);border-radius:var(--radius-md);padding:12px}.stage-row__head{align-items:center;gap:8px;margin-bottom:10px;display:flex}.stage-row__head .input{flex:1}.stage-row__grip{color:var(--color-text-faint);cursor:grab;flex-shrink:0}.stage-row__time{color:var(--color-text-muted);flex-shrink:0;align-items:center;gap:6px;font-size:12.5px;display:flex}.stage-row__time .input{width:56px}.stage-row__body{grid-template-columns:1fr 1fr;gap:10px;display:grid}.editor-presentation__toolbar{justify-content:space-between;align-items:flex-end;gap:12px;display:flex}.theme-picker{gap:8px;display:flex}.theme-swatch{cursor:pointer;border:2px solid #0000;border-radius:8px;width:28px;height:28px}.theme-swatch--modern{background:linear-gradient(135deg,#4c3ff2,#8b7dff)}.theme-swatch--warm{background:linear-gradient(135deg,#ff8a3d,#ffcf9c)}.theme-swatch--mono{background:linear-gradient(135deg,#333,#999)}.theme-swatch--kids{background:linear-gradient(135deg,#17a06b,#ffe45e)}.theme-swatch.is-active{border-color:var(--color-text)}.editor-presentation__slides{grid-template-columns:repeat(2,1fr);gap:14px;display:grid}.slide-card{border:1px solid var(--color-border);border-radius:var(--radius-md);border-top:4px solid var(--color-primary);flex-direction:column;gap:8px;padding:14px;display:flex}.slide-card--warm{border-top-color:var(--color-accent)}.slide-card--mono{border-top-color:#666}.slide-card--kids{border-top-color:var(--color-success)}.slide-card__index{justify-content:space-between;align-items:center;display:flex}.slide-card__order{display:flex}.slide-card__visual{color:var(--color-text-faint);border:1px dashed var(--color-border-strong);border-radius:var(--radius-sm);align-items:center;gap:6px;padding:8px;font-size:12px;display:flex}.slide-card__actions{justify-content:flex-end;gap:2px;display:flex}.editor-test__toolbar{flex-wrap:wrap;align-items:flex-end;gap:16px;display:flex}.editor-test__list{flex-direction:column;gap:14px;display:flex}.question-card{border:1px solid var(--color-border);border-radius:var(--radius-md);flex-direction:column;gap:10px;padding:14px;display:flex}.question-card__head{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.question-card__head .field{flex-direction:row;align-items:center;gap:6px}.question-card__head .field .field__label{color:var(--color-text-muted);white-space:nowrap;font-size:12px}.question-card__head .field .input{width:64px}.question-card__head>select.input{flex-shrink:0;width:auto;min-width:140px}.question-card__options{flex-direction:column;gap:6px;display:flex}.option-row{align-items:center;gap:8px;display:flex}.option-row__num{text-align:center;width:20px;color:var(--color-text-faint);font-size:12px;font-weight:700}.match-editor{flex-direction:column;gap:8px;display:flex}.match-editor__row{align-items:center;gap:8px;display:flex}.match-editor__row span{color:var(--color-text-faint)}.editor-worksheet__list{flex-direction:column;gap:12px;display:flex}.task-card{border:1px solid var(--color-border);border-radius:var(--radius-md);flex-direction:column;gap:10px;padding:14px;display:flex}.task-card__head{align-items:center;gap:10px;display:flex}.task-card__head .input{max-width:140px}.task-card__num{color:var(--color-text-muted);margin-left:auto;font-size:12.5px}@media (width<=720px){.stage-row__body,.editor-presentation__slides{grid-template-columns:1fr}}.export-menu{display:inline-block;position:relative}.export-menu__list{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);box-shadow:var(--shadow-md);z-index:30;min-width:190px;padding:6px;position:absolute;top:calc(100% + 6px);right:0}.export-menu__item{border-radius:var(--radius-sm);width:100%;color:var(--color-text);cursor:pointer;text-align:left;background:0 0;border:none;align-items:center;gap:10px;padding:9px 10px;font-size:13.5px;font-weight:600;display:flex}.export-menu__item:hover{background:var(--color-surface-alt)}.export-menu__toast{background:var(--color-text);color:#fff;border-radius:var(--radius-md);max-width:340px;box-shadow:var(--shadow-lg);z-index:200;padding:12px 16px;font-size:13px;line-height:1.5;position:fixed;bottom:24px;right:24px}.bundle-page{flex-direction:column;gap:16px;max-width:900px;margin:0 auto;display:flex}.bundle-page__back{color:var(--color-text-muted);cursor:pointer;background:0 0;border:none;align-items:center;gap:6px;width:fit-content;font-size:13px;font-weight:600;display:inline-flex}.bundle-page__head{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:16px;display:flex}.bundle-page__head h1{margin:8px 0 4px;font-size:24px}.bundle-page__head p{color:var(--color-text-muted);font-size:13.5px}.bundle-page__actions{flex-wrap:wrap;gap:10px;display:flex}.bundle-page__notice{color:var(--color-text-muted);background:var(--color-primary-soft);border-radius:var(--radius-sm);width:fit-content;padding:8px 12px;font-size:12.5px}.bundle-page__panel{padding:20px}.bundle-homework{min-height:120px}.bundle-games{grid-template-columns:repeat(2,1fr);gap:12px;display:grid}.bundle-games__item{align-items:center;gap:12px;padding:16px;display:flex}.bundle-games__icon{border-radius:var(--radius-sm);background:var(--color-accent-soft);color:#b5540a;flex-shrink:0;justify-content:center;align-items:center;width:38px;height:38px;display:inline-flex}.bundle-games__text h4{font-size:14.5px}.bundle-games__text p{color:var(--color-text-muted);font-size:12.5px}@media (width<=640px){.bundle-games{grid-template-columns:1fr}}.version-list{flex-direction:column;gap:8px;display:flex}.version-list li{border-radius:var(--radius-sm);border:1px solid var(--color-border);justify-content:space-between;align-items:center;padding:8px 10px;font-size:13.5px;display:flex}.list-page{flex-direction:column;gap:20px;max-width:1080px;margin:0 auto;display:flex}.list-page__head{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:16px;display:flex}.list-page__head h1{margin-bottom:4px;font-size:24px}.list-page__head p{color:var(--color-text-muted);font-size:13.5px}.list-page__toolbar{align-items:center;gap:10px;display:flex}.list-page__search{border:1px solid var(--color-border-strong);border-radius:var(--radius-sm);max-width:320px;color:var(--color-text-faint);background:var(--color-surface);flex:1;align-items:center;gap:8px;padding:0 12px;display:flex}.list-page__search input{color:var(--color-text);background:0 0;border:none;outline:none;flex:1;padding:9px 0;font-size:13.5px}.list-page__archive-toggle{border:1px solid var(--color-border-strong);background:var(--color-surface);border-radius:var(--radius-sm);color:var(--color-text-muted);cursor:pointer;align-items:center;gap:6px;padding:8px 12px;font-size:13px;font-weight:600;display:inline-flex}.list-page__archive-toggle.is-active{background:var(--color-primary-soft);color:var(--color-primary);border-color:var(--color-primary-soft-strong)}.list-page__grid{grid-template-columns:repeat(3,1fr);gap:14px;display:grid}.list-item{cursor:pointer;flex-direction:column;gap:8px;padding:16px;display:flex}.list-item:hover{border-color:var(--color-primary-soft-strong)}.list-item__top{justify-content:space-between;align-items:center;display:flex}.list-item__icon{border-radius:var(--radius-sm);background:var(--color-primary-soft);width:32px;height:32px;color:var(--color-primary);justify-content:center;align-items:center;display:inline-flex}.list-item h4{font-size:15px}.list-item__meta{color:var(--color-text-muted);font-size:12.5px}.list-item__actions{border-top:1px solid var(--color-border);gap:2px;margin-top:2px;padding-top:8px;display:flex}@media (width<=900px){.list-page__grid{grid-template-columns:repeat(2,1fr)}}@media (width<=560px){.list-page__grid{grid-template-columns:1fr}}.games-page{flex-direction:column;gap:20px;max-width:1080px;margin:0 auto;display:flex}.games-page__head h1{margin-bottom:4px;font-size:24px}.games-page__head p{color:var(--color-text-muted);font-size:13.5px}.games-page__grid{grid-template-columns:repeat(4,1fr);gap:14px;display:grid}.game-card{flex-direction:column;gap:8px;padding:16px;display:flex}.game-card__top{justify-content:space-between;align-items:center;display:flex}.game-card__icon{border-radius:var(--radius-sm);background:var(--color-accent-soft);color:#b5540a;justify-content:center;align-items:center;width:34px;height:34px;display:inline-flex}.game-card h4{font-size:15px}.game-card p{color:var(--color-text-muted);flex:1;font-size:12.5px;line-height:1.5}.game-card__foot{justify-content:space-between;align-items:center;margin-top:6px;display:flex}.game-card__mode{color:var(--color-text-faint);align-items:center;gap:4px;font-size:11.5px;display:inline-flex}@media (width<=1000px){.games-page__grid{grid-template-columns:repeat(3,1fr)}}@media (width<=720px){.games-page__grid{grid-template-columns:repeat(2,1fr)}}@media (width<=480px){.games-page__grid{grid-template-columns:1fr}}.tf-game{flex-direction:column;gap:16px;max-width:560px;margin:0 auto;display:flex}.tf-game__counter{text-align:center;color:var(--color-text-muted);font-size:13px;font-weight:600}.tf-game__statement{text-align:center;justify-content:center;align-items:center;min-height:140px;padding:40px 28px;font-size:22px;font-weight:700;transition:background .2s,border-color .2s;display:flex}.tf-game__statement.is-correct{background:var(--color-success-soft);border-color:var(--color-success)}.tf-game__statement.is-wrong{background:var(--color-danger-soft);border-color:var(--color-danger)}.tf-game__buttons{justify-content:center;gap:16px;display:flex}.tf-game__buttons .btn{min-width:160px;padding:16px 24px;font-size:16px}.tf-result{text-align:center;max-width:400px;color:var(--color-primary);flex-direction:column;align-items:center;gap:8px;margin:40px auto;padding:40px;display:flex}.tf-result h2{color:var(--color-text);font-size:36px}.tf-result p{color:var(--color-text-muted)}.race-game{flex-direction:column;gap:20px;max-width:640px;margin:0 auto;display:flex}.race-game__controls{align-items:flex-end;gap:16px;display:flex}.race-track{flex-direction:column;gap:16px;display:flex}.race-lane__label{margin-bottom:4px;font-size:12.5px;font-weight:700}.race-lane__track{background:var(--color-surface-alt);border-radius:999px;height:36px;position:relative;overflow:hidden}.race-lane__horse{color:#fff;border-radius:50%;justify-content:center;align-items:center;width:32px;height:32px;font-size:18px;transition:left .4s;display:flex;position:absolute;top:2px;transform:translate(-4px)}.race-lane__finish{opacity:.4;background:repeating-linear-gradient(45deg,#000 0 4px,#fff 4px 8px);width:3px;position:absolute;top:4px;bottom:4px;right:6px}.race-game__buttons{flex-wrap:wrap;justify-content:center;gap:10px;display:flex}.race-game__buttons .btn{background:0 0;border-width:2px}.race-game__winner{color:var(--color-warning);justify-content:center;align-items:center;gap:10px;padding:20px;font-size:17px;font-weight:700;display:flex}.memory-game{flex-direction:column;gap:14px;max-width:460px;margin:0 auto;display:flex}.memory-game__moves{text-align:center;color:var(--color-text-muted);font-size:13px;font-weight:600}.memory-grid{grid-template-columns:repeat(4,1fr);gap:10px;display:grid}.memory-card{aspect-ratio:1;border-radius:var(--radius-md);background:var(--color-primary);color:#fff;cursor:pointer;border:none;justify-content:center;align-items:center;font-size:26px;transition:background .2s,transform .15s;display:flex}.memory-card.is-flipped{background:var(--color-surface);border:1px solid var(--color-border-strong);color:var(--color-text);transform:scale(1.03)}@keyframes game-pop-in{0%{opacity:0;transform:scale(.9)translateY(8px)}to{opacity:1;transform:scale(1)translateY(0)}}@keyframes game-shake{10%,90%{transform:translate(-1px)}20%,80%{transform:translate(2px)}30%,50%,70%{transform:translate(-5px)}40%,60%{transform:translate(5px)}}@keyframes game-pulse-glow{0%,to{box-shadow:0 0 #4c3ff259}50%{box-shadow:0 0 0 10px #4c3ff200}}@keyframes game-confetti-spin{0%{transform:rotate(0)scale(1)}50%{transform:rotate(8deg)scale(1.08)}to{transform:rotate(0)scale(1)}}.game-hint{text-align:center;max-width:560px;color:var(--color-primary);background:var(--color-primary-soft);border-radius:999px;margin:0 auto 4px;padding:10px 18px;font-size:14px;font-weight:600}.game-result{text-align:center;background:linear-gradient(160deg, var(--color-primary-soft) 0%, var(--color-surface) 65%);flex-direction:column;align-items:center;gap:10px;max-width:420px;margin:32px auto;padding:44px 36px;animation:.35s cubic-bezier(.2,.9,.3,1.2) game-pop-in;display:flex}.game-result svg{color:var(--color-accent);animation:1.6s ease-in-out infinite game-confetti-spin}.game-result h2{background:linear-gradient(90deg, var(--color-primary), var(--color-accent));color:#0000;-webkit-background-clip:text;background-clip:text;font-size:40px;font-weight:800}.game-result p{color:var(--color-text-muted);font-size:14px}.matching-game{flex-direction:column;gap:20px;max-width:640px;margin:0 auto;display:flex}.matching-columns{grid-template-columns:1fr 1fr;gap:24px;display:grid}.matching-col{flex-direction:column;gap:12px;display:flex}.matching-chip{border-radius:var(--radius-md);border:2px solid var(--color-border);background:var(--color-surface);color:var(--color-text);text-align:left;cursor:pointer;min-height:56px;box-shadow:var(--shadow-sm);align-items:center;gap:8px;padding:16px 18px;font-size:15px;font-weight:600;transition:border-color .15s,transform .15s,box-shadow .15s,background .15s;display:flex}.matching-chip:hover:not(:disabled){border-color:var(--color-primary);box-shadow:var(--shadow-md);transform:translateY(-2px)}.matching-chip:disabled{cursor:default}.matching-chip.is-selected{border-color:var(--color-primary);background:var(--color-primary-soft);animation:1.4s ease-in-out infinite game-pulse-glow}.matching-chip.is-matched{border-color:var(--color-success);background:var(--color-success-soft);color:var(--color-success);opacity:.85;transform:none}.matching-chip.is-wrong{border-color:var(--color-danger);background:var(--color-danger-soft);animation:.4s game-shake}.ordering-game{flex-direction:column;gap:18px;max-width:560px;margin:0 auto;display:flex}.ordering-sequence{flex-direction:column;gap:10px;min-height:60px;display:flex}.ordering-sequence__empty{text-align:center;border:2px dashed var(--color-border-strong);border-radius:var(--radius-md);color:var(--color-text-faint);padding:20px;font-size:13.5px}.ordering-slot{border-radius:var(--radius-md);background:var(--color-surface);border:2px solid var(--color-border);box-shadow:var(--shadow-sm);align-items:center;gap:12px;padding:14px 16px;font-size:15px;font-weight:600;animation:.25s game-pop-in;display:flex}.ordering-slot__num{background:var(--color-primary-soft);width:26px;height:26px;color:var(--color-primary);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-size:12.5px;font-weight:800;display:inline-flex}.ordering-slot.is-correct{border-color:var(--color-success);background:var(--color-success-soft);color:var(--color-success)}.ordering-slot.is-correct .ordering-slot__num{background:var(--color-success);color:#fff}.ordering-slot.is-wrong{border-color:var(--color-danger);background:var(--color-danger-soft);color:var(--color-danger)}.ordering-slot.is-wrong .ordering-slot__num{background:var(--color-danger);color:#fff}.ordering-pool{flex-wrap:wrap;justify-content:center;gap:10px;display:flex}.ordering-chip{border:2px solid var(--color-border-strong);background:var(--color-surface);color:var(--color-text);cursor:pointer;border-radius:999px;padding:12px 20px;font-size:14.5px;font-weight:700;transition:border-color .15s,transform .15s,background .15s}.ordering-chip:hover{border-color:var(--color-primary);background:var(--color-primary-soft);transform:translateY(-2px)}.sorting-game{flex-direction:column;gap:20px;max-width:680px;margin:0 auto;display:flex}.sorting-pool{background:var(--color-surface-alt);border-radius:var(--radius-md);flex-wrap:wrap;justify-content:center;gap:10px;padding:16px;display:flex}.sorting-chip{border:2px solid var(--color-border-strong);background:var(--color-surface);color:var(--color-text);cursor:pointer;border-radius:999px;padding:11px 18px;font-size:14px;font-weight:700;transition:border-color .15s,transform .15s,box-shadow .15s}.sorting-chip:hover{box-shadow:var(--shadow-sm);transform:translateY(-2px)}.sorting-chip.is-selected{border-color:var(--color-primary);background:var(--color-primary);color:#fff;animation:1.4s ease-in-out infinite game-pulse-glow}.sorting-categories{grid-template-columns:1fr 1fr;gap:16px;display:grid}.sorting-category{cursor:pointer;border:2px solid var(--color-border);padding:18px;transition:border-color .15s,transform .15s,box-shadow .15s}.sorting-category h4{margin-bottom:10px;font-size:15px}.sorting-category.is-droppable{border-color:var(--color-primary);box-shadow:var(--shadow-md)}.sorting-category.is-droppable:hover{background:var(--color-primary-soft);transform:translateY(-2px)}.sorting-category__items{flex-wrap:wrap;gap:8px;min-height:36px;display:flex}.sorting-category__empty{color:var(--color-text-faint);font-size:13px}.sorting-placed{background:var(--color-surface-alt);border-radius:999px;padding:7px 14px;font-size:13px;font-weight:700;animation:.25s game-pop-in}.sorting-placed.is-correct{background:var(--color-success-soft);color:var(--color-success)}.sorting-placed.is-wrong{background:var(--color-danger-soft);color:var(--color-danger)}.wheel-game{flex-direction:column;align-items:center;gap:24px;max-width:480px;margin:0 auto;display:flex}.wheel-wrap{width:320px;max-width:80vw;height:320px;max-height:80vw;position:relative}.wheel-pointer{border-left:14px solid #0000;border-right:14px solid #0000;border-top:24px solid var(--color-text);z-index:2;filter:drop-shadow(0 2px 3px #00000040);width:0;height:0;position:absolute;top:-6px;left:50%;transform:translate(-50%)}.wheel-disc{border:6px solid var(--color-surface);width:100%;height:100%;box-shadow:var(--shadow-lg), 0 0 0 3px var(--color-border-strong);border-radius:50%;transition:transform 4.2s cubic-bezier(.12,.72,.15,1);position:relative}.wheel-label{transform-origin:0 100%;pointer-events:none;justify-content:center;align-items:flex-start;width:50%;height:50%;padding-top:14px;display:flex;position:absolute;top:0;left:50%}.wheel-label span{color:#fff;text-shadow:0 1px 3px #0006;text-align:center;max-width:72px;font-size:12.5px;font-weight:800;line-height:1.2}.wheel-result{text-align:center;color:var(--color-primary);padding:18px 28px;font-size:18px;font-weight:800;animation:.35s game-pop-in}.millionaire-game{grid-template-columns:220px 1fr;gap:24px;max-width:860px;margin:0 auto;display:grid}.millionaire-ladder{border-radius:var(--radius-lg);background:#12102b;flex-direction:column;gap:4px;padding:14px;display:flex}.millionaire-rung{border-radius:var(--radius-sm);color:#9a97c9;text-align:right;padding:10px 14px;font-size:13.5px;font-weight:700}.millionaire-rung.is-done{color:#ffd76a}.millionaire-rung.is-active{color:#1a1436;background:linear-gradient(90deg,#ff8a3d,#ffd76a);transform:scale(1.03);box-shadow:0 4px 14px #ff8a3d66}.millionaire-stage{flex-direction:column;justify-content:center;gap:20px;display:flex}.millionaire-question{border-radius:var(--radius-lg);background:var(--color-surface);border:1px solid var(--color-border);box-shadow:var(--shadow-md);text-align:center;padding:24px 28px;font-size:19px;font-weight:700}.millionaire-options{grid-template-columns:1fr 1fr;gap:14px;display:grid}.millionaire-option{border-radius:var(--radius-md);border:2px solid var(--color-border-strong);background:var(--color-surface);color:var(--color-text);text-align:left;cursor:pointer;align-items:center;gap:10px;padding:16px 18px;font-size:15px;font-weight:600;transition:border-color .15s,transform .15s,background .15s;display:flex}.millionaire-option:hover:not(:disabled){border-color:var(--color-primary);transform:translateY(-2px)}.millionaire-option:disabled{cursor:default}.millionaire-option__letter{background:var(--color-surface-alt);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:28px;height:28px;font-size:12.5px;font-weight:800;display:inline-flex}.millionaire-option.is-correct{border-color:var(--color-success);background:var(--color-success-soft);color:var(--color-success)}.millionaire-option.is-correct .millionaire-option__letter{background:var(--color-success);color:#fff}.millionaire-option.is-wrong{border-color:var(--color-danger);background:var(--color-danger-soft);color:var(--color-danger);animation:.4s game-shake}.millionaire-option.is-wrong .millionaire-option__letter{background:var(--color-danger);color:#fff}.millionaire-end{text-align:center;flex-direction:column;align-items:center;gap:10px;padding:40px;display:flex}.millionaire-end svg{color:var(--color-accent)}.millionaire-end h2{background:linear-gradient(90deg, var(--color-primary), var(--color-accent));color:#0000;-webkit-background-clip:text;background-clip:text;font-size:34px;font-weight:800}@media (width<=640px){.millionaire-game{grid-template-columns:1fr}.millionaire-ladder{flex-direction:row;overflow-x:auto}.millionaire-options{grid-template-columns:1fr}}.fillblank-game{flex-direction:column;gap:16px;max-width:520px;margin:0 auto;display:flex}.fillblank-card{text-align:center;flex-direction:column;align-items:center;gap:20px;padding:40px 32px;transition:border-color .2s,background .2s;display:flex}.fillblank-card.is-correct{border-color:var(--color-success);background:var(--color-success-soft)}.fillblank-card.is-wrong{border-color:var(--color-danger);background:var(--color-danger-soft);animation:.4s game-shake}.fillblank-sentence{font-size:20px;font-weight:700;line-height:1.6}.fillblank-gap{border-bottom:3px solid var(--color-primary);min-width:90px;color:var(--color-primary);margin:0 4px;padding:2px 10px;font-weight:800;display:inline-block}.fillblank-form{gap:10px;width:100%;display:flex}.fillblank-form input{text-align:center;flex:1;font-size:16px}.fillblank-feedback{justify-content:center;align-items:center;display:flex}.fillblank-card.is-correct .fillblank-feedback{color:var(--color-success)}.fillblank-card.is-wrong .fillblank-feedback{color:var(--color-danger)}.teamquiz-game{flex-direction:column;gap:20px;max-width:720px;margin:0 auto;display:flex}.teamquiz-setup{justify-content:center;align-items:flex-end;gap:14px;display:flex}.teamquiz-scoreboard{grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:12px;display:grid}.teamquiz-team{border-radius:var(--radius-md);background:var(--color-surface);border:2px solid var(--color-border);border-top:5px solid var(--team-color,var(--color-primary));text-align:center;box-shadow:var(--shadow-sm);padding:14px 16px;transition:transform .15s,box-shadow .15s}.teamquiz-team.is-active{box-shadow:var(--shadow-md);border-color:var(--team-color,var(--color-primary));transform:translateY(-3px)scale(1.03)}.teamquiz-team__name{color:var(--color-text-muted);font-size:12.5px;font-weight:700;display:block}.teamquiz-team__score{color:var(--team-color,var(--color-primary));font-size:28px;font-weight:800;display:block}.teamquiz-question{text-align:center;flex-direction:column;align-items:center;gap:18px;padding:32px 28px;display:flex}.teamquiz-question__text{font-size:20px;font-weight:700;line-height:1.5}.teamquiz-answer{background:var(--color-success-soft);color:var(--color-success);border-radius:999px;align-items:center;gap:8px;padding:12px 20px;font-weight:700;display:flex}.teamquiz-award{flex-direction:column;align-items:center;gap:10px;display:flex}.teamquiz-award span{color:var(--color-text-muted);font-size:13px;font-weight:600}.teamquiz-award__buttons{flex-wrap:wrap;justify-content:center;gap:8px;display:flex}.game-play.is-fullscreen .game-hint{padding:14px 24px;font-size:17px}.game-play.is-fullscreen .matching-chip,.game-play.is-fullscreen .ordering-slot,.game-play.is-fullscreen .ordering-chip,.game-play.is-fullscreen .sorting-chip,.game-play.is-fullscreen .millionaire-option,.game-play.is-fullscreen .fillblank-sentence,.game-play.is-fullscreen .teamquiz-question__text{font-size:1.25em}.game-play.is-fullscreen .wheel-wrap{width:440px;height:440px}.game-play{flex-direction:column;gap:20px;display:flex}.game-play__head{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:16px;display:flex}.game-play__title{text-align:center;flex:1}.game-play__title h1{margin-top:4px;font-size:20px}.game-play__title p{color:var(--color-text-muted);font-size:13px}.game-play__actions{gap:8px;display:flex}.game-play__stage{padding:20px 4px 40px}.game-play.is-fullscreen{background:var(--color-bg);min-height:100vh;padding:24px}.game-play.is-fullscreen .game-play__title h1{font-size:28px}.library-page{flex-direction:column;gap:18px;max-width:1100px;margin:0 auto;display:flex}.library-page__head h1{margin-bottom:4px;font-size:24px}.library-page__head p{color:var(--color-text-muted);font-size:13.5px}.library-page__toolbar{flex-wrap:wrap;gap:10px;display:flex}.library-page__search{border:1px solid var(--color-border-strong);border-radius:var(--radius-sm);min-width:200px;color:var(--color-text-faint);flex:1;align-items:center;gap:8px;padding:0 12px;display:flex}.library-page__search input{color:var(--color-text);background:0 0;border:none;outline:none;flex:1;padding:9px 0;font-size:13.5px}.library-page__toolbar select{width:auto;min-width:130px}.library-grid{grid-template-columns:repeat(3,1fr);gap:14px;display:grid}.library-item{flex-direction:column;gap:8px;padding:16px;display:flex}.library-item__top{justify-content:space-between;align-items:center;display:flex}.library-item h4{font-size:15px}.library-item__meta{color:var(--color-text-muted);font-size:12.5px}.library-item__foot{color:var(--color-text-faint);align-items:center;gap:8px;margin-top:4px;font-size:12px;display:flex}.library-item__rating{color:var(--color-warning);align-items:center;gap:3px;font-weight:700;display:inline-flex}.library-item__author{text-overflow:ellipsis;white-space:nowrap;margin-right:auto;overflow:hidden}@media (width<=900px){.library-grid{grid-template-columns:repeat(2,1fr)}}@media (width<=560px){.library-grid{grid-template-columns:1fr}}.classes-page{flex-direction:column;gap:20px;max-width:1000px;margin:0 auto;display:flex}.classes-page__head{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:16px;display:flex}.classes-page__head h1{margin-bottom:4px;font-size:24px}.classes-page__head p{color:var(--color-text-muted);font-size:13.5px}.classes-grid{grid-template-columns:repeat(3,1fr);gap:14px;display:grid}.class-card{cursor:pointer;flex-direction:column;gap:6px;padding:18px;display:flex}.class-card:hover{border-color:var(--color-primary-soft-strong)}.class-card h4{font-size:16px}.class-card p{color:var(--color-text-muted);font-size:13px}.class-card__foot{color:var(--color-text-faint);align-items:center;gap:6px;margin-top:6px;font-size:12.5px;display:flex}.classes-form{flex-direction:column;gap:14px;display:flex}.class-detail{flex-direction:column;gap:18px;max-width:900px;margin:0 auto;display:flex}.class-detail__head h1{font-size:22px}.class-detail__head p{color:var(--color-text-muted);font-size:13px}.class-detail__stats{grid-template-columns:repeat(4,1fr);gap:12px;display:grid}.class-stat{text-align:center;padding:16px}.class-stat strong{font-size:22px;font-family:var(--font-display);display:block}.class-stat span{color:var(--color-text-muted);font-size:12px}.student-list{flex-direction:column;gap:8px;display:flex}.student-row{border:1px solid var(--color-border);border-radius:var(--radius-sm);justify-content:space-between;align-items:center;padding:10px 14px;font-size:13.5px;display:flex}.add-student-row{gap:8px;display:flex}.add-student-row .input{flex:1;min-width:0}.add-student-row .btn{flex-shrink:0}@media (width<=900px){.classes-grid,.class-detail__stats{grid-template-columns:repeat(2,1fr)}}@media (width<=560px){.classes-grid{grid-template-columns:1fr}.add-student-row{flex-wrap:wrap}.add-student-row .input{flex-basis:100%}.add-student-row .btn{flex:1}}.assistant-page{flex-direction:column;gap:14px;max-width:720px;margin:0 auto;display:flex}.assistant-page__head h1{font-size:22px}.assistant-page__head p{color:var(--color-text-muted);font-size:13.5px}.assistant-chat{flex-direction:column;height:560px;display:flex}.assistant-chat__messages{flex-direction:column;flex:1;gap:12px;padding:20px;display:flex;overflow-y:auto}.assistant-msg{gap:10px;max-width:85%;display:flex}.assistant-msg--user{flex-direction:row-reverse;align-self:flex-end}.assistant-msg__icon{background:var(--color-primary-soft);width:28px;height:28px;color:var(--color-primary);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.assistant-msg--user .assistant-msg__icon{background:var(--color-surface-alt);color:var(--color-text-muted)}.assistant-msg p{background:var(--color-surface-alt);border-radius:var(--radius-md);white-space:pre-line;padding:10px 14px;font-size:13.5px;line-height:1.55}.assistant-msg--user p{background:var(--color-primary);color:#fff}.assistant-typing{letter-spacing:2px}.assistant-suggestions{border-top:1px solid var(--color-border);flex-wrap:wrap;gap:6px;padding:12px 16px;display:flex}.assistant-suggestion{border:1px solid var(--color-border-strong);background:var(--color-surface);color:var(--color-text-muted);cursor:pointer;border-radius:999px;align-items:center;gap:5px;padding:6px 12px;font-size:12px;font-weight:600;display:inline-flex}.assistant-suggestion:hover{background:var(--color-surface-alt)}.assistant-input{border-top:1px solid var(--color-border);gap:8px;padding:12px 16px;display:flex}.assistant-input input{border:1px solid var(--color-border-strong);border-radius:var(--radius-sm);outline:none;flex:1;padding:10px 12px;font-size:14px}.assistant-input input:focus{border-color:var(--color-primary)}.assistant-page__notice{color:var(--color-text-faint);text-align:center;font-size:12px}.profile-page{flex-direction:column;gap:18px;max-width:1000px;margin:0 auto;display:flex}.profile-page__head{align-items:center;gap:16px;display:flex}.profile-page__avatar{background:var(--color-primary);color:#fff;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:56px;height:56px;font-size:22px;font-weight:700;display:inline-flex}.profile-page__head h1{font-size:20px}.profile-page__head p{color:var(--color-text-muted);font-size:13px}.profile-grid{grid-template-columns:repeat(3,1fr);gap:14px;display:grid}.profile-settings{max-width:480px;padding:24px}.profile-settings__form{flex-direction:column;gap:14px;display:flex}.profile-settings__danger{border-top:1px solid var(--color-border);flex-wrap:wrap;gap:10px;margin-top:22px;padding-top:18px;display:flex}@media (width<=900px){.profile-grid{grid-template-columns:repeat(2,1fr)}}@media (width<=560px){.profile-grid{grid-template-columns:1fr}}.admin-page{flex-direction:column;gap:18px;max-width:1080px;margin:0 auto;display:flex}.admin-page__head h1{margin-top:6px;font-size:24px}.admin-panel{padding:20px}.admin-panel__head{color:var(--color-text-muted);align-items:center;gap:8px;margin-bottom:14px;display:flex}.admin-panel__head h4{color:var(--color-text);font-size:14.5px}.admin-table-wrap{width:100%;overflow-x:auto}.admin-table{border-collapse:collapse;width:100%;min-width:520px;font-size:13.5px}.admin-table th{text-align:left;text-transform:uppercase;color:var(--color-text-faint);border-bottom:1px solid var(--color-border);padding:8px 10px;font-size:11.5px}.admin-table td{border-bottom:1px solid var(--color-border);vertical-align:middle;padding:10px}.admin-table__sub{color:var(--color-text-faint);font-size:11.5px}.admin-empty{color:var(--color-text-faint);font-size:13px}.admin-list{flex-direction:column;gap:8px;display:flex}.admin-list li{border-radius:var(--radius-sm);background:var(--color-surface-alt);justify-content:space-between;align-items:center;gap:10px;padding:10px 12px;font-size:13px;display:flex}.admin-catalog-grid{grid-template-columns:1fr 1fr;gap:14px;display:grid}.admin-tags{flex-wrap:wrap;gap:6px;display:flex}.admin-tags li{background:var(--color-primary-soft);color:var(--color-primary);border-radius:999px;padding:5px 12px;font-size:12.5px;font-weight:600}.admin-ai-grid{grid-template-columns:repeat(3,1fr);gap:14px;margin-bottom:14px;display:grid}.admin-hint{color:var(--color-text-faint);background:var(--color-surface-alt);border-radius:var(--radius-sm);padding:10px 12px;font-size:12px}.admin-stats-grid{grid-template-columns:repeat(4,1fr);gap:14px;display:grid}.admin-stat{text-align:center;color:var(--color-primary);flex-direction:column;align-items:center;gap:4px;padding:20px;display:flex}.admin-stat strong{color:var(--color-text);font-size:24px;font-family:var(--font-display)}.admin-stat span{color:var(--color-text-muted);font-size:12px}@media (width<=800px){.admin-catalog-grid,.admin-ai-grid{grid-template-columns:1fr}.admin-stats-grid{grid-template-columns:repeat(2,1fr)}}.join-shell{background:var(--color-bg);flex-direction:column;justify-content:center;align-items:center;min-height:100vh;padding:20px;display:flex;position:relative}.join-shell__lang{border:1px solid var(--color-border-strong);background:var(--color-surface);cursor:pointer;border-radius:999px;padding:7px 14px;font-size:12.5px;font-weight:700;position:absolute;top:20px;right:20px}.join-card{width:100%;max-width:360px}.join-code-input{letter-spacing:4px;text-align:center;text-transform:uppercase;font-size:22px;font-weight:800}.join-card__error{color:var(--color-danger);background:var(--color-danger-soft);border-radius:var(--radius-sm);padding:8px 10px;font-size:12.5px}.join-shell__teacher{color:var(--color-text-muted);margin-top:20px;font-size:13px;font-weight:600}.join-shell__teacher:hover{color:var(--color-primary)}.session-run{flex-direction:column;gap:18px;max-width:900px;margin:0 auto;display:flex}.session-run__head{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.session-run__head h1{margin-top:8px;font-size:22px}.session-run__grid{grid-template-columns:260px 1fr;gap:16px;display:grid}.session-run__join{text-align:center;flex-direction:column;align-items:center;gap:8px;padding:24px;display:flex}.session-run__label{color:var(--color-text-faint);text-transform:uppercase;letter-spacing:.04em;font-size:12px}.session-run__code{letter-spacing:4px;font-size:32px;font-weight:800;font-family:var(--font-display);color:var(--color-primary)}.session-run__url{color:var(--color-text-faint);word-break:break-all;font-size:11px}.session-run__col{flex-direction:column;gap:16px;display:flex}.session-run__participants,.session-run__results{padding:18px}.session-run__participants-head{color:var(--color-text-muted);align-items:center;gap:8px;margin-bottom:10px;display:flex}.session-run__participants-head h4{color:var(--color-text);font-size:14px}.session-run__empty{color:var(--color-text-faint);font-size:13px}.session-run__avg{margin-bottom:10px;font-size:13.5px}.session-run__avg strong{color:var(--color-primary)}.participant-list{flex-direction:column;gap:6px;display:flex}.participant-list li{border-radius:var(--radius-sm);background:var(--color-surface-alt);justify-content:space-between;align-items:center;padding:8px 10px;font-size:13px;display:flex}@media (width<=720px){.session-run__grid{grid-template-columns:1fr}}.sp-page{flex-direction:column;gap:16px;max-width:560px;margin:0 auto;padding:24px 16px 60px;display:flex}.sp-page__head{flex-direction:column;gap:8px;display:flex}.sp-page__head h1{font-size:20px}.sp-list{flex-direction:column;gap:12px;display:flex}.sp-question{flex-direction:column;gap:10px;padding:16px;display:flex}.sp-question__text{font-size:14.5px;font-weight:700}.sp-question__hint{color:var(--color-text-faint);font-size:12.5px;font-style:italic}.sp-options{flex-direction:column;gap:8px;display:flex}.sp-option{border:1px solid var(--color-border);border-radius:var(--radius-sm);cursor:pointer;align-items:center;gap:10px;padding:10px 12px;font-size:13.5px;display:flex}.sp-option.is-selected{border-color:var(--color-primary);background:var(--color-primary-soft)}.sp-result{text-align:center;color:var(--color-primary);flex-direction:column;align-items:center;gap:8px;display:flex}.sp-result h2{color:var(--color-text);font-size:34px}
