.app-header{position:fixed;top:0;left:0;right:0;height:calc(56px + env(safe-area-inset-top,0px));padding-top:env(safe-area-inset-top,0px);background:var(--background);border-bottom:1px solid var(--card-border);box-shadow:var(--shadow-sm);display:flex;align-items:center;justify-content:space-between;padding-left:8px;padding-right:8px;z-index:100;box-sizing:border-box}.app-header__left{display:flex;align-items:center;gap:8px}.app-header__right{display:flex;align-items:center;gap:12px}.app-header__logo{display:flex;align-items:center;gap:10px;text-decoration:none;cursor:pointer;border-radius:8px;padding:4px 8px;margin:-4px -8px;transition:background .15s ease;-webkit-tap-highlight-color:transparent}.app-header__logo:hover{background:#4f46e51a}.app-header__logo-img{width:36px;height:36px}.app-header__logo-text{font-size:20px;font-weight:700;color:var(--primary-hover)}.app-header__level{position:absolute;left:50%;transform:translate(-50%);font-weight:700;text-align:center}.app-header__profile-btn{display:flex;align-items:center;gap:6px;padding:6px 12px;background:transparent;border:1px solid var(--card-border);border-radius:20px;color:var(--foreground);cursor:pointer;transition:background .15s ease,border-color .15s ease;-webkit-tap-highlight-color:transparent;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;font-size:14px;font-weight:500}.app-header__profile-btn:hover{border-color:var(--primary);background:#4f46e50d}.app-header__profile-btn:active{background:#4f46e51a}.app-header__profile-icon{width:20px;height:20px;flex-shrink:0}.app-header__profile-name{max-width:100px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.app-header__coins{display:flex;align-items:center;gap:4px;padding:4px 10px;background:#f59e0b26;border-radius:16px}.app-header__coin-icon{display:flex;align-items:center;width:16px;height:16px}.app-header__coin-count{font-size:14px;font-weight:600;color:#d97706;min-width:16px;text-align:center}.app-header__coin-count--unlimited{font-size:16px}.app-header__coin-count--empty{color:var(--error, #ef4444)}@media(max-width:360px){.app-header__logo-text,.app-header__profile-name{display:none}.app-header__profile-btn{padding:8px;border-radius:50%}.app-header__right{gap:8px}.app-header__coins{padding:4px 8px}}.landing-page{--section-padding: 80px 20px;--max-content-width: 1200px;--nav-height: 72px;min-height:100vh;background:var(--background);color:var(--foreground);font-family:var(--font-family)}.landing-nav{position:fixed;top:0;left:0;right:0;height:var(--nav-height);background:var(--background);border-bottom:1px solid var(--card-border);z-index:100}.landing-nav__container{max-width:var(--max-content-width);margin:0 auto;height:100%;display:flex;align-items:center;justify-content:space-between;padding:0 24px}.landing-nav__logo{display:flex;align-items:center;gap:10px;text-decoration:none;color:var(--foreground)}.landing-nav__logo-img{width:36px;height:36px}.landing-nav__logo-text{font-size:20px;font-weight:700;color:var(--primary-hover)}.landing-nav__links{display:flex;gap:32px}.landing-nav__link{text-decoration:none;color:var(--muted-foreground);font-size:14px;font-weight:500;transition:color .2s}.landing-nav__link:hover{color:var(--foreground)}.landing-nav__actions{display:flex;gap:12px}.landing-nav__btn{padding:8px 16px;border-radius:var(--radius-md);font-size:14px;font-weight:500;cursor:pointer;transition:all .2s;border:none;font-family:var(--font-family)}.landing-nav__btn--primary{background:var(--primary);color:var(--primary-foreground)}.landing-nav__btn--primary:hover{background:var(--primary-hover)}.landing-nav__btn--secondary{background:transparent;color:var(--foreground);border:1px solid var(--card-border)}.landing-nav__btn--secondary:hover{background:var(--background-muted)}.landing-nav__btn--full{width:100%}.landing-nav__hamburger{display:none;background:none;border:none;color:var(--foreground);cursor:pointer;padding:8px}.landing-nav__mobile-menu{display:none;position:fixed;inset:0;background:var(--background);z-index:200;flex-direction:column;padding:20px 24px}.landing-nav__mobile-menu.open{display:flex}.landing-nav__mobile-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:40px}.landing-nav__close{background:none;border:none;color:var(--foreground);cursor:pointer;padding:8px}.landing-nav__mobile-links{display:flex;flex-direction:column;gap:24px;margin-bottom:40px}.landing-nav__mobile-link{text-decoration:none;color:var(--foreground);font-size:18px;font-weight:500}.landing-nav__mobile-actions{display:flex;flex-direction:column;gap:12px;margin-top:auto}@media(max-width:768px){.landing-nav__links,.landing-nav__actions{display:none}.landing-nav__hamburger{display:block}}.landing-hero{padding:120px 20px 80px;background:linear-gradient(180deg,var(--background) 0%,var(--background-muted) 100%)}.landing-page--has-banner .landing-hero{padding-top:160px}.landing-hero__container{max-width:var(--max-content-width);margin:0 auto;display:grid;grid-template-columns:1fr 1fr;gap:60px;align-items:center;overflow:visible}.landing-hero__content{max-width:560px;overflow:visible}.landing-hero__badge{display:inline-block;background:var(--primary);color:var(--primary-foreground);padding:6px 14px;border-radius:50px;font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.5px;margin-bottom:24px}.landing-hero__title{font-size:48px;font-weight:700;line-height:1.1;margin-bottom:20px;letter-spacing:-.02em;overflow:visible;padding-bottom:12px}.landing-hero__highlight{color:var(--primary);position:relative;display:inline-block;overflow:visible;padding-bottom:10px;margin-bottom:-10px}.landing-hero__squiggle{position:absolute;bottom:3px;left:-2px;width:100%;height:12px;color:var(--accent-orange)}.landing-hero__subtitle{font-size:18px;color:var(--muted-foreground);line-height:1.6;margin-bottom:32px}.landing-hero__cta{margin-bottom:32px}.landing-hero__btn{display:inline-flex;align-items:center;gap:8px;padding:14px 28px;border-radius:var(--radius-lg);font-size:16px;font-weight:600;cursor:pointer;transition:all .2s;border:none;font-family:var(--font-family)}.landing-hero__btn--primary{background:var(--primary);color:var(--primary-foreground)}.landing-hero__btn--primary:hover{background:var(--primary-hover);transform:translateY(-2px)}.landing-hero__trust{display:flex;flex-wrap:wrap;gap:20px}.landing-hero__trust-item{display:flex;align-items:center;gap:6px;font-size:13px;color:var(--muted-foreground)}.landing-hero__trust-item svg{width:16px;height:16px;color:var(--success)}.landing-hero__preview{display:flex;justify-content:center;align-items:center}.landing-hero__preview-image{width:100%;max-width:500px;border-radius:var(--radius-xl);box-shadow:var(--shadow-lg)}@media(max-width:768px){.landing-hero{padding:100px 20px 60px}.landing-hero__container{grid-template-columns:1fr;gap:40px}.landing-hero__title{font-size:36px}.landing-hero__subtitle{font-size:16px}.landing-hero__preview{order:-1}}.landing-games{padding:var(--section-padding);background:var(--background)}.landing-games__container{max-width:var(--max-content-width);margin:0 auto}.landing-games__header,.landing-features__header,.landing-how-it-works__header,.landing-pricing__header{text-align:center;margin-bottom:48px}.landing-games__label,.landing-features__label,.landing-how-it-works__label,.landing-pricing__label{display:inline-block;color:var(--primary);font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:1px;margin-bottom:12px}.landing-games__title,.landing-features__title,.landing-how-it-works__title,.landing-pricing__title{font-size:36px;font-weight:700;margin-bottom:16px;letter-spacing:-.02em}.landing-games__subtitle,.landing-features__subtitle,.landing-how-it-works__subtitle,.landing-pricing__subtitle{font-size:18px;color:var(--muted-foreground);max-width:600px;margin:0 auto;line-height:1.6}.landing-games__grid{display:grid;grid-template-columns:repeat(4,1fr);gap:24px;margin-bottom:48px}.landing-games__card{background:var(--card);border:1px solid var(--card-border);border-radius:var(--radius-xl);padding:24px;text-align:center;transition:all .3s}.landing-games__card:hover{transform:translateY(-4px);box-shadow:var(--shadow-lg)}.landing-games__card-preview{width:100%;height:120px;border-radius:var(--radius-lg) var(--radius-lg) 0 0;background-size:cover;background-position:center;margin:-24px -24px 16px;width:calc(100% + 48px)}.landing-games__card-icon{margin-bottom:16px}.landing-games__card-icon svg{width:48px;height:48px}.landing-games__card-title{font-size:18px;font-weight:600;margin-bottom:8px}.landing-games__card-desc{font-size:14px;color:var(--muted-foreground);line-height:1.5}.landing-games__demo{margin-top:48px}.demo-wrapper{position:relative;width:100%;max-width:800px;margin:0 auto;aspect-ratio:16 / 10;background:#0a0a20;border-radius:var(--radius-xl);overflow:hidden}.demo-game-container{width:100%;height:100%}.demo-game-container canvas{display:block}.demo-overlay{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;background:#0a0a2080;transition:opacity .3s ease}.demo-overlay--hidden{opacity:0;pointer-events:none}.demo-start-btn{padding:16px 40px;font-size:20px;font-weight:600;color:var(--primary-foreground);background:var(--primary);border:none;border-radius:var(--radius-lg);cursor:pointer;transition:all .2s;font-family:var(--font-family)}.demo-start-btn:hover{background:var(--primary-hover);transform:scale(1.05)}.demo-cta{text-align:center}.demo-cta__text{font-size:20px;color:#fff;margin-bottom:20px}.demo-cta__btn{padding:14px 32px;font-size:18px;font-weight:600;color:var(--primary-foreground);background:var(--primary);border:none;border-radius:var(--radius-lg);cursor:pointer;transition:all .2s;font-family:var(--font-family)}.demo-cta__btn:hover{background:var(--primary-hover);transform:scale(1.05)}@media(max-width:768px){.demo-wrapper{aspect-ratio:4 / 3}}@media(max-width:1024px){.landing-games__grid{grid-template-columns:repeat(2,1fr)}}@media(max-width:480px){.landing-games__grid{grid-template-columns:1fr}.landing-games__title,.landing-features__title,.landing-how-it-works__title,.landing-pricing__title{font-size:28px}}.landing-features{padding:var(--section-padding);background:var(--background-muted);scroll-margin-top:var(--nav-height)}.landing-features__container{max-width:var(--max-content-width);margin:0 auto}.landing-features__grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}.landing-features__card{background:var(--card);border:1px solid var(--card-border);border-radius:var(--radius-xl);padding:28px;transition:all .3s}.landing-features__card:hover{box-shadow:var(--shadow-lg)}.landing-features__card-icon{width:48px;height:48px;border-radius:var(--radius-lg);display:flex;align-items:center;justify-content:center;margin-bottom:16px}.landing-features__card-title{font-size:18px;font-weight:600;margin-bottom:8px}.landing-features__card-desc{font-size:14px;color:var(--muted-foreground);line-height:1.5}@media(max-width:768px){.landing-features__grid{grid-template-columns:1fr}}.landing-how-it-works{padding:var(--section-padding);background:var(--background);scroll-margin-top:var(--nav-height)}.landing-how-it-works__container{max-width:var(--max-content-width);margin:0 auto}.landing-how-it-works__steps{display:flex;justify-content:center;gap:60px;position:relative}.landing-how-it-works__step{display:flex;flex-direction:column;align-items:center;text-align:center;flex:1;max-width:280px;position:relative}.landing-how-it-works__step-number{width:56px;height:56px;background:var(--primary);color:var(--primary-foreground);border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:18px;font-weight:700;margin-bottom:20px}.landing-how-it-works__step-title{font-size:18px;font-weight:600;margin-bottom:8px}.landing-how-it-works__step-desc{font-size:14px;color:var(--muted-foreground);line-height:1.5}.landing-how-it-works__connector{display:none;position:absolute;top:28px;left:calc(100% + 10px);width:40px;height:2px;background:var(--card-border)}@media(min-width:769px){.landing-how-it-works__connector{display:block}}@media(max-width:768px){.landing-how-it-works__steps{flex-direction:column;gap:40px;align-items:center}}.landing-pricing{padding:var(--section-padding);background:var(--background-muted);scroll-margin-top:var(--nav-height)}.landing-pricing__container{max-width:var(--max-content-width);margin:0 auto}.landing-pricing__grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;align-items:start}.landing-pricing__card{background:var(--card);border:1px solid var(--card-border);border-radius:var(--radius-xl);padding:32px;position:relative}.landing-pricing__card--highlighted{border-color:var(--primary);box-shadow:var(--shadow-lg);transform:scale(1.02)}.landing-pricing__badge{position:absolute;top:-12px;left:50%;transform:translate(-50%);background:var(--primary);color:var(--primary-foreground);padding:6px 16px;border-radius:50px;font-size:12px;font-weight:600;white-space:nowrap}.landing-pricing__card-header{text-align:center;margin-bottom:24px;padding-bottom:24px;border-bottom:1px solid var(--card-border)}.landing-pricing__card-name{font-size:20px;font-weight:600;margin-bottom:12px}.landing-pricing__card-price{display:flex;flex-direction:column;align-items:center;gap:4px;margin-bottom:8px}.landing-pricing__card-amount{font-size:36px;font-weight:700}.landing-pricing__card-period,.landing-pricing__card-desc{font-size:14px;color:var(--muted-foreground)}.landing-pricing__features{list-style:none;margin-bottom:28px}.landing-pricing__feature{display:flex;align-items:center;gap:10px;padding:8px 0;font-size:14px;color:var(--foreground)}.landing-pricing__feature svg{color:var(--success);flex-shrink:0}.landing-pricing__btn{width:100%;padding:12px 24px;border-radius:var(--radius-md);font-size:14px;font-weight:600;cursor:pointer;transition:all .2s;border:none;font-family:var(--font-family)}.landing-pricing__btn--primary{background:var(--primary);color:var(--primary-foreground)}.landing-pricing__btn--primary:hover{background:var(--primary-hover)}.landing-pricing__btn--secondary{background:transparent;color:var(--foreground);border:1px solid var(--card-border)}.landing-pricing__btn--secondary:hover{background:var(--background-muted)}.landing-pricing__grid--two-col{grid-template-columns:repeat(2,1fr);max-width:800px;margin-left:auto;margin-right:auto}.landing-pricing__cross-link{text-align:center;margin-top:24px;font-size:14px;color:var(--muted-foreground)}.landing-pricing__cross-link a{color:var(--primary);text-decoration:none;font-weight:500}.landing-pricing__cross-link a:hover{text-decoration:underline}@media(max-width:768px){.landing-pricing__grid{grid-template-columns:1fr;max-width:400px;margin:0 auto}.landing-pricing__grid--two-col{grid-template-columns:1fr;max-width:400px}.landing-pricing__card--highlighted{transform:none}}.landing-cta{padding:var(--section-padding);background:var(--primary);color:var(--primary-foreground);text-align:center}.landing-cta__container{max-width:600px;margin:0 auto}.landing-cta__title{font-size:36px;font-weight:700;margin-bottom:16px}.landing-cta__subtitle{font-size:18px;opacity:.9;margin-bottom:32px;line-height:1.6}.landing-cta__actions{margin-bottom:16px}.landing-cta__btn{display:inline-flex;align-items:center;gap:8px;padding:14px 28px;border-radius:var(--radius-lg);font-size:16px;font-weight:600;cursor:pointer;transition:all .2s;border:none;font-family:var(--font-family)}.landing-cta__btn--primary{background:var(--background);color:var(--primary)}.landing-cta__btn--primary:hover{transform:translateY(-2px);box-shadow:var(--shadow-lg)}.landing-cta__note{font-size:13px;opacity:.8}@media(max-width:480px){.landing-cta__title{font-size:28px}}.landing-footer{padding:40px 20px;background:var(--background);border-top:1px solid var(--card-border)}.landing-footer__container{max-width:var(--max-content-width);margin:0 auto;display:flex;flex-direction:column;align-items:center;gap:24px}.landing-footer__brand{text-align:center}.landing-footer__logo{display:inline-flex;align-items:center;gap:8px;text-decoration:none;color:var(--foreground);margin-bottom:8px}.landing-footer__logo-img{width:28px;height:28px}.landing-footer__logo-text{font-size:18px;font-weight:700;color:var(--primary-hover)}.landing-footer__tagline{font-size:14px;color:var(--muted-foreground)}.landing-footer__links{display:flex;gap:24px}.landing-footer__link{text-decoration:none;color:var(--muted-foreground);font-size:14px;transition:color .2s}.landing-footer__link:hover{color:var(--foreground)}.landing-footer__copyright{font-size:13px;color:var(--muted-foreground)}.privacy-page{min-height:100vh;background:var(--background);color:var(--foreground);font-family:var(--font-family);padding:24px 20px}.privacy-container{max-width:800px;margin:0 auto}.privacy-title{font-size:36px;font-weight:700;color:var(--foreground);margin:0 0 8px;line-height:1.2}.privacy-updated{font-size:14px;color:var(--muted-foreground);margin:0 0 32px}.privacy-intro{font-size:16px;line-height:1.7;color:var(--foreground);margin:0 0 16px}.privacy-intro a{color:var(--primary);text-decoration:none}.privacy-intro a:hover{text-decoration:underline}.privacy-section{margin:40px 0}.privacy-section h2{font-size:22px;font-weight:600;color:var(--foreground);margin:0 0 16px;padding-bottom:8px;border-bottom:1px solid var(--card-border)}.privacy-section h3{font-size:17px;font-weight:600;color:var(--foreground);margin:24px 0 12px}.privacy-section p{font-size:15px;line-height:1.7;color:var(--foreground);margin:0 0 16px}.privacy-section p em{color:var(--muted-foreground)}.privacy-section p a{color:var(--primary);text-decoration:none}.privacy-section p a:hover{text-decoration:underline}.privacy-list{margin:0 0 16px;padding-left:24px}.privacy-list li{font-size:15px;line-height:1.7;color:var(--foreground);margin-bottom:8px}.privacy-list a{color:var(--primary);text-decoration:none}.privacy-list a:hover{text-decoration:underline}@media(max-width:640px){.privacy-page{padding:0 16px}.privacy-title{font-size:28px}.privacy-section h2{font-size:20px}.privacy-section h3{font-size:16px}.privacy-section p,.privacy-list li,.privacy-intro{font-size:14px}}@font-face{font-family:Fredoka;src:url(/assets/galaxy-guard/Fredoka-Variable.ttf) format("truetype");font-weight:100 900;font-display:swap}.teacher-contact-overlay{position:fixed;inset:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1100;padding:20px}.teacher-contact-modal{width:100%;max-width:480px;background:var(--card);border:1px solid var(--card-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);padding:24px;max-height:90vh;overflow-y:auto}.teacher-contact-modal h2{margin:0 0 4px;font-size:18px;color:var(--foreground)}.teacher-contact-modal .teacher-contact-subtitle{margin:0 0 20px;font-size:14px;color:var(--muted-foreground)}.teacher-contact-form{display:flex;flex-direction:column;gap:14px}.teacher-contact-field label{display:block;font-size:13px;font-weight:500;color:var(--muted-foreground);margin-bottom:6px}.teacher-contact-field input,.teacher-contact-field select,.teacher-contact-field textarea{width:100%;padding:10px 14px;font-size:14px;border:1px solid var(--card-border);border-radius:var(--radius-md);background:var(--card);color:var(--foreground);outline:none;box-sizing:border-box;transition:border-color .2s ease}.teacher-contact-field input:focus,.teacher-contact-field select:focus,.teacher-contact-field textarea:focus{border-color:var(--primary);box-shadow:0 0 0 3px #4f46e51a}.teacher-contact-field select{appearance:auto}.teacher-contact-field textarea{resize:vertical;min-height:100px;font-family:inherit}.teacher-contact-char-count{display:block;text-align:right;font-size:12px;color:var(--muted-foreground);margin-top:4px}.teacher-contact-turnstile{display:flex;justify-content:center;min-height:65px}.teacher-contact-error{font-size:13px;color:var(--error, #dc2626);margin:0}.teacher-contact-actions{display:flex;justify-content:flex-end;gap:12px;margin-top:4px}.teacher-contact-cancel{padding:10px 20px;font-size:14px;border:1px solid var(--card-border);border-radius:var(--radius-md);background:transparent;color:var(--foreground);cursor:pointer;transition:all .2s ease}.teacher-contact-cancel:hover{border-color:var(--muted-foreground);background:var(--background-muted)}.teacher-contact-submit{padding:10px 20px;font-size:14px;font-weight:600;border:none;border-radius:var(--radius-md);background:var(--primary);color:var(--primary-foreground);cursor:pointer;transition:all .2s ease}.teacher-contact-submit:hover:not(:disabled){background:var(--primary-hover)}.teacher-contact-submit:disabled{opacity:.5;cursor:not-allowed}.teacher-contact-success{text-align:center;padding:20px 0}.teacher-contact-success-icon{color:#059669;margin-bottom:16px}.teacher-contact-success-text{font-size:16px;color:var(--foreground);margin:0 0 20px}.teacher-contact-close-btn{padding:10px 24px;font-size:14px;font-weight:600;border:none;border-radius:var(--radius-md);background:var(--primary);color:var(--primary-foreground);cursor:pointer;transition:all .2s ease}.teacher-contact-close-btn:hover{background:var(--primary-hover)}.landing-hero__cta:has(.teacher-landing__alt-link){display:inline-flex;flex-direction:column;align-items:center}.teacher-landing__alt-link{margin-top:10px;font-size:12px;color:var(--muted-foreground)}.teacher-landing__alt-link a{color:var(--primary);text-decoration:none}.teacher-landing__alt-link a:hover{text-decoration:underline}.teacher-landing__alt-cta-link,.teacher-landing__alt-cta-link:hover{color:#fff}.teacher-name-modal-overlay{position:fixed;inset:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1100;padding:20px}.teacher-name-modal{width:100%;max-width:400px;background:var(--card);border:1px solid var(--card-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);padding:24px}.teacher-name-modal h2{margin:0 0 8px;font-size:18px;color:var(--foreground)}.teacher-name-modal p{margin:0 0 16px;font-size:14px;color:var(--muted-foreground)}.teacher-name-modal__input{width:100%;padding:12px 14px;font-size:16px;border:1px solid var(--card-border);border-radius:var(--radius-md);background:var(--card);color:var(--foreground);outline:none;box-sizing:border-box}.teacher-name-modal__input:focus{border-color:var(--primary);box-shadow:0 0 0 3px #4f46e51a}.teacher-name-modal__error{color:var(--error);font-size:14px;min-height:20px;margin:8px 0 0}.teacher-name-modal__error:empty{display:none}.teacher-name-modal__actions{display:flex;justify-content:flex-end;gap:12px;margin-top:16px}.teacher-name-modal__cancel{padding:10px 20px;font-size:14px;border:1px solid var(--card-border);border-radius:var(--radius-md);background:transparent;color:var(--foreground);cursor:pointer;transition:all .2s ease}.teacher-name-modal__cancel:hover{border-color:var(--muted-foreground);background:var(--background-muted)}.teacher-name-modal__submit{padding:10px 20px;font-size:14px;font-weight:600;border:none;border-radius:var(--radius-md);background:var(--primary);color:var(--primary-foreground);cursor:pointer;transition:all .2s ease}.teacher-name-modal__submit:hover:not(:disabled){background:var(--primary-hover)}.teacher-name-modal__submit:disabled{opacity:.5;cursor:not-allowed}.family-name-overlay{position:fixed;inset:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000;padding:20px}.family-name-modal{background:var(--card);border:1px solid var(--card-border);border-radius:var(--radius-lg);padding:32px;width:100%;max-width:400px;color:var(--foreground);font-family:var(--font-family);box-shadow:var(--shadow-lg)}.family-name-title{font-size:24px;font-weight:600;margin:0 0 24px;text-align:center;color:var(--foreground)}.family-name-input{width:100%;padding:14px 18px;font-size:16px;border:1px solid var(--card-border);border-radius:var(--radius-md);background:var(--card);color:var(--foreground);outline:none;transition:border-color .2s ease,box-shadow .2s ease;box-sizing:border-box}.family-name-input:focus{border-color:var(--primary);box-shadow:0 0 0 3px #4f46e51a}.family-name-input::placeholder{color:var(--muted-foreground)}.family-name-helper{font-size:14px;color:var(--muted-foreground);margin:12px 0 24px;text-align:center}.family-name-submit{width:100%;padding:14px 24px;font-size:16px;font-weight:600;border:none;border-radius:var(--radius-md);background:var(--primary);color:var(--primary-foreground);cursor:pointer;transition:background .2s ease}.family-name-submit:hover:not(:disabled){background:var(--primary-hover)}.family-name-submit:disabled{opacity:.7;cursor:not-allowed}.family-name-error{color:var(--error);font-size:14px;min-height:20px;text-align:center;margin-top:12px}.login-page{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:40px 20px;background:var(--background);color:var(--foreground);font-family:var(--font-family)}.login-logo{width:120px;height:120px;margin-bottom:24px}.login-title{font-size:36px;font-weight:700;margin-bottom:8px;color:var(--foreground)}.login-subtitle{font-size:16px;color:var(--muted-foreground);margin-bottom:8px;text-align:center}.login-note{font-size:14px;color:var(--muted-foreground);margin-bottom:32px;text-align:center}.login-form{display:flex;flex-direction:column;gap:16px;width:100%;max-width:320px}.login-input{padding:14px 18px;font-size:16px;border:1px solid var(--card-border);border-radius:var(--radius-md);background:var(--card);color:var(--foreground);outline:none;transition:border-color .2s ease,box-shadow .2s ease}.login-input:focus{border-color:var(--primary);box-shadow:0 0 0 3px #4f46e51a}.login-input::placeholder{color:var(--muted-foreground)}.login-button{padding:14px 24px;font-size:16px;font-weight:600;border:none;border-radius:var(--radius-md);background:var(--primary);color:var(--primary-foreground);cursor:pointer;transition:background .2s ease}.login-button:hover:not(:disabled){background:var(--primary-hover)}.login-button:disabled{opacity:.7;cursor:not-allowed}.error{color:var(--error);font-size:14px;min-height:20px;text-align:center}.link-button{background:none;border:none;color:var(--primary);font-size:14px;cursor:pointer;margin-top:16px;text-decoration:none}.link-button:hover{text-decoration:underline}.login-turnstile{display:flex;justify-content:center;min-height:65px;margin:4px 0}@media(max-width:480px){.login-logo{width:100px;height:100px}.login-title{font-size:28px}.login-subtitle{font-size:14px}}.upgrade-overlay{position:fixed;inset:0;background:#000000b3;display:flex;align-items:center;justify-content:center;z-index:1000;padding:20px;font-family:var(--font-family, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif)}.upgrade-modal{background:var(--card, #ffffff);border-radius:var(--radius-lg, 12px);padding:32px;text-align:center;max-width:420px;width:100%;box-shadow:var(--shadow-lg, 0 10px 40px rgba(0, 0, 0, .2));position:relative}.upgrade-modal--loading{pointer-events:none;opacity:.7}.upgrade-badge{display:inline-flex;align-items:center;gap:6px;background:linear-gradient(135deg,#f59e0b,#d97706);color:#fff;padding:6px 14px;border-radius:20px;font-size:14px;font-weight:600;margin-bottom:16px}.upgrade-badge svg{width:16px;height:16px;fill:currentColor;stroke:none}.upgrade-title{font-size:24px;font-weight:700;color:var(--foreground, #1a1a2e);margin:0 0 8px}.upgrade-message{font-size:15px;color:var(--muted-foreground, #64748b);margin:0 0 24px;line-height:1.5}.upgrade-pricing{display:flex;gap:12px;margin-bottom:20px}.upgrade-plan{flex:1;padding:16px;border:2px solid var(--border, #e2e8f0);border-radius:var(--radius-md, 8px);background:var(--background, #ffffff);cursor:pointer;transition:all .2s ease;text-align:left;position:relative}.upgrade-plan:hover{border-color:var(--primary, #4f46e5);transform:translateY(-2px)}.upgrade-plan--highlighted{border-color:var(--primary, #4f46e5);background:linear-gradient(135deg,#4f46e50d,#4f46e51a)}.upgrade-plan-badge{position:absolute;top:-10px;right:12px;background:var(--primary, #4f46e5);color:#fff;font-size:11px;font-weight:600;padding:3px 8px;border-radius:10px}.upgrade-plan-header{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:4px}.upgrade-plan-name{font-size:14px;font-weight:600;color:var(--foreground, #1a1a2e)}.upgrade-plan-price{font-size:18px;font-weight:700;color:var(--foreground, #1a1a2e)}.upgrade-plan-period{font-size:13px;font-weight:400;color:var(--muted-foreground, #64748b)}.upgrade-plan-desc{font-size:12px;color:var(--muted-foreground, #64748b)}.upgrade-features{list-style:none;padding:0;margin:0 0 20px;text-align:left}.upgrade-features li{font-size:14px;color:var(--foreground, #1a1a2e);padding:6px 0 6px 24px;position:relative}.upgrade-features li:before{content:"";position:absolute;left:0;top:50%;transform:translateY(-50%);width:16px;height:16px;background:var(--primary, #4f46e5);border-radius:50%;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='3'%3E%3Cpolyline points='20 6 9 17 4 12'%3E%3C/polyline%3E%3C/svg%3E");background-size:10px;background-position:center;background-repeat:no-repeat}.upgrade-close{padding:10px 24px;font-size:14px;font-weight:500;border:none;border-radius:var(--radius-md, 8px);background:transparent;color:var(--muted-foreground, #64748b);cursor:pointer;transition:color .2s ease}.upgrade-close:hover{color:var(--foreground, #1a1a2e)}@media(max-width:480px){.upgrade-modal{padding:24px 20px}.upgrade-pricing{flex-direction:column}.upgrade-title{font-size:20px}}.home-wrapper{min-height:100vh;display:flex;flex-direction:column;align-items:center;padding:40px 20px;background:var(--background);color:var(--foreground);font-family:var(--font-family)}.games-section{width:100%;max-width:800px;text-align:center}.games-label{font-size:18px;color:var(--muted-foreground);margin-bottom:24px}.games-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:24px;padding:0 20px}.game-card{background:var(--card);border:1px solid var(--card-border);border-radius:var(--radius-xl);padding:0;cursor:pointer;transition:all .3s ease;text-align:center;overflow:hidden}.game-card:hover{transform:translateY(-4px);border-color:var(--primary);box-shadow:var(--shadow-lg)}.game-preview{height:140px;background-color:var(--background-muted);background-size:cover;background-position:center;border-bottom:1px solid var(--card-border)}.game-title{font-size:22px;font-weight:600;margin:16px 20px 8px;color:var(--foreground)}.game-description{font-size:14px;color:var(--muted-foreground);margin:0 20px 20px;line-height:1.4}.game-card--locked{cursor:pointer}.game-card--locked .game-preview{filter:grayscale(70%);position:relative}.game-preview-lock{position:absolute;inset:0;background:#00000080;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;color:#fff}.lock-icon{width:32px;height:32px}.lock-label{font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.5px;background:linear-gradient(135deg,#f59e0b,#d97706);padding:4px 10px;border-radius:12px}.game-card--locked .game-title,.game-card--locked .game-description{opacity:.7}@media(max-width:480px){.game-preview{height:100px}.game-title{font-size:18px}.lock-icon{width:24px;height:24px}.lock-label{font-size:10px}}.student-select-page{position:relative;min-height:100vh;display:flex;flex-direction:column;align-items:center;padding:24px 20px;background:var(--background);color:var(--foreground);font-family:var(--font-family)}.student-select-gear{position:absolute;top:16px;right:16px}.student-title{font-size:32px;font-weight:700;margin-bottom:8px;color:var(--foreground);text-align:center}.student-welcome{font-size:16px;color:var(--muted-foreground);text-align:center;margin-bottom:32px}.students-list{width:100%;max-width:400px;display:flex;flex-direction:column;gap:12px;margin-bottom:24px}.loading,.empty-message{text-align:center;color:var(--muted-foreground);padding:20px}.student-card{display:flex;justify-content:space-between;align-items:center;padding:18px 24px;background:var(--card);border:1px solid var(--card-border);border-radius:var(--radius-lg);cursor:pointer;transition:all .2s ease}.student-card:hover{transform:translateY(-2px);border-color:var(--primary);box-shadow:var(--shadow-lg)}.student-name{font-size:18px;font-weight:600;color:var(--foreground)}.add-student-button{padding:14px 28px;font-size:16px;font-weight:600;border:2px dashed var(--card-border);border-radius:var(--radius-lg);background:transparent;color:var(--primary);cursor:pointer;transition:all .2s ease;margin-bottom:16px}.add-student-button:hover{border-color:var(--primary);background:#4f46e50d}.account-footer{display:flex;flex-direction:column;align-items:center;gap:8px;margin-top:16px}.account-email{font-size:13px;color:var(--muted-foreground)}.logout-button{background:none;border:none;color:var(--muted-foreground);font-size:14px;cursor:pointer}.logout-button:hover{color:var(--foreground)}.manage-subscription-button{padding:8px 16px;font-size:13px;font-weight:500;border:1px solid var(--primary);border-radius:var(--radius-md);background:transparent;color:var(--primary);cursor:pointer;transition:all .2s ease}.manage-subscription-button:hover{background:var(--primary);color:var(--primary-foreground)}.student-cap-message{text-align:center;font-size:14px;color:var(--muted-foreground);margin-bottom:16px;line-height:1.5}.add-student-button--limited{opacity:.6;border-color:var(--muted-foreground);color:var(--muted-foreground)}.add-student-button--limited:hover{border-color:var(--primary);background:#4f46e50d;opacity:1}.add-student-form{width:100%;max-width:400px;background:var(--card);border:1px solid var(--card-border);border-radius:var(--radius-lg);padding:24px;margin-bottom:24px;box-shadow:var(--shadow-md)}.form-title{font-size:20px;font-weight:600;margin-bottom:16px;text-align:center;color:var(--foreground)}.form-input{width:100%;padding:14px 18px;font-size:16px;border:1px solid var(--card-border);border-radius:var(--radius-md);background:var(--card);color:var(--foreground);outline:none;transition:border-color .2s ease,box-shadow .2s ease;margin-bottom:16px;box-sizing:border-box}.form-input:focus{border-color:var(--primary);box-shadow:0 0 0 3px #4f46e51a}.form-input::placeholder{color:var(--muted-foreground)}.grade-select,.pack-selector-label{margin-bottom:16px}.pack-selector-wrapper{margin-top:8px}.grade-label{display:block;font-size:14px;color:var(--muted-foreground);margin-bottom:8px}.grade-options{display:flex;gap:8px;flex-wrap:wrap}.grade-option{padding:10px 16px;font-size:14px;border:1px solid var(--card-border);border-radius:var(--radius-md);background:var(--card);color:var(--foreground);cursor:pointer;transition:all .2s ease}.grade-option:hover{border-color:var(--primary)}.grade-option.selected{background:var(--primary);border-color:var(--primary);color:var(--primary-foreground)}.daily-limit-section{margin-top:16px}.form-buttons{display:flex;gap:12px;margin-top:16px}.cancel-button{flex:1;padding:12px;font-size:16px;border:1px solid var(--card-border);border-radius:var(--radius-md);background:transparent;color:var(--foreground);cursor:pointer;transition:all .2s ease}.cancel-button:hover{border-color:var(--muted-foreground);background:var(--background-muted)}.submit-button{flex:1;padding:12px;font-size:16px;font-weight:600;border:none;border-radius:var(--radius-md);background:var(--primary);color:var(--primary-foreground);cursor:pointer;transition:all .2s ease}.submit-button:hover:not(:disabled){background:var(--primary-hover)}.submit-button:disabled{opacity:.5;cursor:not-allowed}.error{color:var(--error);font-size:14px;min-height:20px;text-align:center;margin-top:12px}.pack-selector{width:100%;max-height:300px;overflow-y:auto;border:1px solid var(--card-border);border-radius:var(--radius-md);background:var(--background-muted)}.pack-section{border-bottom:1px solid var(--card-border)}.pack-section:last-child{border-bottom:none}.pack-section-header{width:100%;display:flex;align-items:center;gap:8px;padding:12px 16px;background:transparent;border:none;color:var(--foreground);font-size:14px;font-weight:600;cursor:pointer;text-align:left;transition:background .2s ease}.pack-section-header:hover{background:#4f46e50d}.pack-section-arrow{font-size:10px;color:var(--primary)}.pack-section-label{flex:1}.pack-section-count{font-size:12px;color:var(--muted-foreground);font-weight:400}.pack-section-save{margin-left:auto;font-size:12px;font-weight:400;animation:pack-save-fade-in .2s ease}.pack-section-save--saving{color:var(--muted-foreground)}.pack-section-save--saved{color:var(--success, #16a34a);display:inline-flex;align-items:center;gap:2px}.pack-section-save--error{color:var(--error, #dc2626)}@keyframes pack-save-fade-in{0%{opacity:0}to{opacity:1}}.pack-section-content{display:none;padding:0 16px 12px}.pack-section-content.expanded{display:block}.pack-section-select-all{padding:8px 16px 8px 24px;color:var(--primary);font-size:13px;cursor:pointer}.pack-section-select-all:hover{text-decoration:underline}.pack-item{display:flex;align-items:center;gap:10px;padding:8px 8px 8px 24px;cursor:pointer;border-radius:4px;transition:background .15s ease}.pack-item:hover{background:#4f46e50d}.pack-checkbox{width:18px;height:18px;accent-color:var(--primary);cursor:pointer}.pack-name{font-size:14px;color:var(--foreground)}.pack-checkbox--encompassed{opacity:.6;cursor:not-allowed}.pack-checkbox--encompassed:checked{accent-color:var(--muted-foreground)}.pack-item--encompassed{opacity:.7}.pack-item--encompassed .pack-name{color:var(--muted-foreground)}.pack-item--encompassed:hover{background:transparent;cursor:default}.pack-description{font-size:12px;color:var(--muted-foreground)}.pack-mastery-indicator{margin-left:auto;flex-shrink:0}.mastery-badge{font-size:11px;font-weight:600}.mastery-inferred{color:var(--success)}.create-pack-button{display:block;width:calc(100% - 24px);margin:8px 12px 8px 24px;padding:10px;border:2px dashed var(--card-border);border-radius:6px;background:transparent;color:var(--primary);font-size:14px;cursor:pointer;transition:all .2s ease}.create-pack-button:hover{border-color:var(--primary);background:#4f46e50d}.grade-pills{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:16px}.grade-pills-label{font-size:14px;color:var(--muted-foreground);margin-right:4px}.grade-pill{padding:6px 14px;font-size:13px;font-weight:600;border:1px solid var(--card-border);border-radius:999px;background:var(--card);color:var(--foreground);cursor:pointer;transition:all .2s ease}.grade-pill:hover{border-color:var(--primary);color:var(--primary)}.grade-pill--active{background:var(--primary);border-color:var(--primary);color:var(--primary-foreground)}.grade-pill--active:hover{background:var(--primary-hover);color:var(--primary-foreground)}.pack-item--locked{opacity:.85}.pack-item--locked .pack-name{color:var(--foreground)}.pack-item--locked:hover{background:transparent;cursor:default}.pack-checkbox--locked{opacity:.6;cursor:not-allowed}.pack-checkbox--locked:checked{accent-color:var(--muted-foreground)}.pack-source-badge{font-size:11px;color:var(--muted-foreground);margin-left:4px;white-space:nowrap}.pack-lock-icon{font-size:10px}.pack-editor-overlay{position:fixed;inset:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000;padding:20px;font-family:var(--font-family)}.pack-editor-modal{width:100%;max-width:500px;max-height:90vh;overflow-y:auto;background:var(--card);border:1px solid var(--card-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg)}.pack-editor-header{display:flex;justify-content:space-between;align-items:center;padding:16px 20px;border-bottom:1px solid var(--card-border)}.pack-editor-header h2{margin:0;font-size:18px;color:var(--foreground)}.pack-editor-close{background:none;border:none;color:var(--muted-foreground);font-size:24px;cursor:pointer;padding:0;line-height:1}.pack-editor-close:hover{color:var(--foreground)}.pack-editor-form{padding:20px}.pack-editor-field{margin-bottom:16px}.pack-editor-field>label{display:block;font-size:14px;color:var(--muted-foreground);margin-bottom:8px}.pack-editor-input{width:100%;padding:10px 14px;font-size:14px;border:1px solid var(--card-border);border-radius:6px;background:var(--card);color:var(--foreground);outline:none;box-sizing:border-box}.pack-editor-input:focus{border-color:var(--primary);box-shadow:0 0 0 3px #4f46e51a}.pack-editor-select{width:100%;padding:10px 14px;font-size:14px;border:1px solid var(--card-border);border-radius:6px;background:var(--card);color:var(--foreground);cursor:pointer;outline:none}.pack-editor-select:focus{border-color:var(--primary)}.pack-editor-hint{margin:8px 0 0;font-size:12px;color:var(--muted-foreground);font-style:italic}.pack-editor-number-row{display:flex;gap:16px}.pack-editor-number-field{flex:1}.pack-editor-number-field label{display:block;font-size:12px;color:var(--muted-foreground);margin-bottom:4px}.pack-editor-number-input{width:100%;padding:10px 14px;font-size:14px;border:1px solid var(--card-border);border-radius:6px;background:var(--card);color:var(--foreground);outline:none;box-sizing:border-box}.pack-editor-number-input:focus{border-color:var(--primary)}.pack-editor-number-input::-webkit-inner-spin-button,.pack-editor-number-input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.pack-editor-number-input[type=number]{-moz-appearance:textfield}.pack-editor-advanced{margin-bottom:16px}.pack-editor-advanced-toggle{background:none;border:none;color:var(--primary);font-size:14px;cursor:pointer;padding:0}.pack-editor-advanced-toggle:hover{text-decoration:underline}.pack-editor-advanced-content{display:none;margin-top:12px;padding:12px;background:var(--background-muted);border-radius:6px}.pack-editor-advanced-content.expanded{display:block}.pack-editor-field-row{display:flex;gap:16px;margin-bottom:12px}.pack-editor-field-small{flex:1}.pack-editor-field-small label{display:block;font-size:12px;color:var(--muted-foreground);margin-bottom:4px}.pack-editor-input-small{width:100%;padding:8px 10px;font-size:14px;border:1px solid var(--card-border);border-radius:4px;background:var(--card);color:var(--foreground);outline:none;box-sizing:border-box}.pack-editor-input-small:focus{border-color:var(--primary)}.pack-editor-checkbox-label{display:flex;align-items:center;gap:8px;font-size:14px;color:var(--muted-foreground);cursor:pointer}.pack-editor-checkbox-label input{width:16px;height:16px;accent-color:var(--primary)}.pack-editor-preview{margin-bottom:16px}.pack-editor-preview>label{display:block;font-size:14px;color:var(--muted-foreground);margin-bottom:8px}.pack-editor-preview-problems{display:flex;flex-wrap:wrap;gap:8px;padding:12px;background:var(--background-muted);border-radius:6px;min-height:40px}.preview-problem-card{padding:8px 12px;background:var(--card);border:1px solid var(--card-border);border-radius:6px;font-size:14px;color:var(--primary);white-space:nowrap}.preview-empty{font-size:14px;color:var(--error);font-style:italic}.pack-editor-error{color:var(--error);font-size:14px;margin-bottom:12px}.pack-editor-buttons{display:flex;gap:12px}.pack-editor-cancel{flex:1;padding:12px;font-size:14px;border:1px solid var(--card-border);border-radius:6px;background:transparent;color:var(--foreground);cursor:pointer;transition:all .2s ease}.pack-editor-cancel:hover{border-color:var(--muted-foreground);background:var(--background-muted)}.pack-editor-save{flex:1;padding:12px;font-size:14px;font-weight:600;border:none;border-radius:6px;background:var(--primary);color:var(--primary-foreground);cursor:pointer;transition:all .2s ease}.pack-editor-save:hover:not(:disabled){background:var(--primary-hover)}.pack-editor-save:disabled{opacity:.5;cursor:not-allowed}.student-packs-editor-overlay{position:fixed;inset:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000}.student-packs-editor{width:100%;max-width:500px;max-height:90vh;overflow-y:auto;background:var(--card);border:1px solid var(--card-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg)}.student-packs-editor-header{display:flex;justify-content:space-between;align-items:center;padding:16px 20px;border-bottom:1px solid var(--card-border)}.student-packs-editor-header h2{margin:0;font-size:18px;color:var(--foreground)}.student-packs-report-link{font-size:13px;color:var(--primary);text-decoration:none;font-weight:500}.student-packs-report-link:hover{text-decoration:underline}.student-packs-editor-body{padding:20px}.student-packs-label{display:block;font-size:14px;color:var(--muted-foreground);margin-bottom:8px}.selected-count{color:var(--primary)}.student-packs-selector-section{margin-top:16px}.pack-selector-container{margin-top:8px}.student-packs-editor-footer{display:flex;flex-direction:column;gap:12px;padding:0 20px 16px}.student-packs-error{margin:0;font-size:14px;color:var(--error);text-align:center}.student-packs-error:empty{display:none}.student-packs-buttons{display:flex;gap:12px}.student-packs-cancel{flex:1;padding:12px;font-size:14px;border:1px solid var(--card-border);border-radius:6px;background:transparent;color:var(--foreground);cursor:pointer;transition:all .2s ease}.student-packs-cancel:hover{border-color:var(--muted-foreground);background:var(--background-muted)}.student-packs-save{flex:1;padding:12px;font-size:14px;font-weight:600;border:none;border-radius:6px;background:var(--primary);color:var(--primary-foreground);cursor:pointer;transition:all .2s ease}.student-packs-save:hover:not(:disabled){background:var(--primary-hover)}.student-packs-save:disabled{opacity:.5;cursor:not-allowed}.student-packs-name-section{margin-bottom:16px}.name-input{width:100%;padding:10px 14px;font-size:16px;border:1px solid var(--card-border);border-radius:6px;background:var(--card);color:var(--foreground);outline:none;transition:border-color .2s ease;box-sizing:border-box}.name-input:focus{border-color:var(--primary);box-shadow:0 0 0 3px #4f46e51a}.name-error{margin:4px 0 0;font-size:13px;color:var(--error);min-height:0}.name-error:empty{display:none}.student-delete-button{width:32px;height:32px;display:flex;align-items:center;justify-content:center;background:none;border:none;border-radius:6px;color:var(--muted-foreground);cursor:pointer;transition:all .2s ease}.student-delete-button:hover{color:var(--error, #dc2626);background:#dc26261a}.student-delete-confirm-overlay{position:absolute;inset:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1001;border-radius:var(--radius-lg)}.student-delete-confirm-modal{width:90%;max-width:340px;background:var(--card);border:1px solid var(--card-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);padding:24px}.student-delete-confirm-title{margin:0 0 12px;font-size:18px;color:var(--foreground)}.student-delete-confirm-message{margin:0 0 20px;font-size:14px;color:var(--muted-foreground);line-height:1.5}.student-delete-confirm-buttons{display:flex;gap:12px}.student-delete-confirm-cancel{flex:1;padding:10px;font-size:14px;border:1px solid var(--card-border);border-radius:var(--radius-md);background:transparent;color:var(--foreground);cursor:pointer;transition:all .2s ease}.student-delete-confirm-cancel:hover{border-color:var(--muted-foreground);background:var(--background-muted)}.student-delete-confirm-delete{flex:1;padding:10px;font-size:14px;font-weight:600;border:none;border-radius:var(--radius-md);background:var(--error, #dc2626);color:#fff;cursor:pointer;transition:all .2s ease}.student-delete-confirm-delete:hover{opacity:.9}.student-packs-speed-section{margin-top:20px}.speed-slider-container{display:flex;align-items:center;gap:12px;margin:8px 0}.speed-label-slow,.speed-label-fast{font-size:12px;color:var(--muted-foreground);white-space:nowrap}.speed-slider{flex:1;height:6px;-webkit-appearance:none;appearance:none;background:var(--card-border);border-radius:3px;outline:none}.speed-slider::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;width:20px;height:20px;border-radius:50%;background:var(--primary);cursor:pointer;border:2px solid var(--card);box-shadow:var(--shadow-sm);transition:transform .15s ease}.speed-slider::-webkit-slider-thumb:hover{transform:scale(1.1)}.speed-slider::-moz-range-thumb{width:20px;height:20px;border-radius:50%;background:var(--primary);cursor:pointer;border:2px solid var(--card);box-shadow:var(--shadow-sm)}.speed-value{font-weight:600;color:var(--primary)}.speed-description{margin:8px 0 0;font-size:12px;color:var(--muted-foreground);font-style:italic}.student-packs-limit-section{margin-top:20px}.limit-row{display:flex;align-items:center;gap:12px}.limit-row .student-packs-label{margin-bottom:0}.limit-input{width:120px;padding:8px 12px;font-size:16px;border:1px solid var(--card-border);border-radius:6px;background:var(--card);color:var(--foreground);outline:none;transition:border-color .15s ease}.limit-input:focus{border-color:var(--primary)}.limit-input::placeholder{color:var(--muted-foreground);font-style:italic}.limit-input::-webkit-outer-spin-button,.limit-input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.limit-input[type=number]{-moz-appearance:textfield}.limit-input:disabled{cursor:not-allowed;background:var(--card-border);color:var(--muted-foreground)}.limit-description{margin:8px 0 0;font-size:12px;color:var(--muted-foreground);font-style:italic}.limit-upgrade-link{color:var(--primary);text-decoration:underline;cursor:pointer;font-style:normal;font-weight:600}.student-packs-bonus-section{margin-top:16px;padding-top:16px;border-top:1px solid var(--card-border)}.student-packs-bonus-btn{padding:8px 16px;border:1px solid var(--primary);border-radius:var(--radius-md);background:transparent;color:var(--primary);font-size:13px;font-weight:600;cursor:pointer;transition:all .2s ease}.student-packs-bonus-btn:hover{background:#4f46e514}.student-packs-bonus-info{margin:8px 0 0;font-size:12px;color:var(--primary);font-style:italic}.classrooms-section{width:100%;max-width:400px;margin:24px 0}.classrooms-section__header{display:flex;flex-direction:column;align-items:center;gap:12px;margin-bottom:16px}.classrooms-section__header h2{margin:0;font-size:20px;color:var(--foreground);text-align:center}.classrooms-section__create{padding:8px 16px;font-size:14px;font-weight:600;border:2px dashed var(--card-border);border-radius:var(--radius-md);background:transparent;color:var(--primary);cursor:pointer;transition:all .2s ease}.classrooms-section__create:hover{border-color:var(--primary);background:#4f46e50d}.classrooms-section__grid{display:flex;flex-direction:column;align-items:center;gap:12px}.classrooms-section__grid .empty-message{text-align:center;margin:0}.classroom-card{width:100%;padding:18px 24px;background:var(--card);border:1px solid var(--card-border);border-radius:var(--radius-lg);cursor:pointer;transition:all .2s ease;box-sizing:border-box}.classroom-card:hover{transform:translateY(-2px);border-color:var(--primary);box-shadow:var(--shadow-lg)}.classroom-card__name{font-size:18px;font-weight:600;margin:0 0 8px;color:var(--foreground)}.classroom-card__meta{font-size:14px;color:var(--muted-foreground);margin:0 0 12px}.classroom-card__join-code{font-family:monospace;font-size:13px;color:var(--muted-foreground);margin:0}.classroom-modal-overlay{position:fixed;inset:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1100;padding:20px}.classroom-modal{width:100%;max-width:400px;background:var(--card);border:1px solid var(--card-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);padding:24px}.classroom-modal h2{margin:0 0 16px;font-size:18px;color:var(--foreground)}.classroom-modal h3{margin:0 0 12px;font-size:18px;color:var(--foreground)}.classroom-modal__field{margin-bottom:16px}.classroom-modal__field label{display:block;font-size:14px;color:var(--muted-foreground);margin-bottom:8px;font-weight:500}.classroom-modal__field input{width:100%;padding:10px 14px;font-size:14px;border:1px solid var(--card-border);border-radius:var(--radius-md);background:var(--card);color:var(--foreground);outline:none;box-sizing:border-box}.classroom-modal__field input:focus{border-color:var(--primary);box-shadow:0 0 0 3px #4f46e51a}.classroom-modal__actions{display:flex;justify-content:flex-end;gap:12px;margin-top:20px}.classroom-modal__cancel{padding:10px 20px;font-size:14px;border:1px solid var(--card-border);border-radius:var(--radius-md);background:transparent;color:var(--foreground);cursor:pointer;transition:all .2s ease}.classroom-modal__cancel:hover{border-color:var(--muted-foreground);background:var(--background-muted)}.classroom-modal__create,.enrollment-next,.enrollment-join{padding:10px 20px;font-size:14px;font-weight:600;border:none;border-radius:var(--radius-md);background:var(--primary);color:var(--primary-foreground);cursor:pointer;transition:all .2s ease}.classroom-modal__create:hover:not(:disabled),.enrollment-next:hover:not(:disabled),.enrollment-join:hover:not(:disabled){background:var(--primary-hover)}.classroom-modal__create:disabled,.enrollment-next:disabled{opacity:.5;cursor:not-allowed}.classroom-page__archive-confirm{padding:10px 20px;font-size:14px;font-weight:600;border:none;border-radius:var(--radius-md);background:var(--error, #dc2626);color:#fff;cursor:pointer;transition:all .2s ease}.classroom-page__archive-confirm:hover{opacity:.9}.enrollment-code-input{width:100%;padding:16px;font-size:24px;font-family:monospace;text-align:center;letter-spacing:.3em;text-transform:uppercase;border:2px solid var(--card-border);border-radius:var(--radius-md);background:var(--card);color:var(--foreground);outline:none;box-sizing:border-box}.enrollment-code-input:focus{border-color:var(--primary)}.enrollment-error{color:var(--error);text-align:center;margin-top:12px;font-size:14px;min-height:20px}.enrollment-error:empty{display:none}.enrollment-classroom-name{text-align:center;font-size:20px;font-weight:600;color:var(--foreground);margin:16px 0}.join-code-display{display:inline-flex;align-items:center;gap:8px}.join-code-display__code{font-family:monospace;font-size:24px;font-weight:700;letter-spacing:.2em;padding:8px 16px;background:var(--background-muted);border:2px dashed var(--card-border);border-radius:var(--radius-md);color:var(--foreground)}.join-code-display__copy{display:inline-flex;align-items:center;justify-content:center;padding:4px;background:transparent;border:none;color:var(--foreground-muted);cursor:pointer;transition:color .2s ease}.join-code-display__copy:hover{color:var(--primary)}.student-packs-enrollment-section{margin-bottom:16px}.student-packs-enrolled-badge{display:flex;justify-content:space-between;align-items:center;padding:12px 16px;background:#4f46e514;border:1px solid rgba(79,70,229,.2);border-radius:var(--radius-md);font-size:14px;color:var(--foreground)}.student-packs-unenroll{background:none;border:none;color:var(--error, #dc2626);font-size:13px;cursor:pointer;padding:4px 8px}.student-packs-unenroll:hover{text-decoration:underline}.student-packs-join-classroom{width:100%;padding:12px;font-size:14px;font-weight:500;border:2px dashed var(--card-border);border-radius:var(--radius-md);background:transparent;color:var(--primary);cursor:pointer;transition:all .2s ease}.student-packs-join-classroom:hover{border-color:var(--primary);background:#4f46e50d}@media(max-width:480px){.student-title{font-size:28px}.student-card{padding:14px 18px}.student-name{font-size:16px}.grade-options{flex-direction:column}.pack-editor-number-row{gap:12px}.pack-editor-field-row{flex-direction:column;gap:12px}}.proficiency-matrix-wrapper{overflow-x:auto;-webkit-overflow-scrolling:touch;padding:4px 0}.proficiency-matrix-grid{display:grid;gap:2px;width:fit-content}.matrix-cell{width:28px;height:28px;border-radius:3px;display:flex;align-items:center;justify-content:center;font-size:10px;cursor:pointer;transition:transform .1s ease}.matrix-cell:hover{transform:scale(1.15);z-index:1}.matrix-cell-invalid{background:#e5e7eb;cursor:default;opacity:.4}.matrix-cell-invalid:hover{transform:none}.matrix-cell-unattempted{background:#f3f4f6}.matrix-header{width:28px;height:28px;display:flex;align-items:center;justify-content:center;font-size:11px;color:var(--muted-foreground);font-weight:500}.matrix-corner{width:28px;height:28px}.fact-detail-tooltip{position:fixed;z-index:1000;width:320px;max-height:400px;overflow-y:auto;overscroll-behavior:contain;padding:24px 16px 16px;background:var(--card, #ffffff);border:1px solid var(--card-border, #e2e8f0);border-radius:var(--radius-md, 8px);box-shadow:var(--shadow-lg, 0 10px 40px rgba(0, 0, 0, .2));font-family:var(--font-family, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif)}.fact-modal-overlay{position:fixed;inset:0;background:#000000b3;display:flex;align-items:center;justify-content:center;z-index:1000;padding:20px;font-family:var(--font-family, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif)}.fact-modal{background:var(--card, #ffffff);border-radius:var(--radius-lg, 12px);padding:24px;max-width:400px;width:100%;box-shadow:var(--shadow-lg, 0 10px 40px rgba(0, 0, 0, .2));position:relative;max-height:80vh;overflow-y:auto}.fact-modal-close{position:absolute;top:12px;right:12px;width:28px;height:28px;border:none;background:var(--background-muted, #f1f5f9);border-radius:50%;cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:16px;color:var(--muted-foreground, #64748b);transition:background .2s}.fact-modal-close:hover{background:var(--border, #e2e8f0)}.fact-modal-header{text-align:center;margin-bottom:16px}.fact-modal-equation{font-size:24px;font-weight:700;color:var(--foreground, #1a1a2e)}.fact-modal-mastery-badge{display:inline-block;margin-top:8px;padding:3px 10px;border-radius:10px;font-size:13px;font-weight:600}.fact-modal-stats{display:flex;gap:16px;justify-content:center;margin-bottom:20px;padding-bottom:16px;border-bottom:1px solid var(--card-border, #e2e8f0)}.fact-modal-stat{text-align:center}.fact-modal-stat-value{font-size:20px;font-weight:700;color:var(--foreground, #1a1a2e);display:block}.fact-modal-stat-label{font-size:12px;color:var(--muted-foreground, #64748b)}.fact-modal-history-title{font-size:13px;font-weight:600;text-transform:uppercase;letter-spacing:.5px;color:var(--muted-foreground, #64748b);margin-bottom:10px}.fact-modal-history-table{width:100%;border-collapse:collapse}.fact-modal-history-table th{text-align:left;font-size:11px;font-weight:600;color:var(--muted-foreground, #64748b);text-transform:uppercase;letter-spacing:.5px;padding:6px 8px;border-bottom:1px solid var(--card-border, #e2e8f0)}.fact-modal-history-table td{padding:6px 8px;font-size:13px;color:var(--foreground, #1a1a2e);border-bottom:1px solid var(--card-border, #e2e8f0)}.fact-modal-history-table tbody tr:last-child td{border-bottom:none}.fact-modal-loading{text-align:center;padding:20px;color:var(--muted-foreground, #64748b);font-size:14px}.fact-modal-error{text-align:center;padding:16px;color:var(--muted-foreground, #64748b);font-size:14px}.fact-modal-no-history{text-align:center;padding:16px;color:var(--muted-foreground, #64748b);font-size:14px;font-style:italic}.fact-history-correct{color:var(--success, #16a34a);font-weight:600}.fact-history-incorrect{color:var(--error, #dc2626);font-weight:600}.fact-history-speed-fast{color:var(--success, #16a34a)}.fact-history-speed-slow{color:var(--warning, #ca8a04)}.fact-history-speed-very_slow{color:var(--error, #dc2626)}@media(max-width:480px){.fact-modal-overlay{align-items:flex-end;padding:0}.fact-modal{border-radius:var(--radius-lg, 12px) var(--radius-lg, 12px) 0 0;max-height:70vh}.matrix-cell{width:24px;height:24px}.matrix-header{width:24px;height:24px;font-size:10px}.matrix-corner{width:24px;height:24px}}.fact-modal-wrong-answers{margin-bottom:16px;padding-bottom:12px;border-bottom:1px solid var(--card-border, #e2e8f0)}.fact-modal-wrong-answers-title{font-size:13px;font-weight:600;text-transform:uppercase;letter-spacing:.5px;color:var(--muted-foreground, #64748b);margin-bottom:8px}.fact-modal-wrong-answers-chips{display:flex;flex-wrap:wrap;gap:6px}.fact-modal-wrong-answer-chip{display:inline-block;padding:3px 10px;border-radius:10px;font-size:13px;font-weight:600;background:#fee2e2;color:#991b1b}@media(prefers-color-scheme:dark){.fact-modal-wrong-answer-chip{background:#450a0a;color:#fca5a5}}.classroom-fact-summary{display:flex;gap:12px;justify-content:center;margin-bottom:16px;padding-bottom:12px;border-bottom:1px solid var(--card-border, #e2e8f0);font-size:13px;color:var(--muted-foreground, #64748b)}.classroom-fact-avg{font-weight:600;color:var(--foreground, #1a1a2e)}.classroom-fact-students{display:flex;flex-direction:column;gap:6px}.classroom-fact-group-label{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.5px;color:var(--muted-foreground, #64748b);margin-bottom:2px}.classroom-fact-student-row{display:flex;align-items:center;gap:8px;padding:4px 0;cursor:pointer;border-radius:4px;transition:background .15s}.classroom-fact-student-row:hover{background:var(--background-muted, #f1f5f9)}.classroom-fact-student-name{font-size:13px;font-weight:500;color:var(--foreground, #1a1a2e);min-width:80px;flex-shrink:0}.classroom-fact-student-bar-wrapper{display:flex;align-items:center;gap:8px;flex:1;min-width:0}.classroom-fact-student-bar{flex:1;height:8px;background:var(--background-muted, #f1f5f9);border-radius:4px;overflow:hidden}.classroom-fact-student-bar-fill{height:100%;border-radius:4px;transition:width .3s ease}.classroom-fact-student-pct{font-size:12px;font-weight:600;color:var(--muted-foreground, #64748b);min-width:32px;text-align:right}@media(prefers-color-scheme:dark){.matrix-cell-unattempted{background:#374151}.matrix-cell-invalid{background:#1f2937}.classroom-fact-student-row:hover{background:#374151}}.report-page{min-height:100vh;padding:24px 20px 48px;background:var(--background);color:var(--foreground);font-family:var(--font-family);max-width:640px;margin:0 auto}.report-loading{text-align:center;padding:60px 20px;color:var(--muted-foreground);font-size:16px}.report-error{text-align:center;padding:60px 20px;color:var(--muted-foreground)}.report-error p{margin-bottom:16px;font-size:16px}.report-section{margin-bottom:32px}.report-section-title{font-size:18px;font-weight:600;color:var(--foreground);margin-bottom:16px}.report-hero{text-align:center}.report-title{font-size:28px;font-weight:700;color:var(--foreground);margin-bottom:4px}.report-freshness{font-size:13px;color:var(--muted-foreground);margin-bottom:24px}.hero-graph-row{background:var(--card);border:1px solid var(--card-border);border-radius:var(--radius-lg);padding:16px;margin-bottom:16px;text-align:left}.hero-graph-row-title{font-size:13px;font-weight:600;text-transform:uppercase;letter-spacing:.5px;color:var(--muted-foreground);margin-bottom:12px}.hero-graph-row-content{display:flex;gap:16px;align-items:center}.hero-graph-summary{flex:0 0 25%;display:flex;flex-direction:column;align-items:flex-start}.hero-graph-number{font-size:36px;font-weight:700;color:var(--primary);line-height:1}.hero-graph-label{font-size:13px;color:var(--muted-foreground);margin-top:4px}.hero-graph-chart{flex:1;min-width:0}.hero-delta{font-size:13px;color:var(--muted-foreground);margin-top:4px}.hero-delta-up{color:var(--success);font-weight:500}.hero-graph-sub-stats{display:flex;justify-content:center;gap:24px;margin-top:12px;padding-top:12px;border-top:1px solid var(--card-border)}.hero-graph-sub-stats .hero-stat{display:flex;flex-direction:column;align-items:center}.hero-graph-sub-stats .hero-stat .hero-number{font-size:24px;font-weight:700;color:var(--foreground)}.hero-graph-sub-stats .hero-stat .hero-label{font-size:12px;color:var(--muted-foreground);margin-top:2px}.progress-graph{height:160px;width:100%}.progress-graph-empty{text-align:center;color:var(--muted-foreground);font-size:14px;padding:40px 0}.practice-graph{height:160px;width:100%}.practice-graph-empty{text-align:center;color:var(--muted-foreground);font-size:14px;padding:40px 0}.pack-group-header{font-size:13px;font-weight:600;text-transform:uppercase;letter-spacing:.5px;color:var(--muted-foreground);margin-bottom:8px;margin-top:24px}.pack-group-header:first-of-type{margin-top:12px}.pack-mastery-grid{display:flex;flex-direction:column;gap:12px}.pack-mastery-card{background:var(--card);border:1px solid var(--card-border);border-radius:var(--radius-lg);padding:16px;transition:box-shadow .2s ease;cursor:pointer}.pack-mastery-card:hover{box-shadow:var(--shadow-md)}.pack-mastery-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:10px}.pack-mastery-info{display:flex;flex-direction:column;gap:6px}.pack-mastery-name{font-size:15px;font-weight:600;color:var(--foreground)}.pack-mastery-stats{display:flex;align-items:center;gap:8px}.pack-mastery-badge{font-size:12px;font-weight:500;padding:2px 8px;border-radius:10px}.pack-mastery-pct{font-size:20px;font-weight:700;color:var(--foreground)}.pack-mastery-bar-track{width:100%;height:6px;background:var(--background-muted);border-radius:3px;overflow:hidden}.pack-mastery-bar-fill{height:100%;border-radius:3px;transition:width .5s ease}.pack-mastery-meta{margin-top:8px;font-size:12px;color:var(--muted-foreground)}.pack-trend{font-size:14px;font-weight:600}.pack-trend-up{color:var(--success)}.pack-trend-down{color:var(--error)}.pack-trend-flat{color:var(--muted-foreground)}.pack-hard-note{margin-top:8px;font-size:13px;color:var(--accent-orange);font-style:italic}.pack-new-note{margin-top:8px;font-size:13px;color:var(--muted-foreground);font-style:italic}.hero-label-encouraging{font-size:16px;color:var(--muted-foreground);font-style:italic;text-align:center;padding:8px 0}.pack-novel-note{margin-top:4px;font-size:13px;color:var(--accent-blue)}.pack-drill-down{margin-top:12px;padding-top:12px;border-top:1px solid var(--card-border)}.drill-down-heading{font-size:13px;font-weight:600;text-transform:uppercase;letter-spacing:.5px;color:var(--muted-foreground);margin-bottom:10px}.drill-down-all-mastered{font-size:14px;color:var(--muted-foreground);font-style:italic;padding:4px 0}.cluster-facts-heading{font-size:12px;color:var(--muted-foreground);margin-top:2px;margin-bottom:6px}.pack-cluster-item{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}.cluster-label{font-size:13px;font-weight:500;color:var(--foreground)}.cluster-count{font-size:12px;color:var(--muted-foreground)}.cluster-facts{display:flex;flex-direction:column;gap:6px;margin-bottom:12px}.cluster-fact{display:flex;align-items:center;gap:10px}.fact-label{font-size:13px;color:var(--foreground);width:80px;flex-shrink:0}.fact-bar-track{flex:1;height:4px;background:var(--background-muted);border-radius:2px;overflow:hidden}.fact-bar-fill{height:100%;background:var(--primary);border-radius:2px}.drill-down-pills{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:12px}.drill-down-pill{display:inline-flex;align-items:center;gap:6px;padding:4px 10px;border-radius:6px;font-size:13px;color:var(--foreground)}.drill-down-pill-strong{background:#dcfce7;color:#15803d}.drill-down-pill-weak{background:var(--background-muted)}.drill-down-pill-pct{font-size:11px;color:var(--muted-foreground);font-weight:500}@media(prefers-color-scheme:dark){.drill-down-pill-strong{background:#052e16;color:#86efac}}.focus-list{display:flex;flex-direction:column;gap:8px}.focus-item{background:var(--card);border:1px solid var(--card-border);border-radius:var(--radius-md);padding:14px 16px;cursor:pointer;transition:box-shadow .2s ease}.focus-item:hover{box-shadow:var(--shadow-sm)}.focus-header{display:flex;justify-content:space-between;align-items:center}.focus-label{font-size:14px;font-weight:500;color:var(--foreground)}.focus-facts{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}.focus-fact{padding:4px 10px;background:var(--background-muted);border-radius:6px;font-size:13px;color:var(--foreground)}.focus-encouragement{background:var(--card);border:1px solid var(--card-border);border-radius:var(--radius-md);padding:16px;color:var(--muted-foreground);font-size:14px;font-style:italic;line-height:1.5}.struggles-table{width:100%;border-collapse:collapse;background:var(--card);border:1px solid var(--card-border);border-radius:var(--radius-md);overflow:hidden}.struggles-table th{text-align:left;font-size:12px;font-weight:600;color:var(--muted-foreground);text-transform:uppercase;letter-spacing:.5px;padding:10px 12px;border-bottom:1px solid var(--card-border)}.struggles-table td{padding:10px 12px;font-size:14px;color:var(--foreground);border-bottom:1px solid var(--card-border)}.struggles-table tbody tr:last-child td{border-bottom:none}.struggles-table .struggle-date{color:var(--muted-foreground);font-size:13px;white-space:nowrap}.struggles-table .struggle-problem{font-weight:600}@media(hover:hover){.struggles-table .struggle-problem{cursor:pointer;text-decoration:underline;text-decoration-color:transparent;transition:text-decoration-color .15s ease}.struggles-table .struggle-problem:hover{text-decoration-color:var(--primary)}}.struggles-table .struggle-wrong-answers{text-align:center;color:var(--error);font-size:13px}.struggles-table .struggle-result{text-align:center;white-space:nowrap}.struggle-correct{color:var(--success);font-weight:700;font-size:16px}.struggle-incorrect{color:var(--error);font-weight:700;font-size:16px}.struggle-slow{font-size:14px}.milestones-grid{display:flex;flex-wrap:wrap;gap:10px}.milestone-badge{flex:1 1 120px;max-width:180px;display:flex;flex-direction:column;align-items:center;gap:6px;padding:16px 12px;border-radius:var(--radius-md);border:2px solid;text-align:center}.milestone-badge-pack_mastered{background:#fef9c3;border-color:#f59e0b}.milestone-badge-fact_count{background:#dbeafe;border-color:#3b82f6}.milestone-badge-speed_increase{background:#dcfce7;border-color:#22c55e}@media(prefers-color-scheme:dark){.milestone-badge-pack_mastered{background:#422006;border-color:#d97706}.milestone-badge-fact_count{background:#172554;border-color:#2563eb}.milestone-badge-speed_increase{background:#052e16;border-color:#16a34a}}.milestone-icon{font-size:24px}.milestone-label{font-size:13px;font-weight:600;color:var(--foreground);line-height:1.3}.milestones-historical-heading{font-size:13px;font-weight:600;text-transform:uppercase;letter-spacing:.5px;color:var(--muted-foreground);margin-top:16px;margin-bottom:8px}.milestone-badge-historical{opacity:.65;border-style:dashed}.milestone-earned-date{font-size:11px;font-weight:400;color:var(--muted-foreground);margin-top:2px}.readiness-list{display:flex;flex-direction:column;gap:10px}.readiness-item{background:var(--card);border:1px solid var(--card-border);border-radius:var(--radius-md);padding:16px}.readiness-message{font-size:14px;color:var(--foreground);margin-bottom:10px}.readiness-action{padding:8px 16px;font-size:13px;font-weight:500;border:1px solid var(--primary);border-radius:6px;background:transparent;color:var(--primary);cursor:pointer;transition:all .2s ease}.readiness-action:hover{background:var(--primary);color:var(--primary-foreground)}.report-placeholder{text-align:center;padding:40px 20px}.placeholder-content{margin-top:40px}.placeholder-icon{margin-bottom:24px}.placeholder-heading{font-size:24px;font-weight:600;color:var(--foreground);margin-bottom:12px}.placeholder-message{font-size:16px;color:var(--muted-foreground);line-height:1.5;max-width:320px;margin:0 auto 24px}.placeholder-cta{background:var(--primary);color:#fff;border:none;padding:12px 24px;font-size:16px;font-weight:500;border-radius:8px;cursor:pointer;transition:opacity .2s}.placeholder-cta:hover{opacity:.9}.debug-panel{margin-top:32px;border:2px dashed var(--muted-foreground);border-radius:var(--radius-lg);background:var(--background)}.debug-panel-toggle{width:100%;display:flex;justify-content:space-between;align-items:center;padding:12px 16px;background:none;border:none;cursor:pointer;color:var(--muted-foreground);font-family:monospace;font-size:13px;font-weight:600}.debug-panel-toggle:hover{color:var(--foreground)}.debug-panel-title{text-transform:uppercase;letter-spacing:1px}.debug-expand-arrow{font-size:11px}.debug-panel-content{padding:0 16px 16px}.debug-section{margin-bottom:16px;padding-bottom:12px;border-bottom:1px solid var(--card-border)}.debug-section:last-child{border-bottom:none;margin-bottom:0;padding-bottom:0}.debug-section-title{font-family:monospace;font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.5px;color:var(--muted-foreground);margin-bottom:8px}.debug-loading,.debug-error,.debug-empty{font-family:monospace;font-size:13px;color:var(--muted-foreground);padding:8px 0}.debug-error{color:var(--error)}.debug-mono{font-family:monospace;font-size:12px}.debug-small{font-size:11px}.debug-kv-grid{display:grid;grid-template-columns:auto 1fr;gap:2px 12px;font-family:monospace;font-size:12px}.debug-kv-key{color:var(--muted-foreground)}.debug-kv-value{color:var(--foreground)}.debug-highlight{color:var(--primary);font-weight:600}.debug-small-label{font-family:monospace;font-size:11px;color:var(--muted-foreground);display:block;margin-top:8px;margin-bottom:4px}.debug-coin-sessions,.debug-speed-sessions{display:flex;flex-wrap:wrap;gap:6px;align-items:center}.debug-coin-session-pill,.debug-speed-pill{font-family:monospace;font-size:11px;padding:2px 8px;background:var(--background-muted);border-radius:4px;color:var(--foreground)}.debug-rum-link{font-family:monospace;font-size:12px;color:var(--primary);text-decoration:none}.debug-rum-link:hover{text-decoration:underline}.debug-session-card{border:1px solid var(--card-border);border-radius:var(--radius-md);margin-bottom:8px;overflow:hidden}.debug-session-header{display:flex;justify-content:space-between;align-items:center;padding:8px 12px;cursor:pointer;background:var(--card)}.debug-session-header:hover{background:var(--background-muted)}.debug-session-summary{display:flex;align-items:center;gap:10px;flex-wrap:wrap;font-family:monospace;font-size:12px}.debug-session-game{font-weight:600;color:var(--foreground)}.debug-session-time{color:var(--muted-foreground);font-size:11px}.debug-session-result{font-weight:700;font-size:13px}.debug-win{color:var(--success)}.debug-loss{color:var(--error)}.debug-session-duration,.debug-session-meta{color:var(--muted-foreground);font-size:11px}.debug-session-actions{display:flex;align-items:center;gap:10px}.debug-outcomes-table-wrap{overflow-x:auto;padding:0 4px 8px}.debug-outcomes-table{width:100%;border-collapse:collapse;font-family:monospace;font-size:11px}.debug-outcomes-table th{text-align:left;padding:4px 6px;font-size:10px;color:var(--muted-foreground);text-transform:uppercase;border-bottom:1px solid var(--card-border);white-space:nowrap}.debug-outcomes-table td{padding:3px 6px;border-bottom:1px solid var(--card-border);white-space:nowrap}.debug-outcomes-table tbody tr:last-child td{border-bottom:none}.debug-outcome-correct{background:#22c55e0d}.debug-outcome-incorrect{background:#ef44440d}.debug-outcome-noise{opacity:.5;background:#eab3080d}.debug-delta-up{color:var(--success)}.debug-delta-down{color:var(--error)}.debug-flag{color:var(--accent-orange);font-weight:600}@media(max-width:480px){.report-title{font-size:24px}.hero-graph-row-content{flex-direction:column;align-items:flex-start}.hero-graph-summary{flex:none;width:100%}.hero-graph-chart{width:100%}.hero-graph-number{font-size:28px}.hero-graph-sub-stats{gap:16px}.struggles-table th:first-child,.struggles-table td:first-child{padding-left:8px}}.classroom-page{max-width:800px;margin:0 auto;padding:1rem;font-family:var(--font-family);color:var(--foreground)}.classroom-page__back{background:none;border:none;color:var(--primary);font-size:14px;cursor:pointer;padding:4px 0;margin-bottom:8px}.classroom-page__back:hover{text-decoration:underline}.classroom-page__header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:2rem}.classroom-page__header h1{margin:0;color:var(--foreground)}.classroom-page__year{color:var(--muted-foreground);font-size:14px;margin:4px 0 0}.classroom-page__title-row{display:flex;align-items:center;gap:8px}.classroom-page__title-row h1{margin:0}.classroom-page__teacher-name{font-size:.6em;font-weight:400;color:var(--muted-foreground)}.classroom-page__year-row{display:flex;align-items:center;gap:4px}.classroom-page__join-code-section{text-align:right}.classroom-page__menu{position:relative}.classroom-page__menu-btn{width:32px;height:32px;display:flex;align-items:center;justify-content:center;background:transparent;border:none;border-radius:var(--radius-md);color:var(--muted-foreground);cursor:pointer;transition:all .2s ease}.classroom-page__menu-btn:hover{background:var(--background-muted);color:var(--foreground)}.classroom-page__menu-btn svg{width:18px;height:18px}.classroom-page__menu-dropdown{position:absolute;top:100%;right:0;margin-top:4px;min-width:160px;background:var(--card);border:1px solid var(--card-border);border-radius:var(--radius-md);box-shadow:var(--shadow-lg);opacity:0;visibility:hidden;transform:translateY(-8px);transition:all .15s ease;z-index:100}.classroom-page__menu-dropdown.open{opacity:1;visibility:visible;transform:translateY(0)}.classroom-page__menu-item{display:block;width:100%;padding:10px 14px;font-size:14px;text-align:left;background:none;border:none;cursor:pointer;transition:background .15s ease}.classroom-page__menu-item:hover{background:var(--background-muted)}.classroom-page__menu-item--danger{color:var(--error, #dc2626)}.classroom-page__menu-item--danger:hover{background:#dc262614}.classroom-page__join-code-label{font-size:13px;color:var(--muted-foreground);margin:0 0 8px}.classroom-page__section{background:var(--card);border:1px solid var(--card-border);border-radius:var(--radius-lg);padding:24px;margin-bottom:24px}.classroom-page__section-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}.classroom-page__section-header h2{margin:0;font-size:18px;color:var(--foreground)}.classroom-page__section h2{margin-top:0;margin-bottom:8px;font-size:18px;color:var(--foreground)}.classroom-page__section-desc{font-size:14px;color:var(--muted-foreground);margin:0 0 16px}.classroom-page__edit-packs-btn{padding:6px 12px;font-size:13px;background:transparent;border:1px solid var(--card-border);border-radius:var(--radius-md);color:var(--primary);cursor:pointer;transition:all .15s ease}.classroom-page__edit-packs-btn:hover{border-color:var(--primary);background:#4f46e50d}.classroom-page__section h3{font-size:15px;color:var(--foreground);margin:16px 0 8px}.classroom-page__empty{text-align:center;padding:24px;color:var(--muted-foreground)}.classroom-page__student-list{display:grid;gap:8px}.classroom-page__student-row{display:flex;justify-content:space-between;align-items:center;padding:12px 16px;background:var(--background-muted, var(--background));border-radius:var(--radius-md)}.classroom-page__student-row--clickable{cursor:pointer}.classroom-page__student-row--clickable:hover{background:var(--background-hover, var(--background-muted))}.classroom-page__student-name{font-weight:500;color:var(--foreground)}.classroom-page__family-name{font-weight:400;font-size:.85em;color:var(--muted-foreground)}.classroom-page__student-mastery{font-size:14px;color:var(--muted-foreground)}.classroom-page__student-activity{display:flex;gap:16px;font-size:13px;color:var(--muted-foreground)}.classroom-page__perf-link{font-size:14px;color:var(--muted-foreground);margin:0 0 12px}.classroom-page__perf-link a{color:var(--primary);text-decoration:none;font-weight:500}.classroom-page__perf-link a:hover{text-decoration:underline}.classroom-page__pack-selector .pack-selector{max-height:none;overflow-y:visible}.classroom-page__pack-list{display:flex;flex-wrap:wrap;gap:8px}.classroom-page__pack-tag{padding:8px 16px;background:#4f46e514;border-radius:var(--radius-md);font-size:14px;color:var(--primary)}.classroom-page__actions{display:flex;gap:12px}.classroom-page__archive-btn{padding:10px 20px;font-size:14px;background:transparent;color:var(--error, #dc2626);border:1px solid var(--error, #dc2626);border-radius:var(--radius-md);cursor:pointer;transition:all .2s ease}.classroom-page__archive-btn:hover{background:#dc26260d}.classroom-modal--wide{max-width:500px}.classroom-modal__desc{font-size:14px;color:var(--muted-foreground);margin:0 0 16px}.classroom-modal__pack-selector{max-height:300px;overflow-y:auto;margin-bottom:16px}.classroom-modal__error{color:var(--error);font-size:14px;text-align:center;min-height:20px;margin:0 0 8px}.classroom-modal__error:empty{display:none}.classroom-modal__save{padding:10px 20px;font-size:14px;font-weight:600;border:none;border-radius:var(--radius-md);background:var(--primary);color:var(--primary-foreground);cursor:pointer;transition:all .2s ease}.classroom-modal__save:hover:not(:disabled){background:var(--primary-hover)}.classroom-modal__save:disabled{opacity:.5;cursor:not-allowed}.classroom-page__tabs{display:flex;gap:0;border-bottom:1px solid var(--card-border);margin-bottom:24px}.classroom-page__tabs button{padding:10px 20px;font-size:14px;font-weight:500;background:transparent;border:none;border-bottom:2px solid transparent;color:var(--muted-foreground);cursor:pointer;transition:all .15s ease}.classroom-page__tabs button:hover{color:var(--foreground)}.classroom-page__tabs button.active{color:var(--primary);border-bottom-color:var(--primary)}.classroom-perf__dropdown{display:flex;align-items:center;justify-content:center;gap:8px;margin-bottom:20px}.classroom-perf__dropdown-label{font-size:14px;font-weight:500;color:var(--muted-foreground);white-space:nowrap}.classroom-perf__dropdown select{max-width:320px;padding:8px 12px;font-size:14px;font-family:var(--font-family);border:1px solid var(--card-border);border-radius:var(--radius-md);background:var(--card);color:var(--foreground);cursor:pointer}.classroom-perf__empty{text-align:center;padding:48px 24px;color:var(--muted-foreground);font-size:15px}.classroom-perf__student-table{display:flex;flex-direction:column;gap:6px}.classroom-perf__student-row{display:flex;justify-content:space-between;align-items:center;padding:12px 16px;background:var(--card);border:1px solid var(--card-border);border-radius:var(--radius-md);cursor:pointer;transition:box-shadow .15s ease}.classroom-perf__student-row:hover{box-shadow:var(--shadow-sm)}.classroom-perf__student-info{flex:1;min-width:0}.classroom-perf__student-name{font-size:14px;font-weight:500;color:var(--foreground)}.classroom-perf__family-name{font-weight:400;font-size:.85em;color:var(--muted-foreground)}.classroom-perf__student-stats{display:flex;align-items:center;gap:16px;flex-shrink:0}.classroom-perf__mastery-col{display:flex;align-items:center;gap:8px;min-width:100px}.classroom-perf__mastery-pct{font-size:14px;font-weight:600;color:var(--foreground);white-space:nowrap}.classroom-perf__mastery-bar{width:60px;height:6px;background:var(--background-muted);border-radius:3px;overflow:hidden}.classroom-perf__mastery-bar-fill{height:100%;border-radius:3px;background:var(--primary);transition:width .3s ease}.classroom-perf__last-active{font-size:13px;color:var(--muted-foreground);min-width:110px;text-align:right}.classroom-perf__sessions{font-size:13px;color:var(--muted-foreground);min-width:130px;text-align:right}.classroom-invite__share-box{display:flex;align-items:center;gap:12px;padding:12px 16px;background:var(--background-muted, var(--background));border-radius:var(--radius-md);margin-bottom:16px}.classroom-invite__url{flex:1;font-family:monospace;font-size:14px;color:var(--foreground);word-break:break-all}.classroom-invite__copy-btn{padding:6px 14px;font-size:13px;font-weight:500;background:var(--primary);color:var(--primary-foreground);border:none;border-radius:var(--radius-md);cursor:pointer;white-space:nowrap;transition:background .15s ease}.classroom-invite__copy-btn:hover{background:var(--primary-hover)}.classroom-invite__sub-heading{font-size:14px;font-weight:600;color:var(--foreground);margin:0 0 8px}.classroom-invite__suggested-text-wrap{display:flex;flex-direction:column;gap:8px}.classroom-invite__suggested-text{width:100%;padding:12px;font-size:14px;font-family:var(--font-family);color:var(--foreground);background:var(--background-muted, var(--background));border:1px solid var(--card-border);border-radius:var(--radius-md);resize:none;box-sizing:border-box}.classroom-invite__suggested-text-wrap .classroom-invite__copy-btn{align-self:flex-start}.classroom-invite__qr{display:flex;flex-direction:column;align-items:center;gap:12px}.classroom-invite__qr canvas{border-radius:var(--radius-md)}.classroom-invite__download-btn{padding:8px 16px;font-size:13px;font-weight:500;background:transparent;color:var(--primary);border:1px solid var(--primary);border-radius:var(--radius-md);cursor:pointer;transition:all .15s ease}.classroom-invite__download-btn:hover{background:#4f46e50d}.classroom-invite__email-input{width:100%;padding:12px;font-size:14px;font-family:var(--font-family);color:var(--foreground);background:var(--card);border:1px solid var(--card-border);border-radius:var(--radius-md);resize:vertical;margin-bottom:12px;box-sizing:border-box}.classroom-invite__email-input::placeholder{color:var(--muted-foreground)}.classroom-invite__send-btn{padding:10px 20px;font-size:14px;font-weight:600;background:var(--primary);color:var(--primary-foreground);border:none;border-radius:var(--radius-md);cursor:pointer;transition:background .15s ease}.classroom-invite__send-btn:hover:not(:disabled){background:var(--primary-hover)}.classroom-invite__send-btn:disabled{opacity:.5;cursor:not-allowed}.classroom-invite__results{margin-top:12px;display:flex;flex-direction:column;gap:4px}.classroom-invite__result{display:flex;justify-content:space-between;padding:8px 12px;font-size:13px;border-radius:var(--radius-md)}.classroom-invite__result--sent{background:#22c55e1a;color:#16a34a}.classroom-invite__result--failed{background:#dc26261a;color:#dc2626}.classroom-invite__table{display:flex;flex-direction:column;gap:0}.classroom-invite__table-header{display:grid;grid-template-columns:1fr 90px 80px 120px;gap:8px;padding:8px 12px;font-size:12px;font-weight:600;color:var(--muted-foreground);text-transform:uppercase;letter-spacing:.05em;border-bottom:1px solid var(--card-border)}.classroom-invite__table-row{display:grid;grid-template-columns:1fr 90px 80px 120px;gap:8px;padding:10px 12px;font-size:14px;align-items:center;border-bottom:1px solid var(--card-border)}.classroom-invite__table-row:last-child{border-bottom:none}.classroom-invite__table-email{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--foreground)}.classroom-invite__table-date{font-size:13px;color:var(--muted-foreground)}.classroom-invite__status{display:inline-block;padding:2px 8px;font-size:12px;font-weight:500;border-radius:9999px}.classroom-invite__status--enrolled{background:#22c55e26;color:#16a34a}.classroom-invite__status--clicked{background:#eab30826;color:#a16207}.classroom-invite__status--sent{background:var(--background-muted, rgba(0, 0, 0, .06));color:var(--muted-foreground)}.classroom-invite__actions{display:flex;gap:6px}.classroom-invite__action-btn{padding:4px 10px;font-size:12px;font-weight:500;background:transparent;border:1px solid var(--card-border);border-radius:var(--radius-md);color:var(--foreground);cursor:pointer;transition:all .15s ease}.classroom-invite__action-btn:hover:not(:disabled){border-color:var(--primary);color:var(--primary)}.classroom-invite__action-btn:disabled{opacity:.5;cursor:not-allowed}.classroom-invite__action-btn--danger{color:var(--error, #dc2626);border-color:transparent}.classroom-invite__action-btn--danger:hover{border-color:var(--error, #dc2626);color:var(--error, #dc2626)}@media(max-width:600px){.classroom-page__header{flex-direction:column;gap:16px}.classroom-page__join-code-section{text-align:left}.classroom-page__student-row{flex-direction:column;align-items:flex-start;gap:4px}.classroom-page__student-activity{width:100%}.classroom-perf__student-row{flex-direction:column;align-items:flex-start;gap:8px}.classroom-perf__student-stats{width:100%;justify-content:space-between}.classroom-perf__last-active,.classroom-perf__sessions{min-width:0;text-align:left}.classroom-invite__share-box{flex-direction:column;align-items:stretch}.classroom-invite__table-header,.classroom-invite__table-row{grid-template-columns:1fr;gap:4px}.classroom-invite__table-header{display:none}.classroom-invite__table-row{padding:12px;background:var(--background-muted, var(--background));border-radius:var(--radius-md);border-bottom:none;margin-bottom:8px}.classroom-invite__actions{margin-top:4px}}.bonus-coins-overlay{position:fixed;inset:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1100;padding:20px}.bonus-coins-modal{width:100%;max-width:380px;background:var(--card);border:1px solid var(--card-border);border-radius:var(--radius-lg);padding:28px;box-shadow:var(--shadow-lg)}.bonus-coins-title{font-size:18px;font-weight:600;margin:0 0 12px;color:var(--foreground)}.bonus-coins-description{font-size:14px;color:var(--muted-foreground);margin:0 0 16px;line-height:1.5}.bonus-coins-existing{font-size:13px;color:var(--primary);margin:0 0 16px;padding:8px 12px;background:#4f46e514;border-radius:var(--radius-md)}.bonus-coins-input-row{display:flex;align-items:center;gap:12px;margin-bottom:20px}.bonus-coins-input-row label{font-size:14px;color:var(--foreground);white-space:nowrap}.bonus-coins-input{width:80px;padding:8px 12px;font-size:16px;border:1px solid var(--card-border);border-radius:var(--radius-md);background:var(--card);color:var(--foreground);text-align:center}.bonus-coins-input:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px #4f46e51a}.bonus-coins-error{font-size:13px;color:var(--error, #dc2626);margin:0 0 12px}.bonus-coins-buttons{display:flex;gap:12px;justify-content:flex-end}.bonus-coins-cancel{padding:10px 20px;border:1px solid var(--card-border);border-radius:var(--radius-md);background:transparent;color:var(--muted-foreground);font-size:14px;cursor:pointer;transition:all .2s ease}.bonus-coins-cancel:hover{border-color:var(--foreground);color:var(--foreground)}.bonus-coins-confirm{padding:10px 20px;border:none;border-radius:var(--radius-md);background:var(--primary);color:var(--primary-foreground);font-size:14px;font-weight:600;cursor:pointer;transition:background .2s ease}.bonus-coins-confirm:hover:not(:disabled){background:var(--primary-hover)}.bonus-coins-confirm:disabled{opacity:.7;cursor:not-allowed}.consent-overlay{position:fixed;inset:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1100;padding:20px}.consent-modal{position:relative;width:100%;max-width:420px;background:var(--card);border:1px solid var(--card-border);border-radius:var(--radius-lg);padding:28px;box-shadow:var(--shadow-lg)}.consent-close{position:absolute;top:12px;right:12px;background:none;border:none;color:var(--muted-foreground);cursor:pointer;padding:4px;border-radius:var(--radius-sm);transition:color .2s ease}.consent-close:hover{color:var(--foreground)}.consent-title{font-size:18px;font-weight:600;margin:0 0 12px;color:var(--foreground)}.consent-description{font-size:14px;color:var(--muted-foreground);margin:0 0 20px;line-height:1.6}.consent-description a{color:var(--primary);text-decoration:underline}.consent-description a:hover{color:var(--primary-hover)}.consent-error{font-size:13px;color:var(--error, #dc2626);margin:0 0 12px}.consent-buttons{display:flex;justify-content:flex-end}.consent-agree{padding:10px 24px;border:none;border-radius:var(--radius-md);background:var(--primary);color:var(--primary-foreground);font-size:14px;font-weight:600;cursor:pointer;transition:background .2s ease}.consent-agree:hover:not(:disabled){background:var(--primary-hover)}.consent-agree:disabled{opacity:.7;cursor:not-allowed}.admin-subtabs{display:flex;gap:0;border-bottom:2px solid var(--card-border);margin-bottom:20px}.admin-subtab{padding:10px 20px;border:none;background:transparent;color:var(--muted-foreground);font-size:14px;font-weight:500;cursor:pointer;border-bottom:2px solid transparent;margin-bottom:-2px;transition:all .15s ease}.admin-subtab:hover{color:var(--foreground)}.admin-subtab--active{color:var(--primary);border-bottom-color:var(--primary)}.admin-breadcrumb{display:flex;align-items:center;gap:8px;font-size:14px;color:var(--muted-foreground);margin-bottom:20px}.admin-breadcrumb-link{color:var(--primary);cursor:pointer;background:none;border:none;font-size:14px;padding:0;text-decoration:none}.admin-breadcrumb-link:hover{text-decoration:underline}.admin-breadcrumb-sep{color:var(--muted-foreground)}.admin-breadcrumb-current{color:var(--foreground);font-weight:500}.admin-table{width:100%;border-collapse:collapse;font-size:14px}.admin-table th{text-align:left;padding:10px 12px;font-weight:600;color:var(--muted-foreground);border-bottom:2px solid var(--card-border);font-size:12px;text-transform:uppercase;letter-spacing:.05em}.admin-table td{padding:10px 12px;border-bottom:1px solid var(--card-border)}.admin-table tbody tr{cursor:pointer;transition:background .15s ease}.admin-table tbody tr:hover{background:var(--background-muted)}.admin-table--static tbody tr{cursor:default}.admin-table--static tbody tr:hover{background:transparent}.admin-table .admin-email{color:var(--muted-foreground);font-size:13px}.admin-table .admin-date{color:var(--muted-foreground);font-size:13px;white-space:nowrap}.admin-badge{display:inline-block;padding:2px 8px;border-radius:9999px;font-size:11px;font-weight:500}.admin-badge-teacher{background:#dbeafe;color:#2563eb}.admin-pagination{display:flex;align-items:center;justify-content:center;gap:16px;margin-top:20px;font-size:14px;color:var(--muted-foreground)}.admin-pagination button{padding:6px 14px;border:1px solid var(--card-border);border-radius:var(--radius-md);background:var(--card);color:var(--foreground);font-size:13px;cursor:pointer;transition:all .15s ease}.admin-pagination button:hover:not(:disabled){background:var(--background-muted)}.admin-pagination button:disabled{opacity:.4;cursor:not-allowed}.admin-student-grade{color:var(--muted-foreground);font-size:13px}.admin-student-speed{font-variant-numeric:tabular-nums}.admin-loading{text-align:center;padding:48px 16px;color:var(--muted-foreground)}.admin-error{text-align:center;padding:48px 16px;color:var(--destructive)}.admin-empty{text-align:center;padding:48px 16px;color:var(--muted-foreground)}.admin-report-wrapper{margin-top:-8px}.admin-invite-header{display:flex;justify-content:flex-end;margin-bottom:16px}.admin-invite-create-btn{padding:8px 16px;border:none;border-radius:var(--radius-md);background:var(--primary);color:#fff;font-size:14px;font-weight:500;cursor:pointer;transition:opacity .15s ease}.admin-invite-create-btn:hover{opacity:.9}.admin-copyable-code{display:inline-flex;align-items:center;gap:6px}.admin-code-text{font-family:monospace;font-size:13px;font-weight:600;letter-spacing:.05em}.admin-copy-btn{display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;padding:0;border:1px solid var(--card-border);border-radius:4px;background:var(--card);color:var(--muted-foreground);cursor:pointer;transition:all .15s ease}.admin-copy-btn:hover{background:var(--background-muted);color:var(--foreground)}.admin-modal-overlay{position:fixed;inset:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000}.admin-modal{background:var(--card);border:1px solid var(--card-border);border-radius:var(--radius-lg);padding:24px;width:100%;max-width:400px;margin:16px}.admin-modal-title{font-size:18px;font-weight:600;margin:0 0 20px;color:var(--foreground)}.admin-modal-field{margin-bottom:16px}.admin-modal-field label{display:block;font-size:13px;font-weight:500;color:var(--muted-foreground);margin-bottom:6px}.admin-modal-field input{width:100%;padding:8px 12px;border:1px solid var(--card-border);border-radius:var(--radius-md);background:var(--background);color:var(--foreground);font-size:14px;box-sizing:border-box}.admin-modal-field input:focus{outline:none;border-color:var(--primary)}.admin-modal-hint{display:block;font-size:12px;color:var(--muted-foreground);margin-top:4px}.admin-modal-error{color:var(--destructive);font-size:13px;margin:0 0 12px}.admin-modal-buttons{display:flex;justify-content:flex-end;gap:8px;margin-top:20px}.admin-modal-cancel{padding:8px 16px;border:1px solid var(--card-border);border-radius:var(--radius-md);background:var(--card);color:var(--foreground);font-size:14px;cursor:pointer;transition:background .15s ease}.admin-modal-cancel:hover{background:var(--background-muted)}.admin-modal-confirm{padding:8px 16px;border:none;border-radius:var(--radius-md);background:var(--primary);color:#fff;font-size:14px;font-weight:500;cursor:pointer;transition:opacity .15s ease}.admin-modal-confirm:hover:not(:disabled){opacity:.9}.admin-modal-confirm:disabled{opacity:.4;cursor:not-allowed}.settings-page{min-height:calc(100vh - 56px);display:flex;flex-direction:column;background:var(--background);color:var(--foreground);font-family:var(--font-family)}.settings-layout{display:flex;flex:1;max-width:1000px;margin:0 auto;width:100%}.settings-sidebar{width:200px;flex-shrink:0;border-right:1px solid var(--card-border);padding:16px 0;background:var(--card)}.settings-nav{display:flex;flex-direction:column;gap:4px;padding:0 8px}.settings-nav-item{display:flex;align-items:center;gap:10px;padding:12px 16px;border:none;border-radius:var(--radius-md);background:transparent;color:var(--muted-foreground);font-size:14px;font-weight:500;text-align:left;cursor:pointer;transition:all .2s ease}.settings-nav-item:hover{background:var(--background-muted);color:var(--foreground)}.settings-nav-item--active{background:#4f46e51a;color:var(--primary)}.settings-nav-item--active:hover{background:#4f46e526}.settings-nav-icon{width:18px;height:18px;flex-shrink:0}.settings-content{flex:1;padding:24px;overflow-y:auto}.settings-section-title{font-size:18px;font-weight:600;margin:0 0 20px;color:var(--foreground)}.settings-students-list{display:flex;flex-direction:column;gap:12px;margin-bottom:20px}.settings-student-card{display:flex;justify-content:space-between;align-items:center;padding:16px 20px;background:var(--card);border:1px solid var(--card-border);border-radius:var(--radius-lg);transition:border-color .2s ease}.settings-student-card:hover{border-color:var(--primary)}.settings-student-info{display:flex;flex-direction:column;gap:4px}.settings-student-name{font-size:16px;font-weight:600;color:var(--foreground)}.settings-student-coins{font-size:13px;color:var(--muted-foreground)}.settings-student-actions{display:flex;gap:8px}.settings-student-btn{display:flex;align-items:center;gap:6px;padding:8px 12px;border:1px solid var(--card-border);border-radius:var(--radius-md);background:transparent;color:var(--muted-foreground);font-size:13px;cursor:pointer;transition:all .2s ease}.settings-student-btn:hover{border-color:var(--primary);color:var(--primary)}.settings-student-add-more{color:var(--primary);text-decoration:none;cursor:pointer}.settings-student-add-more:hover{text-decoration:underline}.settings-student-btn--primary{background:var(--primary);color:#fff;border-color:var(--primary)}.settings-student-btn--primary:hover{opacity:.9;color:#fff}.settings-student-btn--locked{opacity:.5}.settings-add-student{padding:14px 20px;border:2px dashed var(--card-border);border-radius:var(--radius-lg);background:transparent;color:var(--primary);font-size:14px;font-weight:600;cursor:pointer;transition:all .2s ease}.settings-add-student:hover{border-color:var(--primary);background:#4f46e50d}.settings-add-student--limited{opacity:.6;color:var(--muted-foreground)}.settings-add-student--limited:hover{opacity:1}.settings-classrooms-list{display:flex;flex-direction:column;gap:12px;margin-bottom:20px}.settings-classroom-card{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;background:var(--card);border:1px solid var(--card-border);border-radius:var(--radius-lg);cursor:pointer;transition:all .2s ease}.settings-classroom-info{min-width:0}.settings-classroom-code{font-family:monospace;font-size:14px;font-weight:600;color:var(--muted-foreground);letter-spacing:.05em;flex-shrink:0;margin-left:16px}.settings-classroom-card:hover{border-color:var(--primary);transform:translateY(-2px);box-shadow:var(--shadow-md)}.settings-classroom-name{font-size:16px;font-weight:600;margin:0 0 4px;color:var(--foreground)}.settings-classroom-teacher{font-weight:400;font-size:14px;color:var(--muted-foreground)}.settings-classroom-year{font-size:13px;color:var(--muted-foreground);margin:0}.settings-create-classroom{padding:14px 20px;border:2px dashed var(--card-border);border-radius:var(--radius-lg);background:transparent;color:var(--primary);font-size:14px;font-weight:600;cursor:pointer;transition:all .2s ease}.settings-create-classroom:hover{border-color:var(--primary);background:#4f46e50d}.settings-billing-info{background:var(--card);border:1px solid var(--card-border);border-radius:var(--radius-lg);padding:20px;margin-bottom:20px}.settings-billing-plan{font-size:16px;margin:0 0 8px;color:var(--foreground)}.settings-billing-plan strong{color:var(--primary)}.settings-billing-renews{font-size:14px;color:var(--muted-foreground);margin:0}.settings-billing-verify{background:var(--card);border:1px solid var(--card-border);border-radius:var(--radius-lg);padding:24px;text-align:center}.settings-billing-verify p{font-size:14px;color:var(--muted-foreground);margin:0 0 16px}.settings-manage-subscription{padding:12px 24px;border:none;border-radius:var(--radius-md);background:var(--primary);color:var(--primary-foreground);font-size:14px;font-weight:600;cursor:pointer;transition:background .2s ease}.settings-manage-subscription:hover{background:var(--primary-hover)}.settings-manage-subscription--disabled{opacity:.5;cursor:not-allowed}.settings-manage-subscription--disabled:hover{background:var(--primary)}.settings-manage-subscription-wrapper{position:relative;display:inline-block}.settings-manage-subscription-wrapper:hover .settings-manage-subscription-tooltip{opacity:1;visibility:visible}.settings-manage-subscription-tooltip{position:absolute;bottom:calc(100% + 8px);left:50%;transform:translate(-50%);background:var(--surface-overlay, #333);color:var(--text-inverse, #fff);font-size:12px;font-weight:400;padding:6px 10px;border-radius:var(--radius-sm, 4px);white-space:nowrap;opacity:0;visibility:hidden;transition:opacity .2s ease,visibility .2s ease;pointer-events:none;z-index:10}.settings-upgrade-btn{padding:12px 24px;border:none;border-radius:var(--radius-md);background:var(--primary);color:var(--primary-foreground);font-size:14px;font-weight:600;cursor:pointer;transition:background .2s ease}.settings-upgrade-btn:hover{background:var(--primary-hover)}.settings-account-info{background:var(--card);border:1px solid var(--card-border);border-radius:var(--radius-lg);padding:20px;margin-bottom:20px}.settings-account-row{display:flex;justify-content:space-between;align-items:center;padding:12px 0;border-bottom:1px solid var(--card-border)}.settings-account-row:last-child{border-bottom:none}.settings-account-row--no-border{border-bottom:none}.settings-account-label{font-size:14px;color:var(--muted-foreground)}.settings-account-label--indented{padding-left:16px}.settings-account-value{font-size:14px;font-weight:500;color:var(--foreground)}.settings-account-actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:20px}.settings-signout{padding:12px 24px;border:1px solid var(--error, #dc2626);border-radius:var(--radius-md);background:transparent;color:var(--error, #dc2626);font-size:14px;font-weight:600;cursor:pointer;transition:all .2s ease}.settings-signout:hover{background:var(--error, #dc2626);color:#fff}.verify-email-overlay{position:fixed;inset:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1100;padding:20px}.verify-email-modal{position:relative;width:100%;max-width:400px;background:var(--card);border:1px solid var(--card-border);border-radius:var(--radius-lg);padding:32px;box-shadow:var(--shadow-lg)}.verify-email-close{position:absolute;top:12px;right:12px;width:32px;height:32px;display:flex;align-items:center;justify-content:center;border:none;border-radius:50%;background:transparent;color:var(--muted-foreground);font-size:24px;cursor:pointer;transition:all .2s ease}.verify-email-close:hover{background:var(--background-muted);color:var(--foreground)}.verify-email-title{font-size:20px;font-weight:600;margin:0 0 12px;color:var(--foreground);text-align:center}.verify-email-description{font-size:14px;color:var(--muted-foreground);margin:0 0 8px;text-align:center}.verify-email-address{font-size:14px;font-weight:600;color:var(--foreground);margin:0 0 20px;text-align:center}.verify-email-note{font-size:13px;color:var(--muted-foreground);margin:0 0 16px;text-align:center;font-style:italic}.verify-email-input{width:100%;padding:14px 18px;font-size:16px;border:1px solid var(--card-border);border-radius:var(--radius-md);background:var(--card);color:var(--foreground);outline:none;transition:border-color .2s ease;box-sizing:border-box;margin-bottom:16px;text-align:center;letter-spacing:.1em}.verify-email-input:focus{border-color:var(--primary);box-shadow:0 0 0 3px #4f46e51a}.verify-email-error{font-size:14px;color:var(--error);text-align:center;margin:0 0 12px}.verify-email-send{width:100%;padding:14px;border:none;border-radius:var(--radius-md);background:var(--primary);color:var(--primary-foreground);font-size:16px;font-weight:600;cursor:pointer;transition:background .2s ease}.verify-email-send:hover:not(:disabled){background:var(--primary-hover)}.verify-email-send:disabled{opacity:.7;cursor:not-allowed}.verify-email-back{width:100%;margin-top:12px;padding:10px;border:none;background:transparent;color:var(--muted-foreground);font-size:14px;cursor:pointer}.verify-email-back:hover{color:var(--foreground);text-decoration:underline}.settings-gear-icon{width:40px;height:40px;display:flex;align-items:center;justify-content:center;border:1px solid var(--card-border);border-radius:50%;background:var(--card);color:var(--muted-foreground);cursor:pointer;transition:all .2s ease}.settings-gear-icon:hover{border-color:var(--primary);color:var(--primary);background:#4f46e50d}.settings-empty{text-align:center;color:var(--muted-foreground);padding:40px 20px}.settings-student-cap{text-align:center;font-size:14px;color:var(--muted-foreground);padding:12px;background:var(--background-muted);border-radius:var(--radius-md)}@media(max-width:640px){.settings-layout{flex-direction:column}.settings-sidebar{width:100%;border-right:none;border-bottom:1px solid var(--card-border);padding:0;overflow-x:auto;-webkit-overflow-scrolling:touch}.settings-nav{flex-direction:row;gap:0;padding:0}.settings-nav-item{flex:1;justify-content:center;padding:14px 12px;border-radius:0;white-space:nowrap;min-width:80px}.settings-nav-item--active{background:transparent;border-bottom:2px solid var(--primary)}.settings-nav-item--active:hover{background:transparent}.settings-nav-icon{display:none}.settings-content{padding:20px 16px}.settings-header{padding:12px 16px}}.settings-add-student-form{background:var(--card);border:1px solid var(--card-border);border-radius:var(--radius-lg);padding:24px;margin-top:20px}.settings-toggle{position:relative;display:inline-block;width:44px;height:24px}.settings-toggle input{opacity:0;width:0;height:0}.settings-toggle-slider{position:absolute;cursor:pointer;inset:0;background-color:var(--card-border);transition:.2s;border-radius:24px}.settings-toggle-slider:before{position:absolute;content:"";height:18px;width:18px;left:3px;bottom:3px;background-color:#fff;transition:.2s;border-radius:50%}.settings-toggle input:checked+.settings-toggle-slider{background-color:var(--primary)}.settings-toggle input:checked+.settings-toggle-slider:before{transform:translate(20px)}.settings-teacher-mode-label{display:inline-flex;align-items:center;gap:5px}.settings-teacher-mode-info{position:relative;display:inline-flex;align-items:center;color:var(--muted-foreground);cursor:help}.settings-teacher-mode-info:hover .settings-teacher-mode-tooltip{opacity:1;visibility:visible}.settings-teacher-mode-tooltip{position:absolute;bottom:calc(100% + 8px);left:0;background:var(--surface-overlay, #333);color:var(--text-inverse, #fff);font-size:12px;font-weight:400;padding:6px 10px;border-radius:var(--radius-sm, 4px);width:max-content;max-width:min(300px,calc(100vw - 40px));white-space:normal;opacity:0;visibility:hidden;transition:opacity .2s ease,visibility .2s ease;pointer-events:none;z-index:10}.settings-account-row--with-error{align-items:flex-start}.settings-account-row--with-error .settings-account-label{padding-top:4px}.settings-account-type-right{display:flex;flex-direction:column;align-items:flex-end;gap:6px}.settings-account-error{color:#dc2626;font-size:13px;margin:0;text-align:right}.settings-inline-edit{display:flex;align-items:center;gap:8px}.settings-inline-edit-input{font-size:14px;padding:4px 8px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--background);color:var(--foreground);width:180px}.settings-inline-edit-save,.settings-inline-edit-cancel{font-size:13px;padding:4px 10px;border:none;border-radius:var(--radius-sm);cursor:pointer}.settings-inline-edit-save{background:var(--primary);color:#fff}.settings-inline-edit-save:disabled{opacity:.6}.settings-inline-edit-cancel{background:transparent;color:var(--muted-foreground)}.settings-account-edit-btn{background:none;border:none;color:var(--muted-foreground);cursor:pointer;padding:2px;vertical-align:middle;display:inline-flex;align-items:center;opacity:.6;transition:opacity .15s}.settings-account-edit-btn:hover{opacity:1;color:var(--primary)}.settings-account-note{color:var(--muted-foreground);font-style:italic}.settings-success-banner{background:#d1fae5;border:1px solid #10b981;border-radius:var(--radius-md);padding:12px 16px;margin-bottom:20px;color:#065f46;font-size:14px;font-weight:500}.settings-members-section{margin-top:20px}.settings-members-title{font-size:16px;font-weight:600;margin:0 0 12px;color:var(--foreground)}.settings-members-section--locked{background:var(--card);border:1px solid var(--card-border);border-radius:var(--radius-lg);padding:20px;text-align:center}.settings-members-section--locked .settings-members-title{margin-bottom:8px}.settings-members-locked-text{font-size:14px;color:var(--muted-foreground);margin:0 0 16px}.settings-members-upgrade-btn{padding:10px 20px;border:1px solid var(--primary);border-radius:var(--radius-md);background:transparent;color:var(--primary);font-size:14px;font-weight:600;cursor:pointer;transition:all .2s ease}.settings-members-upgrade-btn:hover{background:#4f46e514}.settings-members-list{background:var(--card);border:1px solid var(--card-border);border-radius:var(--radius-lg);overflow:hidden;margin-bottom:12px}.settings-member-row{display:flex;justify-content:space-between;align-items:center;padding:12px 16px;border-bottom:1px solid var(--card-border)}.settings-member-row:last-child{border-bottom:none}.settings-member-email{font-size:14px;color:var(--foreground)}.settings-member-badge{font-size:12px;font-weight:500;padding:2px 8px;border-radius:12px}.settings-member-badge--owner{background:#4f46e51a;color:var(--primary)}.settings-member-badge--pending{background:#fef3c7;color:#92400e}.settings-member-remove{font-size:13px;padding:4px 10px;border:1px solid var(--card-border);border-radius:var(--radius-md);background:transparent;color:var(--muted-foreground);cursor:pointer;transition:all .2s ease}.settings-member-remove:hover{border-color:var(--error, #dc2626);color:var(--error, #dc2626)}.settings-member-confirm{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--muted-foreground)}.settings-member-confirm-yes{padding:4px 10px;border:none;border-radius:var(--radius-md);background:var(--error, #dc2626);color:#fff;font-size:13px;cursor:pointer}.settings-member-confirm-no{padding:4px 10px;border:1px solid var(--card-border);border-radius:var(--radius-md);background:transparent;color:var(--muted-foreground);font-size:13px;cursor:pointer}.settings-invite-form{display:flex;gap:8px;margin-top:12px}.settings-invite-input{flex:1;padding:10px 14px;font-size:14px;border:1px solid var(--card-border);border-radius:var(--radius-md);background:var(--card);color:var(--foreground);outline:none;transition:border-color .2s ease}.settings-invite-input:focus{border-color:var(--primary)}.settings-invite-btn{padding:10px 16px;border:none;border-radius:var(--radius-md);background:var(--primary);color:var(--primary-foreground);font-size:14px;font-weight:500;cursor:pointer;white-space:nowrap;transition:background .2s ease}.settings-invite-btn:hover:not(:disabled){background:var(--primary-hover)}.settings-invite-btn:disabled{opacity:.7;cursor:not-allowed}.settings-invite-error{font-size:13px;color:var(--error, #dc2626);margin:8px 0 0}.settings-invite-success{font-size:13px;color:#059669;margin:8px 0 0}.settings-export-section{margin-top:20px}.settings-export-row{display:flex;justify-content:space-between;align-items:center;gap:16px}.settings-export-title{font-size:16px;font-weight:600;margin:0 0 4px;color:var(--foreground)}.settings-export-description{font-size:13px;color:var(--muted-foreground);margin:0}.settings-export-section--locked{background:var(--card);border:1px solid var(--card-border);border-radius:var(--radius-lg);padding:20px;text-align:center}.settings-export-section--locked .settings-export-description{margin:0 0 16px}.settings-export-link{padding:8px 16px;border:1px solid var(--primary);border-radius:var(--radius-md);background:transparent;color:var(--primary);font-size:13px;font-weight:500;cursor:pointer;transition:all .2s ease}.settings-export-link:hover:not(:disabled){background:#4f46e514}.settings-export-link:disabled{opacity:.6;cursor:not-allowed}.settings-leave-btn{padding:12px 24px;border:1px solid var(--error, #dc2626);border-radius:var(--radius-md);background:transparent;color:var(--error, #dc2626);font-size:14px;font-weight:600;cursor:pointer;transition:all .2s ease}.settings-leave-btn:hover{background:var(--error, #dc2626);color:#fff}.settings-leave-confirm{background:var(--card);border:1px solid var(--error, #dc2626);border-radius:var(--radius-lg);padding:16px}.settings-leave-confirm-text{font-size:14px;color:var(--foreground);margin:0 0 12px}.settings-leave-confirm-actions{display:flex;gap:8px}.settings-leave-confirm-yes{padding:8px 16px;border:none;border-radius:var(--radius-md);background:var(--error, #dc2626);color:#fff;font-size:14px;font-weight:600;cursor:pointer}.settings-leave-confirm-no{padding:8px 16px;border:1px solid var(--card-border);border-radius:var(--radius-md);background:transparent;color:var(--muted-foreground);font-size:14px;cursor:pointer}.settings-support-locked{background:var(--card);border:1px solid var(--card-border);border-radius:var(--radius-lg);padding:20px;text-align:center}.settings-support-locked-text{font-size:14px;color:var(--muted-foreground);margin:0 0 16px}.settings-support-priority{background:linear-gradient(135deg,#6366f11a,#8b5cf61a);border:1px solid rgba(99,102,241,.2);border-radius:var(--radius-md);padding:10px 16px;margin-bottom:20px;font-size:13px;font-weight:600;color:var(--primary)}.settings-support-form{background:var(--card);border:1px solid var(--card-border);border-radius:var(--radius-lg);padding:24px}.settings-support-field{margin-bottom:16px;position:relative}.settings-support-label{display:block;font-size:13px;font-weight:500;color:var(--muted-foreground);margin-bottom:6px}.settings-support-input,.settings-support-select{width:100%;padding:10px 14px;font-size:14px;border:1px solid var(--card-border);border-radius:var(--radius-md);background:var(--card);color:var(--foreground);outline:none;box-sizing:border-box;transition:border-color .2s ease}.settings-support-input:focus,.settings-support-select:focus{border-color:var(--primary)}.settings-support-input:disabled{opacity:.6;cursor:not-allowed}.settings-support-select{appearance:auto}.settings-support-textarea{width:100%;padding:10px 14px;font-size:14px;border:1px solid var(--card-border);border-radius:var(--radius-md);background:var(--card);color:var(--foreground);outline:none;box-sizing:border-box;resize:vertical;min-height:120px;font-family:inherit;transition:border-color .2s ease}.settings-support-textarea:focus{border-color:var(--primary)}.settings-support-char-count{display:block;text-align:right;font-size:12px;color:var(--muted-foreground);margin-top:4px}.settings-support-error{font-size:13px;color:var(--error, #dc2626);margin:0 0 12px}.settings-support-submit{padding:12px 24px;border:none;border-radius:var(--radius-md);background:var(--primary);color:var(--primary-foreground);font-size:14px;font-weight:600;cursor:pointer;transition:background .2s ease}.settings-support-submit:hover:not(:disabled){background:var(--primary-hover)}.settings-support-submit:disabled{opacity:.6;cursor:not-allowed}.settings-support-success{background:var(--card);border:1px solid var(--card-border);border-radius:var(--radius-lg);padding:40px 24px;text-align:center}.settings-support-success-icon{color:#059669;margin-bottom:16px}.settings-support-success-text{font-size:16px;color:var(--foreground);margin:0 0 20px}.settings-support-another-btn{padding:10px 20px;border:1px solid var(--primary);border-radius:var(--radius-md);background:transparent;color:var(--primary);font-size:14px;font-weight:600;cursor:pointer;transition:all .2s ease}.settings-support-another-btn:hover{background:#4f46e514}.settings-delete-section{margin-top:32px;padding-top:24px;border-top:1px solid var(--card-border)}.settings-delete-title{font-size:16px;font-weight:600;margin:0 0 12px;color:var(--error, #dc2626)}.settings-delete-description{font-size:14px;color:var(--muted-foreground);margin:0 0 16px;line-height:1.5}.settings-delete-btn{padding:10px 20px;border:1px solid var(--error, #dc2626);border-radius:var(--radius-md);background:transparent;color:var(--error, #dc2626);font-size:14px;font-weight:600;cursor:pointer;transition:all .2s ease}.settings-delete-btn:hover{background:var(--error, #dc2626);color:#fff}.settings-delete-error{font-size:13px;color:var(--error, #dc2626);margin:8px 0 0}.settings-delete-code{background:var(--card);border:1px solid var(--card-border);border-radius:var(--radius-lg);padding:20px}.settings-delete-code-text{font-size:14px;color:var(--muted-foreground);margin:0 0 16px}.settings-delete-code-form{display:flex;gap:8px;margin-bottom:8px}.settings-delete-code-input{width:140px;padding:10px 14px;font-size:16px;border:1px solid var(--card-border);border-radius:var(--radius-md);background:var(--card);color:var(--foreground);outline:none;text-align:center;letter-spacing:.1em;transition:border-color .2s ease}.settings-delete-code-input:focus{border-color:var(--primary);box-shadow:0 0 0 3px #4f46e51a}.settings-delete-code-submit{padding:10px 16px;border:none;border-radius:var(--radius-md);background:var(--error, #dc2626);color:#fff;font-size:14px;font-weight:600;cursor:pointer;white-space:nowrap;transition:opacity .2s ease}.settings-delete-code-submit:hover:not(:disabled){opacity:.9}.settings-delete-code-submit:disabled{opacity:.6;cursor:not-allowed}.settings-delete-cancel-link{background:none;border:none;color:var(--muted-foreground);font-size:13px;cursor:pointer;padding:0;margin-top:8px}.settings-delete-cancel-link:hover{color:var(--foreground);text-decoration:underline}.settings-delete-pending{background:#fef3c7;border:1px solid #f59e0b;border-radius:var(--radius-md);padding:16px}.settings-delete-pending-text{font-size:14px;color:#92400e;margin:0}.settings-delete-confirmed{background:#d1fae5;border:1px solid #10b981;border-radius:var(--radius-md);padding:16px}.settings-delete-confirmed-text{font-size:14px;color:#065f46;margin:0}.unsubscribe-page{display:flex;justify-content:center;align-items:center;min-height:100vh;padding:1rem;background:#f5f5f5}.unsubscribe-card{background:#fff;border-radius:12px;padding:2rem;max-width:400px;text-align:center;box-shadow:0 2px 8px #0000001a}.unsubscribe-title{font-size:1.5rem;font-weight:600;color:#333;margin:0 0 1rem}.unsubscribe-message,.unsubscribe-loading{font-size:1rem;color:#666;margin:0}.unsubscribe-error{font-size:1rem;color:#c53030;margin:0}.invitation-page{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:40px 20px;background:var(--background);color:var(--foreground);font-family:var(--font-family)}.invitation-logo-link{margin-bottom:24px}.invitation-logo{width:120px;height:120px}.invitation-card{background:var(--card);border:1px solid var(--card-border);border-radius:var(--radius-md);padding:2rem;max-width:440px;width:100%;text-align:center}.invitation-title{font-size:1.5rem;font-weight:600;color:var(--foreground);margin:0 0 .5rem}.invitation-subtitle{font-size:1rem;color:var(--muted-foreground);margin:0 0 1.5rem}.invitation-message{font-size:1rem;color:var(--muted-foreground);margin:0 0 1rem}.invitation-loading{font-size:1rem;color:var(--muted-foreground);margin:0}.invitation-error{font-size:1rem;color:var(--error);margin:0}.invitation-blocker{background:#fef2f2;border:1px solid #ef4444;border-radius:var(--radius-md);padding:1rem;margin:0 0 1.5rem;font-size:.875rem;color:#991b1b}.invitation-actions{display:flex;gap:12px;justify-content:center;margin-top:1.5rem}.invitation-btn{padding:14px 24px;border:none;border-radius:var(--radius-md);font-size:1rem;font-weight:600;cursor:pointer;transition:background .2s ease}.invitation-btn:disabled{opacity:.7;cursor:not-allowed}.invitation-btn--primary{background:var(--primary);color:var(--primary-foreground)}.invitation-btn--primary:hover:not(:disabled){background:var(--primary-hover)}.invitation-btn--secondary{background:transparent;border:1px solid var(--card-border);color:var(--foreground);text-decoration:none}.invitation-btn--secondary:hover:not(:disabled){background:var(--card);text-decoration:none}.invitation-login-link{display:inline-block;margin-top:1.5rem;color:var(--primary);text-decoration:none;font-weight:500}.invitation-login-link:hover{text-decoration:underline}.invitation-overlay{position:fixed;inset:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000;padding:1rem}.invitation-modal{background:var(--card);border:1px solid var(--card-border);border-radius:var(--radius-md);padding:2rem;max-width:400px;width:100%;text-align:center}.invitation-modal__title{font-size:1.25rem;font-weight:600;color:var(--foreground);margin:0 0 .75rem}.invitation-modal__message{font-size:.875rem;color:var(--muted-foreground);margin:0 0 1.5rem;line-height:1.5}.invitation-modal__actions{display:flex;gap:12px;justify-content:center}@media(max-width:480px){.invitation-logo{width:100px;height:100px}}.join-page{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:40px 20px;background:var(--background);color:var(--foreground);font-family:var(--font-family)}.join-logo-link{margin-bottom:24px}.join-logo{width:120px;height:120px}.join-card{background:var(--card);border:1px solid var(--card-border);border-radius:var(--radius-md);padding:2rem;max-width:440px;width:100%;text-align:center}.join-title{font-size:1.5rem;font-weight:600;color:var(--foreground);margin:0 0 .5rem}.join-subtitle{font-size:1rem;color:var(--muted-foreground);margin:0 0 1.5rem}.join-message{font-size:1rem;color:var(--muted-foreground);margin:0 0 1rem;line-height:1.5}.join-loading{font-size:1rem;color:var(--muted-foreground);margin:0}.join-error{font-size:1rem;color:var(--error);margin:0}.join-form{display:flex;flex-direction:column;gap:16px;width:100%;max-width:320px;margin:0 auto}.join-input{padding:14px 18px;font-size:16px;border:1px solid var(--card-border);border-radius:var(--radius-md);background:var(--card);color:var(--foreground);outline:none;transition:border-color .2s ease,box-shadow .2s ease}.join-input:focus{border-color:var(--primary);box-shadow:0 0 0 3px #4f46e51a}.join-input::placeholder{color:var(--muted-foreground)}.join-btn{padding:14px 24px;border:none;border-radius:var(--radius-md);font-size:1rem;font-weight:600;cursor:pointer;transition:background .2s ease}.join-btn:disabled{opacity:.7;cursor:not-allowed}.join-btn--primary{background:var(--primary);color:var(--primary-foreground)}.join-btn--primary:hover:not(:disabled){background:var(--primary-hover)}.join-btn--secondary{background:transparent;border:1px solid var(--card-border);color:var(--foreground);text-decoration:none}.join-btn--secondary:hover:not(:disabled){background:var(--card);text-decoration:none}.join-actions{display:flex;gap:12px;justify-content:center;margin-top:1.5rem}.join-link{display:inline-block;margin-top:1rem;color:var(--primary);text-decoration:none;font-weight:500;font-size:.875rem;background:none;border:none;cursor:pointer}.join-link:hover{text-decoration:underline}.join-turnstile{display:flex;justify-content:center;min-height:65px;margin:4px 0}.join-note{font-size:.875rem;color:var(--muted-foreground);margin:0 0 1.5rem;text-align:center}.join-student-list{list-style:none;padding:0;margin:0 0 1rem;text-align:left}.join-student-item{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;border:1px solid var(--card-border);border-radius:var(--radius-md);margin-bottom:8px}.join-student-item:last-child{margin-bottom:0}.join-student-name{font-weight:500;color:var(--foreground)}.join-student-badge{font-size:.75rem;color:var(--muted-foreground);background:var(--background);padding:4px 8px;border-radius:var(--radius-sm, 4px)}.join-student-badge--enrolled{color:#16a34a;background:#f0fdf4}.join-student-note{font-size:.75rem;color:var(--muted-foreground);margin-top:4px}.join-student-info{display:flex;flex-direction:column}.join-inline-error{font-size:.875rem;color:var(--error);margin-top:8px;text-align:center}.join-upgrade-nudge{background:var(--background);border:1px solid var(--card-border);border-radius:var(--radius-md);padding:1rem;margin-top:1.5rem;font-size:.875rem;color:var(--muted-foreground);line-height:1.5}.join-upgrade-nudge a{color:var(--primary);text-decoration:none;font-weight:500}.join-upgrade-nudge a:hover{text-decoration:underline}.join-back{background:none;border:none;color:var(--primary);font-size:.875rem;cursor:pointer;margin-top:8px}.join-back:hover{text-decoration:underline}@media(max-width:480px){.join-logo{width:100px;height:100px}}.out-of-coins-overlay{position:fixed;inset:0;background:#000000b3;display:flex;align-items:center;justify-content:center;z-index:1000;padding:20px;font-family:var(--font-family, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif)}.out-of-coins-modal{background:var(--card, #ffffff);border-radius:var(--radius-lg, 12px);padding:32px 40px;text-align:center;max-width:400px;width:100%;box-shadow:var(--shadow-lg, 0 10px 40px rgba(0, 0, 0, .2))}.out-of-coins-icon{margin-bottom:16px;opacity:.8}.out-of-coins-icon svg{width:64px;height:64px}.out-of-coins-title{font-size:28px;font-weight:700;color:var(--foreground, #1a1a2e);margin:0 0 12px}.out-of-coins-message{font-size:16px;color:var(--muted-foreground, #64748b);margin:0 0 8px;line-height:1.5}.out-of-coins-subtext{font-size:14px;color:var(--muted-foreground, #64748b);margin:0 0 24px;font-style:italic}.out-of-coins-buttons{display:flex;flex-direction:column;gap:12px}.out-of-coins-button{padding:14px 32px;font-size:16px;font-weight:600;border:none;border-radius:var(--radius-md, 8px);background:var(--primary, #4f46e5);color:var(--primary-foreground, #ffffff);cursor:pointer;transition:background .2s ease,transform .1s ease}.out-of-coins-button:hover{background:var(--primary-hover, #4338ca)}.out-of-coins-button:active{transform:scale(.98)}.out-of-coins-button:focus{outline:2px solid var(--primary, #4f46e5);outline-offset:2px}.out-of-coins-button--secondary{background:transparent;border:1px solid var(--border, #e2e8f0);color:var(--muted-foreground, #64748b)}.out-of-coins-button--secondary:hover{background:var(--background-muted, #f8fafc);border-color:var(--muted-foreground, #64748b)}.out-of-coins-upgrade-button{padding:14px 32px;font-size:16px;font-weight:600;border:none;border-radius:var(--radius-md, 8px);background:linear-gradient(135deg,#f59e0b,#d97706);color:#fff;cursor:pointer;transition:transform .1s ease,box-shadow .2s ease}.out-of-coins-upgrade-button:hover{box-shadow:0 4px 12px #f59e0b66}.out-of-coins-upgrade-button:active{transform:scale(.98)}@media(max-width:480px){.out-of-coins-modal{padding:24px 20px}.out-of-coins-icon svg{width:48px;height:48px}.out-of-coins-title{font-size:24px}}.flashcard-container{height:100%;display:flex;flex-direction:column;align-items:center;padding:12px 20px;padding-bottom:calc(12px + env(safe-area-inset-bottom,0px));background:linear-gradient(180deg,#0a0a20,#1a2a4a);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;gap:10px;box-sizing:border-box;overflow-y:auto}.status-bar{display:flex;align-items:center;justify-content:space-between;width:100%;max-width:400px}.health-container{display:flex;gap:6px}.health-icon{width:32px;height:32px;filter:drop-shadow(0 0 8px rgba(74,144,217,.8));transition:transform .3s ease}.health-icon.lost{filter:drop-shadow(0 0 6px rgba(255,68,68,.6));animation:health-lost .5s ease-out}@keyframes health-lost{0%{transform:translateY(0) scale(1);opacity:1}50%{transform:translateY(20px) scale(.8);opacity:.5}to{transform:translateY(0) scale(1);opacity:.2}}.timer{font-size:28px;font-weight:700;color:#fff;text-shadow:0 0 10px rgba(74,144,217,.5)}.progress-track{width:100%;max-width:400px;height:6px;background:#ffffff1a;border-radius:3px}.progress{height:100%;background:#4a90d9;border-radius:3px;transition:width .1s linear,background .3s ease}.progress-count{font-size:16px;color:#8ab4f8}.flashcard{width:100%;max-width:400px;min-height:100px;max-height:280px;flex:1 1 auto;background:linear-gradient(135deg,#1a3a5a,#0a2a4a);border:3px solid #4a90d9;border-radius:20px;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:16px;box-shadow:0 8px 30px #0000004d;transition:transform .1s ease,border-color .2s ease,background .2s ease}.flashcard.correct{border-color:#4ad94a;background:linear-gradient(135deg,#1a4a3a,#0a3a2a)}.flashcard.wrong{border-color:#d94a4a;background:linear-gradient(135deg,#4a1a1a,#3a0a0a)}.flashcard.timeout{border-color:#d9a44a;background:linear-gradient(135deg,#4a3a1a,#3a2a0a);animation:timeout-pulse 1s ease-in-out infinite}@keyframes timeout-pulse{0%,to{box-shadow:0 8px 30px #0000004d}50%{box-shadow:0 8px 40px #d9a44a80}}.flashcard.shake{animation:shake .5s ease-in-out}@keyframes shake{0%,to{transform:translate(0)}10%,30%,50%,70%,90%{transform:translate(-10px)}20%,40%,60%,80%{transform:translate(10px)}}.problem{font-size:36px;font-weight:700;color:#fff;margin-bottom:20px;text-shadow:2px 2px 4px rgba(0,0,0,.3)}.answer{font-size:48px;font-weight:700;color:#ff0;text-shadow:2px 2px 4px rgba(0,0,0,.3);min-width:100px;text-align:center}.correct-answer{font-size:20px;color:#f66;margin-top:15px;padding:10px 15px;background:#ff646426;border-radius:8px;text-shadow:1px 1px 2px rgba(0,0,0,.3)}.flashcard.timeout .correct-answer{color:#fa4;background:#ffaa4426}.correct-answer.hidden{display:none}.skip-btn{padding:8px 24px;font-size:16px;font-weight:700;background:#6a4a4a;border:2px solid #9a6a6a;border-radius:8px;color:#fff;cursor:pointer;transition:all .2s ease}.skip-btn:hover{background:#8a5a5a;border-color:#ba8a8a}.skip-btn.hidden{display:none}.next-btn{padding:10px 32px;font-size:18px;font-weight:700;background:#d9a44a;border:2px solid #f0c070;border-radius:8px;color:#fff;cursor:pointer;transition:all .2s ease}.next-btn:hover{background:#e9b45a}.next-btn.hidden{display:none}.keypad-container{display:flex;justify-content:center;flex-shrink:0}.dom-keypad{display:grid;grid-template-columns:repeat(3,60px);gap:8px}.keypad-button{width:60px;height:60px}.game-over-overlay{position:fixed;inset:0;background:#0a0a20f2;display:flex;align-items:center;justify-content:center;z-index:1000}.game-over-overlay.hidden{display:none}.game-over-content{text-align:center;color:#fff}.game-over-content h1{font-size:48px;margin-bottom:30px}.game-over-content .stats{font-size:24px;margin-bottom:40px}.game-over-content .stats p{margin:10px 0}.game-over-content .buttons{display:flex;flex-direction:column;gap:15px;align-items:center}.game-over-content button{padding:15px 50px;font-size:20px;font-weight:700;border:2px solid;border-radius:8px;cursor:pointer;transition:all .2s ease;min-width:260px}.play-again-btn{background:#4a90d9;border-color:#6bb5ff;color:#fff}.play-again-btn:hover{background:#6bb5ff}.change-grade-btn{background:#3a7a4a;border-color:#5ab56a;color:#fff}.change-grade-btn:hover{background:#5ab56a}.primary-btn{background:#4a90d9;border-color:#6bb5ff;color:#fff}.primary-btn:hover{background:#6bb5ff}.retry-btn,.continue-btn{background:#4a90d9;border-color:#6bb5ff;color:#fff}.retry-btn:hover,.continue-btn:hover{background:#6bb5ff}.start-over-btn{background:#6a4a7a;border-color:#8a6a9a;color:#fff}.start-over-btn:hover{background:#8a6a9a}.level-interstitial{position:fixed;inset:0;background:#0a0a20f2;display:flex;align-items:center;justify-content:center;z-index:2000;opacity:0;transition:opacity .3s ease}.level-interstitial.visible{opacity:1}.level-interstitial .level-text{font-size:72px;font-weight:700;color:#fff;text-shadow:0 0 30px rgba(74,144,217,.8)}@media(max-width:480px){.game-over-content h1{font-size:36px}.game-over-content .stats{font-size:18px}}@media(max-height:600px){.flashcard-container{gap:6px;padding:6px 16px;padding-bottom:calc(6px + env(safe-area-inset-bottom,0px))}.health-icon{width:24px;height:24px}.timer{font-size:22px}.progress-count{font-size:14px}.progress-track{height:4px}.flashcard{min-height:80px;padding:10px}.problem{font-size:24px;margin-bottom:10px}.answer{font-size:32px}.correct-answer{font-size:16px;margin-top:8px;padding:6px 10px}.skip-btn{padding:6px 20px;font-size:14px;margin-top:-4px}.next-btn{padding:6px 20px;font-size:14px}.dom-keypad{grid-template-columns:repeat(3,48px);gap:6px}.keypad-button{width:48px;height:48px}}@media(orientation:landscape)and (max-height:500px){.flashcard-container.has-keypad{display:grid;grid-template-columns:1fr 1fr;grid-template-rows:auto auto 1fr auto;gap:6px 16px;overflow-y:hidden;padding-left:max(16px,env(safe-area-inset-left,0px));padding-right:max(16px,env(safe-area-inset-right,0px))}.flashcard-container.has-keypad .status-bar,.flashcard-container.has-keypad .progress-track{grid-column:1 / -1;max-width:none}.flashcard-container.has-keypad .flashcard{grid-column:1;grid-row:3 / 5;max-width:none;max-height:none;min-height:0}.flashcard-container.has-keypad .skip-btn,.flashcard-container.has-keypad .next-btn{grid-column:1;grid-row:4;justify-self:center}.flashcard-container.has-keypad .keypad-container{grid-column:2;grid-row:3 / 5;align-self:center;justify-self:center}}@font-face{font-family:Fredoka Variable;font-style:normal;font-display:swap;font-weight:300 700;src:url(/assets/fredoka-hebrew-wght-normal-DdnsCkLr.woff2) format("woff2-variations");unicode-range:U+0307-0308,U+0590-05FF,U+200C-2010,U+20AA,U+25CC,U+FB1D-FB4F}@font-face{font-family:Fredoka Variable;font-style:normal;font-display:swap;font-weight:300 700;src:url(/assets/fredoka-latin-ext-wght-normal-CYrqKuxd.woff2) format("woff2-variations");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Fredoka Variable;font-style:normal;font-display:swap;font-weight:300 700;src:url(/assets/fredoka-latin-wght-normal-DM6njrJ3.woff2) format("woff2-variations");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Fredoka;src:url(/assets/galaxy-guard/Fredoka-Variable.ttf) format("truetype");font-weight:100 900;font-display:swap}:root{--sab: env(safe-area-inset-bottom, 0px);--primary: #4F46E5;--primary-hover: #4338CA;--primary-foreground: #FFFFFF;--background: #FFFFFF;--background-muted: #F9FAFB;--card: #FFFFFF;--card-border: #E5E7EB;--foreground: #111827;--muted-foreground: #6B7280;--accent-orange: #F97316;--accent-blue: #3B82F6;--accent-green: #22C55E;--accent-purple: #A855F7;--accent-pink: #EC4899;--accent-yellow: #EAB308;--error: #EF4444;--success: #22C55E;--font-family: Inter, "Inter Fallback", system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--shadow-sm: 0 1px 2px 0 rgb(0 0 0 / .05);--shadow-md: 0 4px 6px -1px rgb(0 0 0 / .1), 0 2px 4px -2px rgb(0 0 0 / .1);--shadow-lg: 0 10px 15px -3px rgb(0 0 0 / .1), 0 4px 6px -4px rgb(0 0 0 / .1);--radius-md: 8px;--radius-lg: 12px;--radius-xl: 16px}*{margin:0;padding:0;box-sizing:border-box}html{height:100%}body{width:100%;min-height:100%;background-color:var(--background);overflow-y:auto;font-family:var(--font-family)}#app{width:100%;min-height:100%}button,.keypad-button{-webkit-user-select:none;user-select:none}body.with-app-header{--header-height: calc(56px + env(safe-area-inset-top, 0px)) }body.with-app-header.game-mode{overflow:hidden}body.with-app-header #app{margin-top:var(--header-height)}body.with-app-header.game-mode #app{position:fixed;top:var(--header-height);left:0;right:0;bottom:0;min-height:0;margin-top:0;overflow:hidden}body.game-mode{background-color:#0a0a20}.invite-code-banner{background:var(--primary);color:#fff;text-align:center;padding:10px 40px 10px 16px;font-size:15px;font-weight:500;position:relative}.landing-page .invite-code-banner{position:fixed;top:var(--nav-height);left:0;right:0;z-index:99}.invite-code-banner__dismiss{position:absolute;right:12px;top:50%;transform:translateY(-50%);background:none;border:none;color:#fff;font-size:18px;cursor:pointer;padding:4px;line-height:1;opacity:.8}.invite-code-banner__dismiss:hover{opacity:1}
