@import"https://fonts.googleapis.com/css2?family=Noto+Sans+KR:wght@400;500;600;700;800&display=swap";:root{color-scheme:light;--tone-1: #484848;--tone-2: #6d6d6d;--tone-3: #a0a0a0;--tone-4: #c7c7c7;--tone-5: #f5f5f2;--bg: var(--tone-5);--bg-soft: color-mix(in srgb, var(--tone-4) 28%, var(--tone-5));--bg-elev: #ffffff;--line: var(--tone-4);--line-strong: var(--tone-3);--text: var(--tone-1);--muted: var(--tone-2);--accent: var(--tone-1);--accent-hover: var(--tone-2);--accent-soft: color-mix(in srgb, var(--tone-4) 42%, var(--tone-5));--accent-text: var(--tone-1);--on-accent: var(--tone-5);--danger: #8a3a3a;--danger-bg: color-mix(in srgb, var(--danger) 10%, var(--tone-5));--shadow: 0 1px 2px color-mix(in srgb, var(--tone-1) 8%, transparent);--shadow-md: 0 8px 24px color-mix(in srgb, var(--tone-1) 10%, transparent);--radius: .75rem;--touch: 2.75rem;--font: "Helvetica Neue", "Noto Sans KR", Arial, sans-serif;--display: "Helvetica Neue", "Noto Sans KR", Arial, sans-serif;--safe-bottom: env(safe-area-inset-bottom, 0px);--safe-top: env(safe-area-inset-top, 0px);--bottom-nav-h: 4.75rem;--bottom-floor-pad: 1.35rem}*{box-sizing:border-box}html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}html,body{margin:0;min-height:100%;background:var(--bg);color:var(--text);font-family:var(--font);line-height:1.45}body{padding-bottom:0}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline;color:var(--accent-hover)}#app{min-height:100dvh;display:flex;flex-direction:column}#app:has(.page-score){height:100dvh;max-height:100dvh;overflow:hidden}.topbar{display:flex;flex-wrap:nowrap;align-items:center;gap:.5rem;padding:calc(.65rem + var(--safe-top)) 1rem .65rem;border-bottom:1px solid var(--line);background:color-mix(in srgb,var(--tone-5) 92%,transparent);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);position:sticky;top:0;z-index:40}.topbar.is-rank-open{flex-wrap:wrap;padding-bottom:0;align-items:flex-start}.topbar.is-rank-open>.topbar-lead,.topbar.is-rank-open>.topbar-meta,.topbar.is-rank-open>.topbar-ranking{align-self:center}.brand{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;width:2.75rem;height:2.75rem;text-decoration:none;line-height:0;border-radius:.7rem;overflow:hidden;box-shadow:0 1px 2px #2820141a,0 3px 8px #2820141a}.brand:hover{text-decoration:none;opacity:.92}.brand-logo{display:block;width:100%;height:100%;object-fit:cover;transform:scale(1.36);transform-origin:center center}.topbar-lead{position:relative;flex:0 0 auto;min-width:0;display:flex;align-items:center;height:2.9rem;width:3.2rem;overflow:visible}.topbar-lead.score-mode{flex:1;width:auto}.topbar-lead .brand{position:absolute;left:.15rem;top:50%;transform:translateY(-50%);transition:opacity .45s ease,transform .5s cubic-bezier(.22,1,.36,1);will-change:opacity,transform}.topbar-score-title{position:absolute;left:0;right:0;top:50%;transform:translateY(-50%) translate(.85rem);opacity:0;pointer-events:none;font-family:var(--display);font-weight:700;font-size:clamp(.95rem,3.8vw,1.15rem);letter-spacing:-.01em;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%;transition:opacity .45s ease .12s,transform .5s cubic-bezier(.22,1,.36,1) .08s;will-change:opacity,transform}.topbar-lead.score-mode.title-shown .brand{opacity:0;transform:translateY(-50%) translate(-1.25rem);pointer-events:none}.topbar-lead.score-mode.title-shown .topbar-score-title{opacity:1;transform:translateY(-50%) translate(0);pointer-events:auto}.topbar-score .topbar-meta{flex:0;margin:0}.topbar-ranking{flex:1 1 0;min-width:0;max-width:100%;display:flex;justify-content:flex-start;align-items:center;padding:0 .35rem;align-self:center;overflow:hidden}.topbar-ranking[hidden]{display:none!important}.rank-wrap{width:100%;min-width:0;max-width:22rem;display:flex;justify-content:flex-start;overflow:hidden}.rank-ticker{width:100%;min-width:0;max-width:22rem;min-height:2.35rem;border:0;border-radius:0;background:transparent;color:var(--text);font:inherit;cursor:pointer;padding:.15rem .25rem;display:flex;align-items:center;justify-content:flex-start;box-shadow:none;text-align:left;overflow:hidden}.rank-ticker:hover{opacity:.82}.rank-ticker-inner{display:flex;align-items:center;justify-content:flex-start;min-width:0;width:100%;height:1.35rem;overflow:hidden}.rank-ticker-line{display:flex;align-items:center;justify-content:flex-start;gap:.35rem;min-width:0;max-width:100%;width:100%;opacity:1;transform:translateY(0)}.rank-ticker-line.is-animating{animation:rank-ticker-rise-fade 2.85s ease forwards}@keyframes rank-ticker-rise-fade{0%{opacity:0;transform:translateY(.55em)}14%{opacity:1;transform:translateY(0)}68%{opacity:1;transform:translateY(0)}to{opacity:1;transform:translateY(0)}}@media(prefers-reduced-motion:reduce){.rank-ticker-line.is-animating{animation:none;opacity:1;transform:none}}.rank-ticker-empty{color:var(--muted);font-size:.82rem;font-weight:600}.rank-ticker-rank{flex-shrink:0;font-weight:800;font-variant-numeric:tabular-nums;color:var(--accent);font-size:.85rem}.rank-ticker-sep{flex-shrink:0;color:var(--muted);font-weight:600;font-size:.85rem}.rank-ticker-title{min-width:0;flex:1 1 0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.85rem;font-weight:600;text-align:left}.rank-badge{flex-shrink:0;font-size:.68rem;font-weight:700;letter-spacing:-.02em;font-variant-numeric:tabular-nums}.rank-badge-up{color:#c0392b}.rank-badge-down{color:#1f6feb}.rank-badge-flat{color:var(--muted)}.rank-badge-new{color:#0f7a4c;font-weight:800}.rank-panel{flex:1 1 100%;order:20;position:static;left:auto;top:auto;transform:none;z-index:1;width:100%;max-width:none;max-height:none;display:flex;flex-direction:column;margin:0 -1rem;padding:0 1rem .55rem;border:0;border-top:1px solid var(--line);border-radius:0;background:transparent;box-shadow:none;overflow:visible;animation:rank-panel-in .22s ease}@keyframes rank-panel-in{0%{opacity:0;transform:translateY(-.35rem)}to{opacity:1;transform:translateY(0)}}.rank-panel[hidden]{display:none!important}.rank-panel-head{display:flex;align-items:center;justify-content:space-between;gap:.5rem;padding:.55rem .15rem .35rem;border-bottom:0;font-size:.85rem}.rank-list{list-style:none;margin:0;padding:.15rem 0 .25rem;overflow:visible;flex:0 0 auto;min-height:0}.rank-panel-foot{flex-shrink:0;display:flex;justify-content:center;padding:.35rem 0 .55rem;border-top:1px solid var(--line)}.rank-close{min-width:6.5rem;min-height:2.35rem;border:1px solid var(--line);border-radius:.55rem;background:var(--bg-elev);color:var(--text);font:inherit;font-size:.88rem;font-weight:600;cursor:pointer;padding:.35rem 1rem}.rank-close:hover{border-color:var(--line-strong);background:var(--bg-soft)}.rank-empty{padding:.65rem .15rem;font-size:.85rem}.rank-item{width:100%;display:flex;align-items:center;gap:.55rem;border:0;background:transparent;text-align:left;padding:.4rem .15rem;cursor:pointer;font:inherit;color:inherit}.rank-item:hover{background:color-mix(in srgb,var(--tone-4) 22%,transparent)}.rank-item-num{min-width:2.1rem;flex-shrink:0;font-weight:800;font-variant-numeric:tabular-nums;color:var(--accent);text-align:left;font-size:.86rem}.rank-item-sep{flex-shrink:0;color:var(--muted);font-weight:600;font-size:.86rem}.rank-item .rank-badge{min-width:2.1rem;text-align:center}.rank-thumb{width:2.25rem;height:2.25rem;border-radius:.4rem;object-fit:cover;flex-shrink:0;background:var(--bg-soft)}.rank-thumb.empty{border:1px solid var(--line)}.rank-item-title{min-width:0;flex:1 1 0;font-size:.86rem;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.topbar-meta{color:var(--muted);font-size:.85rem;display:flex;gap:.35rem;align-items:center;flex:0 0 auto;margin-left:auto;justify-content:flex-end}.topbar-meta:empty{display:none}.topbar-meta .nav-user{display:none}.notif-wrap{position:relative;flex-shrink:0}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.notif-bell{position:relative;display:inline-flex;align-items:center;justify-content:center;width:var(--touch);height:var(--touch);margin:0;padding:0;border:1px solid var(--line);border-radius:.65rem;background:var(--bg);color:var(--text);cursor:pointer;box-shadow:var(--shadow)}.notif-bell svg{width:1.15rem;height:1.15rem;display:block}.notif-bell:hover{border-color:var(--line-strong);color:var(--accent)}.notif-bell:focus-visible,.notif-item:focus-visible,.notif-close:focus-visible,.notif-prefs-link:focus-visible,.notif-load-more:focus-visible,.notif-retry:focus-visible{outline:2px solid color-mix(in srgb,var(--accent) 55%,transparent);outline-offset:2px}.notif-badge{position:absolute;top:.15rem;right:.1rem;min-width:1.05rem;height:1.05rem;padding:0 .25rem;border-radius:999px;background:var(--danger);color:#fff;font-size:.65rem;font-weight:700;line-height:1.05rem;text-align:center}.notif-panel{position:absolute;top:calc(100% + .35rem);right:0;z-index:80;width:min(22rem,calc(100vw - 1.25rem));max-height:min(32rem,calc(100dvh - 5rem - var(--safe-top)));display:flex;flex-direction:column;border:none;border-radius:1rem;background:var(--bg-elev);box-shadow:0 8px 24px color-mix(in srgb,var(--tone-1) 12%,transparent),0 18px 44px color-mix(in srgb,var(--tone-1) 14%,transparent);overflow:hidden;animation:notif-popover-in .2s cubic-bezier(.22,1,.36,1)}.notif-panel[hidden]{display:none!important}.notif-panel-head{display:flex;align-items:center;justify-content:space-between;gap:.5rem;min-height:3.3rem;padding:.55rem .65rem .55rem .9rem;border-bottom:1px solid color-mix(in srgb,var(--line) 55%,transparent);font-size:.95rem}.notif-panel-head>strong{outline:none}.notif-panel-actions{display:flex;align-items:center;gap:.25rem}.notif-close{flex:none;display:grid;place-items:center;width:2.2rem;height:2.2rem;min-width:2.2rem;min-height:2.2rem;max-width:2.2rem;max-height:2.2rem;padding:0;border:none;border-radius:50%;background:var(--bg-soft);color:var(--muted);font:inherit;font-size:1.15rem;line-height:1;cursor:pointer}.notif-list{overflow:auto;flex:1;min-height:4rem;overscroll-behavior:contain;scrollbar-width:thin}.notif-empty{margin:0;padding:2.5rem .85rem;font-size:.85rem;text-align:center}.notif-item{position:relative;display:grid;grid-template-columns:2.2rem minmax(0,1fr) .45rem;align-items:start;gap:.65rem;width:100%;margin:0;min-height:4.75rem;padding:.75rem .8rem;border:0;border-bottom:1px solid color-mix(in srgb,var(--line) 45%,transparent);background:var(--bg-elev);text-align:left;font:inherit;cursor:pointer}.notif-item:last-of-type{border-bottom:none}.notif-item.unread{background:color-mix(in srgb,var(--accent) 6%,var(--bg-elev))}.notif-item:active{background:var(--bg-soft)}.notif-item-icon{display:grid;place-items:center;width:2.2rem;height:2.2rem;border-radius:.7rem;background:var(--bg-soft);color:var(--tone-2)}.notif-item-icon.lesson{background:color-mix(in srgb,#b94848 11%,var(--bg-elev));color:#9c3f3f}.notif-item-icon.community{background:color-mix(in srgb,#7652b8 11%,var(--bg-elev));color:#6544a1}.notif-item-icon svg{width:1.05rem;height:1.05rem;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.notif-item-content{min-width:0;display:grid;gap:.12rem}.notif-item-meta{display:flex;justify-content:space-between;gap:.5rem;color:var(--muted);font-size:.66rem}.notif-item-meta time{white-space:nowrap}.notif-unread-dot{width:.42rem;height:.42rem;margin-top:.35rem;border-radius:50%;background:var(--danger)}.notif-item-title{overflow:hidden;font-size:.86rem;font-weight:700;color:var(--text);text-overflow:ellipsis;white-space:nowrap}.notif-item-body{display:-webkit-box;overflow:hidden;font-size:.8rem;color:var(--muted);line-height:1.35;-webkit-box-orient:vertical;-webkit-line-clamp:2;line-clamp:2}.notif-prefs-link{display:block;min-height:2.9rem;padding:.85rem;border-top:1px solid color-mix(in srgb,var(--line) 55%,transparent);background:var(--bg-elev);text-align:center;font-size:.82rem;font-weight:600;color:var(--accent);text-decoration:none}.notif-state{display:grid;justify-items:center;gap:.7rem;padding:2.2rem 1rem;color:var(--muted);text-align:center;font-size:.82rem}.notif-state p{margin:0}.notif-retry,.notif-load-more{min-height:2.4rem;padding:0 .8rem;border:none;border-radius:.65rem;background:var(--bg-soft);color:var(--text);font:inherit;font-size:.78rem;font-weight:700;cursor:pointer}.notif-load-more{width:calc(100% - 1.5rem);margin:.6rem .75rem}.notif-inline-error{padding:.5rem .75rem;background:var(--danger-bg);color:var(--danger);font-size:.72rem;text-align:center}.notif-skeleton{display:grid;gap:.65rem;padding:.85rem}.notif-skeleton i{display:block;height:3.6rem;border-radius:.75rem;background:linear-gradient(90deg,var(--bg-soft),var(--bg-elev),var(--bg-soft));background-size:200% 100%;animation:notif-skeleton 1.2s ease-in-out infinite}@keyframes notif-popover-in{0%{opacity:0;transform:translateY(-.35rem) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes notif-skeleton{0%{background-position:100% 0}to{background-position:-100% 0}}@media(max-width:520px){.notif-panel{position:fixed;top:calc(4.25rem + var(--safe-top));left:.625rem;right:.625rem;width:auto;max-height:calc(100dvh - 5rem - var(--safe-top))}}@media(prefers-reduced-motion:reduce){.notif-panel,.notif-skeleton i{animation:none}}.topbar-back{flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;width:var(--touch);min-width:var(--touch);min-height:var(--touch);margin:0;padding:0;border:1px solid var(--line);border-radius:.65rem;background:var(--bg);color:var(--text);box-shadow:var(--shadow);cursor:pointer;touch-action:manipulation}.topbar-back:hover{border-color:var(--line-strong);color:var(--accent)}.topbar-back svg{width:1.25rem;height:1.25rem;fill:currentColor;flex-shrink:0;animation:topbar-icon-reveal .42s ease-out both}.topbar-mic{position:relative;display:inline-flex;align-items:center;justify-content:center;width:var(--touch);height:var(--touch);margin:0;padding:0;border:1px solid var(--line);border-radius:.65rem;background:var(--bg);color:var(--text);cursor:pointer;box-shadow:var(--shadow);flex-shrink:0;touch-action:manipulation;-webkit-tap-highlight-color:transparent}.topbar-mic.is-off{border-color:color-mix(in srgb,#c2596a 45%,var(--line));background:color-mix(in srgb,#c2596a 14%,var(--bg));color:#c2596a}.topbar-mic.is-on{border-color:color-mix(in srgb,#4a8f5b 45%,var(--line));background:color-mix(in srgb,#4a8f5b 14%,var(--bg));color:#4a8f5b}.topbar-mic.is-off:hover{border-color:#c2596a;color:#b04858}.topbar-mic.is-on:hover{border-color:#4a8f5b;color:#3d7a4d}.topbar-mic:disabled{opacity:.55;cursor:wait}.topbar-mic svg{width:1.15rem;height:1.15rem;fill:currentColor;display:block;flex-shrink:0;animation:topbar-icon-reveal .42s ease-out both}.notif-bell>svg.topbar-icon-reveal{animation:topbar-icon-reveal .42s ease-out both}@keyframes topbar-icon-reveal{0%{opacity:0;transform:translate(8px);clip-path:inset(0 0 0 100%)}to{opacity:1;transform:translate(0);clip-path:inset(0 0 0 0)}}@media(prefers-reduced-motion:reduce){.topbar-back svg,.topbar-mic svg,.notif-bell>svg.topbar-icon-reveal{animation:none}}.page{width:min(40rem,100%);margin:0 auto;padding:1.25rem 1rem 2rem;flex:1}.page-with-bottom-nav{padding-bottom:calc(1.25rem + var(--bottom-nav-h) + var(--safe-bottom))}.bottom-nav{position:fixed;left:0;right:0;bottom:0;z-index:50;display:flex;justify-content:center;align-items:flex-end;min-height:calc(var(--bottom-nav-h) + var(--safe-bottom));padding:.35rem .75rem calc(var(--bottom-floor-pad) + var(--safe-bottom));background:transparent;border:none;box-shadow:none;pointer-events:none}.bottom-nav-inner{pointer-events:auto;display:grid;grid-template-columns:repeat(5,1fr);width:100%;max-width:28rem;gap:.1rem;padding:.4rem .35rem;border:none;border-radius:1.15rem;background:#fffffff5;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);overflow:visible;box-shadow:0 14px 36px #0f172a5c,0 6px 14px #0f172a2e}.bottom-nav-inner.is-4{grid-template-columns:repeat(4,minmax(0,1fr))}.bottom-nav-item{position:relative;display:grid;grid-template-rows:1.65rem auto;align-items:center;justify-items:center;gap:.2rem;min-height:var(--touch);padding:.2rem .15rem;color:var(--muted);text-decoration:none;font-size:.62rem;font-weight:600;letter-spacing:-.02em;line-height:1.15;text-align:center;border-radius:.5rem;-webkit-tap-highlight-color:transparent}.nav-unread-badge{position:absolute;top:.12rem;right:50%;transform:translate(calc(50% + .72rem));min-width:1rem;height:1rem;padding:0 .28rem;border-radius:999px;background:var(--danger, #c0392b);color:#fff;font-size:.62rem;font-weight:800;line-height:1rem;text-align:center;pointer-events:none}.bottom-nav-item.nav-locked{opacity:.38;pointer-events:none;cursor:not-allowed}.bottom-nav-item.active-lesson{color:var(--accent)}.bottom-nav-item.active-lesson .bottom-nav-icon{background:var(--accent-soft);color:var(--accent-text)}.lesson-live-dot{position:absolute;top:.35rem;right:calc(50% - 1.15rem);width:.45rem;height:.45rem;border-radius:50%;background:var(--danger);box-shadow:0 0 0 2px #fff}.lobby-rejoin{display:flex;flex-direction:column;gap:.45rem;padding:.75rem .85rem;border:1px solid color-mix(in srgb,var(--accent) 40%,var(--line));background:var(--accent-soft);border-radius:var(--radius);flex-shrink:0}.lobby-rejoin-text{margin:0;font-size:.88rem;color:var(--accent-text);font-weight:600}.lobby-rejoin .primary{width:100%}.active-lesson-banner{color:var(--accent-text)!important;font-weight:600}.active-lesson-card .active-lesson-cta{margin-top:.45rem;width:100%;text-align:center;font-weight:700;color:var(--accent);font-size:.9rem}.score-stage-student .score-scroll{margin-bottom:0}.score-status-solo{flex-shrink:0;margin:0;padding:.45rem .75rem calc(var(--bottom-floor-pad) + var(--safe-bottom));text-align:center;border-top:1px solid var(--line);background:var(--bg)}.lesson-sync-banner{flex-shrink:0;margin:0;padding:.4rem .75rem;font-size:.78rem;line-height:1.35;text-align:center;color:#5c5346;background:#f3efe6;border-bottom:1px solid var(--line)}.lesson-sync-banner.is-ok{color:#3d5a45;background:#e8f0ea}.lesson-sync-banner.is-reconnect{color:#5c5346;background:#f3efe6}.lesson-sync-banner.is-error{color:#7a2e2e;background:#f8e8e8}.page-score-student .transport-bar{display:none}.bottom-nav-item:hover{color:inherit;text-decoration:none;background:transparent}.bottom-nav-item.active:hover,.bottom-nav-item.active{color:var(--accent)}.bottom-nav-item.active .bottom-nav-icon{background:var(--accent-soft);color:var(--accent-text)}.bottom-nav-icon{display:inline-flex;width:1.65rem;height:1.65rem;align-items:center;justify-content:center;border-radius:.45rem;flex-shrink:0;box-sizing:border-box}.bottom-nav-icon svg{width:1.2rem;height:1.2rem;fill:currentColor}.bottom-nav-item[data-tab=community] .bottom-nav-icon svg{transform:translateY(1.5px)}.bottom-nav-icon.is-avatar{width:1.65rem;height:1.65rem;padding:0;border-radius:50%;background:transparent;overflow:hidden}.bottom-nav-item.active .bottom-nav-icon.is-avatar{background:transparent;box-shadow:0 0 0 2px var(--accent-soft),0 0 0 3px color-mix(in srgb,var(--accent) 35%,transparent)}.nav-profile-avatar{width:100%;height:100%;font-size:.62rem;box-shadow:0 0 0 1px color-mix(in srgb,var(--line) 70%,transparent)}.bottom-nav-label{max-width:100%;min-height:1.15em;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;line-height:1.15}.bottom-nav-item.is-me-profile .bottom-nav-label{max-width:3.6rem}.practice-menu-backdrop{position:fixed;inset:0;z-index:45;background:#0f172a52;backdrop-filter:blur(2px);-webkit-backdrop-filter:blur(2px)}.practice-menu-backdrop[hidden]{display:none!important}.bottom-nav-practice-wrap{position:relative;display:flex;align-items:stretch;justify-content:center;min-width:0;container-type:inline-size}.bottom-nav-practice-wrap .bottom-nav-item{width:100%;border:none;background:transparent;cursor:pointer;font-family:inherit}.practice-menu{position:absolute;left:-.35rem;bottom:calc(100% + .55rem);z-index:60;display:flex;flex-direction:column;gap:.15rem;min-width:7.5rem;padding:.45rem .35rem;border-radius:.85rem;background:#fff;box-shadow:0 10px 28px #0f172a38,0 2px 8px #0f172a1a;animation:practice-menu-in .18s cubic-bezier(.22,1,.36,1)}.practice-menu[hidden]{display:none!important}.practice-menu-caret{position:absolute;left:calc(.35rem + 50cqw);bottom:-.38rem;width:.72rem;height:.72rem;transform:translate(-50%) rotate(45deg);background:#fff;box-shadow:2px 2px 4px #0f172a14;border-radius:0 0 2px;pointer-events:none}.practice-menu-item{display:flex;align-items:center;gap:.55rem;width:100%;margin:0;padding:.55rem .7rem;border:none;border-radius:.55rem;background:transparent;color:var(--text);font:inherit;font-size:.92rem;font-weight:600;letter-spacing:-.02em;text-align:left;cursor:pointer;-webkit-tap-highlight-color:transparent}.practice-menu-item:hover,.practice-menu-item:focus-visible{background:var(--bg-soft);outline:none}.practice-menu-item.is-current{color:var(--accent);background:var(--accent-soft)}.practice-menu-icon{display:inline-flex;width:1.35rem;height:1.35rem;align-items:center;justify-content:center;flex-shrink:0;color:inherit}.practice-menu-icon svg{width:1.25rem;height:1.25rem}@keyframes practice-menu-in{0%{opacity:0;transform:translateY(.35rem)}to{opacity:1;transform:translateY(0)}}.tool-page{display:flex;flex-direction:column;gap:1rem;max-width:26rem;margin:0 auto;padding:.25rem 0 .5rem}.tool-placeholder{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.4rem;min-height:40vh;text-align:center}.tool-placeholder-title{margin:0;font-size:1.3rem;font-weight:700;letter-spacing:-.03em}.tool-placeholder-lede{margin:0;font-size:.95rem}.tuner-page{--tuner-state: var(--tone-3);padding-top:.125rem}.page:has(.tuner-page){padding-top:.625rem}.tuner-gauge-wrap{width:100%;padding:0 .5rem;margin-top:-.15rem}.tuner-sheet-note{margin-left:.35rem;padding:.1rem .35rem;border-radius:.3rem;background:var(--bg-soft);color:var(--muted);font-size:.72rem;font-weight:600}.tuner-instrument-label[hidden]{display:none!important}.tuner-instrument-label:disabled{cursor:default;opacity:1;color:var(--muted);-webkit-text-fill-color:var(--muted)}.tuner-instrument-label:disabled .tuner-chevron{display:none}.tuner-main{display:flex;flex-direction:column;align-items:center;gap:.25rem;color:var(--tuner-state)}.tuner-main[data-state=perfect]{--tuner-state: #2f6b3c}.tuner-main[data-state=ok]{--tuner-state: #4a8f5b}.tuner-main[data-state=near]{--tuner-state: #c9a227}.tuner-main[data-state=far]{--tuner-state: #c2596a}.tuner-gauge-stack{position:relative;width:100%}.tuner-trace{position:absolute;inset:0;width:100%;height:100%;display:block;pointer-events:none}.tuner-gauge{position:relative;display:block;width:100%;height:auto;overflow:visible}.tuner-tick{stroke:var(--tone-4);stroke-width:1.2;stroke-linecap:round}.tuner-tick.is-major{stroke:var(--tone-3);stroke-width:1.8}.tuner-tick-label{fill:var(--muted);font-size:11px;font-weight:600;text-anchor:middle;dominant-baseline:middle}.tuner-tick-label.is-zero{fill:var(--tuner-state);font-size:13px;font-weight:700}.tuner-needle-group{color:var(--tuner-state);transition:transform .12s ease-out}.tuner-glow{transition:opacity .2s ease}.tuner-main[data-state=idle] .tuner-glow{opacity:0}.tuner-needle{stroke:currentColor;stroke-width:2.4;stroke-linecap:round}.tuner-needle-tip{fill:currentColor}.tuner-readout{display:flex;align-items:center;justify-content:center;gap:1.75rem;width:100%;color:var(--text)}.tuner-meta-row{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:.35rem;width:100%;margin-top:.1rem;padding:0 .85rem;box-sizing:border-box;animation:tuner-meta-rise 2s cubic-bezier(.22,1,.36,1) both}.tuner-meta-row>.tuner-meta:first-child{justify-self:start}.tuner-meta-row>.tuner-meta-instrument{justify-self:center;max-width:9.5rem}.tuner-meta-row>.tuner-meta:last-child{justify-self:end}@keyframes tuner-meta-rise{0%{opacity:0;transform:translateY(.85rem)}to{opacity:1;transform:translateY(0)}}@media(prefers-reduced-motion:reduce){.tuner-meta-row{animation:none}}.tuner-meta{flex:0 0 auto;display:inline-flex;align-items:baseline;gap:.12rem;min-width:0;margin:0;padding:.25rem .1rem;border:none;border-radius:0;background:transparent;box-shadow:none;color:var(--text);font:inherit;font-size:.88rem;font-weight:600;font-variant-numeric:tabular-nums;letter-spacing:-.02em;line-height:1.15;cursor:pointer;-webkit-tap-highlight-color:transparent}.tuner-meta-instrument>span:first-child{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tuner-meta>span:first-child{text-decoration:underline;text-decoration-color:color-mix(in srgb,var(--muted) 55%,transparent);text-underline-offset:.22em;text-decoration-thickness:1px}.tuner-meta-chevron{flex-shrink:0;color:var(--muted);font-size:.78em;font-weight:500;line-height:1}.tuner-meta:hover,.tuner-meta:focus-visible{color:var(--accent);outline:none}.tuner-meta:hover>span:first-child,.tuner-meta:focus-visible>span:first-child{text-decoration-color:color-mix(in srgb,var(--accent) 55%,transparent)}.tuner-meta:hover .tuner-meta-chevron,.tuner-meta:focus-visible .tuner-meta-chevron{color:var(--accent)}.tuner-meta:active{opacity:.72}.tuner-accidental{font-size:1.5rem;color:var(--tone-3);line-height:1;flex-shrink:0}.tuner-readout-center{display:flex;flex-direction:column;align-items:center;gap:.15rem;min-width:7rem;flex:0 1 auto}.tuner-note{font-size:3.1rem;font-weight:400;line-height:1;letter-spacing:-.02em}.tuner-note sub{font-size:.42em;font-weight:500;vertical-align:baseline}.tuner-value{font-size:.95rem;font-weight:600;color:var(--muted);font-variant-numeric:tabular-nums}.tuner-subvalue{margin:0;min-height:1.2em;color:var(--tuner-state);font-size:.85rem;font-weight:600;font-variant-numeric:tabular-nums}.tuner-error{display:flex;flex-direction:column;align-items:center;gap:.5rem;margin:0;padding:.85rem;border-radius:var(--radius);background:var(--danger-bg);color:var(--danger);font-size:.88rem;text-align:center}.tuner-error[hidden]{display:none}.tuner-retry{padding:.4rem .9rem;border:1px solid currentColor;border-radius:999px;background:transparent;color:inherit;font:inherit;font-size:.82rem;font-weight:600;cursor:pointer}.tuner-instrument{display:flex;flex-direction:column;gap:.6rem;margin-top:-.5rem;padding:.425rem .15rem .85rem;border:none;border-radius:0;background:transparent}.tuner-instrument-label{display:flex;align-items:center;justify-content:space-between;gap:.5rem;padding:0;border:none;background:transparent;color:var(--muted);font:inherit;font-size:.85rem;font-weight:600;cursor:pointer}.tuner-strings{display:flex;gap:.45rem}.tuner-string{flex:1 1 0;min-width:0;padding:.7rem .2rem;border:1px solid var(--line);border-radius:.65rem;background:transparent;color:var(--text);font:inherit;font-size:1.05rem;font-weight:500;cursor:pointer;-webkit-tap-highlight-color:transparent}.tuner-string sub{font-size:.62em;vertical-align:baseline}.tuner-string.is-target{border-color:var(--tone-2);background:var(--accent-soft);font-weight:700}.tuner-strings-empty{margin:0;font-size:.85rem}.tuner-chevron{font-size:.85rem;color:var(--muted);line-height:1}.tuner-sheet-backdrop{position:fixed;inset:0;z-index:70;background:#0f172a52}.tuner-sheet-backdrop[hidden],.tuner-sheet[hidden]{display:none!important}.tuner-sheet{position:fixed;left:50%;bottom:calc(1rem + var(--bottom-nav-h) + var(--safe-bottom));transform:translate(-50%);z-index:71;width:min(22rem,calc(100vw - 2rem));max-height:60dvh;overflow-y:auto;padding:.9rem;border-radius:1rem;background:var(--bg-elev);box-shadow:var(--shadow-md);animation:tuner-sheet-in .18s cubic-bezier(.22,1,.36,1)}@keyframes tuner-sheet-in{0%{opacity:0;transform:translate(-50%) translateY(.35rem)}to{opacity:1;transform:translate(-50%) translateY(0)}}.tuner-sheet-title{margin:0 0 .6rem;font-size:.95rem;font-weight:700;letter-spacing:-.02em}.tuner-sheet-body{display:flex;flex-direction:column;gap:.15rem}.tuner-sheet-item{display:flex;align-items:center;justify-content:space-between;gap:.6rem;width:100%;padding:.7rem .75rem;border:none;border-radius:.6rem;background:transparent;color:var(--text);font:inherit;font-size:.95rem;text-align:left;cursor:pointer;-webkit-tap-highlight-color:transparent}.tuner-sheet-item:hover,.tuner-sheet-item:focus-visible{background:var(--bg-soft);outline:none}.tuner-sheet-item.is-selected{font-weight:700;background:var(--accent-soft)}.tuner-sheet-item[data-unit]{justify-content:flex-start}.tuner-sheet-check{color:var(--accent);font-weight:700}.tuner-radio{display:inline-block;width:1.05rem;height:1.05rem;border:2px solid var(--line-strong);border-radius:50%;flex-shrink:0}.tuner-radio.is-on{border-color:var(--accent);background:radial-gradient(circle,var(--accent) 0 42%,transparent 44%)}@media(prefers-reduced-motion:reduce){.tuner-needle-group,.tuner-glow{transition:none}}.profile-dl{display:grid;grid-template-columns:5.5rem 1fr;gap:.55rem .75rem;margin:0 0 1.25rem;padding:1rem;background:var(--bg-soft);border:1px solid var(--line);border-radius:var(--radius)}.profile-dl dt{margin:0;color:var(--muted);font-size:.85rem;font-weight:500}.profile-dl dd{margin:0;font-weight:600}.me-page{width:100%}.me-guest-title{margin:0 0 .45rem;font-family:var(--font);font-size:1.1rem;font-weight:800}.me-guest .profile-dl{margin-top:1rem;border:none;border-radius:0;background:transparent;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.me-card{border:none;border-radius:0;padding:.55rem .35rem 1rem;margin:0 0 1rem;background:transparent}.me-profile-row{display:flex;align-items:center;gap:.9rem}.me-avatar-wrap{position:relative;flex-shrink:0;width:4.75rem;height:4.75rem;min-width:4.75rem;min-height:4.75rem;display:grid;place-items:center;padding:0;border:none;border-radius:50%;background:transparent;cursor:pointer}.me-avatar{width:4.5rem;height:4.5rem;font-size:1.25rem;box-shadow:0 0 0 1px color-mix(in srgb,var(--line) 70%,transparent)}.me-avatar-edit-ico{position:absolute;right:0;bottom:0;width:1.55rem;height:1.55rem;display:grid;place-items:center;border:2px solid var(--bg);border-radius:50%;background:var(--accent);color:var(--on-accent)}.me-avatar-edit-ico svg{width:.78rem;height:.78rem;fill:none;stroke:currentColor;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}.me-profile-kicker{display:block;margin-bottom:.1rem;color:var(--muted);font-size:.7rem;font-weight:650}.me-name{font-size:1.2rem;font-weight:800;line-height:1.25}.me-role-badge{display:inline-block;margin-top:.35rem;padding:.28rem .65rem;border-radius:999px;background:var(--accent-soft);color:var(--accent-text);font-size:.78rem;font-weight:700}.me-avatar-hint{margin:.45rem 0 0;font-size:.75rem}.me-avatar-status{margin:.35rem 0 0;font-size:.85rem}.me-avatar-status.error{color:var(--danger)}.me-photo-menu{position:fixed;inset:0;z-index:125;display:flex;align-items:flex-end;justify-content:center;opacity:0;pointer-events:none;transition:opacity .2s ease}.me-photo-menu[hidden]{display:none}.me-photo-menu.show{opacity:1;pointer-events:auto}.me-photo-menu-backdrop{position:absolute;inset:0;background:color-mix(in srgb,var(--tone-1) 40%,transparent)}.me-photo-menu-sheet{position:relative;z-index:1;width:min(28rem,100%);padding:.55rem .9rem calc(.9rem + var(--safe-bottom));border-radius:1.15rem 1.15rem 0 0;background:var(--bg-elev);transform:translateY(100%);transition:transform .22s ease}.me-photo-menu.show .me-photo-menu-sheet{transform:translateY(0)}.me-photo-menu-handle{width:2.25rem;height:.25rem;margin:0 auto .75rem;border-radius:999px;background:var(--line)}.me-photo-menu-sheet h2{margin:0 0 .45rem;padding:0 .25rem .4rem;font-family:var(--font);font-size:.95rem;font-weight:800}.me-photo-menu-sheet button{width:100%;min-height:3rem;border:none;border-top:1px solid color-mix(in srgb,var(--line) 65%,transparent);border-radius:0;background:transparent;color:var(--text);font:inherit;font-weight:650;text-align:left}.me-photo-menu-sheet button.is-danger{color:var(--danger)}.me-sec{margin:1.35rem .35rem .45rem;color:var(--muted);font-size:.76rem;font-weight:800;letter-spacing:.02em}.me-sec-row{display:flex;align-items:center;justify-content:space-between;gap:.75rem;margin-top:1.35rem}.me-sec-row .me-sec{margin:0}.me-edit-btn{appearance:none;border:none;background:transparent;border-radius:999px;padding:.3rem .65rem;font:inherit;font-size:.82rem;font-weight:700;cursor:pointer}.me-list-group{overflow:hidden;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.me-item{width:100%;display:flex;align-items:center;gap:.75rem;text-align:left;min-height:4.15rem;background:transparent;border:none;border-bottom:1px solid color-mix(in srgb,var(--line) 72%,transparent);border-radius:0;padding:.72rem .35rem;margin:0;font:inherit;cursor:pointer}.me-item:last-child{border-bottom:none}.me-item:active{background:var(--bg-soft)}.me-ico{width:2.45rem;height:2.45rem;border-radius:50%;background:var(--accent-soft);color:var(--accent);display:grid;place-items:center;flex-shrink:0}.me-ico svg{width:1.15rem;height:1.15rem;display:block}.me-item-text{min-width:0;flex:1}.me-item-text strong{display:block;font-size:.95rem}.me-item-text small{display:block;color:var(--muted);margin-top:.2rem;font-size:.78rem;line-height:1.35}.me-arrow{color:var(--muted);font-size:1.35rem;line-height:1}.me-account{border:none;border-top:1px solid var(--line);border-bottom:1px solid var(--line);border-radius:0;padding:.2rem .35rem;background:transparent}.me-account-row{display:flex;gap:.75rem;padding:.7rem 0;border-bottom:1px solid color-mix(in srgb,var(--line) 80%,transparent);font-size:.92rem}.me-account-row:last-child{border-bottom:0}.me-label{width:4.25rem;flex-shrink:0;color:var(--muted)}.me-account-row b{font-weight:700;word-break:break-all}.me-logout{width:100%;min-height:2.65rem;margin-top:1rem;border:none;background:var(--danger-bg);color:var(--danger);border-radius:.75rem;font:inherit;font-weight:800;cursor:pointer}.me-app-meta{display:flex;justify-content:center;align-items:center;flex-wrap:wrap;gap:.25rem .75rem;margin:1.15rem 0 .35rem;color:var(--muted);font-size:.68rem;line-height:1.45;letter-spacing:.01em}.me-app-meta button{min-width:0;min-height:0;padding:0;border:0;background:transparent;color:var(--muted);font:inherit;text-decoration:underline;text-underline-offset:.15rem;cursor:pointer}.me-app-meta button.is-danger{color:var(--danger)}.me-app-meta small{flex-basis:100%;color:var(--danger);text-align:center;font-size:.7rem}.me-delete-account-modal label{display:block;margin:.85rem 0 .35rem;font-size:.8rem;font-weight:800}.me-delete-account-modal input{width:100%;min-height:var(--touch);box-sizing:border-box;padding:.65rem .75rem;border:1px solid var(--line);border-radius:.7rem;background:var(--bg-elev);font:inherit}.me-delete-account-modal>small{display:block;margin-top:.35rem;font-size:.75rem}.me-delete-account-modal>small[hidden]{display:none}.me-delete-account-modal .account-modal-actions{margin-top:.9rem}.me-delete-account-modal button.is-danger{border-color:transparent;background:var(--danger-bg);color:var(--danger);font-weight:800}.me-subhead{display:grid;grid-template-columns:var(--touch) minmax(0,1fr) var(--touch);align-items:center;min-height:var(--touch);margin:0 0 .65rem}.me-subhead h1{grid-column:2;margin:0;font-family:var(--font);font-size:1.05rem;font-weight:800;text-align:center}.me-back{grid-column:1;appearance:none;display:grid;place-items:center;width:var(--touch);height:var(--touch);min-width:var(--touch);min-height:var(--touch);border:none;border-radius:50%;background:var(--bg-soft);color:var(--text);font:inherit;font-size:1.5rem;font-weight:500;padding:0;margin:0;cursor:pointer}.me-form{border:none;border-top:1px solid var(--line);border-radius:0;padding:1rem .25rem 1.15rem;margin:0 0 .85rem;background:transparent;display:flex;flex-direction:column;gap:.55rem}.me-form-title{margin:0 0 .15rem;font-size:.95rem}.me-form label{display:flex;flex-direction:column;gap:.3rem;font-size:.82rem;font-weight:700}.me-form input:not([type=checkbox]):not([type=radio]){min-height:var(--touch);font:inherit;font-weight:500;padding:.6rem .7rem;border:1px solid var(--line);border-radius:.75rem;background:var(--bg-elev)}.me-form>button[type=submit]{width:100%;margin-top:.25rem}.me-form-status{margin:0;font-size:.85rem}.me-form-status.error{color:var(--danger)}.me-login-notice{margin:0 0 .85rem;padding:.7rem .85rem;border-radius:.65rem;border:1px solid color-mix(in srgb,var(--accent) 35%,var(--line));background:var(--accent-soft);color:var(--accent-text);font-size:.88rem;font-weight:600}.me-filter{display:flex;flex-wrap:wrap;gap:.4rem;margin:0 0 .85rem}.me-filter-btn{appearance:none;border:none;background:var(--bg-elev);border-radius:999px;padding:.4rem .7rem;font:inherit;font-size:.78rem;font-weight:700;color:var(--muted);cursor:pointer}.me-filter-btn.is-on{background:var(--accent-soft);color:var(--accent-text)}.me-history-status.ok{color:var(--accent)}.me-history-status.bad{color:var(--danger)}.me-history-day+.me-history-day{margin-top:1.1rem}.me-history-day>h2{display:flex;align-items:center;gap:.55rem;margin:0 0 .25rem;font-size:1rem}.me-history-day>h2:after{content:"";flex:1;height:1px;background:color-mix(in srgb,var(--line) 65%,transparent)}.me-history-day>h2 b{font-family:var(--display);font-size:1.1rem;font-weight:600}.me-history-day>h2 span{color:var(--muted);font-size:.7rem;font-weight:600}.me-history-timeline{margin:0;padding:0;list-style:none}.me-history-row{min-height:4.7rem;display:grid;grid-template-columns:3.4rem 1.2rem minmax(0,1fr);align-items:stretch}.me-history-row>time{padding-top:.82rem;color:var(--muted);font-size:.74rem;font-weight:650;font-variant-numeric:tabular-nums;text-align:right}.me-history-rail{position:relative}.me-history-rail:before{content:"";position:absolute;top:0;bottom:0;left:50%;width:1px;background:color-mix(in srgb,var(--line-strong) 58%,transparent);transform:translate(-50%)}.me-history-row:first-child .me-history-rail:before{top:1.05rem}.me-history-row:last-child .me-history-rail:before{bottom:calc(100% - 1.05rem)}.me-history-rail i{position:absolute;z-index:1;top:.75rem;left:50%;width:.66rem;height:.66rem;border:2px solid var(--bg);border-radius:50%;background:var(--muted);transform:translate(-50%)}.me-history-rail i.is-completed{background:#7652b8}.me-history-rail i.is-rejected{background:var(--danger)}.me-history-copy{min-width:0;display:grid;align-content:start;gap:.18rem;padding:.67rem .2rem .75rem .65rem;border-bottom:1px solid color-mix(in srgb,var(--line) 48%,transparent)}.me-history-row:last-child .me-history-copy{border-bottom:none}.me-history-copy strong{overflow:hidden;font-size:.88rem;text-overflow:ellipsis;white-space:nowrap}.me-history-copy small{overflow:hidden;color:var(--muted);font-size:.7rem;text-overflow:ellipsis;white-space:nowrap}.me-history-copy .me-history-status{justify-self:start;margin-top:.12rem;font-size:.68rem}.me-ico-danger{background:#fff0f1;color:var(--danger)}.me-tabs{display:flex;flex-wrap:wrap;gap:.4rem;padding:0;margin:0 0 .85rem;background:transparent}.me-tab{flex:none;min-height:2.35rem;appearance:none;border:0;background:var(--bg-elev);padding:.42rem .85rem;border-radius:999px;font:inherit;font-size:.85rem;font-weight:700;color:var(--muted);cursor:pointer}.me-tab.is-on{background:var(--accent-soft);color:var(--accent-text)}.me-form textarea{font:inherit;font-weight:500;padding:.55rem .65rem;border:1px solid var(--line);border-radius:.75rem;background:var(--bg-elev);resize:vertical;min-height:6rem}.me-selected{margin:0 0 .35rem;font-size:.9rem}.me-empty-card{margin-top:.5rem;padding:1.25rem 1rem;background:var(--bg-soft);border-radius:1rem;text-align:center}.me-empty-title{margin:0 0 .4rem;font-size:1.05rem;font-weight:700}.me-full-btn{width:100%;min-height:var(--touch);margin-top:.85rem}.me-teacher-target{display:flex;align-items:center;gap:.75rem;padding:.75rem .85rem;background:var(--bg-soft);border-radius:.85rem;margin-bottom:.75rem}.me-teacher-target .me-selected{margin:0}.me-teacher-target .tiny{margin:.15rem 0 0}.me-reason-set{border:1px solid var(--line);border-radius:.65rem;padding:.65rem .75rem;margin:0}.me-reason-set legend{padding:0 .25rem;font-size:.82rem;font-weight:800}.me-radio{display:flex;flex-direction:row!important;align-items:center;gap:.45rem;font-weight:500;font-size:.88rem;margin:.35rem 0}.me-check{display:flex;flex-direction:row!important;align-items:center;gap:.5rem;min-height:var(--touch);margin:0;padding:.35rem .2rem;border-bottom:1px solid color-mix(in srgb,var(--line) 55%,transparent);font-size:.95rem;font-weight:600}.me-check:last-of-type{border-bottom:none}.me-form.is-master-off .me-check:not(:first-of-type){opacity:.45}.me-danger-btn{width:100%;min-height:2.65rem;border:0;border-radius:.7rem;background:var(--danger);color:#fff;font:inherit;font-weight:800;cursor:pointer}.me-inquiry-list{border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.me-inquiry-card{width:100%;min-height:4.5rem;display:flex;align-items:center;gap:.65rem;padding:.72rem .35rem;border:none;border-bottom:1px solid color-mix(in srgb,var(--line) 65%,transparent);background:transparent;color:inherit;text-align:left;font:inherit;cursor:pointer}.me-inquiry-card:last-child{border-bottom:none}.me-inquiry-card:active{background:var(--bg-soft)}.me-inquiry-copy{flex:1;min-width:0;display:grid;gap:.18rem}.me-inquiry-copy>strong,.me-inquiry-copy>small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.me-inquiry-copy>strong{font-size:.9rem}.me-inquiry-copy>small{color:var(--muted);font-size:.72rem}.me-inquiry-meta{display:flex;align-items:center;gap:.55rem;color:var(--muted);font-size:.68rem}.me-inquiry-head h2{margin:0 0 .25rem;font-size:1.1rem}.me-thread{display:flex;flex-direction:column;gap:.7rem;margin:.85rem 0 1rem}.me-bubble{max-width:84%;align-self:flex-start;padding:.62rem .78rem;border-radius:.9rem .9rem .9rem .25rem;border:none;background:var(--bg-elev)}.me-bubble.mine{align-self:flex-end;background:var(--accent-soft);border-radius:.9rem .9rem .25rem}.me-bubble-meta{font-size:.72rem;color:var(--muted);margin-bottom:.25rem;font-weight:600}.me-bubble-body{font-size:.9rem;white-space:pre-wrap;word-break:break-word}.me-item:focus-visible,.me-avatar-wrap:focus-visible,.me-edit-btn:focus-visible,.me-back:focus-visible,.me-tab:focus-visible,.me-filter-btn:focus-visible,.me-inquiry-card:focus-visible,.me-logout:focus-visible{outline:2px solid color-mix(in srgb,var(--accent) 55%,transparent);outline-offset:2px}@media(max-width:420px){.me-history-row{grid-template-columns:3rem 1.05rem minmax(0,1fr)}.me-history-copy{padding-left:.5rem}.me-inquiry-meta{align-items:flex-start;flex-direction:column;gap:.1rem}}.account-modal-overlay{position:fixed;inset:0;z-index:80;display:grid;place-items:center;padding:1.25rem;background:color-mix(in srgb,#0f172a 45%,transparent)}.account-modal{width:min(22rem,100%);padding:1.15rem 1.2rem 1.2rem;border-radius:1rem;background:#fff;border:1px solid var(--line);box-shadow:var(--shadow-md)}.account-modal h2{margin:0 0 .45rem;font-size:1.15rem}.account-modal p{margin:0 0 1rem;color:var(--muted);font-size:.9rem;line-height:1.45}.account-modal-actions{display:flex;flex-direction:column;gap:.4rem}.app-update-overlay{position:fixed;inset:0;z-index:180;display:grid;place-items:center;padding:1.25rem;background:color-mix(in srgb,var(--tone-1) 42%,transparent);-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px)}.app-update-card{width:min(22rem,100%);padding:1.15rem 1.2rem 1.2rem;border-radius:1rem;background:var(--bg-elev);box-shadow:var(--shadow-md)}.app-update-card h2{margin:0;font-family:var(--font);font-size:1.05rem;font-weight:800}.app-update-card p{margin:.5rem 0 0;color:var(--muted);font-size:.84rem;line-height:1.5}.app-update-actions{display:grid;grid-template-columns:1fr 1fr;gap:.55rem;margin-top:1rem}.app-update-actions button{width:100%;min-height:var(--touch)}@media(max-width:720px){.app-update-overlay{width:100%;min-height:100dvh;place-items:end center;padding:1rem max(1rem,env(safe-area-inset-right)) max(1rem,env(safe-area-inset-bottom)) max(1rem,env(safe-area-inset-left));box-sizing:border-box}.app-update-card{width:100%;max-height:calc(100dvh - max(2rem,env(safe-area-inset-top)));overflow-y:auto;box-sizing:border-box;border-radius:1.15rem}}h1{font-family:var(--display);font-weight:700;font-size:clamp(1.45rem,5vw,1.9rem);margin:0 0 .4rem;letter-spacing:-.02em}.lede{color:var(--muted);margin:0 0 1.35rem;line-height:1.55;font-size:.95rem}.auth-layout-login{min-height:100dvh;min-height:100svh;display:flex;flex-direction:column}.auth-screen{width:min(24rem,100%);margin:0 auto;padding:.25rem 0 2rem;position:relative}.auth-loading-overlay{position:fixed;inset:0;z-index:80;display:grid;place-items:center;background:color-mix(in srgb,var(--bg) 82%,transparent);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.auth-loading-overlay .auth-loading-panel{min-height:auto;width:min(16rem,70vw);background:transparent}.auth-loading-overlay .score-loading-media{width:min(100%,12rem);max-height:40dvh}.auth-screen-login{--login-kb: 0px;width:100%;flex:1;height:100dvh;height:100svh;max-height:100dvh;max-height:100svh;min-height:0;margin:0;padding:calc(.75rem + var(--safe-top)) 1.35rem calc(var(--bottom-floor-pad) + env(safe-area-inset-bottom,0px) + var(--login-kb));box-sizing:border-box;display:flex;flex-direction:column;justify-content:stretch;align-items:stretch;overflow:hidden;background-color:var(--tone-5);background-image:var(--auth-login-bg);background-size:cover;background-position:left bottom;background-repeat:no-repeat}.auth-screen-login.is-email{overflow:auto;-webkit-overflow-scrolling:touch}.auth-login-content{width:min(22rem,100%);margin:0 auto;flex:1;min-height:0;display:grid;grid-template-rows:minmax(0,1fr) minmax(0,1fr) minmax(0,1fr);align-items:stretch;text-align:center;gap:0}.auth-screen-login.is-email .auth-login-content{grid-template-rows:auto auto minmax(0,1fr)}.auth-login-zone{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:0;width:100%}.auth-login-zone-brand{gap:.55rem;justify-content:flex-end;padding-bottom:.5rem}.auth-login-zone-rule{justify-content:center}.auth-login-zone-auth{gap:.55rem;justify-content:flex-start;align-items:center;padding-top:.35rem;overflow:auto;-webkit-overflow-scrolling:touch}.auth-logo{display:flex;flex-direction:column;align-items:center;margin-bottom:0;width:4.75rem;height:4.75rem;border-radius:1.05rem;overflow:hidden;box-shadow:0 2px 4px #2820141a,0 6px 14px #2820141a}.auth-logo-img{display:block;width:100%;height:100%;object-fit:cover;transform:scale(1.36);transform-origin:center center}.auth-logo-mark{display:none}.auth-login-lede{margin:0;font-family:var(--font);font-size:.88rem;font-weight:400;line-height:1.45;letter-spacing:.01em;color:var(--tone-2);text-align:center}.auth-login-rule{width:2.75rem;height:1px;margin:0;background:var(--tone-3);border:none}.auth-login-actions{--auth-social-size: var(--touch);--auth-social-gap: .9rem;--auth-actions-w: calc(var(--auth-social-size) * 3 + var(--auth-social-gap) * 2);width:var(--auth-actions-w);display:flex;flex-direction:column;align-items:stretch;justify-content:flex-start;gap:.75rem;margin-top:0;flex-shrink:0;position:relative}.auth-login-actions.is-email{width:100%}.auth-social{display:flex;align-items:center;justify-content:space-between;gap:var(--auth-social-gap);width:100%;margin-top:0}.auth-social[hidden],.auth-email-cta[hidden]{display:none!important}.auth-social-btn{width:var(--auth-social-size);height:var(--auth-social-size);border-radius:50%;border:1px solid var(--tone-4);background:#fff;color:var(--tone-1);display:grid;place-items:center;padding:0;cursor:pointer;touch-action:manipulation;box-shadow:var(--shadow)}.auth-social-btn:active{transform:scale(.96);background:var(--bg-soft)}.auth-social-btn.is-kakao{background:#fee500;border-color:color-mix(in srgb,#fee500 70%,var(--tone-3));color:#391b1b}.auth-email-cta{display:flex;align-items:center;justify-content:center;gap:.45rem;width:100%;min-height:var(--touch);margin-top:0;padding:0 .9rem;border:1px solid var(--tone-3);border-radius:999px;background:color-mix(in srgb,#fff 80%,transparent);color:var(--tone-1);font:inherit;font-size:.95rem;font-weight:500;cursor:pointer;touch-action:manipulation;box-shadow:var(--shadow)}.auth-email-cta:active{background:var(--bg-soft)}.auth-email-cta-ico{display:grid;place-items:center;color:var(--tone-2)}.auth-email-cta-ico svg{width:1.05rem;height:1.05rem}.auth-social-btn svg{width:1.25rem;height:1.25rem}.auth-login-form{width:100%;text-align:left;margin-top:.25rem}.auth-login-inline{width:100%;margin-top:0;gap:.7rem;position:relative;padding-top:0}.auth-login-inline[hidden]{display:none!important}.auth-email-actions{display:flex;align-items:center;gap:.5rem;width:100%;margin-top:.15rem}.auth-login-inline .auth-email-submit,.auth-login-inline .auth-primary{flex:1 1 auto;width:auto;min-width:0;height:var(--touch);min-height:var(--touch);margin-top:0;font-size:.95rem;font-weight:600;border-radius:999px}.auth-email-close{flex:0 0 auto;width:auto;height:var(--touch);min-height:var(--touch);display:inline-flex;align-items:center;justify-content:center;padding:0 1rem;border:1px solid var(--tone-3);border-radius:999px;background:color-mix(in srgb,#fff 88%,transparent);color:var(--tone-1);font:inherit;font-size:.95rem;font-weight:500;white-space:nowrap;cursor:pointer;touch-action:manipulation;box-shadow:var(--shadow)}.auth-email-close:active{background:var(--bg-soft)}.auth-login-inline .auth-field{position:relative}.auth-login-inline .auth-field label{display:block;position:static;width:auto;height:auto;clip:auto;margin:0 0 .35rem;overflow:visible;white-space:normal;font-size:.82rem;font-weight:700;color:var(--tone-2);text-align:left}.auth-login-inline .auth-field input:not(.auth-otp-cell){height:var(--touch);min-height:var(--touch);font-size:16px;border-radius:.8rem;padding:0 .9rem;background:color-mix(in srgb,#fff 88%,transparent)}.auth-login-inline .auth-field-pw input:not(.auth-otp-cell){padding-right:3rem}.auth-pw-toggle{position:absolute;right:.15rem;bottom:0;width:var(--touch);height:var(--touch);border:0;background:transparent;color:var(--tone-2);display:grid;place-items:center;padding:0;cursor:pointer;touch-action:manipulation}.auth-pw-toggle:active{color:var(--tone-1)}.auth-pw-toggle svg{width:1.15rem;height:1.15rem}.auth-login-foot[hidden],.auth-browse-link[hidden]{display:none!important}.auth-login-foot{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:.2rem .35rem;margin-top:.35rem}.auth-foot-link{border:none;background:transparent;padding:.7rem .45rem;min-height:var(--touch);font:inherit;font-size:.85rem;color:var(--tone-2);cursor:pointer;touch-action:manipulation}.auth-foot-link:active{color:var(--tone-1)}.auth-foot-sep{color:var(--tone-3);font-size:.72rem;-webkit-user-select:none;user-select:none}.auth-browse-link{margin-top:.05rem;padding:.7rem .45rem;min-height:var(--touch);display:inline-flex;align-items:center;justify-content:center;font:inherit;font-size:.85rem;font-weight:400;color:var(--tone-2);text-decoration:none;cursor:pointer;touch-action:manipulation}.auth-browse-link:hover{color:var(--tone-1);text-decoration:none}.auth-browse-link:active{color:var(--tone-1)}.auth-login-status{min-height:1.2rem;margin:.25rem 0 0;font-size:.88rem;width:100%}.auth-login-status[hidden]{display:none!important}.auth-title{font-family:var(--display);font-size:1.85rem;font-weight:700;margin:.35rem 0 .5rem;line-height:1.25;letter-spacing:-.02em}.auth-sub{color:var(--muted);font-size:.98rem;line-height:1.55;margin:0 0 1.5rem}.auth-form{display:flex;flex-direction:column;gap:1.05rem}.auth-field label{display:block;font-size:.88rem;font-weight:700;color:var(--tone-2);margin-bottom:.45rem}.auth-field input:not(.auth-otp-cell){width:100%;height:3.25rem;border:1.5px solid var(--tone-4);border-radius:.8rem;padding:0 .9rem;font:inherit;font-size:1rem;background:#fff;color:var(--text)}.auth-field input:focus{outline:2px solid color-mix(in srgb,var(--accent) 40%,transparent);border-color:var(--accent)}.auth-tip{margin-top:.4rem;font-size:.72rem;color:var(--muted);line-height:1.4}.auth-validation,.auth-validation-list{margin-top:.5rem;color:var(--muted);font-size:.78rem;line-height:1.5}.auth-validation-list{display:grid;gap:.15rem}.auth-validation-icon{display:inline-flex;width:1.05rem;justify-content:center;font-weight:800}.auth-validation.is-valid,.auth-validation-list .is-valid{color:#278a52}.auth-validation.is-invalid,.auth-validation-list .is-invalid{color:var(--danger)}.auth-primary:disabled{cursor:not-allowed;background:var(--tone-4);color:var(--muted);box-shadow:none;opacity:.72}.auth-primary:disabled:hover{background:var(--tone-4)}.auth-primary,.auth-secondary{width:100%;height:3.25rem;border-radius:.8rem;font-size:1.05rem;font-weight:700;margin-top:.15rem}.auth-primary{border:0;background:var(--accent);color:var(--on-accent);box-shadow:0 10px 22px color-mix(in srgb,var(--tone-1) 22%,transparent)}.auth-primary:hover{background:var(--accent-hover);border-color:transparent}.auth-secondary{border:1px solid var(--line);background:#fff;color:var(--text);box-shadow:none}.auth-center{text-align:center;margin:.85rem 0}.auth-home-link{margin-top:1rem}.auth-link{border:0!important;background:none!important;box-shadow:none!important;color:var(--accent)!important;font-weight:700;min-height:auto;padding:.25rem .35rem;font-size:.92rem}.auth-link.inline{display:inline;padding:0;font-size:inherit}.auth-divider{display:flex;align-items:center;gap:.55rem;color:#a1adbd;font-size:.75rem;margin:1.15rem 0}.auth-divider:before,.auth-divider:after{content:"";height:1px;background:#edf1f5;flex:1}.auth-back{border:0!important;background:none!important;box-shadow:none!important;color:#63748f!important;font-weight:700;padding:0;margin:0 0 .5rem;min-height:auto;font-size:.95rem}.auth-progress{display:flex;align-items:center;gap:.4rem;margin:.35rem 0 1.2rem}.auth-dot{width:1.55rem;height:1.55rem;border-radius:50%;display:grid;place-items:center;background:var(--accent-soft);color:var(--tone-2);font-size:.7rem;font-weight:800;flex-shrink:0}.auth-dot.on{background:var(--accent);color:var(--on-accent)}.auth-dot.done{background:var(--accent-soft);color:var(--accent)}.auth-line{height:2px;background:#e8edf4;flex:1}.auth-line.on{background:#b8e7e1}.auth-agree-box{border:1px solid var(--line);border-radius:.9rem;padding:.85rem 1rem;margin-bottom:.55rem}.auth-check{display:flex;gap:.65rem;padding:.75rem 0;border-bottom:1px solid #edf1f5;cursor:pointer;align-items:flex-start}.auth-check:last-of-type{border-bottom:0}.auth-agree-box .auth-check{padding:0;border:0}.auth-check input{width:1.25rem;height:1.25rem;margin-top:.1rem;accent-color:var(--accent);flex-shrink:0}.auth-check b{display:block;font-size:.95rem}.auth-check small{display:block;color:var(--muted);margin-top:.25rem;line-height:1.4;font-size:.8rem}.auth-req{color:var(--danger);font-size:.7rem;font-style:normal;font-weight:700}.auth-legal{margin:0 0 .75rem;padding:.85rem;border:1px solid var(--line);border-radius:var(--radius);background:var(--bg-soft);color:var(--muted);font-size:.85rem;line-height:1.5}.auth-cta-wrap{margin-top:1.4rem}.auth-mail-icon{text-align:center;font-size:2.75rem;margin:.25rem 0 1rem;line-height:1;color:var(--accent)}.auth-email-box{background:#f6fbfa;border:1px solid #cceee8;border-radius:.9rem;padding:.9rem 1rem;margin-bottom:1.15rem}.auth-email-box small{display:block;color:var(--muted);margin-bottom:.25rem;font-size:.75rem}.auth-email-box b{font-size:.98rem;word-break:break-all}.auth-dev-code{margin:-.5rem 0 1rem;font-size:.85rem}.auth-otp{display:grid;grid-template-columns:repeat(6,1fr);gap:.4rem}.auth-otp-cell{height:3.25rem!important;width:100%;border:1.5px solid var(--tone-4)!important;border-radius:.65rem!important;text-align:center;font-size:1.2rem!important;font-weight:800;padding:0!important}.auth-timer{display:flex;justify-content:space-between;align-items:center;margin:.55rem 0 1.2rem;font-size:.78rem;color:var(--muted)}.auth-timer-left.danger{color:var(--danger);font-weight:800}.auth-delivery-help{display:grid;gap:.35rem;margin:-.35rem 0 1.1rem;padding:.85rem .95rem;border:1px solid var(--line);border-radius:.8rem;background:var(--bg-soft);color:var(--muted);font-size:.78rem;line-height:1.45}.auth-delivery-help[hidden]{display:none}.auth-delivery-help b{color:var(--text);font-size:.84rem}.auth-delivery-help .auth-link{width:fit-content;padding:0;font-size:.8rem;font-weight:800;color:var(--accent-text)!important}.auth-delivery-help .auth-link:disabled{color:var(--muted)!important;cursor:not-allowed;opacity:.65}.auth-success{min-height:min(32rem,70dvh);display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center}.auth-success-icon{width:5.5rem;height:5.5rem;border-radius:50%;background:var(--accent-soft);color:var(--accent);display:grid;place-items:center;font-size:2.5rem;font-weight:700;box-shadow:0 0 0 .75rem #effbf9;margin-bottom:1.4rem}.auth-success-title{font-family:var(--display);font-size:1.55rem;font-weight:700;line-height:1.35;margin:0 0 .75rem}.auth-success-body{color:var(--muted);line-height:1.6;font-size:.9rem;margin:0 0 1.35rem}.auth-role-pick{display:flex;gap:.5rem;width:100%;margin-bottom:.35rem}.auth-role-btn{flex:1;border:1.5px solid var(--line)!important;background:#fff!important;box-shadow:none!important;border-radius:.75rem;font-weight:700;color:var(--muted)!important}.auth-role-btn.on{border-color:var(--accent)!important;background:var(--accent-soft)!important;color:var(--accent-text)!important}.auth-success .auth-primary{margin-top:1rem}.btn-row{display:flex;flex-wrap:wrap;gap:.55rem;margin:1rem 0}button,.btn{appearance:none;border:1px solid var(--line);background:var(--bg);color:var(--text);border-radius:.7rem;min-height:var(--touch);padding:.55rem 1rem;font:inherit;font-weight:560;cursor:pointer;box-shadow:var(--shadow);touch-action:manipulation}button:hover,.btn:hover{border-color:var(--accent)}button:active,.btn:active{transform:scale(.98)}button:disabled{opacity:.45;cursor:not-allowed;transform:none}button.primary{background:var(--accent);border-color:var(--accent);color:var(--on-accent);box-shadow:0 4px 14px color-mix(in srgb,var(--tone-1) 22%,transparent)}button.primary:hover{background:var(--accent-hover);border-color:var(--accent-hover)}button.ghost{background:transparent;box-shadow:none}button.icon-btn{display:inline-flex;align-items:center;justify-content:center;min-width:var(--touch);padding:.35rem}button.icon-btn svg{width:1.15rem;height:1.15rem;display:block}.btn-row>button,.btn-row>.btn{flex:1 1 auto;min-width:min(100%,8.5rem)}.role-grid{display:grid;grid-template-columns:1fr;gap:.75rem;margin-top:1rem}@media(min-width:520px){.role-grid{grid-template-columns:repeat(2,1fr)}}.role-card{text-align:left;padding:1.1rem 1rem;background:var(--bg-soft);border:1px solid var(--line);border-radius:var(--radius);cursor:pointer;min-height:5.5rem;box-shadow:none}.role-card:hover{border-color:var(--accent);background:#fff}.role-card strong{display:block;font-family:var(--display);font-size:1.15rem;margin-bottom:.3rem}.role-card span{color:var(--muted);font-size:.88rem;line-height:1.4}.work-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.55rem}.work-item{display:grid;grid-template-columns:3.25rem 1fr auto;gap:.75rem;align-items:center;padding:.7rem .8rem;border:1px solid var(--line);border-radius:var(--radius);background:var(--bg);cursor:pointer;width:100%;text-align:left;color:inherit;font:inherit;box-shadow:var(--shadow);min-height:4.25rem}.work-item:hover{border-color:var(--accent)}.work-item img,.work-thumb{width:3.25rem;height:3.25rem;border-radius:.5rem;object-fit:cover;background:var(--bg-soft)}.work-thumb.empty{display:grid;place-items:center;color:var(--muted);font-size:.7rem;border:1px dashed var(--line-strong)}.work-title{font-weight:600;font-size:.95rem}.work-sub{color:var(--muted);font-size:.8rem;margin-top:.15rem}.panel{display:flex;flex-wrap:wrap;gap:.5rem;align-items:center;margin:.75rem 0 1rem;padding:.65rem;background:var(--bg-soft);border:1px solid var(--line);border-radius:var(--radius)}.panel label{display:inline-flex;align-items:center;gap:.35rem;color:var(--muted);font-size:.85rem;min-height:2.25rem}.panel input[type=range]{width:min(9rem,36vw);accent-color:var(--accent)}.score-shell{display:flex;flex-direction:column;gap:0;flex:1;min-height:0}.page-score{width:100%;max-width:none;margin:0;padding:0 3% 3%;flex:1;min-height:0;display:flex;flex-direction:column;box-sizing:border-box}.page.page-score{width:100%;max-width:none;margin:0;padding:0 3% 3%;box-sizing:border-box}.page-score>div{flex:1;min-height:0;display:flex;flex-direction:column}.score-stage{flex:1;min-height:0;display:flex;flex-direction:column;width:100%;height:100%}.score-stage-error{padding:1rem}.score-loading{margin:auto;padding:0;text-align:center;display:grid;place-items:center;width:100%;min-height:100%;background:var(--bg)}.score-loading-media{display:block;width:min(72%,16rem);max-height:min(58dvh,28rem);object-fit:contain}#staff-host{background:#fff;color:#0f172a;border-radius:0;padding:0;min-height:120px;width:100%;max-width:100%;box-sizing:border-box}.score-scroll{position:relative;flex:1 1 auto;min-height:0;max-height:none;margin:0;background:var(--bg);border:none;border-radius:.75rem;padding:3%;overflow:auto;-webkit-overflow-scrolling:touch;box-shadow:0 1px 2px color-mix(in srgb,var(--tone-1) 8%,transparent),0 8px 24px color-mix(in srgb,var(--tone-1) 12%,transparent);cursor:pointer}.score-control-status{flex:none;display:flex;flex-wrap:wrap;align-items:center;gap:.38rem;padding:.48rem .15rem .58rem;overflow-x:auto;overscroll-behavior-inline:contain;scrollbar-width:none}.score-control-status::-webkit-scrollbar{display:none}.score-control-status span{flex:none;padding:.28rem .55rem;border-radius:999px;background:color-mix(in srgb,var(--accent-soft) 70%,var(--bg-elev));color:var(--muted);font-size:.74rem;font-weight:700;line-height:1.25;white-space:nowrap}.score-control-status span:first-child{color:var(--accent)}.score-control-status #score-state-play.is-stopped{background:var(--danger);color:var(--on-accent)}.score-control-status #score-state-play.is-playing{background:#2f7d5c;color:#fff}.score-control-status #score-state-play.is-section-playing{background:var(--bg);color:var(--text)}.score-control-status .score-state-toggle{background:transparent;color:var(--muted)}.score-control-status .score-state-toggle.is-on{background:#2f7d5c;color:#fff}.score-control-status #score-state-follow.is-shaking{animation:score-follow-tag-shake .5s ease}@keyframes score-follow-tag-shake{0%,to{transform:translate(0)}18%{transform:translate(-5px) rotate(-2deg)}36%{transform:translate(5px) rotate(2deg)}54%{transform:translate(-4px) rotate(-1.5deg)}72%{transform:translate(3px) rotate(1deg)}88%{transform:translate(-2px)}}@media(prefers-reduced-motion:reduce){.score-control-status #score-state-follow.is-shaking{animation:none}}.score-scroll:after{content:"";display:block;height:2rem;pointer-events:none}.osmd-host{position:relative;overflow:visible;isolation:isolate;background:var(--bg)}.osmd-host>:not(.score-measure-highlight):not(.score-measure-highlight-extra):not(.score-playhead){position:relative;z-index:1}.osmd-host svg{max-width:none;display:block;background:transparent}.score-playhead{position:absolute;pointer-events:none;z-index:20}.score-measure-highlight,.score-measure-highlight-extra{position:absolute;pointer-events:none;z-index:0}.score-measure-hl{pointer-events:none}.measure-ctx{position:absolute;left:0;top:0;z-index:40;pointer-events:auto;filter:drop-shadow(0 6px 16px rgba(15,23,42,.14))}.measure-ctx-readonly{pointer-events:none;-webkit-user-select:none;user-select:none}.measure-ctx-readonly .measure-ctx-caret,.measure-ctx-readonly .measure-ctx-menu{display:none!important}.measure-ctx-readonly .measure-ctx-play,.measure-ctx-readonly .measure-ctx-bpm,.measure-ctx-readonly .measure-ctx-chip{cursor:default}.measure-ctx-body{position:relative;display:flex;flex-wrap:nowrap;align-items:center;gap:.55rem;padding:.4rem .7rem .45rem;background:#fff;border:1.5px solid color-mix(in srgb,var(--accent) 45%,#99f6e4);border-radius:999px;white-space:nowrap}.measure-ctx-body:after{content:"";position:absolute;left:50%;bottom:-7px;width:12px;height:12px;background:#fff;border-right:1.5px solid color-mix(in srgb,var(--accent) 45%,#99f6e4);border-bottom:1.5px solid color-mix(in srgb,var(--accent) 45%,#99f6e4);transform:translate(-50%) rotate(45deg)}.measure-ctx.is-below .measure-ctx-body:after{top:-7px;bottom:auto;border:0;border-top:1.5px solid color-mix(in srgb,var(--accent) 45%,#99f6e4);border-left:1.5px solid color-mix(in srgb,var(--accent) 45%,#99f6e4)}.measure-ctx-play{width:2.05rem;height:2.05rem;border-radius:999px!important;padding:0!important;display:inline-grid;place-items:center;background:var(--accent)!important;border:none!important;color:#fff!important;flex-shrink:0}.measure-ctx-play:hover{background:var(--accent-hover)!important}.measure-ctx-play svg{display:block}.measure-ctx-bpm,.measure-ctx-chip{display:inline-flex;align-items:center;gap:.28rem;border:none!important;border-radius:999px!important;padding:.2rem .15rem!important;font-size:.88rem;font-weight:500;background:transparent!important;color:#0f172a;box-shadow:none!important}.measure-ctx-bpm:hover,.measure-ctx-chip:hover,.measure-ctx-chip.is-active{background:var(--accent-soft)!important;color:var(--accent-text)}.measure-ctx-chip.is-rit-on{color:#b45309;background:color-mix(in srgb,#f59e0b 14%,#fff);border-color:color-mix(in srgb,#d97706 35%,var(--line))}.measure-ctx-chip.is-rit-on:hover{color:#92400e!important;background:color-mix(in srgb,#f59e0b 22%,#fff)!important}.measure-ctx-rit{gap:.25rem;font-size:.68rem;font-weight:800;letter-spacing:.02em}.measure-ctx-rit svg{flex-shrink:0}.measure-ctx-chip.is-disabled,.measure-ctx-chip.is-disabled:hover{background:transparent!important;color:#94a3b8!important;cursor:default;pointer-events:none}.measure-ctx-bpm-label{font-variant-numeric:tabular-nums;letter-spacing:.01em;display:inline-flex;align-items:center;gap:.2rem}.measure-ctx-bpm-label svg{display:block;flex-shrink:0;opacity:.9}.measure-ctx-caret{font-size:.6rem;color:#94a3b8;line-height:1}.measure-ctx-loop-icon{display:inline-grid;place-items:center;color:var(--accent);line-height:1;transform-origin:center;-webkit-user-select:none;user-select:none}.measure-ctx-loop-icon svg{display:block}.measure-ctx-chip.is-active .measure-ctx-loop-icon{color:var(--accent-text)}.measure-ctx-follow-icon{display:inline-flex;align-items:center;justify-content:center;line-height:0}.measure-ctx-follow-icon svg{display:block}.measure-ctx-loop-icon.is-spinning{animation:measure-ctx-loop-spin .26s ease-out}@keyframes measure-ctx-loop-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.measure-ctx-menu{position:absolute;top:calc(100% + 14px);left:2.4rem;z-index:45;min-width:7.5rem;padding:.3rem;background:#fff;border:1px solid color-mix(in srgb,var(--accent) 30%,var(--line));border-radius:.75rem;box-shadow:0 8px 22px #0f172a1f;display:flex;flex-direction:column;gap:.15rem;filter:none}.measure-ctx-menu[hidden]{display:none!important}.measure-ctx-menu-range{left:auto;right:.2rem;min-width:6.5rem;max-height:11.5rem;overflow-y:auto;-webkit-overflow-scrolling:touch}.measure-ctx-menu button{width:100%;text-align:left;border-radius:.5rem!important;padding:.4rem .55rem!important;background:transparent;border-color:transparent!important;font-size:.85rem}.measure-ctx-menu button:hover,.measure-ctx-menu button.is-active{background:var(--accent-soft);color:var(--accent-text)}.measure-ctx-slider-label{display:flex;flex-direction:column;gap:.35rem;font-size:.8rem;color:var(--muted);padding:.25rem .35rem}.measure-ctx-slider-label input[type=range]{width:9rem;accent-color:var(--accent)}.mpl-control{display:inline-flex;align-items:center;gap:.35rem;flex-wrap:nowrap}.mpl-control .mpl-label{font-size:.85rem;color:var(--muted);white-space:nowrap}.mpl-control button{width:2rem!important;min-width:2rem;padding:.25rem 0;font-size:1rem;line-height:1.2}.mpl-control input[type=number]{width:2.75rem;text-align:center;font-size:.95rem;padding:.3rem .2rem;border:1px solid var(--line);border-radius:6px;background:#fff;color:inherit}.mpl-control input[type=number]::-webkit-outer-spin-button,.mpl-control input[type=number]::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.mpl-control input[type=number]{-moz-appearance:textfield;appearance:textfield}@media(max-width:720px){.page-score,.page.page-score{padding:0}.score-scroll{padding:.45rem .15rem .9rem;border-radius:0;box-shadow:none}.presence-strip-score{margin:0 .4rem .35rem}.lesson-sync-banner{padding:.32rem .55rem;font-size:.72rem}.score-control-status{flex-wrap:nowrap;padding:.42rem .5rem .5rem}.measure-ctx{max-width:calc(100% - 1rem)}.measure-ctx-body{gap:.3rem;max-width:100%;box-sizing:border-box;padding:.32rem .45rem .36rem}.measure-ctx-bpm,.measure-ctx-chip{gap:.18rem;padding-inline:.05rem!important;font-size:.76rem}.measure-ctx-rit{font-size:.62rem}.measure-ctx-play{width:2rem;height:2rem}}.transport-bar{position:relative;bottom:auto;z-index:30;flex-shrink:0;display:grid;grid-template-columns:repeat(3,1fr);gap:.45rem;padding:.65rem .75rem calc(var(--bottom-floor-pad) + var(--safe-bottom));background:#fffffffa;border:none;border-top:1px solid var(--line);border-radius:0;box-shadow:0 -6px 20px #0f172a0d;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.transport-bar .transport-extra{grid-column:1 / -1;display:flex;flex-wrap:wrap;gap:.5rem .75rem;align-items:center;justify-content:space-between;padding-top:.25rem;border-top:1px solid var(--line);margin-top:.15rem}.transport-bar button{width:100%;box-shadow:none}.score-status{grid-column:1 / -1;margin:.15rem 0 0;color:var(--muted);font-size:.8rem;text-align:center;min-height:1.1rem}.status-line{color:var(--muted);font-size:.85rem;margin-top:.75rem}.error{color:var(--danger);background:var(--danger-bg);border:1px solid #fecaca;border-radius:var(--radius);padding:.75rem .9rem;margin:1rem 0;font-size:.9rem}.muted{color:var(--muted)}.spinner{color:var(--muted);padding:2rem 0;text-align:center}.form-stack{display:flex;flex-direction:column;gap:.85rem;width:100%;max-width:24rem}.check-row{display:flex;align-items:flex-start;gap:.65rem;margin:.75rem 0 .35rem;color:var(--text);min-height:var(--touch)}.check-row input{width:1.15rem;height:1.15rem;margin-top:.15rem;accent-color:var(--accent);flex-shrink:0}.legal-box{margin:0 0 .75rem;padding:.85rem;border:1px solid var(--line);border-radius:var(--radius);background:var(--bg-soft);color:var(--muted);font-size:.85rem;line-height:1.5;max-height:8rem;overflow:auto}.form-stack label,.block-label{display:flex;flex-direction:column;gap:.4rem;color:var(--muted);font-size:.88rem;font-weight:500}.form-stack input,.block-label input,.block-label textarea,.block-label select{background:#fff;border:1px solid var(--line-strong);border-radius:.65rem;color:var(--text);min-height:var(--touch);padding:.65rem .85rem;font:inherit;font-size:1rem;width:100%}.block-label textarea{min-height:5.5rem;resize:vertical;line-height:1.45}.form-stack input:focus,.block-label input:focus,.block-label textarea:focus,.block-label select:focus{outline:2px solid color-mix(in srgb,var(--accent) 45%,transparent);border-color:var(--accent)}.pin{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:1.5rem;letter-spacing:.14em;color:var(--accent)}.lobby-root{display:flex;flex-direction:column;gap:.65rem;width:min(40rem,100%);margin:0 auto;height:calc(100dvh - 4.25rem - var(--bottom-nav-h) - var(--safe-bottom) - 1.5rem);max-height:calc(100dvh - 4.25rem - var(--bottom-nav-h) - var(--safe-bottom) - 1.5rem);min-height:0}.page:has(.lobby-root){padding-top:.75rem;padding-bottom:calc(.5rem + var(--bottom-nav-h) + var(--safe-bottom))}.lobby-head{display:flex;align-items:flex-start;justify-content:space-between;gap:.75rem;flex-shrink:0}.lobby-head h1{margin-bottom:.15rem;font-size:clamp(1.15rem,4vw,1.45rem)}.lobby-meta{margin:0;font-size:.88rem}.lobby-piece-inline{color:var(--accent-text);font-weight:600}.user-avatar{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;overflow:hidden;background:var(--avatar-bg, #64748b);color:#fff;font-weight:700;line-height:1;-webkit-user-select:none;user-select:none}.user-avatar img{width:100%;height:100%;object-fit:cover;display:block}.user-avatar.avatar-circle{border-radius:50%}.user-avatar.avatar-soft-square{border-radius:.55rem}.user-avatar.avatar-fallback .avatar-initials{font-size:.72em;letter-spacing:-.02em}.chat-avatar{width:2.05rem;height:2.05rem;font-size:.78rem;align-self:flex-end;margin-bottom:.1rem;box-shadow:0 0 0 1px color-mix(in srgb,var(--line) 80%,transparent)}.presence-avatar{width:2.35rem;height:2.35rem;font-size:.82rem}.presence-strip{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:.45rem;align-items:center}.presence-strip-score{margin:0 0 .55rem;padding:.15rem .1rem}.presence-chip{display:inline-flex;align-items:center;gap:.35rem;padding:.28rem .55rem;border-radius:999px;border:1px solid var(--line);background:var(--bg);font-size:.78rem;line-height:1.2;max-width:100%}.presence-chip-avatar{padding:0;border:none;background:transparent;border-radius:.55rem;position:relative}.presence-chip-avatar.online .presence-avatar{box-shadow:0 0 0 2px color-mix(in srgb,#10b981 55%,transparent)}.presence-chip-avatar.offline{opacity:.55}.presence-chip-avatar.offline .presence-avatar{filter:grayscale(.35)}.presence-chip .presence-name{font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:8rem}.presence-chip .presence-role{color:var(--muted);font-size:.72rem}.presence-dot{width:.45rem;height:.45rem;border-radius:50%;flex-shrink:0;background:#94a3b8}.presence-chip.online .presence-dot{background:#10b981;box-shadow:0 0 0 2px color-mix(in srgb,#10b981 25%,transparent)}.presence-chip.offline{opacity:.72}.presence-chip.offline .presence-dot{background:#94a3b8}.presence-empty{font-size:.82rem;padding:.15rem 0}.lobby-pending{padding:.75rem .85rem;border:1px solid var(--line);border-radius:.75rem;background:var(--bg-soft)}.lobby-pending-title{margin:0 0 .55rem;font-size:.92rem}.reject-reason-box{margin:.75rem 0 0;padding:.85rem .95rem;border-radius:.65rem;border:1px solid var(--line);background:var(--bg-soft)}.reject-reason-box p{margin:.35rem 0 0;white-space:pre-wrap;line-height:1.45}.reject-reason-label{font-size:.78rem;font-weight:600;color:var(--muted)}.lobby-status-sep{color:#cbd5e1;font-weight:500}.lobby-chat-stage{flex:1 1 auto;display:flex;flex-direction:column;min-height:0;overflow:hidden;border:1px solid var(--line);border-radius:var(--radius);background:var(--bg);padding:.65rem;box-shadow:var(--shadow)}.lobby-chat-log{flex:1 1 auto;min-height:0;overflow-x:hidden;overflow-y:auto;-webkit-overflow-scrolling:touch;display:flex;flex-direction:column;gap:.55rem;padding:.25rem .1rem .55rem}.lobby-chat-empty{margin:.5rem 0;flex-shrink:0}.lobby-msg{max-width:92%;align-self:flex-start;flex-shrink:0;display:flex;align-items:flex-end;gap:.45rem;padding:0;border:none;background:transparent}.lobby-msg-col{display:flex;flex-direction:column;gap:.2rem;min-width:0;max-width:100%}.lobby-msg.from-student{align-self:flex-start;flex-direction:row}.lobby-msg.from-teacher{align-self:flex-end;flex-direction:row-reverse}.lobby-msg.mine{box-shadow:none}.lobby-msg-proposal{max-width:min(24rem,96%)}.lobby-msg-proposal .lobby-msg-body{border-style:solid;border-color:color-mix(in srgb,var(--accent) 40%,var(--line));background:#fff;padding:.7rem .8rem .75rem;box-shadow:var(--shadow)}.lobby-msg-proposal.from-teacher .lobby-msg-body{background:#fff}.lobby-msg-proposal.is-playing .lobby-msg-body{border-color:var(--accent);box-shadow:0 0 0 1px color-mix(in srgb,var(--accent) 25%,transparent),var(--shadow-md)}.proposal-card{display:flex;flex-direction:column;gap:.55rem}.proposal-card-top{display:flex;align-items:flex-start;gap:.65rem}.proposal-note-icon{flex-shrink:0;width:2.35rem;height:2.35rem;display:inline-grid;place-items:center;border-radius:.65rem;background:var(--accent-soft);color:var(--accent)}.proposal-note-icon svg{width:1.15rem;height:1.15rem;display:block}.proposal-card-text{min-width:0;flex:1}.proposal-title{font-weight:650;margin-bottom:.2rem;line-height:1.35;font-size:.95rem;word-break:break-word}.proposal-meta{font-size:.75rem;color:var(--muted);font-weight:500}.proposal-start{width:100%;margin:.1rem 0 0;font-weight:700}.proposal-wait{margin:0;font-size:.82rem;line-height:1.4}.proposal-card .proposal-preview-btn{align-self:flex-start;padding-left:0;color:var(--muted);font-weight:550}.proposal-player{display:grid;gap:.4rem;margin:0;padding:.15rem 0 .1rem;background:transparent}.proposal-player[hidden]{display:none!important}.proposal-wave-svg{display:block;width:100%;height:2.6rem;overflow:visible}.proposal-wave-glow{stroke:color-mix(in srgb,var(--accent) 45%,transparent);opacity:.55;filter:blur(2.2px)}.proposal-wave-path{stroke:var(--accent);opacity:.92}.proposal-progress{position:relative;height:.22rem;border-radius:999px;background:color-mix(in srgb,var(--accent) 16%,transparent);overflow:hidden}.proposal-progress-fill{display:block;height:100%;width:0%;border-radius:inherit;background:linear-gradient(90deg,color-mix(in srgb,var(--accent) 55%,#99f6e4),var(--accent));transition:width 80ms linear}.proposal-foot{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.35rem .65rem;padding-top:.45rem;border-top:1px solid color-mix(in srgb,var(--accent) 22%,var(--line))}.proposal-badge{font-size:.7rem;font-weight:700;letter-spacing:.02em;color:var(--accent-text);background:var(--accent-soft);border-radius:.35rem;padding:.18rem .45rem}.proposal-btns{display:inline-flex;align-items:center;gap:.2rem}.proposal-sep{color:var(--line-strong);font-size:.85rem;-webkit-user-select:none;user-select:none}.proposal-btn{appearance:none;border:none;background:transparent;color:var(--accent);font:inherit;font-size:.82rem;font-weight:650;padding:.25rem .35rem;min-height:2rem;border-radius:.4rem;cursor:pointer;box-shadow:none}.proposal-btn:hover:not(:disabled){background:var(--accent-soft);text-decoration:underline}.proposal-btn:disabled{opacity:.55;cursor:default}.lobby-msg-proposal.is-playing .proposal-preview-btn{color:var(--danger)}.lobby-msg-system{align-self:center;background:transparent;border:none;color:var(--muted);font-size:.85rem}.lobby-msg-meta{font-size:.72rem;color:var(--muted);margin-bottom:0;font-weight:600}.lobby-msg.from-teacher .lobby-msg-meta{text-align:right}.lobby-msg-body{font-size:.92rem;word-break:break-word;padding:.45rem .65rem;border-radius:.65rem;background:#fff;border:1px solid var(--line)}.lobby-msg-chat.from-teacher .lobby-msg-body{background:var(--accent-soft);border-color:color-mix(in srgb,var(--accent) 35%,var(--line))}.lobby-msg-system .lobby-msg-body{padding:0;border:none;background:transparent}.lobby-chat-error{margin:0 0 .35rem;color:var(--danger);font-size:.85rem;flex-shrink:0}.lobby-chat-form{display:grid;grid-template-columns:1fr auto;gap:.4rem;align-items:center;flex-shrink:0;margin-top:0;padding-top:.55rem;border-top:1px solid var(--line)}.chat-compose{display:flex;align-items:center;gap:.15rem;min-width:0;min-height:var(--touch);padding:.15rem .35rem .15rem .2rem;border:1px solid var(--line);border-radius:.75rem;background:#fff;box-shadow:var(--shadow)}.chat-compose:focus-within{outline:2px solid color-mix(in srgb,var(--accent) 45%,transparent);border-color:var(--accent)}.lobby-chat-form input{flex:1;width:100%;min-width:0;min-height:calc(var(--touch) - .3rem);height:calc(var(--touch) - .3rem);border:none;border-radius:.5rem;padding:0 .45rem 0 .15rem;font:inherit;background:transparent;box-shadow:none;resize:none}.lobby-chat-form input:focus{outline:none}.chat-plus{width:2.35rem;height:2.35rem;min-height:2.35rem;flex-shrink:0;padding:0;display:inline-flex;align-items:center;justify-content:center;border:none;border-radius:.55rem;background:transparent;color:var(--muted);box-shadow:none;cursor:pointer}.chat-plus:hover{color:var(--accent);background:var(--accent-soft)}.chat-plus svg{width:1.2rem;height:1.2rem;fill:currentColor}.chat-send{min-width:4.25rem;padding-left:.85rem;padding-right:.85rem}.lobby-playlist-hint{margin:0 0 .55rem;font-size:.85rem}.piece-search{display:flex;align-items:center;gap:.4rem;margin:.35rem 0 .85rem;padding:.45rem .65rem;border:1px solid var(--line);border-radius:.75rem;background:var(--bg-soft)}.piece-search:focus-within{border-color:var(--accent);background:#fff;outline:2px solid color-mix(in srgb,var(--accent) 30%,transparent)}.piece-search-icon{color:var(--muted);font-size:1rem;line-height:1}.piece-search input{flex:1;min-width:0;border:none;background:transparent;box-shadow:none;padding:.2rem 0;font:inherit;min-height:1.75rem}.piece-search input:focus{outline:none}.piece-section-title{margin:0 0 .45rem;font-size:.82rem;font-weight:700;color:var(--muted);letter-spacing:.01em}.piece-recent{margin-bottom:.85rem}.piece-recent-row{display:flex;gap:.55rem;overflow-x:auto;-webkit-overflow-scrolling:touch;padding:.1rem .1rem .35rem;scroll-snap-type:x proximity}.piece-recent-card{flex:0 0 auto;width:5.5rem;display:flex;flex-direction:column;align-items:stretch;gap:.35rem;padding:0;border:none;background:transparent;box-shadow:none;cursor:pointer;text-align:left;color:inherit;font:inherit;scroll-snap-align:start}.piece-recent-thumb{display:grid;place-items:center;width:5.5rem;height:5.5rem;border-radius:.85rem;overflow:hidden;border:1.5px solid var(--line);background:linear-gradient(145deg,color-mix(in srgb,var(--tone-4) 35%,var(--tone-5)),var(--tone-5) 55%,#fff)}.piece-recent-thumb img{width:100%;height:100%;object-fit:cover}.piece-recent-fallback{display:inline-flex;align-items:center;justify-content:center;color:var(--accent)}.piece-recent-fallback svg{width:1.35rem;height:1.35rem;display:block}.piece-recent-card.is-selected .piece-recent-thumb,.lobby-work.selected{border-color:var(--accent);background:var(--accent-soft)}.piece-recent-title{font-size:.72rem;font-weight:600;line-height:1.25;display:-webkit-box;line-clamp:2;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;color:var(--fg, #0f172a)}.lobby-work-list{overflow-y:auto;-webkit-overflow-scrolling:touch;max-height:min(42dvh,20rem);margin:0 0 .55rem}.lobby-work.selected{border-color:var(--accent);background:var(--accent-soft)}.modal-backdrop{position:fixed;inset:0;z-index:60;display:flex;align-items:flex-end;justify-content:center;padding:.75rem;padding-bottom:calc(.75rem + var(--bottom-nav-h, 0px) + var(--safe-bottom));background:#0f172a59;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.modal-backdrop[hidden]{display:none!important}@media(min-width:640px){.modal-backdrop{align-items:center;padding-bottom:.75rem}}.modal-sheet{width:min(28rem,100%);max-height:min(84dvh,40rem);overflow:auto;-webkit-overflow-scrolling:touch;background:#fff;border:1px solid var(--line);border-radius:1rem;padding:1rem 1.05rem 1.1rem;box-shadow:var(--shadow-md)}.modal-sheet h2{margin:0 0 .4rem;font-family:var(--display);font-size:1.2rem}.modal-sheet-head{display:flex;align-items:center;justify-content:space-between;gap:.5rem;margin-bottom:.35rem}.modal-sheet-head h2{margin:0}.modal-actions{margin-top:.75rem}.modal-primary{width:100%;margin-top:.35rem}.room-list{list-style:none;margin:.65rem 0 0;padding:0;display:flex;flex-direction:column;gap:.7rem}.student-rooms,.teacher-create{display:flex;flex-direction:column;gap:1rem;width:min(28rem,100%);margin:0 auto}.teacher-create-head h1{margin-bottom:.25rem}.teacher-create-head .lede{margin:0}.teacher-create-form{display:flex;flex-direction:column;gap:.9rem}.room-preview{display:flex;flex-direction:column;gap:.55rem;margin-top:.15rem}.room-preview-label{margin:0;font-size:.88rem;font-weight:650;color:var(--accent-text)}.room-preview-card{pointer-events:none;box-shadow:none;background:var(--bg-soft)}.room-preview-card:hover,.room-preview-card:focus-within{border-color:var(--line);background:var(--bg-soft)}.teacher-create-submit{width:100%;margin-top:.25rem}.student-pick-btn{display:flex;align-items:center;justify-content:space-between;gap:.5rem;width:100%;min-height:var(--touch);margin-top:.35rem;padding:.65rem .75rem;border:1px solid var(--line);border-radius:.75rem;background:var(--bg);color:inherit;font:inherit;text-align:left;cursor:pointer;touch-action:manipulation}.student-pick-btn:disabled{opacity:.55;cursor:not-allowed}.student-pick-label{flex:1;min-width:0;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.student-pick-label.is-selected{color:inherit;font-weight:600}.student-pick-chevron{flex-shrink:0;color:var(--muted);display:grid;place-items:center}.student-pick-modal.modal-backdrop{align-items:flex-start;padding-top:calc(.75rem + env(safe-area-inset-top,0px))}@media(min-width:640px){.student-pick-modal.modal-backdrop{align-items:flex-start;padding-top:1.25rem}}.student-pick-modal .modal-sheet{display:flex;flex-direction:column;gap:.65rem;max-height:min(78dvh,36rem);overflow:hidden;margin-top:0}.student-pick-search{display:flex;align-items:center;gap:.55rem;min-height:var(--touch);padding:0 .75rem;border:1px solid var(--line);border-radius:999px;background:var(--bg-soft)}.student-pick-search-ico{flex-shrink:0;display:grid;place-items:center;color:var(--muted)}.student-pick-search input{flex:1;min-width:0;border:none;background:transparent;padding:.7rem 0;font:inherit;color:inherit;outline:none}.student-pick-search input:disabled{opacity:.6}.student-pick-search input::placeholder{color:var(--muted)}.student-pick-list{flex:1;min-height:0;overflow-y:auto;-webkit-overflow-scrolling:touch;display:flex;flex-direction:column;gap:.15rem;margin:0 -.15rem}.student-pick-loading{margin:.75rem 0;text-align:center}.student-pick-item{display:flex;align-items:center;gap:.7rem;width:100%;min-height:var(--touch);text-align:left;border:none;background:transparent;border-radius:.65rem;padding:.55rem .65rem;cursor:pointer;color:inherit;touch-action:manipulation}.student-pick-item:active,.student-pick-item[aria-selected=true]{background:var(--accent-soft)}.student-pick-copy{display:flex;flex-direction:column;gap:.1rem;min-width:0}.student-pick-copy strong{font-size:.95rem}.student-pick-copy .muted{font-size:.75rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.student-pick-empty{margin:.35rem 0 0;text-align:center}.student-rooms-head h1{margin-bottom:.25rem}.student-rooms-head .lede{margin:0}.pin-join-row{display:flex;align-items:center;gap:.5rem;width:100%;margin:0}.pin-join-label{flex:0 0 auto;font-size:.88rem;font-weight:600;color:var(--muted);white-space:nowrap}.pin-join-input{flex:1 1 auto;min-width:0;min-height:var(--touch);padding:.55rem .75rem;border:1px solid var(--line-strong);border-radius:.65rem;background:#fff;color:var(--text);font:inherit;font-size:1rem;font-variant-numeric:tabular-nums;letter-spacing:.08em}.pin-join-input::placeholder{letter-spacing:0;color:var(--muted)}.pin-join-input:focus{outline:2px solid color-mix(in srgb,var(--accent) 45%,transparent);border-color:var(--accent)}.pin-join-submit{flex:0 0 auto;margin:0;min-height:var(--touch);padding-inline:.9rem;white-space:nowrap}.open-rooms-section{margin-top:.15rem}.open-rooms-toolbar{display:flex;align-items:center;justify-content:space-between;gap:.75rem;margin-bottom:.15rem}.open-rooms-title{display:inline-flex;align-items:center;gap:.4rem;margin:0;font-size:1rem;font-weight:700;color:var(--text)}.open-rooms-icon{display:inline-flex;color:var(--accent)}.open-rooms-refresh{display:inline-flex;align-items:center;gap:.3rem;min-height:2.25rem;padding:.35rem .65rem;font-size:.85rem;color:var(--muted)}.open-rooms-refresh:disabled{opacity:.55}.open-rooms-empty{margin:.75rem 0 0;padding:.9rem .2rem;text-align:center}.room-card{display:flex;flex-direction:column;align-items:stretch;gap:.75rem;width:100%;text-align:left;padding:.9rem;border:1px solid var(--line);border-radius:.9rem;background:var(--bg);color:inherit;font:inherit;box-shadow:var(--shadow);cursor:default;min-height:auto}.room-card-open{transition:border-color .15s ease,background .15s ease}.room-card-open:hover,.room-card-open:focus-within{border-color:var(--accent);background:color-mix(in srgb,var(--accent-soft) 55%,#fff)}.room-card-body{display:flex;align-items:flex-start;gap:.75rem}.room-card-thumb{flex:0 0 3rem;width:3rem;height:3rem;border-radius:.7rem;display:grid;place-items:center;color:var(--accent-text);background:color-mix(in srgb,var(--accent) 16%,#fff);overflow:hidden}.room-card-thumb.is-avatar{padding:0;background:var(--bg-soft)}.room-card-thumb.is-avatar img{width:100%;height:100%;object-fit:cover;display:block}.room-card-thumb.is-fallback{background:color-mix(in srgb,var(--accent) 18%,#fff);color:var(--accent-text);font-weight:700;font-size:1.05rem}.room-card-open.tone-1 .room-card-thumb{color:var(--tone-2);background:color-mix(in srgb,var(--tone-4) 55%,var(--tone-5))}.room-card-open.tone-2 .room-card-thumb{color:var(--tone-1);background:color-mix(in srgb,var(--tone-3) 35%,var(--tone-5))}.room-card-copy{min-width:0;flex:1;display:flex;flex-direction:column;gap:.15rem}.room-card-title{font-family:var(--font);font-weight:700;font-size:1.02rem;line-height:1.3}.room-card-sub{color:var(--muted);font-size:.86rem}.room-card-desc{margin:.2rem 0 0;color:var(--muted);font-size:.84rem;line-height:1.4;display:-webkit-box;line-clamp:2;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.room-card-capacity{display:inline-flex;align-items:center;gap:.28rem;margin-top:.4rem;color:var(--muted);font-size:.82rem;font-variant-numeric:tabular-nums}.room-card-capacity svg{opacity:.75}.room-card-meta{display:flex;flex-wrap:wrap;gap:.35rem .75rem;width:100%;margin-top:.25rem;font-size:.85rem;color:var(--text);justify-content:space-between}.room-card-pin{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;letter-spacing:.06em;color:var(--accent-text);font-weight:600}.room-card-join{width:100%;margin:0}.lobby-grid{display:grid;grid-template-columns:1fr;gap:1.25rem;margin-top:1rem}@media(min-width:640px){.lobby-grid{grid-template-columns:repeat(2,1fr)}}.section-title{font-size:.9rem;margin:0 0 .5rem;color:var(--muted);font-weight:600}.plain-list{margin:0;padding-left:1.1rem;line-height:1.75}.modal-card{margin-top:1.25rem;padding:1rem 1.1rem;border:1px solid color-mix(in srgb,var(--accent) 40%,var(--line));background:var(--accent-soft);border-radius:var(--radius)}.modal-card h2{margin:0 0 .4rem;font-family:var(--display);font-size:1.15rem;color:var(--accent-text)}.join-wait-root{display:flex;flex-direction:column;gap:1rem}.join-pin-card{padding:1.1rem 1.15rem;border:1px solid var(--line);border-radius:.85rem;background:color-mix(in srgb,var(--accent) 8%,var(--bg))}.join-pin-label{font-size:.75rem;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}.join-pin-code{display:flex;align-items:center;gap:.65rem;margin:.35rem 0 .5rem}.join-pin-code strong{font-size:1.85rem;letter-spacing:.18em;font-variant-numeric:tabular-nums}.join-request-panel h2{margin:0 0 .65rem;font-size:1.05rem}.join-request-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.55rem}.join-request-row{display:flex;align-items:center;justify-content:space-between;gap:.75rem;padding:.85rem .95rem;border:1px solid var(--line);border-radius:.75rem;background:var(--surface, var(--bg))}.join-request-row .btn-row{flex-shrink:0;margin:0}.join-wait-card{padding:1.25rem 1.15rem;border:1px solid var(--line);border-radius:.85rem;display:flex;flex-direction:column;gap:.55rem}.join-wait-badge{display:inline-block;margin:.25rem 0 0;padding:.45rem .75rem;border-radius:.5rem;background:color-mix(in srgb,var(--accent) 14%,transparent);color:var(--accent-text, var(--accent));font-weight:600;font-size:.92rem;text-align:center}.join-wait-pulse{margin:.55rem 0 0;min-height:1.4em;color:var(--accent-text);font-size:.92rem;font-weight:500;line-height:1.4;text-align:center}.join-wait-pulse.is-tick{animation:join-wait-fade .45s ease}@keyframes join-wait-fade{0%{opacity:.35}to{opacity:1}}@media(max-width:720px){.page{padding:1rem .9rem 1.5rem}.page.page-score{padding:0 3% 3%;width:100%;max-width:none}.page-with-bottom-nav{padding-bottom:calc(1rem + var(--bottom-nav-h) + var(--safe-bottom))}.btn-row>button.primary,.btn-row>button[data-go],form:not(.pin-join-row) .primary{width:100%}.bottom-nav-label{font-size:.58rem}}@media(min-width:721px){.page{width:min(44rem,100%);padding:1.75rem 1.25rem 2.5rem}.page.page-score{width:100%;max-width:none;padding:0 3% 3%;margin:0}.page-with-bottom-nav{padding-bottom:calc(1.75rem + var(--bottom-nav-h) + var(--safe-bottom))}.role-grid{gap:.9rem}.bottom-nav{left:50%;right:auto;width:min(44rem,100%);transform:translate(-50%);border:none}.bottom-nav-inner{max-width:28rem}}.cal-page{--cal-lesson-schedule: #b94848;--cal-orange: var(--tone-2);--cal-orange-soft: color-mix(in srgb, var(--tone-4) 55%, var(--tone-5));--cal-practice: #d4a91f;--cal-lesson-history: #7652b8;--cal-gray: var(--tone-3);--cal-navy: var(--tone-1);position:relative;width:100%;max-width:52rem;min-height:calc(100dvh - 4.5rem - var(--bottom-nav-h) - var(--safe-bottom) - 2rem);margin:0 auto;padding-bottom:0;display:flex;flex-direction:column}.cal-hero{display:grid;gap:.85rem;margin-bottom:.55rem}.cal-today-btn{min-height:1.75rem;padding:.25rem .58rem;border:none;border-radius:999px;background:transparent;color:var(--text);font:inherit;font-size:.7rem;font-weight:700;cursor:pointer}.cal-today-btn.is-on{background:var(--bg-soft)}.cal-month-head{display:grid;grid-template-columns:2.75rem 1fr 2.75rem;align-items:center;gap:.5rem}.cal-month-center{display:flex;align-items:center;justify-content:center;gap:.35rem;min-width:0}.cal-nav-btn{width:2.75rem;height:2.5rem;border:none;border-radius:.8rem;background:var(--bg-soft);font-size:1.45rem;color:var(--cal-navy);cursor:pointer;line-height:1}.cal-month-title{text-align:center;font-size:.7rem;font-weight:700;letter-spacing:-.03em;white-space:nowrap}.cal-icon-btn,.cal-perf-btn{flex:none;display:grid;place-items:center;width:2.2rem;height:2.2rem;min-width:2.2rem;min-height:2.2rem;max-width:2.2rem;max-height:2.2rem;padding:0;border:none;border-radius:.65rem;background:transparent;color:var(--text);box-shadow:none;box-sizing:border-box;cursor:pointer}.cal-icon-btn svg{width:1.05rem;height:1.05rem;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.cal-icon-btn.is-on{background:var(--accent-soft);color:var(--accent-text)}.cal-perf-btn{font:inherit;font-size:.64rem;font-weight:800;letter-spacing:-.05em;white-space:nowrap}.cal-perf-btn.is-on{background:var(--cal-orange);color:#fff}.cal-view-toggle{position:relative;overflow:hidden}.cal-view-icon{position:absolute;inset:0;display:grid;place-items:center;transform:translate(120%);opacity:0;pointer-events:none}.cal-view-icon.is-current{transform:translate(0);opacity:1}.cal-view-icon.is-enter{transform:translate(120%);opacity:0;transition:none}.cal-view-icon.is-out{transform:translate(-120%);opacity:0;transition:transform 2s cubic-bezier(.22,1,.36,1),opacity 2s ease}.cal-view-icon.is-in{transform:translate(0);opacity:1;transition:transform 2s cubic-bezier(.22,1,.36,1),opacity 2s ease}@media(prefers-reduced-motion:reduce){.cal-view-icon.is-out,.cal-view-icon.is-in{transition:none}}.cal-dot,.cal-mark{width:.5rem;height:.5rem;border-radius:50%;display:inline-block}.cal-dot.lesson_schedule,.cal-mark.lesson_schedule{background:var(--cal-lesson-schedule)}.cal-dot.performance,.cal-mark.performance{background:var(--cal-orange)}.cal-dot.solo,.cal-mark.solo{background:var(--cal-practice)}.cal-dot.sasa,.cal-mark.sasa{background:var(--cal-lesson-history)}.cal-grid-wrap{flex:1;display:flex;flex-direction:column;border:none;border-radius:0;overflow:visible;background:transparent;box-shadow:none}.cal-grid-wrap[hidden],.cal-list[hidden]{display:none!important}.cal-weekdays{display:grid;grid-template-columns:repeat(7,1fr);height:2.75rem;align-items:center;color:var(--muted);font-size:.78rem;font-weight:600;border-bottom:none;text-align:center}.cal-weekdays .is-weekend{color:var(--cal-lesson-schedule)}.cal-weeks{flex:1;display:grid;grid-template-rows:repeat(6,minmax(min-content,1fr));gap:.3rem}.cal-week-row{display:grid;grid-template-columns:repeat(7,1fr);min-height:calc(3.8rem + (var(--cal-week-events, 1) * 1.15rem));border-bottom:none}.cal-week-row:last-child{border-bottom:0}.cal-cell{position:relative;min-width:0;min-height:100%;padding:.35rem .12rem .45rem;border:0;border-right:none;background:transparent;color:inherit;display:flex;flex-direction:column;align-items:stretch;gap:.38rem}.cal-cell:last-child{border-right:0}.cal-cell.other-month{visibility:hidden;pointer-events:none}.cal-cell.selected{background:transparent}.cal-num{display:grid;place-items:center;flex:none;width:2.55rem;height:2.55rem;min-width:2.55rem;min-height:2.55rem;max-width:2.55rem;max-height:2.55rem;margin:0 auto;padding:0;border:1.5px solid transparent;border-radius:.78rem;background:transparent;color:inherit;font:inherit;font-size:1.32rem;font-weight:500;line-height:1;cursor:pointer;box-sizing:border-box;box-shadow:none;aspect-ratio:1}.cal-cell.is-sun .cal-num{color:var(--cal-lesson-schedule)}.cal-cell.is-today .cal-num{border-color:var(--text);font-weight:700}.cal-cell.selected .cal-num{border-color:transparent;background:var(--accent-soft);color:var(--text);font-weight:700}.cal-cell.selected.is-sun .cal-num{background:color-mix(in srgb,var(--cal-lesson-schedule) 12%,var(--bg));border-color:transparent;color:var(--cal-lesson-schedule)}.cal-cell-events{display:grid;gap:.08rem;min-width:0}.cal-bar{width:100%;min-height:1rem;padding:0;overflow:hidden;border:none;border-radius:0;background:transparent;color:var(--text);font:inherit;font-size:.6rem;font-weight:650;letter-spacing:-.03em;line-height:1.35;text-align:center;text-overflow:ellipsis;white-space:nowrap;cursor:pointer}.cal-bar.lesson_schedule{background:transparent;color:var(--cal-lesson-schedule)}.cal-bar.solo{background:transparent;color:#2f6fb4}.cal-bar.sasa{background:transparent;color:var(--cal-lesson-history)}.cal-bar.performance{background:transparent;color:#d96d28}.cal-grid-wrap.is-revealing-bars .cal-bar{animation:cal-bar-rise .8s cubic-bezier(.22,1,.36,1) both}@keyframes cal-bar-rise{0%{opacity:0;transform:translateY(.75rem)}to{opacity:1;transform:translateY(0)}}.cal-bar.is-canceled{opacity:.5;text-decoration:line-through}@media(prefers-reduced-motion:reduce){.cal-grid-wrap.is-revealing-bars .cal-bar{animation:none}}.cal-list{display:grid;gap:1.25rem}.cal-list-day{padding:.7rem 0;background:transparent}.cal-list-day h3{display:flex;align-items:center;gap:.55rem;margin:0 0 .7rem;color:var(--text);font-weight:700}.cal-list-day h3:after{content:"";flex:1;height:1px;background:color-mix(in srgb,var(--line) 65%,transparent)}.cal-list-day h3 b{font-family:var(--display);font-size:1.15rem;font-weight:600;letter-spacing:.02em}.cal-list-day h3 span{color:var(--muted);font-size:.72rem;font-weight:600}.cal-list-item{width:100%;min-height:3.1rem;display:flex;align-items:center;gap:.65rem;padding:.4rem .1rem;border:none;border-bottom:1px solid color-mix(in srgb,var(--line) 45%,transparent);background:transparent;color:inherit;text-align:left;font:inherit;cursor:pointer}.cal-list-item:last-child{border-bottom:none}.cal-list-item>span{min-width:0;display:grid;gap:.12rem}.cal-list-item strong{overflow:hidden;font-size:.86rem;text-overflow:ellipsis;white-space:nowrap}.cal-list-item small{color:var(--muted);font-size:.68rem}.cal-list-item.is-canceled{opacity:.55}.cal-list-item.is-canceled strong{text-decoration:line-through}.cal-timeline{display:grid}.cal-timeline-row{min-height:4.7rem;display:grid;grid-template-columns:3.45rem 1.25rem minmax(0,1fr);align-items:stretch}.cal-timeline-time{padding-top:.85rem;color:var(--muted);font-size:.76rem;font-weight:650;font-variant-numeric:tabular-nums;text-align:right}.cal-timeline-rail{position:relative;display:block}.cal-timeline-rail:before{content:"";position:absolute;top:0;bottom:0;left:50%;width:1px;background:color-mix(in srgb,var(--line-strong) 58%,transparent);transform:translate(-50%)}.cal-timeline-row:first-child .cal-timeline-rail:before{top:1.12rem}.cal-timeline-row:last-child .cal-timeline-rail:before{bottom:calc(100% - 1.12rem)}.cal-timeline-node{position:absolute;z-index:1;top:.8rem;left:50%;width:.68rem;height:.68rem;border:2px solid var(--bg);border-radius:50%;background:var(--muted);box-shadow:0 0 0 1px color-mix(in srgb,var(--muted) 45%,transparent);transform:translate(-50%)}.cal-timeline-node.lesson_schedule{background:var(--cal-lesson-schedule)}.cal-timeline-node.solo{background:var(--cal-practice)}.cal-timeline-node.sasa{background:var(--cal-lesson-history)}.cal-list-item.cal-timeline-item{min-width:0;min-height:4.7rem;display:grid;grid-template-columns:minmax(0,1fr);align-items:start;gap:.65rem;padding:.68rem .15rem .72rem .7rem;border-bottom:1px solid color-mix(in srgb,var(--line) 48%,transparent)}.cal-timeline-row:last-child .cal-timeline-item{border-bottom:none}.cal-timeline-copy{min-width:0;display:grid;gap:.18rem}.cal-timeline-item strong{font-size:.88rem;font-weight:750}.cal-timeline-item small{overflow:hidden;color:var(--muted);font-size:.7rem;line-height:1.45;text-overflow:ellipsis;white-space:nowrap}.cal-duration{justify-self:start;margin-top:.12rem;padding:.2rem .48rem;border:1px solid var(--line);border-radius:999px;color:var(--muted);font-size:.66rem;font-style:normal;font-weight:650;line-height:1.25;white-space:nowrap}.cal-performance-list{padding-left:.15rem}.cal-list-empty{padding:2.4rem 1rem;color:var(--muted);font-size:.82rem;text-align:center}.cal-status{margin:.65rem 0 0;font-size:.78rem;min-height:1.2em}.cal-fab{position:fixed;right:1.1rem;bottom:calc(1.15rem + var(--bottom-nav-h) + var(--safe-bottom));z-index:24;width:3.5rem;height:3.5rem;border:none;border-radius:50%;background:var(--bg-elev);color:var(--text);font:inherit;font-size:2rem;font-weight:200;line-height:1;box-shadow:0 4px 14px color-mix(in srgb,var(--tone-1) 16%,transparent),0 10px 28px color-mix(in srgb,var(--tone-1) 12%,transparent);cursor:pointer}.cal-filter-sheet{width:min(18rem,100%);padding:.8rem;border-radius:1rem}.cal-filter-sheet-head{display:flex;align-items:center;justify-content:space-between;gap:.5rem;margin-bottom:.3rem}.cal-filter-sheet-head>strong{font-size:.9rem}.cal-filter-close{flex:none;display:grid;place-items:center;width:1.75rem;height:1.75rem;min-width:1.75rem;min-height:1.75rem;max-width:1.75rem;max-height:1.75rem;padding:0;border:none;border-radius:50%;background:var(--bg-soft);color:var(--muted);box-sizing:border-box;font:inherit;font-size:1.1rem;line-height:1;cursor:pointer}.cal-filter-options{display:grid;gap:.15rem}.cal-filter-option{width:100%;height:2.45rem;min-height:2.45rem;max-height:2.45rem;display:grid;grid-template-columns:minmax(0,1fr) 2rem;align-items:center;gap:.5rem;padding:0 .65rem;border:none;border-radius:.65rem;background:transparent;color:inherit;font:inherit;font-size:.82rem;font-weight:650;text-align:left;box-sizing:border-box;cursor:pointer}.cal-filter-option b{color:var(--muted);font-size:.72rem;font-variant-numeric:tabular-nums;text-align:right}.cal-filter-option.is-on{background:var(--accent-soft);color:var(--accent-text)}.cal-filter-option.is-on b{color:var(--accent-text)}.cal-modal{--cal-lesson-schedule: #b94848;--cal-orange: var(--tone-2);--cal-orange-soft: color-mix(in srgb, var(--tone-4) 55%, var(--tone-5));--cal-practice: #d4a91f;--cal-lesson-history: #7652b8;--cal-gray: var(--tone-3);--cal-navy: var(--tone-1);position:fixed;inset:0;z-index:60;display:flex;align-items:center;justify-content:center;padding:1.25rem;background:#101a3400;opacity:0;pointer-events:none;transition:background .28s ease,opacity .28s ease}.cal-modal.show{background:#101a3466;opacity:1;pointer-events:auto}.cal-modal[hidden]{display:none!important}.cal-sheet{width:min(28rem,100%);background:#fff;border-radius:1.25rem;padding:1rem 1.15rem 1.25rem;max-height:min(82dvh,36rem);overflow-y:auto;transform:translateY(.75rem) scale(.97);opacity:0;transition:transform .3s cubic-bezier(.22,1,.36,1),opacity .28s ease;will-change:transform,opacity;box-shadow:0 16px 48px #101a342e}.cal-modal.show .cal-sheet{transform:translateY(0) scale(1);opacity:1}.cal-schedule-sheet{width:min(29rem,100%);overflow:hidden}#cal-schedule-editor-panel{display:flex;flex-direction:column;max-height:calc(min(82dvh,36rem) - 2.25rem)}#cal-schedule-editor-panel[hidden]{display:none}.cal-schedule-fields{min-height:0;overflow-y:auto;overscroll-behavior:contain;padding-right:.15rem}.cal-schedule-form-head{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;margin-bottom:1rem}.cal-schedule-close{flex:none;display:grid;place-items:center;width:2rem;height:2rem;min-width:2rem;min-height:2rem;max-width:2rem;max-height:2rem;padding:0;border:none;border-radius:50%;background:var(--bg-soft);color:var(--muted);box-sizing:border-box;font:inherit;font-size:1.3rem;line-height:1;cursor:pointer}.cal-student-picker-trigger{width:100%;min-height:2.9rem;display:flex;align-items:center;gap:.55rem;padding:.42rem .7rem;border:1px solid var(--line);border-radius:.72rem;background:var(--bg);color:var(--text);text-align:left;font:inherit;cursor:pointer}.cal-student-picker-trigger>svg,.cal-student-search>svg{flex:none;width:1rem;height:1rem;fill:none;stroke:var(--muted);stroke-width:1.8;stroke-linecap:round}.cal-student-picker-trigger>span{flex:1;min-width:0;display:flex;align-items:center;gap:.55rem}.cal-student-picker-trigger>span strong{overflow:hidden;font-size:.84rem;text-overflow:ellipsis;white-space:nowrap}.cal-student-picker-trigger>i{color:var(--muted);font-size:1rem;font-style:normal}.cal-student-picker-trigger:disabled{cursor:default;opacity:1}.cal-student-placeholder{color:var(--muted);font-size:.82rem;font-weight:600}.cal-student-picker-panel{min-height:25rem}.cal-student-picker-head{display:grid;grid-template-columns:2rem 1fr 2rem;align-items:center;gap:.65rem;margin-bottom:.85rem}.cal-student-picker-head>strong{font-size:1rem;text-align:center}.cal-student-picker-back,.cal-time-wheel-back{width:2rem;height:2rem;padding:0;border:none;background:transparent;color:var(--text);font:inherit;font-size:1.55rem;line-height:1;cursor:pointer}.cal-student-search{display:flex;align-items:center;gap:.55rem;min-height:2.8rem;padding:0 .75rem;border:1px solid var(--line);border-radius:.8rem;background:var(--bg-soft)}.cal-student-search:focus-within{border-color:color-mix(in srgb,var(--cal-lesson-schedule) 60%,var(--line));box-shadow:0 0 0 3px color-mix(in srgb,var(--cal-lesson-schedule) 10%,transparent)}.cal-student-search input{flex:1;min-width:0;border:none;outline:none;background:transparent;color:var(--text);font:inherit;font-size:.84rem;font-weight:650}.cal-student-list{display:grid;max-height:min(55dvh,22rem);margin-top:.65rem;overflow-y:auto}.cal-student-item{width:100%;min-height:3.75rem;display:flex;align-items:center;gap:.7rem;padding:.55rem .45rem;border:none;border-bottom:1px solid color-mix(in srgb,var(--line) 55%,transparent);background:transparent;color:var(--text);text-align:left;font:inherit;cursor:pointer}.cal-student-item:last-child{border-bottom:none}.cal-student-item:active,.cal-student-item.is-selected{background:color-mix(in srgb,var(--cal-lesson-schedule) 7%,transparent)}.cal-student-item>span:not(.cal-student-avatar){flex:1;min-width:0;display:grid;gap:.14rem}.cal-student-item strong,.cal-student-item small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cal-student-item strong{font-size:.86rem}.cal-student-item small{color:var(--muted);font-size:.68rem}.cal-student-item>i{color:var(--cal-lesson-schedule);font-size:.95rem;font-style:normal;font-weight:800}.cal-student-avatar{flex:none;width:2.35rem;height:2.35rem;display:grid;place-items:center;overflow:hidden;border-radius:50%;background:color-mix(in srgb,var(--cal-lesson-schedule) 12%,var(--bg-soft));color:var(--cal-lesson-schedule);font-size:.82rem;font-weight:800}.cal-student-picker-trigger .cal-student-avatar{width:1.8rem;height:1.8rem;font-size:.7rem}.cal-student-avatar img{width:100%;height:100%;object-fit:cover}.cal-student-empty{margin:2.5rem 0 0;color:var(--muted);font-size:.78rem;text-align:center}.cal-work-picker-trigger{width:100%;min-height:2.9rem;display:flex;align-items:center;gap:.6rem;padding:.42rem .7rem;border:1px solid var(--line);border-radius:.72rem;background:var(--bg);color:var(--text);text-align:left;font:inherit;cursor:pointer}.cal-work-picker-trigger>span{flex:1;min-width:0;display:flex;align-items:center;gap:.6rem}.cal-work-picker-trigger strong{overflow:hidden;font-size:.84rem;text-overflow:ellipsis;white-space:nowrap}.cal-work-picker-trigger>i{color:var(--muted);font-size:1rem;font-style:normal}.cal-work-picker-trigger:disabled{cursor:default;opacity:.65}.cal-work-picker-panel{min-height:25rem}.cal-work-picker-back{width:2rem;height:2rem;padding:0;border:none;background:transparent;color:var(--text);font:inherit;font-size:1.55rem;line-height:1;cursor:pointer}.cal-work-list{display:grid;max-height:min(55dvh,22rem);margin-top:.65rem;overflow-y:auto}.cal-work-item{width:100%;min-height:4.25rem;display:flex;align-items:center;gap:.7rem;padding:.5rem .45rem;border:none;border-bottom:1px solid color-mix(in srgb,var(--line) 55%,transparent);background:transparent;color:var(--text);text-align:left;font:inherit;cursor:pointer}.cal-work-item:last-child{border-bottom:none}.cal-work-item:active,.cal-work-item.is-selected{background:color-mix(in srgb,var(--cal-lesson-schedule) 7%,transparent)}.cal-work-item>span:not(.cal-work-cover){flex:1;min-width:0;display:grid;gap:.14rem}.cal-work-item strong,.cal-work-item small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cal-work-item strong{font-size:.86rem}.cal-work-item small{color:var(--muted);font-size:.68rem}.cal-work-item>i{color:var(--cal-lesson-schedule);font-style:normal;font-weight:800}.cal-work-cover{flex:none;width:2.75rem;height:2.75rem;display:grid;place-items:center;overflow:hidden;border-radius:.55rem;background:var(--bg-soft);color:var(--muted);font-size:1rem;font-weight:800}.cal-work-picker-trigger .cal-work-cover{width:1.8rem;height:1.8rem;border-radius:.4rem}.cal-work-cover img{width:100%;height:100%;object-fit:cover}.cal-form-field{display:grid;min-width:0;gap:.35rem;margin-top:.72rem;color:var(--text);font-size:.74rem;font-weight:750}.cal-form-field small{color:var(--muted);font-size:.65rem;font-weight:600}.cal-form-field input,.cal-form-field select,.cal-form-field textarea{width:100%;min-width:0;max-width:100%;min-height:2.75rem;box-sizing:border-box;border:1px solid var(--line);border-radius:.72rem;background:var(--bg);color:var(--text);padding:.65rem .75rem;font:inherit;font-size:.84rem;font-weight:600;outline:none}.cal-form-field textarea{min-height:4.75rem;resize:vertical}.cal-form-field input:focus,.cal-form-field select:focus,.cal-form-field textarea:focus{border-color:color-mix(in srgb,var(--cal-lesson-schedule) 60%,var(--line));box-shadow:0 0 0 3px color-mix(in srgb,var(--cal-lesson-schedule) 10%,transparent)}.cal-form-time-row{display:grid;grid-template-columns:1fr auto 1fr;align-items:end;gap:.5rem}.cal-form-field input[type=hidden],.cal-native-time{display:none}.cal-time-wheel-trigger{width:100%;min-height:2.75rem;display:flex;align-items:center;justify-content:space-between;gap:.5rem;padding:.6rem .75rem;border:1px solid var(--line);border-radius:.72rem;background:var(--bg);color:var(--text);font:inherit;cursor:pointer}.cal-time-wheel-trigger strong{font-size:.9rem;font-variant-numeric:tabular-nums}.cal-time-wheel-trigger i{color:var(--muted);font-size:.85rem;font-style:normal}.cal-time-wheel-trigger:active{border-color:var(--cal-lesson-schedule)}.cal-form-time-arrow{padding-bottom:.85rem;color:var(--muted);font-size:.8rem}.cal-time-wheel-panel{min-height:25rem}.cal-time-wheel{position:relative;width:min(18rem,100%);height:13.75rem;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:.3rem;margin:1.35rem auto 1.25rem;overflow:hidden;border-radius:1rem;background:var(--bg-soft)}.cal-time-wheel:before,.cal-time-wheel:after{content:"";position:absolute;left:0;right:0;z-index:3;height:4.2rem;pointer-events:none}.cal-time-wheel:before{top:0;background:linear-gradient(var(--bg-soft),transparent)}.cal-time-wheel:after{bottom:0;background:linear-gradient(transparent,var(--bg-soft))}.cal-time-wheel-column{position:relative;z-index:2;min-width:0}.cal-time-wheel-column>span{position:absolute;top:50%;right:.6rem;z-index:3;color:var(--muted);font-size:.68rem;font-weight:700;transform:translateY(-50%);pointer-events:none}.cal-time-wheel-list{height:13.75rem;padding:5.5rem 0;box-sizing:border-box;overflow-x:hidden;overflow-y:auto;scroll-snap-type:y mandatory;scrollbar-width:none;overscroll-behavior:contain}.cal-time-wheel-list::-webkit-scrollbar{display:none}.cal-time-wheel-list button{width:100%;height:2.75rem;display:block;padding:0;border:none;background:transparent;color:var(--muted);font:inherit;font-size:1rem;font-variant-numeric:tabular-nums;scroll-snap-align:center;cursor:pointer;transition:color .15s ease,font-size .15s ease,font-weight .15s ease}.cal-time-wheel-list button.is-selected{color:var(--text);font-size:1.22rem;font-weight:850}.cal-time-wheel-separator{position:relative;z-index:4;color:var(--text);font-size:1.2rem;font-weight:850}.cal-time-wheel-focus{position:absolute;top:50%;left:.65rem;right:.65rem;height:2.75rem;border-top:1px solid color-mix(in srgb,var(--cal-lesson-schedule) 35%,transparent);border-bottom:1px solid color-mix(in srgb,var(--cal-lesson-schedule) 35%,transparent);background:color-mix(in srgb,var(--cal-lesson-schedule) 7%,transparent);transform:translateY(-50%);pointer-events:none}.cal-time-wheel-done{width:100%;min-height:2.8rem;border:none;border-radius:.75rem;background:var(--cal-lesson-schedule);color:#fff;font:inherit;font-size:.84rem;font-weight:800;cursor:pointer}.cal-schedule-error{min-height:1.15rem;margin:.65rem 0 0;color:var(--danger);font-size:.72rem;line-height:1.4}.cal-schedule-actions{flex:none;display:flex;align-items:center;justify-content:flex-end;gap:.55rem;margin-top:.35rem}.cal-schedule-actions[hidden]{display:none}.cal-schedule-save,.cal-schedule-cancel-action{min-height:2.75rem;padding:0 1rem;border:none;border-radius:.75rem;font:inherit;font-size:.82rem;font-weight:800;cursor:pointer}.cal-schedule-save{width:fit-content;min-width:0;background:var(--accent);color:var(--on-accent)}.cal-schedule-save:hover{background:var(--accent-hover)}.cal-schedule-save.is-header{min-height:2.25rem;padding:0 .7rem}.cal-schedule-cancel-action{margin-right:auto;background:color-mix(in srgb,var(--danger) 9%,var(--bg));color:var(--danger)}.cal-schedule-save:disabled,.cal-schedule-cancel-action:disabled{opacity:.55;cursor:wait}@media(max-width:720px){.cal-schedule-modal{align-items:flex-end;padding:0}.cal-schedule-sheet{width:100%;max-height:calc(100dvh - var(--safe-top) - .75rem);padding:.55rem .9rem calc(.9rem + var(--safe-bottom));border-radius:1.2rem 1.2rem 0 0;overscroll-behavior:contain;transform:translateY(100%)}#cal-schedule-editor-panel,#cal-schedule-date{width:100%;min-width:0;max-width:100%}#cal-schedule-editor-panel{max-height:calc(100dvh - var(--safe-top) - var(--safe-bottom) - 3.1rem)}#cal-schedule-date{display:block;width:-webkit-fill-available;inline-size:-webkit-fill-available;min-inline-size:0;max-inline-size:-webkit-fill-available;-webkit-appearance:none;appearance:none}.cal-schedule-sheet>.cal-handle{display:block;width:2.25rem;height:.25rem;margin:0 auto .65rem;border-radius:999px;background:color-mix(in srgb,var(--muted) 35%,transparent)}.cal-schedule-form-head{align-items:center;margin-bottom:.7rem}.cal-schedule-form-head .cal-sheet-title{font-size:1rem}.cal-form-field{gap:.3rem;margin-top:.58rem}.cal-form-field input,.cal-form-field select,.cal-form-field textarea,.cal-student-search input{font-size:1rem}.cal-form-field input,.cal-form-field select,.cal-student-picker-trigger,.cal-work-picker-trigger,.cal-time-wheel-trigger{min-height:3rem}.cal-time-wheel-trigger{display:none}.cal-form-field .cal-native-time{display:block;width:-webkit-fill-available;min-width:0;max-width:-webkit-fill-available;inline-size:-webkit-fill-available;min-inline-size:0;max-inline-size:-webkit-fill-available;font-variant-numeric:tabular-nums}.cal-form-field textarea{min-height:4.25rem;resize:none}.cal-form-time-row{gap:.38rem}.cal-form-time-arrow{padding-bottom:.95rem}.cal-schedule-actions{z-index:4;margin:.25rem -.1rem 0;padding:.65rem .1rem .15rem;background:linear-gradient(transparent,#fff .45rem)}.cal-schedule-save,.cal-schedule-cancel-action{min-height:3rem}.cal-schedule-save{flex:1}.cal-schedule-save.is-header{flex:none;width:fit-content;min-width:0;min-height:2.5rem}.cal-student-picker-panel,.cal-work-picker-panel,.cal-time-wheel-panel{min-height:min(75dvh,34rem)}.cal-student-list,.cal-work-list{max-height:calc(100dvh - var(--safe-top) - 10.5rem)}.cal-time-wheel{margin-top:1rem}}.cal-handle{display:none}.cal-sheet-head{margin-bottom:.85rem}.cal-sheet-type{font-size:.7rem;font-weight:800}.cal-sheet-type.lesson_schedule{color:var(--cal-lesson-schedule)}.cal-sheet-type.performance{color:#e86f25}.cal-sheet-type.solo{color:#2e9851}.cal-sheet-type.sasa{color:#7348c2}.cal-sheet-title{font-size:1.05rem;font-weight:800;margin-top:.2rem;line-height:1.35}.cal-row{display:flex;justify-content:space-between;gap:1rem;padding:.7rem 0;border-bottom:1px solid #edf0f4;font-size:.75rem}.cal-row label{color:#8a97aa;flex-shrink:0}.cal-row b{font-weight:700;text-align:right;word-break:break-word}.cal-sheet-media{display:flex;flex-direction:column;justify-content:center;align-items:center;margin:1rem 0 .85rem;gap:.55rem}.cal-sheet-media[hidden]{display:none}.cal-sheet-image{display:block;width:100%;max-width:16rem;max-height:14rem;object-fit:contain;border-radius:.85rem;background:#f4f7fa}.cal-sheet-media.is-cover .cal-sheet-image{width:8.5rem;height:8.5rem;max-width:8.5rem;max-height:8.5rem;object-fit:cover;border-radius:1rem;box-shadow:0 6px 18px #101a341f}.cal-sheet-media.is-avatar .cal-sheet-image{width:5.5rem;height:5.5rem;max-width:5.5rem;max-height:5.5rem;object-fit:cover;border-radius:50%;box-shadow:0 4px 14px #101a341f}.cal-sheet-caption{font-size:.8rem;font-weight:700;color:var(--cal-navy)}.cal-sheet-caption[hidden]{display:none}.cal-sheet-desc-block{margin-top:.25rem;padding-top:.85rem;border-top:1px solid #edf0f4}.cal-sheet-desc-label{font-size:.7rem;color:#8a97aa;font-weight:600;margin-bottom:.4rem}.cal-sheet-desc{margin:0;font-size:.8rem;font-weight:600;line-height:1.5;color:var(--cal-navy);white-space:pre-wrap;word-break:break-word}@media(min-width:760px){.cal-bar{font-size:.68rem;min-height:1.1rem}.cal-week-row{min-height:calc(4.2rem + (var(--cal-week-events, 1) * 1.2rem))}}.comm-page{--comm-cta: var(--accent);--comm-cta-hover: var(--accent-hover);--comm-on-cta: #fff;--comm-ok: var(--tone-1);--comm-ok-soft: color-mix(in srgb, var(--tone-4) 35%, var(--tone-5));--comm-pending: var(--tone-2);--comm-pending-soft: color-mix(in srgb, var(--tone-4) 55%, var(--tone-5));display:flex;flex-direction:column;gap:0;min-height:calc(100dvh - 4.5rem - var(--bottom-nav-h) - var(--safe-bottom));margin:-.25rem -.15rem 0}.comm-list-pane{display:flex;flex-direction:column;gap:.65rem;padding:0 .15rem}.comm-list-pane[hidden],.comm-thread-pane[hidden]{display:none!important}.comm-head h1{margin:0;font-size:1.45rem;letter-spacing:-.02em}.comm-head .lede{margin:.25rem 0 0;font-size:.85rem;color:var(--muted)}.comm-tabs{display:flex;flex-wrap:wrap;justify-content:flex-start;align-items:center;gap:.4rem;margin:.75rem 0 .85rem;padding:0;background:transparent;border-radius:0}.comm-tab{min-height:2.15rem;padding:.32rem .85rem;border:none;background:var(--bg-elev);border-radius:999px;font:inherit;font-size:1rem;font-weight:600;color:var(--muted);cursor:pointer;touch-action:manipulation;display:inline-flex;align-items:center;justify-content:center;gap:.28rem;-webkit-tap-highlight-color:transparent}.comm-tab.is-on{background:var(--accent-soft);color:var(--accent-text);border:none;box-shadow:none;font-weight:700}.comm-members-toolbar{display:flex;align-items:center;gap:.55rem;margin:.15rem .35rem .85rem}.comm-members-toolbar .comm-search-field{flex:1;min-width:0;margin:0}.comm-add-btn{flex:none;display:grid;place-items:center;width:2.65rem;height:2.65rem;padding:0;border:0;border-radius:999px;background:var(--comm-cta);color:var(--comm-on-cta);cursor:pointer;box-shadow:0 2px 6px color-mix(in srgb,var(--tone-1) 16%,transparent),0 8px 18px color-mix(in srgb,var(--tone-1) 12%,transparent)}.comm-add-btn svg{display:block;width:1.25rem;height:1.25rem}.comm-add-btn:active{background:var(--comm-cta-hover);transform:scale(.97)}.comm-empty-state{display:grid;justify-items:center;text-align:center;gap:.55rem;padding:2.4rem 1.25rem 2rem;color:var(--muted)}.comm-empty-illust{width:min(10rem,55vw);height:auto;margin-bottom:.35rem;color:color-mix(in srgb,var(--tone-3) 70%,var(--tone-4))}.comm-empty-title{margin:0;color:var(--text);font-size:1.02rem;font-weight:600}.comm-empty-desc{margin:0;max-width:18rem;font-size:.86rem;line-height:1.5}.comm-search-field{position:relative;display:flex;align-items:center;margin:0 .35rem .75rem}.comm-search-field .comm-filter-input{width:100%;padding-left:2.35rem;padding-right:2.2rem;border-radius:999px;background:var(--bg-elev)}.comm-search-ico{position:absolute;left:.75rem;display:grid;place-items:center;color:var(--muted);pointer-events:none}.comm-search-ico svg{width:1.05rem;height:1.05rem}.comm-search-clear{position:absolute;right:.45rem;width:1.7rem;height:1.7rem;border:0;border-radius:999px;background:transparent;color:var(--muted);font-size:1.1rem;cursor:pointer}.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.comm-pill{flex:none;display:inline-flex;align-items:center;padding:.18rem .5rem;border-radius:999px;font-size:.72rem;font-weight:600;line-height:1.2}.comm-pill.is-active{background:var(--comm-ok-soft);color:var(--comm-ok)}.comm-pill.is-pending{background:var(--comm-pending-soft);color:var(--comm-pending)}.comm-presence{display:inline-flex;align-items:center;gap:.35rem;color:var(--muted);font-size:.8rem;line-height:1.3}.comm-presence.is-online{color:var(--comm-ok)}.comm-presence-dot{width:.45rem;height:.45rem;border-radius:999px;background:var(--tone-3)}.comm-presence.is-online .comm-presence-dot{background:var(--comm-ok)}.comm-room-bottom-stack{flex-direction:column;align-items:flex-start!important;gap:.15rem}.comm-room-meta{color:var(--muted);font-size:.75rem}.comm-account-id{color:var(--muted);font-size:.8rem}.comm-room .comm-chevron{margin-left:.15rem}.comm-avatar.is-xl{width:5.5rem;height:5.5rem;font-size:1.85rem}.comm-page.is-student-profile,.comm-teacher-direct.is-student-profile{padding-bottom:1.25rem}.comm-profile-topbar{display:flex;align-items:center;justify-content:space-between;margin:.1rem .15rem .35rem}.comm-profile-menu-wrap{position:relative}.comm-student-hero{display:grid;justify-items:center;text-align:center;gap:.28rem;padding:.35rem .75rem 1rem;overflow:visible}.comm-avatar-wrap{position:relative;width:5.5rem;height:5.5rem;margin-bottom:.35rem}.comm-avatar-wrap .comm-avatar{width:100%;height:100%}.comm-avatar-wrap.is-duo{overflow:visible}.comm-avatar-self{position:absolute;inset:0;z-index:1;display:grid;place-items:center;pointer-events:none;transform:translate(0) scale(1);filter:brightness(.88);transition:transform .52s cubic-bezier(.22,1,.36,1),filter .52s cubic-bezier(.22,1,.36,1)}.comm-avatar-self .comm-avatar{width:100%;height:100%;box-shadow:0 0 0 2px var(--bg-elev, #fff)}.comm-avatar-main{position:relative;z-index:2;display:block;width:100%;height:100%}.comm-avatar-main .comm-avatar{width:100%;height:100%;box-shadow:0 0 0 2px var(--bg-elev, #fff)}.comm-avatar-wrap.is-duo.is-reveal .comm-avatar-self{transform:translate(70%) scale(.72);filter:brightness(.72)}.comm-avatar-wrap.is-invite-connected{margin-bottom:.65rem}.comm-invite-teacher-mark .comm-avatar{border:1px solid color-mix(in srgb,var(--tone-2) 30%,transparent);background:color-mix(in srgb,var(--tone-3) 24%,var(--bg-elev));color:var(--tone-2)}.comm-invite-teacher-mark svg{width:68%;height:68%;fill:none;stroke:currentColor;stroke-width:3.5;stroke-linecap:round;stroke-linejoin:round}@media(prefers-reduced-motion:reduce){.comm-avatar-self{transition:none}}.comm-student-name{margin:0;font-size:1.25rem;font-weight:700;letter-spacing:-.02em}.comm-student-handle{margin:0;color:var(--muted);font-size:.88rem}.comm-online-pill{display:inline-flex;align-items:center;gap:.35rem;margin-top:.35rem;padding:.28rem .7rem;border-radius:999px;background:color-mix(in srgb,var(--tone-4) 40%,var(--tone-5));color:var(--tone-1);font-size:.8rem;font-weight:600}.comm-online-pill.is-off{color:var(--muted);font-weight:500}.comm-online-pill .comm-presence-dot{background:var(--tone-1)}.comm-online-pill.is-off .comm-presence-dot{background:var(--tone-3)}.comm-student-lastseen{margin:.15rem 0 0;color:var(--muted);font-size:.78rem}.comm-action-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.35rem .25rem;margin:0 .2rem .75rem}.comm-action-grid.is-3{grid-template-columns:repeat(3,minmax(0,1fr))}.comm-action-grid.is-4{grid-template-columns:repeat(4,minmax(0,1fr))}.comm-action-grid.is-1{grid-template-columns:1fr}.comm-withdrawn-profile-zone{position:relative}.comm-withdrawn-profile-zone.is-actionable{overflow:hidden;border-radius:1rem}.comm-withdrawn-profile-zone.is-actionable .comm-withdrawn-profile-content{opacity:.42;filter:blur(3px);pointer-events:none;-webkit-user-select:none;user-select:none}.comm-withdrawn-unlink{position:absolute;inset:0;z-index:2;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.25rem;width:100%;min-height:100%;padding:1rem;border:0;border-radius:1rem;background:color-mix(in srgb,var(--bg) 18%,transparent);color:var(--text);font:inherit;cursor:pointer;-webkit-tap-highlight-color:transparent}.comm-withdrawn-unlink>span{display:grid;place-items:center;width:2.8rem;height:2.8rem;border-radius:50%;background:color-mix(in srgb,var(--bg-elev) 88%,transparent)}.comm-withdrawn-unlink svg{width:1.35rem;height:1.35rem}.comm-withdrawn-unlink strong{font-size:.92rem;font-weight:800}.comm-withdrawn-unlink small{color:var(--muted);font-size:.75rem;font-weight:650}.comm-withdrawn-unlink:active{background:color-mix(in srgb,var(--bg) 28%,transparent)}.comm-action-tile{display:flex;flex-direction:column;align-items:center;justify-content:flex-start;gap:.28rem;min-height:4.6rem;padding:.55rem .2rem;border:none;border-radius:0;background:transparent;color:var(--text);font:inherit;cursor:pointer;touch-action:manipulation;box-shadow:none}.comm-action-tile.is-stat{cursor:default}.comm-action-tile:disabled{opacity:.45;cursor:default}.comm-action-tile:not(.is-stat):not(:disabled):active{opacity:.7;background:transparent}.comm-action-ico{display:grid;place-items:center;color:var(--tone-1)}.comm-action-ico svg{width:1.25rem;height:1.25rem}.comm-action-label{font-size:.68rem;font-weight:600;color:var(--muted);line-height:1.2;text-align:center}.comm-action-value{font-size:.78rem;font-weight:700;color:var(--text)}.comm-action-value.is-slot{display:inline-flex;align-items:center;justify-content:center;font-variant-numeric:tabular-nums}.comm-slot-number{display:inline-flex;align-items:center}.comm-slot-viewport{display:block;width:.62em;height:1.2em;overflow:hidden}.comm-slot-strip{display:flex;flex-direction:column;transform:translateY(0);transition:transform var(--slot-duration, .7s) cubic-bezier(.16,.84,.3,1) var(--slot-delay, .1s);will-change:transform}.comm-slot-strip>span{display:block;flex:0 0 1.2em;height:1.2em;line-height:1.2em;text-align:center}.comm-action-value.is-slot-spinning .comm-slot-strip{transform:translateY(-12em)}.comm-slot-unit{line-height:1.2}@media(prefers-reduced-motion:reduce){.comm-slot-strip{transition:none}}.comm-record-tabs{display:grid;grid-template-columns:1fr 1fr;margin:0;padding:0 .35rem;border:none;border-top:1px solid var(--line);background:transparent;box-shadow:none;gap:0}.comm-record-tab{min-height:2.4rem;margin:0;padding:.35rem .5rem;border:none;border-radius:0;background:transparent;box-shadow:none;color:var(--muted);font:inherit;font-size:.92rem;font-weight:600;cursor:pointer;-webkit-tap-highlight-color:transparent}.comm-record-tab.is-on{color:var(--tone-1);font-weight:700;background:transparent;border:none;box-shadow:none}.comm-record-body{margin:0;padding:.55rem .15rem calc(1.25rem + var(--bottom-floor-pad));border-top:1px solid var(--line)}.comm-record-list{--comm-record-accent: var(--muted);list-style:none;margin:0;padding:0}.comm-record-list.is-practice{--comm-record-accent: #d4a91f}.comm-record-list.is-lesson{--comm-record-accent: #7652b8}.comm-record-day+.comm-record-day{margin-top:1rem}.comm-record-day-toggle{width:100%;min-height:0;display:flex;align-items:center;gap:.55rem;margin:0;padding:.2rem .4rem .55rem;border:none;background:transparent;color:var(--text);font:inherit;text-align:left;cursor:pointer}.comm-record-day-toggle>span{flex:1;display:flex;align-items:center;gap:.55rem;color:var(--muted);font-size:.7rem;font-weight:600}.comm-record-day-toggle>span:after{content:"";flex:1;height:1px;background:color-mix(in srgb,var(--line) 65%,transparent)}.comm-record-day-toggle b{font-family:var(--display);font-size:1.08rem;font-weight:600;letter-spacing:.02em}.comm-record-day-toggle em{color:var(--muted);font-size:.68rem;font-style:normal;font-weight:600}.comm-record-day-toggle>i{color:var(--muted);font-size:1rem;font-style:normal;line-height:1;transform:rotate(90deg);transition:transform .25s ease}.comm-record-day.is-open .comm-record-day-toggle>i{transform:rotate(-90deg)}.comm-record-collapse{display:grid;grid-template-rows:0fr;opacity:0;transition:grid-template-rows .3s ease,opacity .2s ease}.comm-record-day.is-open .comm-record-collapse{grid-template-rows:1fr;opacity:1}.comm-record-collapse-inner{min-height:0;overflow:hidden}.comm-record-state{margin:0;padding:1rem .75rem 1.15rem 4.45rem;color:var(--muted);font-size:.75rem}.comm-record-state.is-error{display:flex;align-items:center;gap:.65rem;color:var(--danger)}.comm-record-retry{min-height:2rem;margin-left:auto;padding:0 .65rem;border:1px solid var(--line);border-radius:.55rem;background:var(--bg-elev);color:var(--text);font:inherit;font-size:.7rem;font-weight:650;white-space:nowrap;cursor:pointer}@media(prefers-reduced-motion:reduce){.comm-record-day-toggle>i,.comm-record-collapse{transition:none}}.comm-record-row{min-height:4.5rem;display:grid;grid-template-columns:3.25rem 1.2rem minmax(0,1fr) auto;align-items:stretch;gap:0;padding:0}.comm-record-date{padding-top:.82rem;color:var(--muted);font-size:.74rem;font-weight:650;font-variant-numeric:tabular-nums;text-align:right}.comm-record-rail{position:relative;display:block}.comm-record-rail:before{content:"";position:absolute;top:0;bottom:0;left:50%;width:1px;background:color-mix(in srgb,var(--line-strong) 58%,transparent);transform:translate(-50%)}.comm-record-row:first-child .comm-record-rail:before{top:1.05rem}.comm-record-row:last-child .comm-record-rail:before{bottom:calc(100% - 1.05rem)}.comm-record-rail i{position:absolute;z-index:1;top:.75rem;left:50%;width:.66rem;height:.66rem;border:2px solid var(--bg);border-radius:50%;background:var(--comm-record-accent);box-shadow:0 0 0 1px color-mix(in srgb,var(--comm-record-accent) 45%,transparent);transform:translate(-50%)}.comm-record-copy{min-width:0;display:grid;align-content:start;gap:.15rem;padding:.65rem .45rem .7rem .65rem;border-bottom:1px solid color-mix(in srgb,var(--line) 48%,transparent)}.comm-record-row:last-child .comm-record-copy{border-bottom:none}.comm-record-copy strong{overflow:hidden;font-size:.88rem;font-weight:700;text-overflow:ellipsis;white-space:nowrap}.comm-record-copy .muted{overflow:hidden;font-size:.7rem;text-overflow:ellipsis;white-space:nowrap}.comm-record-practice{align-self:start;display:grid;place-items:center;width:2.2rem;height:2.2rem;margin:.55rem .25rem 0 0;padding:0;border:none;border-radius:999px;background:var(--accent-soft);color:var(--accent-text);cursor:pointer;-webkit-tap-highlight-color:transparent}.comm-record-practice svg{width:1.05rem;height:1.05rem}.comm-record-practice:active:not(:disabled){transform:scale(.94)}.comm-record-practice:disabled{opacity:.28;cursor:not-allowed}.comm-memo-preview{display:block;width:100%;margin:0 0 .35rem;min-height:0;height:auto;overflow:hidden;padding:.85rem;border:none;border-top:1px solid var(--line);border-radius:0;background:transparent;color:var(--text);font:inherit;font-size:.9rem;line-height:1.5;resize:none;cursor:pointer;box-shadow:none;field-sizing:content}.comm-memo-preview:focus{outline:none;border-top-color:color-mix(in srgb,var(--tone-1) 55%,var(--line))}.comm-memo-preview::placeholder{color:var(--muted)}.comm-memo-fs{position:fixed;inset:0;z-index:120;display:flex;flex-direction:column;background:color-mix(in srgb,var(--bg) 42%,transparent);-webkit-backdrop-filter:blur(18px) saturate(1.15);backdrop-filter:blur(18px) saturate(1.15)}.comm-memo-fs-bar{display:flex;flex-wrap:nowrap;align-items:center;justify-content:space-between;gap:.5rem;flex:none;padding:calc(.65rem + var(--safe-top)) 1rem .65rem;min-height:calc(2.9rem + 1.3rem + var(--safe-top));box-sizing:border-box}.comm-memo-fs-cancel,.comm-memo-fs-edit{margin:0;padding:.35rem .15rem;border:none;background:transparent;color:var(--text);font:inherit;font-size:1rem;font-weight:600;cursor:pointer;-webkit-tap-highlight-color:transparent}.comm-memo-fs-cancel{min-width:3.2rem;text-align:left;color:var(--muted)}.comm-memo-fs-edit{min-width:var(--touch);min-height:var(--touch);display:inline-flex;align-items:center;justify-content:center;margin-left:auto;text-align:right;color:var(--tone-1)}.comm-memo-fs-edit.is-save{color:var(--tone-1);font-weight:700}.comm-memo-fs-readonly{margin-left:auto;color:var(--muted);font-size:.82rem;font-weight:700}.comm-memo-fs-edit:disabled,.comm-memo-fs-cancel:disabled{opacity:.5;cursor:default}.comm-memo-fs-meta{flex:none;display:flex;justify-content:flex-end;align-items:center;padding:.15rem 1.1rem .35rem}.comm-memo-fs-count{color:var(--muted);font-size:.82rem;font-variant-numeric:tabular-nums;letter-spacing:.01em}.comm-memo-fs-body{flex:1 1 auto;width:100%;margin:0;padding:.15rem 1.1rem 1.25rem;border:none;background:transparent;color:var(--text);font:inherit;font-size:1.05rem;line-height:1.55;resize:none;outline:none}.comm-memo-fs-body:read-only{cursor:default}.comm-memo-fs-body::placeholder{color:var(--muted)}.comm-memo-fs-status{flex:none;margin:0;padding:0 1.1rem calc(var(--bottom-floor-pad) + var(--safe-bottom));color:var(--muted);font-size:.82rem}.comm-memo-fs-status.is-error{color:var(--danger)}html.comm-memo-fs-open{overflow:hidden}html.comm-memo-fs-open .topbar,html.comm-memo-fs-open .bottom-nav{visibility:hidden;pointer-events:none}html.comm-lesson-fs-open{overflow:hidden}html.comm-lesson-fs-open .topbar,html.comm-lesson-fs-open .bottom-nav{visibility:hidden;pointer-events:none}.comm-lesson-fs{position:fixed;inset:0;z-index:120;display:flex;flex-direction:column;background:color-mix(in srgb,var(--bg) 42%,transparent);-webkit-backdrop-filter:blur(18px) saturate(1.15);backdrop-filter:blur(18px) saturate(1.15)}.comm-lesson-fs-bar{display:flex;flex-wrap:nowrap;align-items:center;justify-content:space-between;gap:.5rem;flex:none;padding:calc(.65rem + var(--safe-top)) 1rem .65rem;min-height:calc(2.9rem + 1.3rem + var(--safe-top));box-sizing:border-box}.comm-lesson-fs-cancel,.comm-lesson-fs-invite{margin:0;padding:.35rem .15rem;border:none;background:transparent;color:var(--text);font:inherit;font-size:1rem;font-weight:600;cursor:pointer;-webkit-tap-highlight-color:transparent}.comm-lesson-fs-cancel{min-width:3.2rem;text-align:left;color:var(--muted)}.comm-lesson-fs-invite{min-width:var(--touch);min-height:var(--touch);display:inline-flex;align-items:center;justify-content:center;margin-left:auto;text-align:right;color:var(--tone-1);font-weight:700}.comm-lesson-fs-invite:disabled,.comm-lesson-fs-cancel:disabled{opacity:.5;cursor:default}.comm-lesson-fs-body{flex:1 1 auto;overflow:auto;padding:.35rem 1.1rem calc(var(--bottom-floor-pad) + var(--safe-bottom));display:grid;gap:.85rem;align-content:start}.comm-lesson-field{display:grid;gap:.4rem;font-size:.82rem;font-weight:600;color:var(--muted)}.comm-lesson-field input,.comm-lesson-field textarea{width:100%;margin:0;padding:.75rem .85rem;border:none;border-top:1px solid var(--line);border-bottom:1px solid var(--line);border-radius:0;background:transparent;color:var(--text);font:inherit;font-size:1rem;font-weight:500;line-height:1.45;resize:vertical}.comm-lesson-field input:focus,.comm-lesson-field textarea:focus{outline:none;border-color:color-mix(in srgb,var(--tone-1) 55%,var(--line))}.comm-lesson-hint{margin:0;font-size:.82rem;line-height:1.45}.comm-lesson-fs-status{margin:0;font-size:.82rem;color:var(--muted)}.comm-lesson-fs-status.is-error{color:var(--danger)}.lobby-msg-body.is-lesson-invite{display:grid;gap:.35rem}.comm-lesson-invite-title{font-size:.95rem;font-weight:700;color:inherit;line-height:1.35}.comm-lesson-invite-desc{margin:0;font-size:.84rem;line-height:1.45;color:inherit;opacity:.82;white-space:pre-wrap;word-break:break-word}.comm-msg.is-lesson-ticket .comm-lesson-invite-title{font-size:1.05rem;font-weight:800;color:var(--ticket-ink);line-height:1.3}.comm-msg.is-lesson-ticket .comm-lesson-invite-desc{font-size:.78rem;line-height:1.5;color:color-mix(in srgb,var(--ticket-ink) 74%,transparent);opacity:1}.comm-msg.is-lesson-ticket,.comm-msg-row.is-mine .comm-msg.is-lesson-ticket{--ticket-paper: #faf6ed;--ticket-stub-paper: #f6f0e5;--ticket-accent: #ad8c73;--ticket-ink: #3e352f;width:min(25rem,100%);max-width:100%;padding:0;display:grid;grid-template-columns:minmax(0,1fr) 7.2rem;overflow:hidden;color:var(--ticket-ink);background:var(--ticket-paper);border:1px solid color-mix(in srgb,var(--ticket-accent) 22%,var(--line));border-radius:1.15rem;box-shadow:0 .35rem 1.2rem #392f271a}.comm-msg-row.is-ticket{width:100%;max-width:96%}.comm-msg.is-lesson-invite.is-lesson-ticket,.comm-msg-row.is-mine .comm-msg.is-lesson-invite.is-lesson-ticket{--ticket-paper: #f2faf6;--ticket-stub-paper: #edf7f1;--ticket-accent: #6c9f90;--ticket-ink: #293d37}.comm-ticket-main{min-width:0;padding:.8rem;display:grid;gap:.7rem}.comm-ticket-header{min-width:0;display:flex;align-items:center;gap:.55rem}.comm-ticket-badge{flex:none;padding:.28rem .65rem;border-radius:999px;background:var(--ticket-accent);color:#fff;font-size:.72rem;font-weight:800}.comm-ticket-tagline{min-width:0;overflow:hidden;color:color-mix(in srgb,var(--ticket-ink) 64%,transparent);font-size:.68rem;font-weight:650;letter-spacing:.01em;text-overflow:ellipsis;white-space:nowrap}.comm-ticket-stub{position:relative;padding:.85rem .35rem;border-left:1px dashed color-mix(in srgb,var(--ticket-accent) 42%,transparent);background:#fbf5e9;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:.65rem;text-align:center}.comm-ticket-stub:before,.comm-ticket-stub:after{position:absolute;left:-.5rem;width:.9rem;height:.9rem;border:1px solid color-mix(in srgb,var(--ticket-accent) 18%,var(--line));border-radius:50%;background:var(--bg);content:""}.comm-ticket-stub:before{top:-.52rem}.comm-ticket-stub:after{bottom:-.52rem}.comm-ticket-stub img{width:6.8rem;height:6.8rem;border-radius:50%;object-fit:cover}.comm-ticket-stub>small{color:color-mix(in srgb,var(--ticket-ink) 62%,transparent);font-family:inherit;font-size:.62rem;font-weight:400;font-style:normal;line-height:1.4;letter-spacing:.01em}.comm-ticket-stub.is-ended{background:#e8e8e8;border-left-color:#b8b8b5}.comm-ticket-stub.is-ended img{filter:grayscale(1) brightness(.95);opacity:1}.comm-ticket-stub.is-ended>small{color:#777775}.comm-ticket-invite-content{min-width:0;display:grid;grid-template-columns:4rem minmax(0,1fr);gap:.65rem;align-items:center}.comm-ticket-music-art{position:relative;width:4rem;height:4rem;border-radius:45% 55% 48% 52%;background:color-mix(in srgb,var(--ticket-accent) 18%,transparent);display:grid;place-items:center;color:var(--ticket-accent)}.comm-ticket-music-art span{font-size:1.8rem}.comm-ticket-music-art i{position:absolute;top:-.25rem;right:.15rem;font-size:1rem;font-style:normal}.comm-ticket-invite-copy{min-width:0;display:grid;gap:.22rem}.comm-schedule-card{display:grid;grid-template-columns:4.5rem minmax(0,1fr);gap:.7rem;align-items:start}.comm-schedule-heading{min-width:0;display:grid;gap:.08rem}.comm-schedule-heading>span{color:var(--muted);font-size:.66rem;font-weight:700}.comm-schedule-heading>strong{min-width:0;overflow:hidden;color:var(--ticket-ink);font-size:.78rem;font-weight:800;line-height:1.25;text-overflow:ellipsis;white-space:nowrap}.comm-schedule-album{display:grid;gap:.28rem}.comm-schedule-album-label{font-size:.66rem;font-weight:700;color:var(--muted)}.comm-schedule-cover{width:4.5rem;height:4.5rem;border-radius:.7rem;overflow:hidden;background:color-mix(in srgb,var(--tone-3) 18%,var(--bg-soft));display:grid;place-items:center;color:var(--tone-1)}.comm-schedule-cover-img{width:100%;height:100%;object-fit:cover}.comm-schedule-cover-fallback{font-size:1.35rem;font-weight:800}.comm-schedule-copy{min-width:0;display:grid;gap:.4rem}.comm-schedule-kicker{font-size:.68rem;font-weight:800;letter-spacing:.04em;color:var(--tone-1)}.comm-schedule-meta{margin:0;display:grid;gap:.28rem}.comm-schedule-meta>div{display:grid;gap:.08rem}.comm-schedule-meta dt{font-size:.66rem;font-weight:700;color:var(--muted)}.comm-schedule-meta dd{margin:0;font-size:.78rem;font-weight:700;line-height:1.35;word-break:break-word}.comm-schedule-remain{margin:0;font-size:inherit;font-weight:700;font-variant-numeric:tabular-nums;color:inherit}.comm-ticket-action{min-width:0}.comm-msg.is-lesson-ticket .comm-ticket-action .comm-lesson-accept{width:100%;min-height:2.5rem;margin:0;padding:.45rem .75rem;border:0;border-radius:.75rem;background:color-mix(in srgb,var(--ticket-accent) 17%,var(--ticket-paper));color:var(--ticket-ink);font-size:.8rem;font-weight:800}.comm-msg.is-lesson-ticket .comm-ticket-action .comm-lesson-accept:not(:disabled):after{float:right;content:"›";font-size:1.15rem;line-height:1}.comm-msg.is-lesson-ticket .comm-ticket-action .comm-lesson-accept:disabled,.comm-msg.is-lesson-ticket .comm-ticket-action .comm-lesson-accept.is-status:disabled{border:0;background:color-mix(in srgb,var(--ticket-accent) 14%,var(--ticket-paper));color:color-mix(in srgb,var(--ticket-ink) 72%,transparent);opacity:1}@media(max-width:390px){.comm-msg.is-lesson-ticket,.comm-msg-row.is-mine .comm-msg.is-lesson-ticket{grid-template-columns:minmax(0,1fr) 6.2rem}.comm-ticket-main{padding:.7rem}.comm-ticket-tagline{font-size:.62rem}.comm-schedule-card{grid-template-columns:4rem minmax(0,1fr);gap:.58rem}.comm-schedule-cover{width:4rem;height:4rem}.comm-ticket-stub img{width:5.8rem;height:5.8rem}.comm-ticket-stub>small{font-size:.56rem}}.comm-msg-row.is-mine .comm-lesson-wait,.lobby-msg.mine .comm-lesson-wait{color:color-mix(in srgb,var(--text) 55%,transparent)}.comm-lesson-accept{justify-self:start;margin-top:.25rem;min-height:2rem;padding:.3rem .85rem;border:1px solid color-mix(in srgb,var(--tone-1) 40%,var(--line));border-radius:999px;background:var(--tone-1);color:#fff;font:inherit;font-size:.82rem;font-weight:650;cursor:pointer}.comm-lesson-accept:disabled,.comm-lesson-accept.is-status:disabled{opacity:.55;cursor:default;border-color:var(--line);background:var(--bg-soft);color:var(--muted);pointer-events:none}.comm-msg-row.is-mine .comm-lesson-accept:disabled,.comm-msg-row.is-mine .comm-lesson-accept.is-status:disabled,.lobby-msg.mine .comm-lesson-accept:disabled,.lobby-msg.mine .comm-lesson-accept.is-status:disabled{background:color-mix(in srgb,var(--bg) 55%,transparent);color:color-mix(in srgb,var(--text) 55%,transparent);border-color:color-mix(in srgb,var(--line) 70%,transparent)}.comm-more-empty{margin:0;padding:.65rem .75rem;font-size:.82rem}@media(max-width:380px){.comm-action-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.comm-action-grid.is-4{grid-template-columns:repeat(4,minmax(0,1fr))}}.comm-page.is-invite{padding:0 .15rem}.comm-subhead{display:flex;align-items:center;gap:.35rem;margin:.15rem 0 .75rem}.comm-subhead-title{margin:0;font-size:1.1rem;font-weight:700}.comm-invite-lede{margin:0 .35rem .85rem;color:var(--muted);font-size:.88rem;line-height:1.45}.comm-invite-confirm{display:grid;justify-items:center;text-align:center;gap:.45rem;padding:1.25rem .85rem 1.5rem}.comm-invite-confirm-name{margin:.35rem 0 0;font-size:1.2rem;font-weight:700}.comm-invite-confirm>.comm-cta-primary{margin-top:.85rem}.comm-invite-confirm-q{margin:1rem 0 0;max-width:18rem;font-size:1rem;font-weight:600;line-height:1.45}.comm-invite-confirm-desc{margin:.35rem 0 1.1rem;max-width:19rem;color:var(--muted);font-size:.86rem;line-height:1.5}.comm-cta-primary,.comm-cta-secondary{width:min(20rem,100%);min-height:2.85rem;border:0;border-radius:999px;font-size:.98rem;font-weight:600;cursor:pointer}.comm-cta-primary{background:var(--comm-cta);color:var(--comm-on-cta)}.comm-cta-primary:active{background:var(--comm-cta-hover)}.comm-cta-primary:disabled{opacity:.55;cursor:default}.comm-cta-secondary{margin-top:.35rem;background:var(--bg-soft);color:var(--text)}.comm-profile .comm-presence{margin-top:.35rem;justify-content:center}.comm-profile{position:relative;margin-top:.5rem;padding:1.5rem 1rem;text-align:center;background:var(--bg-soft);border-radius:1rem}.comm-unlink{position:absolute;top:.4rem;right:.4rem;display:inline-flex;align-items:center;justify-content:center;width:2.5rem;height:2.5rem;margin:0;padding:0;border:none;border-radius:.65rem;background:transparent;color:var(--muted);cursor:pointer;touch-action:manipulation}.comm-unlink:hover,.comm-unlink:focus-visible{color:var(--danger, #c0392b);background:color-mix(in srgb,var(--danger, #c0392b) 10%,transparent);outline:none}.comm-unlink:active{color:var(--danger, #c0392b)}.comm-unlink svg{width:1.25rem;height:1.25rem}.comm-profile h2{margin:.35rem 0 .2rem;font-size:1.25rem}.comm-profile .muted{margin:0 0 1rem;font-size:.85rem}.comm-back-inline{display:inline-flex;align-items:center;min-height:var(--touch);border:none;background:transparent;color:var(--text);font:inherit;font-size:.95rem;font-weight:600;padding:0 .25rem;cursor:pointer;touch-action:manipulation}.comm-readonly-banner{margin:auto 0 0;flex:0 0 auto;padding:.65rem .85rem calc(var(--bottom-floor-pad) + env(safe-area-inset-bottom,0px));text-align:center;font-size:.78rem;color:var(--muted);background:var(--bg-soft);border-top:1px solid var(--line)}.comm-room.is-readonly{color:inherit}.comm-avatar[src]{object-fit:cover}.comm-section-label{font-size:.72rem;font-weight:700;color:var(--muted);letter-spacing:.04em;text-transform:uppercase;margin:.85rem 0 .35rem;padding:0 .15rem}.comm-filter-label{display:block;margin:.35rem 0 .3rem;font-size:.78rem;font-weight:600;color:var(--muted)}.comm-filter-input{width:100%;box-sizing:border-box;min-height:var(--touch);padding:.55rem .85rem;border:1px solid var(--line);border-radius:.75rem;background:var(--bg);color:var(--text);font:inherit;font-size:.95rem}.comm-filter-input:focus{outline:2px solid color-mix(in srgb,var(--accent) 40%,transparent);border-color:var(--accent)}.comm-status-ico{display:inline-flex;align-items:center;justify-content:center;color:var(--muted);flex-shrink:0}.comm-status-ico.is-new{color:var(--accent)}.comm-bang{display:inline-flex;align-items:center;justify-content:center;min-width:.68rem;height:.68rem;padding:0 .12rem;border-radius:999px;font-size:.42rem;font-weight:800;line-height:1;color:#fff;background:var(--danger, #c0392b);flex-shrink:0}.comm-unread-badge{display:inline-flex;align-items:center;justify-content:center;min-width:1.05rem;height:1.05rem;padding:0 .32rem;margin-left:.25rem;border-radius:999px;font-size:.68rem;font-weight:800;line-height:1;color:#fff;background:var(--danger, #c0392b);flex-shrink:0;vertical-align:middle}.comm-tab .comm-unread-badge{margin-left:.35rem}.comm-room-bottom .comm-unread-badge{margin-left:auto}.comm-room.is-unread{background:color-mix(in srgb,var(--accent) 8%,#fff)}.comm-status-ico svg{width:1.05rem;height:1.05rem}.comm-room.is-new{background:color-mix(in srgb,var(--accent) 10%,var(--bg-soft));box-shadow:inset 3px 0 0 var(--accent)}.comm-search-item.is-disabled,.comm-search-item:disabled{opacity:.55;cursor:not-allowed}.comm-invite-fold{border-radius:var(--radius);background:var(--bg-soft);padding:.15rem .9rem}.comm-invite-fold>summary{list-style:none;min-height:var(--touch);display:flex;align-items:center;font-size:.9rem;font-weight:700;color:var(--accent-text);cursor:pointer;touch-action:manipulation}.comm-invite-fold>summary::-webkit-details-marker{display:none}.comm-invite-fold>summary:after{content:"+";margin-left:auto;font-size:1.2rem;font-weight:500;color:var(--muted)}.comm-invite-fold[open]>summary:after{content:"−"}.comm-invite-fold .comm-invite{padding:0 0 .85rem;background:transparent}.comm-room{display:flex;align-items:center;gap:.75rem;width:100%;min-height:3.75rem;text-align:left;border:none;background:var(--bg);border-radius:.85rem;padding:.7rem .55rem;cursor:pointer;color:inherit;touch-action:pan-y;transition:transform .38s cubic-bezier(.22,1,.36,1);position:relative;z-index:1}.comm-avatar-wrap.is-unlinked{position:relative;flex-shrink:0;width:2.75rem;height:2.75rem;border-radius:50%;overflow:hidden}.comm-avatar-wrap.is-unlinked .comm-avatar{width:100%;height:100%;filter:blur(2.4px);opacity:.55}.comm-avatar-unlink-mark{position:absolute;inset:0;display:grid;place-items:center;background:color-mix(in srgb,var(--bg) 28%,transparent);color:var(--text);pointer-events:none}.comm-avatar-unlink-mark svg{width:1.15rem;height:1.15rem}.comm-swipe-row{position:relative;overflow:hidden;border-radius:.85rem;--swipe: 0}.comm-swipe-actions{position:absolute;inset:0 0 0 auto;z-index:0;display:flex;align-items:center;justify-content:center;width:4.75rem;padding-right:.35rem;box-sizing:border-box;pointer-events:none}.comm-swipe-row.is-open .comm-swipe-actions{pointer-events:auto}.comm-swipe-remove{display:grid;place-items:center;width:2.75rem;height:2.75rem;margin:0;padding:0;border:0;border-radius:50%;background:var(--danger);color:#fff;box-shadow:0 6px 16px color-mix(in srgb,var(--danger) 38%,transparent);cursor:pointer;touch-action:manipulation;opacity:calc(.25 + var(--swipe) * .75);transform:scale(calc(.55 + var(--swipe) * .45)) rotate(calc((1 - var(--swipe)) * -28deg));transition:transform .18s cubic-bezier(.22,1,.36,1),opacity .18s ease}.comm-swipe-row.is-dragging .comm-swipe-remove{transition:none}.comm-swipe-row.is-open .comm-swipe-remove{opacity:1;transform:scale(1) rotate(0)}.comm-swipe-remove svg{width:1.2rem;height:1.2rem;fill:currentColor}.comm-swipe-remove:active{transform:scale(.92)}.comm-swipe-row.is-open .comm-room{transform:translate(-76px)}@media(prefers-reduced-motion:reduce){.comm-room,.comm-swipe-remove{transition:none}}.comm-room:active{background:var(--bg-soft)}.comm-room.is-pending{opacity:.92}.comm-room-body{flex:1;min-width:0;display:flex;flex-direction:column;gap:.2rem}.comm-room-top,.comm-room-bottom{display:flex;align-items:center;gap:.45rem}.comm-room-name{flex:1;min-width:0;font-size:1rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.comm-room-time{flex-shrink:0;font-size:.7rem;color:var(--muted)}.comm-room-preview{flex:1;min-width:0;font-size:.82rem;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.comm-hint{margin:0;font-size:.78rem;color:var(--muted);line-height:1.4}.comm-empty{margin:1.5rem .5rem;text-align:center;color:var(--muted);font-size:.9rem}.comm-empty.is-soft{margin:2rem .75rem}.comm-invite{display:flex;flex-direction:column;gap:.45rem;padding:.85rem .9rem;background:var(--bg-soft);border-radius:var(--radius)}.comm-invite-label{font-size:.78rem;font-weight:700;color:var(--accent-text)}.comm-invite-input{width:100%;min-height:var(--touch);padding:.65rem .85rem;border:1px solid var(--line);border-radius:.65rem;background:var(--bg);font:inherit;font-size:1rem}.comm-invite-input:focus{outline:2px solid color-mix(in srgb,var(--accent) 45%,transparent);border-color:var(--accent)}.comm-invite-status{margin:0;font-size:.78rem;color:var(--muted)}.comm-invite-selected{display:flex;align-items:center;gap:.65rem;padding:.55rem .15rem .15rem}.comm-invite-selected-text{flex:1;min-width:0;display:flex;flex-direction:column;gap:.1rem}.comm-invite-selected-text strong{font-size:.95rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.comm-invite-selected-text .muted{font-size:.75rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.comm-invite-send{flex-shrink:0;min-height:var(--touch);min-width:4.5rem;padding:0 1rem}.comm-search-results{display:flex;flex-direction:column;gap:.2rem;max-height:40vh;overflow-y:auto;-webkit-overflow-scrolling:touch;margin:0 -.15rem}.comm-search-item{display:flex;align-items:center;gap:.7rem;width:100%;min-height:var(--touch);text-align:left;border:none;background:var(--bg);border-radius:.65rem;padding:.55rem .65rem;cursor:pointer;color:inherit;touch-action:manipulation}.comm-search-item:active{background:var(--accent-soft)}.comm-search-copy{display:flex;flex-direction:column;gap:.1rem;min-width:0}.comm-search-copy strong{font-size:.95rem}.comm-search-copy .muted{font-size:.75rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.comm-avatar{flex-shrink:0;width:2.4rem;height:2.4rem;border-radius:50%;display:grid;place-items:center;background:color-mix(in srgb,var(--accent) 16%,var(--bg-soft));color:var(--accent-text);font-size:.95rem;font-weight:700}.comm-avatar.is-lg{width:4rem;height:4rem;font-size:1.5rem;margin:0 auto .75rem}.comm-list{display:flex;flex-direction:column;gap:.15rem}.comm-link-card{display:flex;align-items:center;gap:.75rem;width:100%;min-height:3.4rem;text-align:left;border:none;background:transparent;border-radius:.75rem;padding:.65rem .5rem;cursor:pointer;color:inherit;touch-action:manipulation}.comm-link-card:active{background:var(--bg-soft)}.comm-link-copy{flex:1;min-width:0;display:flex;flex-direction:column;gap:.12rem}.comm-link-row{display:flex;align-items:center;gap:.4rem}.comm-link-row strong{font-size:1rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.comm-link-sub{font-size:.78rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.comm-badge{flex-shrink:0;font-size:.65rem;font-weight:700;color:var(--accent-text);background:var(--accent-soft);padding:.15rem .4rem;border-radius:999px}.comm-chevron{flex-shrink:0;color:var(--muted);font-size:1.25rem;line-height:1}.comm-thread-pane{display:flex;flex-direction:column;flex:1;min-height:0;margin:0 -.15rem}.comm-page.is-thread{display:flex;flex-direction:column;flex:1 1 auto;width:100%;height:100%;min-height:0;max-height:100%;margin:0;max-width:none;overflow:hidden}.comm-page.is-thread .comm-thread-pane{position:relative;display:flex;flex-direction:column;flex:1 1 auto;width:100%;height:100%;min-height:0;max-height:100%;margin:0;box-sizing:border-box;background:radial-gradient(ellipse 120% 60% at 50% -10%,color-mix(in srgb,var(--accent) 8%,transparent),transparent 55%),var(--bg)}html.comm-chat-mode,html.comm-chat-mode body{overflow:hidden;height:100%;overscroll-behavior:none}html.comm-chat-mode #app{display:flex;flex-direction:column;height:100dvh;min-height:100dvh;max-height:100dvh;overflow:hidden}html.comm-chat-mode .topbar,html.comm-chat-mode .bottom-nav{display:none!important}html.comm-profile-mode .page-with-bottom-nav{padding-bottom:calc(2rem + var(--bottom-floor-pad) + var(--safe-bottom))}html.comm-chat-mode .page,html.comm-chat-mode .page-with-bottom-nav{width:100%;max-width:none;margin:0;padding:0!important;flex:1 1 auto;height:100dvh!important;min-height:100dvh!important;max-height:100dvh!important;overflow:hidden;display:flex;flex-direction:column}html.comm-chat-mode .comm-page.is-thread{display:flex;flex-direction:column;flex:1 1 auto;width:100%;height:100%!important;min-height:100%!important;max-height:100%!important;overflow:hidden;padding:0;box-sizing:border-box}html.comm-chat-mode .comm-page.is-thread .comm-thread-pane{position:relative;display:flex;flex-direction:column;flex:1 1 auto;width:100%;height:100dvh!important;min-height:100dvh!important;max-height:100dvh!important;overflow:hidden;margin:0;box-sizing:border-box}html.comm-chat-mode .comm-compose,html.comm-chat-mode .comm-readonly-banner{position:absolute;left:0;right:0;bottom:0;margin-top:0;z-index:6}html.comm-chat-mode .comm-messages{flex:1 1 0;min-height:0;overflow-x:hidden;overflow-y:auto;-webkit-overflow-scrolling:touch;overscroll-behavior:contain;padding-bottom:calc(5.35rem + env(safe-area-inset-bottom,0px) + var(--comm-kb, 0px))}.comm-thread-bar{display:flex;align-items:center;gap:.5rem;padding:calc(.65rem + var(--safe-top)) 1rem .65rem;border-bottom:1px solid var(--line);background:color-mix(in srgb,var(--tone-5) 92%,transparent);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);box-sizing:border-box;min-height:calc(var(--touch) + 1.3rem + var(--safe-top));flex-shrink:0;z-index:5}.comm-thread-leave{flex-shrink:0;margin-left:auto;display:inline-flex;align-items:center;justify-content:center;width:var(--touch);min-width:var(--touch);min-height:var(--touch);padding:0;border:1px solid var(--line);border-radius:.65rem;background:var(--bg);color:var(--text);box-shadow:var(--shadow);cursor:pointer;touch-action:manipulation}.comm-thread-leave:hover{border-color:var(--line-strong);color:var(--accent)}.comm-thread-leave svg{width:1.25rem;height:1.25rem;fill:currentColor;flex-shrink:0;animation:topbar-icon-reveal .42s ease-out both}@media(prefers-reduced-motion:reduce){.comm-thread-leave svg{animation:none}}.comm-thread-head .comm-back{flex-shrink:0}.comm-back{flex-shrink:0;width:var(--touch);height:var(--touch);border:none;background:transparent;border-radius:.65rem;font-size:1.55rem;line-height:1;color:var(--text);cursor:pointer;touch-action:manipulation}.comm-back:active{background:var(--bg-soft)}.comm-avatar.is-sm{width:var(--touch);height:var(--touch);font-size:.9rem;flex-shrink:0}.comm-thread-title{flex:1;min-width:0;display:flex;flex-direction:column;gap:.05rem}.comm-thread-title strong{font-size:1.02rem;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.comm-thread-title .muted{font-size:.72rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.comm-thread-badge{flex-shrink:0;font-size:.68rem;font-weight:700;color:var(--muted);background:var(--bg-soft);border:1px solid var(--line);padding:.2rem .45rem;border-radius:999px}.comm-more{flex-shrink:0;width:var(--touch);height:var(--touch);border:none;background:transparent;border-radius:.55rem;font-size:1.25rem;letter-spacing:.05em;color:var(--muted);cursor:pointer;touch-action:manipulation}.comm-more:active{background:var(--bg-soft);color:var(--text)}.comm-more-menu{position:absolute;top:100%;right:.35rem;min-width:10.5rem;padding:.35rem;background:var(--bg-elev);border:1px solid var(--line);border-radius:.75rem;box-shadow:var(--shadow-md);z-index:20}.comm-more-item{display:block;width:100%;min-height:var(--touch);border:none;background:transparent;border-radius:.55rem;padding:0 .85rem;text-align:left;font:inherit;font-size:.92rem;font-weight:600;color:var(--text);cursor:pointer;touch-action:manipulation}.comm-more-item:active{background:var(--bg-soft)}.comm-more-item.is-danger{color:var(--danger)}.comm-invite-card{margin:1.5rem .75rem;text-align:center;padding:1.25rem 1rem;background:var(--bg-soft);border-radius:1rem}.comm-invite-card h2{margin:0 0 .35rem;font-size:1.15rem}.comm-invite-card .lede{margin:0 0 1rem;font-size:.9rem}.comm-actions{display:flex;flex-direction:column;gap:.5rem}.comm-actions .primary,.comm-actions .ghost{width:100%;min-height:var(--touch)}.comm-actions-icon{align-items:center;margin-top:.75rem}.comm-link-cta{display:grid;place-items:center;width:3.25rem;height:3.25rem;border:1px solid var(--line);border-radius:50%;background:var(--bg);color:var(--accent-text);cursor:pointer;touch-action:manipulation}.comm-link-cta:active{background:var(--accent-soft)}.comm-link-cta svg{width:1.35rem;height:1.35rem}.comm-letter-overlay{position:fixed;inset:0;z-index:70;display:flex;align-items:center;justify-content:center;padding:1.25rem;padding-bottom:calc(1.25rem + var(--bottom-nav-h, 0px) + var(--safe-bottom));background:#0f172a47;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)}.comm-letter-stage{display:flex;flex-direction:column;align-items:center;gap:.85rem;width:min(20rem,100%);text-align:center}.comm-letter-drop{border:none;background:transparent;padding:.5rem;cursor:pointer;touch-action:manipulation;animation:comm-letter-fall 1.05s cubic-bezier(.22,1,.36,1) both}.comm-letter-emoji{display:block;font-size:4.25rem;line-height:1;filter:drop-shadow(0 10px 18px rgba(15,23,42,.22))}.comm-letter-hint{margin:0;font-size:.9rem}.comm-letter-reject{border:none;background:transparent;color:var(--muted);font:inherit;font-size:.88rem;text-decoration:underline;text-underline-offset:.15em;padding:.5rem .75rem;min-height:var(--touch);cursor:pointer}.comm-letter-reject:disabled,.comm-letter-drop:disabled{opacity:.55;cursor:not-allowed}.comm-letter-status{margin:0;color:var(--danger);font-size:.85rem}.comm-letter-stage.is-reveal{gap:.95rem}.comm-letter-reveal-item{opacity:0;filter:blur(12px);transform:translateY(10px);animation:comm-letter-unblur .55s ease forwards;animation-delay:calc(var(--i, 0) * .28s + .08s)}.comm-letter-name{margin:0;font-family:var(--display);font-size:1.35rem}.comm-letter-done{margin:0;font-size:1rem;font-weight:650;color:var(--accent-text)}.comm-letter-link{display:grid;place-items:center;width:3.5rem;height:3.5rem;border:1px solid var(--line);border-radius:50%;background:#fff;color:var(--accent-text);box-shadow:var(--shadow-md);cursor:pointer;touch-action:manipulation}.comm-letter-link:active{background:var(--accent-soft)}.comm-letter-link svg{width:1.45rem;height:1.45rem}@keyframes comm-letter-fall{0%{opacity:0;transform:translateY(-42vh) scale(.86) rotate(-8deg)}to{opacity:1;transform:translateY(0) scale(1) rotate(0)}}@keyframes comm-letter-unblur{to{opacity:1;filter:blur(0);transform:translateY(0)}}.comm-msg-row.is-system{align-self:center;align-items:center;max-width:92%}.comm-msg.is-system{background:transparent;border:none;box-shadow:none;padding:.35rem .5rem;color:var(--muted);font-size:.86rem;text-align:center;line-height:1.45}.comm-msg.is-system .comm-msg-body{padding:0}.comm-messages{flex:1 1 auto;min-height:0;overflow-x:hidden;overflow-y:auto;-webkit-overflow-scrolling:touch;overscroll-behavior:contain;touch-action:pan-y;display:flex;flex-direction:column;gap:.55rem;padding:.75rem .85rem .85rem}html.comm-chat-mode .comm-messages .comm-msg-row,html.comm-chat-mode .comm-messages .comm-day-sep{flex-shrink:0}.comm-day-sep{display:flex;justify-content:center;margin:.35rem 0 .15rem;flex-shrink:0}.comm-day-sep span{font-size:.72rem;font-weight:600;color:var(--muted);background:color-mix(in srgb,var(--bg-soft) 88%,transparent);border:1px solid var(--line);padding:.28rem .7rem;border-radius:999px}.comm-msg-row{display:flex;flex-direction:column;align-items:flex-start;gap:.18rem;max-width:86%;align-self:flex-start;flex-shrink:0}.comm-msg-row.is-mine{align-items:flex-end;align-self:flex-end}.comm-msg{max-width:100%;padding:.65rem .85rem;border-radius:1.05rem 1.05rem 1.05rem .35rem;background:var(--bg-elev, var(--bg-soft));border:1px solid var(--line);font-size:.98rem;line-height:1.45;word-break:break-word;box-shadow:0 1px 2px #0f172a0a}.comm-msg-row.is-mine .comm-msg{border-radius:1.05rem 1.05rem .35rem;background:var(--accent);border-color:transparent;color:var(--on-accent);box-shadow:0 2px 8px color-mix(in srgb,var(--accent) 28%,transparent)}.comm-msg-time{font-size:.65rem;color:var(--muted);padding:0 .2rem;line-height:1}.comm-msg-meta{font-size:.68rem;color:var(--muted);margin-bottom:.2rem}.comm-compose{display:flex;align-items:center;flex:0 0 auto;flex-shrink:0;margin-top:0;width:100%;box-sizing:border-box;height:calc(4.85rem + env(safe-area-inset-bottom,0px));max-height:calc(4.85rem + env(safe-area-inset-bottom,0px));padding:.5rem .7rem calc(var(--bottom-floor-pad) + env(safe-area-inset-bottom,0px));border-top:1px solid var(--line);background:var(--bg);z-index:6}.comm-compose-field{position:relative;flex:1 1 auto;width:100%;min-width:0;height:2.75rem}.comm-compose input{display:block;width:100%;height:2.75rem;min-height:2.75rem;max-height:2.75rem;box-sizing:border-box;padding:0 2.85rem 0 1rem;border:1px solid var(--line);border-radius:1.35rem;font:inherit;font-size:1rem;line-height:2.75rem;background:var(--bg-soft);color:var(--text);resize:none;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.comm-compose input:focus{outline:2px solid color-mix(in srgb,var(--accent) 40%,transparent);border-color:var(--accent);background:var(--bg)}.comm-send{position:absolute;top:50%;right:.3rem;transform:translateY(-50%);width:2.2rem;height:2.2rem;min-width:2.2rem;min-height:2.2rem;max-height:2.2rem;display:inline-flex;align-items:center;justify-content:center;margin:0;padding:0;border:none;border-radius:999px;background:var(--accent);color:var(--on-accent);cursor:pointer;touch-action:manipulation;box-shadow:none}.comm-send:active{transform:translateY(-50%) scale(.96)}.comm-send svg{width:1rem;height:1rem;display:block;margin-left:.08rem}.comm-compose .primary{flex-shrink:0;min-height:var(--touch);min-width:3.75rem;border-radius:999px;padding:0 .9rem}.comm-leave-link{display:block;width:100%;border:none;background:transparent;color:var(--muted);font:inherit;font-size:.75rem;padding:.35rem .75rem .75rem;text-align:center;cursor:pointer;touch-action:manipulation}.comm-leave-link:active{color:var(--danger)}.tiny{font-size:.75rem}@media(min-width:721px){.comm-page,html.comm-chat-mode .page,html.comm-chat-mode .page-with-bottom-nav{max-width:28rem;margin-left:auto;margin-right:auto}}
