@import "https://fonts.googleapis.com/css2?family=Baloo+2:wght@500;600;700;800&family=Nunito+Sans:wght@400;600;700;800&display=swap";:root{--signa-teal-900:#0f3d2e;--signa-teal-700:#1f6f54;--signa-teal-600:#256b52;--signa-teal-500:#2f9c78;--signa-teal-100:#d7ebe2;--signa-mint-100:#e7f3ee;--signa-mint-50:#f2f8f5;--signa-amber-600:#d98e00;--signa-amber-500:#f4a300;--signa-amber-100:#fdecc4;--signa-coral-600:#d85a49;--signa-coral-500:#ef6a5a;--signa-coral-100:#fbe2de;--signa-cream-50:#fbf9f4;--signa-ink:#16241d;--signa-muted:#5c6b64;--signa-border:#dfe7e1;--signa-surface:#fff;--signa-radius-sm:10px;--signa-radius-md:16px;--signa-radius-lg:24px;--signa-shadow-sm:0 2px 6px #0f3d2e14;--signa-shadow-md:0 10px 24px #0f3d2e1f;--signa-shadow-lift:0 14px 32px #0f3d2e29;--font-display:"Baloo 2", "Segoe UI", system-ui, sans-serif;--font-body:"Nunito Sans", "Segoe UI", system-ui, sans-serif;font:17px/1.55 var(--font-body);letter-spacing:.01em;color:var(--signa-ink);background:var(--signa-cream-50);--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}@media (width<=640px){:root{font-size:16px}}*{box-sizing:border-box}html,body{width:100%;max-width:100%;min-height:100vh;overscroll-behavior-x:none;background:var(--signa-cream-50);min-height:100dvh;margin:0;overflow-x:hidden}#root{width:100%;max-width:100%;min-height:100vh;flex-direction:column;min-height:100dvh;display:flex;overflow-x:hidden}h1,h2,h3{font-family:var(--font-display);color:var(--signa-teal-900);letter-spacing:-.01em;margin:0 0 .5rem;font-weight:700}h1{font-size:2.1rem}@media (width<=640px){h1{font-size:1.7rem}}h2{font-size:1.4rem}p{color:var(--signa-muted);margin:0}a{color:var(--signa-teal-700);font-weight:700;text-decoration:none}a:hover{text-decoration:underline}button{font-family:var(--font-body)}:focus-visible{outline:3px solid var(--signa-amber-500);outline-offset:2px}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.001ms!important;animation-duration:.001ms!important;animation-iteration-count:1!important}}.loading-screen{z-index:9000;opacity:1;background:linear-gradient(#3da2d6 0%,#8ecbe9 50%,#bfe6f5 100%);transition:opacity .28s cubic-bezier(.4,0,.2,1);animation:.18s ease-out forwards loading-screen-in;position:fixed;inset:0;overflow:hidden}@keyframes loading-screen-in{0%{opacity:0}to{opacity:1}}.loading-screen-leaving{visibility:hidden;pointer-events:none;transition:opacity .28s cubic-bezier(.4,0,.2,1),visibility .28s;opacity:0!important}.loading-stage{z-index:1;pointer-events:none;position:absolute;inset:0;overflow:hidden}.loading-stage canvas{display:block}.loading-panel{z-index:2;border:3px solid var(--arcade-ink,#0f3d2e);width:min(460px,86vw);box-shadow:0 6px 0 var(--arcade-ink,#0f3d2e), 0 18px 36px #0f3d2e57;background:#fffffff7;border-radius:16px;flex-direction:column;align-items:center;gap:.85rem;padding:1.25rem 1.5rem 1.35rem;display:flex;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.loading-caption{font-family:var(--font-display);letter-spacing:.14em;text-transform:uppercase;color:var(--arcade-ink,#0f3d2e);align-items:baseline;gap:.15rem;margin:0;font-size:1.15rem;font-weight:800;display:flex}.loading-dots{gap:.18rem;display:inline-flex}.loading-dots span{background:var(--arcade-ink,#0f3d2e);border-radius:50%;width:5px;height:5px;animation:1.1s ease-in-out infinite loading-dot}.loading-dots span:nth-child(2){animation-delay:.16s}.loading-dots span:nth-child(3){animation-delay:.32s}@keyframes loading-dot{0%,60%,to{opacity:.2;transform:translateY(0)}30%{opacity:1;transform:translateY(-3px)}}.loading-track{border:3px solid var(--arcade-ink,#0f3d2e);background:#dfe7e1;border-radius:999px;width:100%;height:22px;margin:.55rem 1.6rem .15rem 0;position:relative;box-shadow:inset 0 3px #0f3d2e1f}.loading-track-fill{background:linear-gradient(90deg, var(--signa-amber-500,#f4a300), #ffc95c);transform-origin:0;border-radius:999px;transition:transform .12s linear;position:absolute;inset:0;transform:scaleX(0)}.loading-runner{filter:drop-shadow(0 2px #0f3d2e59);font-size:1.35rem;line-height:1;transition:left .12s linear;animation:.42s ease-in-out infinite loading-runner-hop;position:absolute;top:50%;left:0;transform:translate(-50%,-55%)}@keyframes loading-runner-hop{0%,to{margin-top:0}50%{margin-top:-5px}}.loading-flag{font-size:1.2rem;line-height:1;position:absolute;top:50%;left:100%;transform:translate(.35rem,-55%)}.loading-tip{text-align:left;color:var(--signa-muted,#5c6b64);align-items:baseline;gap:.5rem;margin:0;font-size:.86rem;line-height:1.4;display:flex}.loading-tip-label{font-family:var(--font-display);letter-spacing:.16em;text-transform:uppercase;color:var(--arcade-ink,#0f3d2e);background:var(--signa-amber-100,#fdecc4);border:2px solid var(--arcade-ink,#0f3d2e);border-radius:999px;flex:none;padding:.1rem .5rem;font-size:.68rem;font-weight:800}@media (width<=520px){.loading-panel{gap:.7rem;padding:1rem 1.1rem 1.15rem}.loading-caption{font-size:1rem}}@media (prefers-reduced-motion:reduce){.loading-dots span,.loading-runner{animation:none}.loading-dots span{opacity:.6}.loading-track-fill,.loading-runner,.loading-screen{transition:none}}.logout-fixed{font-family:var(--font-body,"Segoe UI", sans-serif);border:2px solid var(--signa-border,#dfe7e1);color:var(--signa-teal-700,#1f6f54);background:var(--signa-surface,#fff);box-shadow:var(--signa-shadow-sm,0 2px 6px #0f3d2e14);cursor:pointer;z-index:100;border-radius:999px;padding:.55rem 1.1rem;font-size:.85rem;font-weight:700;transition:border-color .15s,background .15s;position:fixed;top:1rem;right:1rem}.logout-fixed:hover{border-color:var(--signa-teal-500,#2f9c78);background:var(--signa-mint-50,#f2f8f5)}.theme-music-toggle{z-index:200;cursor:pointer;border:3px solid var(--arcade-ink,#0f3d2e);width:42px;height:42px;box-shadow:0 4px 0 var(--arcade-ink,#0f3d2e);background:#fffffff0;border-radius:50%;place-items:center;padding:0;font-size:1.1rem;line-height:1;transition:transform 80ms,box-shadow 80ms,background .15s;display:grid;position:fixed;bottom:1rem;left:1rem}.theme-music-toggle:hover{background:var(--signa-amber-100,#fdecc4)}.theme-music-toggle:active{box-shadow:0 0 0 var(--arcade-ink,#0f3d2e);transform:translateY(4px)}@media (width<=520px){.theme-music-toggle{width:38px;height:38px;bottom:.6rem;left:.6rem}}.rotate-notice{z-index:9999;padding:env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left);background:linear-gradient(#0f3d2e 0%,#16241d 100%);place-items:center;display:grid;position:fixed;inset:0}.rotate-notice-inner{text-align:center;flex-direction:column;align-items:center;gap:1.4rem;padding:1.5rem;display:flex}.rotate-phone{width:clamp(120px,40vw,180px);height:auto;animation:2.6s ease-in-out infinite rotate-phone-turn}.rotate-phone-body{fill:none;stroke:#fff;stroke-width:4px}.rotate-phone-screen{fill:#ffffff29}.rotate-phone-dot{fill:#fff}@keyframes rotate-phone-turn{0%,18%{transform:rotate(0)}42%,78%{transform:rotate(-90deg)}to{transform:rotate(0)}}.rotate-notice-text{font-family:var(--font-display,"Baloo 2", sans-serif);color:#fff;max-width:18ch;margin:0;font-size:clamp(1.05rem,5vw,1.4rem);font-weight:800;line-height:1.35}@media (prefers-reduced-motion:reduce){.rotate-phone{animation:none;transform:rotate(-90deg)}}.scene-backdrop{z-index:1;pointer-events:none;will-change:transform;width:100%;height:100dvh;position:absolute;top:0;left:0;overflow:hidden;transform:translateZ(0)}.scene-backdrop canvas{display:block}.scene-backdrop-flat{background:linear-gradient(#3da2d6 0%,#9ccdf0 45%,#bfe6f5 72%,#4caf50 86%,#c08347 100%)}.scene-scrim{z-index:2;pointer-events:none;will-change:transform;background:radial-gradient(at 50% 45%,#0f3d2e52 0%,#0000 62%);width:100%;height:100dvh;position:absolute;top:0;left:0;transform:translateZ(0)}.install-app-btn{font-family:var(--font-body,"Segoe UI", sans-serif);color:#532d0c;box-shadow:var(--signa-shadow-sm,0 2px 6px #0f3d2e14), inset 0 1px 0 #fff9;cursor:pointer;touch-action:manipulation;white-space:nowrap;background:linear-gradient(#ffdf85 0%,#f4a300 100%);border:2px solid #b8741a;border-radius:999px;align-items:center;gap:.4rem;padding:.55rem 1rem;font-size:.85rem;font-weight:700;transition:transform .15s,box-shadow .15s,filter .15s;display:inline-flex}.install-app-btn:hover{filter:brightness(1.06);transform:translateY(-1px);box-shadow:0 4px 10px #b8741a47}.install-app-btn:active{filter:brightness(.96);transform:translateY(1px)}.install-app-icon{font-size:1rem;line-height:1}.install-app-label{letter-spacing:.01em}.student-top-bar,.login-top-bar{top:max(1rem, env(safe-area-inset-top));right:max(1rem, env(safe-area-inset-right));z-index:100;align-items:center;gap:.55rem;display:flex;position:fixed}.student-top-bar .logout-fixed{position:static!important;top:auto!important;right:auto!important}.install-modal-overlay{-webkit-backdrop-filter:blur(4px);z-index:2500;background:#0a140fb8;justify-content:center;align-items:center;padding:1rem;animation:.25s ease-out installFadeIn;display:flex;position:fixed;inset:0}@keyframes installFadeIn{0%{opacity:0}to{opacity:1}}.install-modal-card{flex-direction:column;width:min(440px,94vw);max-height:min(420px,90vh,90dvh);padding:.9rem .8rem 1.4rem;animation:.28s cubic-bezier(.18,.9,.3,1.2) installZoomIn;display:flex}@keyframes installZoomIn{0%{opacity:0;transform:scale(.92)}to{opacity:1;transform:scale(1)}}.install-modal-paper{text-align:center;flex-direction:column;align-items:center;gap:.6rem;padding:.9rem 1.1rem 1rem;display:flex;overflow-y:auto}.install-modal-crest{margin-bottom:.15rem;font-size:2.2rem;display:block}.install-modal-title{font-family:var(--font-display,inherit);color:#4a2608;margin:0;font-size:1.25rem;font-weight:800;line-height:1.2}.install-modal-subtitle{color:#66411f;margin:0;font-size:.8rem;line-height:1.35}.install-steps-list{text-align:left;flex-direction:column;gap:.5rem;width:100%;margin:.4rem 0;display:flex}.install-step-item{background:#ffffffa6;border:1.5px solid #d4b078;border-radius:10px;align-items:flex-start;gap:.65rem;padding:.5rem .65rem;display:flex}.install-step-num{color:#3b1d03;background:#f4a300;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:24px;height:24px;font-size:.8rem;font-weight:800;display:flex}.install-step-text{color:#3d220a;font-size:.8rem;line-height:1.35}.install-step-badge{vertical-align:middle;background:#ecd599;border:1px solid #9e6428;border-radius:4px;margin:0 .15rem;padding:.05rem .35rem;font-size:.85rem;font-weight:700;display:inline-block}.install-modal-ok-btn{color:#064e3b;cursor:pointer;touch-action:manipulation;background:linear-gradient(#4ade80 0%,#22c55e 100%);border:2px solid #15803d;border-radius:999px;width:100%;margin-top:.2rem;padding:.55rem 1rem;font-size:.95rem;font-weight:800;box-shadow:0 3px 6px #0000002e}.install-modal-ok-btn:active{background:#16a34a;transform:translateY(1px)}@media (orientation:landscape) and (height<=560px){.student-top-bar,.login-top-bar{top:max(.75rem, env(safe-area-inset-top,0px) + .45rem)!important;right:max(.85rem, env(safe-area-inset-right,0px) + .45rem)!important;gap:.4rem!important}.install-app-btn{min-height:32px!important;padding:.3rem .75rem!important;font-size:.78rem!important}.install-modal-card{width:min(460px,92vw)!important;max-height:min(295px,92vh,92dvh)!important;padding:.5rem .7rem .8rem!important}.install-modal-paper{gap:.35rem!important;padding:.45rem .8rem!important}.install-modal-crest{margin-bottom:0!important;font-size:1.5rem!important}.install-modal-title{font-size:.98rem!important}.install-modal-subtitle{font-size:.7rem!important}.install-steps-list{gap:.3rem!important;margin:.2rem 0!important}.install-step-item{gap:.45rem!important;padding:.32rem .55rem!important}.install-step-num{width:20px!important;height:20px!important;font-size:.7rem!important}.install-step-text{font-size:.72rem!important;line-height:1.25!important}.install-modal-ok-btn{margin-top:.1rem!important;padding:.38rem .8rem!important;font-size:.82rem!important}}.auth-page{background:radial-gradient(circle at 12% 18%, var(--signa-mint-100) 0%, transparent 42%), radial-gradient(circle at 88% 82%, var(--signa-amber-100) 0%, transparent 38%), var(--signa-cream-50);flex:1;justify-content:center;align-items:center;padding:2.5rem 1rem;display:flex}.auth-form{background:var(--signa-surface);border:1px solid var(--signa-border);border-radius:var(--signa-radius-lg);width:100%;max-width:380px;box-shadow:var(--signa-shadow-md);flex-direction:column;gap:.9rem;padding:2.25rem 2rem;display:flex}.auth-form h1{text-align:center;margin-bottom:.15rem}.auth-form h1:before{content:"✋";filter:grayscale()brightness(0)invert(64%)sepia(70%)saturate(900%)hue-rotate(1deg);margin-bottom:.4rem;font-size:1.6rem;display:block}.auth-form label{color:var(--signa-teal-900);margin-bottom:-.35rem;font-size:.85rem;font-weight:700}.auth-form input{font-size:1rem;font-family:var(--font-body);border:2px solid var(--signa-border);border-radius:var(--signa-radius-sm);background:var(--signa-mint-50);color:var(--signa-ink);padding:.7rem .85rem;transition:border-color .15s}.auth-form input:focus{border-color:var(--signa-teal-500);background:var(--signa-surface);outline:none}.password-input-wrap{align-items:center;width:100%;display:flex;position:relative}.password-input-wrap input{width:100%;padding-right:2.5rem!important}.auth-form .password-toggle-btn,.password-toggle-btn{color:var(--signa-teal-800);opacity:.65;border-radius:var(--signa-radius-sm);z-index:2;-webkit-tap-highlight-color:transparent;-webkit-user-select:none;user-select:none;line-height:0;transition:opacity .15s,color .15s;width:2.6rem!important;max-width:2.6rem!important;height:100%!important;box-shadow:none!important;cursor:pointer!important;min-height:unset!important;background:0 0!important;border:none!important;justify-content:center!important;align-items:center!important;margin:0!important;padding:0!important;display:inline-flex!important;position:absolute!important;inset:0 .35rem 0 auto!important;transform:none!important}.password-toggle-btn:hover{opacity:1;color:var(--signa-teal-950)}.password-toggle-btn:active,.password-toggle-btn:focus,.password-toggle-btn:focus-visible{box-shadow:none!important;outline:none!important;transform:none!important}.password-toggle-btn:active .password-toggle-icon{transform:scale(.88)}.password-toggle-icon{pointer-events:none;width:1.25rem;height:1.25rem;transition:transform .1s;display:block}.auth-form button[type=submit]{font-size:1rem;font-family:var(--font-display);letter-spacing:.01em;color:#fff;background:var(--signa-teal-700);cursor:pointer;box-shadow:var(--signa-shadow-sm);border:none;border-radius:999px;margin-top:.4rem;padding:.75rem;font-weight:700;transition:background .15s,transform 80ms}.auth-form button[type=submit]:active:not(:disabled){transform:translateY(1px)}.auth-form button[type=submit]:disabled{opacity:.6;cursor:not-allowed}.auth-form p{text-align:center;margin-top:.25rem;font-size:.9rem}.auth-error{color:var(--signa-coral-600);background:var(--signa-coral-100);border-radius:var(--signa-radius-sm);text-align:center;padding:.6rem .75rem;font-size:.88rem;font-weight:700}.auth-form p:not(.auth-error){text-align:left;color:var(--signa-muted)}.auth-form button[type=button]:not(.password-toggle-btn){width:100%;font-family:var(--font-display);color:#fff;background:var(--signa-amber-500);border-radius:var(--signa-radius-md);cursor:pointer;box-shadow:var(--signa-shadow-sm);border:none;margin-top:.5rem;padding:.85rem;font-size:1.05rem;font-weight:700;transition:background .15s,transform 80ms}.auth-form button[type=button]:not(.password-toggle-btn):hover{background:var(--signa-amber-600)}.auth-form button[type=button]:not(.password-toggle-btn):active{transform:translateY(1px)}.auth-alt-door{opacity:.85;margin-top:-.35rem;font-size:.85rem}.world-scene{background:linear-gradient(#3da2d6 0%,#8ecbe9 50%,#bfe6f5 100%);width:100%;min-height:100dvh;position:relative;overflow:hidden}.world-scene .auth-page{z-index:5;background:0 0;width:100%;min-height:100dvh;position:relative}.login-frame{flex-direction:column;width:min(430px,94vw);min-height:550px;padding:clamp(2.6rem,8.5vw,3.4rem) clamp(1.5rem,6vw,2.2rem) clamp(3.2rem,11vw,4.4rem);display:flex}.login-paper{flex-direction:column;flex:1;justify-content:center;padding:clamp(1.8rem,6vw,2.4rem) clamp(1.1rem,4.5vw,1.6rem);display:flex}.login-frame .auth-form{width:100%;max-width:none;box-shadow:none;background:0 0;border:none;margin:0;padding:0}.login-frame .auth-form h1{color:#5a3921;text-shadow:0 2px #fff9}.login-crest-badge{z-index:10;pointer-events:none;justify-content:center;align-items:center;display:flex;position:absolute;top:14px;left:50%;transform:translate(-50%,-42%)}.login-app-logo{object-fit:contain;filter:drop-shadow(0 10px 22px #00000059);-webkit-user-select:none;user-select:none;pointer-events:none;width:165px;height:165px;animation:2.2s ease-in-out infinite arcade-mark-bob}@media (prefers-reduced-motion:reduce){.login-app-logo{animation:none}}.login-frame .auth-form .arcade-badge{z-index:6;margin:1.65rem 0 .75rem;position:relative}.login-frame .auth-form label{color:#6b4a2f}.login-frame .auth-form input{background:#ffffffd1;border-color:#7a5636;box-shadow:inset 0 3px #7a563624}.login-frame .auth-form input:focus{border-color:var(--signa-amber-500)}.login-frame .auth-form .password-toggle-btn,.login-frame .password-toggle-btn{color:#7a5636;width:2.6rem!important;max-width:2.6rem!important;left:auto!important;right:.35rem!important}.login-frame .auth-form .password-toggle-btn:hover,.login-frame .password-toggle-btn:hover{color:#432818}.login-frame .auth-form p,.login-frame .auth-form a{color:#6b4a2f}.login-frame .auth-form a{text-decoration:underline}.login-form-hidden{visibility:hidden;opacity:0}.login-form-in{animation:.62s cubic-bezier(.34,1.56,.64,1) both login-form-drop}@keyframes login-form-drop{0%{opacity:0;transform:translateY(-38px)scale(.9)}to{opacity:1;transform:translateY(0)scale(1)}}@media (prefers-reduced-motion:reduce){.login-form-in{animation:none}}.card-walker{z-index:40;pointer-events:none;contain:strict;position:fixed;inset:0;overflow:hidden}.card-walker canvas{pointer-events:none;max-width:none;display:block}.avatar-img{object-fit:cover;image-rendering:auto;-webkit-user-select:none;user-select:none;border-radius:50%;flex-shrink:0;width:38px;max-width:100%;height:38px;max-height:100%;display:block}.student-profile-fixed{z-index:100;border:2px solid var(--signa-border);background:var(--signa-surface);width:3.5rem;height:3.5rem;box-shadow:var(--signa-shadow-sm);cursor:pointer;border-radius:999px;justify-content:center;align-items:center;transition:transform .15s,box-shadow .15s,border-color .15s;display:flex;position:fixed;top:1rem;left:1rem}.student-profile-fixed:hover{box-shadow:var(--signa-shadow-md);border-color:var(--signa-teal-500);transform:translateY(-2px)}.student-profile-avatar{border-radius:999px;width:2.9rem;height:2.9rem}.student-profile-backdrop{z-index:200;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#0f3d2e47;justify-content:center;align-items:center;padding:1.25rem;display:flex;position:fixed;inset:0}.student-profile-modal{background:var(--signa-surface);border-radius:var(--signa-radius-xl,28px);border:1px solid var(--signa-border);width:min(600px,100%);max-height:calc(100vh - 3rem);box-shadow:var(--signa-shadow-lift), 0 24px 48px #0f3d2e2e;padding:1.75rem 1.5rem 1.5rem;position:relative;overflow-y:auto}.student-profile-modal h2{font-family:var(--font-display);color:var(--signa-teal-900);margin:0 0 .15rem;font-size:1.3rem}.student-profile-subtitle{color:var(--signa-muted);margin:0 0 1.1rem;font-size:.85rem;font-weight:600}.student-profile-close{background:var(--signa-mint-50);width:2.1rem;height:2.1rem;color:var(--signa-teal-700);cursor:pointer;box-shadow:var(--signa-shadow-sm);border:none;border-radius:999px;justify-content:center;align-items:center;font-size:1.2rem;line-height:1;display:flex;position:absolute;top:1.1rem;right:1rem}.student-profile-close:hover{background:var(--signa-mint-100)}.student-avatar-grid{grid-template-columns:repeat(6,1fr);gap:.55rem;margin-bottom:1.25rem;display:grid}.student-avatar-option{aspect-ratio:1;border-radius:var(--signa-radius-md);border:2px solid var(--signa-border);background:var(--signa-mint-50);cursor:pointer;justify-content:center;align-items:center;padding:0;transition:border-color .15s,transform .15s,background .15s;display:flex;overflow:hidden}.student-avatar-option .avatar-img{border-radius:calc(var(--signa-radius-md) - 4px);width:100%;height:100%}.student-avatar-option{box-sizing:border-box}.student-avatar-option:hover{border-color:var(--signa-teal-500)}.student-avatar-option.is-selected{border-color:var(--signa-teal-600);border-width:4px;box-shadow:0 0 0 3px #2f9c7838}.student-profile-actions{border-top:1px solid var(--signa-border);justify-content:flex-end;gap:.6rem;margin-top:1.25rem;padding-top:1rem;display:flex}.student-profile-actions button{font-family:var(--font-display);cursor:pointer;border:1px solid #0000;border-radius:999px;padding:.65rem 1.3rem;font-size:.88rem;font-weight:800}.student-profile-actions button[type=submit]{color:#fff;background:var(--signa-teal-700);box-shadow:0 10px 20px #2f977829}.student-profile-actions button[type=button]{color:var(--signa-teal-900);background:var(--signa-mint-100);border:1px solid var(--signa-border)}.student-profile-actions button:disabled{opacity:.55;cursor:not-allowed}@media (width<=480px){.student-avatar-grid{grid-template-columns:repeat(4,1fr)}}.student-profile-details{border-top:1px solid var(--signa-border);margin-bottom:1.25rem;padding-top:1rem}.student-profile-legend{font-family:var(--font-display), "Baloo 2", sans-serif;color:var(--signa-teal-900);margin:0 0 .6rem;font-size:.95rem;font-weight:700}.student-detail-list{flex-direction:column;gap:.3rem;margin:0;display:flex}.student-detail-row{border-radius:var(--signa-radius-sm,10px);background:var(--signa-mint-50);align-items:baseline;gap:.75rem;padding:.4rem .65rem;display:flex}.student-detail-row dt{color:var(--signa-muted);flex:0 0 7.5rem;font-size:.78rem;font-weight:700}.student-detail-row dd{min-width:0;color:var(--signa-teal-900);overflow-wrap:anywhere;flex:1;margin:0;font-size:.9rem;font-weight:600}@media (width<=480px){.student-detail-row dt{flex-basis:5.5rem}}.learn-page{flex:1;width:100%;max-width:760px;margin:0 auto;padding:1rem 1.25rem 2.5rem}.game-world-scene{background:linear-gradient(#bfe6f5 0%,#d9f1fa 40%,#eaf8ea 75%,#cdeecb 100%);width:100%;min-height:100dvh;position:relative;overflow:hidden}.game-world-scene>.learn-page{z-index:5;position:relative}.learn-header{justify-content:space-between;align-items:flex-start;gap:1rem;margin-bottom:1rem;display:flex}.learn-header h1,.learn-header h2{margin-bottom:0}.learn-back{background:var(--signa-surface);border:2px solid var(--signa-border);color:var(--signa-teal-700);cursor:pointer;font-family:var(--font-body);border-radius:999px;padding:.5rem .9rem;font-size:.85rem;font-weight:700;transition:border-color .15s,background .15s}.learn-back:hover{border-color:var(--signa-teal-500);background:var(--signa-mint-50)}.learn-header .learn-back{z-index:100;position:fixed;top:1rem;left:1rem}.camera-status{text-align:center;color:var(--signa-teal-700);background:var(--signa-mint-100);border-radius:999px;margin:-.75rem auto 1.25rem;padding:.4rem .9rem;font-size:.85rem;font-weight:700;display:inline-block}.card-grid{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:1rem;display:grid}.card{border-radius:var(--signa-radius-md);border:2px solid var(--signa-border);text-align:center;background:var(--signa-surface);cursor:pointer;box-shadow:var(--signa-shadow-sm);padding:1.1rem 1rem;transition:border-color .15s,box-shadow .15s,transform .1s}.card:hover:not(.card-locked){border-color:var(--signa-teal-500);box-shadow:var(--signa-shadow-md);transform:translateY(-2px)}.card-title{font-family:var(--font-display);color:var(--signa-teal-900);margin:.3rem 0;font-size:1.3rem;font-weight:700}.card-subtitle{color:var(--signa-muted);font-size:.8rem;font-weight:600}.card-locked{opacity:.55;cursor:not-allowed;background:var(--signa-mint-50)}.card-passed{border-color:var(--signa-teal-500);background:var(--signa-mint-50)}.card-passed .card-title:after{content:" ✋"}.lock-icon{color:var(--signa-muted);font-size:1.4rem}.progress-bar{background:var(--signa-border);border-radius:999px;height:8px;margin-top:.6rem;overflow:hidden}.progress-bar-fill{background:var(--signa-teal-500);border-radius:999px;height:100%}.lesson-box{border-radius:var(--signa-radius-lg);border:2px solid var(--signa-border);background:var(--signa-surface);box-shadow:var(--signa-shadow-md);text-align:center;width:min(900px,96%);max-width:900px;margin:0 auto;padding:2.5rem 2rem}.lesson-video-frame{background:linear-gradient(180deg, var(--signa-cream-50), var(--signa-mint-50));border:2px solid var(--signa-border);border-radius:calc(var(--signa-radius-lg) + 8px);flex-direction:column;justify-content:center;align-items:center;gap:1rem;width:min(860px,100%);min-height:360px;margin-bottom:1.75rem;padding:2.25rem;display:flex;box-shadow:inset 0 0 0 1px #10503c14}.lesson-video-frame p{max-width:560px;color:var(--signa-ink);margin:0;line-height:1.5}.lesson-video{border-radius:var(--signa-radius-lg);background:#0d1a14;outline:none;width:100%;max-height:460px}.quest-path{border-radius:var(--signa-radius-lg);border:2px solid var(--signa-border);background:linear-gradient(160deg, var(--signa-amber-100) 0%, var(--signa-cream-50) 100%);box-shadow:var(--signa-shadow-md);margin:1.75rem 0 1.5rem;padding:2.75rem 1.5rem 1.75rem}.quest-stones{flex-wrap:wrap;justify-content:center;align-items:center;gap:1.1rem;display:flex}.quest-stone-wrap{justify-content:center;align-items:center;display:flex;position:relative}.quest-stone{width:52px;height:52px;font-family:var(--font-display);background:var(--signa-surface);border:3px solid var(--signa-border);color:var(--signa-muted);border-radius:50%;justify-content:center;align-items:center;font-size:1.1rem;font-weight:700;display:flex;box-shadow:0 3px #0000001f}.quest-stone-passed{background:var(--signa-teal-500);border-color:var(--signa-teal-700);color:#fff}.quest-stone-missed{background:var(--signa-coral-100);border-color:var(--signa-coral-500);color:var(--signa-coral-600)}.quest-stone-current{background:var(--signa-amber-100);border-color:var(--signa-amber-500);color:var(--signa-amber-600);animation:1.4s ease-in-out infinite quest-pulse}@keyframes quest-pulse{0%,to{transform:scale(1)}50%{transform:scale(1.08)}}.quest-walker{filter:drop-shadow(0 3px 2px #00000040);font-size:1.6rem;position:absolute;top:-34px}.quest-walker-stumble{animation:.45s quest-stumble}@keyframes quest-stumble{0%{transform:rotate(0)translate(0)}30%{transform:rotate(-18deg)translate(-6px)}60%{transform:rotate(10deg)translate(4px)}to{transform:rotate(0)translate(0)}}.quest-castle{opacity:.5;filter:grayscale();font-size:2.4rem;transition:opacity .3s,filter .3s}.quest-castle-reached{opacity:1;filter:none;animation:1s ease-in-out 2 quest-pulse}.level-start-card{border-radius:var(--signa-radius-lg);border:2px solid var(--signa-border);background:var(--signa-surface);box-shadow:var(--signa-shadow-md);text-align:center;max-width:420px;margin:0 auto;padding:2rem 1.75rem}.level-start-goal-label{font-family:var(--font-display);color:var(--signa-teal-900);margin-bottom:.75rem;font-size:1.1rem;font-weight:700}.level-start-chips{flex-wrap:wrap;justify-content:center;gap:.5rem;margin-bottom:.75rem;display:flex}.level-start-chip{width:40px;height:40px;font-family:var(--font-display);background:var(--signa-border);color:var(--signa-muted);border:2px solid #0000;border-radius:50%;justify-content:center;align-items:center;font-size:1rem;font-weight:700;display:inline-flex}.level-start-chip-passed{background:var(--signa-teal-500);color:#fff}.level-start-chip-missed{background:var(--signa-coral-500);color:#fff}.level-start-chip-unlocked,.level-start-chip-in_progress{background:var(--signa-amber-100);color:var(--signa-amber-600);border-color:var(--signa-amber-500)}.level-start-play{width:100%;font-family:var(--font-display);color:#fff;background:linear-gradient(180deg, var(--signa-teal-500) 0%, var(--signa-teal-700) 100%);border:3px solid var(--signa-teal-900);border-radius:var(--signa-radius-md);cursor:pointer;box-shadow:inset 0 2px 0 #ffffff4d, inset 0 -3px 0 #0003, 0 4px 0 var(--signa-teal-900), 0 8px 14px #0f3d2e40;margin-top:1.5rem;padding:.9rem;font-size:1.15rem;font-weight:700;transition:transform 80ms}.level-start-play:active:not(:disabled){transform:translateY(3px)}.level-start-play:disabled{opacity:.5;cursor:not-allowed;background:var(--signa-border);box-shadow:none;border-color:var(--signa-border)}.play-area{border-radius:var(--signa-radius-lg);background:repeating-linear-gradient(#ffffff0d 0 2px,#0000 2px 34px),linear-gradient(160deg,#a5693c 0%,#8a5230 55%,#7a4526 100%);border:10px solid #6b3c22;height:340px;margin:1.75rem 0 1.5rem;position:relative;overflow:hidden;box-shadow:inset 0 0 0 4px #ffd69e2e,inset 0 3px 10px #00000059,0 12px 26px #4a281447}.play-area:before{content:"✋";background:var(--signa-amber-500);z-index:2;border:4px solid #6b3c22;border-radius:50%;justify-content:center;align-items:center;width:42px;height:42px;font-size:1.2rem;display:flex;position:absolute;top:-20px;left:50%;transform:translate(-50%);box-shadow:0 3px 6px #00000040}.bubble{font-family:var(--font-display);color:var(--signa-teal-900);opacity:.95;background:linear-gradient(160deg, var(--signa-teal-100) 0%, var(--signa-mint-100) 100%);border:2px solid #fffc;border-radius:50%;justify-content:center;align-items:center;font-weight:700;display:flex;position:absolute;overflow:hidden;box-shadow:inset -6px -6px 14px #0f3d2e24,inset 6px 6px 10px #ffffffb3,0 4px 10px #00000047}.bubble:before{content:"";filter:blur(1.5px);pointer-events:none;background:#ffffffd9;border-radius:50%;width:32%;height:20%;position:absolute;top:14%;left:20%;transform:rotate(-30deg)}.bubble:after{content:"";filter:blur(1px);pointer-events:none;background:#ffffff80;border-radius:50%;width:14%;height:10%;position:absolute;bottom:10%;right:16%}.bubble-attempt{width:56px;height:56px;font-size:1.25rem;top:30px;left:calc(50% - 28px)}.pop-shard-origin{width:56px;height:56px;position:absolute;top:30px;left:50%;transform:translate(-50%)}.pop-shard{background:var(--signa-coral-500);border-radius:50%;width:12px;height:12px;position:absolute;top:21px;left:21px}.open-box{background:linear-gradient(#0000002e 0%,#0000000d 100%);border:6px solid #5c3319;border-top:none;border-radius:0 0 16px 16px;justify-content:center;align-items:flex-end;width:210px;min-height:112px;padding:12px;display:flex;position:absolute;bottom:18px;left:50%;transform:translate(-50%);box-shadow:inset 0 4px 10px #0000004d}.box-bubbles{flex-wrap:wrap;justify-content:center;align-items:flex-end;gap:8px;width:100%;display:flex}.box-bubble{width:56px;height:56px;font-size:1.25rem;position:relative}.game-grid{border-radius:var(--signa-radius-lg);background:repeating-linear-gradient(#ffffff0d 0 2px,#0000 2px 34px),linear-gradient(160deg,#a5693c 0%,#8a5230 55%,#7a4526 100%);border:10px solid #6b3c22;grid-template-rows:repeat(3,80px);grid-template-columns:repeat(3,80px);justify-content:center;gap:.6rem;margin:1.75rem 0 1.5rem;padding:1.25rem;display:grid;position:relative;box-shadow:inset 0 0 0 4px #ffd69e2e,inset 0 3px 10px #00000059,0 12px 26px #4a281447}.game-grid:before{content:"✋";background:var(--signa-amber-500);border:4px solid #6b3c22;border-radius:50%;justify-content:center;align-items:center;width:42px;height:42px;font-size:1.2rem;display:flex;position:absolute;top:-20px;left:50%;transform:translate(-50%);box-shadow:0 3px 6px #00000040}.game-cell{border-radius:var(--signa-radius-sm);background:#fbf9f4eb;border:2px solid #ffffff80;box-shadow:0 1px 3px #0003}.game-cell[style]{box-shadow:inset 0 -3px #0f3d2e24,inset 0 2px #ffffff8c,0 2px 5px #00000038}.falling-block-slot{justify-content:center;height:90px;margin-top:1rem;display:flex;position:relative}.falling-block{border-radius:var(--signa-radius-sm);width:64px;height:64px;font-family:var(--font-display);color:var(--signa-teal-900);justify-content:center;align-items:center;font-size:1.5rem;font-weight:700;display:flex;box-shadow:inset 0 -4px #0f3d2e29,inset 0 3px #ffffff8c,0 4px 10px #0f3d2e29}.shard-origin{width:64px;height:64px;position:absolute;top:13px}.shard{background:var(--signa-coral-500);border-radius:3px;width:14px;height:14px;position:absolute;top:25px;left:25px}.game-actions{flex-wrap:wrap;justify-content:center;gap:.85rem;display:flex}.game-actions button{font-family:var(--font-display);color:#fff;background:linear-gradient(180deg, var(--signa-teal-500) 0%, var(--signa-teal-700) 100%);border:3px solid var(--signa-teal-900);border-radius:var(--signa-radius-md);cursor:pointer;box-shadow:inset 0 2px 0 #ffffff4d, inset 0 -3px 0 #0003, 0 4px 0 var(--signa-teal-900), 0 8px 14px #0f3d2e40;padding:.75rem 1.3rem;font-size:.95rem;font-weight:700;transition:transform 80ms,box-shadow 80ms}.game-actions button:hover{filter:brightness(1.05)}.game-actions button:active{box-shadow:inset 0 2px 0 #ffffff4d, inset 0 -3px 0 #0003, 0 1px 0 var(--signa-teal-900), 0 3px 8px #0f3d2e33;transform:translateY(3px)}.pass-banner{font-family:var(--font-display);color:#fff;background:var(--signa-amber-500);clip-path:polygon(3% 0%,97% 0%,100% 50%,97% 100%,3% 100%,0% 50%);margin:0 auto .5rem;padding:.7rem 2.2rem;font-size:1.05rem;font-weight:700;display:inline-block;position:relative;box-shadow:0 4px 10px #4a281440}.pass-banner:before{content:"✋ "}.stub-note{color:var(--signa-muted);margin-top:1rem;font-size:.8rem}.game-stage{z-index:150;background:linear-gradient(#bfe6f5 0%,#d9f1fa 40%,#eaf8ea 75%,#cdeecb 100%);width:100vw;height:100dvh;position:fixed;inset:0;overflow:hidden}.game-stage-backdrop{z-index:0;position:absolute;inset:0;overflow:hidden}.game-stage-scene{z-index:1;position:absolute;inset:0}.game-hud-top{z-index:2;justify-content:space-between;align-items:center;gap:1rem;padding:1.25rem 1.5rem;display:flex;position:absolute;top:0;left:0;right:0}.game-hud-title{box-shadow:var(--signa-shadow-sm);-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:#ffffffd9;border-radius:999px;margin:0;padding:.5rem 1.1rem;font-size:1.15rem}.game-hud-banner{z-index:2;margin:0;position:absolute;top:5.2rem;left:50%;transform:translate(-50%)}.game-hud-bottom{z-index:2;background:linear-gradient(#fbf9f400 0%,#fbf9f4eb 100%);flex-direction:column;align-items:center;gap:.6rem;padding:1.25rem 1.5rem 1.5rem;display:flex;position:absolute;bottom:0;left:0;right:0}.game-hud-bottom .stub-note{text-align:center;max-width:620px;margin-top:0}@media (width<=640px){.game-hud-top{flex-wrap:wrap;padding:.85rem 1rem}.game-hud-title{text-align:center;order:3;width:100%;font-size:1rem}.game-hud-banner{top:6.4rem}}.game-results-overlay{z-index:10;background:#0a162073;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.game-results-card{color:#16241d;text-align:center;background:#fff;border-radius:18px;max-width:min(420px,86vw);padding:1.6rem 2.2rem;box-shadow:0 18px 44px #00000059}.game-results-card h2{margin:0 0 .6rem;font-family:"Baloo 2",Segoe UI,sans-serif}.game-results-card p{margin:0 0 1.1rem;line-height:1.45}.game-results-card button{background:var(--signa-amber-500,#f4a300);color:#16241d;cursor:pointer;border:none;border-radius:999px;padding:.65rem 1.8rem;font-family:"Baloo 2",Segoe UI,sans-serif;font-size:1rem;font-weight:700;transition:transform .15s}.game-results-card button:hover{transform:translateY(-2px)scale(1.03)}.lesson-box.wood-panel{background-color:#0000;padding:clamp(1.2rem,3vw,1.8rem) clamp(1rem,2.6vw,1.5rem) clamp(2rem,4.5vw,2.8rem)}.lesson-paper{text-align:center;padding:clamp(1.6rem,3.5vw,2.4rem) clamp(1.2rem,3vw,2rem) clamp(1.8rem,4vw,2.6rem)}.lesson-paper>button{min-width:220px;font-family:var(--font-display);color:#fff;background:linear-gradient(180deg, var(--signa-teal-500) 0%, var(--signa-teal-700) 100%);border:3px solid var(--signa-teal-900);cursor:pointer;border-radius:999px;padding:1rem 1.6rem;font-size:1rem;font-weight:800;transition:transform .15s,border-color .15s,background .15s;box-shadow:inset 0 2px #ffffff40,0 5px #0f3d2e2e,0 10px 18px #0f3d2e38}.lesson-paper>button:active:not(:disabled){transform:translateY(2px)}.lesson-paper .lesson-video-frame{border-color:var(--wood-rule);box-shadow:none;background:#ffffff73}.lesson-paper .lesson-video-frame p{color:var(--wood-ink-soft)}.cs-scene{background:linear-gradient(#bfe6f5 0%,#d9f1fa 40%,#eaf8ea 75%,#cdeecb 100%);width:100%;max-width:100vw;min-height:100dvh;position:relative;overflow:hidden auto}.cs-content{z-index:5;flex-direction:column;justify-content:flex-start;align-items:center;gap:clamp(1.6rem,4vw,2.4rem);width:100%;min-height:100dvh;padding:3.5rem 1rem 2.5rem;display:flex;position:relative}.cs-header{text-align:center;padding-top:.5rem;animation:.6s cubic-bezier(.34,1.56,.64,1) cs-card-pop}@keyframes cs-card-pop{0%{opacity:0;transform:scale(.85)translateY(20px)}to{opacity:1;transform:scale(1)translateY(0)}}.cs-title{font-family:var(--font-display);color:var(--signa-teal-700);margin:0;font-size:clamp(1.8rem,5.5vw,2.4rem);font-weight:800}.cs-subtitle{font-family:var(--font-body);color:var(--signa-muted);margin:.3rem 0 0;font-size:clamp(.9rem,2.4vw,1rem);font-weight:600}.cs-grid{flex-wrap:wrap;justify-content:center;gap:clamp(1.5rem,4vw,2.4rem);width:min(100%,780px);max-width:780px;display:flex}.cs-tile{background:var(--signa-cream-50);border-radius:var(--signa-radius-lg);width:clamp(220px,38vw,320px);box-shadow:0 16px 0 #0f3d2e1f, var(--signa-shadow-lift);cursor:pointer;font-family:var(--font-body);border:none;flex-direction:column;align-items:center;gap:.75rem;padding:2rem 1.6rem 1.8rem;transition:transform .15s,box-shadow .15s;animation:.6s cubic-bezier(.34,1.56,.64,1) cs-card-pop;display:flex;position:relative}.cs-tile:hover:not(:disabled){transform:translateY(-4px)scale(1.03);box-shadow:0 18px #0f3d2e1f,0 22px 34px #0f3d2e38}.cs-tile:active:not(:disabled){transform:translateY(6px)scale(.99);box-shadow:0 8px #0f3d2e1f,0 10px 16px #0f3d2e29}.cs-tile-locked{background:var(--signa-mint-50);cursor:not-allowed;opacity:.85;box-shadow:0 10px #0f3d2e0f,0 12px 18px #0f3d2e14}.cs-tile-complete{border:3px solid var(--signa-amber-500)}.cs-tile-star{filter:drop-shadow(0 2px 3px #00000040);font-size:1.8rem;animation:1.8s ease-in-out infinite cs-star-twinkle;position:absolute;top:-14px;right:-10px}@keyframes cs-star-twinkle{0%,to{transform:scale(1)rotate(0)}50%{transform:scale(1.15)rotate(10deg)}}.cs-tile-icon-wrap{background:linear-gradient(180deg, var(--signa-amber-100), var(--signa-amber-500));border-radius:50%;justify-content:center;align-items:center;width:clamp(64px,14vw,80px);height:clamp(64px,14vw,80px);display:flex;box-shadow:0 6px 12px #f4a30059}.cs-tile-locked .cs-tile-icon-wrap{background:linear-gradient(180deg, var(--signa-border), #b7c0ba);box-shadow:none}.cs-tile-icon{font-size:clamp(1.8rem,5vw,2.4rem);line-height:1}.cs-tile-title{font-family:var(--font-display);color:var(--signa-ink);font-size:clamp(1.1rem,3vw,1.3rem);font-weight:800}.cs-tile-locked .cs-tile-title{color:var(--signa-muted)}.cs-tile-locked-note{color:var(--signa-muted);text-align:center;font-size:.78rem;font-weight:600;line-height:1.35}.cs-tile-progress-ring-wrap{justify-content:center;align-items:center;width:64px;height:64px;display:flex;position:relative}.cs-tile-progress-ring{width:100%;height:100%;transform:rotate(-90deg)}.cs-tile-progress-ring-bg{fill:none;stroke:var(--signa-border);stroke-width:7px}.cs-tile-progress-ring-fg{fill:none;stroke:var(--signa-teal-500);stroke-width:7px;stroke-linecap:round;transition:stroke-dashoffset .4s}.cs-tile-progress-percent{font-family:var(--font-display);color:var(--signa-teal-700);font-size:.85rem;font-weight:800;position:absolute}.cs-tile-subtitle{color:var(--signa-muted);font-size:.82rem;font-weight:700}@media (prefers-reduced-motion:reduce){.cs-header-hand,.cs-tile-star{animation:none}}.cs-tile.wood-panel{background-color:#0000;width:clamp(250px,42vw,360px);padding:clamp(1.1rem,3vw,1.5rem) clamp(.9rem,2.6vw,1.2rem) clamp(1.7rem,4.5vw,2.2rem)}.cs-tile-body{flex-direction:column;align-items:center;gap:.75rem;width:100%;padding:clamp(1.2rem,3.4vw,1.7rem) clamp(.9rem,2.6vw,1.3rem) clamp(1.5rem,4vw,2rem);display:flex}.cs-tile.wood-panel:hover:not(:disabled),.cs-tile.wood-panel:active:not(:disabled),.cs-tile.wood-panel.cs-tile-locked{box-shadow:none}.cs-tile-locked.wood-panel{filter:saturate(.45)brightness(.94);background-color:#0000}.cs-tile-complete.wood-panel{border:none}.cs-tile .cs-tile-title{color:var(--wood-ink);text-shadow:0 2px #fff9}.cs-tile .cs-tile-subtitle,.cs-tile .cs-tile-locked-note{color:var(--wood-ink-soft)}.cs-tile .cs-tile-progress-ring-bg{stroke:var(--wood-rule)}.cs-tile .cs-tile-progress-percent{color:var(--wood-ink)}.cs-grid{align-items:stretch}.cs-tile.wood-panel{min-height:clamp(300px,52vw,380px)}.cs-tile-body{flex:1;justify-content:center}.cs-tile.wood-panel,.cs-tile.wood-panel:hover:not(:disabled),.cs-tile.wood-panel:active:not(:disabled){box-shadow:none;border:none}@media (width>=561px){.cs-grid{margin-top:60px}}.cs-drill{cursor:pointer;width:min(100%,30rem);font-family:var(--font-body);background-color:#0000;border:none;padding:.6rem .5rem 1rem;transition:transform .15s}.cs-drill:hover{transform:translateY(-3px)scale(1.02)}.cs-drill-body{align-items:center;gap:.9rem;width:100%;padding:.9rem 1.1rem;display:flex}.cs-drill-mark{font-size:1.9rem;line-height:1}.cs-drill-text{text-align:left;flex-direction:column;flex:1;align-items:flex-start;gap:.1rem;display:flex}.cs-drill-title{font-family:var(--font-display);color:var(--signa-teal-900);font-size:1.05rem;font-weight:800}.cs-drill-sub{color:var(--signa-muted);font-size:.76rem;font-weight:600;line-height:1.35}.cs-drill-badge{background:var(--signa-amber-500);color:#3a2415;min-width:1.8rem;font-family:var(--font-display);text-align:center;border-radius:999px;padding:.12rem .5rem;font-size:.95rem;font-weight:800}@keyframes cs-drill-glow{0%,to{filter:drop-shadow(0 0 3px #f4a30059)}50%{filter:drop-shadow(0 0 16px #f4a300f2)}}@keyframes cs-drill-badge-pop{0%,to{transform:scale(1)}50%{transform:scale(1.14)}}.cs-drill.is-waiting{animation:2.2s ease-in-out infinite cs-drill-glow}.cs-drill.is-waiting .cs-drill-badge{animation:2.2s ease-in-out infinite cs-drill-badge-pop}.cs-drill-badge{align-items:center;gap:.22rem;display:inline-flex}.cs-drill-bell{font-size:.85rem;line-height:1}@media (prefers-reduced-motion:reduce){.cs-drill.is-waiting,.cs-drill.is-waiting .cs-drill-badge{animation:none}.cs-drill.is-waiting{filter:drop-shadow(0 0 12px #f4a300e6)}}.ls-scene{background:linear-gradient(#bfe6f5 0%,#d9f1fa 40%,#eaf8ea 75%,#cdeecb 100%);width:100%;max-width:100vw;min-height:100dvh;position:relative;overflow:hidden auto}.ls-content{z-index:5;flex-direction:column;justify-content:flex-start;align-items:center;gap:clamp(.8rem,2vw,1.4rem);width:100%;min-height:100dvh;padding:clamp(1.8rem,3.5vh,2.5rem) 1rem clamp(1.5rem,3vh,2rem);display:flex;position:relative}.ls-header{text-align:center;width:100%;padding-top:.5rem;animation:.6s cubic-bezier(.34,1.56,.64,1) ls-card-pop;position:relative}@keyframes ls-card-pop{0%{opacity:0;transform:scale(.85)translateY(20px)}to{opacity:1;transform:scale(1)translateY(0)}}.ls-back{z-index:100;background:var(--signa-surface);border:2px solid var(--signa-border);color:var(--signa-teal-700);font-family:var(--font-body);box-shadow:var(--signa-shadow-sm);border-radius:999px;padding:.5rem .9rem;font-size:.85rem;font-weight:700;text-decoration:none;transition:border-color .15s,background .15s;display:inline-block;position:fixed;top:1rem;left:1rem}.ls-back:hover{border-color:var(--signa-teal-500);background:var(--signa-mint-50)}.ls-title{font-family:var(--font-display);color:var(--signa-teal-700);margin:0;font-size:clamp(1.8rem,5.5vw,2.4rem);font-weight:800}.ls-subtitle{font-family:var(--font-body);color:var(--signa-muted);margin:.3rem 0 0;font-size:clamp(.9rem,2.4vw,1rem);font-weight:600}.ls-grid{flex-wrap:wrap;justify-content:center;align-items:center;gap:clamp(.75rem,1.8vw,1.4rem);width:100%;max-width:min(94vw,980px);display:flex}.ls-tile{background:var(--signa-cream-50);border-radius:var(--signa-radius-lg);width:clamp(160px,23vw,268px);box-shadow:0 12px 0 #0f3d2e1f, var(--signa-shadow-lift);cursor:pointer;font-family:var(--font-body);border:none;flex-direction:column;align-items:center;gap:.35rem;padding:1.1rem .9rem;transition:transform .15s,box-shadow .15s;animation:.6s cubic-bezier(.34,1.56,.64,1) ls-card-pop;display:flex;position:relative}.ls-tile:hover:not(:disabled){transform:translateY(-4px)scale(1.03);box-shadow:0 16px #0f3d2e1f,0 20px 30px #0f3d2e38}.ls-tile:active:not(:disabled){transform:translateY(5px)scale(.99);box-shadow:0 7px #0f3d2e1f,0 9px 14px #0f3d2e29}.ls-tile-locked{background:var(--signa-mint-50);cursor:not-allowed;opacity:.85;box-shadow:0 9px #0f3d2e0f,0 11px 16px #0f3d2e14}.ls-tile-complete{border:3px solid var(--signa-amber-500)}.ls-tile-star{filter:drop-shadow(0 2px 3px #00000040);font-size:clamp(1.4rem,2.6vw,1.75rem);animation:1.8s ease-in-out infinite ls-star-twinkle;position:absolute;top:-12px;right:-8px}@keyframes ls-star-twinkle{0%,to{transform:scale(1)rotate(0)}50%{transform:scale(1.15)rotate(10deg)}}.ls-tile-badge{background:linear-gradient(180deg, var(--signa-amber-100), var(--signa-amber-500));width:clamp(42px,4.4vw,54px);height:clamp(42px,4.4vw,54px);font-family:var(--font-display);color:var(--signa-ink);border-radius:50%;justify-content:center;align-items:center;font-size:clamp(1.15rem,2.4vw,1.45rem);font-weight:800;display:flex;box-shadow:0 4px 8px #f4a30059}.ls-tile-locked .ls-tile-badge{background:linear-gradient(180deg, var(--signa-border), #b7c0ba);box-shadow:none;font-size:clamp(1.15rem,2.4vw,1.45rem)}.ls-tile-range{font-family:var(--font-display);color:var(--signa-muted);letter-spacing:.03em;font-size:clamp(.9rem,1.8vw,1.12rem);font-weight:800;line-height:1.15}.ls-tile-locked .ls-tile-range{color:var(--signa-muted);opacity:.7}.ls-tile-locked-note{color:var(--signa-muted);text-align:center;max-width:200px;padding:0 .35rem;font-size:clamp(.72rem,1.4vw,.84rem);font-weight:600;line-height:1.3}.ls-tile-progress-ring-wrap{justify-content:center;align-items:center;width:clamp(44px,4.6vw,56px);height:clamp(44px,4.6vw,56px);display:flex;position:relative}.ls-tile-progress-ring{width:100%;height:100%;transform:rotate(-90deg)}.ls-tile-progress-ring-bg{fill:none;stroke:var(--signa-border);stroke-width:6px}.ls-tile-progress-ring-fg{fill:none;stroke:var(--signa-teal-500);stroke-width:6px;stroke-linecap:round;transition:stroke-dashoffset .4s}.ls-tile-progress-percent{font-family:var(--font-display);color:var(--signa-teal-700);font-size:clamp(.68rem,1.4vw,.82rem);font-weight:800;position:absolute}.ls-tile-subtitle{color:var(--signa-muted);font-size:clamp(.7rem,1.4vw,.84rem);font-weight:700;line-height:1.2}.ls-tile-best{border-top:1px solid #00000014;flex-direction:column;align-items:center;gap:.1rem;width:100%;margin-top:.2rem;padding-top:.22rem;display:flex}.ls-tile-best-score{color:#b26a00;font-size:clamp(.78rem,1.5vw,.92rem);font-weight:800;line-height:1.15}.ls-tile-best-meta{color:var(--signa-muted);font-size:clamp(.64rem,1.2vw,.74rem);font-weight:700;line-height:1.15}@media (prefers-reduced-motion:reduce){.ls-header-hand,.ls-tile-star{animation:none}}.ls-tile.wood-panel{aspect-ratio:1/1.05;width:clamp(155px,23vw,260px);height:auto;min-height:unset;box-sizing:border-box;background-color:#0000;padding:clamp(.65rem,1.4vw,.95rem) clamp(.5rem,1.1vw,.8rem) clamp(.85rem,1.8vw,1.2rem)}.ls-tile-body{box-sizing:border-box;flex-direction:column;flex:1;justify-content:space-evenly;align-items:center;width:100%;height:100%;padding:clamp(.45rem,1vw,.75rem) clamp(.35rem,.8vw,.65rem);display:flex}.ls-tile.wood-panel:hover:not(:disabled),.ls-tile.wood-panel:active:not(:disabled),.ls-tile.wood-panel.ls-tile-locked{box-shadow:none}.ls-tile-locked.wood-panel{filter:saturate(.45)brightness(.94);background-color:#0000}.ls-tile-complete.wood-panel{border:none}.ls-tile .ls-tile-range{color:var(--wood-ink)}.ls-tile .ls-tile-subtitle,.ls-tile .ls-tile-locked-note,.ls-tile .ls-tile-best-meta{color:var(--wood-ink-soft)}.ls-tile .ls-tile-progress-ring-bg{stroke:var(--wood-rule)}.ls-tile .ls-tile-progress-percent{color:var(--wood-ink)}.ls-tile .ls-tile-best{border-top-color:var(--wood-rule)}.ls-tile.wood-panel,.ls-tile.wood-panel:hover:not(:disabled),.ls-tile.wood-panel:active:not(:disabled){box-shadow:none;border:none}@media (width>=561px){.ls-grid{margin-top:36px}}.ls-endless{cursor:pointer;width:min(100%,34rem);font-family:var(--font-body);background-color:#0000;border:none;padding:.7rem .6rem 1.1rem;transition:transform .15s}.ls-endless:hover{transform:translateY(-3px)scale(1.02)}.ls-endless-body{color:#f2e6d8;background:linear-gradient(#2b3566 0%,#3b4373 100%);align-items:center;gap:1rem;width:100%;padding:1rem 1.2rem;display:flex}.ls-endless-mark{filter:drop-shadow(0 2px 4px #0006);font-size:2.2rem;line-height:1}.ls-endless-text{text-align:left;flex-direction:column;align-items:flex-start;gap:.15rem;display:flex}.ls-endless-title{font-family:var(--font-display);color:#ffd9a8;font-size:1.15rem;font-weight:800}.ls-endless-sub{color:#ffe9cdc7;font-size:.78rem;font-weight:600;line-height:1.35}@media (width<=560px){.ls-content{gap:.75rem;padding:1.2rem .6rem 2rem}.ls-grid{align-items:center;gap:.65rem;max-width:100%}.ls-tile.wood-panel{aspect-ratio:1/1.05;width:clamp(146px,44vw,175px);height:auto;min-height:unset;padding:.55rem .42rem .75rem}.ls-tile-body{justify-content:space-evenly;padding:.35rem .25rem .45rem}.ls-tile-badge{width:36px;height:36px;font-size:1.05rem}.ls-tile-range{font-size:.8rem}.ls-tile-progress-ring-wrap{width:36px;height:36px}.ls-tile-progress-percent{font-size:.58rem}.ls-tile-subtitle{font-size:.6rem}.ls-tile-best-score{font-size:.66rem}.ls-tile-best-meta{font-size:.54rem}.ls-tile-locked-note{padding:0 .2rem;font-size:.62rem;line-height:1.2}}.sign-ref{background:#eef4f8;border-radius:16px;margin:0;line-height:0;position:relative;overflow:hidden;box-shadow:0 6px 18px #1024362e}.sign-ref img,.sign-ref video{object-fit:cover;width:100%;height:100%;display:block}.sign-ref-sm{width:96px;height:96px}.sign-ref-md{width:clamp(140px,32vw,190px);height:clamp(140px,32vw,190px)}.sign-ref-lg{width:clamp(200px,60vw,300px);height:clamp(200px,60vw,300px)}.sign-ref-badge{color:#ffe9b0;text-align:center;background:#16241dd1;border-radius:9px;min-width:30px;padding:2px 8px;font-family:"Baloo 2",Segoe UI,sans-serif;font-size:1.05rem;font-weight:700;line-height:1.45;position:absolute;top:8px;left:8px}.sign-ref-caption{color:#fff;text-align:center;background:linear-gradient(#10243600,#102436c7);padding:.4rem .6rem;font-size:.8rem;line-height:1.3;position:absolute;bottom:0;left:0;right:0}.practice-card{text-align:center;background:#fffffff0;border-radius:22px;width:min(760px,92vw);margin:0 auto;padding:1.4rem 1.6rem 1.6rem;box-shadow:0 18px 40px #1024362e}.practice-progress{flex-wrap:wrap;justify-content:center;gap:.5rem;margin-bottom:1.2rem;display:flex}.practice-pip{color:#7b8b99;background:#f4f8fb;border:2px solid #cfdbe4;border-radius:12px;place-items:center;width:38px;height:38px;font-family:"Baloo 2",Segoe UI,sans-serif;font-weight:700;transition:transform .18s,background .18s;display:grid}.practice-pip-current{color:#16241d;background:#fff3d6;border-color:#f4a300;transform:scale(1.12)}.practice-pip-done{color:#fff;background:#2f9c78;border-color:#2f9c78}.practice-stage{flex-wrap:wrap;justify-content:center;align-items:center;gap:clamp(.9rem,3vw,1.8rem);display:flex}.practice-camera{background:#16241d;border:4px solid #cfdbe4;border-radius:16px;width:clamp(200px,60vw,300px);height:clamp(200px,60vw,300px);transition:border-color .2s;position:relative;overflow:hidden}.practice-camera-hit{border-color:#2f9c78}.practice-camera-miss{border-color:#ef6a5a}.practice-video-wrap,.practice-video{object-fit:cover;width:100%;height:100%;display:block;transform:scaleX(-1)}.practice-guide{z-index:2;pointer-events:none;position:absolute;inset:0}.practice-guide-box{border:3px dashed #ffffffe6;border-radius:20px;width:58%;height:72%;animation:2.4s ease-in-out infinite practice-guide-pulse;position:absolute;top:46%;left:50%;transform:translate(-50%,-50%);box-shadow:0 0 0 9999px #0b16126b}@keyframes practice-guide-pulse{0%,to{border-color:#ffffff80}50%{border-color:#fffffff2}}.practice-guide-label{white-space:nowrap;font-family:var(--font-body);color:#fff;background:#0f3d2ec7;border-radius:999px;padding:.2rem .65rem;font-size:.72rem;font-weight:700;position:absolute;bottom:5%;left:50%;transform:translate(-50%)}.practice-camera-hit .practice-guide-box,.practice-camera-miss .practice-guide-box{border-style:solid;animation:none}.practice-camera-hit .practice-guide-box{border-color:#6ee7b7}.practice-camera-miss .practice-guide-box{border-color:#ffb4a8}.practice-camera-hit .practice-guide-label,.practice-camera-miss .practice-guide-label{opacity:0}@media (prefers-reduced-motion:reduce){.practice-guide-box{border-color:#ffffffd9;animation:none}}.practice-camera-note{color:#dce9f2;place-items:center;margin:0;font-size:.9rem;display:grid;position:absolute;inset:0}.practice-verdict{place-items:center;font-family:"Baloo 2",Segoe UI,sans-serif;font-weight:700;animation:.25s ease-out practice-pop;display:grid;position:absolute;inset:0}.practice-verdict-hit{color:#fff;background:#2f9c78d1;font-size:5rem}.practice-verdict-miss{color:#ffd9d2;background:#16241d8c;font-size:1.6rem}@keyframes practice-pop{0%{opacity:0;transform:scale(.86)}to{opacity:1;transform:scale(1)}}.practice-hint{margin:1rem 0 0}.practice-actions{margin-top:1.2rem}.practice-next{border-radius:var(--signa-radius-md,14px);background:var(--signa-amber-500,#f4a300);color:#16241d;cursor:pointer;border:3px solid #cfa63a;margin-right:.7rem;padding:.75rem 1.5rem;font-family:"Baloo 2",Segoe UI,sans-serif;font-size:1rem;font-weight:700;transition:transform 80ms;display:inline-block}.practice-next:active{transform:translateY(2px)}.practice-actions .level-start-play{width:auto;min-width:220px;margin-top:0;padding-left:1.8rem;padding-right:1.8rem}.lesson-signs{flex-wrap:wrap;justify-content:center;gap:.9rem;margin-bottom:1.4rem;display:flex}@media (prefers-reduced-motion:reduce){.practice-pip,.practice-verdict{transition:none;animation:none}}.practice-card.wood-panel{background-color:#0000;padding:clamp(1.1rem,2.8vw,1.6rem) clamp(.9rem,2.4vw,1.3rem) clamp(1.9rem,4.2vw,2.6rem)}.practice-paper{text-align:center;padding:clamp(1.4rem,3.2vw,2rem) clamp(1.1rem,2.8vw,1.7rem) clamp(1.6rem,3.6vw,2.2rem)}.practice-paper .practice-pip{border-color:var(--wood-rule);color:var(--wood-ink-soft);background:#ffffff8c}.practice-paper .practice-hint{color:var(--wood-ink-soft)}.gm-scene{background:linear-gradient(#bfe6f5 0%,#d9f1fa 40%,#eaf8ea 75%,#cdeecb 100%);width:100%;max-width:100vw;min-height:100dvh;position:relative;overflow:hidden auto}.gm-content{z-index:5;flex-direction:column;justify-content:flex-start;align-items:center;gap:clamp(1.6rem,4vw,2.4rem);width:100%;min-height:100dvh;padding:3rem 1rem 2.5rem;display:flex;position:relative}.gm-header{text-align:center;width:100%;padding-top:.5rem;animation:.6s cubic-bezier(.34,1.56,.64,1) gm-card-pop;position:relative}@keyframes gm-card-pop{0%{opacity:0;transform:scale(.85)translateY(20px)}to{opacity:1;transform:scale(1)translateY(0)}}.gm-back{z-index:100;background:var(--signa-surface);border:2px solid var(--signa-border);color:var(--signa-teal-700);font-family:var(--font-body);box-shadow:var(--signa-shadow-sm);border-radius:999px;padding:.5rem .9rem;font-size:.85rem;font-weight:700;text-decoration:none;transition:border-color .15s,background .15s;display:inline-block;position:fixed;top:1rem;left:1rem}.gm-back:hover{border-color:var(--signa-teal-500);background:var(--signa-mint-50)}.gm-title{font-family:var(--font-display);color:var(--signa-teal-700);margin:0;font-size:clamp(1.8rem,5.5vw,2.4rem);font-weight:800}.gm-subtitle{font-family:var(--font-body);color:var(--signa-muted);margin:.3rem 0 0;font-size:clamp(.9rem,2.4vw,1rem);font-weight:600}.gm-grid{flex-wrap:wrap;justify-content:center;align-items:stretch;gap:clamp(.45rem,1.1vw,.85rem);width:100%;max-width:1200px;display:flex}@media (width>=980px){.gm-grid{flex-wrap:nowrap}}@media (width<=979px){.gm-grid{flex-wrap:wrap;gap:.75rem}}.gm-tile{background:var(--signa-cream-50);border-radius:var(--signa-radius-lg);width:clamp(140px,18vw,180px);box-shadow:0 12px 0 #0f3d2e1f, var(--signa-shadow-lift);cursor:pointer;font-family:var(--font-body);border:none;flex-direction:column;align-items:center;gap:.45rem;padding:1.2rem .9rem 1.1rem;transition:transform .15s,box-shadow .15s;animation:.6s cubic-bezier(.34,1.56,.64,1) gm-card-pop;display:flex;position:relative}.gm-tile:hover{transform:translateY(-4px)scale(1.03);box-shadow:0 16px #0f3d2e1f,0 20px 30px #0f3d2e38}.gm-tile:active{transform:translateY(5px)scale(.99);box-shadow:0 7px #0f3d2e1f,0 9px 14px #0f3d2e29}.gm-tile-icon-wrap{background:linear-gradient(180deg, var(--signa-amber-100), var(--signa-amber-500));border-radius:50%;justify-content:center;align-items:center;width:clamp(46px,4.2vw,58px);height:clamp(46px,4.2vw,58px);display:flex;box-shadow:0 5px 10px #f4a30059}.gm-tile-icon{width:clamp(28px,2.6vw,36px);height:clamp(28px,2.6vw,36px);image-rendering:pixelated}.gm-tile-icon-emoji{width:auto;height:auto;font-size:clamp(1.5rem,4vw,2rem);line-height:1}.gm-tile-title{font-family:var(--font-display);color:var(--signa-ink);font-size:clamp(.95rem,2.3vw,1.1rem);font-weight:800}.gm-tile-desc{color:var(--signa-muted);text-align:center;padding:0 .15rem;font-size:clamp(.68rem,.78vw,.74rem);font-weight:600;line-height:1.32}@media (prefers-reduced-motion:reduce){.gm-header-hand{animation:none}}.gm-grid{align-items:stretch}.gm-tile.wood-panel{background-color:#0000;flex-shrink:1;width:clamp(140px,16.5vw,205px);min-height:clamp(245px,27vw,290px);padding:clamp(.6rem,1.4vw,.95rem) clamp(.4rem,1vw,.7rem) clamp(.95rem,2.2vw,1.35rem)}.gm-tile-body{flex-direction:column;flex:1;justify-content:center;align-items:center;gap:.35rem;width:100%;padding:clamp(.75rem,1.8vw,1.1rem) clamp(.4rem,1.1vw,.75rem) clamp(.9rem,2.2vw,1.3rem);display:flex}.gm-tile.wood-panel,.gm-tile.wood-panel:hover,.gm-tile.wood-panel:active{box-shadow:none;border:none}.gm-tile .gm-tile-title{color:var(--wood-ink);text-shadow:0 2px #fff9}.gm-tile .gm-tile-desc{color:var(--wood-ink-soft)}@media (width>=561px){.gm-grid{margin-top:60px}}.lmp-scene{background:linear-gradient(#bfe6f5 0%,#d9f1fa 40%,#eaf8ea 75%,#cdeecb 100%);width:100%;min-height:100dvh;position:relative;overflow:hidden}.lmp-content{z-index:5;flex-direction:column;justify-content:center;align-items:center;gap:clamp(1.6rem,4vw,2.4rem);min-height:100dvh;padding:3rem 1rem 2.5rem;display:flex;position:relative}.lmp-header{text-align:center}.lmp-back{z-index:100;background:var(--signa-surface);border:2px solid var(--signa-border);color:var(--signa-teal-700);font-family:var(--font-body);box-shadow:var(--signa-shadow-sm);border-radius:999px;padding:.5rem .9rem;font-size:.85rem;font-weight:700;text-decoration:none;display:inline-block;position:fixed;top:1rem;left:1rem}.lmp-title{font-family:var(--font-display);color:var(--signa-teal-700);margin:0;font-size:clamp(1.6rem,5vw,2.2rem);font-weight:800}.lmp-subtitle{font-family:var(--font-body);color:var(--signa-muted);margin:.3rem 0 0;font-size:clamp(.9rem,2.4vw,1rem);font-weight:600}.lmp-grid{flex-wrap:wrap;justify-content:center;gap:clamp(1.2rem,4vw,2.2rem);display:flex}.lmp-tile{cursor:pointer;width:clamp(220px,34vw,300px);font-family:var(--font-body);background-color:#0000;border:none;padding:clamp(.8rem,2.4vw,1.1rem) clamp(.6rem,2vw,.85rem) clamp(1.3rem,3.6vw,1.7rem);transition:transform .15s}.lmp-tile:hover{transform:translateY(-5px)scale(1.03)}.lmp-tile:active{transform:translateY(3px)scale(.99)}.lmp-tile-body{flex-direction:column;align-items:center;gap:.5rem;width:100%;padding:clamp(1.1rem,3vw,1.6rem) clamp(.7rem,2vw,1rem) clamp(1.2rem,3.4vw,1.6rem);display:flex}.lmp-tile-icon-wrap{background:linear-gradient(180deg, var(--signa-amber-100), var(--signa-amber-500));border-radius:50%;justify-content:center;align-items:center;width:clamp(88px,17vw,120px);height:clamp(88px,17vw,120px);display:flex;box-shadow:0 6px 12px #f4a30059}.lmp-tile-endless .lmp-tile-icon-wrap{background:linear-gradient(#b7e2ff,#3f8fd0);box-shadow:0 6px 12px #3f8fd066}.lmp-tile-icon{width:74%;height:74%;image-rendering:pixelated}.lmp-tile-icon-emoji{font-size:clamp(2.6rem,7vw,3.6rem);line-height:1}.lmp-tile-title{font-family:var(--font-display);color:var(--signa-teal-900);font-size:clamp(1.2rem,3.4vw,1.6rem);font-weight:800}.lmp-tile-desc{color:var(--signa-muted);text-align:center;font-size:clamp(.78rem,2.2vw,.9rem);font-weight:600;line-height:1.4}.sd-scene{background:linear-gradient(#bfe6f5 0%,#d9f1fa 40%,#eaf8ea 75%,#cdeecb 100%);width:100%;max-width:100vw;min-height:100dvh;position:relative;overflow:hidden auto}.sd-content{z-index:5;flex-direction:column;align-items:center;gap:clamp(1.2rem,3vw,2rem);min-height:100dvh;padding:3rem 1rem 2.5rem;display:flex;position:relative}.sd-header{text-align:center}.sd-back{z-index:100;background:var(--signa-surface);border:2px solid var(--signa-border);color:var(--signa-teal-700);font-family:var(--font-body);box-shadow:var(--signa-shadow-sm);border-radius:999px;padding:.5rem .9rem;font-size:.85rem;font-weight:700;text-decoration:none;display:inline-block;position:fixed;top:1rem;left:1rem}.sd-title{font-family:var(--font-display);color:var(--signa-teal-700);margin:0;font-size:clamp(1.7rem,5vw,2.3rem);font-weight:800}.sd-subtitle{font-family:var(--font-body);color:var(--signa-muted);margin:.3rem 0 0;font-size:clamp(.9rem,2.4vw,1rem);font-weight:600}.sd-grid{flex-wrap:wrap;justify-content:center;gap:clamp(1rem,2.6vw,1.5rem);max-width:900px;display:flex}.sd-card{cursor:pointer;width:clamp(190px,30vw,240px);font-family:var(--font-body);background-color:#0000;border:none;padding:.8rem .6rem 1.3rem;transition:transform .15s}.sd-card:hover{transform:translateY(-4px)scale(1.03)}.sd-card-body{flex-direction:column;align-items:center;gap:.45rem;width:100%;padding:1.1rem .8rem 1.3rem;display:flex}.sd-card-word{font-family:var(--font-display);letter-spacing:.1em;color:var(--signa-teal-900);font-size:clamp(1.6rem,4.5vw,2.1rem);font-weight:800;line-height:1}.sd-card-letters{flex-wrap:wrap;justify-content:center;gap:.25rem;display:flex}.sd-card-letter{background:var(--signa-mint-100);min-width:1.5rem;color:var(--signa-teal-700);font-family:var(--font-display);border-radius:6px;padding:.1rem .3rem;font-size:.85rem;font-weight:700}.sd-card-game{color:var(--signa-muted);font-size:.82rem;font-weight:700}.sd-card-from{color:var(--signa-muted);font-size:.72rem}.sd-empty{width:min(100%,26rem);padding:.8rem .6rem 1.3rem}.sd-empty-body{text-align:center;color:var(--signa-muted);flex-direction:column;align-items:center;gap:.5rem;padding:1.4rem 1rem;font-weight:600;display:flex}.sd-empty-mark{font-size:2rem}.sd-done{width:min(100%,30rem)}.sd-done-title{font-family:var(--font-display);color:var(--signa-teal-700);text-align:center;margin:0 0 .5rem;font-size:1rem}.sd-done-list{flex-direction:column;gap:.35rem;margin:0;padding:0;list-style:none;display:flex}.sd-done-row{border-radius:var(--signa-radius-sm,10px);border:1px solid var(--signa-teal-300);background:#ffffffbf;align-items:center;gap:.6rem;padding:.45rem .75rem;display:flex}.sd-done-check{color:var(--signa-teal-500);font-weight:800}.sd-done-word{font-family:var(--font-display);letter-spacing:.06em;color:var(--signa-teal-900);flex:1;font-weight:700}.sd-done-score{color:var(--signa-muted);font-variant-numeric:tabular-nums;font-size:.8rem}.camera-toggle-btn{z-index:160;border:2px solid var(--cam-accent,#2f9c78);cursor:pointer;background:#fff;border-radius:999px;justify-content:center;align-items:center;width:3rem;height:3rem;font-size:1.35rem;transition:transform .15s,box-shadow .15s,background .15s;display:flex;position:fixed;bottom:1rem;right:1rem;box-shadow:0 8px 20px #0f3d2e38}.camera-toggle-btn:hover{transform:translateY(-2px)scale(1.05);box-shadow:0 12px 26px #0f3d2e47}.camera-toggle-btn.is-open{background:var(--cam-accent,#2f9c78)}.camera-toggle-icon{filter:grayscale(0)}.camera-preview-panel{z-index:161;border:2px solid var(--cam-accent,#2f9c78);width:300px;box-shadow:0 14px 32px #00000059, 0 0 0 4px var(--cam-glow,#2f9c782e);touch-action:none;background:#101815;border-radius:16px;flex-direction:column;display:flex;position:fixed;overflow:hidden}.camera-preview-handle{background:var(--cam-accent,#2f9c78);cursor:grab;-webkit-user-select:none;user-select:none;justify-content:space-between;align-items:center;gap:.5rem;padding:.45rem .4rem .45rem .75rem;display:flex}.camera-preview-handle:active{cursor:grabbing}.camera-preview-title{font-family:var(--font-display,sans-serif);color:#fff;letter-spacing:.01em;font-size:.78rem;font-weight:800}.camera-preview-close{color:#fff;cursor:pointer;background:#ffffff40;border:none;border-radius:50%;justify-content:center;align-items:center;width:1.5rem;height:1.5rem;font-size:1rem;line-height:1;display:flex}.camera-preview-close:hover{background:#fff6}.camera-preview-video-wrap{background:#0a0f0d;width:300px;height:225px;position:relative}.camera-preview-loading{color:#cfe9df;text-align:center;justify-content:center;align-items:center;padding:0 1rem;font-size:.75rem;font-weight:600;display:flex;position:absolute;inset:0}.camera-preview-video{object-fit:cover;width:100%;height:100%;transform:scaleX(-1)}.camera-preview-hint{color:#9db3a8;text-align:center;background:#16221c;margin:0;padding:.4rem .6rem;font-size:.64rem}.theme-bubble{--cam-accent:#3fb6dd;--cam-glow:#3fb6dd38}.theme-block{--cam-accent:#ff8fa3;--cam-glow:#ff8fa338}.theme-quest{--cam-accent:#ef6a5a;--cam-glow:#ef6a5a38}.theme-fishing{--cam-accent:#6fe3a0;--cam-glow:#6fe3a03d}.theme-blast{--cam-accent:#5cd0ff;--cam-glow:#5cd0ff3d}@media (width<=480px){.camera-preview-panel,.camera-preview-video-wrap{width:180px}.camera-preview-video-wrap{height:135px}.camera-toggle-btn{width:2.6rem;height:2.6rem;font-size:1.15rem}}.gom{z-index:400;--gom-ink:#16241d;--gom-card:#fff;--gom-card-2:#f2f6fa;--gom-edge:#00000026;--gom-accent:#f4a300;--gom-accent-ink:#16241d;--gom-title:#16241d;--gom-body:#4a5a63;--gom-veil:#0a16208c;--gom-glow:#ffffff80;--gom-radius:22px;place-items:center;padding:1rem;display:grid;position:fixed;inset:0}.gom-backdrop{background:var(--gom-veil);-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);animation:.25s ease-out gom-fade;position:absolute;inset:0}.gom-card{text-align:center;width:min(430px,92vw);padding:1.9rem 1.5rem 2.6rem;animation:.34s cubic-bezier(.2,.9,.25,1.06) gom-rise}.gom-loss .gom-card{filter:saturate(.55)brightness(.9)}.gom-paper{margin-bottom:1rem;padding:1.4rem 1.2rem 1.6rem}.gom-crest{background:var(--gom-card-2);border:3px solid var(--gom-accent);border-radius:50%;place-items:center;width:86px;height:86px;margin:0 auto .7rem;font-size:44px;line-height:1;animation:.42s cubic-bezier(.2,.9,.25,1.2) 80ms backwards gom-pop;display:grid;position:relative;box-shadow:0 8px 20px #0003}.gom-title{color:#5a3921;text-shadow:0 2px #fff9;margin:0 0 .5rem;font-family:"Baloo 2",Segoe UI,sans-serif;font-size:clamp(1.35rem,5vw,1.7rem);line-height:1.2;position:relative}.gom-body{color:#6b4a2f;margin:0;font-size:.96rem;line-height:1.5;position:relative}.gom-body p{margin:0}.gom-stats{justify-content:center;gap:.55rem;margin-top:1rem;margin-bottom:0;display:flex;position:relative}.gom-stat{background:#fff9;border:2px solid #7a563659;border-radius:13px;flex:1 1 0;min-width:0;padding:.55rem .4rem}.gom-stat-value{color:#5a3921;font-family:"Baloo 2",Segoe UI,sans-serif;font-size:1.3rem;font-weight:700;display:block}.gom-stat-label{letter-spacing:.06em;text-transform:uppercase;color:#7a5636;font-size:.68rem;display:block}.gom-actions{flex-direction:column;gap:.5rem;display:flex;position:relative}.gom-action{background:var(--gom-accent);color:var(--gom-accent-ink);cursor:pointer;box-shadow:0 5px 0 var(--gom-edge), 0 10px 20px #00000038;border:none;border-radius:999px;padding:.8rem 1.6rem;font-family:"Baloo 2",Segoe UI,sans-serif;font-size:1.03rem;font-weight:700;transition:transform .12s,filter .12s}.gom-action:hover{filter:brightness(1.06);transform:translateY(-2px)}.gom-action:active{box-shadow:0 2px 0 var(--gom-edge);transform:translateY(2px)}.gom-action-next{color:#0f3d2e;background:#4caf50;box-shadow:0 5px #2f7d3a,0 10px 20px #00000038}.gom-action-next:active{box-shadow:0 2px #2f7d3a}.gom-action:focus-visible{outline:3px solid var(--gom-title);outline-offset:3px}.gom-action-secondary{color:var(--gom-body);box-shadow:none;background:0 0;padding:.45rem 1rem;font-size:.9rem}.gom-action-secondary:hover{filter:none;text-decoration:underline}.gom-loss .gom-crest{filter:saturate(.85)}.gom-bubble{--gom-card:#f4fbff;--gom-card-2:#dbeef9;--gom-edge:#9fc9de;--gom-accent:#37b6e9;--gom-accent-ink:#06283a;--gom-title:#0d4863;--gom-body:#4a6f82;--gom-veil:#0c344a80;--gom-glow:#78d6ff8c}.gom-bubble.gom-win{--gom-accent:#4ad0a6}.gom-block{--gom-card:#f6fdf4;--gom-card-2:#ddf1da;--gom-edge:#96c58f;--gom-accent:#58ba55;--gom-accent-ink:#0d2a10;--gom-title:#17491d;--gom-body:#4a6b4d;--gom-veil:#0e2a1480;--gom-glow:#96e28c80}.gom-quest{--gom-card:#362c5c;--gom-card-2:#26204a;--gom-edge:#6b5fa3;--gom-accent:#f6c445;--gom-accent-ink:#2a2350;--gom-title:#ffe9b0;--gom-body:#c3badf;--gom-veil:#100b22ad;--gom-glow:#f6c44552;--gom-radius:16px}.gom-quest.gom-loss{--gom-accent:#d8603f;--gom-accent-ink:#2a1410}.gom-match{--gom-card:#3c4a7d;--gom-card-2:#2e3a63;--gom-edge:#6d7fbd;--gom-accent:#f4c766;--gom-accent-ink:#2a2350;--gom-title:#eaf0ff;--gom-body:#b9c4e8;--gom-veil:#0e142ca8;--gom-glow:#a0b4ff4d}.gom-match.gom-win{--gom-accent:#6fe3a0;--gom-accent-ink:#0d2a1c}.gom-feast{--gom-card:#7a5238;--gom-card-2:#5c3c26;--gom-edge:#b3814f;--gom-accent:#ffd98a;--gom-accent-ink:#3a2415;--gom-title:#ffe9c9;--gom-body:#e3c6a6;--gom-veil:#23140aa8;--gom-glow:#ffd98a57}.gom-feast.gom-loss{--gom-accent:#e58a6a;--gom-accent-ink:#34170d}.gom-fishing{--gom-card:#eef7fd;--gom-card-2:#d5e9f6;--gom-edge:#d9b273;--gom-accent:#f0a637;--gom-accent-ink:#35240c;--gom-title:#14476b;--gom-body:#4d6f88;--gom-veil:#0c2e4685;--gom-glow:#ffd68480}.gom-fishing.gom-win{--gom-accent:#48b6d8;--gom-accent-ink:#06283a}.gom-blast{--gom-card:#1b2450;--gom-card-2:#121a3a;--gom-edge:#4a5da8;--gom-accent:#5cd0ff;--gom-accent-ink:#06223a;--gom-title:#e8f6ff;--gom-body:#aebee6;--gom-veil:#050818b3;--gom-glow:#5cd0ff52;--gom-radius:16px}.gom-blast.gom-loss{--gom-accent:#ff8a5c;--gom-accent-ink:#2e1206}@keyframes gom-fade{0%{opacity:0}to{opacity:1}}@keyframes gom-rise{0%{opacity:0;transform:translateY(22px)scale(.94)}to{opacity:1;transform:translateY(0)scale(1)}}@keyframes gom-pop{0%{opacity:0;transform:scale(.4)rotate(-14deg)}to{opacity:1;transform:scale(1)rotate(0)}}@media (prefers-reduced-motion:reduce){.gom-backdrop,.gom-card,.gom-crest{animation:none}.gom-action{transition:none}}.sign-hint{z-index:160;flex-direction:column;align-items:flex-start;gap:.5rem;display:flex;position:fixed;bottom:16px;left:16px}.sign-hint-panel{animation:.18s ease-out sign-hint-in}@keyframes sign-hint-in{0%{opacity:0;transform:translateY(8px)scale(.96)}to{opacity:1;transform:translateY(0)scale(1)}}.sign-hint-toggle{color:#ffe9b0;cursor:pointer;background:#16241dd1;border:none;border-radius:999px;padding:.5rem 1rem;font-family:"Baloo 2",Segoe UI,sans-serif;font-size:.85rem;font-weight:700;transition:transform .15s,background .15s;box-shadow:0 6px 16px #00000047}.sign-hint-toggle:hover{background:#16241df0;transform:translateY(-2px)}.sign-hint-toggle-open{background:var(--signa-amber-500,#f4a300);color:#16241d}@media (width<=560px){.sign-hint{bottom:10px;left:10px}.sign-hint-toggle{padding:.42rem .8rem;font-size:.78rem}}@media (prefers-reduced-motion:reduce){.sign-hint-panel{animation:none}.sign-hint-toggle{transition:none}}.game-stage.bb-game-stage{font-family:"Baloo 2", var(--font-display,sans-serif), system-ui, sans-serif;touch-action:none!important;overscroll-behavior:none!important;background:#0284c7!important;overflow:hidden!important}.balloon-pop-stage{position:absolute;inset:0;overflow:hidden}.balloon-pop-stage canvas{display:block}.bb-hud-top{top:max(.75rem, env(safe-area-inset-top,0px) + .4rem);left:max(1rem, env(safe-area-inset-left,0px) + .5rem);right:max(1rem, env(safe-area-inset-right,0px) + .5rem);z-index:10;pointer-events:none;justify-content:space-between;align-items:center;display:flex;position:absolute}.bb-hud-left,.bb-hud-right{pointer-events:auto;align-items:center;gap:.6rem;display:flex}.bb-back-btn{color:#f0f9ff;letter-spacing:.02em;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#0f172ac2;border:1.5px solid #38bdf880;border-radius:9999px;align-items:center;gap:.35rem;padding:.42rem .95rem;font-size:.9rem;font-weight:700;text-decoration:none;transition:all .2s cubic-bezier(.4,0,.2,1);display:inline-flex;box-shadow:0 4px 14px #0000004d,0 0 10px #38bdf833}.bb-back-btn:hover{color:#fff;background:#38bdf842;border-color:#38bdf8;transform:translateY(-2px);box-shadow:0 6px 18px #00000059,0 0 16px #38bdf866}.bb-back-btn:active{transform:translateY(0)}.bb-back-arrow{font-size:1.05rem;line-height:1}.bb-level-pill{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);color:#fff;letter-spacing:.04em;pointer-events:auto;background:#0f172ac7;border:1.5px solid #00f0ff8c;border-radius:9999px;align-items:center;gap:.45rem;padding:.38rem 1.1rem;font-size:.92rem;font-weight:800;display:inline-flex;box-shadow:0 4px 16px #00000059,0 0 14px #00f0ff40}.bb-pill-icon{font-size:1.1rem;line-height:1}.bb-pill-title{color:#38bdf8;font-weight:900}.bb-pill-divider{color:#ffffff59}.bb-pill-range{color:#fff}.bb-stat-badge{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#0f172ac7;border-radius:9999px;align-items:center;gap:.45rem;padding:.32rem .8rem;display:flex;box-shadow:0 4px 14px #0000004d}.bb-progress-badge{border:1.5px solid #10b98199;box-shadow:0 4px 14px #0000004d,0 0 10px #10b98133}.bb-streak-badge{border:1.5px solid #fbbf2499;transition:all .25s;box-shadow:0 4px 14px #0000004d,0 0 10px #fbbf2440}.bb-streak-super{background:#0e7490d9;border-color:#00f0ff;animation:1s infinite alternate bb-pulse-glow;box-shadow:0 4px 14px #0000004d,0 0 16px #00f0ff99}.bb-streak-super .bb-stat-lbl{color:#a5f3fc;font-weight:800}.bb-foam-badge{border:1.5px solid #38bdf899;transition:all .3s;box-shadow:0 4px 14px #0000004d,0 0 10px #38bdf840}.bb-foam-warn{border-color:#f59e0bcc;box-shadow:0 4px 14px #0000004d,0 0 12px #f59e0b66}.bb-foam-danger{background:#881337d9;border-color:#f43f5e;animation:.8s infinite alternate bb-danger-pulse;box-shadow:0 4px 14px #0000004d,0 0 18px #f43f5eb3}.bb-foam-meter{background:#ffffff26;border:1px solid #fff3;border-radius:999px;width:44px;height:8px;margin-left:.2rem;overflow:hidden}.bb-foam-fill{background:linear-gradient(90deg,#00f0ff,#38bdf8);border-radius:999px;height:100%;transition:width .35s cubic-bezier(.4,0,.2,1)}.bb-foam-warn .bb-foam-fill{background:linear-gradient(90deg,#f59e0b,#fbbf24)}.bb-foam-danger .bb-foam-fill{background:linear-gradient(90deg,#f43f5e,#f05)}.bb-stat-icon{font-size:1.05rem;line-height:1}.bb-stat-info{flex-direction:column;line-height:1.05;display:flex}.bb-stat-val{color:#fff;font-variant-numeric:tabular-nums;font-size:.88rem;font-weight:800}.bb-stat-lbl{color:#94a3b8;letter-spacing:.05em;font-size:.6rem;font-weight:700}@keyframes bb-pulse-glow{0%{box-shadow:0 0 6px #00f0ff4d}to{box-shadow:0 0 16px #00f0ffcc}}@keyframes bb-danger-pulse{0%{border-color:#f43f5e;box-shadow:0 0 8px #f43f5e66}to{border-color:#f05;box-shadow:0 0 20px #f43f5ee6}}.bb-prompt-container{z-index:10;pointer-events:none;max-width:90vw;animation:.3s ease-out forwards bb-fade-in;position:absolute;top:clamp(3.7rem,10.5vh,4.8rem);left:50%;transform:translate(-50%)}.bb-prompt-pill{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);color:#e0f2fe;letter-spacing:.02em;background:#0f172ad1;border:1.5px solid #38bdf880;border-radius:9999px;align-items:center;gap:.5rem;padding:.38rem 1.05rem;font-size:.86rem;font-weight:600;display:inline-flex;box-shadow:0 4px 16px #00000059,0 0 12px #38bdf833}.bb-prompt-complete{color:#a7f3d0;border-color:#10b981a6;box-shadow:0 4px 16px #00000059,0 0 14px #10b9814d}.bb-prompt-icon{font-size:1rem;line-height:1}.bb-hud-bottom{bottom:max(.65rem, env(safe-area-inset-bottom,0px) + .35rem);z-index:10;pointer-events:none;flex-direction:column;align-items:center;gap:.45rem;width:100%;max-width:600px;padding:0 1rem;display:flex;position:absolute;left:50%;transform:translate(-50%)}.bb-actions{pointer-events:auto;justify-content:center;gap:.75rem;display:flex}.bb-btn{letter-spacing:.03em;cursor:pointer;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border:1.5px solid #0000;border-radius:9999px;align-items:center;gap:.45rem;padding:.48rem 1.15rem;font-family:inherit;font-size:.88rem;font-weight:700;transition:all .2s cubic-bezier(.4,0,.2,1);display:inline-flex;box-shadow:0 4px 14px #00000059}.bb-btn-icon{font-size:1rem;font-weight:900;line-height:1}.bb-btn-correct{color:#fff;text-shadow:0 1px 2px #00000073;background:linear-gradient(135deg,#10b981eb 0%,#059669f5 100%);border-color:#6ee7b7b3}.bb-btn-correct:hover:not(:disabled){background:linear-gradient(135deg,#34d399f5 0%,#10b981fa 100%);transform:translateY(-2px);box-shadow:0 6px 18px #10b98173,0 0 14px #34d39959}.bb-btn-miss{color:#fff;text-shadow:0 1px 2px #00000073;background:linear-gradient(135deg,#f43f5eeb 0%,#e11d48f5 100%);border-color:#fda4afb3}.bb-btn-miss:hover:not(:disabled){background:linear-gradient(135deg,#fb7185f5 0%,#f43f5efa 100%);transform:translateY(-2px);box-shadow:0 6px 18px #f43f5e73,0 0 14px #fb718559}.bb-btn:active:not(:disabled){transform:translateY(0)}.bb-btn:disabled{opacity:.55;cursor:not-allowed;filter:grayscale(40%)}.bb-help-note{color:#ffffffeb;text-align:center;text-shadow:0 1px 3px #000000bf;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);letter-spacing:.02em;background:#0f172a99;border:1px solid #ffffff1f;border-radius:9999px;margin:0;padding:.22rem .85rem;font-size:.74rem;font-weight:500}@keyframes bb-fade-in{0%{opacity:0;transform:translate(-50%)translateY(-6px)}to{opacity:1;transform:translate(-50%)translateY(0)}}@media (height<=520px){.bb-hud-top{top:max(.4rem, env(safe-area-inset-top,0px) + .2rem)}.bb-back-btn{padding:.32rem .75rem;font-size:.82rem}.bb-level-pill{padding:.28rem .85rem;font-size:.84rem}.bb-stat-badge{padding:.24rem .65rem}.bb-stat-val{font-size:.8rem}.bb-prompt-container{top:3.2rem}.bb-prompt-pill{padding:.26rem .8rem;font-size:.78rem}.bb-hud-bottom{bottom:max(.35rem, env(safe-area-inset-bottom,0px) + .2rem);gap:.25rem}.bb-btn{padding:.36rem .9rem;font-size:.8rem}.bb-help-note{padding:.15rem .65rem;font-size:.68rem}}.quest-stage{position:absolute;inset:0}.quest-stage canvas{display:block}.quest-game-stage .game-hud-bottom{pointer-events:none;background:0 0!important}.quest-game-stage .game-hud-bottom .game-actions{pointer-events:auto}.sm-stage{background:linear-gradient(#2d3a63 0%,#3f4f80 45%,#59689b 100%);overflow-y:auto}.sm-body{flex-direction:column;justify-content:flex-start;align-items:center;gap:.9rem;padding:5rem 1rem 1.5rem;display:flex;position:absolute;inset:0;overflow-y:auto}.sm-stats{flex-wrap:wrap;justify-content:center;gap:.6rem;display:flex}.sm-stat{color:#eaf0ff;background:#ffffff24;border-radius:999px;padding:.35rem .9rem;font-family:"Baloo 2",Segoe UI,sans-serif;font-size:.9rem;transition:background .2s}.sm-stat strong{color:#fff}.sm-stat-hot{color:#2a2350;background:#f4a300e6}.sm-stat-hot strong{color:#2a2350}.sm-grid{grid-template-columns:repeat(var(--sm-cols,4), minmax(0, 132px));justify-content:center;gap:clamp(.5rem,1.6vw,.9rem);width:min(660px,94vw);display:grid}.sm-card{aspect-ratio:3/4;cursor:pointer;perspective:800px;background:0 0;border:none;padding:0}.sm-card:disabled{cursor:default}.sm-card-inner{width:100%;height:100%;transform-style:preserve-3d;transition:transform .42s cubic-bezier(.4,.1,.2,1);display:block;position:relative}.sm-card-up .sm-card-inner{transform:rotateY(180deg)}.sm-card-back,.sm-card-face{backface-visibility:hidden;border-radius:14px;place-items:center;display:grid;position:absolute;inset:0;overflow:hidden;box-shadow:0 6px 16px #0a122859}.sm-card-back{background:linear-gradient(150deg,#4a5c96 0%,#35447a 100%);border:3px solid #6d7fbd}.sm-card-back-mark{opacity:.55;font-size:clamp(1.4rem,4vw,2rem)}.sm-card-face{background:#f6f9ff;border:3px solid #cfdbf4;transform:rotateY(180deg)}.sm-card-face-letter{background:linear-gradient(#ffe9b0,#f4c766);border-color:#d9a63c}.sm-card-letter{color:#2a2350;font-family:"Baloo 2",Segoe UI,sans-serif;font-size:clamp(1.6rem,6vw,2.6rem);font-weight:700}.sm-card-face .sign-ref{width:100%;height:100%;box-shadow:none;border-radius:0}.sm-card-cleared .sm-card-face{opacity:.55;border-color:#4fbf8b;box-shadow:inset 0 0 0 3px #4fbf8ba6}.sm-prompt{color:#eaf0ff;text-align:center;background:#0a12288c;border-radius:14px;max-width:min(620px,92vw);margin:0;padding:.6rem 1.2rem;font-family:"Baloo 2",Segoe UI,sans-serif}.sm-prompt-quiet{background:#0a122852;font-size:.9rem}.sm-prompt-hit{background:#2f9c78eb}.sm-prompt-miss{background:#d85a49eb}.sm-hearts{gap:.25rem;font-size:clamp(1.1rem,3.2vw,1.4rem);line-height:1;display:flex}.sm-heart{color:#ff5a4d;filter:drop-shadow(0 1px 1px #00000040)}.sm-heart-lost{color:#ffffff47}.sm-actions{position:static;transform:none}@media (prefers-reduced-motion:reduce){.sm-card-inner{transition:none}}.game-stage.sb-game-stage{touch-action:none!important;overscroll-behavior:none!important;background:#05030f!important;overflow:hidden!important}.sign-blast-stage{position:absolute;inset:0;overflow:hidden}.sign-blast-stage canvas{display:block}.sb-result-flash{z-index:4;color:#fff;pointer-events:none;border-radius:50%;justify-content:center;align-items:center;width:clamp(64px,14vw,96px);height:clamp(64px,14vw,96px);font-size:clamp(2rem,6vw,3rem);font-weight:700;animation:.9s ease-out forwards sb-flash-pop;display:flex;position:absolute;top:46%;left:50%;transform:translate(-50%,-50%)}.sb-result-success{background:#2f9c78e6}.sb-result-fail{background:#d85a49e6}@keyframes sb-flash-pop{0%{opacity:0;transform:translate(-50%,-50%)scale(.6)}25%{opacity:1;transform:translate(-50%,-50%)scale(1)}to{opacity:0;transform:translate(-50%,-50%)scale(1.1)}}.sb-hearts-hud{gap:.3rem;font-size:1.35rem;line-height:1;display:flex}.sb-heart{color:#5cd0ff;filter:drop-shadow(0 2px 4px #0000008c)}.sb-heart-lost{color:#ffffff38;filter:none}.game-stage .game-hud-top{pointer-events:none}.game-stage .game-hud-top .learn-back,.game-stage .game-hud-top .sb-hearts-hud{pointer-events:auto}.sb-hud-bottom{pointer-events:none;background:0 0!important}.sb-hud-bottom .game-actions{pointer-events:auto}.sb-skip-intro-btn{top:max(1rem, env(safe-area-inset-top,0px) + .6rem);right:max(1.5rem, env(safe-area-inset-right,0px) + .8rem);z-index:20;color:#e0f2fe;letter-spacing:.04em;cursor:pointer;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);pointer-events:auto;background:#0f172ad1;border:1.5px solid #00f0ffa6;border-radius:9999px;align-items:center;gap:.4rem;padding:.45rem 1rem;font-family:"Baloo 2",Segoe UI,sans-serif;font-size:.92rem;font-weight:700;transition:all .2s cubic-bezier(.4,0,.2,1);display:inline-flex;position:absolute;box-shadow:0 4px 14px #0009,0 0 12px #00f0ff40}.sb-skip-intro-btn:hover{color:#fff;background:#00f0ff47;border-color:#00f0ff;transform:translateY(-2px);box-shadow:0 6px 18px #000000b3,0 0 18px #00f0ff80}.sb-skip-intro-btn:active{transform:translateY(0)}.feast-stage{width:100%;height:100%;position:absolute;inset:0}.feast-stage canvas{display:block}.feast-endless-hud{font-family:var(--font-display), "Baloo 2", sans-serif;align-items:center;gap:.6rem;font-weight:800;display:flex}.feast-clock{font-variant-numeric:tabular-nums;color:#ffe9b0;text-shadow:0 2px 4px #0000008c;font-size:1.05rem}.feast-tier{color:#ffd98a;background:#ffd98a2e;border:1px solid #ffd98a73;border-radius:999px;padding:.1rem .5rem;font-size:.78rem}.fishing-stage{position:absolute;inset:0}.fishing-stage canvas{display:block}.ft-result-flash{z-index:4;color:#fff;pointer-events:none;border-radius:50%;justify-content:center;align-items:center;width:clamp(64px,14vw,96px);height:clamp(64px,14vw,96px);font-size:clamp(2rem,6vw,3rem);font-weight:700;animation:.4s ease-out ft-flash-pop;display:flex;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.ft-result-success{background:#2f9c78e6}.ft-result-fail{background:#d85a49e6}@keyframes ft-flash-pop{0%{opacity:0;transform:translate(-50%,-50%)scale(.5)}to{opacity:1;transform:translate(-50%,-50%)scale(1)}}.ft-hearts-hud{gap:.25rem;font-size:clamp(1.1rem,3.2vw,1.4rem);line-height:1;display:flex}.ft-heart{color:#ef6a5a;filter:drop-shadow(0 1px 1px #0003)}.ft-heart-lost{color:#ffffff59}.ft-hold-button{touch-action:none;-webkit-user-select:none;user-select:none}.ft-hold-button-active{filter:brightness(1.15);transform:scale(.96)}@media (prefers-reduced-motion:reduce){.ft-result-flash{animation:none}}@media (width<=420px){.ft-hearts-hud{font-size:1rem}}.ft-game-hud-bottom{pointer-events:none;padding-bottom:1.25rem;background:0 0!important}.game-stage:has(.fishing-stage) .game-hud-bottom{pointer-events:none;padding-bottom:1.25rem;background:0 0!important}.ft-game-hud-bottom>*{pointer-events:auto}.game-stage:has(.fishing-stage) .game-hud-bottom>*{pointer-events:auto}.admin-page{max-width:1600px}.admin-scene{background:linear-gradient(#f4f7f9,#edf3f6 52%,#f7fafb);width:100%;min-height:calc(100vh - 2rem);position:relative;overflow:hidden}.admin-scene .dash-header h1,.admin-scene .panel-head h2,.admin-scene .kpi-value,.admin-scene .dash-sub,.admin-scene .panel-note,.admin-scene .kpi-label,.admin-scene .kpi-foot{text-shadow:none}.admin-scene .dash-sub,.admin-scene .panel-note,.admin-scene .kpi-foot,.admin-scene .kpi-label{color:var(--signa-muted)}.admin-scene>.learn-page{z-index:5;background:0 0;width:100%;min-height:auto;max-height:calc(100vh - 2rem);padding:1.75rem 1.25rem 2rem;position:relative}.admin-scene>.learn-page.admin-page-themed{background:var(--signa-surface)}.admin-page-themed{background:var(--signa-surface);border:1px solid var(--signa-border);box-shadow:var(--signa-shadow-md);border-radius:var(--signa-radius-lg);flex-direction:column;gap:1rem;width:min(96%,1560px);max-width:1560px;margin:1rem auto 0;padding:1.5rem 1.25rem 1.25rem;display:flex}.admin-modal-backdrop{z-index:99999!important;background:#0f172abf!important;justify-content:center!important;align-items:center!important;width:100vw!important;height:100vh!important;padding:1.5rem!important;display:flex!important;position:fixed!important;inset:0!important;overflow:hidden!important}@keyframes admin-modal-in{0%{opacity:0}to{opacity:1}}.admin-modal{animation:.15s ease-out admin-modal-in;background:#fff!important;border:1px solid #e2e8f0!important;border-radius:16px!important;flex-direction:column!important;width:min(860px,94vw)!important;height:min(82vh,660px)!important;max-height:82vh!important;margin:auto!important;display:flex!important;position:relative!important;overflow:hidden!important;box-shadow:0 24px 60px #00000038!important}.admin-modal-close{color:#64748b!important;cursor:pointer!important;background:#f8fafc!important;border:1px solid #e2e8f0!important;border-radius:8px!important;justify-content:center!important;align-items:center!important;width:2rem!important;height:2rem!important;font-size:1rem!important;line-height:1!important;transition:background-color .15s,color .15s!important;display:flex!important}.admin-modal-close:hover{color:#ef4444!important;background:#fee2e2!important;border-color:#fca5a5!important}.admin-modal-header{background:#fff!important;border-bottom:1px solid #e2e8f0!important;flex-shrink:0!important;justify-content:space-between!important;align-items:center!important;padding:1.15rem 1.75rem!important;display:flex!important}.admin-modal-icon{color:#fff;background:linear-gradient(135deg,#0284c7 0%,#0369a1 100%);border-radius:10px;flex-shrink:0;justify-content:center;align-items:center;width:2.6rem;height:2.6rem;font-size:1.2rem;font-weight:800;display:flex;box-shadow:0 2px 8px #0284c747}.admin-modal-title{color:#0f172a;letter-spacing:-.01em;margin:0;font-size:1.2rem;font-weight:800}.admin-modal-subtitle{color:#64748b;margin:.15rem 0 0;font-size:.82rem;font-weight:500}.admin-modal-body{overscroll-behavior:contain!important;flex:auto!important;min-height:0!important;padding:1.25rem 1.75rem!important;overflow-y:auto!important}.admin-form-section{background:#f8fafc;border:1px solid #e2e8f0;border-radius:12px;padding:1.15rem 1.35rem}.admin-section-title{color:#0f172a;align-items:center;gap:.5rem;margin:0 0 1rem;font-size:.92rem;font-weight:800;display:flex}.admin-form-grid{grid-template-columns:repeat(3,1fr);gap:.9rem 1.15rem;display:grid}@media (width<=860px){.admin-form-grid{grid-template-columns:repeat(2,1fr)}}@media (width<=640px){.admin-form-grid{grid-template-columns:1fr!important;gap:.75rem!important}.admin-modal-backdrop{padding:.4rem!important;padding-top:max(.4rem, env(safe-area-inset-top,0px))!important;padding-bottom:max(.4rem, env(safe-area-inset-bottom,0px))!important;padding-left:max(.4rem, env(safe-area-inset-left,0px))!important;padding-right:max(.4rem, env(safe-area-inset-right,0px))!important;box-sizing:border-box!important;justify-content:center!important;align-items:center!important;display:flex!important}.admin-modal{width:100%!important;max-width:100%!important;height:100%!important;max-height:calc(100vh - .8rem)!important;max-height:calc(100dvh - env(safe-area-inset-top,0px) - env(safe-area-inset-bottom,0px) - .8rem)!important;border-radius:14px!important;flex-direction:column!important;margin:auto!important;display:flex!important;overflow:hidden!important;box-shadow:0 12px 40px #00000047!important}.admin-modal-header{background:#fff!important;border-bottom:1px solid #e2e8f0!important;flex-shrink:0!important;padding:.75rem 1rem!important}.admin-modal-icon{border-radius:8px!important;width:2.1rem!important;height:2.1rem!important;font-size:1rem!important}.admin-modal-title{font-size:1.05rem!important}.admin-modal-subtitle{display:none!important}.admin-modal-body{-webkit-overflow-scrolling:touch!important;overscroll-behavior:contain!important;flex:auto!important;min-height:0!important;padding:.85rem 1rem!important;overflow-y:auto!important}.admin-form-section{border-radius:10px!important;padding:.85rem .9rem!important}.admin-section-title{margin-bottom:.75rem!important;font-size:.88rem!important}.admin-input,.admin-select{padding:.52rem .75rem!important;font-size:16px!important}.admin-modal-footer{padding:.75rem 1rem!important;padding-bottom:max(.75rem, env(safe-area-inset-bottom,0px))!important;z-index:20!important;background:#fff!important;border-top:1px solid #e2e8f0!important;flex-direction:row!important;flex-shrink:0!important;justify-content:stretch!important;align-items:center!important;gap:.6rem!important;display:flex!important;position:sticky!important;bottom:0!important;box-shadow:0 -4px 14px #0f172a14!important}.admin-modal-footer button,.admin-modal-footer .admin-btn-secondary,.admin-modal-footer .admin-btn-primary{text-align:center!important;box-sizing:border-box!important;border-radius:8px!important;flex:1 1 0!important;justify-content:center!important;align-items:center!important;width:auto!important;min-height:44px!important;padding:.55rem .75rem!important;font-size:.92rem!important;font-weight:700!important;display:inline-flex!important}}.admin-form-group{flex-direction:column;gap:.35rem;min-width:0;display:flex}.admin-form-group.admin-group-full{grid-column:1/-1}.admin-label{color:#334155;margin:0;font-size:.82rem;font-weight:700}.admin-input,.admin-select{color:#0f172a!important;width:100%!important;box-shadow:none!important;background:#fff!important;border:1.5px solid #cbd5e1!important;border-radius:8px!important;padding:.55rem .85rem!important;font-family:inherit!important;font-size:.9rem!important;transition:border-color .15s!important}.admin-input:hover,.admin-select:hover{border-color:#94a3b8!important}.admin-input:focus,.admin-select:focus{border-color:#0284c7!important;outline:none!important;box-shadow:0 0 0 3px #0284c726!important}.admin-checkbox-card{cursor:pointer!important;-webkit-user-select:none!important;user-select:none!important;background:#fff!important;border:1.5px solid #cbd5e1!important;border-radius:8px!important;align-items:center!important;gap:.85rem!important;width:100%!important;min-height:40px!important;padding:.6rem .9rem!important;display:flex!important}.admin-checkbox-input{accent-color:#0284c7!important;cursor:pointer!important;flex-shrink:0!important;width:1.15rem!important;height:1.15rem!important}.admin-checkbox-desc{flex-direction:column;line-height:1.2;display:flex}.admin-checkbox-title{color:#0f172a;font-size:.86rem;font-weight:700}.admin-checkbox-sub{color:#64748b;font-size:.73rem}.admin-modal-footer{background:#fff!important;border-top:1px solid #e2e8f0!important;flex-shrink:0!important;justify-content:flex-end!important;align-items:center!important;gap:.75rem!important;padding:.9rem 1.75rem!important;display:flex!important}.admin-btn-primary{color:#fff!important;cursor:pointer!important;background:#0284c7!important;border:none!important;border-radius:8px!important;padding:.58rem 1.5rem!important;font-size:.9rem!important;font-weight:700!important;transition:background-color .15s!important;box-shadow:0 2px 5px #0284c740!important}.admin-btn-primary:hover:not(:disabled){background:#0369a1!important}.admin-btn-primary:disabled{opacity:.65!important;cursor:not-allowed!important}.admin-btn-secondary{color:#475569!important;cursor:pointer!important;background:#fff!important;border:1.5px solid #cbd5e1!important;border-radius:8px!important;padding:.52rem 1.25rem!important;font-size:.9rem!important;font-weight:600!important;transition:background-color .15s,border-color .15s!important}.admin-btn-secondary:hover:not(:disabled){color:#0f172a!important;background:#f1f5f9!important;border-color:#94a3b8!important}.admin-hint{color:var(--signa-muted);font-size:.8rem;font-weight:600}.admin-add-button{font-family:var(--font-display);color:#fff;background:var(--signa-teal-600);cursor:pointer;box-shadow:var(--signa-shadow-sm);border:none;border-radius:999px;justify-content:center;align-items:center;margin-bottom:1.25rem;padding:.85rem 1.4rem;font-size:.98rem;font-weight:800;transition:background .15s,transform .15s,box-shadow .15s;display:inline-flex}.admin-add-button:hover{background:var(--signa-teal-700)}.admin-add-button:active{transform:translateY(0)}.admin-checkbox{background:var(--signa-mint-50);border:1.5px solid var(--signa-border);border-radius:var(--signa-radius-md);text-transform:none;color:var(--signa-teal-900);cursor:pointer;align-items:center;gap:.6rem;padding:.7rem .9rem;font-size:.9rem;font-weight:700;flex-direction:row!important;margin-bottom:0!important;display:flex!important}.admin-checkbox input{width:1.15rem;height:1.15rem;accent-color:var(--signa-teal-600);cursor:pointer}.admin-form-actions button[type=submit]{color:#fff;background:var(--signa-teal-700);box-shadow:0 10px 20px #2f977829}.admin-form-actions button[type=button]{color:var(--signa-teal-900);background:var(--signa-mint-100);border:1px solid var(--signa-border)}.admin-form-actions button:not(:disabled):hover{filter:brightness(1.05)}.admin-form-actions button:disabled{opacity:.55;cursor:not-allowed;box-shadow:none}.admin-table-wrap{flex-direction:column;flex:1;width:100%;min-height:0;margin-top:1rem;display:flex;overflow:auto}.admin-table{border-collapse:collapse;table-layout:fixed;border-radius:var(--signa-radius-md);background:#fff;border:1px solid #e2e8f0;width:100%;overflow:hidden;box-shadow:0 1px 3px #0000000d}.admin-name-cell{color:#0f172a;vertical-align:middle;font-weight:600}.admin-user-fullname{color:#0f172a;white-space:nowrap;text-overflow:ellipsis;font-size:.95rem;font-weight:600;display:block;overflow:hidden}.admin-email-cell{color:#475569;white-space:nowrap;text-overflow:ellipsis;font-size:.9rem;overflow:hidden}.admin-avatar{background:var(--signa-mint-50);border:1px solid var(--signa-border);border-radius:999px;flex-shrink:0;justify-content:center;align-items:center;width:1.9rem;height:1.9rem;font-size:1.05rem;display:flex}.admin-avatar-lg{vertical-align:middle;width:2.6rem;height:2.6rem;margin-right:.6rem;font-size:1.4rem}.learn-header h1:has(.admin-avatar-lg){align-items:center;display:flex}.admin-pagination{background:var(--signa-mint-50);border:1px solid var(--signa-border);border-radius:var(--signa-radius-md);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.85rem;margin-top:1rem;padding:.9rem 1rem;display:flex}.admin-pagination-summary{color:var(--signa-teal-900);font-size:.95rem;font-weight:600}.admin-pagination-controls{flex-wrap:wrap;gap:.5rem;display:flex}.admin-pagination-controls button{font-family:var(--font-display);border-radius:var(--signa-radius-sm);border:1px solid var(--signa-border);background:var(--signa-surface);color:var(--signa-teal-900);cursor:pointer;padding:.6rem 1rem;font-size:.9rem;font-weight:700;transition:background .15s,border-color .15s,transform .15s}.admin-pagination-controls button:hover:not(:disabled){background:var(--signa-mint-100)}.admin-pagination-controls button:disabled{opacity:.55;cursor:not-allowed;background:var(--signa-surface)}.admin-table th,.admin-table td{text-align:left;vertical-align:middle;border-bottom:1px solid #e2e8f0;padding:.85rem 1.1rem;font-size:.9rem}.admin-table th{font-family:var(--font-display,inherit);text-transform:uppercase;letter-spacing:.05em;border-bottom:2px solid #cbd5e1;font-size:.82rem;font-weight:700;color:#1e293b!important;background:#f8fafc!important}.admin-desktop-table{display:block}.admin-mobile-cards{display:none}@media (width<=767.98px){.admin-desktop-table{display:none!important}.admin-mobile-cards{grid-template-columns:1fr;gap:.65rem;margin-bottom:1rem;display:grid!important}.admin-pagination{flex-direction:column;align-items:stretch;gap:.65rem;padding:.75rem!important}.admin-pagination-controls{justify-content:space-between;width:100%}.admin-pagination-controls button{padding:.45rem .65rem;font-size:.82rem}}@media (width>=500px) and (width<=767.98px){.admin-mobile-cards{grid-template-columns:repeat(2,1fr)!important}}.admin-user-card{background:#fff;border:1px solid #e2e8f0;border-radius:12px;flex-direction:column;gap:.65rem;padding:.8rem .9rem;transition:transform .15s,box-shadow .15s;display:flex;box-shadow:0 1px 3px #0000000a}.admin-user-card:active{transform:translateY(1px)}.admin-user-card-top{align-items:center;gap:.75rem;display:flex}.admin-user-avatar{text-transform:uppercase;border-radius:10px;justify-content:center;align-items:center;width:38px;min-width:38px;height:38px;font-size:1rem;font-weight:700;display:flex}.admin-avatar-admin{color:#991b1b;background:#fee2e2}.admin-avatar-teacher{color:#92400e;background:#fef3c7}.admin-avatar-student{color:#0369a1;background:#e0f2fe}.admin-user-card-meta{flex:1;min-width:0}.admin-user-card-name{color:#0f172a;white-space:nowrap;text-overflow:ellipsis;margin-bottom:.25rem;font-size:.95rem;font-weight:700;line-height:1.25;overflow:hidden}.admin-user-card-badges{flex-wrap:wrap;align-items:center;gap:.35rem;display:flex}.admin-user-card-badges .admin-role-badge,.admin-user-card-badges .admin-status-badge{padding:.12rem .48rem!important;font-size:.68rem!important}.admin-user-details-btn{color:#0f766e;cursor:pointer;background:#f0fdfa;border:1px solid #99f6e4;border-radius:8px;justify-content:center;align-items:center;gap:.45rem;width:100%;padding:.45rem .75rem;font-size:.82rem;font-weight:600;transition:all .15s;display:flex}.admin-user-details-btn:hover,.admin-user-details-btn:active{color:#115e59;background:#ccfbf1;border-color:#5eead4}.admin-details-modal{width:min(540px,94vw)!important;height:auto!important;max-height:85vh!important}.admin-details-hero{background:#f8fafc;border:1px solid #e2e8f0;border-radius:12px;align-items:center;gap:.85rem;margin-bottom:1rem;padding:.85rem 1rem;display:flex}.admin-hero-avatar{border-radius:12px!important;width:46px!important;min-width:46px!important;height:46px!important;font-size:1.25rem!important}.admin-hero-meta{flex:1;min-width:0}.admin-hero-name{color:#0f172a;margin:0;font-size:1.15rem;font-weight:700;line-height:1.25}.admin-details-grid{grid-template-columns:repeat(2,1fr);gap:.6rem;display:grid}@media (width<=520px){.admin-details-grid{grid-template-columns:1fr}}.admin-detail-card{background:#f8fafc;border:1px solid #e2e8f0;border-radius:8px;flex-direction:column;gap:.18rem;padding:.6rem .75rem;display:flex}.admin-detail-card.admin-detail-full{grid-column:1/-1}.admin-detail-label{text-transform:uppercase;letter-spacing:.04em;color:#64748b;font-size:.66rem;font-weight:600}.admin-detail-value{color:#0f172a;word-break:break-word;font-size:.88rem;font-weight:600}@media (width<=480px){.admin-details-modal .admin-modal-footer{flex-direction:column-reverse;gap:.5rem;align-items:stretch!important}.admin-details-modal .admin-modal-footer>div{gap:.5rem;width:100%;display:flex}.admin-details-modal .admin-modal-footer>div button{text-align:center;flex:1;justify-content:center}.admin-details-modal .admin-modal-footer .admin-delete-button{text-align:center;width:100%}}.admin-table tr:last-child td{border-bottom:none}.admin-row-actions{white-space:nowrap;justify-content:flex-end;gap:.5rem;display:flex}.admin-edit-button,.admin-row-actions button:not(.admin-delete-button){color:#0f172a;cursor:pointer;background:#fff;border:1px solid #cbd5e1;border-radius:6px;padding:.35rem .85rem;font-size:.82rem;font-weight:600;transition:all .15s}.admin-edit-button:hover:not(:disabled),.admin-row-actions button:not(.admin-delete-button):hover:not(:disabled){color:#fff;background:#0284c7;border-color:#0284c7}.admin-delete-button{cursor:pointer;border-radius:6px;padding:.35rem .85rem;font-size:.82rem;font-weight:600;transition:all .15s;color:#dc2626!important;background:#fff!important;border:1px solid #fca5a5!important}.admin-delete-button:hover:not(:disabled){color:#fff!important;background:#dc2626!important;border-color:#dc2626!important}.admin-row-actions button:disabled{opacity:.45;cursor:not-allowed}.admin-link{color:#0284c7;font-size:.85rem;font-weight:600;text-decoration:none}.admin-link:hover{text-decoration:underline}.admin-role-badge{text-transform:uppercase;letter-spacing:.04em;border-radius:9999px;align-items:center;padding:.22rem .65rem;font-size:.75rem;font-weight:700;display:inline-flex}.admin-role-admin{color:#991b1b;background:#fee2e2;border:1px solid #fca5a5}.admin-role-teacher{color:#92400e;background:#fef3c7;border:1px solid #fde68a}.admin-role-student{color:#0369a1;background:#e0f2fe;border:1px solid #bae6fd}.admin-status-badge{border-radius:9999px;align-items:center;padding:.22rem .65rem;font-size:.78rem;font-weight:600;display:inline-flex}.admin-status-badge.is-active{color:#15803d;background:#dcfce7;border:1px solid #86efac}.admin-status-badge.is-inactive{color:#991b1b;background:#fee2e2;border:1px solid #fca5a5}.admin-status-complete{color:#15803d;background:#dcfce7}.admin-status-locked{color:#64748b;background:#f1f5f9}.admin-progress-category{margin-bottom:1.75rem}.admin-progress-category-header{align-items:center;gap:.75rem;margin-bottom:.75rem;display:flex}.admin-level-grid{grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:.85rem;display:grid}.admin-level-card{border-radius:var(--signa-radius-md);border:2px solid var(--signa-border);background:var(--signa-surface);box-shadow:var(--signa-shadow-sm);padding:.9rem}.admin-level-card-link{color:inherit;text-decoration:none;transition:transform .18s,box-shadow .18s,border-color .18s;display:block}.admin-level-card-link:hover{border-color:var(--signa-teal-200);box-shadow:0 16px 0 #0f3d2e14, var(--signa-shadow-sm);transform:translateY(-3px)}.admin-capture-card{padding:.75rem}.admin-capture-image{object-fit:cover;border-radius:.8rem;width:100%;min-height:140px;margin-bottom:.75rem}.admin-capture-grid{grid-template-columns:repeat(auto-fit,minmax(260px,1fr))}.admin-level-title{font-family:var(--font-display);color:var(--signa-teal-900);margin:0;font-size:1.05rem;font-weight:800}.admin-level-head{justify-content:space-between;align-items:center;width:100%;margin-bottom:.45rem;display:flex}.admin-level-arrow{color:#94a3b8;font-size:1.15rem;font-weight:700;transition:transform .15s,color .15s}.admin-level-card:hover .admin-level-arrow{color:#0284c7;transform:translate(4px)}.admin-level-footer{border-top:1px solid #f1f5f9;justify-content:space-between;align-items:center;width:100%;margin-top:.5rem;padding-top:.45rem;display:flex}.admin-level-stat{color:#64748b;font-size:.8rem;font-weight:600}.admin-level-view-tag{color:#0284c7;background:#f0f9ff;border:1px solid #bae6fd;border-radius:999px;padding:.15rem .55rem;font-size:.72rem;font-weight:700;transition:all .15s}.admin-level-card:hover .admin-level-view-tag{color:#fff;background:#0284c7;border-color:#0284c7}.admin-item-chips{flex-wrap:wrap;gap:.35rem;margin-bottom:.35rem;display:flex}.admin-item-chip{background:var(--signa-border);width:28px;height:28px;color:var(--signa-muted);border-radius:50%;justify-content:center;align-items:center;font-size:.78rem;font-weight:700;display:inline-flex;box-shadow:0 1px 2px #0000000d}.admin-item-passed{color:#fff;background:#10b981}.admin-item-missed{color:#fff;background:#ef4444}.admin-item-unlocked,.admin-item-in_progress{color:#d97706;background:#fef3c7}.admin-progress-top-nav{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.75rem;margin-bottom:1.25rem;display:flex}.admin-back-btn{background:#fff;border:1.5px solid #cbd5e1;border-radius:999px;align-items:center;gap:.45rem;padding:.5rem 1.15rem;font-size:.88rem;font-weight:700;transition:all .15s ease-in-out;display:inline-flex;box-shadow:0 1px 3px #0000000d;color:#334155!important;text-decoration:none!important}.admin-back-btn:hover{background:#f8fafc;border-color:#0284c7;transform:translate(-2px);color:#0284c7!important}.admin-report-link{background:linear-gradient(135deg,#0284c7 0%,#0369a1 100%);border:none;border-radius:999px;align-items:center;gap:.5rem;padding:.55rem 1.25rem;font-size:.88rem;font-weight:700;transition:all .15s ease-in-out;display:inline-flex;box-shadow:0 3px 10px #0284c747;color:#fff!important;text-decoration:none!important}.admin-report-link:hover{filter:brightness(1.1);transform:translateY(-1px);box-shadow:0 5px 15px #0284c761}.admin-report-icon{font-size:1rem}.admin-student-profile-hero{background:#fff;border:1px solid #e2e8f0;border-radius:14px;align-items:center;gap:1.1rem;margin-bottom:1.5rem;padding:1.1rem 1.35rem;display:flex;box-shadow:0 2px 8px #0000000a}.admin-student-avatar-wrap{color:#0369a1;background:#e0f2fe;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:48px;height:48px;font-size:1.35rem;font-weight:800;display:flex}.admin-student-profile-info{flex:1;min-width:0}.admin-student-name{color:#0f172a;margin:0;font-size:1.35rem;font-weight:800;line-height:1.2}.admin-student-email{color:#64748b;margin:.2rem 0 0;font-size:.85rem}.admin-cat-tabs{background:#f1f5f9;border-radius:12px;gap:.5rem;margin-bottom:1.5rem;padding:.35rem;display:flex;box-shadow:inset 0 1px 2px #0000000a}.admin-cat-tab{color:#64748b;cursor:pointer;background:0 0;border:none;border-radius:9px;flex:1;justify-content:center;align-items:center;gap:.5rem;padding:.7rem 1rem;font-size:.92rem;font-weight:600;transition:all .15s ease-in-out;display:flex}.admin-cat-tab.is-active{color:#0284c7;background:#fff;font-weight:700;box-shadow:0 2px 6px #0f172a14}.admin-cat-tab-icon{font-size:1.1rem}.admin-cat-tab-badge{color:#475569;font-variant-numeric:tabular-nums;background:#e2e8f0;border-radius:999px;padding:.15rem .55rem;font-size:.72rem;font-weight:700}.admin-cat-tab.is-active .admin-cat-tab-badge{color:#0369a1;background:#e0f2fe}@media (width<=576px){.admin-item-chips{display:none!important}.admin-level-grid{grid-template-columns:1fr!important;gap:.65rem!important}.admin-level-card{border-radius:12px;min-height:56px;padding:.85rem 1rem!important}.admin-student-profile-hero{padding:.9rem 1rem!important}.admin-student-name{font-size:1.15rem!important}.admin-progress-top-nav{flex-direction:row;justify-content:space-between;align-items:center;gap:.5rem}.admin-back-btn,.admin-report-link{padding:.45rem .85rem!important;font-size:.82rem!important}}.admin-profile-fields{border-top:1px solid var(--signa-border);grid-template-columns:1fr 1fr;gap:.6rem .9rem;margin-top:.75rem;padding-top:.9rem;display:grid}.admin-profile-legend{font-family:var(--font-display);letter-spacing:.04em;text-transform:uppercase;color:var(--signa-muted);grid-column:1/-1;margin:0;font-size:.8rem;font-weight:700}.admin-field{flex-direction:column;gap:.25rem;min-width:0;display:flex}.admin-field label{font-size:.8rem;font-weight:700}:is(.admin-field:has(#profile-address),.admin-field:has(#profile-guardian_name)){grid-column:1/-1}@media (width<=560px){.admin-profile-fields{grid-template-columns:1fr}}@media (width<=991.98px){.admin-page-themed{border-radius:12px!important;width:100%!important;margin:.5rem auto!important;padding:1rem .75rem!important}.admin-table-wrap{-webkit-overflow-scrolling:touch!important;width:100%!important;overflow-x:auto!important}.admin-table{min-width:580px}.admin-bar,.admin-actions{flex-direction:column;align-items:stretch;gap:.65rem}.admin-bar input,.admin-bar select,.admin-actions button,.admin-actions a{width:100%}.admin-modal-card{width:94vw!important;max-width:94vw!important;padding:1.25rem 1rem!important}}.admin-dashboard{--chart-teal:#2f9c78;--chart-teal-strong:#1f6f54;--chart-teal-soft:#d7ebe2;--chart-amber:#d98e00;--chart-amber-soft:#fdecc4;--chart-coral:#ef6a5a;--chart-coral-soft:#fbe2de;--chart-track:#eef3f0;--chart-grid:#e7eeea;z-index:5;box-sizing:border-box;flex-direction:column;gap:1.25rem;width:100%;max-width:1560px;max-height:calc(100vh - 2rem);margin:0 auto;padding:1.75rem 1.25rem 1.5rem;display:flex;position:relative}.dash-header{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:1rem;display:flex}.dash-header h1{font-family:var(--font-display,inherit);color:#0f172a;text-shadow:none;margin:0;font-size:clamp(1.5rem,3vw,2rem);font-weight:800}.dash-header .dash-sub{color:#64748b;text-shadow:none;margin:.25rem 0 0;font-size:.95rem}.dash-nav{flex-wrap:wrap;gap:.5rem;display:flex}.dash-nav a{font-family:var(--font-display);color:var(--signa-teal-700);background:var(--signa-mint-50);border:1px solid var(--signa-border);border-radius:999px;padding:.5rem 1rem;font-size:.85rem;font-weight:700;text-decoration:none;transition:background .15s,transform .15s}.dash-nav a:hover{background:var(--signa-mint-100);transform:translateY(-1px)}.dash-kpis{grid-template-columns:repeat(4,1fr);gap:1.15rem;display:grid}@media (width<=1200px){.dash-kpis{grid-template-columns:repeat(2,1fr)}}@media (width<=620px){.dash-kpis{grid-template-columns:repeat(2,1fr);gap:.65rem}}.kpi-card{background:#fff;border:1px solid #e2e8f0;border-radius:14px;flex-direction:column;padding:1.25rem 1.35rem;transition:all .15s ease-in-out;display:flex;position:relative;overflow:hidden;box-shadow:0 1px 3px #0000000a}.kpi-card:before{content:"";background:var(--kpi-accent,#0284c7);width:4px;position:absolute;top:0;bottom:0;left:0}.kpi-card-link,.kpi-card-link:hover,.kpi-card-link:visited,.kpi-card-link *{text-decoration:none!important}.kpi-card-link{cursor:pointer}.kpi-card-link:hover{border-color:var(--kpi-accent,#0284c7);transform:translateY(-3px);box-shadow:0 8px 20px #00000014}.kpi-card-content{flex-direction:column;gap:.4rem;width:100%;display:flex}.kpi-header-row{justify-content:space-between;align-items:center;display:flex}.kpi-label{letter-spacing:.03em;text-transform:uppercase;color:#64748b;font-size:.78rem;font-weight:700}.kpi-icon-badge{font-size:1.25rem;line-height:1}.kpi-value-row{align-items:baseline;display:flex}.kpi-value{color:#0f172a;font-variant-numeric:tabular-nums;font-size:clamp(1.75rem,2.5vw,2.2rem);font-weight:800;line-height:1.1}.kpi-value .kpi-unit{color:#64748b;margin-left:.15rem;font-size:1.1rem}.kpi-footer-row{justify-content:space-between;align-items:center;margin-top:.25rem;display:flex}.kpi-foot{color:#64748b;font-size:.8rem;font-weight:500}.kpi-chevron{color:var(--kpi-accent,#0284c7);font-size:1rem;font-weight:800;transition:transform .15s}.kpi-card-link:hover .kpi-chevron{transform:translate(4px)}.dash-main-split{grid-template-columns:minmax(0,1.85fr) minmax(0,1.15fr);align-items:start;gap:1.5rem;display:grid}@media (width<=992px){.dash-main-split{grid-template-columns:1fr}}.dash-quick-links{flex-direction:column;gap:.6rem;display:flex}.dash-quick-item{color:inherit;background:#f8fafc;border:1px solid #f1f5f9;border-radius:10px;align-items:center;gap:.85rem;padding:.75rem .9rem;transition:all .15s;display:flex;text-decoration:none!important}.dash-quick-item:hover{background:#fff;border-color:#cbd5e1;transform:translate(3px);box-shadow:0 4px 12px #0000000d}.dash-quick-icon{border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;width:36px;height:36px;font-size:1.1rem;display:flex}.bg-blue-soft{background:#e0f2fe}.bg-green-soft{background:#dcfce7}.bg-purple-soft{background:#ede9fe}.bg-amber-soft{background:#fef3c7}.dash-quick-text{flex-direction:column;flex:1;min-width:0;display:flex}.dash-quick-title{color:#0f172a;font-size:.88rem;font-weight:700}.dash-quick-desc{color:#64748b;white-space:nowrap;text-overflow:ellipsis;font-size:.75rem;overflow:hidden}.dash-quick-arrow{color:#94a3b8;font-weight:700;transition:transform .15s,color .15s}.dash-quick-item:hover .dash-quick-arrow{color:#0284c7;transform:translate(3px)}.dash-grid{flex:1;grid-template-columns:1fr 1fr;align-content:start;gap:1.25rem;min-height:0;padding-bottom:.25rem;display:grid;overflow-y:auto}@media (width<=920px){.dash-grid{grid-template-columns:1fr}}@media (height<=880px){.admin-dashboard{gap:.75rem;padding-top:1rem;padding-bottom:1rem}.dash-kpis{gap:.6rem}.kpi-card{padding:.7rem 1rem}.panel{gap:.65rem;padding:.9rem 1.1rem 1rem}.confused-list{gap:.4rem}.matrix-summary{padding:.65rem .9rem}}.panel{background:var(--signa-surface);border:1px solid var(--signa-border);border-radius:var(--signa-radius-lg);box-shadow:var(--signa-shadow-sm);flex-direction:column;gap:1rem;min-width:0;padding:1.25rem 1.3rem 1.4rem;display:flex}.dash-grid-stack{grid-template-columns:1fr;gap:.9rem}.panel.panel-compact{gap:.7rem;padding:1rem 1.2rem 1.1rem}.panel.panel-wide{grid-column:1/-1}.panel-head{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:.75rem;display:flex}.panel-head h2{font-family:var(--font-display);color:var(--signa-teal-900);margin:0;font-size:1.15rem}.panel-head .panel-note{color:var(--signa-muted);font-size:.78rem}.model-badge{vertical-align:middle;font-family:var(--font-body);letter-spacing:.04em;text-transform:uppercase;color:var(--signa-amber-600);background:var(--signa-amber-100);border:1px solid var(--chart-amber-soft,var(--signa-amber-100));border-radius:999px;margin-left:.6rem;padding:.2rem .55rem;font-size:.66rem;font-weight:800;display:inline-block}.cat-toggle{background:var(--signa-mint-50);border:1px solid var(--signa-border);border-radius:999px;gap:2px;padding:3px;display:inline-flex}.cat-toggle button{font-family:var(--font-display);color:var(--signa-teal-700);cursor:pointer;background:0 0;border:none;border-radius:999px;padding:.4rem .9rem;font-size:.82rem;font-weight:700;transition:background .15s,color .15s}.cat-toggle button.active{background:var(--signa-teal-600);color:#fff}.dash-empty{text-align:center;color:var(--signa-muted);flex-direction:column;align-items:center;gap:.4rem;padding:1.75rem 1rem;font-size:.9rem;display:flex}.dash-empty .dash-empty-icon{opacity:.7;font-size:1.6rem}.sp-card-list{flex-direction:column;gap:.85rem;display:flex}.sp-card{background:#fff;border:1px solid #e2e8f0;border-radius:12px;padding:1.1rem 1.35rem;display:block;box-shadow:0 1px 3px #0000000a}.sp-card-inner{grid-template-columns:minmax(220px,300px) 1fr auto;align-items:center;gap:1.5rem;display:grid}.sp-student-info{align-items:center;gap:.85rem;min-width:0;display:flex}.sp-avatar{background:#f8fafc;border:2px solid #e2e8f0;flex-shrink:0;object-fit:cover!important;border-radius:50%!important;width:42px!important;min-width:42px!important;height:42px!important}.sp-student-meta{flex-direction:column;gap:.25rem;min-width:0;display:flex}.sp-student-name{color:#0f172a;white-space:nowrap;text-overflow:ellipsis;font-size:1.05rem;font-weight:700;overflow:hidden}.sp-acc-badge{color:#0369a1;background:#e0f2fe;border:1px solid #bae6fd;border-radius:9999px;align-items:center;gap:.2rem;padding:.15rem .5rem;font-size:.75rem;font-weight:600;display:inline-flex}.sp-acc-none{color:#94a3b8;font-size:.75rem}.sp-progress-section{flex-direction:column;gap:.45rem;min-width:0;display:flex}.sp-progress-labels{justify-content:space-between;align-items:center;font-size:.82rem;display:flex}.sp-label-title{color:#475569;text-transform:uppercase;letter-spacing:.04em;font-size:.75rem;font-weight:600}.sp-label-values{color:#334155;align-items:center;gap:.45rem;font-size:.85rem;display:flex}.sp-percent-pill{color:#15803d;background:#dcfce7;border:1px solid #86efac;border-radius:9999px;padding:.1rem .45rem;font-size:.75rem;font-weight:700}.sp-progress-track{background:#e2e8f0;border-radius:9999px;height:12px;overflow:hidden;box-shadow:inset 0 1px 2px #0000000f}.sp-progress-fill{background:linear-gradient(90deg,#10b981,#059669);border-radius:9999px;height:100%;transition:width .4s}.sp-action-section{align-items:center;display:flex}.sp-action-btn{color:#0284c7;cursor:pointer;white-space:nowrap;background:#f0f9ff;border:1.5px solid #bae6fd;border-radius:8px;align-items:center;gap:.35rem;padding:.48rem 1rem;font-size:.88rem;font-weight:600;transition:all .15s ease-in-out;display:inline-flex;box-shadow:0 1px 2px #0000000a;text-decoration:none!important}.sp-action-btn:hover{background:#0284c7;border-color:#0284c7;transform:translateY(-1px);box-shadow:0 4px 10px #0284c740;color:#fff!important}.sp-action-btn:active{transform:translateY(0)}.sp-search-container{margin-bottom:1.25rem}.sp-search-box{background:#f8fafc;border:1.5px solid #cbd5e1;border-radius:10px;align-items:center;width:100%;max-width:440px;padding:.4rem .85rem;transition:all .15s;display:flex}.sp-search-box:focus-within{background:#fff;border-color:#0284c7;box-shadow:0 0 0 3px #0284c71f}.sp-search-icon{color:#94a3b8;-webkit-user-select:none;user-select:none;align-items:center;margin-right:.6rem;font-size:.95rem;display:flex}.sp-search-input{color:#0f172a;flex:1;padding:.25rem 0;font-family:inherit;font-size:.92rem;box-shadow:none!important;background:0 0!important;border:none!important;outline:none!important}.sp-search-input::placeholder{color:#94a3b8}.sp-search-clear{color:#475569;cursor:pointer;background:#e2e8f0;border:none;border-radius:50%;justify-content:center;align-items:center;width:20px;height:20px;font-size:.75rem;transition:all .12s;display:flex}.sp-search-clear:hover{color:#0f172a;background:#cbd5e1}@media (width<=768px){.sp-card-inner{grid-template-columns:1fr;gap:1rem}}.hbar-list{flex-direction:column;gap:.7rem;display:flex}.hbar-row{grid-template-columns:minmax(5rem,9rem) 1fr auto;align-items:center;gap:.75rem;display:grid}.hbar-row-link{color:inherit;border-radius:8px;margin:-.3rem -.5rem;padding:.3rem .5rem;text-decoration:none;transition:background .12s}.hbar-row-link:hover,.hbar-row-link:focus-visible{background:#2f9c781f}.hbar-name{min-width:0;color:var(--signa-ink);align-items:center;gap:.4rem;font-size:.88rem;font-weight:700;display:flex}.hbar-name-text{white-space:nowrap;text-overflow:ellipsis;min-width:0;overflow:hidden}.hbar-track{background:var(--chart-track);border-radius:999px;height:14px;overflow:hidden}.hbar-fill{background:linear-gradient(90deg, var(--chart-teal), var(--chart-teal-strong));border-radius:999px;min-width:4px;height:100%;transition:width .4s}.hbar-value{color:var(--signa-teal-700);font-variant-numeric:tabular-nums;white-space:nowrap;font-size:.82rem;font-weight:700}.accuracy-chart-wrapper{flex-direction:column;gap:.85rem;width:100%;display:flex}.acc-controls-bar{border-bottom:1px solid #f1f5f9;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.65rem;padding-bottom:.5rem;display:flex}.acc-legend{color:#64748b;flex-wrap:wrap;align-items:center;gap:.65rem;font-size:.75rem;font-weight:600;display:flex}.acc-legend-item{align-items:center;gap:.3rem;display:inline-flex}.acc-legend-dot{border-radius:3px;width:9px;height:9px;display:inline-block}.acc-dot-good{background:#10b981}.acc-dot-mid{background:#0284c7}.acc-dot-low{background:#ef4444}.acc-dot-empty{background:#cbd5e1}.acc-view-toggle{background:#f1f5f9;border:1px solid #e2e8f0;border-radius:8px;gap:2px;padding:2px;display:inline-flex}.acc-toggle-btn{color:#64748b;cursor:pointer;background:0 0;border:none;border-radius:6px;padding:.25rem .6rem;font-size:.76rem;font-weight:600;transition:all .15s}.acc-toggle-btn.active{color:#0f172a;background:#fff;font-weight:700;box-shadow:0 1px 3px #00000014}.acc-tile-callout{background:#f8fafc;border:1px solid #cbd5e1;border-radius:10px;align-items:center;gap:.75rem;padding:.65rem .85rem;animation:.15s ease-out admin-modal-in;display:flex}.acc-callout-symbol{border-radius:8px;justify-content:center;align-items:center;width:38px;min-width:38px;height:38px;font-size:1.15rem;font-weight:800;display:flex}.acc-callout-good{color:#15803d;background:#dcfce7;border:1px solid #86efac}.acc-callout-mid{color:#0369a1;background:#e0f2fe;border:1px solid #7dd3fc}.acc-callout-low{color:#b91c1c;background:#fee2e2;border:1px solid #fca5a5}.acc-callout-empty{color:#64748b;background:#f1f5f9;border:1px solid #e2e8f0}.acc-callout-meta{flex:1;min-width:0}.acc-callout-title{color:#0f172a;font-size:.85rem;font-weight:700}.acc-callout-sub{color:#64748b;margin-top:.1rem;font-size:.75rem}.acc-callout-close{color:#94a3b8;cursor:pointer;background:0 0;border:none;padding:.2rem .4rem;font-size:.95rem}.acc-callout-close:hover{color:#0f172a}.acc-grid{gap:.45rem;width:100%;display:grid}.acc-grid-alpha{grid-template-columns:repeat(6,1fr)}@media (width>=540px){.acc-grid-alpha{grid-template-columns:repeat(8,1fr)}}@media (width>=800px){.acc-grid-alpha{grid-template-columns:repeat(13,1fr)}}.acc-grid-numbers{grid-template-columns:repeat(5,1fr)}@media (width>=768px){.acc-grid-numbers{grid-template-columns:repeat(10,1fr)}}.acc-tile{cursor:pointer;border:1px solid #0000;border-radius:9px;outline:none;flex-direction:column;justify-content:center;align-items:center;min-height:52px;padding:.5rem .2rem .4rem;transition:transform .12s,box-shadow .12s;display:flex}.acc-tile:hover{transform:translateY(-2px);box-shadow:0 3px 6px #00000014}.acc-tile:active,.acc-tile.acc-tile-selected{transform:scale(.96);box-shadow:0 0 0 2px #0f172a}.acc-tile-symbol{font-variant-numeric:tabular-nums;font-size:1.05rem;font-weight:800;line-height:1.1}.acc-tile-pct{font-variant-numeric:tabular-nums;margin-top:.2rem;font-size:.68rem;font-weight:700;line-height:1}.acc-tile-good{color:#15803d;background:#dcfce7;border-color:#86efac}.acc-tile-good .acc-tile-symbol{color:#15803d}.acc-tile-good .acc-tile-pct{color:#166534}.acc-tile-mid{color:#0369a1;background:#e0f2fe;border-color:#7dd3fc}.acc-tile-mid .acc-tile-symbol{color:#0369a1}.acc-tile-mid .acc-tile-pct{color:#075985}.acc-tile-low{color:#b91c1c;background:#fee2e2;border-color:#fca5a5}.acc-tile-low .acc-tile-symbol{color:#b91c1c}.acc-tile-low .acc-tile-pct{color:#991b1b}.acc-tile-empty{color:#94a3b8;background:#f8fafc;border-color:#e2e8f0}.acc-tile-empty .acc-tile-symbol{color:#64748b}.acc-tile-empty .acc-tile-pct{color:#cbd5e1}.col-chart{align-items:flex-end;gap:.45rem;min-height:165px;padding:1.25rem .5rem .6rem;display:flex;overflow-x:auto}.col-chart-numbers{justify-content:space-around;gap:1rem}.col-item{flex-direction:column;flex:1 0 28px;align-items:center;gap:.45rem;display:flex}.col-item-number{flex:0 70px;min-width:44px}.col-bar-area{background:#f1f5f9;border:1px solid #e2e8f0;border-bottom:none;border-radius:6px 6px 0 0;align-items:flex-end;width:100%;max-width:34px;height:110px;display:flex}.col-item-number .col-bar-area{max-width:48px;height:120px}.col-bar{background:linear-gradient(#0284c7,#0369a1);border-radius:5px 5px 0 0;width:100%;min-height:4px;transition:height .4s}.col-bar.col-bar-good{background:linear-gradient(#10b981,#059669)}.col-bar.col-bar-low{background:linear-gradient(#ef4444,#b91c1c)}.col-bar.col-bar-empty{background:#e2e8f0;height:6px}.col-label{color:#0f172a;font-variant-numeric:tabular-nums;font-size:.88rem;font-weight:800}.col-item-number .col-label{font-size:1.1rem}.col-pct{color:#94a3b8;font-variant-numeric:tabular-nums;font-size:.72rem;font-weight:600}.col-pct.has-data{color:#0f172a;font-weight:700}.matrix-summary{background:var(--chart-teal-soft);border-radius:var(--signa-radius-md);flex-wrap:wrap;align-items:baseline;gap:.6rem 1.5rem;margin-bottom:.9rem;padding:.9rem 1.1rem;display:flex}.matrix-summary-stat{font-family:var(--font-display);color:var(--signa-teal-800,var(--signa-teal-900));white-space:nowrap;font-size:1.15rem;font-weight:700}.matrix-summary-stat strong{font-variant-numeric:tabular-nums;font-size:1.35rem}.matrix-summary-note{color:var(--signa-muted);flex:16rem;margin:0;font-size:.8rem;line-height:1.4}.quiz-legend{color:var(--signa-muted);gap:1.1rem;font-size:.8rem;display:flex}.quiz-legend .swatch{vertical-align:-1px;border-radius:3px;width:12px;height:12px;margin-right:.35rem;display:inline-block}.quiz-groups{align-items:flex-end;gap:1rem;min-height:180px;padding-bottom:.3rem;display:flex;overflow-x:auto}.quiz-group{flex-direction:column;flex:1 0 70px;align-items:center;gap:.45rem;display:flex}.quiz-bars{align-items:flex-end;gap:5px;height:130px;display:flex}.quiz-bar{border-radius:5px 5px 0 0;width:20px;min-height:3px;transition:height .4s;position:relative}.quiz-bar.quiz-alpha{background:linear-gradient(180deg, var(--chart-teal), var(--chart-teal-strong))}.quiz-bar.quiz-number{background:linear-gradient(180deg, #eaa11f, var(--chart-amber))}.quiz-bar .quiz-bar-val{color:var(--signa-muted);font-variant-numeric:tabular-nums;font-size:.62rem;font-weight:700;position:absolute;top:-1.1rem;left:50%;transform:translate(-50%)}.quiz-group-label{color:var(--signa-ink);font-size:.78rem;font-weight:700}.lb-list{flex-direction:column;gap:.65rem;display:flex}.lb-row{background:#fff;border:1px solid #e2e8f0;border-radius:12px;grid-template-columns:2.6rem 1fr auto;align-items:center;gap:1rem;padding:.75rem 1.1rem;transition:all .15s;display:grid;box-shadow:0 1px 3px #0000000a}.lb-row:hover{border-color:#cbd5e1;box-shadow:0 3px 8px #0000000f}.lb-row.lb-rank-1{background:linear-gradient(135deg,#fffbeb 0%,#fef3c7 100%);border:2px solid #fcd34d;box-shadow:0 4px 14px #f59e0b2e}.lb-row.lb-rank-2{background:linear-gradient(135deg,#fff 0%,#f8fafc 100%);border:1.5px solid #cbd5e1}.lb-row.lb-rank-3{background:linear-gradient(135deg,#fff 0%,#fff7ed 100%);border:1.5px solid #fed7aa}.lb-rank{font-family:var(--font-display,inherit);color:#475569;justify-content:center;align-items:center;font-size:1.15rem;font-weight:800;display:flex}.lb-rank .lb-medal{filter:drop-shadow(0 1px 2px #00000026);font-size:1.5rem}.lb-rank .lb-num{color:#64748b;font-size:.95rem;font-weight:700}.lb-main{min-width:0}.lb-name{align-items:center;gap:.75rem;min-width:0;display:flex}.lb-avatar{background:#f1f5f9;border:2px solid #e2e8f0;flex-shrink:0;object-fit:cover!important;border-radius:50%!important;width:38px!important;min-width:38px!important;height:38px!important}.lb-avatar-rank-1{box-shadow:0 0 0 2px #fde047;border:2.5px solid #eab308!important;width:44px!important;min-width:44px!important;height:44px!important}.lb-avatar-rank-2{border:2px solid #94a3b8!important}.lb-avatar-rank-3{border:2px solid #ea580c!important}.lb-name-text{color:#0f172a;white-space:nowrap;text-overflow:ellipsis;font-size:.98rem;font-weight:700;overflow:hidden}.lb-top-badge{color:#854d0e;letter-spacing:.03em;background:#fef08a;border:1px solid #facc15;border-radius:9999px;align-items:center;gap:.25rem;margin-left:.4rem;padding:.18rem .55rem;font-size:.72rem;font-weight:800;display:inline-flex}.lb-breakdown{flex-wrap:wrap;gap:.4rem;margin-top:.35rem;display:flex}.lb-game{color:#475569;background:#fff;border:1px solid #e2e8f0;border-radius:9999px;align-items:center;gap:.3rem;padding:.12rem .55rem;font-size:.72rem;font-weight:600;display:inline-flex}.lb-row.lb-rank-1 .lb-game{color:#78350f;background:#ffffffbf;border-color:#fde047}.lb-game .lb-game-dot{background:#0ea5e9;border-radius:50%;width:6px;height:6px}.lb-total{text-align:right;flex-direction:column;justify-content:center;align-items:flex-end;padding-left:.5rem;display:flex}.lb-total .lb-total-num{font-family:var(--font-display,inherit);color:#0f172a;font-variant-numeric:tabular-nums;font-size:1.35rem;font-weight:800;line-height:1}.lb-row.lb-rank-1 .lb-total .lb-total-num{color:#854d0e;font-size:1.55rem}.lb-total .lb-total-label{color:#64748b;text-transform:uppercase;letter-spacing:.05em;margin-top:.2rem;font-size:.68rem;font-weight:700}.panel-solo{flex:1;min-height:0}.panel-search{box-sizing:border-box;border:1px solid var(--signa-border);width:100%;font-family:var(--font-body);color:var(--signa-ink);background:var(--signa-surface);border-radius:8px;padding:.5rem .75rem;font-size:.9rem}.panel-search:focus-visible{outline:2px solid var(--signa-teal-500);outline-offset:1px}.panel-solo .admin-pagination{margin-top:auto;padding-top:1rem}@media (width<=991.98px){.admin-dashboard{gap:1rem;max-height:none!important;padding:0!important;overflow:visible!important}.dash-header{flex-direction:column;align-items:flex-start;gap:.5rem}.dash-kpis{gap:.75rem;grid-template-columns:repeat(2,1fr)!important}.dash-grid{gap:1rem;grid-template-columns:1fr!important}.dash-panel{overflow:visible;max-height:none!important}.chart-table-wrap,.admin-table-wrap,.dash-panel-body{-webkit-overflow-scrolling:touch;width:100%;overflow-x:auto}}@media (width<=576px){.dash-header{margin-bottom:.85rem!important}.dash-header h1{font-size:1.35rem!important}.dash-header .dash-sub{font-size:.8rem!important;line-height:1.35!important}.dash-kpis{grid-template-columns:repeat(2,1fr)!important;gap:.6rem!important;margin-bottom:1rem!important}.kpi-card{border-radius:12px!important;padding:.75rem .8rem!important}.kpi-card-content{gap:.25rem!important}.kpi-label{letter-spacing:.02em!important;white-space:nowrap!important;text-overflow:ellipsis!important;font-size:.65rem!important;overflow:hidden!important}.kpi-icon-badge{font-size:1.1rem!important}.kpi-value{font-size:1.35rem!important;line-height:1.1!important}.kpi-value .kpi-unit{font-size:.85rem!important}.kpi-footer-row{margin-top:.15rem!important}.kpi-foot{white-space:nowrap!important;text-overflow:ellipsis!important;font-size:.66rem!important;overflow:hidden!important}.kpi-chevron{display:none!important}.card-header{padding:.75rem .85rem!important}.card-header .card-title{font-size:1rem!important}.card-header p.text-muted{font-size:.72rem!important}.card-header .badge{padding:.15rem .45rem!important;font-size:.7rem!important}.card-body{padding:.5rem!important}.lb-list{gap:.45rem!important}.lb-row{border-radius:10px!important;grid-template-columns:1.8rem 1fr auto!important;gap:.45rem!important;padding:.5rem .65rem!important}.lb-rank .lb-medal{font-size:1.2rem!important}.lb-rank .lb-num{font-size:.8rem!important}.lb-name{gap:.35rem!important}.lb-avatar{width:32px!important;min-width:32px!important;height:32px!important}.lb-avatar-rank-1{width:36px!important;min-width:36px!important;height:36px!important}.lb-name-text{font-size:.85rem!important}.lb-top-badge{margin-left:.2rem!important;padding:.08rem .35rem!important;font-size:.6rem!important}.lb-breakdown{gap:.2rem!important;margin-top:.2rem!important}.lb-game{padding:.06rem .35rem!important;font-size:.62rem!important}.lb-game .lb-game-dot{width:4px!important;height:4px!important}.lb-total .lb-total-num{font-size:1.05rem!important}.lb-row.lb-rank-1 .lb-total .lb-total-num{font-size:1.15rem!important}.lb-total .lb-total-label{margin-top:.05rem!important;font-size:.58rem!important}}.tc-container{width:100%;margin:0 auto}.tc-kpi-grid{grid-template-columns:repeat(4,1fr);gap:1.25rem;margin-bottom:1.5rem;display:grid}@media (width<=992px){.tc-kpi-grid{grid-template-columns:repeat(2,1fr)}}@media (width<=576px){.tc-kpi-grid{grid-template-columns:repeat(2,1fr);gap:.65rem}}.tc-kpi-card{background:#fff;border:1px solid #e2e8f0;border-radius:14px;align-items:center;gap:1rem;padding:1.15rem 1.35rem;transition:box-shadow .15s,border-color .15s;display:flex;box-shadow:0 2px 10px #00000008}.tc-kpi-card:hover{border-color:#cbd5e1;box-shadow:0 4px 16px #0000000f}.tc-kpi-icon-wrap{border-radius:12px;flex-shrink:0;justify-content:center;align-items:center;width:2.85rem;height:2.85rem;font-size:1.35rem;display:flex}.tc-kpi-info{flex-direction:column;min-width:0;display:flex}.tc-kpi-val{color:#0f172a;letter-spacing:-.02em;font-size:1.55rem;font-weight:800;line-height:1.15}.tc-kpi-label{color:#64748b;white-space:nowrap;text-overflow:ellipsis;margin-top:.25rem;font-size:.78rem;font-weight:600;overflow:hidden}.tc-top-grid{grid-template-columns:repeat(2,1fr);align-items:stretch;gap:1.25rem;margin-bottom:1.5rem;display:grid}@media (width<=900px){.tc-top-grid{grid-template-columns:1fr}}.tc-card{background:#fff;border:1px solid #e2e8f0;border-radius:14px;flex-direction:column;display:flex;overflow:hidden;box-shadow:0 2px 12px #00000008}.tc-card-header{background:#fff;border-bottom:1px solid #f1f5f9;padding:1.15rem 1.5rem}.tc-card-title{color:#0f172a;letter-spacing:-.01em;margin:0;font-size:1.15rem;font-weight:800}.tc-card-sub{color:#64748b;margin-top:.15rem;font-size:.8rem;font-weight:500;display:block}.tc-badge-count{color:#0284c7;letter-spacing:.02em;background:#f0f9ff;border:1px solid #bae6fd;border-radius:9999px;padding:.25rem .65rem;font-size:.76rem;font-weight:700}.tc-card-body{flex:1;padding:1.25rem 1.5rem}.tc-empty-box{text-align:center;padding:2.5rem 1rem}.tc-empty-icon{margin-bottom:.6rem;font-size:2.5rem;display:block}.tc-empty-box h4{color:#1e293b;margin-bottom:.4rem;font-size:1rem;font-weight:700}.tc-empty-box p{color:#64748b;max-width:380px;margin:0 auto;font-size:.84rem;line-height:1.45}.tc-today-list{flex-direction:column;gap:.75rem;margin:0;padding:0;list-style:none;display:flex}.tc-today-item{background:#f8fafc;border:1px solid #f1f5f9;border-radius:10px;justify-content:space-between;align-items:center;gap:1rem;padding:.85rem 1rem;transition:background-color .15s,border-color .15s;display:flex}.tc-today-item:hover{background:#f1f5f9;border-color:#e2e8f0}.tc-time-box{align-items:center;gap:.6rem;min-width:105px;display:flex}.tc-time-icon{color:#0284c7;font-size:1.1rem}.tc-time-text{flex-direction:column;display:flex}.tc-time-start{color:#0f172a;font-size:.86rem;font-weight:700}.tc-time-end{color:#64748b;font-size:.72rem;font-weight:500}.tc-student-group{flex:1;align-items:center;gap:.75rem;min-width:0;display:flex}.tc-avatar-circle{color:#0369a1;background:linear-gradient(135deg,#e0f2fe,#bae6fd);border:2px solid #fff;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:2.2rem;height:2.2rem;font-size:.86rem;font-weight:800;display:flex;box-shadow:0 1px 4px #00000014}.tc-student-meta{flex-direction:column;min-width:0;display:flex}.tc-student-name{color:#0f172a;text-overflow:ellipsis;white-space:nowrap;font-size:.88rem;font-weight:700;overflow:hidden}.tc-session-tag{color:#0d9488;font-size:.7rem;font-weight:600}.tc-action-link{color:#0284c7;background:#fff;border:1px solid #cbd5e1;border-radius:6px;flex-shrink:0;padding:.35rem .75rem;font-size:.78rem;font-weight:700;text-decoration:none;transition:background-color .15s,border-color .15s,color .15s}.tc-action-link:hover{color:#fff;background:#0284c7;border-color:#0284c7;text-decoration:none}.tc-lb-list{flex-direction:column;gap:.65rem;margin:0;padding:0;list-style:none;display:flex}.tc-lb-item{background:#f8fafc;border:1px solid #f1f5f9;border-radius:10px;align-items:center;gap:.85rem;padding:.75rem 1rem;transition:background-color .15s,border-color .15s;display:flex}.tc-lb-item:hover{background:#f1f5f9;border-color:#e2e8f0}.tc-lb-item.is-podium.podium-1{background:#fffbeb;border-color:#fef08a}.tc-lb-item.is-podium.podium-2{background:#f8fafc;border-color:#e2e8f0}.tc-lb-item.is-podium.podium-3{background:#fff7ed;border-color:#ffedd5}.tc-lb-rank-box{flex-shrink:0;justify-content:center;align-items:center;width:1.8rem;display:flex}.tc-lb-medal{font-size:1.25rem}.tc-lb-rank-num{color:#94a3b8;font-size:.82rem;font-weight:800}.tc-avatar-circle.lb-avatar{color:#b45309;background:linear-gradient(135deg,#fef3c7,#fde68a)}.tc-lb-details{flex-direction:column;flex:1;min-width:0;display:flex}.tc-lb-name{color:#0f172a;text-overflow:ellipsis;white-space:nowrap;font-size:.88rem;font-weight:700;text-decoration:none;transition:color .15s;overflow:hidden}.tc-lb-name:hover{color:#0284c7;text-decoration:none}.tc-lb-sub{color:#64748b;font-size:.7rem;font-weight:500}.tc-lb-pts-badge{background:#fff;border:1px solid #e2e8f0;border-radius:9999px;flex-shrink:0;align-items:center;gap:.35rem;padding:.3rem .65rem;display:flex}.tc-pts-icon{font-size:.85rem}.tc-pts-value{color:#0f172a;font-size:.84rem;font-weight:800}.tc-pts-label{color:#94a3b8;font-size:.72rem;font-weight:600}.tc-pager{border-top:1px solid #f1f5f9;justify-content:center;align-items:center;gap:.75rem;margin-top:auto;padding:.75rem 1.5rem 1.15rem;display:flex}.tc-pager-btn{color:#334155;cursor:pointer;background:#fff;border:1px solid #cbd5e1;border-radius:8px;padding:.35rem .85rem;font-size:.8rem;font-weight:700;transition:background-color .15s,border-color .15s,color .15s}.tc-pager-btn:hover:not(:disabled){color:#0f172a;background:#f1f5f9;border-color:#94a3b8}.tc-pager-btn:disabled{opacity:.45;cursor:not-allowed}.tc-pager-at{color:#64748b;font-size:.8rem;font-weight:600}.tc-analytics-card{margin-top:.5rem;margin-bottom:2rem}.tc-cat-switch{background:#f1f5f9;border:1px solid #e2e8f0;border-radius:10px;gap:.25rem;padding:.25rem;display:inline-flex}.tc-cat-btn{color:#64748b;cursor:pointer;background:0 0;border:none;border-radius:8px;padding:.4rem 1rem;font-size:.82rem;font-weight:700;transition:background-color .15s,color .15s,box-shadow .15s}.tc-cat-btn:hover:not(.is-active){color:#0f172a}.tc-cat-btn.is-active{color:#fff;background:#0284c7;box-shadow:0 1px 4px #0284c740}.tc-chart-wrapper{min-height:280px;padding:1.5rem;overflow-x:auto}.teacher-block{background:#fff;border:1px solid #e2e8f0;border-radius:14px;margin-top:1.25rem;padding:1.25rem;box-shadow:0 2px 10px #00000008}.teacher-note{color:#64748b;margin:0 0 .8rem;font-size:.84rem;line-height:1.45}@media (width<=991.98px){.tc-container{padding:0!important}.tc-header{flex-direction:column;align-items:flex-start;gap:.75rem}.tc-quick-actions{flex-direction:column;gap:.5rem;width:100%}.tc-action-btn{justify-content:center;width:100%}.tc-table-wrap,.teacher-block{-webkit-overflow-scrolling:touch;border-radius:12px;width:100%;padding:1rem .75rem;overflow-x:auto}.tc-table{min-width:540px}.tc-chart-wrapper{padding:.75rem .25rem}}@media (width<=576px){.tc-kpi-grid{grid-template-columns:repeat(2,1fr)!important;gap:.6rem!important;margin-bottom:1rem!important}.tc-kpi-card{border-radius:12px!important;gap:.6rem!important;padding:.75rem!important}.tc-kpi-icon-wrap{border-radius:8px!important;width:2.25rem!important;height:2.25rem!important;font-size:1.1rem!important}.tc-kpi-val{font-size:1.25rem!important;line-height:1.1!important}.tc-kpi-label{margin-top:.15rem!important;font-size:.65rem!important}.tc-top-grid{gap:1rem!important;margin-bottom:1rem!important}.tc-card{border-radius:12px!important}.tc-card-header{padding:.75rem .85rem!important}.tc-card-title{font-size:1rem!important}.tc-card-sub{font-size:.72rem!important}.tc-card-body{padding:.6rem!important}.tc-badge-count{padding:.15rem .5rem!important;font-size:.68rem!important}.tc-lb-list{gap:.45rem!important}.tc-lb-item{border-radius:10px!important;gap:.5rem!important;padding:.5rem .65rem!important}.tc-avatar-circle{width:32px!important;height:32px!important;font-size:.85rem!important}.tc-lb-name{font-size:.85rem!important}.tc-lb-sub{font-size:.68rem!important}.tc-lb-pts-badge{padding:.18rem .45rem!important}.tc-pts-value{font-size:.85rem!important}.tc-pts-label{font-size:.6rem!important}.tc-today-list{gap:.45rem!important}.tc-today-item{gap:.5rem!important;padding:.55rem .7rem!important}.tc-time-box{gap:.35rem!important;min-width:85px!important}.tc-time-icon{font-size:.95rem!important}.tc-time-start{font-size:.78rem!important}.tc-time-end{font-size:.65rem!important}.tc-student-name{font-size:.82rem!important}.tc-session-tag{font-size:.62rem!important}.tc-action-link{white-space:nowrap!important;padding:.25rem .55rem!important;font-size:.72rem!important}.tc-cat-switch{justify-content:stretch!important;width:100%!important;display:flex!important}.tc-cat-btn{text-align:center!important;flex:1!important;padding:.35rem .5rem!important;font-size:.74rem!important}.tc-chart-wrapper{min-height:220px!important;padding:.75rem .25rem!important}}.dh-block{border-top:1px solid var(--signa-border);margin-top:1.5rem;padding-top:1.25rem}.dh-head{align-items:baseline;gap:.75rem;margin-bottom:.75rem;display:flex}.dh-head h2{font-family:var(--font-display), "Baloo 2", sans-serif;color:var(--signa-teal-900);margin:0;font-size:1.1rem}.dh-list{flex-direction:column;gap:.7rem;display:flex}.dh-card{border:1px solid var(--signa-border);border-radius:var(--signa-radius-md,16px);background:var(--signa-surface);padding:.7rem .85rem .85rem}.dh-card.is-done{background:var(--signa-mint-50);border-color:var(--signa-teal-300)}.dh-card-head{flex-wrap:wrap;align-items:baseline;gap:.5rem .9rem;margin-bottom:.6rem;display:flex}.dh-word{font-family:var(--font-display), "Baloo 2", sans-serif;letter-spacing:.07em;color:var(--signa-teal-900);font-size:1.15rem;font-weight:800}.dh-game,.dh-due{color:var(--signa-muted);font-size:.78rem}.dh-due.is-overdue{color:var(--signa-coral-600,#d85a49);font-weight:700}.dh-status{color:var(--signa-muted);margin-left:auto;font-size:.78rem;font-weight:700}.dh-status.is-done{color:var(--signa-teal-700)}.dh-shots{flex-wrap:wrap;gap:.5rem;display:flex}.dh-shot{border-radius:var(--signa-radius-sm,10px);border:2px solid var(--signa-teal-300);background:var(--signa-mint-50);width:92px;margin:0;position:relative;overflow:hidden}.dh-shot-missed{border-color:var(--signa-coral-500,#d85a49)}.dh-shot img{aspect-ratio:1;object-fit:cover;width:100%;display:block}.dh-shot-item{color:#fff;min-width:1.3rem;font-family:var(--font-display), "Baloo 2", sans-serif;text-align:center;background:#0f3d2ed1;border-radius:6px;padding:.02rem .3rem;font-size:.85rem;font-weight:800;position:absolute;top:.25rem;left:.25rem}.dh-noshots{margin:0}.cg-back-btn{color:#334155;background:#fff;border:1.5px solid #cbd5e1;border-radius:999px;align-items:center;gap:.4rem;padding:.45rem 1rem;font-size:.85rem;font-weight:700;text-decoration:none;transition:all .15s ease-in-out;display:inline-flex;box-shadow:0 1px 3px #0000000d}.cg-back-btn:hover{color:#0284c7;background:#f8fafc;border-color:#0284c7;text-decoration:none;transform:translate(-2px)}.cg-grid{grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:1.25rem;display:grid}.cg-card{background:#fff;border:1px solid #e2e8f0;border-radius:12px;flex-direction:column;margin:0;transition:transform .15s,box-shadow .15s,border-color .15s;display:flex;position:relative;overflow:hidden;box-shadow:0 1px 3px #0000000d}.cg-card:hover{transform:translateY(-3px);box-shadow:0 6px 16px #00000014}.cg-card-passed{border-bottom:3px solid #10b981}.cg-card-missed,.cg-card-abandoned{border-bottom:3px solid #ef4444}.cg-img-wrapper{aspect-ratio:4/3;background:#f1f5f9;width:100%;position:relative;overflow:hidden}.cg-image{object-fit:cover;width:100%;height:100%;transition:transform .2s;display:block}.cg-card:hover .cg-image{transform:scale(1.03)}.cg-img-fallback{color:#94a3b8;background:#f8fafc;justify-content:center;align-items:center;font-size:.85rem;font-weight:600;display:flex}.cg-img-fallback:before{content:"📷 No Preview"}.cg-item{color:#fff;font-family:var(--font-display,inherit);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:2;background:#0f172ae0;border-radius:6px;padding:.28rem .55rem;font-size:1.1rem;font-weight:800;line-height:1;position:absolute;top:.6rem;left:.6rem;box-shadow:0 2px 4px #0003}.cg-result-badge{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:2;border-radius:9999px;padding:.22rem .6rem;font-size:.72rem;font-weight:700;line-height:1;position:absolute;top:.6rem;right:.6rem;box-shadow:0 2px 4px #0000001a}.cg-badge-passed{color:#15803d;background:#dcfce7;border:1px solid #86efac}.cg-badge-missed,.cg-badge-abandoned{color:#991b1b;background:#fee2e2;border:1px solid #fca5a5}.cg-caption{background:#fff;flex-direction:column;flex:1;gap:.35rem;padding:.85rem .95rem;display:flex}.cg-student-name{color:#0f172a;white-space:nowrap;text-overflow:ellipsis;font-size:.95rem;font-weight:700;overflow:hidden}.cg-meta-row{flex-wrap:wrap;align-items:center;gap:.4rem;display:flex}.cg-cat-badge{color:#334155;background:#f1f5f9;border:1px solid #e2e8f0;border-radius:4px;padding:.12rem .45rem;font-size:.72rem;font-weight:600}.cg-level-badge{color:#0369a1;background:#e0f2fe;border:1px solid #bae6fd;border-radius:4px;padding:.12rem .45rem;font-size:.72rem;font-weight:600}.cg-meta-date{color:#64748b;margin-top:.15rem;font-size:.75rem}@media (width<=520px){.cg-grid{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:.85rem}}.td-container{width:100%;margin:0 auto}.td-layout-grid{grid-template-columns:310px 1fr;align-items:start;gap:1.5rem;display:grid}@media (width<=960px){.td-layout-grid{grid-template-columns:1fr}}.td-card{background:#fff;border:1px solid #e2e8f0;border-radius:14px;overflow:hidden;box-shadow:0 2px 10px #00000008}.td-card-header{background:#fff;border-bottom:1px solid #f1f5f9;align-items:center;padding:1rem 1.35rem;display:flex}.td-card-title{color:#0f172a;letter-spacing:-.01em;margin:0;font-size:1.05rem;font-weight:800}.td-badge-count{color:#0284c7;background:#e0f2fe;border-radius:999px;padding:.2rem .6rem;font-size:.76rem;font-weight:700}.td-card-body{padding:1.35rem}.td-roster-card{flex-direction:column;display:flex}.td-roster-search-box{background:#f8fafc;border-bottom:1px solid #f1f5f9;padding:.85rem 1.15rem}.td-search-input{color:#0f172a;width:100%;box-shadow:none;background:#fff;border:1.5px solid #cbd5e1;border-radius:8px;outline:none;padding:.5rem .85rem;font-size:.86rem;transition:border-color .15s}.td-search-input:focus{border-color:#0284c7;box-shadow:0 0 0 3px #0284c71f}.td-student-list{flex-direction:column;gap:.35rem;max-height:520px;padding:.85rem;display:flex;overflow-y:auto}.td-student-row{cursor:pointer;text-align:left;background:#fff;border:1px solid #f1f5f9;border-radius:10px;align-items:center;gap:.75rem;width:100%;padding:.65rem .85rem;transition:all .15s;display:flex}.td-student-row:hover{background:#f8fafc;border-color:#e2e8f0}.td-student-row.is-selected{background:#f0f9ff;border-color:#38bdf8;box-shadow:0 1px 4px #0284c71a}.td-student-all{background:#f8fafc;border-bottom:2px solid #e0f2fe;margin-bottom:.25rem}.td-all-avatar{color:#0284c7;background:#e0f2fe;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:2.2rem;height:2.2rem;font-size:1.05rem;display:flex}.td-avatar-circle{color:#475569;background:#f1f5f9;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:2.2rem;height:2.2rem;font-size:.9rem;font-weight:800;display:flex}.td-student-row.is-selected .td-avatar-circle{color:#fff;background:#0284c7}.td-student-info{flex-direction:column;flex:1;min-width:0;display:flex}.td-student-name{color:#0f172a;white-space:nowrap;text-overflow:ellipsis;font-size:.88rem;font-weight:700;overflow:hidden}.td-student-sub{color:#64748b;margin-top:.1rem;font-size:.74rem}.td-student-count{color:#64748b;background:#f1f5f9;border-radius:999px;flex-shrink:0;padding:.15rem .5rem;font-size:.74rem;font-weight:700}.td-student-count.has-pending{color:#b45309;background:#fef3c7}.td-empty-hint{text-align:center;color:#94a3b8;margin:0;padding:1.5rem 1rem;font-size:.85rem}.td-composer{border-bottom:1px solid #e2e8f0;flex-direction:column;gap:1.25rem;margin-bottom:1.5rem;padding-bottom:1.5rem;display:flex}.td-field{flex-direction:column;gap:.35rem;display:flex}.td-label{color:#1e293b;align-items:center;gap:.4rem;margin:0;font-size:.86rem;font-weight:700;display:flex}.td-required{color:#ef4444;text-transform:uppercase;letter-spacing:.04em;background:#fee2e2;border-radius:999px;padding:.1rem .45rem;font-size:.68rem;font-weight:800}.td-hint{color:#64748b;margin:0;font-size:.78rem}.td-word-input{letter-spacing:.12em;text-transform:uppercase;color:#0f172a;background:#fff;border:1.5px solid #cbd5e1;border-radius:10px;outline:none;width:100%;padding:.7rem .95rem;font-size:1.2rem;font-weight:800;transition:all .15s}.td-word-input:focus{border-color:#0284c7;box-shadow:0 0 0 3px #0284c726}.td-due-input{color:#0f172a;background:#fff;border:1.5px solid #cbd5e1;border-radius:8px;outline:none;width:100%;max-width:320px;padding:.6rem .85rem;font-size:.9rem;transition:all .15s}.td-due-input:focus{border-color:#0284c7;box-shadow:0 0 0 3px #0284c726}.td-allowed-card{background:#f8fafc;border:1px solid #e2e8f0;border-radius:10px;margin-top:.4rem;padding:.85rem 1rem}.td-allowed-header{align-items:center;gap:.45rem;margin-bottom:.45rem;display:flex}.td-allowed-icon{font-size:.95rem}.td-allowed-title{color:#475569;font-size:.78rem;font-weight:700}.td-allowed-badges{flex-wrap:wrap;gap:.5rem;display:flex}.td-allowed-pill{border-radius:8px;align-items:center;gap:.45rem;padding:.3rem .65rem;font-size:.82rem;display:inline-flex}.td-allowed-pill.letters{color:#0369a1;background:#e0f2fe;border:1px solid #bae6fd}.td-allowed-pill.numbers{color:#047857;background:#ecfdf5;border:1px solid #a7f3d0}.td-pill-tag{text-transform:uppercase;font-size:.74rem;font-weight:800}.td-pill-val{font-weight:700}.td-allowed-empty{color:#b45309;font-size:.8rem;font-weight:600}.td-games-grid{grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:.75rem;margin-top:.25rem;display:grid}.td-game-card{cursor:pointer;-webkit-user-select:none;user-select:none;background:#fff;border:1.5px solid #e2e8f0;border-radius:10px;align-items:center;gap:.75rem;padding:.75rem .9rem;transition:all .15s;display:flex;position:relative}.td-game-card:hover{background:#f8fafc;border-color:#cbd5e1}.td-game-card.is-picked{background:#f0f9ff;border-color:#0284c7;box-shadow:0 0 0 2px #0284c726}.td-game-card.is-unplayed{opacity:.65}.td-game-icon{flex-shrink:0;font-size:1.5rem;line-height:1}.td-game-meta-box{flex-direction:column;min-width:0;display:flex}.td-game-name{color:#0f172a;font-size:.88rem;font-weight:700}.td-game-plays{color:#64748b;font-size:.72rem}.td-game-top{color:#b45309;background:#fef3c7;border-radius:999px;padding:.1rem .4rem;font-size:.66rem;font-weight:800;position:absolute;top:.35rem;right:.45rem}.td-btn-submit{color:#fff;cursor:pointer;background:#0284c7;border:none;border-radius:10px;padding:.7rem 1.6rem;font-size:.92rem;font-weight:700;transition:background-color .15s;box-shadow:0 2px 6px #0284c740}.td-btn-submit:hover:not(:disabled){background:#0369a1}.td-btn-submit:disabled{opacity:.6;cursor:not-allowed}.td-broadcast-notice{color:#0369a1;background:#f0f9ff;border:1px solid #bae6fd;border-radius:10px;align-items:flex-start;gap:.85rem;padding:1rem 1.25rem;font-size:.86rem;line-height:1.45;display:flex}.td-notice-icon{flex-shrink:0;font-size:1.3rem}.td-section-head{justify-content:space-between;align-items:center;margin-bottom:.85rem;display:flex}.td-subheading{color:#0f172a;margin:0;font-size:.96rem;font-weight:800}.td-note-count{color:#64748b;font-size:.76rem;font-weight:600}.td-drills-empty{text-align:center;color:#64748b;background:#f8fafc;border:1.5px dashed #cbd5e1;border-radius:12px;padding:2.5rem 1.5rem}.td-empty-symbol{margin-bottom:.5rem;font-size:2rem;display:block}.td-drills-list{flex-direction:column;gap:.6rem;display:flex}.td-drill-card{background:#fff;border:1px solid #e2e8f0;border-radius:10px;justify-content:space-between;align-items:center;gap:1rem;padding:.75rem 1rem;transition:all .15s;display:flex}.td-drill-card:hover{border-color:#cbd5e1;box-shadow:0 1px 4px #0000000a}.td-drill-card.is-completed{background:#f8fafc;border-color:#e2e8f0}.td-drill-primary{align-items:center;gap:.75rem;display:flex}.td-drill-word{letter-spacing:.08em;color:#0f172a;background:#f1f5f9;border-radius:6px;padding:.2rem .6rem;font-size:1.1rem;font-weight:800}.td-drill-game-pill{color:#475569;align-items:center;gap:.35rem;font-size:.8rem;font-weight:600;display:flex}.td-drill-meta{align-items:center;gap:.85rem;font-size:.8rem;display:flex}.td-drill-status-badge{border-radius:999px;padding:.2rem .55rem;font-size:.75rem;font-weight:700}.td-drill-status-badge.is-done{color:#15803d;background:#dcfce7}.td-drill-status-badge.is-pending{color:#b45309;background:#fef3c7}.td-drill-deadline{color:#64748b;font-size:.78rem}.td-drill-deadline.is-overdue{color:#dc2626;font-weight:700}.td-drill-delete-btn{color:#ef4444;cursor:pointer;background:#fff5f5;border:1px solid #fee2e2;border-radius:6px;flex-shrink:0;justify-content:center;align-items:center;width:2rem;height:2rem;font-size:.88rem;transition:all .15s;display:flex}.td-drill-delete-btn:hover{color:#fff;background:#ef4444;border-color:#ef4444}@media (width<=680px){.td-drill-card{flex-direction:column;align-items:flex-start}.td-drill-meta{flex-wrap:wrap}.td-games-grid{grid-template-columns:1fr}}.tsl-container{width:100%;margin:0 auto}.tsl-stats-grid{grid-template-columns:repeat(4,1fr);gap:1.25rem;margin-bottom:1.5rem;display:grid}@media (width<=992px){.tsl-stats-grid{grid-template-columns:repeat(2,1fr)}}@media (width<=576px){.tsl-stats-grid{grid-template-columns:1fr}}.tsl-stat-card{background:#fff;border:1px solid #e2e8f0;border-radius:14px;align-items:center;gap:1rem;padding:1.15rem 1.35rem;transition:transform .15s,box-shadow .15s;display:flex;box-shadow:0 2px 10px #00000008}.tsl-stat-icon-wrap{border-radius:12px;flex-shrink:0;justify-content:center;align-items:center;width:2.85rem;height:2.85rem;font-size:1.35rem;display:flex}.icon-blue{color:#0284c7;background:#e0f2fe}.icon-teal{color:#0d9488;background:#ccfbf1}.icon-amber{color:#d97706;background:#fef3c7}.icon-green{color:#16a34a;background:#dcfce7}.tsl-stat-info{flex-direction:column;min-width:0;display:flex}.tsl-stat-val{color:#0f172a;letter-spacing:-.02em;font-size:1.55rem;font-weight:800;line-height:1.1}.tsl-stat-label{color:#64748b;margin-top:.2rem;font-size:.78rem;font-weight:600}.tsl-card{background:#fff;border:1px solid #e2e8f0;border-radius:14px;overflow:hidden;box-shadow:0 2px 12px #00000008}.tsl-card-header{background:#fff;border-bottom:1px solid #f1f5f9;padding:1.15rem 1.5rem}.tsl-card-title{color:#0f172a;letter-spacing:-.01em;margin:0;font-size:1.15rem;font-weight:800}.tsl-count-pill{color:#0284c7;background:#e0f2fe;border-radius:999px;padding:.2rem .65rem;font-size:.76rem;font-weight:700}.tsl-report-shortcut{color:#475569;cursor:pointer;background:#f8fafc;border:1px solid #cbd5e1;border-radius:8px;align-items:center;gap:.4rem;padding:.45rem .95rem;font-size:.82rem;font-weight:700;transition:all .15s;display:inline-flex}.tsl-report-shortcut:hover{color:#0f172a;background:#f1f5f9;border-color:#94a3b8}.tsl-toolbar{background:#f8fafc;border-bottom:1px solid #f1f5f9;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.85rem;padding:1rem 1.5rem;display:flex}.tsl-search-box{flex:1;min-width:240px;max-width:380px;position:relative}.tsl-search-icon{color:#94a3b8;pointer-events:none;font-size:.88rem;position:absolute;top:50%;left:.85rem;transform:translateY(-50%)}.tsl-search{color:#0f172a;background:#fff;border:1.5px solid #cbd5e1;border-radius:8px;outline:none;width:100%;padding:.55rem 2rem .55rem 2.25rem;font-size:.88rem;transition:all .15s}.tsl-search:focus{border-color:#0284c7;box-shadow:0 0 0 3px #0284c71f}.tsl-search-clear{color:#94a3b8;cursor:pointer;background:0 0;border:none;padding:.2rem;font-size:.75rem;position:absolute;top:50%;right:.65rem;transform:translateY(-50%)}.tsl-search-clear:hover{color:#ef4444}.tsl-filter-tabs{flex-wrap:wrap;align-items:center;gap:.4rem;display:flex}.tsl-tab-btn{color:#64748b;cursor:pointer;background:#fff;border:1px solid #cbd5e1;border-radius:8px;padding:.42rem .85rem;font-size:.8rem;font-weight:700;transition:all .15s}.tsl-tab-btn:hover{color:#0f172a;background:#f1f5f9}.tsl-tab-btn.is-active{color:#fff;background:#0284c7;border-color:#0284c7;box-shadow:0 1px 3px #0284c733}.tsl-tab-btn.is-active.is-warn{background:#d97706;border-color:#d97706}.tsl-tab-btn.is-active.is-success{background:#16a34a;border-color:#16a34a}.tsl-table-head{letter-spacing:.06em;text-transform:uppercase;color:#64748b;background:#fff;border-bottom:1px solid #e2e8f0;grid-template-columns:minmax(200px,1.4fr) minmax(220px,1.6fr) minmax(180px,1.2fr) 130px;align-items:center;gap:1.25rem;padding:.75rem 1.5rem;font-size:.72rem;font-weight:800;display:grid}.tsl-list{flex-direction:column;display:flex}.tsl-row{background:#fff;border-bottom:1px solid #f1f5f9;grid-template-columns:minmax(200px,1.4fr) minmax(220px,1.6fr) minmax(180px,1.2fr) 130px;align-items:center;gap:1.25rem;padding:.95rem 1.5rem;transition:background-color .12s;display:grid}.tsl-row:hover{background:#f8fafc}.tsl-row:last-child{border-bottom:none}.tsl-col-student{align-items:center;gap:.85rem;min-width:0;display:flex}.tsl-avatar{color:#fff;background:linear-gradient(135deg,#0284c7 0%,#0369a1 100%);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:2.6rem;height:2.6rem;font-size:1.05rem;font-weight:800;display:flex;box-shadow:0 2px 6px #0284c740}.tsl-who-meta{flex-direction:column;min-width:0;display:flex}.tsl-name{color:#0f172a;white-space:nowrap;text-overflow:ellipsis;font-size:.95rem;font-weight:700;overflow:hidden}.tsl-schedule-badge{color:#0284c7;white-space:nowrap;background:#f0f9ff;border-radius:6px;margin-top:.2rem;padding:.1rem .45rem;font-size:.72rem;font-weight:600;display:inline-block}.tsl-sub-note{color:#94a3b8;margin-top:.15rem;font-size:.72rem}.tsl-col-progress{flex-direction:column;min-width:0;display:flex}.tsl-progress-label{color:#64748b;font-size:.74rem;font-weight:600}.tsl-progress-num{color:#0f172a;font-variant-numeric:tabular-nums;font-size:.78rem}.tsl-progress-track{background:#e2e8f0;border-radius:999px;width:100%;height:.55rem;overflow:hidden}.tsl-progress-bar-fill{background:linear-gradient(90deg,#0284c7 0%,#38bdf8 100%);border-radius:999px;height:100%;transition:width .3s}.tsl-col-accuracy{flex-direction:column;display:flex}.tsl-acc-box{flex-direction:column;line-height:1.25;display:flex}.tsl-acc-num{font-variant-numeric:tabular-nums;font-size:1.1rem;font-weight:800}.tsl-acc-good .tsl-acc-num{color:#16a34a}.tsl-acc-fair .tsl-acc-num{color:#d97706}.tsl-acc-poor .tsl-acc-num{color:#dc2626}.tsl-acc-tag{border-radius:999px;padding:.1rem .45rem;font-size:.72rem;font-weight:700}.tsl-acc-good .tsl-acc-tag{color:#15803d;background:#dcfce7}.tsl-acc-fair .tsl-acc-tag{color:#b45309;background:#fef3c7}.tsl-acc-poor .tsl-acc-tag{color:#b91c1c;background:#fee2e2}.tsl-acc-shots{color:#64748b;margin-top:.15rem;font-size:.72rem}.tsl-acc-none{color:#94a3b8;font-size:.76rem;font-style:italic}.tsl-col-action{text-align:right}.tsl-action-link{color:#0284c7;cursor:pointer;white-space:nowrap;background:#f0f9ff;border:1px solid #bae6fd;border-radius:8px;justify-content:center;align-items:center;gap:.35rem;padding:.42rem .85rem;font-size:.8rem;font-weight:700;text-decoration:none;transition:background-color .15s,border-color .15s,color .15s,box-shadow .15s;display:inline-flex}.tsl-action-link:hover{color:#fff;background:#0284c7;border-color:#0284c7;text-decoration:none;box-shadow:0 2px 6px #0284c740}.tsl-action-link:active{background:#0369a1;border-color:#0369a1}.tsl-empty-state{text-align:center;padding:3.5rem 1.5rem}.tsl-empty-icon{margin-bottom:.75rem;font-size:2.5rem;display:block}.tsl-empty-state h3{color:#0f172a;margin-bottom:.35rem;font-size:1.15rem;font-weight:800}.tsl-empty-state p{color:#64748b;max-width:440px;margin:0 auto;font-size:.88rem}.tsl-no-results{text-align:center;color:#64748b;padding:2.5rem 1.5rem;font-size:.88rem}.tsl-reset-btn{color:#0284c7;cursor:pointer;background:#e0f2fe;border:none;border-radius:6px;margin-top:.65rem;padding:.4rem .95rem;font-size:.8rem;font-weight:700}@media (width<=768px){.tsl-table-head{display:none}.tsl-row{grid-template-columns:1fr;gap:.75rem;padding:1.15rem}.tsl-col-action{text-align:left}}.rep-page{max-width:62rem;margin:0 auto}.rep-back-btn{color:#334155;background:#fff;border:1.5px solid #cbd5e1;border-radius:999px;align-items:center;gap:.4rem;margin-bottom:.5rem;padding:.45rem 1rem;font-size:.85rem;font-weight:700;text-decoration:none;transition:all .15s ease-in-out;display:inline-flex;box-shadow:0 1px 3px #0000000d}.rep-back-btn:hover{color:#0284c7;background:#f8fafc;border-color:#0284c7;text-decoration:none;transform:translate(-2px)}.rep-export{align-items:center;gap:.85rem;margin-bottom:1.5rem;display:flex}.rep-go{color:#fff;font:inherit;cursor:pointer;background:#0284c7;border:none;border-radius:8px;align-items:center;gap:.5rem;padding:.6rem 1.35rem;font-size:.92rem;font-weight:700;transition:all .15s ease-in-out;display:inline-flex;box-shadow:0 2px 6px #0284c740}.rep-go:hover{background:#0369a1;transform:translateY(-1px);box-shadow:0 4px 12px #0284c759}.rep-mini{color:#334155;font:inherit;cursor:pointer;background:#fff;border:1.5px solid #cbd5e1;border-radius:8px;align-items:center;gap:.5rem;padding:.55rem 1.1rem;font-size:.9rem;font-weight:600;transition:all .15s ease-in-out;display:inline-flex}.rep-mini:hover{color:#0f172a;background:#f1f5f9;border-color:#94a3b8}.rep-doc{color:#0f172a;background:#fff;border:1px solid #e2e8f0;border-radius:12px;margin-bottom:2.5rem;padding:3rem 3.5rem;position:relative;box-shadow:0 4px 20px #0000000d}.rep-watermark{opacity:.07;pointer-events:none;-webkit-user-select:none;user-select:none;width:55%;max-width:25rem;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.rep-doc>:not(.rep-watermark){z-index:1;position:relative}.rep-doc-head{text-align:center;border-bottom:2px solid #0f172a;margin-bottom:2rem;padding-bottom:1.25rem}.rep-doc-org{margin-bottom:.5rem}.rep-doc-republic{text-transform:uppercase;letter-spacing:.06em;color:#475569;font-size:.8rem;font-weight:600}.rep-doc-dept{color:#1e293b;margin-top:.1rem;font-size:.95rem;font-weight:700}.rep-doc-school{color:#0f172a;margin-top:.1rem;font-size:1.1rem;font-weight:800}.rep-doc-title{color:#0284c7;letter-spacing:-.01em;margin:.75rem 0 .25rem;font-size:1.4rem;font-weight:800}.rep-meta{color:#64748b;margin:.25rem 0 0;font-size:.84rem;font-weight:500}.rep-section-title,.rep-doc h3{color:#0f172a;margin:2rem 0 .75rem;font-size:1.1rem;font-weight:700}.rep-kpis{grid-template-columns:repeat(auto-fit,minmax(11rem,1fr));gap:1rem;margin:0 0 2rem;display:grid}.rep-kpi{background:#f8fafc;border:1.5px solid #e2e8f0;border-radius:10px;flex-direction:column;gap:.35rem;padding:1rem 1.15rem;display:flex}.rep-kpi-value{color:#0f172a;font-size:1.85rem;font-weight:800;line-height:1}.rep-kpi-label{color:#475569;font-size:.8rem;font-weight:600}.rep-table-responsive{-webkit-overflow-scrolling:touch;width:100%;overflow-x:auto}.rep-table{border-collapse:collapse;width:100%;margin:.85rem 0 1.5rem;font-size:.92rem}.rep-table th,.rep-table td{text-align:left;border-bottom:1px solid #e2e8f0;padding:.65rem .85rem}.rep-table th{text-transform:uppercase;letter-spacing:.03em;color:#0f172a;background:#f1f5f9;border-bottom:2px solid #cbd5e1;font-size:.82rem;font-weight:700}.rep-table td{color:#1e293b}.rep-total td{color:#0f172a;background:#f8fafc;border-top:2px solid #0f172a;border-bottom:2px solid #0f172a;font-weight:800}.rep-levels{flex-wrap:wrap;gap:2rem;margin-top:1.25rem;display:flex}.rep-levels-col{flex:1;min-width:12rem}.rep-levels h4,.rep-hardest h4{color:#0f172a;margin:0 0 .5rem;font-size:.95rem;font-weight:700}.rep-levels ul{margin:0;padding:0;font-size:.88rem;list-style:none}.rep-levels li{color:#334155;border-bottom:1px dotted #cbd5e1;justify-content:space-between;padding:.35rem 0;display:flex}.rep-done{color:#16a34a;font-weight:700}.rep-hardest{margin-top:1.25rem}.rep-hardest ul{color:#334155;margin:0;padding-left:1.2rem;font-size:.88rem}.rep-note{color:#166534;background:#f0fdf4;border:1px solid #bbf7d0;border-left:4px solid #16a34a;border-radius:8px;margin-top:2rem;padding:.85rem 1.15rem;font-size:.82rem;line-height:1.5}.rep-signatory-container{page-break-inside:avoid;break-inside:avoid;justify-content:flex-end;margin-top:3.5rem;display:flex}.rep-signatory-box{text-align:center;flex-direction:column;align-items:center;width:280px;display:flex}.rep-signatory-label{color:#334155;align-self:flex-start;margin-bottom:2.75rem;font-size:.88rem;font-weight:600}.rep-signatory-space{height:0}.rep-signatory-name{color:#0f172a;letter-spacing:.03em;border-top:1.5px solid #0f172a;width:100%;margin-bottom:.15rem;padding-top:.45rem;font-size:1.05rem;font-weight:800}.rep-signatory-title{color:#475569;letter-spacing:.05em;font-size:.88rem;font-weight:700}.rep-desktop-doc{display:block}.rep-mobile-card,.rep-modal-backdrop{display:none}@media (width<=768px){.rep-desktop-doc,.rep-export{display:none}.rep-mobile-card{background:#fff;border:1px solid #e2e8f0;border-radius:16px;margin-bottom:2rem;padding:1.5rem 1.25rem;display:block;box-shadow:0 4px 16px #0000000a}.rep-mc-header{margin-bottom:1.25rem}.rep-mc-badge{color:#0284c7;text-transform:uppercase;letter-spacing:.03em;background:#f0f9ff;border:1px solid #bae6fd;border-radius:999px;align-items:center;gap:.35rem;margin-bottom:.65rem;padding:.2rem .65rem;font-size:.72rem;font-weight:700;display:inline-flex}.rep-mc-title{color:#0f172a;margin:0 0 .35rem;font-size:1.35rem;font-weight:800}.rep-mc-desc{color:#64748b;margin:0;font-size:.88rem;line-height:1.45}.rep-mc-stats{background:#f8fafc;border:1px solid #e2e8f0;border-radius:12px;grid-template-columns:repeat(3,1fr);gap:.5rem;margin-bottom:1.35rem;padding:.85rem .5rem;display:grid}.rep-mc-stat{text-align:center;flex-direction:column;align-items:center;display:flex}.rep-mc-stat-num{color:#0284c7;font-size:1.25rem;font-weight:800;line-height:1.1}.rep-mc-stat-lbl{color:#64748b;text-transform:uppercase;letter-spacing:.02em;margin-top:.25rem;font-size:.68rem;font-weight:600}.rep-mc-actions{flex-direction:column;gap:.75rem;display:flex}.rep-mc-btn{cursor:pointer;text-align:left;border-radius:12px;align-items:center;gap:.85rem;width:100%;padding:.85rem 1rem;transition:all .15s ease-in-out;display:flex}.rep-mc-btn-icon{flex-shrink:0;font-size:1.5rem;line-height:1}.rep-mc-btn-text{flex-direction:column;min-width:0;display:flex}.rep-mc-btn-title{font-size:.95rem;font-weight:700;line-height:1.2}.rep-mc-btn-sub{opacity:.82;margin-top:.15rem;font-size:.75rem}.rep-mc-btn-primary{color:#fff;background:linear-gradient(135deg,#0284c7 0%,#0369a1 100%);border:none;box-shadow:0 3px 10px #0284c747}.rep-mc-btn-primary:active{transform:scale(.99)}.rep-mc-btn-csv{color:#334155;background:#fff;border:1.5px solid #cbd5e1}.rep-mc-btn-csv:active{background:#f8fafc;border-color:#94a3b8}.rep-mc-btn-preview{color:#166534;background:#f0fdf4;border:1.5px solid #86efac}.rep-mc-btn-preview:active{background:#dcfce7}.rep-modal-backdrop{z-index:1050;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#0f172aa6;justify-content:center;align-items:flex-end;padding:0;animation:.2s ease-out repFadeIn;display:flex;position:fixed;inset:0}.rep-modal-dialog{background:#f8fafc;border-top-left-radius:20px;border-top-right-radius:20px;flex-direction:column;width:100%;height:94vh;max-height:94vh;animation:.25s ease-out repSlideUp;display:flex;overflow:hidden;box-shadow:0 -8px 30px #00000040}.rep-modal-header{background:#fff;border-bottom:1px solid #e2e8f0;flex-shrink:0;justify-content:space-between;align-items:center;padding:.85rem 1.15rem;display:flex}.rep-modal-title{color:#0f172a;align-items:center;gap:.4rem;font-size:.95rem;font-weight:700;display:flex}.rep-modal-header-actions{align-items:center;gap:.65rem;display:flex}.rep-modal-print-btn{color:#fff;cursor:pointer;background:#0284c7;border:none;border-radius:8px;padding:.4rem .85rem;font-size:.82rem;font-weight:700}.rep-modal-close-btn{color:#475569;cursor:pointer;background:#e2e8f0;border:none;border-radius:50%;justify-content:center;align-items:center;width:32px;height:32px;font-size:.9rem;font-weight:700;display:flex}.rep-modal-close-btn:hover{color:#0f172a;background:#cbd5e1}.rep-modal-body{-webkit-overflow-scrolling:touch;flex:1;padding:1rem .75rem 3rem;overflow-y:auto}.rep-modal-body .rep-doc{border-radius:12px;margin-bottom:1rem;box-shadow:0 2px 8px #0000000f;padding:1.5rem 1rem!important}.rep-modal-body .rep-doc-title{font-size:1.15rem!important}.rep-modal-body .rep-kpis{gap:.65rem;grid-template-columns:repeat(2,1fr)!important}.rep-modal-body .rep-kpi{padding:.75rem}.rep-modal-body .rep-kpi-value{font-size:1.35rem}.rep-modal-body .rep-signatory-container{justify-content:center;margin-top:2rem}}@keyframes repFadeIn{0%{opacity:0}to{opacity:1}}@keyframes repSlideUp{0%{transform:translateY(100%)}to{transform:translateY(0)}}@media print{.staff-sidebar,.staff-header,.staff-footer,.rep-noprint,.rep-mobile-card,.rep-modal-backdrop,.admin-scene>:not(.admin-dashboard){display:none!important}body,.staff-layout,.staff-body,.staff-content,.admin-scene,.admin-dashboard,.rep-page{background:#fff!important;max-width:none!important;height:auto!important;margin:0!important;padding:0!important;overflow:visible!important}.rep-desktop-doc{display:block!important}.rep-doc{box-shadow:none!important;border:none!important;border-radius:0!important;width:100%!important;margin:0!important;padding:0!important}.rep-watermark{-webkit-print-color-adjust:exact;print-color-adjust:exact;width:50%;position:fixed;top:40%;left:50%;transform:translate(-50%,-50%);opacity:.08!important}.rep-student{break-inside:avoid}.rep-table-responsive{overflow:visible!important}.rep-table th{-webkit-print-color-adjust:exact;print-color-adjust:exact;background:#f1f5f9!important}.rep-signatory-container{break-inside:avoid;page-break-inside:avoid}}.ata-grid{grid-template-columns:minmax(0,1fr) minmax(0,1.65fr);align-items:start;gap:1.5rem;display:grid}.ata-mobile-tabs{display:none}.ata-search-box{background:#f8fafc;border:1.5px solid #cbd5e1;border-radius:10px;align-items:center;width:100%;padding:.38rem .75rem;transition:all .15s ease-in-out;display:flex}.ata-search-box:focus-within{background:#fff;border-color:#0284c7;box-shadow:0 0 0 3px #0284c71f}.ata-search-icon{color:#94a3b8;-webkit-user-select:none;user-select:none;margin-right:.55rem;font-size:.9rem}.ata-search-input{color:#0f172a;flex:1;padding:.2rem 0;font-family:inherit;font-size:.9rem;box-shadow:none!important;background:0 0!important;border:none!important;outline:none!important}.ata-search-input::placeholder{color:#94a3b8}.ata-search-clear{color:#475569;cursor:pointer;background:#e2e8f0;border:none;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:22px;height:22px;font-size:.75rem;transition:all .12s;display:flex}.ata-search-clear:hover{color:#0f172a;background:#cbd5e1}.ata-teacher-list{flex-direction:column;gap:.5rem;max-height:56vh;padding-right:.2rem;display:flex;overflow-y:auto}.ata-teacher-row{cursor:pointer;text-align:left;background:#fff;border:1px solid #e2e8f0;border-radius:10px;align-items:center;gap:.75rem;width:100%;padding:.65rem .85rem;transition:all .15s ease-in-out;display:flex}.ata-teacher-row:hover{background:#f8fafc;border-color:#94a3b8}.ata-teacher-row.is-selected{background:#f0f9ff;border-color:#0284c7;box-shadow:0 2px 8px #0284c71f}.ata-teacher-avatar{color:#0369a1;background:#e0f2fe;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:34px;height:34px;font-size:.9rem;font-weight:700;transition:all .15s;display:flex}.ata-teacher-row.is-selected .ata-teacher-avatar{color:#fff;background:#0284c7}.ata-teacher-name{color:#0f172a;white-space:nowrap;text-overflow:ellipsis;flex:1;min-width:0;font-size:.92rem;font-weight:700;overflow:hidden}.ata-teacher-row.is-selected .ata-teacher-name{color:#0284c7}.ata-teacher-count{color:#0284c7;font-variant-numeric:tabular-nums;background:#f0f9ff;border:1px solid #bae6fd;border-radius:999px;flex-shrink:0;padding:.15rem .55rem;font-size:.72rem;font-weight:700;transition:all .15s}.ata-teacher-row.is-selected .ata-teacher-count{color:#fff;background:#0284c7;border-color:#0284c7}.ata-mobile-teacher-bar{display:none}.ata-student-list{flex-direction:column;gap:.55rem;max-height:48vh;padding-right:.25rem;display:flex;overflow-y:auto}.ata-student-row{background:#fff;border:1px solid #e2e8f0;border-radius:10px;flex-direction:column;gap:.45rem;padding:.7rem .9rem;transition:all .15s ease-in-out;display:flex}.ata-student-row:hover{background:#f8fafc;border-color:#cbd5e1}.ata-student-row.is-on{background:#f0fdf4;border-color:#86efac;box-shadow:0 1px 3px #0000000a}.ata-student-main{cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:.75rem;min-height:28px;display:flex}.ata-checkbox{accent-color:#10b981;cursor:pointer;flex-shrink:0;width:1.25rem;height:1.25rem}.ata-student-name{color:#0f172a;white-space:nowrap;text-overflow:ellipsis;font-size:.95rem;font-weight:700;overflow:hidden}.ata-slot{flex-wrap:wrap;align-items:center;gap:.5rem;margin-top:.2rem;padding-left:1.9rem;display:flex}.ata-slot-day-wrap{display:inline-flex}.ata-slot-times-wrap{align-items:center;gap:.35rem;display:inline-flex}.ata-slot-time-col{flex-direction:column;display:inline-flex}.ata-slot-time-lbl{display:none}.ata-select,.ata-time{color:#0f172a;background:#fff;border:1.5px solid #cbd5e1;border-radius:8px;outline:none;padding:.35rem .65rem;font-family:inherit;font-size:.85rem;transition:all .15s}.ata-select:focus,.ata-time:focus{border-color:#0284c7;box-shadow:0 0 0 2px #0284c726}.ata-select{min-width:7.5rem;font-weight:500}.ata-slot-dash{color:#64748b;font-weight:700}.ata-actions{border-top:1px solid #e2e8f0;align-items:center;gap:1rem;margin-top:1.25rem;padding-top:1.25rem;display:flex}.ata-save-btn{color:#fff;cursor:pointer;background:#0284c7;border:none;border-radius:8px;padding:.6rem 1.45rem;font-size:.92rem;font-weight:700;transition:all .15s ease-in-out;box-shadow:0 2px 6px #0284c740}.ata-save-btn:hover:not(:disabled){background:#0369a1;box-shadow:0 4px 12px #0284c759}.ata-save-btn:active{transform:translateY(0)}.ata-save-btn:disabled{opacity:.65;cursor:not-allowed}.ata-saved{color:#16a34a;font-size:.88rem;font-weight:700}@media (width<=860px){.ata-grid{grid-template-columns:1fr;gap:1rem}.ata-mobile-tabs{background:#f1f5f9;border-radius:12px;gap:.5rem;margin-bottom:1.25rem;padding:.35rem;display:flex;box-shadow:inset 0 1px 2px #0000000a}.ata-tab-btn{color:#64748b;cursor:pointer;background:0 0;border:none;border-radius:9px;flex:1;justify-content:center;align-items:center;gap:.5rem;padding:.7rem .6rem;font-size:.9rem;font-weight:600;transition:all .15s ease-in-out;display:flex}.ata-tab-btn.is-active{color:#0284c7;background:#fff;font-weight:700;box-shadow:0 2px 6px #0f172a14}.ata-tab-badge{color:#475569;font-variant-numeric:tabular-nums;background:#e2e8f0;border-radius:999px;padding:.15rem .5rem;font-size:.72rem;font-weight:700}.ata-tab-btn.is-active .ata-tab-badge{color:#0369a1;background:#e0f2fe}.ata-tab-btn.is-active .ata-tab-badge.is-assigned{color:#fff;background:#0284c7}.ata-grid[data-active-tab=teachers] .ata-students-card,.ata-grid[data-active-tab=students] .ata-teachers-card{display:none}.ata-mobile-teacher-bar{background:#f8fafc;border:1px solid #e2e8f0;border-radius:12px;flex-direction:column;gap:.65rem;margin-bottom:1.1rem;padding:.75rem .85rem;display:flex}.ata-mobile-tb-info{align-items:center;gap:.65rem;display:flex}.ata-mobile-tb-avatar{color:#fff;background:#0284c7;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:36px;height:36px;font-size:.95rem;font-weight:700;display:flex}.ata-mobile-tb-meta{flex-direction:column;min-width:0;display:flex}.ata-mobile-tb-label{text-transform:uppercase;color:#64748b;letter-spacing:.03em;font-size:.68rem;font-weight:700}.ata-mobile-tb-name{color:#0f172a;white-space:nowrap;text-overflow:ellipsis;font-size:.95rem;font-weight:700;overflow:hidden}.ata-mobile-tb-actions{align-items:center;gap:.5rem;display:flex}.ata-mobile-tb-select{color:#0f172a;background:#fff;border:1.5px solid #cbd5e1;border-radius:8px;outline:none;flex:1;min-width:0;height:38px;padding:0 .65rem;font-size:.85rem;font-weight:600}.ata-mobile-tb-select:focus{border-color:#0284c7;box-shadow:0 0 0 2px #0284c726}.ata-mobile-tb-list-btn{color:#334155;cursor:pointer;white-space:nowrap;background:#fff;border:1px solid #cbd5e1;border-radius:8px;flex-shrink:0;height:38px;padding:0 .85rem;font-size:.82rem;font-weight:600;transition:all .15s}.ata-mobile-tb-list-btn:hover{background:#f1f5f9;border-color:#94a3b8}}@media (width<=576px){.ata-card-header{padding:.85rem 1rem!important}.ata-card-header .fs-5{font-size:1.05rem!important}.ata-card-header .badge{padding:.25rem .55rem!important;font-size:.78rem!important}.ata-card-body{padding:.95rem!important}.ata-teacher-list{gap:.45rem;max-height:60vh}.ata-teacher-row{min-height:52px;padding:.75rem .85rem}.ata-teacher-avatar{width:36px;height:36px}.ata-student-list{gap:.55rem;max-height:54vh}.ata-student-row{padding:.75rem .85rem}.ata-student-main{min-height:36px}.ata-student-name{font-size:.92rem}.ata-checkbox{width:1.35rem;height:1.35rem}.ata-slot{background:#f8fafc;border:1px solid #e2e8f0;border-radius:9px;flex-direction:column;gap:.5rem;margin-top:.45rem;padding:.65rem .75rem;display:flex}.ata-slot-day-wrap{width:100%;display:block}.ata-slot-day-wrap .ata-select{width:100%;min-width:0;height:40px;font-size:.88rem;font-weight:600}.ata-slot-times-wrap{align-items:center;gap:.45rem;width:100%;display:flex}.ata-slot-time-col{flex-direction:column;flex:1;gap:.2rem;min-width:0;display:flex}.ata-slot-time-lbl{color:#64748b;text-transform:uppercase;letter-spacing:.03em;font-size:.68rem;font-weight:700;display:block}.ata-slot-times-wrap .ata-time{width:100%;min-width:0;height:40px;padding:.25rem .5rem;font-size:.88rem}.ata-slot-dash{color:#94a3b8;flex-shrink:0;margin-top:1rem;font-weight:700}.ata-actions{flex-direction:column;align-items:stretch;gap:.65rem;margin-top:1rem;padding-top:1rem}.ata-save-btn{border-radius:10px;justify-content:center;align-items:center;width:100%;height:46px;font-size:.98rem;display:flex}.ata-saved{text-align:center;font-size:.85rem}}:root{--arcade-ink:#0f3d2e;--arcade-edge:3px;--arcade-drop:0 6px 0 var(--arcade-ink);--arcade-drop-sm:0 4px 0 var(--arcade-ink);--arcade-lift:0 16px 32px #0f3d2e4d;--arcade-radius:14px}.auth-form,.staff-panel,.cs-tile,.ls-tile,.gm-tile,.card,.practice-card,.level-start-card,.game-results-card,.sm-card-face,.sm-card-back{border:var(--arcade-edge) solid var(--arcade-ink);border-radius:var(--arcade-radius);box-shadow:var(--arcade-drop), var(--arcade-lift)}.auth-form,.staff-panel,.practice-card{background:#fffffff7}button:not(.arcade-plain),.admin-add-button,.admin-delete-button,.staff-submit,.camera-toggle-btn{border:var(--arcade-edge) solid var(--arcade-ink);box-shadow:var(--arcade-drop-sm);border-radius:12px;transition:transform 80ms,box-shadow 80ms,background .15s}button:not(.arcade-plain):active:not(:disabled),.admin-add-button:active:not(:disabled),.staff-submit:active:not(:disabled){box-shadow:0 0 0 var(--arcade-ink);transform:translateY(4px)}button:not(.arcade-plain):disabled{box-shadow:var(--arcade-drop-sm);transform:none}.auth-form button[type=submit],.staff-submit{font-family:var(--font-display);letter-spacing:.12em;text-transform:uppercase;box-shadow:var(--arcade-drop);font-weight:800}.auth-form button[type=submit]{background:var(--signa-amber-500);color:var(--arcade-ink)}.auth-form button[type=submit]:hover:not(:disabled){background:#ffc95c}.auth-form button[type=submit]:active:not(:disabled),.staff-submit:active:not(:disabled){transform:translateY(6px)}input:not([type=checkbox]):not([type=radio]),select,textarea,.auth-form input,.staff-form input{border:var(--arcade-edge) solid var(--arcade-ink);border-radius:10px;box-shadow:inset 0 3px #0f3d2e17}.auth-form input:focus,.staff-form input:focus{border-color:var(--signa-amber-500);box-shadow:inset 0 3px #f4a30029}.world-scene h1,.cs-scene h1,.ls-scene h1,.gm-scene h1,.admin-scene h1{text-shadow:0 3px #0f3d2e29}.world-scene .auth-form h1:before{animation:1.6s ease-in-out infinite arcade-mark-bob}@keyframes arcade-mark-bob{0%,to{transform:translateY(0)}50%{transform:translateY(-5px)}}.arcade-badge{font-family:var(--font-display);letter-spacing:.22em;text-transform:uppercase;color:#fff;background:var(--signa-amber-500);border:var(--arcade-edge) solid var(--arcade-ink);box-shadow:0 3px 0 var(--arcade-ink);border-radius:999px;align-self:center;margin:-.4rem 0 -.2rem;padding:.25rem .85rem;font-size:.72rem;font-weight:800}@media (prefers-reduced-motion:reduce){.world-scene .auth-form h1:before{animation:none}}:root{--wood-ink:#5a3921;--wood-ink-soft:#6b4a2f;--wood-rule:#5a392138}.wood-panel,.login-frame,.gom-card{box-shadow:none;background-image:url(/assets/bg-BFqPLEdj.png);background-repeat:no-repeat;background-size:100% 100%;border:none;border-radius:0;position:relative}.wood-paper,.login-paper,.gom-paper{background-image:url(/assets/table-Bxxv0Ek1.png);background-repeat:no-repeat;background-size:100% 100%;position:relative}.wood-paper,.wood-paper p,.wood-paper h1,.wood-paper h2,.wood-paper h3,.wood-paper label,.wood-paper .stub-note{color:var(--wood-ink-soft)}.wood-paper h1,.wood-paper h2,.wood-paper h3{color:var(--wood-ink);text-shadow:0 2px #fff9}.staff-layout input,.staff-layout select,.staff-layout textarea,.admin-modal-backdrop input,.admin-modal-backdrop select,.admin-modal-backdrop textarea{box-shadow:none!important;color:#0f172a!important;background:#fff!important;border:1.5px solid #cbd5e1!important;border-radius:8px!important}.staff-layout input:focus,.staff-layout select:focus,.staff-layout textarea:focus,.admin-modal-backdrop input:focus,.admin-modal-backdrop select:focus,.admin-modal-backdrop textarea:focus{border-color:#0284c7!important;box-shadow:0 0 0 3px #0284c726!important}.staff-layout button:not(.arcade-btn),.admin-modal-backdrop button{box-shadow:none!important;border:1px solid #0000!important;transform:none!important}.admin-modal-backdrop .admin-btn-primary{color:#fff!important;background:#0284c7!important;border:none!important;box-shadow:0 2px 6px #0284c740!important}.admin-modal-backdrop .admin-btn-primary:hover:not(:disabled){background:#0369a1!important;box-shadow:0 4px 12px #0284c759!important}.admin-modal-backdrop .admin-btn-secondary{color:#475569!important;background:#fff!important;border:1.5px solid #cbd5e1!important}.admin-modal-backdrop .admin-btn-secondary:hover:not(:disabled){color:#0f172a!important;background:#f1f5f9!important;border-color:#94a3b8!important}.admin-modal-backdrop .admin-modal-close{color:#64748b!important;background:#f8fafc!important;border:1px solid #e2e8f0!important;border-radius:8px!important}.admin-modal-backdrop .admin-modal-close:hover{color:#ef4444!important;background:#fee2e2!important;border-color:#fca5a5!important}button,a,input,select,.cs-tile,.ls-tile,.gm-tile,.lmp-tile,.sd-card,.practice-card,.install-app-btn,.theme-music-toggle{touch-action:manipulation;-webkit-tap-highlight-color:transparent}.cs-scene,.ls-scene,.gm-scene,.lmp-scene,.sd-scene,.world-scene,.game-world-scene{-webkit-overflow-scrolling:touch;overscroll-behavior-y:contain}.ls-back,.learn-header .learn-back,.gm-back,.cs-back,.lmp-back,.sd-back{top:max(1rem, env(safe-area-inset-top));left:max(1rem, env(safe-area-inset-left))}.logout-fixed,.student-top-bar,.login-top-bar{top:max(1rem, env(safe-area-inset-top));right:max(1rem, env(safe-area-inset-right))}@media (width<=560px){.cs-content,.ls-content,.gm-content,.lmp-content,.sd-content{padding-top:max(4.6rem, calc(env(safe-area-inset-top,0px) + 2.8rem));padding-bottom:max(1.5rem, calc(env(safe-area-inset-bottom,0px) + 1rem));padding-left:max(.75rem, env(safe-area-inset-left,0px));padding-right:max(.75rem, env(safe-area-inset-right,0px));box-sizing:border-box;gap:1.1rem}.ls-grid,.gm-grid,.lmp-grid,.sd-grid{gap:.65rem}.learn-page{padding-top:max(4.2rem, calc(env(safe-area-inset-top,0px) + 2.5rem));padding-bottom:max(1.5rem, calc(env(safe-area-inset-bottom,0px) + 1rem));padding-left:max(.75rem, env(safe-area-inset-left,0px));padding-right:max(.75rem, env(safe-area-inset-right,0px));box-sizing:border-box}.world-scene .auth-page{padding:max(1.2rem, calc(env(safe-area-inset-top,0px) + .6rem)) max(.65rem, env(safe-area-inset-left,0px)) max(1.4rem, calc(env(safe-area-inset-bottom,0px) + .8rem)) max(.65rem, env(safe-area-inset-right,0px))!important;min-height:100vh!important;box-sizing:border-box!important;min-height:100dvh!important}.login-frame{width:min(285px,76vw)!important;max-width:295px!important;min-height:480px!important;margin:auto!important;padding:1.1rem .8rem 1.4rem!important}.login-paper{padding:.65rem .75rem .85rem!important}.login-frame .auth-form{gap:.38rem!important}.login-frame .login-crest-badge{z-index:10!important;position:absolute!important;top:10px!important;left:50%!important;transform:translate(-50%,-42%)!important}.login-frame .login-app-logo{width:125px!important;height:125px!important;animation:2.2s ease-in-out infinite arcade-mark-bob!important}.login-frame .auth-form .arcade-badge{z-index:6!important;margin:1.25rem 0 .4rem!important;padding:.12rem .45rem!important;font-size:.65rem!important;position:relative!important}.login-frame .auth-form h1{margin-bottom:.04rem!important;font-size:1.12rem!important}.login-frame .auth-form h1:before{margin-bottom:.12rem!important;font-size:1.12rem!important}.login-frame .auth-form label{margin-bottom:-.22rem!important;font-size:.72rem!important}.login-frame .auth-form input{padding:.4rem .6rem!important;font-size:.88rem!important}.login-frame .password-input-wrap input{padding-right:2.2rem!important}.login-frame .auth-form .password-toggle-btn,.login-frame .password-toggle-btn{width:2.2rem!important;max-width:2.2rem!important;padding:0!important;left:auto!important;right:0!important;transform:none!important}.login-frame .password-toggle-icon{width:1.1rem!important;height:1.1rem!important}.login-frame .auth-form button[type=submit]{margin-top:.22rem!important;padding:.46rem .8rem!important;font-size:.88rem!important}.login-frame .auth-error{margin:0!important;padding:.25rem .5rem!important;font-size:.74rem!important}.cs-tile.wood-panel{width:min(300px,86vw);min-height:0;padding:.9rem .8rem 1.5rem}.cs-tile-body{gap:.5rem;padding:.8rem .8rem 1.2rem}.cs-drill{width:min(100%,300px);padding:.4rem .4rem .8rem}.cs-drill-body{gap:.6rem;padding:.7rem .9rem}.ls-tile.wood-panel,.gm-tile.wood-panel{width:min(168px,44vw);min-height:0}.gm-tile-desc{font-size:.68rem;line-height:1.28}.lmp-tile{width:min(260px,84vw);padding:.6rem .6rem 1.2rem}.lmp-tile-body{gap:.35rem;padding:.8rem .8rem 1rem}.lmp-tile-icon-wrap{width:72px;height:72px}.lmp-tile-icon-emoji{font-size:2.2rem}.lmp-tile-title{font-size:1.15rem}.lmp-tile-desc{font-size:.76rem}.sd-card{width:min(270px,86vw);padding:.6rem .5rem 1.1rem}.sd-card-body{gap:.35rem;padding:.8rem .7rem 1rem}.sd-card-word{font-size:1.5rem}.lesson-video-frame{min-height:190px;padding:1rem}.lesson-paper>button,.level-start-play,.practice-next{width:100%;min-width:0}.ls-back,.learn-header .learn-back,.gm-back,.cs-back,.lmp-back,.sd-back,.logout-fixed{align-items:center;min-height:42px;display:inline-flex}.student-profile-fixed{width:3rem;height:3rem}.student-profile-avatar{width:2.4rem;height:2.4rem}.practice-card{width:min(420px,94vw);padding:1rem .8rem 1.2rem}.practice-card.wood-panel{padding:.9rem .8rem 1.6rem}.practice-paper{padding:1rem .8rem 1.2rem}.practice-pip{border-radius:10px;width:32px;height:32px;font-size:.88rem}.practice-stage{gap:.8rem}.practice-camera,.practice-stage .sign-ref-lg{width:clamp(170px,52vw,230px);height:clamp(170px,52vw,230px)}.practice-hint{font-size:.78rem;line-height:1.35}.game-actions{justify-content:center;gap:.5rem;width:100%}.game-actions button{text-align:center;flex:135px;padding:.6rem .8rem;font-size:.85rem}.game-hud-bottom{gap:.4rem;padding:.8rem 1rem 1rem}.game-hud-bottom .stub-note{margin-top:.2rem;font-size:.72rem;line-height:1.3}.game-grid{border-width:8px;grid-template-rows:repeat(3,70px);grid-template-columns:repeat(3,70px);gap:.45rem;padding:.9rem}.falling-block-slot{height:75px}.falling-block{width:54px;height:54px;font-size:1.3rem}.gom-card{width:min(390px,94vw);padding:1.4rem 1rem 1.8rem}.gom-paper{margin-bottom:.75rem;padding:1rem .8rem 1.2rem}.gom-crest{width:64px;height:64px;margin-bottom:.5rem;font-size:34px}.gom-title{font-size:1.3rem}.gom-body{font-size:.88rem}.gom-stat-value{font-size:1.15rem}.gom-action{padding:.65rem 1.4rem;font-size:.95rem}}@media (orientation:landscape) and (height<=560px){.cs-scene,.ls-scene,.gm-scene,.lmp-scene,.sd-scene,.game-world-scene,.world-scene{min-height:100vh!important;height:100%!important;min-height:100dvh!important;-webkit-overflow-scrolling:touch!important;height:100dvh!important;max-height:100dvh!important;overflow:hidden auto!important}.game-stage,.game-stage-scene,.sign-blast-stage,.quest-stage,.fishing-stage,.feast-stage,.balloon-pop-stage{overscroll-behavior:none!important;touch-action:none!important;width:100vw!important;height:100svh!important;max-height:100svh!important;position:fixed!important;inset:0!important;overflow:hidden!important}:is(html:has(.game-stage),body:has(.game-stage)){overscroll-behavior:none!important;touch-action:none!important;height:100svh!important;max-height:100svh!important;overflow:hidden!important}.ls-back,.learn-header .learn-back,.gm-back,.cs-back,.lmp-back,.sd-back{top:max(.75rem, env(safe-area-inset-top,0px) + .45rem)!important;left:max(.85rem, env(safe-area-inset-left,0px) + .45rem)!important;min-height:32px!important;padding:.3rem .75rem!important;font-size:.78rem!important}.logout-fixed{top:max(.75rem, env(safe-area-inset-top,0px) + .45rem)!important;right:max(.85rem, env(safe-area-inset-right,0px) + .45rem)!important;min-height:32px!important;padding:.3rem .75rem!important;font-size:.78rem!important}.student-profile-fixed{top:max(.75rem, env(safe-area-inset-top,0px) + .45rem)!important;left:max(.85rem, env(safe-area-inset-left,0px) + .45rem)!important;width:2.3rem!important;height:2.3rem!important}.student-profile-avatar{width:1.9rem;height:1.9rem}.theme-music-toggle{bottom:max(.4rem, env(safe-area-inset-bottom))!important;left:max(.5rem, env(safe-area-inset-left))!important;width:32px!important;height:32px!important;font-size:.9rem!important}.world-scene .auth-page{height:100dvh!important;min-height:100dvh!important;padding:max(.2rem, env(safe-area-inset-top)) max(.6rem, env(safe-area-inset-left)) max(.2rem, env(safe-area-inset-bottom))!important;box-sizing:border-box!important;justify-content:center!important;align-items:center!important;display:flex!important;overflow-y:auto!important}.login-frame{box-sizing:border-box!important;flex-direction:column!important;justify-content:center!important;width:min(340px,76vw)!important;max-height:min(295px,94svh,94dvh)!important;margin:auto!important;padding:.35rem .75rem .6rem!important;display:flex!important}.login-paper{padding:.35rem .75rem .5rem!important}.login-frame .auth-form{gap:.18rem!important}.login-frame .login-crest-badge{z-index:10!important;position:absolute!important;top:6px!important;left:50%!important;transform:translate(-50%,-42%)!important}.login-frame .login-app-logo{width:78px!important;height:78px!important;animation:2.2s ease-in-out infinite arcade-mark-bob!important}.login-frame .auth-form .arcade-badge{z-index:6!important;margin:.65rem 0 .18rem!important;padding:.04rem .3rem!important;font-size:.52rem!important;position:relative!important}.login-frame .auth-form h1{margin-bottom:.04rem!important;font-size:.95rem!important;line-height:1.1!important}.login-frame .auth-form h1:before{vertical-align:middle!important;margin-bottom:0!important;margin-right:.3rem!important;font-size:.95rem!important;display:inline-block!important}.login-frame .auth-error{margin:0!important;padding:.15rem .35rem!important;font-size:.68rem!important}.login-frame .auth-form label{margin-bottom:-.22rem!important;font-size:.62rem!important}.login-frame .auth-form input{border-width:1.5px!important;padding:.22rem .5rem!important;font-size:.8rem!important}.login-frame .password-input-wrap input{padding-right:1.8rem!important}.login-frame .auth-form .password-toggle-btn,.login-frame .password-toggle-btn{width:1.8rem!important;max-width:1.8rem!important;padding:0!important;left:auto!important;right:0!important;transform:none!important}.login-frame .password-toggle-icon{width:.95rem!important;height:.95rem!important}.login-frame .auth-form button[type=submit]{margin-top:.15rem!important;padding:.32rem .75rem!important;font-size:.82rem!important}.learn-page,.cs-content,.ls-content,.gm-content,.lmp-content,.sd-content{box-sizing:border-box!important;height:100dvh!important;min-height:100dvh!important;max-height:100dvh!important;padding-top:.35rem!important;padding-bottom:.45rem!important;padding-left:max(.8rem, env(safe-area-inset-left))!important;padding-right:max(.8rem, env(safe-area-inset-right))!important;justify-content:space-evenly!important;align-items:center!important;gap:.25rem!important;overflow:hidden!important}.cs-header,.ls-header,.gm-header,.lmp-header,.sd-header{flex-shrink:0!important;margin:0 0 .2rem!important;padding:0!important}.ls-title,.cs-title,.gm-title,.lmp-title,.sd-title,.learn-header h1{margin:0!important;font-size:1.15rem!important;line-height:1.2!important}.ls-subtitle,.cs-subtitle,.gm-subtitle,.lmp-subtitle,.sd-subtitle,.card-walker,.card-walker-host{display:none!important}.cs-grid{flex-shrink:0!important;justify-content:center!important;align-items:stretch!important;gap:.8rem!important;width:100%!important;max-width:760px!important;margin-top:0!important}.cs-tile.wood-panel{flex:210px!important;width:clamp(210px,32vw,270px)!important;max-width:290px!important;height:auto!important;min-height:145px!important;max-height:175px!important;padding:.55rem .6rem .85rem!important}.cs-tile-body{gap:.25rem!important;padding:.35rem .6rem .55rem!important}.cs-tile-icon-wrap{width:40px!important;height:40px!important}.cs-tile-icon{font-size:1.35rem!important}.cs-tile-title{font-size:.98rem!important}.cs-tile-progress-ring-wrap{width:32px!important;height:32px!important}.cs-tile-progress-percent{font-size:.55rem!important}.cs-tile-subtitle{font-size:.6rem!important}.cs-tile-locked-note{font-size:.56rem!important;line-height:1.2!important}.cs-drill{flex-shrink:0!important;width:min(100%,30rem)!important;margin:.15rem 0 0!important;padding:.22rem .45rem .45rem!important}.cs-drill-body{gap:.6rem!important;padding:.32rem .8rem!important}.cs-drill-mark{font-size:1.25rem!important}.cs-drill-title{font-size:.88rem!important}.cs-drill-sub{font-size:.64rem!important}.cs-drill-badge{padding:.06rem .4rem!important;font-size:.75rem!important}.ls-grid{flex-wrap:nowrap!important;flex-shrink:0!important;justify-content:center!important;align-items:stretch!important;gap:.5rem!important;width:100%!important;max-width:820px!important;margin-top:0!important}.ls-tile.wood-panel{aspect-ratio:1/1.08!important;flex:105px!important;width:clamp(105px,15.5vw,135px)!important;min-height:130px!important;max-height:155px!important;padding:.35rem .25rem .5rem!important}.ls-tile-body{justify-content:space-evenly!important;padding:.22rem .18rem .35rem!important}.ls-tile-badge{width:28px!important;height:28px!important;font-size:.92rem!important}.ls-tile-range{font-size:.78rem!important}.ls-tile-progress-ring-wrap{width:28px!important;height:28px!important}.ls-tile-progress-percent{font-size:.48rem!important}.ls-tile-subtitle{font-size:.52rem!important}.ls-tile-best{margin-top:.05rem!important;padding-top:.05rem!important}.ls-tile-best-score{font-size:.58rem!important}.ls-tile-best-meta{font-size:.46rem!important}.ls-tile-locked-note{padding:0 .1rem!important;font-size:.52rem!important;line-height:1.15!important}.ls-endless{flex-shrink:0!important;width:min(100%,26rem)!important;padding:.25rem .5rem!important}.ls-endless-body{gap:.5rem!important;padding:.3rem .75rem!important}.ls-endless-mark{font-size:1.25rem!important}.ls-endless-title{font-size:.85rem!important}.ls-endless-sub{font-size:.6rem!important}.lesson-box.wood-panel{flex-shrink:0!important;width:min(680px,92vw)!important;max-height:245px!important;margin:0 auto!important;padding:.45rem .75rem .85rem!important}.lesson-paper{padding:.45rem 1rem .6rem!important}.lesson-video-frame{min-height:95px!important;max-height:135px!important;margin-bottom:.45rem!important;padding:.45rem .8rem!important}.lesson-video{width:auto!important;max-width:100%!important;max-height:130px!important}.lesson-video-frame p{margin:0!important;font-size:.85rem!important;line-height:1.3!important}.lesson-video-frame .stub-note{margin-top:.15rem!important;font-size:.66rem!important}.lesson-paper>button{min-width:160px!important;padding:.42rem 1.3rem!important;font-size:.86rem!important}.practice-card.wood-panel{flex-shrink:0!important;width:min(720px,94vw)!important;max-height:255px!important;margin:0 auto!important;padding:.42rem .75rem .8rem!important}.practice-paper{padding:.4rem .9rem .55rem!important}.practice-progress{gap:.25rem!important;margin-bottom:.25rem!important}.practice-pip{border-radius:6px!important;width:22px!important;height:22px!important;font-size:.72rem!important}.practice-stage{flex-flow:row!important;justify-content:center!important;align-items:center!important;gap:.85rem!important}.practice-camera{border-width:2.5px!important;border-radius:12px!important;width:clamp(115px,17vw,130px)!important;height:clamp(115px,17vw,130px)!important}.practice-stage .sign-ref-lg,.practice-stage .sign-ref{border-radius:12px!important;width:clamp(115px,17vw,130px)!important;height:clamp(115px,17vw,130px)!important}.practice-hint{margin:.2rem 0 0!important;font-size:.7rem!important;line-height:1.2!important}.practice-actions{justify-content:center!important;gap:.5rem!important;margin-top:.25rem!important;display:flex!important}.practice-actions .level-start-play,.practice-actions .practice-next{min-width:140px!important;padding:.35rem 1.1rem!important;font-size:.82rem!important}.practice-guide-box{border-width:2px!important}.practice-guide-label{padding:.06rem .3rem!important;font-size:.55rem!important}.practice-verdict-hit{font-size:2.6rem!important}.practice-verdict-miss{font-size:1.05rem!important}.gm-grid{flex-wrap:nowrap!important;flex-shrink:0!important;justify-content:center!important;align-items:stretch!important;gap:.5rem!important;width:100%!important;max-width:820px!important;margin-top:0!important}.gm-tile.wood-panel{flex:105px!important;width:clamp(105px,15.5vw,135px)!important;min-height:140px!important;max-height:165px!important;padding:.35rem .25rem .55rem!important}.gm-tile-body{gap:.12rem!important;padding:.25rem .2rem .4rem!important}.gm-tile-icon-wrap{width:32px!important;height:32px!important}.gm-tile-icon{width:20px!important;height:20px!important}.gm-tile-icon-emoji{font-size:1.15rem!important}.gm-tile-title{margin:.08rem 0!important;font-size:.82rem!important}.gm-tile-desc{-webkit-line-clamp:2!important;-webkit-box-orient:vertical!important;font-size:.54rem!important;line-height:1.2!important;display:-webkit-box!important;overflow:hidden!important}.lmp-grid{justify-content:center!important;gap:1rem!important;max-width:680px!important;margin-top:0!important}.lmp-tile{width:clamp(200px,30vw,260px)!important;min-height:155px!important;padding:.55rem .55rem .95rem!important}.lmp-tile-body{gap:.28rem!important;padding:.45rem .65rem .65rem!important}.lmp-tile-icon-wrap{width:52px!important;height:52px!important}.lmp-tile-icon-emoji{font-size:1.7rem!important}.lmp-tile-title{font-size:1.05rem!important}.lmp-tile-desc{font-size:.7rem!important;line-height:1.25!important}.sd-grid{gap:.5rem}.sd-card{width:clamp(140px,24vw,180px);padding:.35rem .25rem .6rem}.sd-card-body{gap:.2rem;padding:.4rem .4rem .6rem}.sd-card-word{font-size:1.15rem}.sd-card-letter{min-width:1.1rem;padding:.05rem .2rem;font-size:.68rem}.sd-card-game{font-size:.65rem}.sd-card-due{font-size:.6rem}.student-profile-backdrop{padding:max(.35rem, env(safe-area-inset-top,0px)) max(.75rem, env(safe-area-inset-right,0px)) max(.35rem, env(safe-area-inset-bottom,0px)) max(.75rem, env(safe-area-inset-left,0px))!important}.student-profile-modal{box-sizing:border-box!important;-webkit-overflow-scrolling:touch!important;width:min(560px,92vw)!important;max-height:min(94vh,94dvh)!important;padding:.6rem .9rem .75rem!important;overflow-y:auto!important}.student-profile-modal h2{margin-bottom:.1rem!important;font-size:1.05rem!important}.student-profile-subtitle{margin-bottom:.45rem!important;font-size:.72rem!important}.student-avatar-grid{grid-template-columns:repeat(8,1fr)!important;gap:.32rem!important;margin-bottom:.45rem!important}.student-profile-details{margin-bottom:.45rem!important;padding-top:.35rem!important}.student-detail-list{grid-template-columns:repeat(2,1fr)!important;gap:.25rem!important;display:grid!important}.student-detail-row{padding:.22rem .4rem!important}.student-detail-row dt,.student-detail-row dd{font-size:.72rem!important}.student-profile-actions{margin-top:.4rem!important;padding-top:.35rem!important}.student-profile-actions button{padding:.3rem .85rem!important;font-size:.78rem!important}.game-hud-top{padding-top:max(.85rem, env(safe-area-inset-top,0px) + .5rem)!important;padding-bottom:.35rem!important;padding-left:max(1.1rem, env(safe-area-inset-left,0px) + .5rem)!important;padding-right:max(1.1rem, env(safe-area-inset-right,0px) + .5rem)!important;box-sizing:border-box!important;z-index:100!important;flex-wrap:nowrap!important;gap:.6rem!important}.game-hud-top .learn-back{box-sizing:border-box!important;min-height:32px!important;padding:.35rem .8rem!important;font-size:.82rem!important}.game-hud-title{order:unset!important;width:auto!important;padding:.2rem .65rem!important;font-size:.85rem!important}.game-hud-banner{top:max(2.8rem, env(safe-area-inset-top,0px) + 2.4rem)!important;padding:.2rem .65rem!important;font-size:.72rem!important}.game-stage-scene{top:max(.85rem, env(safe-area-inset-top,0px) + .5rem)!important;bottom:max(.2rem, env(safe-area-inset-bottom,0px))!important;width:100%!important;height:auto!important;position:absolute!important;left:0!important;right:0!important;overflow:hidden!important}.sign-blast-stage{width:100%!important;height:100%!important;position:absolute!important;inset:0!important;overflow:hidden!important}.sign-blast-stage canvas{object-fit:fill!important;width:100%!important;height:100%!important;margin:0!important;display:block!important}.sb-hud-bottom{bottom:max(.2rem, env(safe-area-inset-bottom,0px))!important;background:0 0!important}.sb-skip-intro-btn{top:max(.85rem, env(safe-area-inset-top,0px) + .5rem)!important;right:max(1.1rem, env(safe-area-inset-right,0px) + .5rem)!important;padding:.35rem .85rem!important;font-size:.82rem!important}.game-hud-bottom{background:linear-gradient(#0000 0%,#fbf9f440 40%,#fbf9f4c7 100%)!important;gap:.2rem!important;padding:.15rem .6rem .25rem!important}.game-actions{gap:.35rem!important}.game-actions button{border-radius:8px!important;padding:.25rem .6rem!important;font-size:.72rem!important}.game-hud-bottom .stub-note{display:none!important}.ft-hearts-hud,.sb-hearts-hud,.sm-hearts{gap:.2rem!important;font-size:.95rem!important}.feast-endless-hud{gap:.35rem!important}.feast-clock{font-size:.82rem!important}.feast-tier{padding:.05rem .3rem!important;font-size:.65rem!important}.game-world-scene>.learn-page{padding-top:1.8rem!important}.falling-block-slot{height:44px!important;margin-top:.15rem!important}.falling-block{width:38px!important;height:38px!important;font-size:1rem!important}.game-grid{border-width:4px!important;grid-template-rows:repeat(3,42px)!important;grid-template-columns:repeat(3,42px)!important;gap:.25rem!important;margin:.2rem 0 .3rem!important;padding:.45rem!important}.game-grid:before{display:none!important}.camera-status{margin:-.25rem auto .4rem!important;padding:.2rem .6rem!important;font-size:.7rem!important}.sm-body{gap:.2rem!important;padding:2.1rem .5rem .4rem!important}.sm-stats{gap:.3rem!important}.sm-stat{padding:.1rem .5rem!important;font-size:.7rem!important}.sm-grid{grid-template-columns:repeat(var(--sm-cols,6), minmax(0, 64px))!important;gap:.25rem!important;width:auto!important}.sm-card-letter{font-size:1.1rem!important}.sm-card-back-mark{font-size:1rem!important}.sm-prompt{padding:.18rem .65rem!important;font-size:.7rem!important}.sm-actions{margin-top:.12rem!important}.sm-actions button{padding:.22rem .5rem!important;font-size:.7rem!important}.camera-toggle-btn{width:2.2rem!important;height:2.2rem!important;font-size:.95rem!important;bottom:.5rem!important;right:.5rem!important}.camera-preview-panel,.camera-preview-video-wrap{width:150px!important}.camera-preview-video-wrap{height:112px!important}.camera-preview-title{font-size:.65rem!important}.camera-preview-hint{padding:.15rem .3rem!important;font-size:.55rem!important}.sign-hint{bottom:.5rem!important;left:.5rem!important}.sign-hint-toggle{padding:.25rem .6rem!important;font-size:.7rem!important}.sign-hint-panel .sign-ref{width:90px!important;height:90px!important}.gom{box-sizing:border-box!important;padding-top:max(.85rem, env(safe-area-inset-top,0px) + .5rem)!important;padding-bottom:max(.65rem, env(safe-area-inset-bottom,0px) + .35rem)!important;padding-left:max(.85rem, env(safe-area-inset-left,0px) + .45rem)!important;padding-right:max(.85rem, env(safe-area-inset-right,0px) + .45rem)!important;z-index:500!important;justify-content:center!important;align-items:center!important;height:100dvh!important;max-height:100dvh!important;display:flex!important;position:fixed!important;inset:0!important;overflow-y:auto!important}.gom-card{box-sizing:border-box!important;flex-direction:column!important;justify-content:center!important;width:clamp(285px,42vw,350px)!important;max-width:350px!important;max-height:min(340px,86svh,86dvh)!important;margin:auto!important;padding:.75rem .95rem 1.15rem!important;display:flex!important;overflow-y:auto!important}.gom-paper{box-sizing:border-box!important;margin-bottom:.45rem!important;padding:.65rem .95rem .75rem!important}.gom-crest{border-width:2.5px!important;width:40px!important;height:40px!important;margin:0 auto .2rem!important;font-size:22px!important}.gom-title{margin:0 0 .15rem!important;font-size:1.2rem!important;font-weight:800!important;line-height:1.2!important}.gom-body{font-size:.78rem!important;line-height:1.3!important}.gom-stats{gap:.5rem!important;margin-top:.4rem!important;margin-bottom:0!important}.gom-stat{border-width:1.5px!important;border-radius:9px!important;padding:.2rem .45rem!important}.gom-stat-value{font-size:1.05rem!important;line-height:1.15!important}.gom-stat-label{letter-spacing:.05em!important;font-size:.58rem!important}.gom-actions{flex-flow:wrap!important;justify-content:center!important;align-items:center!important;gap:.4rem!important;display:flex!important}.gom-action{box-sizing:border-box!important;border-radius:9999px!important;min-height:32px!important;padding:.35rem .85rem!important;font-size:.82rem!important}.gom-action-secondary{padding:.28rem .75rem!important;font-size:.76rem!important}}@media (pointer:coarse) and (width<=1024px){.cs-tile:hover:not(:disabled),.ls-tile:hover:not(:disabled),.gm-tile:hover{transform:none}.cs-tile:active:not(:disabled),.ls-tile:active:not(:disabled),.gm-tile:active{transform:scale(.97)}}html.ios-device,body.ios-device{-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:transparent;overscroll-behavior:none!important}html.fullscreen-mode.ios-device{height:100%!important;height:100dvh!important;overflow:hidden!important}html.fullscreen-mode.ios-device body{min-height:100%!important;min-height:100dvh!important;overflow-x:hidden!important}.ios-device button,.ios-device input,.ios-device select,.ios-device textarea,.ios-device a,.ios-device .wood-panel,.ios-device .game-stage,.ios-device canvas{touch-action:manipulation;-webkit-touch-callout:none;-webkit-user-select:none;user-select:none}.ios-device input[type=text],.ios-device input[type=email],.ios-device input[type=password],.ios-device textarea{-webkit-user-select:text;user-select:text}html.ios-standalone,html.standalone-mode{height:100%!important;height:-webkit-fill-available!important;min-height:100%!important;min-height:-webkit-fill-available!important}html.ios-standalone body,html.standalone-mode body{overscroll-behavior-y:none;min-height:100%!important;height:100%!important;min-height:-webkit-fill-available!important}html.ios-standalone #root,html.standalone-mode #root{min-height:100%!important;height:100%!important;min-height:-webkit-fill-available!important}html.ios-standalone .cs-scene,html.ios-standalone .ls-scene,html.ios-standalone .gm-scene,html.ios-standalone .lmp-scene,html.ios-standalone .sd-scene,html.ios-standalone .world-scene,html.ios-standalone .game-world-scene{overscroll-behavior-y:contain;min-height:100%!important;-webkit-overflow-scrolling:touch!important;height:100%!important;min-height:100dvh!important}html.ios-standalone .login-top-bar,html.ios-standalone .student-top-bar{top:max(.85rem, calc(env(safe-area-inset-top,0px) + .35rem))!important;right:max(.85rem, calc(env(safe-area-inset-right,0px) + .35rem))!important}html.ios-standalone .ls-back,html.ios-standalone .learn-header .learn-back,html.ios-standalone .gm-back,html.ios-standalone .cs-back,html.ios-standalone .lmp-back,html.ios-standalone .sd-back{top:max(.85rem, calc(env(safe-area-inset-top,0px) + .35rem))!important;left:max(.85rem, calc(env(safe-area-inset-left,0px) + .35rem))!important}html.ios-standalone .cs-content,html.ios-standalone .ls-content,html.ios-standalone .gm-content,html.ios-standalone .lmp-content,html.ios-standalone .sd-content{padding-top:max(4.75rem, calc(env(safe-area-inset-top,0px) + 2.85rem))!important;padding-bottom:max(1.5rem, calc(env(safe-area-inset-bottom,0px) + 1.2rem))!important;padding-left:max(.85rem, env(safe-area-inset-left,0px))!important;padding-right:max(.85rem, env(safe-area-inset-right,0px))!important}html.ios-standalone .world-scene .auth-page{padding-top:max(3.8rem, calc(env(safe-area-inset-top,0px) + 2.2rem))!important;padding-bottom:max(1.5rem, calc(env(safe-area-inset-bottom,0px) + 1.2rem))!important;padding-left:max(.75rem, env(safe-area-inset-left,0px))!important;padding-right:max(.75rem, env(safe-area-inset-right,0px))!important}@media screen and (width<=768px){input,select,textarea,.login-frame .auth-form input,.auth-form input{font-size:16px!important}}.install-modal-overlay,.student-profile-backdrop,.gom,.admin-modal-backdrop,.rep-modal-backdrop,.game-results-overlay{box-sizing:border-box!important;z-index:500!important;width:100vw!important;max-width:100vw!important;height:100dvh!important;max-height:100dvh!important;padding:max(.5rem, env(safe-area-inset-top,0px)) max(.5rem, env(safe-area-inset-right,0px)) max(.5rem, env(safe-area-inset-bottom,0px)) max(.5rem, env(safe-area-inset-left,0px))!important;overscroll-behavior:contain!important;justify-content:center!important;align-items:center!important;display:flex!important;position:fixed!important;inset:0!important;overflow:hidden!important}.install-modal-card,.student-profile-modal,.gom-card,.game-results-card{box-sizing:border-box!important;-webkit-overflow-scrolling:touch!important;width:min(94vw,540px)!important;max-width:min(94vw,540px)!important;max-height:min(90vh,90dvh)!important;margin:auto!important;overflow-y:auto!important}.admin-modal{box-sizing:border-box!important;flex-direction:column!important;width:min(860px,94vw)!important;max-width:94vw!important;max-height:min(94vh,94dvh)!important;margin:auto!important;display:flex!important;overflow:hidden!important}.admin-modal .admin-modal-header{flex-shrink:0!important}.admin-modal .admin-modal-body{-webkit-overflow-scrolling:touch!important;overscroll-behavior:contain!important;flex:auto!important;min-height:0!important;overflow-y:auto!important}.admin-modal .admin-modal-footer{z-index:20!important;background:#fff!important;flex-shrink:0!important;position:sticky!important;bottom:0!important;box-shadow:0 -4px 14px #0f172a14!important}
