:root{font-family:system-ui,-apple-system,Segoe UI,sans-serif;line-height:1.5;font-weight:400;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;color-scheme:dark;--bg-app: #0a1018;--bg-app-muted: #111927;--bg-surface: #162132;--bg-surface-muted: #1b2940;--bg-surface-strong: #0f1724;--bg-elevated: #1f2b42;--bg-input: #101a28;--bg-overlay: rgba(2, 6, 15, .72);--bg-chip-neutral: #2a3444;--bg-chip-success: #123020;--bg-chip-warning: #392908;--bg-chip-danger: #3a1618;--text-primary: #eef4ff;--text-secondary: #bfd0ea;--text-muted: #93a6c4;--text-inverse: #08111d;--border-subtle: #2a3952;--border-strong: #405471;--accent: #ff645f;--accent-hover: #ff7a74;--accent-soft: rgba(255, 100, 95, .16);--accent-soft-hover: rgba(255, 100, 95, .24);--success: #58d68d;--success-soft: rgba(88, 214, 141, .18);--success-border: rgba(88, 214, 141, .4);--warning: #f7c566;--warning-soft: rgba(247, 197, 102, .2);--warning-border: rgba(247, 197, 102, .38);--danger: #ff8c86;--danger-soft: rgba(255, 140, 134, .16);--danger-border: rgba(255, 140, 134, .36);--info: #7bb6ff;--info-soft: rgba(123, 182, 255, .16);--info-border: rgba(123, 182, 255, .34);--focus-ring-color: #7bb6ff;--focus-ring: 0 0 0 3px rgba(123, 182, 255, .34);--button-primary-bg: var(--accent);--button-primary-hover: var(--accent-hover);--button-primary-text: #fff7f6;--button-secondary-bg: var(--bg-surface-muted);--button-secondary-hover: #24344d;--button-secondary-text: var(--text-primary);--button-ghost-bg: transparent;--button-ghost-hover: rgba(255, 255, 255, .08);--button-ghost-text: var(--text-secondary);--button-destructive-bg: #d04f52;--button-destructive-hover: #e06063;--button-destructive-text: #fff6f6;--input-border: var(--border-subtle);--input-placeholder: var(--text-muted);--shadow-sm: 0 1px 3px rgba(0, 0, 0, .22);--shadow-md: 0 8px 24px rgba(0, 0, 0, .28);--shadow-lg: 0 18px 48px rgba(0, 0, 0, .34);--home-hero-bg: linear-gradient(180deg, #09111d 0%, #10192a 100%);--surface-highlight: linear-gradient(180deg, rgba(255, 100, 95, .12) 0%, rgba(17, 25, 39, 0) 100%);--nav-bg: rgba(8, 13, 23, .94);--nav-text: #f5f9ff;--nav-link-hover: #ff968f;--text-xs: .82rem;--text-sm: .92rem;--text-base: 1.0625rem;--text-md: 1.16rem;--text-lg: 1.32rem;--text-xl: 1.58rem;--text-2xl: 2rem;--text-3xl: 2.45rem;--space-1: .25rem;--space-2: .5rem;--space-3: .75rem;--space-4: 1rem;--space-5: 1.25rem;--space-6: 1.5rem;--space-7: 1.75rem;--space-8: 2rem;--space-9: 2.5rem;--space-10: 3rem;--radius-sm: 6px;--radius-md: 8px;--radius-lg: 10px;--radius-modal: 12px;--radius-pill: 999px;--control-height: 44px;--control-height-compact: 38px;--control-height-large: 48px;--surface-border: 1px solid var(--border-subtle);--surface-shadow: 0 1px 2px rgba(0, 0, 0, .18);--surface-shadow-raised: 0 10px 28px rgba(0, 0, 0, .28);--section-gap: var(--space-5);--card-padding: var(--space-5);color:var(--text-primary);background-color:var(--bg-app)}:root[data-theme=light]{color-scheme:light;--bg-app: #f6f8fc;--bg-app-muted: #edf2f8;--bg-surface: #ffffff;--bg-surface-muted: #f7f9fc;--bg-surface-strong: #ffffff;--bg-elevated: #ffffff;--bg-input: #ffffff;--bg-overlay: rgba(5, 10, 20, .42);--bg-chip-neutral: #eef2f7;--bg-chip-success: #eaf8ee;--bg-chip-warning: #fff7e6;--bg-chip-danger: #fff0f0;--text-primary: #162131;--text-secondary: #435469;--text-muted: #6f8097;--text-inverse: #ffffff;--border-subtle: #d6dee9;--border-strong: #b8c6d8;--accent: #e53935;--accent-hover: #c92b27;--accent-soft: rgba(229, 57, 53, .1);--accent-soft-hover: rgba(229, 57, 53, .16);--success: #23814a;--success-soft: rgba(35, 129, 74, .12);--success-border: rgba(35, 129, 74, .24);--warning: #9b6a07;--warning-soft: rgba(155, 106, 7, .12);--warning-border: rgba(155, 106, 7, .22);--danger: #c73834;--danger-soft: rgba(199, 56, 52, .1);--danger-border: rgba(199, 56, 52, .22);--info: #1e66d0;--info-soft: rgba(30, 102, 208, .1);--info-border: rgba(30, 102, 208, .22);--focus-ring-color: #1d4ed8;--focus-ring: 0 0 0 3px rgba(29, 78, 216, .22);--button-primary-bg: var(--accent);--button-primary-hover: var(--accent-hover);--button-primary-text: #ffffff;--button-secondary-bg: #ffffff;--button-secondary-hover: #f1f5fb;--button-secondary-text: var(--text-primary);--button-ghost-bg: transparent;--button-ghost-hover: rgba(22, 33, 49, .06);--button-ghost-text: var(--text-secondary);--button-destructive-bg: #d54844;--button-destructive-hover: #bf342f;--button-destructive-text: #ffffff;--input-border: #cfd7e3;--input-placeholder: #8896a9;--shadow-sm: 0 1px 3px rgba(20, 33, 54, .08);--shadow-md: 0 10px 24px rgba(20, 33, 54, .1);--shadow-lg: 0 18px 48px rgba(20, 33, 54, .14);--surface-shadow: 0 1px 2px rgba(20, 33, 54, .08);--surface-shadow-raised: 0 10px 28px rgba(20, 33, 54, .12);--home-hero-bg: linear-gradient(180deg, #ffffff 0%, #f7f9fc 100%);--surface-highlight: linear-gradient(180deg, rgba(229, 57, 53, .08) 0%, rgba(255, 255, 255, 0) 100%);--nav-bg: #000000;--nav-text: #ffffff;--nav-link-hover: #ff8f8a}*{box-sizing:border-box}html,body{background:var(--bg-app);color:var(--text-primary)}body{margin:0;min-width:320px;min-height:100vh;font-size:var(--text-base);line-height:1.55}a{font-weight:600;color:var(--accent);text-decoration:none}a:hover{color:var(--accent-hover)}button,input,textarea,select{font-family:inherit;font-size:var(--text-base)}input,textarea,select{min-height:var(--control-height);border-radius:var(--radius-md);padding:.62rem .78rem;background:var(--bg-input);color:var(--text-primary);border:1px solid var(--input-border)}input::placeholder,textarea::placeholder{color:var(--input-placeholder)}input:focus-visible,textarea:focus-visible,select:focus-visible,button:focus-visible{outline:2px solid var(--focus-ring-color);outline-offset:2px}html,body,#root,.homepage-root{width:100vw;min-height:100vh;margin:0;padding:0;background:#fff;box-sizing:border-box;overflow-x:hidden}.morse-chat-page{--card-bg: var(--bg-surface);--text-strong: var(--text-primary);--morse-chat-panel-bg: linear-gradient( 180deg, color-mix(in srgb, var(--bg-surface) 96%, transparent), color-mix(in srgb, var(--bg-elevated) 88%, transparent) );--morse-chat-panel-soft-bg: color-mix(in srgb, var(--bg-surface-muted) 86%, transparent);--morse-chat-chip-bg: color-mix(in srgb, var(--bg-surface-muted) 78%, transparent);--morse-chat-self-bg: color-mix(in srgb, var(--accent-soft) 64%, var(--bg-surface));--morse-chat-incoming-bg: color-mix(in srgb, var(--bg-elevated) 88%, var(--info-soft));--morse-chat-incoming-border: color-mix(in srgb, var(--border-strong) 72%, var(--info-border));--morse-chat-incoming-shadow: 0 1px 0 rgba(255, 255, 255, .04) inset, 0 6px 16px rgba(0, 0, 0, .18);--morse-chat-live-bg: color-mix(in srgb, var(--danger-soft) 46%, var(--bg-surface));width:min(1480px,100%);margin:0 auto;padding:clamp(1rem,2vw,1.75rem)}:root[data-theme=light] .morse-chat-page{--morse-chat-incoming-bg: linear-gradient(180deg, #ffffff 0%, #f2f6fb 100%);--morse-chat-incoming-border: color-mix(in srgb, var(--border-strong) 86%, var(--bg-surface));--morse-chat-incoming-shadow: 0 1px 0 rgba(255, 255, 255, .92) inset, 0 7px 18px rgba(15, 23, 42, .1)}.morse-chat-hero{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.75rem 0 .85rem;border-bottom:1px solid var(--border-subtle, rgba(148, 163, 184, .24))}.morse-chat-hero-copy{display:grid;gap:.45rem;max-width:680px}.morse-chat-hero-copy h1{margin:0;font-size:clamp(1.55rem,2.6vw,2.5rem);line-height:1.05;letter-spacing:0}.morse-chat-hero-copy p{margin:0;color:var(--text-muted, #64748b);font-size:.95rem;line-height:1.5}.morse-chat-room-actions,.morse-chat-action-row,.morse-chat-audio-actions,.morse-chat-message-actions,.morse-chat-roster-actions{display:flex;align-items:center;gap:.55rem;flex-wrap:wrap}.morse-chat-invite-form{display:flex;align-items:center;gap:.45rem}.morse-chat-invite-form input{min-width:9rem;max-width:10rem;text-transform:uppercase}.morse-chat-meta-bar{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));align-items:stretch;gap:.55rem;padding:.65rem 0}.morse-chat-meta-bar>div,.morse-chat-meta-bar>.morse-chat-composer,.morse-chat-meta-bar>.morse-chat-roster,.morse-chat-meta-bar>.morse-chat-on-air,.morse-chat-audio-gate,.morse-chat-receive-panel,.morse-chat-composer,.morse-chat-timeline,.morse-chat-on-air,.morse-chat-roster{border:1px solid var(--border-subtle, rgba(148, 163, 184, .22));background:var(--morse-chat-panel-bg, var(--card-bg, rgba(255, 255, 255, .72)));color:var(--text-primary);border-radius:8px}.morse-chat-meta-bar>div,.morse-chat-meta-bar>.morse-chat-composer.compact,.morse-chat-meta-bar>.morse-chat-roster.compact,.morse-chat-meta-bar>.morse-chat-on-air{display:grid;gap:.14rem;min-height:0;min-width:0;padding:.48rem .58rem}.morse-chat-meta-bar>.morse-chat-composer.compact{grid-column:auto;height:100%;max-width:none}.morse-chat-meta-bar>.morse-chat-roster.compact{grid-column:auto;height:100%;max-width:none}.morse-chat-meta-bar>.morse-chat-on-air{grid-column:auto;height:100%;max-width:none}.morse-chat-meta-bar>div{grid-template-columns:auto minmax(0,1fr);align-items:center;column-gap:.5rem}.morse-chat-meta-bar>.morse-chat-indicator-strip{grid-column:1 / -1;display:flex;flex-wrap:wrap;align-items:center;gap:.35rem;padding:0;border:0;border-radius:0;background:transparent;box-shadow:none}.morse-chat-indicator{display:inline-flex;align-items:center;gap:.35rem;min-width:0;min-height:1.65rem;padding:.18rem .46rem;border:1px solid color-mix(in srgb,var(--border-subtle) 88%,transparent);border-radius:var(--radius-pill);background:color-mix(in srgb,var(--bg-surface-muted) 72%,transparent);color:var(--text-primary)}.morse-chat-indicator:before{width:.38rem;height:.38rem;border-radius:999px;background:color-mix(in srgb,var(--text-muted) 62%,transparent);content:""}.morse-chat-indicator.connected:before{background:var(--success)}.morse-chat-indicator.pending:before,.morse-chat-indicator.warning:before{background:var(--warning)}.morse-chat-indicator.error:before{background:var(--danger)}.morse-chat-indicator span{min-height:0;padding:0;border-radius:0;color:var(--text-muted);font-size:.66rem;font-weight:850;line-height:1;text-transform:none}.morse-chat-indicator b{min-width:0;overflow:hidden;color:var(--text-primary);font-size:.78rem;font-weight:900;line-height:1;text-overflow:ellipsis;white-space:nowrap}.morse-chat-meta-bar span,.morse-chat-kicker,.morse-chat-live-copy span{color:var(--text-muted, #64748b);font-size:.76rem;font-weight:800;letter-spacing:0;text-transform:uppercase}.morse-chat-meta-bar b{overflow-wrap:anywhere}.morse-chat-meta-bar>.morse-chat-composer.compact{border:1px solid var(--border-subtle, rgba(148, 163, 184, .22));background:var(--morse-chat-panel-bg, var(--card-bg, rgba(255, 255, 255, .72)));border-radius:8px;align-content:center}.morse-chat-meta-bar>.morse-chat-roster.compact{border:1px solid var(--border-subtle, rgba(148, 163, 184, .22));background:var(--morse-chat-panel-bg, var(--card-bg, rgba(255, 255, 255, .72)));border-radius:8px}.morse-chat-meta-bar>.morse-chat-on-air{border:1px solid var(--border-subtle, rgba(148, 163, 184, .22));background:var(--morse-chat-panel-bg, var(--card-bg, rgba(255, 255, 255, .72)));border-radius:8px}.morse-chat-meta-bar>.morse-chat-on-air .morse-chat-section-head{margin-bottom:.2rem}.morse-chat-meta-bar>.morse-chat-on-air .morse-chat-section-head h3{margin:0;font-size:.98rem;line-height:1.1}.morse-chat-meta-bar>.morse-chat-roster.compact .morse-chat-section-head{margin-bottom:.2rem}.morse-chat-meta-bar>.morse-chat-roster.compact .morse-chat-section-head h3{margin:0;font-size:.98rem;line-height:1.1}.morse-chat-meta-bar>.morse-chat-composer.compact .morse-chat-section-head{align-items:center;margin-bottom:0}.morse-chat-meta-bar>.morse-chat-composer.compact .morse-chat-section-head h3{margin:0;font-size:.98rem;line-height:1.1}.morse-chat-meta-bar>.morse-chat-composer.compact .morse-chat-keyer-line{font-size:.74rem}.morse-chat-audio-gate{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.95rem 1rem;margin-bottom:1rem}.morse-chat-audio-gate>div{display:grid;gap:.2rem}.morse-chat-audio-actions{display:flex;justify-content:flex-end}.morse-chat-audio-gate span,.morse-chat-receive-copy{color:var(--text-muted, #64748b)}.morse-chat-receive-panel>.challenge-secondary-btn{margin-top:.8rem}.morse-chat-overlap-warning{margin-bottom:1rem;padding:.85rem 1rem;border-radius:8px;border:1px solid rgba(245,158,11,.5);background:#f59e0b24;color:var(--text-strong, #0f172a);font-weight:800;animation:morseChatPulse .9s ease-in-out infinite alternate}.morse-chat-legacy-easter-egg{margin-bottom:1rem;padding:.85rem 1rem;border-radius:8px;border:1px solid color-mix(in srgb,var(--button-primary-bg) 30%,var(--border-subtle));background:color-mix(in srgb,var(--bg-surface-muted) 88%,var(--button-primary-bg) 12%);color:var(--text-primary);display:flex;align-items:center;justify-content:space-between;gap:1rem;box-shadow:none}.morse-chat-legacy-easter-egg strong{display:block;font-size:var(--text-base, 1rem);line-height:1.25}.morse-chat-legacy-kicker{display:block;color:var(--button-primary-bg);font-size:var(--text-xs, .75rem);font-weight:900;letter-spacing:.08em;text-transform:uppercase;margin-bottom:.2rem}@media(max-width:640px){.morse-chat-legacy-easter-egg{align-items:stretch;flex-direction:column}}@keyframes morseChatPulse{0%{box-shadow:0 0 #f59e0b00}to{box-shadow:0 0 0 4px #f59e0b1f}}.morse-chat-layout{display:block}.morse-chat-main{display:grid;gap:1rem;min-width:0}.morse-chat-receive-panel,.morse-chat-composer,.morse-chat-timeline,.morse-chat-on-air,.morse-chat-roster{padding:1rem}.morse-chat-roster.compact{display:grid;gap:.5rem;padding:0;border:0;background:transparent}.morse-chat-composer:focus{outline:none}.morse-chat-composer:focus-visible{outline:var(--focus-ring);outline-offset:3px}.morse-chat-composer.compact{display:grid;gap:.35rem;align-content:start;padding:0;border:0;background:transparent}.morse-chat-composer.compact .morse-chat-section-head{margin-bottom:0}.morse-chat-section-head{display:flex;justify-content:space-between;align-items:flex-start;gap:.75rem;margin-bottom:.85rem}.morse-chat-section-head h3{margin:.15rem 0 0;font-size:1.05rem;letter-spacing:0}.morse-chat-room-top .morse-chat-section-head{align-items:center;gap:.55rem}.morse-chat-room-top .morse-chat-section-head h3{margin-top:.05rem;font-size:.92rem}.morse-chat-status-pill{flex:0 0 auto;display:inline-flex;align-items:center;gap:.35rem;border:1px solid var(--border-subtle, rgba(148, 163, 184, .25));border-radius:999px;padding:.25rem .55rem;font-size:.78rem;font-weight:800;color:var(--text-muted, #64748b)}.morse-chat-status-pill.live{color:var(--danger);border-color:var(--danger-border);background:var(--danger-soft)}.morse-chat-status-pill.ready{color:var(--success);border-color:var(--success-border);background:var(--success-soft)}.morse-chat-status-light{display:inline-flex;align-items:center;justify-content:center;width:.75rem;height:.75rem;flex:0 0 auto}.morse-chat-status-light>span{width:.62rem;height:.62rem;border-radius:999px;background:#94a3b8;box-shadow:0 0 0 2px #94a3b829}.morse-chat-status-light.armed>span{background:#f59e0b;box-shadow:0 0 0 2px #f59e0b2e}.morse-chat-status-light.sending>span{background:#ef4444;box-shadow:0 0 0 3px #ef44442e;animation:morseChatLightPulse .72s ease-in-out infinite alternate}.morse-chat-status-light.degraded>span{background:#f97316;box-shadow:0 0 0 3px #f9731633;animation:morseChatLightPulse .72s ease-in-out infinite alternate}.morse-chat-status-light.muted>span,.morse-chat-status-light.blocked>span{background:#64748b;opacity:.5}@keyframes morseChatLightPulse{0%{transform:scale(.86);opacity:.72}to{transform:scale(1.18);opacity:1}}.morse-chat-controls-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.8rem}.morse-chat-transmitter-summary{display:flex;flex-wrap:nowrap;align-items:center;gap:.35rem;margin-bottom:0;min-height:1.86rem;overflow:hidden}.morse-chat-transmitter-summary.overflow:empty{visibility:hidden}.morse-chat-keyer-line{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--text-muted, #64748b);font-size:.78rem;font-weight:800}.morse-chat-transmitter-summary span{max-width:100%;min-width:0;border:1px solid var(--border-subtle, rgba(148, 163, 184, .24));border-radius:999px;padding:.27rem .5rem;color:var(--text-muted, #64748b);font-size:.74rem;font-weight:800;line-height:1.15;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.morse-chat-composer.compact .morse-chat-action-row{gap:.35rem;margin-top:.05rem}.morse-chat-composer.compact .morse-chat-action-row .challenge-secondary-btn,.morse-chat-composer.compact .morse-chat-action-row .challenge-primary-btn{min-height:var(--control-height-compact);padding:.48rem .7rem;font-size:var(--text-sm)}.morse-chat-composer.compact .course-status-banner.compact{margin:0;padding:.5rem .6rem;font-size:.86rem;line-height:1.35}.morse-chat-composer.compact .morse-chat-transmit-meter{margin:0;min-height:1.88rem}.morse-chat-transmit-meter.idle{visibility:hidden}.morse-chat-sr-status{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.morse-chat-live-copy{display:grid;gap:.35rem;min-height:5rem;margin:.9rem 0;padding:.85rem;border-radius:8px;background:var(--morse-chat-panel-soft-bg, color-mix(in srgb, var(--bg-app, #f8fafc) 72%, transparent))}.morse-chat-live-copy b{display:block;min-height:2.8rem;line-height:1.4;overflow-wrap:anywhere}.morse-chat-readiness,.morse-chat-transmit-meter{display:flex;flex-wrap:wrap;gap:.45rem;margin:.75rem 0}.morse-chat-readiness span,.morse-chat-transmit-meter span,.morse-chat-transmit-meter b{border:1px solid var(--border-subtle, rgba(148, 163, 184, .24));border-radius:999px;padding:.35rem .6rem;color:var(--text-muted, #64748b);font-size:.78rem;font-weight:800}.morse-chat-transmit-meter.warning b{color:var(--danger);border-color:var(--danger-border);background:var(--danger-soft)}.modal.morse-chat-setup-modal{position:relative;box-sizing:border-box;width:min(660px,calc(100vw - 1.5rem));max-width:none;max-height:calc(100vh - 1.5rem);max-height:min(720px,calc(100dvh - 1.5rem));overflow:auto;padding:clamp(.85rem,1.6vw,1.1rem);border-radius:12px;text-align:left}.morse-chat-setup-modal .modal-x-btn{top:.45rem;right:.45rem;width:2rem;height:2rem;border-radius:999px;font-size:1.35rem;line-height:1}.morse-chat-setup-head{display:grid;gap:.28rem;margin:0 auto .65rem;max-width:34rem;padding:0 1.5rem;text-align:center}.morse-chat-setup-head h3,.morse-chat-setup-modal h4{margin:0}.morse-chat-setup-head h3{font-size:clamp(1.35rem,2vw,1.75rem);line-height:1.15}.morse-chat-setup-modal h4{font-size:1rem;line-height:1.2;text-align:center}.morse-chat-setup-title-row,.morse-chat-setup-subtitle-row,.keying-setup-title-row,.challenge-stage-title-row,.arena-play-now-title-row,.arena-panel-title-row{display:flex;align-items:center;gap:.45rem;min-width:0}.morse-chat-setup-title-row,.keying-setup-title-row{justify-content:center}.morse-chat-setup-title-row h3,.morse-chat-setup-subtitle-row h4,.keying-setup-title-row h2,.challenge-stage-title-row h3,.arena-play-now-title-row h3,.arena-panel-title-row h3{margin:0}.morse-chat-setup-subtitle-row{justify-content:flex-start}.modal.morse-chat-setup-modal .morse-chat-setup-head p{margin:0;color:var(--text-muted, #64748b);font-size:.88rem;line-height:1.35}.morse-chat-setup-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.75rem}.morse-chat-setup-stack{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:.7rem;align-items:start}.morse-chat-setup-stack.single{grid-template-columns:minmax(0,1fr)}.morse-chat-setup-panel{display:grid;gap:.55rem;border:1px solid var(--border-subtle, rgba(148, 163, 184, .22));border-radius:8px;padding:.7rem;min-width:0;align-content:start}.morse-chat-setup-panel .morse-chat-section-head{margin-bottom:0}.morse-chat-setup-panel .morse-chat-section-head .morse-chat-setup-row{min-width:min(100%,14rem)}.morse-chat-setup-copy{margin:0;color:var(--text-muted, #64748b);font-size:.86rem;line-height:1.35}.morse-chat-setup-grid.compact{grid-template-columns:repeat(2,minmax(0,1fr))}.morse-chat-setup-grid section{display:grid;gap:.55rem;border:1px solid var(--border-subtle, rgba(148, 163, 184, .22));border-radius:8px;padding:.75rem;min-width:0;align-content:start}.morse-chat-setup-input{grid-column:1 / -1}.morse-chat-setup-row{display:grid;grid-template-columns:minmax(0,1fr) minmax(7rem,auto);align-items:center;gap:.55rem;border-radius:8px;padding:.42rem .52rem;background:var(--morse-chat-panel-soft-bg, color-mix(in srgb, var(--bg-app, #f8fafc) 75%, transparent));min-width:0;font-size:.84rem;line-height:1.3}.morse-chat-setup-row span{color:var(--text-muted, #64748b);min-width:0}.morse-chat-setup-row b{min-width:0;max-width:12rem;justify-self:end;text-align:right;overflow-wrap:anywhere}.morse-chat-setup-row.good b{color:var(--success)}.morse-chat-setup-row.warn b{color:var(--warning)}.morse-chat-setup-row.bad b,.morse-chat-setup-error{color:var(--danger)}.morse-chat-setup-modal .morse-chat-audio-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.5rem}.morse-chat-setup-modal .morse-chat-audio-actions button,.morse-chat-setup-actions button{width:100%;min-height:2.45rem;padding:.55rem .75rem;font-size:.95rem;line-height:1.2}.morse-chat-setup-modal .morse-chat-controls-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:.6rem}.morse-chat-setup-modal .course-control{gap:.45rem;padding:.65rem;border-radius:8px;box-shadow:none}.morse-chat-setup-modal .course-control label{font-size:.86rem;line-height:1.25}.morse-chat-setup-modal .course-control-current{font-size:.9rem;line-height:1.25}.morse-chat-setup-modal .course-control select,.morse-chat-setup-modal .course-control input{min-height:2.35rem;padding:.45rem .55rem;font-size:.9rem}.morse-chat-setup-modal .course-control input[type=range]{min-height:0;padding:0}.morse-chat-setup-actions{display:grid;position:sticky;bottom:-.1rem;z-index:2;grid-template-columns:repeat(2,minmax(0,1fr));gap:.5rem;margin:.75rem -.2rem -.2rem;padding:.62rem .2rem .2rem;margin-left:auto;max-width:28rem;background:linear-gradient(180deg,transparent,var(--bg-surface) 32%)}.morse-chat-setup-modal .challenge-category-tabs{min-height:2.35rem}.morse-chat-setup-modal .challenge-category-tab{min-height:2.25rem;padding:.32rem .7rem;font-size:.88rem}.morse-chat-setup-modal .morse-chat-readiness{gap:.34rem}.morse-chat-setup-modal .morse-chat-readiness span{min-height:1.7rem;padding:.22rem .48rem;font-size:.77rem}.morse-chat-transmitter-card{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:.75rem;padding:.6rem;border:1px solid var(--border-subtle);border-radius:var(--radius-md);background:color-mix(in srgb,var(--bg-surface-muted) 76%,transparent)}.morse-chat-transmitter-card>div{display:grid;gap:.12rem;min-width:0}.morse-chat-transmitter-card span,.morse-chat-transmitter-card small{color:var(--text-muted);font-weight:750}.morse-chat-transmitter-card span{font-size:.75rem;text-transform:uppercase;letter-spacing:.04em}.morse-chat-transmitter-card b{color:var(--success);font-size:1rem;line-height:1.18;overflow-wrap:anywhere}.morse-chat-transmitter-card small{font-size:.78rem;line-height:1.2}.morse-chat-transmitter-card .settings-primary-btn{min-height:2.45rem;padding-inline:.85rem;white-space:nowrap}.morse-chat-touch-key,.morse-chat-touch-paddles button{min-height:4.4rem;border-radius:14px;border:1px solid color-mix(in srgb,var(--border-strong) 62%,transparent);background:color-mix(in srgb,var(--bg-elevated) 88%,var(--button-secondary-bg, rgba(15, 23, 42, .06)));color:var(--text-strong, #0f172a);font-weight:900;font-size:clamp(1.05rem,2.4vw,1.35rem);letter-spacing:0;touch-action:none;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none;-webkit-tap-highlight-color:transparent}.morse-chat-touch-key:active,.morse-chat-touch-paddles button:active{transform:translateY(1px);background:color-mix(in srgb,var(--accent-soft) 72%,var(--bg-elevated));border-color:color-mix(in srgb,var(--accent) 42%,var(--border-strong))}.morse-chat-touch-key{width:100%}.morse-chat-touch-paddles{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.75rem;touch-action:none;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none}.morse-chat-touch-dock{display:grid;gap:.5rem;margin-top:.35rem;padding-top:.45rem;border-top:1px solid color-mix(in srgb,var(--border-subtle) 72%,transparent)}.morse-chat-touch-dock-spacer{display:none}.morse-chat-on-air{display:grid;gap:.5rem}.morse-chat-section-head.compact{margin-bottom:0}.morse-chat-timeline-tools{display:flex;align-items:center;justify-content:flex-end;gap:.45rem}.morse-chat-connection-light{display:inline-flex;align-items:center;gap:.36rem;min-height:var(--control-height-compact);padding:.12rem .52rem;border:1px solid var(--border-subtle);border-radius:var(--radius-pill);background:color-mix(in srgb,var(--bg-surface-muted) 68%,transparent);color:var(--text-muted);font-size:.78rem;font-weight:850;line-height:1;white-space:nowrap}.morse-chat-connection-light:before{width:.5rem;height:.5rem;border-radius:999px;background:color-mix(in srgb,var(--text-muted) 62%,transparent);content:""}.morse-chat-connection-light.connected{border-color:var(--success-border);background:var(--success-soft);color:var(--success)}.morse-chat-connection-light.connected:before{background:var(--success)}.morse-chat-connection-light.pending,.morse-chat-connection-light.warning{border-color:color-mix(in srgb,var(--warning) 38%,var(--border-subtle));background:var(--warning-soft);color:var(--warning)}.morse-chat-connection-light.pending:before,.morse-chat-connection-light.warning:before{background:var(--warning)}.morse-chat-connection-light.error{border-color:var(--danger-border);background:var(--danger-soft);color:var(--danger)}.morse-chat-connection-light.error:before{background:var(--danger)}.morse-chat-audio-toggle{display:inline-flex;align-items:center;justify-content:center;width:var(--control-height-compact);height:var(--control-height-compact);min-width:var(--control-height-compact);min-height:var(--control-height-compact);border-radius:999px;border:1px solid var(--success-border);background:var(--success-soft);color:var(--success);cursor:pointer}.morse-chat-audio-toggle.muted{border-color:#94a3b85c;background:#94a3b81f;color:#64748b}.morse-chat-audio-toggle svg{width:1.1rem;height:1.1rem;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.morse-chat-on-air-list{display:flex;flex-wrap:wrap;gap:.35rem}.morse-chat-on-air-chip{display:inline-flex;align-items:center;gap:.4rem;min-width:0;border:1px solid var(--border-subtle, rgba(148, 163, 184, .24));border-radius:999px;padding:.3rem .45rem;background:var(--morse-chat-chip-bg, color-mix(in srgb, var(--card-bg, #fff) 88%, var(--bg-app, #f8fafc)))}.morse-chat-on-air-chip.self{background:var(--morse-chat-self-bg, color-mix(in srgb, var(--accent-soft, #dbeafe) 28%, var(--card-bg, #fff)))}.morse-chat-on-air-chip>div{display:grid;gap:.08rem;min-width:0}.morse-chat-on-air-chip b,.morse-chat-on-air-chip span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.morse-chat-on-air-chip span,.morse-chat-on-air-empty{color:var(--text-muted, #64748b);font-size:.74rem}.morse-chat-room-top .morse-chat-on-air-empty{display:inline-flex;width:fit-content;border:1px solid var(--border-subtle, rgba(148, 163, 184, .24));border-radius:999px;padding:.27rem .5rem}.morse-chat-message-list{display:grid;gap:.5rem}.morse-chat-roster-list{display:flex;flex-wrap:wrap;gap:.35rem;min-width:0}.morse-chat-message-scroll{height:clamp(20rem,calc(100vh - var(--app-topbar-height, 64px) - 31rem),46rem);height:clamp(20rem,calc(100dvh - var(--app-topbar-height, 64px) - 31rem),46rem);min-height:0;max-height:none;overflow-y:auto;overscroll-behavior:contain;padding-right:.2rem;scroll-behavior:smooth;scrollbar-gutter:stable}.morse-chat-timeline-footer{display:flex;justify-content:center;margin-top:.85rem}.morse-chat-timeline-footer.top{margin:0 0 .85rem}.morse-chat-message-bubble{display:block;width:100%;scroll-margin-block:.75rem}.morse-chat-message-cluster{display:grid;gap:.28rem;width:100%;max-width:100%}.morse-chat-message-bubble.self .morse-chat-message-cluster{justify-items:end}.morse-chat-message-bubble.other .morse-chat-message-cluster{justify-items:start}.morse-chat-message-row{display:grid;align-items:flex-end;gap:.38rem;width:100%;max-width:100%}.morse-chat-message-bubble.other .morse-chat-message-row{grid-template-columns:4.9rem minmax(0,1fr)}.morse-chat-message-bubble.self .morse-chat-message-row{grid-template-columns:minmax(0,1fr) 4.9rem}.morse-chat-message-inner{display:grid;justify-self:start;gap:.14rem;width:fit-content;max-width:min(100%,42rem);min-width:min(100%,7rem);border:0;border-radius:18px;padding:.48rem .68rem .56rem;background:var(--morse-chat-panel-soft-bg, color-mix(in srgb, var(--card-bg, #fff) 88%, var(--bg-app, #f8fafc)));color:var(--text-primary);text-align:left;box-shadow:none;cursor:pointer;white-space:normal}.morse-chat-message-bubble.self .morse-chat-message-inner{justify-self:end}.morse-chat-message-inner:hover{filter:brightness(.985)}.morse-chat-message-inner:focus-visible{outline:3px solid color-mix(in srgb,var(--accent, #2563eb) 34%,transparent);outline-offset:3px}.morse-chat-message-bubble.self .morse-chat-message-inner{background:color-mix(in srgb,var(--accent, #2563eb) 86%,var(--bg-surface, #fff));color:#fff;border-bottom-right-radius:6px}.morse-chat-message-bubble.other .morse-chat-message-inner{border:1px solid var(--morse-chat-incoming-border, var(--border-subtle));border-bottom-left-radius:6px;background:var(--morse-chat-incoming-bg, var(--morse-chat-panel-soft-bg));box-shadow:var(--morse-chat-incoming-shadow, none)}.morse-chat-message-bubble.live .morse-chat-message-inner{box-shadow:0 0 0 2px color-mix(in srgb,var(--danger-soft) 48%,transparent)}.morse-chat-message,.morse-chat-empty{border:1px solid var(--border-subtle, rgba(148, 163, 184, .22));border-radius:8px;padding:.85rem;background:var(--morse-chat-panel-soft-bg, color-mix(in srgb, var(--card-bg, #fff) 86%, var(--bg-app, #f8fafc)))}.morse-chat-message.live{border-color:#3b82f659}.morse-chat-message.self{background:var(--morse-chat-self-bg, color-mix(in srgb, var(--accent-soft, #dbeafe) 22%, var(--card-bg, #fff)))}.morse-chat-message.removed{opacity:.74}.morse-chat-roster-row{display:inline-flex;align-items:center;gap:.35rem;max-width:100%;border:1px solid var(--border-subtle, rgba(148, 163, 184, .22));border-radius:999px;padding:.28rem .45rem;background:var(--morse-chat-chip-bg, color-mix(in srgb, var(--card-bg, #fff) 86%, var(--bg-app, #f8fafc)))}.morse-chat-message-sender{display:block;min-width:0;overflow:hidden;color:inherit;font-size:.75rem;font-weight:800;line-height:1.15;opacity:.76;text-overflow:ellipsis;white-space:nowrap}.morse-chat-message-time{flex:0 0 auto;width:4.9rem;color:var(--text-muted, #64748b);font-size:.68rem;font-weight:750;line-height:1.2;opacity:.78;padding-bottom:.22rem;text-align:right;white-space:nowrap}.morse-chat-message-time.hidden{visibility:hidden}.morse-chat-message-bubble.self .morse-chat-message-time{text-align:left}.morse-chat-message-time:empty{display:none}.morse-chat-roster-name{display:inline-flex;align-items:center;gap:.35rem;min-width:0}.morse-chat-roster-row b,.morse-chat-roster-row span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.76rem;line-height:1.1}.morse-chat-roster-row b{max-width:8rem}.morse-chat-roster-row span{color:var(--text-muted, #64748b);font-weight:800}.morse-chat-roster-more,.morse-chat-roster-summary{display:inline-flex;align-items:center;width:fit-content;border:1px solid var(--border-subtle, rgba(148, 163, 184, .22));border-radius:999px;padding:.28rem .45rem;color:var(--text-muted, #64748b);font-size:.76rem;font-weight:800}.morse-chat-roster-main{display:grid;gap:.25rem;min-width:0}.morse-chat-message-badges,.morse-chat-roster-badges{display:flex;align-items:center;flex-wrap:wrap;gap:.25rem;justify-content:flex-end}.morse-chat-message-badges .challenge-badge{padding:.18rem .38rem;font-size:.68rem;line-height:1.15}.morse-chat-message-body{display:block;margin:0;color:inherit;line-height:1.38;font-size:.95rem;font-weight:650;overflow-wrap:anywhere;text-align:left}.morse-chat-message-actions{display:flex;flex-wrap:wrap;gap:.3rem;max-width:100%;padding-inline:.25rem}.morse-chat-message-bubble.self .morse-chat-message-actions{justify-content:flex-end}.morse-chat-message-bubble.other .morse-chat-message-actions{justify-content:flex-start}.morse-chat-message-body.audio-only,.morse-chat-message-body.muted,.morse-chat-empty{color:var(--text-muted, #64748b)}.challenge-secondary-btn.compact{padding:.25rem .42rem;min-height:0;font-size:.74rem}.challenge-secondary-btn.compact.danger{border-color:color-mix(in srgb,var(--danger) 38%,var(--border-subtle));color:var(--danger)}.challenge-secondary-btn.compact.danger:hover{background:var(--danger-soft)}.morse-chat-roster-row.active{border-color:#ef444452}.morse-chat-roster-row.self{background:var(--morse-chat-self-bg, color-mix(in srgb, var(--accent-soft, #dbeafe) 18%, var(--card-bg, #fff)))}@media(max-width:1050px){.morse-chat-hero{align-items:stretch;flex-direction:column}.morse-chat-meta-bar{grid-template-columns:repeat(2,minmax(0,1fr))}.morse-chat-layout{display:block}.morse-chat-room-top{grid-template-columns:1fr}.morse-chat-message-scroll{height:clamp(18rem,calc(100vh - var(--app-topbar-height, 64px) - 34rem),36rem);height:clamp(18rem,calc(100dvh - var(--app-topbar-height, 64px) - 34rem),36rem);max-height:none;min-height:0}.morse-chat-message-inner{max-width:100%}}@media(max-width:640px){.morse-chat-page{padding:.85rem}.morse-chat-page:has(.morse-chat-touch-dock){padding-bottom:calc(7.4rem + env(safe-area-inset-bottom,0px))}.morse-chat-meta-bar,.morse-chat-controls-grid{grid-template-columns:1fr}.morse-chat-message-scroll{height:clamp(18rem,50vh,32rem);height:clamp(18rem,50dvh,32rem)}.morse-chat-audio-gate,.morse-chat-section-head,.morse-chat-roster-row,.morse-chat-setup-row{flex-direction:column;align-items:stretch}.morse-chat-meta-bar .morse-chat-roster-row{flex-direction:row;align-items:center}.morse-chat-message-badges{justify-content:flex-start}.morse-chat-message-bubble.other .morse-chat-message-row{grid-template-columns:3.9rem minmax(0,1fr)}.morse-chat-message-bubble.self .morse-chat-message-row{grid-template-columns:minmax(0,1fr) 3.9rem}.morse-chat-message-time{width:3.9rem}.morse-chat-message-inner{max-width:100%}.morse-chat-touch-dock{position:fixed;right:0;bottom:0;left:0;z-index:80;margin:0;padding:.7rem max(.85rem,env(safe-area-inset-right,0px)) calc(.7rem + env(safe-area-inset-bottom,0px)) max(.85rem,env(safe-area-inset-left,0px));border-top:1px solid color-mix(in srgb,var(--border-strong) 68%,transparent);background:color-mix(in srgb,var(--bg-app) 92%,var(--bg-elevated));box-shadow:0 -14px 32px #00000047}.morse-chat-touch-dock .morse-chat-touch-paddles{gap:.65rem}.morse-chat-touch-dock .morse-chat-touch-key,.morse-chat-touch-dock .morse-chat-touch-paddles button{min-height:4.75rem;border-radius:16px;font-size:1.18rem}.morse-chat-setup-grid,.morse-chat-setup-stack,.morse-chat-setup-grid.compact{grid-template-columns:1fr}.morse-chat-room-actions,.morse-chat-invite-form{width:100%}.morse-chat-invite-form input{flex:1 1 auto;max-width:none}}@media(max-width:720px){.modal.morse-chat-setup-modal{width:calc(100vw - 1rem);max-height:calc(100vh - 1rem);max-height:calc(100dvh - 1rem);padding:.85rem}.morse-chat-setup-head{padding:0 1.75rem}.morse-chat-setup-grid{grid-template-columns:1fr}.morse-chat-setup-row{grid-template-columns:minmax(0,1fr) minmax(6.5rem,auto)}.morse-chat-setup-modal .morse-chat-controls-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:520px){.morse-chat-setup-head{padding:0 1.5rem;text-align:left}.morse-chat-setup-modal h4{text-align:left}.morse-chat-setup-row{grid-template-columns:1fr;gap:.25rem}.morse-chat-setup-row b{justify-self:start;max-width:none;text-align:left}.morse-chat-setup-modal .morse-chat-audio-actions,.morse-chat-setup-modal .morse-chat-controls-grid,.morse-chat-setup-actions{grid-template-columns:1fr}.morse-chat-setup-actions{max-width:none}}:root{--focus-ring-color: #1d4ed8;--focus-ring: 0 0 0 3px rgba(29, 78, 216, .32);--app-sidebar-width: 17rem;--app-topbar-height: 64px;--app-sidebar-z: 920;--app-sidebar-backdrop-z: 910}.nav-bar{display:flex;align-items:center;justify-content:space-between;max-width:1100px;margin:0 auto;padding:0 2rem}.logo{font-size:1.5rem;font-weight:700;color:#fff;letter-spacing:2px}.nav-links{list-style:none;display:flex;align-items:center;gap:2rem;margin:0;padding:0}.nav-links li{display:flex;align-items:center}.nav-links li a{position:relative;display:inline-flex;align-items:center;color:#fff;text-decoration:none;font-weight:500;line-height:1;transition:color .2s}.nav-links li a:hover{color:#e53935}.nav-links li a:focus-visible,.logo:focus-visible{outline:2px solid var(--focus-ring-color);outline-offset:3px;border-radius:.4rem}.main-content{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:4rem 1rem;text-align:center}.main-content h1{font-size:2.5rem;font-weight:700;color:#1a2233;margin-bottom:2rem}.homepage-header{background:#000;padding:1rem 0;box-shadow:0 2px 8px #00000008}.app-shell-root{min-height:100vh;background:var(--bg-app);color:var(--text-primary)}.homepage-header.app-topbar{position:sticky;top:0;z-index:940;min-height:var(--app-topbar-height);padding:0;border-bottom:1px solid var(--border-subtle);background:color-mix(in srgb,var(--bg-surface) 96%,var(--bg-app));box-shadow:var(--shadow-sm)}.homepage-header.app-topbar .nav-bar{min-height:var(--app-topbar-height);max-width:none;padding:0 1rem 0 1.15rem}.homepage-header.app-topbar .logo{color:var(--text-primary)}.app-topbar-actions{display:flex;align-items:center;gap:.55rem;min-width:0}.app-key-status-light{position:relative;display:inline-block;flex:0 0 auto;width:.66rem;height:.66rem;border:1px solid color-mix(in srgb,var(--success) 72%,var(--bg-surface));border-radius:999px;background:var(--success);box-shadow:0 0 0 .18rem color-mix(in srgb,var(--success-soft) 78%,transparent),0 0 .65rem color-mix(in srgb,var(--success) 42%,transparent);cursor:help}.app-key-status-light:after{position:absolute;top:calc(100% + .58rem);right:-.35rem;z-index:1100;width:max-content;max-width:min(18rem,calc(100vw - 1.5rem));padding:.46rem .58rem;border:1px solid var(--border-strong);border-radius:var(--radius-md);background:color-mix(in srgb,var(--bg-surface-strong) 96%,var(--bg-surface));color:var(--text-primary);box-shadow:var(--shadow-lg);content:attr(data-tooltip);font-size:.78rem;font-weight:700;line-height:1.3;opacity:0;overflow-wrap:anywhere;pointer-events:none;transform:translateY(-.14rem);transition:opacity .16s ease,transform .16s ease;white-space:normal}.app-key-status-light:hover:after,.app-key-status-light:focus-visible:after{opacity:1;transform:translateY(0)}.app-topbar-popover-anchor{position:relative;display:inline-flex;align-items:center}.app-topbar-account-link{min-height:38px;padding:0 .8rem;border:1px solid var(--border-subtle);border-radius:var(--radius-pill);background:var(--button-secondary-bg);color:var(--button-secondary-text);font:inherit;font-size:.9rem;font-weight:800;cursor:pointer}.app-topbar-account-link:hover,.app-topbar-account-link:focus-visible{background:var(--button-secondary-hover);color:var(--text-primary)}.sidebar-toggle-btn{display:inline-flex;width:44px;min-width:44px;height:44px;align-items:center;justify-content:center;flex-direction:column;gap:4px;border:1px solid var(--border-subtle);border-radius:var(--radius-md);background:var(--button-secondary-bg);color:var(--text-primary);cursor:pointer;transition:background .2s ease,border-color .2s ease,transform .2s ease}.sidebar-toggle-btn:hover,.sidebar-toggle-btn:focus-visible{background:var(--button-secondary-hover);border-color:var(--border-strong)}.sidebar-toggle-btn span{display:block;width:18px;height:2px;border-radius:var(--radius-pill);background:currentColor;transition:transform .18s ease,opacity .18s ease}.sidebar-toggle-btn.is-open span:nth-child(1){transform:translateY(6px) rotate(45deg)}.sidebar-toggle-btn.is-open span:nth-child(2){opacity:0}.sidebar-toggle-btn.is-open span:nth-child(3){transform:translateY(-6px) rotate(-45deg)}.app-sidebar-toggle{position:fixed;top:calc(var(--app-topbar-height) + .85rem);left:.85rem;z-index:calc(var(--app-sidebar-z) + 4);box-shadow:var(--shadow-sm)}.app-sidebar-open.app-sidebar-wide .app-sidebar-toggle{left:calc(var(--app-sidebar-width) - 3.6rem)}.app-sidebar-open.app-sidebar-narrow .app-sidebar-toggle{left:calc(min(84vw,19rem) - 3.55rem)}.app-shell-main{min-height:calc(100vh - var(--app-topbar-height));min-width:0;transition:padding-left .2s ease}.app-sidebar-wide.app-sidebar-open .app-shell-main{padding-left:var(--app-sidebar-width)}.app-sidebar-wide.app-sidebar-closed .app-shell-main,.app-sidebar-narrow .app-shell-main{padding-left:0}.app-sidebar{position:fixed;top:var(--app-topbar-height);bottom:0;left:0;width:var(--app-sidebar-width);z-index:var(--app-sidebar-z);background:color-mix(in srgb,var(--bg-surface) 96%,var(--bg-app));border-right:1px solid var(--border-subtle);box-shadow:var(--shadow-md);transform:translate(-102%);transition:transform .2s ease;overflow:hidden}.app-sidebar.is-open{transform:translate(0)}.app-sidebar-inner{display:flex;flex-direction:column;height:100%;min-height:0;padding:1rem}.app-sidebar-head{min-height:3.65rem;padding:.25rem 3.15rem .85rem .25rem;border-bottom:1px solid var(--border-subtle)}.app-sidebar-kicker{color:var(--text-muted);font-size:.78rem;font-weight:900;letter-spacing:.12em;text-transform:uppercase}.app-sidebar-title{margin-top:.22rem;color:var(--text-primary);font-size:1.15rem;font-weight:900}.app-sidebar-nav{display:grid;gap:.25rem;padding:.85rem 0;overflow-y:auto}.app-sidebar-nav-item{display:flex;align-items:center;justify-content:space-between;gap:.75rem;min-height:44px;width:100%;padding:.55rem .7rem;border:1px solid transparent;border-radius:var(--radius-md);background:transparent;color:var(--text-secondary);font:inherit;text-align:left;cursor:pointer;transition:background .18s ease,border-color .18s ease,color .18s ease}.app-sidebar-nav-item:hover,.app-sidebar-nav-item:focus-visible{background:var(--button-secondary-bg);color:var(--text-primary)}.app-sidebar-nav-item.is-active{background:color-mix(in srgb,var(--button-primary-bg) 12%,var(--bg-surface));border-color:color-mix(in srgb,var(--button-primary-bg) 42%,var(--border-subtle));color:var(--text-primary)}.app-sidebar-nav-label{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:850}.app-sidebar-nav-short{flex:0 0 auto;color:var(--text-muted);font-size:.78rem;font-weight:800}.app-sidebar-nav-item.is-active .app-sidebar-nav-short{color:color-mix(in srgb,var(--button-primary-bg) 75%,var(--text-primary))}.app-sidebar-footer{margin-top:auto;display:grid;gap:.75rem}.app-sidebar-feedback{min-height:40px;width:100%;border:1px solid var(--border-subtle);border-radius:var(--radius-md);background:transparent;color:var(--text-secondary);font:inherit;font-size:.9rem;font-weight:850;cursor:pointer;transition:background .18s ease,border-color .18s ease,color .18s ease}.app-sidebar-feedback:hover,.app-sidebar-feedback:focus-visible{background:var(--button-secondary-bg);border-color:color-mix(in srgb,var(--button-primary-bg) 34%,var(--border-subtle));color:var(--text-primary)}.app-sidebar-account-zone{padding-top:.85rem;border-top:1px solid var(--border-subtle)}.app-sidebar-account{display:grid;gap:.16rem;padding:.68rem .75rem;border:1px solid var(--border-subtle);border-radius:var(--radius-md);background:var(--bg-surface-muted)}.app-sidebar-account-label{color:var(--text-muted);font-size:.76rem;font-weight:900;letter-spacing:.1em;text-transform:uppercase}.app-sidebar-account-value{min-width:0;overflow:hidden;color:var(--text-primary);font-size:.9rem;font-weight:800;text-overflow:ellipsis;white-space:nowrap}.app-sidebar-signin{min-height:44px;width:100%;border:1px solid var(--border-subtle);border-radius:var(--radius-md);background:var(--button-secondary-bg);color:var(--button-secondary-text);font:inherit;font-weight:850;cursor:pointer}.app-sidebar-signin:hover,.app-sidebar-signin:focus-visible{background:var(--button-secondary-hover);color:var(--text-primary)}.app-sidebar-backdrop{position:fixed;inset:var(--app-topbar-height) 0 0;z-index:var(--app-sidebar-backdrop-z);border:0;background:#00000073;cursor:pointer}.app-sidebar-narrow{--app-topbar-height: calc(56px + env(safe-area-inset-top, 0px)) }.app-sidebar-narrow .app-sidebar{top:var(--app-topbar-height);width:min(84vw,19rem)}.mode-switch{display:inline-flex;gap:1.2rem;margin:3rem 0 2rem;background:#f5f5f5;border-radius:2rem;box-shadow:0 2px 12px #0000000a;padding:.3rem;align-items:center;min-height:0;max-width:420px;min-width:0}.mode-btn{background:none;border:none;outline:none;font-size:1.05rem;font-weight:600;color:#000;padding:.7rem 2.2rem;border-radius:1.5rem;cursor:pointer;transition:background .2s,color .2s,box-shadow .2s;position:relative;display:flex;align-items:center;gap:.4em;min-height:0;margin:0;box-sizing:border-box}.mode-btn.active{background:#e53935;color:#fff;box-shadow:0 2px 8px #e539351f;border-radius:1.5rem}.mode-btn:not(.active):hover{background:#fce4e4;color:#e53935}.mode-btn:focus-visible{outline:2px solid var(--focus-ring-color);outline-offset:2px}.mode-content{width:100%;margin:0 auto;display:flex;flex-direction:column;align-items:center;justify-content:flex-start}.mode-panel{width:100%;background:#fff;border-radius:1.5rem;box-shadow:0 4px 24px #00000012;padding:2.5rem 2rem 2rem;margin-bottom:2rem;text-align:center;transition:box-shadow .2s}.transmit-panel h1,.receive-panel h1{font-size:2rem;font-weight:700;margin-bottom:1rem;color:#e53935}.mode-desc{color:#333;font-size:1.1rem;margin-bottom:0}.transmit-ui,.receive-ui{width:100%;background:#fff;border-radius:1.5rem;box-shadow:0 4px 24px #00000012;padding:2.5rem 2rem 1rem;margin-bottom:0;text-align:center;transition:box-shadow .2s;display:flex;flex-direction:column;align-items:center}.transmit-letter{font-size:3.5rem;font-weight:800;color:#e53935;margin-bottom:1.5rem;letter-spacing:2px}.transmit-morse-display{min-height:2.5rem;font-size:2rem;letter-spacing:.5rem;color:#222;margin-bottom:1.5rem;background:#f5f5f5;border-radius:.75rem;padding:.5rem 1.5rem;display:inline-block}.placeholder{color:#bbb;font-size:1.1rem}.transmit-controls{display:flex;gap:1rem;margin-bottom:1.5rem;justify-content:center}.morse-key-btn{background:#e53935;color:#fff;font-size:1.25rem;font-weight:700;border:none;border-radius:2rem;padding:1rem 2.5rem;cursor:pointer;transition:background .2s,box-shadow .2s;box-shadow:0 2px 8px #e539351a}.morse-key-btn.pressing{background:#b71c1c}.backspace-btn,.submit-btn,.next-btn,.play-btn{background:#fff;color:#e53935;border:2px solid #e53935;border-radius:2rem;font-size:1.1rem;font-weight:600;padding:.75rem 1.5rem;cursor:pointer;transition:background .2s,color .2s}.backspace-btn:disabled,.submit-btn:disabled{opacity:.5;cursor:not-allowed}.submit-btn,.next-btn{margin-left:.5rem}.backspace-btn:hover,.submit-btn:hover,.next-btn:hover,.play-btn:hover{background:#e53935;color:#fff}.transmit-feedback,.receive-feedback{margin-top:1.5rem;font-size:1.2rem;font-weight:600;padding:1rem 1.5rem;border-radius:1rem;display:flex;flex-direction:column;align-items:center}.transmit-feedback.correct,.receive-feedback.correct{background:#e8f5e9;color:#388e3c;border:1.5px solid #388e3c}.transmit-feedback.incorrect,.receive-feedback.incorrect{background:#ffebee;color:#e53935;border:1.5px solid #e53935}.play-btn{margin-bottom:1.5rem}.receive-form{display:flex;gap:1rem;justify-content:center;margin-bottom:1.5rem}.receive-input{font-size:2rem;font-weight:700;width:4rem;text-align:center;border:2px solid #e53935;border-radius:.75rem;padding:.5rem;outline:none;color:#e53935;background:#fff;transition:border .2s}.receive-input:focus{border:2px solid #b71c1c}.keyboard-grid{display:grid;grid-template-columns:repeat(10,2.5rem);gap:.5rem;justify-content:center;margin:1.5rem 0}.keyboard-key{background:#fff;color:#e53935;border:2px solid #e53935;border-radius:.75rem;font-size:1.15rem;font-weight:700;padding:.75rem 0;cursor:pointer;transition:background .2s,color .2s;outline:none}.keyboard-key:hover:not(:disabled),.keyboard-key:focus:not(:disabled){background:#e53935;color:#fff}.keyboard-key:disabled{opacity:.5;cursor:not-allowed}.receive-status{display:flex;justify-content:center;align-items:center;margin-bottom:1.25rem;min-height:2.5rem}.receive-question{font-size:2.5rem;color:#e53935;font-weight:800}.receive-feedback-text{font-size:1.5rem;font-weight:700}.receive-feedback-text.correct{color:#388e3c}.receive-feedback-text.incorrect{color:#e53935}.main-content-home{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:4rem 1rem;text-align:center}.main-content-home h1{font-size:2.5rem;font-weight:700;color:#1a2233;margin-bottom:2rem}.home-action-row{display:flex;justify-content:center;align-items:center;gap:.85rem;flex-wrap:wrap}.home-course-section{width:100%;padding:0 0 3rem;background:linear-gradient(180deg,#fff,#f7f9fc)}.home-course-teaser{max-width:860px;margin:0 auto 3rem;text-align:center}.course-page.embedded-home{margin-top:0}.get-started-btn{background:#e53935;color:#fff;font-size:1.25rem;padding:.75rem 2.5rem;border:none;border-radius:.5rem;cursor:pointer;font-weight:600;transition:background .2s,color .2s;box-shadow:0 2px 8px #e5393514}.get-started-btn:hover{background:#b71c1c;color:#fff}.home-secondary-btn{background:#fff;color:#1a2233;font-size:1.05rem;padding:.72rem 1.8rem;border:1px solid #d8dee9;border-radius:.5rem;cursor:pointer;font-weight:700;transition:background .2s,color .2s,border-color .2s;box-shadow:0 2px 8px #1a22330f}.home-secondary-btn:hover{background:#f4f7fb;border-color:#b8c2d4}.confirm-dialog{width:min(420px,calc(100vw - 2rem))}.confirm-dialog h3{margin:0 0 .65rem}.confirm-dialog p{margin:0;color:var(--text-muted, #64748b);line-height:1.5}.confirm-dialog-actions{display:flex;justify-content:flex-end;gap:.65rem;margin-top:1.2rem;flex-wrap:wrap}.core-app-layout{display:flex;flex-direction:row;min-height:calc(100vh - 56px);background:#f9fafb}.main-interface{flex:1;width:0;min-width:0;display:flex;flex-direction:column;align-items:center;justify-content:flex-start;background:#fff;padding:0}.transmit-tip{display:inline-block;background:#fff;color:#333;padding:.18em .5em;border-radius:5px;font-size:.48em;font-weight:400;box-shadow:0 1px 2px #0000000a;margin-top:.2em;margin-bottom:.2em;letter-spacing:.05px}.kbd{display:inline-block;background:#f5f5f5;color:#333;border:1px solid #bbb;border-radius:3px;padding:.05em .3em;font-size:1em;font-family:inherit;font-weight:500;margin:0 .12em;box-shadow:0 1px 1px #0000000a;vertical-align:middle}.morse-key-btn,.backspace-btn,.submit-btn,.next-btn,.play-btn{padding:1.1rem 2.7rem}.settings-icon{margin-left:1.2rem;cursor:pointer;display:flex;align-items:center;color:#e53935;transition:color .2s}.settings-icon:hover,.settings-icon:focus{color:#b71c1c}.settings-icon:focus-visible{outline:2px solid var(--focus-ring-color);outline-offset:3px;border-radius:.5rem}.profile-icon-btn{display:inline-block;width:32px;height:32px;border-radius:50%;background:#eee;color:#888;text-align:center;line-height:32px;font-size:20px;cursor:pointer;border:0;padding:0}.profile-icon-btn:focus-visible{outline:2px solid var(--focus-ring-color);outline-offset:2px}.streak-icon-btn{display:inline-flex;align-items:center;gap:.45rem;min-height:36px;padding:.35rem .7rem;border:1px solid rgba(255,219,156,.24);border-radius:999px;background:#ffbf4914;color:#ffe09b;cursor:pointer;transition:background .2s,border-color .2s,transform .2s}.streak-icon-btn:hover,.streak-icon-btn:focus-visible{background:#ffbf4929}.streak-icon-btn:focus-visible{outline:2px solid var(--focus-ring-color);outline-offset:2px}.streak-icon-btn.has-streak{border-color:#ffc4617a}.streak-icon-btn.active{background:linear-gradient(135deg,#ffce6c3d,#ffaa2a33);border-color:#ffdc8dc2}.streak-icon-glyph{display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;color:#ffe29c;flex:0 0 18px;transform:translateY(.5px)}.streak-icon-btn.active .streak-icon-glyph{color:#fff0bf}.streak-icon-glyph svg{display:block}.streak-icon-count{display:inline-flex;align-items:center;font-size:.95rem;line-height:1;font-weight:800;letter-spacing:.02em;color:#ffb21f;transform:translateY(-.5px)}.streak-popup{position:absolute;right:0;top:calc(100% + .7rem);width:min(320px,calc(100vw - 2rem));display:grid;gap:1rem;padding:1.1rem;border:1px solid #f3ddd6;border-radius:1rem;background:#fff;box-shadow:0 16px 32px #00000029;z-index:2100}.streak-popup:focus-visible{outline:2px solid var(--focus-ring-color);outline-offset:2px}.streak-popup-header{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem}.streak-popup-kicker{font-size:.78rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:#b45309}.streak-popup-title{margin-top:.2rem;font-size:1.4rem;font-weight:800;color:#1a2233}.streak-popup-badge{min-width:86px;padding:.55rem .75rem;border-radius:999px;background:#fff6f2;border:1px solid #f0cfc4;color:#9a3412;font-weight:700;text-align:center}.streak-popup-badge.active{background:#e53935;border-color:#e53935;color:#fff}.streak-popup-metrics{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.75rem}.streak-popup-metric{display:grid;gap:.2rem;padding:.85rem .8rem;border-radius:.85rem;background:#fff8f5;border:1px solid #f2e3dd}.streak-popup-value{font-size:1.45rem;font-weight:800;color:#1a2233}.streak-popup-label{font-size:.82rem;font-weight:600;color:#666}.streak-popup-status{font-weight:700;color:#7c2d12}.streak-popup-last{color:#666;font-size:.95rem}.profile-menu button:focus-visible{box-shadow:var(--focus-ring)}.settings-modal-overlay{position:fixed;inset:0;background:#0000002e;z-index:1000;display:flex;align-items:center;justify-content:center}.settings-modal{background:#fff;border-radius:1.2rem;box-shadow:0 4px 32px #00000021;padding:2.2rem 2.5rem 1.5rem;min-width:320px;max-width:95vw;position:relative}.settings-modal h2{margin-top:0;margin-bottom:1.2rem;font-size:1.5rem;color:#e53935}.settings-row{margin-bottom:1.5rem;display:flex;flex-direction:column;gap:.7rem}.close-settings-btn{background:#e53935;color:#fff;border:none;border-radius:2rem;font-size:1.1rem;font-weight:600;padding:.7rem 2.2rem;cursor:pointer;transition:background .2s;margin-top:.5rem}.close-settings-btn:hover{background:#b71c1c}.nav-actions{display:flex;align-items:center;gap:1.2rem}.settings-page{width:min(960px,calc(100vw - 3rem));max-width:960px;margin:3rem auto 0;background:#fff;border-radius:1.2rem;box-shadow:0 4px 32px #00000021;padding:2.2rem 2.5rem 1.5rem;display:flex;flex-direction:column;align-items:center}.settings-page h2{margin-top:0;margin-bottom:1.2rem;font-size:1.5rem;color:#e53935}.settings-section{width:100%;display:grid;gap:.25rem;padding:1.1rem 1.2rem .3rem;border-radius:1rem;background:#111c2e0a;border:1px solid rgba(148,163,184,.18);margin-bottom:1.25rem}.settings-section-header{display:grid;gap:.3rem;width:100%}.settings-section-header h3{margin:0;font-size:1.1rem;color:#1a2233}.settings-row{margin-bottom:1.5rem;display:flex;flex-direction:column;gap:.7rem;width:100%}.settings-row label{font-size:1.1rem;font-weight:500;color:#333}.settings-row input[type=range]{width:100%;accent-color:#e53935;margin-top:.3rem}.back-btn{background:#e53935;color:#fff;border:none;border-radius:2rem;font-size:1.1rem;font-weight:600;padding:.7rem 2.2rem;cursor:pointer;transition:background .2s;margin-top:.5rem}.back-btn:hover{background:#b71c1c}.back-btn:focus-visible,.settings-danger-btn:focus-visible,.modal-close-btn:focus-visible,.course-back-btn:focus-visible{outline:2px solid var(--focus-ring-color);outline-offset:2px}.switch{position:relative;display:inline-block;width:64px;height:24px}.switch input{opacity:0;width:0;height:0}.slider{position:absolute;cursor:pointer;inset:0;background:#ccc;transition:background .3s;border-radius:24px}.slider:before{position:absolute;content:"";height:24px;width:24px;left:0;top:0;background:#fff;transition:transform .3s;border-radius:50%;box-shadow:0 1px 4px #0000001a}.switch input:checked+.slider{background:#43a047}.switch input:checked+.slider:before{transform:translate(24px)}.switch input:focus+.slider{box-shadow:0 0 1px #43a047}.switch input:active+.slider:before{width:30px}.settings-row label,.settings-row span{color:#111}.settings-device-card{display:grid;gap:.85rem;padding:1rem 1.1rem;border-radius:1rem;border:1px solid #dbe3f4;background:#f7f9fc}.settings-device-header{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem}.settings-device-title{font-weight:800;color:#1a2233}.settings-device-status{padding:.28rem .7rem;border-radius:999px;background:#eef3fb;color:#51627f;font-size:.82rem;font-weight:700}.settings-device-status.connected{background:#e5f6eb;color:#17633d}.settings-device-copy{color:#42526b;line-height:1.5}.settings-live-state-note{margin-top:-.15rem}.settings-device-toggles{display:grid;gap:.75rem}.settings-key-tester{display:grid;gap:1rem}.settings-key-tester-stage{display:grid;gap:.25rem;padding:.95rem 1rem;border-radius:.9rem;border:1px dashed #c8d4e6;background:#fdfefe;color:#42526b;cursor:pointer;transition:border-color .18s ease,background .18s ease,box-shadow .18s ease}.settings-key-tester-stage:hover{border-color:#9cb4d6;background:#fbfcff}.settings-key-tester-stage.active{border-style:solid;border-color:#7ca0d6;background:#f3f7ff;box-shadow:0 0 0 3px #7ca0d626}.settings-key-tester-stage:focus-visible{outline:2px solid var(--focus-ring-color);outline-offset:2px}.settings-key-tester-stage-header{display:grid;gap:.25rem}.settings-key-tester-stage-header strong{color:#1a2233}.settings-key-tester-stage-header span{color:#51627f;line-height:1.45}.settings-key-tester-controls{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:.9rem;align-items:start}.settings-key-tester-touch{margin-bottom:0}.settings-key-tester-signals{display:flex;flex-wrap:wrap;gap:.45rem}.settings-key-tester-output{display:grid;gap:.75rem;padding:.9rem;border-radius:.9rem;border:1px solid #dbe3f4;background:#fbfcff}.settings-key-tester-output-header{display:flex;justify-content:space-between;gap:.75rem;align-items:center}.settings-key-tester-output-stream{min-height:3.25rem;padding:.85rem .95rem;border-radius:.8rem;background:#fff;border:1px solid #dde5ef;color:#1a2233;font-weight:700;line-height:1.55;overflow-wrap:anywhere}.settings-key-tester-history{display:grid;gap:.55rem}.settings-key-tester-history-list{display:grid;gap:.45rem;max-height:15rem;overflow:auto;padding:.1rem}.settings-key-tester-history-row{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:.45rem;align-items:center;padding:.6rem .7rem;border-radius:.75rem;border:1px solid #dbe3f4;background:#fbfcff;font-size:.84rem;color:#42526b}.settings-key-tester-history-row strong{color:#1a2233}.settings-key-tester-history-row span{min-width:0;overflow-wrap:anywhere}.settings-toggle-line{display:flex;align-items:center;justify-content:space-between;gap:1rem}.settings-danger-card{border:1px solid #f1c0c0;background:#fff5f5;border-radius:.8rem;padding:.9rem;display:grid;gap:.5rem}.settings-danger-title{font-weight:700;color:#b71c1c}.settings-danger-text{color:#5f2b2b;font-size:.95rem}.settings-danger-btn{justify-self:start;border:none;background:#e53935;color:#fff;border-radius:.6rem;padding:.5rem 1rem;font-weight:600;cursor:pointer}.settings-danger-btn:disabled{background:#d9a3a3;cursor:not-allowed}.modal-backdrop,.modal-overlay{position:fixed;inset:0;background:#00000059;z-index:1000;display:flex;align-items:center;justify-content:center;padding:1rem;overflow:auto}.modal{background:#fff;color:#222;border-radius:16px;padding:2.5rem 2rem 2rem;box-shadow:0 8px 32px #0000002e;max-width:400px;width:90vw;text-align:center;z-index:1001}.modal h2{margin-top:0;font-size:1.5rem;font-weight:700}.modal p{margin:1.2em 0;font-size:1.1rem}.modal-close-btn{margin-top:1.5em;padding:.7em 2em;background:#2563eb;color:#fff;border:none;border-radius:8px;font-size:1rem;font-weight:500;cursor:pointer;transition:background .2s}.modal-close-btn:hover{background:#1741a6}.course-page{max-width:900px;margin:2.5rem auto 3rem;padding:0 1.5rem}.course-page.morse-chat-page{max-width:min(1120px,calc(100vw - 2rem));margin-block:clamp(.75rem,1.4vh,1.25rem) 1rem;padding-inline:clamp(.75rem,1.5vw,1.25rem)}.course-page.morse-chat-page .morse-chat-hero{padding-block:.45rem .65rem}.course-page.morse-chat-page .morse-chat-meta-bar{padding-block:.65rem}@media(max-height:900px)and (min-width:760px){.course-page.morse-chat-page .morse-chat-message-scroll{height:clamp(18rem,calc(100vh - var(--app-topbar-height, 64px) - 31rem),34rem);height:clamp(18rem,calc(100dvh - var(--app-topbar-height, 64px) - 31rem),34rem)}.course-page.morse-chat-page .morse-chat-hero-copy p{max-width:34rem}.course-page.morse-chat-page .morse-chat-meta-bar{gap:.5rem;padding-block:.5rem}}.morse-chat-timeline,.morse-chat-main{min-height:0}.course-page h1{font-size:2.2rem;color:#1a2233;margin-bottom:1.5rem}.challenge-page{max-width:1220px}.challenge-page.challenge-page-cw-games,.course-page.course-page-cw-games{max-width:1840px;padding-left:.7rem;padding-right:.7rem}.course-card{background:#fff;border-radius:1.2rem;box-shadow:0 4px 24px #00000014;padding:2rem;margin-bottom:2rem}.course-card.course-card-cw-games{padding:.65rem;background:transparent;border:0;box-shadow:none;margin-bottom:1rem}.course-meta{display:flex;flex-wrap:wrap;gap:1.5rem;margin-bottom:1.5rem;color:#333}.course-controls{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:1rem;margin-bottom:1.5rem;align-items:start}.course-send-controls{grid-template-columns:minmax(0,1fr) minmax(12rem,15rem);gap:.65rem;margin-bottom:1rem;align-items:stretch}.course-control{background:#f7f7f7;border:1px solid #e0e0e0;border-radius:.9rem;padding:.85rem .95rem;display:grid;gap:.6rem;min-width:0;align-content:start}.course-control label{display:block;font-weight:600;color:#1a2233;min-width:0;line-height:1.35}.course-control-current{min-width:0;font-size:.96rem;font-weight:700;color:#1a2233;line-height:1.35;overflow-wrap:anywhere}.course-control select{width:100%;min-width:0;max-width:100%}.course-send-controls>.keying-setup-card.compact,.course-send-options>.course-control,.course-send-options>.course-toggle{min-height:5rem;margin-bottom:0;padding:.72rem .85rem;border-radius:var(--radius-md);box-shadow:var(--shadow-sm)}.course-send-options{display:grid;grid-template-columns:1fr;gap:.5rem;align-content:start;min-width:0}.course-send-options>.course-control,.course-send-options>.course-toggle{min-height:3.7rem}.course-send-controls .course-send-speed{gap:.32rem;justify-content:center}.course-send-controls .course-send-speed label,.course-send-controls .keying-setup-kicker{font-size:.68rem;letter-spacing:.07em;text-transform:uppercase;color:var(--text-muted)}.course-send-controls .course-control-current{margin:0;padding:0;border:0;background:transparent;box-shadow:none;color:var(--text-secondary);font-size:1.05rem;line-height:1.2}.course-keying-status-row{grid-column:1 / -1}.course-keying-status{padding:.72rem .9rem;border-radius:.8rem;border:1px solid #dbe3f4;background:#fafbfd;color:#42526b;line-height:1.45}.course-keying-status.ready{border-color:#bfd9ca;background:#f4faf6;color:#1f5135}.course-keying-status.warning{border-color:#ead8c0;background:#fff9f1;color:#7c4a18}.course-touch-keys{display:grid;gap:.6rem;margin-bottom:1.2rem}.course-touch-label{font-weight:600;color:#1a2233}.course-touch-paddles{display:grid;grid-template-columns:repeat(2,minmax(120px,1fr));gap:.75rem}.course-touch-key{border:2px solid #1a2233;background:#fff;color:#1a2233;border-radius:.8rem;padding:1rem 1.2rem;font-weight:700;text-transform:uppercase;letter-spacing:.08em;cursor:pointer;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none;-webkit-tap-highlight-color:transparent;touch-action:none}.course-touch-key.straight{width:100%}.course-touch-key:active{background:#e53935;color:#fff;border-color:#e53935}.my-key-serial-panel{grid-column:1 / -1;display:grid;gap:.75rem;padding:.85rem .95rem;border-radius:.9rem;border:1px solid #dbe3f4;background:#f7f9fc}.my-key-serial-panel.connected{border-color:#bfd9ca;background:#f4faf6}.my-key-serial-summary{display:grid;gap:.28rem}.my-key-serial-title{font-size:.84rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:#1a2233}.my-key-serial-copy{color:#42526b;line-height:1.45}.my-key-serial-debug{color:#667892;font-size:.92rem;line-height:1.4}.my-key-serial-signals{display:flex;flex-wrap:wrap;gap:.45rem;margin-top:.15rem}.my-key-serial-signal{padding:.22rem .55rem;border-radius:999px;background:#edf2f8;color:#60728e;font-size:.78rem;font-weight:700;letter-spacing:.02em}.my-key-serial-signal.active{background:#e53935;color:#fff}.my-key-serial-actions{display:flex;flex-wrap:wrap;gap:.7rem}.vband-inline-hint{grid-column:1 / -1;display:grid;gap:.55rem;padding:.75rem .9rem;border-radius:.85rem;border:1px solid #dbe3f4;background:#fafbfd}.vband-inline-header{display:flex;justify-content:space-between;gap:1rem}.vband-inline-title{font-size:.8rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:#1a2233}.vband-inline-copy{color:#42526b;line-height:1.45}.vband-inline-copy.subtle{color:#667892;font-size:.92rem}.vband-inline-controls{display:grid;grid-template-columns:minmax(220px,1fr) auto;gap:.85rem;align-items:end}.vband-inline-signals{display:flex;flex-wrap:wrap;gap:.45rem}.vband-inline-signal{padding:.22rem .55rem;border-radius:999px;background:#edf2f8;color:#60728e;font-size:.78rem;font-weight:700;letter-spacing:.02em}.vband-inline-signal.active{background:#0f766e;color:#fff}.vband-inline-debug-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.6rem}.vband-inline-debug-item{display:grid;gap:.2rem;padding:.55rem .65rem;border-radius:.7rem;background:#f2f5fa;border:1px solid #e0e7f2}.vband-inline-debug-item span{color:#667892;font-size:.78rem;text-transform:uppercase;letter-spacing:.05em}.vband-inline-debug-item strong{color:#1a2233;font-size:.92rem;overflow-wrap:anywhere}.course-controls input[type=range]{width:100%;accent-color:#e53935}.practice-sending-controls{grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}.practice-sending-control{grid-column:auto}.practice-sending-controls>.course-control{grid-column:auto}.course-actions{display:flex;flex-direction:column;gap:.6rem;align-items:flex-start;margin-bottom:1.5rem}.course-action-buttons{display:flex;flex-wrap:wrap;gap:.75rem;align-items:center}.course-action-indicators{display:flex;align-items:center;gap:1rem}.course-actions button{background:#e53935;color:#fff;border:none;border-radius:.6rem;padding:.7rem 1.4rem;font-weight:600;cursor:pointer}.course-actions button:disabled{background:#ccc;cursor:not-allowed}.course-actions button:focus-visible{outline:2px solid var(--focus-ring-color);outline-offset:2px}.course-timer{font-weight:600;color:#333;display:flex;align-items:center}.course-timer-pie{width:84px;height:84px;border-radius:50%;background:conic-gradient(#e53935 calc(var(--progress) * 1turn),#f0f0f0 0);display:inline-flex;align-items:center;justify-content:center;position:relative;box-shadow:inset 0 0 0 6px #fff,0 2px 8px #00000014}.course-timer-pie-label{font-size:.95rem;font-weight:700;color:#222}.course-step-pie{width:64px;height:64px;box-shadow:inset 0 0 0 4px #fff,0 2px 8px #00000014}.course-prompt-line{display:flex;align-items:baseline;gap:.5rem}.course-prompt-inline{display:flex;align-items:center;gap:.5rem}.course-prompt-label{font-weight:700;color:#1a2233}.course-prompt-text{font-size:3.6rem;font-weight:800;letter-spacing:.04em;color:#1a2233;line-height:1}.course-input{display:grid;gap:.5rem}.course-input textarea{width:100%;border:1px solid #ddd;border-radius:.6rem;padding:.8rem;font-size:1rem;font-family:inherit;resize:vertical}.course-results{background:#fff;border-radius:1.2rem;box-shadow:0 4px 24px #00000014;padding:1.5rem 2rem}.course-results h2{margin-top:0;color:#1a2233}.course-results-empty{color:#777}.course-lesson-header{display:flex;justify-content:flex-start;margin-bottom:.75rem}.course-back-btn{background:transparent;border:none;color:#e53935;font-weight:600;cursor:pointer;padding:0}.course-lesson-list{display:grid;gap:.8rem}.course-step-layout{display:grid;gap:1rem}.course-step-columns{display:grid;grid-template-columns:minmax(220px,1fr) 2fr;gap:1rem;align-items:start}.course-step-panel{background:var(--bg-surface-muted);border:1px solid var(--border-subtle);border-radius:1rem;padding:1rem .85rem;height:fit-content}.course-step-panel-title{margin:0 0 .75rem;font-size:1rem;color:var(--text-primary)}.course-step-list{display:grid;gap:.2rem}.course-step-item{display:grid;grid-template-columns:34px 1fr;gap:.9rem;align-items:stretch;width:100%;padding:.45rem .55rem;border:0;background:transparent;box-shadow:none;text-align:left;cursor:pointer;color:inherit;font:inherit}.course-step-item:focus{outline:none}.course-step-item:focus-visible{outline:2px solid var(--focus-ring-color);outline-offset:2px;border-radius:.75rem}.course-step-item.current{background:var(--accent-soft);border-radius:.85rem}.course-step-marker{display:grid;grid-template-rows:minmax(10px,1fr) 18px minmax(10px,1fr);justify-items:center;align-items:stretch;min-height:100%}.course-step-dot{width:18px;height:18px;border-radius:50%;border:3px solid var(--border-strong);background:var(--bg-surface);position:relative;z-index:1;align-self:center}.course-step-marker.complete .course-step-dot{border-color:var(--accent);background:var(--accent)}.course-step-marker.current .course-step-dot{border-color:var(--border-strong);background:var(--bg-app-muted);box-shadow:0 0 0 4px var(--accent-soft)}.course-step-segment{width:3px;background:var(--border-subtle);align-self:stretch;justify-self:center;border-radius:999px}.course-step-segment.complete{background:var(--accent)}.course-step-segment.upcoming{background:var(--border-subtle)}.course-step-segment.hidden{visibility:hidden}.course-step-content{display:grid;gap:.18rem;padding-block:.1rem}.course-step-title{font-weight:700;color:var(--text-primary);line-height:1.25}.course-step-status{font-size:.8rem;color:var(--text-muted)}.course-step-item.complete .course-step-status,.course-step-item.current .course-step-status{color:var(--text-secondary)}.course-step-main{display:grid;gap:.75rem;align-self:start}.course-module-grid{display:grid;gap:1rem}.course-home-grid{grid-template-columns:repeat(auto-fit,minmax(260px,1fr));align-items:stretch}.course-roadmap-launcher{grid-column:1 / -1;display:grid;grid-template-columns:minmax(17rem,.9fr) minmax(20rem,1.2fr) minmax(8.8rem,auto);align-items:center;gap:1.1rem;min-width:0;padding:.9rem 1rem;border:1px solid color-mix(in srgb,var(--info) 24%,var(--border-subtle));border-radius:var(--radius-md);background:linear-gradient(135deg,color-mix(in srgb,var(--bg-surface) 94%,var(--info-soft)),var(--bg-surface));box-shadow:var(--surface-shadow)}.course-roadmap-launcher-main{display:grid;gap:.36rem;min-width:0}.course-roadmap-title-row{display:flex;align-items:center;gap:.45rem;min-width:0}.course-roadmap-title-row h3,.course-roadmap-headline h2,.course-roadmap-module-head h3{margin:0}.course-roadmap-title-row h3{color:var(--text-primary);font-size:clamp(1.28rem,1.6vw,1.55rem);line-height:1.12;white-space:nowrap}.course-roadmap-current{display:grid;gap:.12rem;min-width:0}.course-roadmap-current span,.course-roadmap-summary span,.course-roadmap-node-code{color:var(--text-muted);font-size:.78rem;font-weight:850;letter-spacing:.05em;text-transform:uppercase}.course-roadmap-current strong{overflow:hidden;color:var(--text-primary);font-size:.95rem;line-height:1.25;text-overflow:ellipsis;white-space:nowrap}.course-roadmap-preview{position:relative;display:flex;align-items:center;justify-content:space-between;gap:.42rem;min-width:0;max-width:34rem;padding:.58rem .12rem;justify-self:stretch}.course-roadmap-preview-line{position:absolute;left:1rem;right:1rem;top:50%;height:2px;background:color-mix(in srgb,var(--info) 42%,var(--border-subtle))}.course-roadmap-preview-node{position:relative;z-index:1;display:inline-flex;align-items:center;justify-content:center;width:1.82rem;height:1.82rem;border:1px solid var(--border-subtle);border-radius:var(--radius-pill);background:var(--bg-surface);color:var(--text-secondary);font-size:.72rem;font-weight:900}.course-roadmap-preview-node.complete{border-color:var(--success-border);background:var(--success-soft);color:var(--success)}.course-roadmap-preview-node.current{border-color:var(--info-border);background:color-mix(in srgb,var(--info-soft) 80%,var(--bg-surface));color:var(--info);box-shadow:0 0 0 5px color-mix(in srgb,var(--info) 12%,transparent)}.course-roadmap-preview-node.review{border-color:var(--warning-border);background:var(--warning-soft);color:var(--warning)}.course-roadmap-launcher-metrics{display:grid;align-items:center;justify-self:end;gap:.5rem;width:min(9.8rem,100%);min-width:0}.course-roadmap-launcher-metrics>div{display:grid;gap:.08rem;justify-items:center;text-align:center}.course-roadmap-launcher-metrics span{color:var(--accent);font-size:clamp(1.45rem,2vw,1.9rem);font-weight:950;line-height:1}.course-roadmap-launcher-metrics b{color:var(--text-secondary);font-size:.78rem;white-space:nowrap}.course-roadmap-launcher-metrics>.settings-primary-btn{width:100%;min-width:0;min-height:2.65rem;padding:.6rem .9rem;white-space:nowrap}.course-progress-card-shell{min-height:100%}.course-progress-module-card{align-content:start;gap:.62rem}.course-progress-card-current{display:grid;gap:.12rem}.course-progress-card-current span{color:var(--text-muted);font-size:.72rem;font-weight:900;letter-spacing:.06em;line-height:1.2;text-transform:uppercase}.course-progress-card-current strong{display:-webkit-box;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:2;color:var(--text-primary);font-size:.92rem;line-height:1.18}.course-progress-rings{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));align-items:center;gap:.7rem;margin-top:auto;padding-block:.2rem}.course-progress-ring{--ring-progress: 0%;--ring-color: var(--accent);--ring-track: color-mix(in srgb, var(--border-subtle) 72%, var(--bg-surface));position:relative;display:grid;width:min(100%,5.25rem);aspect-ratio:1;place-items:center;place-self:center;align-content:center;border-radius:var(--radius-pill);background:radial-gradient(circle,var(--bg-surface) 0 55%,transparent 56%),conic-gradient(var(--ring-color) 0 var(--ring-progress),var(--ring-track) var(--ring-progress) 100%);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--border-subtle) 55%,transparent),0 0 0 .18rem color-mix(in srgb,var(--bg-surface) 78%,transparent);color:var(--text-primary)}.course-progress-ring:after{position:absolute;inset:.48rem;border:1px solid color-mix(in srgb,var(--ring-color) 34%,transparent);border-radius:inherit;content:"";pointer-events:none}.course-progress-ring.lesson{--ring-color: var(--info)}.course-progress-ring-value{display:block;color:var(--text-primary);font-size:1.02rem;font-weight:950;font-variant-numeric:tabular-nums;line-height:1}.course-progress-ring-label{display:block;margin-top:.22rem;color:var(--text-muted);font-size:.56rem;font-weight:950;letter-spacing:.06em;line-height:1;text-transform:uppercase}.course-module-card-shell{position:relative;display:grid;min-width:0}.course-module-card{display:grid;gap:.75rem;text-align:left;background:#fff;border:1px solid #e0e0e0;border-radius:1rem;padding:.95rem 3.25rem .95rem 1rem;width:100%;min-height:12rem;align-content:start;cursor:pointer;box-shadow:0 4px 16px #0000000f}.course-module-info-trigger{position:absolute;top:.72rem;right:.72rem;z-index:2;background:color-mix(in srgb,var(--bg-surface) 86%,transparent);box-shadow:var(--surface-shadow)}.course-module-title{font-size:1.1rem;font-weight:700;color:#1a2233;line-height:1.18}.course-module-progress{display:flex;align-items:center;gap:1rem;margin-top:auto;min-width:0}.course-roadmap-view{display:grid;gap:1rem}.course-roadmap-sticky-head{position:sticky;top:.5rem;z-index:8;display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:.9rem;padding:.75rem;border:1px solid var(--border-subtle);border-radius:var(--radius-md);background:color-mix(in srgb,var(--bg-surface) 94%,transparent);box-shadow:var(--surface-shadow);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}.course-roadmap-headline{min-width:0}.course-roadmap-headline h2{color:var(--text-primary);font-size:clamp(1.25rem,2vw,1.7rem);line-height:1.1}.course-roadmap-head-actions{display:flex;align-items:center;gap:.55rem}.course-roadmap-summary{display:grid;grid-template-columns:minmax(13rem,auto) minmax(0,1fr);align-items:center;gap:1rem}.course-roadmap-summary b{display:block;margin-top:.12rem;color:var(--text-primary);font-size:1rem}.course-roadmap-summary em{display:block;margin-top:.18rem;color:var(--text-secondary);font-size:.86rem;font-style:normal;font-weight:750}.course-roadmap-path{display:grid;gap:1rem}.course-roadmap-module{display:grid;gap:.95rem;overflow:hidden;padding:.95rem;border:1px solid var(--border-subtle);border-radius:var(--radius-md);background:linear-gradient(180deg,color-mix(in srgb,var(--bg-surface) 94%,var(--info-soft)),var(--bg-surface));box-shadow:var(--surface-shadow)}.course-roadmap-module-head{display:flex;align-items:center;justify-content:space-between;gap:.75rem}.course-roadmap-module-head h3{color:var(--text-primary);font-size:1.08rem;line-height:1.2}.course-roadmap-module-kicker{display:block;margin-bottom:.08rem;color:var(--text-muted);font-size:.72rem;font-weight:900;letter-spacing:.08em;text-transform:uppercase}.course-roadmap-module-head span{color:var(--text-secondary);font-size:.84rem;font-weight:850}.course-roadmap-node-list{position:relative;display:grid;gap:.45rem;padding:.25rem 0}.course-roadmap-node-list:before{content:"";position:absolute;top:.7rem;bottom:.7rem;left:50%;width:.28rem;border-radius:var(--radius-pill);background:linear-gradient(180deg,var(--info),color-mix(in srgb,var(--info) 34%,var(--border-subtle)));transform:translate(-50%)}.course-roadmap-node-list:after{content:"";position:absolute;top:.7rem;bottom:.7rem;left:calc(50% - 1.05rem);width:2.1rem;background:repeating-linear-gradient(180deg,transparent 0 .8rem,color-mix(in srgb,var(--border-subtle) 72%,transparent) .8rem .95rem,transparent .95rem 1.55rem);opacity:.72}.course-roadmap-node{position:relative;z-index:1;display:grid;grid-template-columns:minmax(0,1fr) 3.75rem minmax(0,1fr);align-items:center;gap:.78rem;min-height:5.9rem;padding:0;border:0;background:transparent;color:var(--text-primary);text-align:left;cursor:pointer}.course-roadmap-node:nth-child(2n){transform:none}.course-roadmap-node:hover,.course-roadmap-node:focus-visible{outline:none}.course-roadmap-node:hover .course-roadmap-node-card,.course-roadmap-node:focus-visible .course-roadmap-node-card{border-color:var(--border-strong);background:color-mix(in srgb,var(--bg-surface-muted) 82%,var(--info-soft))}.course-roadmap-node.complete .course-roadmap-node-card{border-color:color-mix(in srgb,var(--success-border) 74%,var(--border-subtle))}.course-roadmap-node.current .course-roadmap-node-card{border-color:var(--info-border);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--info) 18%,transparent),0 0 0 4px color-mix(in srgb,var(--info) 10%,transparent),var(--surface-shadow)}.course-roadmap-node.review .course-roadmap-node-card{border-color:var(--warning-border);background:color-mix(in srgb,var(--warning-soft) 38%,var(--bg-surface-muted))}.course-roadmap-node-marker{grid-column:2;display:inline-flex;align-items:center;justify-content:center;justify-self:center;width:3.1rem;height:3.1rem;border:.28rem solid color-mix(in srgb,var(--info) 32%,var(--border-subtle));border-radius:var(--radius-pill);background:var(--bg-surface);color:var(--text-secondary);box-shadow:0 0 0 .28rem color-mix(in srgb,var(--bg-surface) 82%,transparent)}.course-roadmap-node.complete .course-roadmap-node-marker{border-color:var(--success-border);background:var(--success-soft);color:var(--success)}.course-roadmap-node.current .course-roadmap-node-marker{border-color:var(--info-border);background:color-mix(in srgb,var(--info-soft) 78%,var(--bg-surface));color:var(--info);box-shadow:0 0 0 .28rem color-mix(in srgb,var(--bg-surface) 82%,transparent),0 0 0 .62rem color-mix(in srgb,var(--info) 12%,transparent)}.course-roadmap-node.review .course-roadmap-node-marker{border-color:var(--warning-border);background:var(--warning-soft);color:var(--warning)}.course-roadmap-node-number{font-size:1rem;font-weight:950;line-height:1}.course-roadmap-node-card{grid-column:1;display:grid;justify-self:end;width:min(100%,18rem);min-width:0;gap:.16rem;padding:.68rem .78rem;border:1px solid var(--border-subtle);border-radius:var(--radius-md);background:color-mix(in srgb,var(--bg-surface-muted) 92%,transparent);box-shadow:var(--surface-shadow)}.course-roadmap-node:nth-child(2n) .course-roadmap-node-card{grid-column:3;justify-self:start}.course-roadmap-node strong{overflow:hidden;color:var(--text-primary);font-size:.98rem;line-height:1.16;text-overflow:ellipsis}.course-roadmap-node-meta,.course-roadmap-node-progress{color:var(--text-secondary);font-size:.78rem;font-weight:750;line-height:1.25}.course-roadmap-node-progress{align-self:end;margin-top:.25rem}@media(max-width:900px){.course-roadmap-launcher{grid-template-columns:1fr}.course-roadmap-launcher-metrics{justify-content:space-between}.course-roadmap-launcher-metrics>div{text-align:left}.course-roadmap-sticky-head{position:static;grid-template-columns:1fr}.course-roadmap-head-actions{align-items:stretch;flex-direction:column}.course-roadmap-head-actions>button{width:100%}}@media(max-width:640px){.course-roadmap-preview{gap:.35rem}.course-roadmap-preview-node{width:1.65rem;height:1.65rem;font-size:.6rem}.course-roadmap-summary,.course-roadmap-node-list{grid-template-columns:1fr}.course-roadmap-node-list:before{top:.5rem;bottom:.5rem;left:1.55rem;right:auto;width:.24rem;height:auto}.course-roadmap-node-list:after{top:.5rem;bottom:.5rem;left:.58rem}.course-roadmap-node,.course-roadmap-node:nth-child(2n){grid-template-columns:3.1rem minmax(0,1fr);gap:.65rem;min-height:5.25rem;transform:none}.course-roadmap-node-marker{grid-column:1;width:2.8rem;height:2.8rem}.course-roadmap-node-card,.course-roadmap-node:nth-child(2n) .course-roadmap-node-card{grid-column:2;justify-self:stretch;width:100%}}.course-home-trail-layout{display:grid;gap:.85rem}.course-home-overview{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));align-items:stretch;gap:.65rem;margin-bottom:.8rem}.course-home-overview-card{display:grid;align-content:start;grid-template-rows:auto minmax(1.35rem,auto) auto auto;min-width:0;min-height:6rem;gap:.16rem;padding:.75rem .85rem;border:1px solid var(--border-subtle);border-radius:var(--radius-md);background:color-mix(in srgb,var(--bg-surface-muted) 78%,var(--bg-surface));box-shadow:var(--surface-shadow)}.course-home-overview-card.proficiency{background:linear-gradient(135deg,color-mix(in srgb,var(--success-soft) 54%,var(--bg-surface)),var(--bg-surface))}.course-home-overview-card.checkpoint{background:linear-gradient(135deg,color-mix(in srgb,var(--info-soft) 58%,var(--bg-surface)),var(--bg-surface))}.course-home-overview-kicker,.course-trail-current span,.course-trail-summary span,.course-trail-signpost,.course-trail-support-action span{color:var(--text-muted);font-size:.72rem;font-weight:900;letter-spacing:.06em;line-height:1.2;text-transform:uppercase}.course-home-overview-card strong{display:-webkit-box;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:2;color:var(--text-primary);font-size:clamp(1rem,1.1vw,1.15rem);line-height:1.15;text-overflow:ellipsis;font-variant-numeric:tabular-nums}.course-home-overview-card.proficiency strong{color:var(--accent);font-size:clamp(1.45rem,2vw,2rem);line-height:1;-webkit-line-clamp:1}.course-home-overview-card>span:not(.course-home-overview-kicker){color:var(--text-secondary);font-size:.82rem;font-weight:760}.course-home-overview-card .sync-ok{color:var(--success)}.course-home-overview-card .sync-error{color:var(--warning)}.course-home-overview-actions{display:flex;flex-wrap:wrap;align-items:center;gap:.35rem;margin-top:.28rem}.course-overview-link{display:inline-flex;align-items:center;justify-content:center;min-height:2rem;padding:.22rem .55rem;border:1px solid var(--border-subtle);border-radius:var(--radius-pill);background:color-mix(in srgb,var(--bg-surface) 84%,transparent);color:var(--text-primary);font-size:.82rem;font-weight:850;line-height:1}.course-overview-link.secondary{color:var(--text-secondary)}.course-trail-launcher{display:grid;grid-template-columns:minmax(15rem,.95fr) minmax(22rem,1.35fr) 10.75rem;align-items:center;gap:.95rem;min-width:0;padding:1rem;border:1px solid color-mix(in srgb,var(--info) 26%,var(--border-subtle));border-radius:var(--radius-md);background:linear-gradient(135deg,color-mix(in srgb,var(--success-soft) 30%,transparent),transparent 42%),linear-gradient(180deg,color-mix(in srgb,var(--bg-surface) 94%,var(--info-soft)),var(--bg-surface));box-shadow:var(--surface-shadow)}.course-trail-launcher-main{display:grid;gap:.32rem;min-width:0}.course-trail-title-row{display:flex;align-items:center;gap:.45rem;min-width:0}.course-trail-title-row h3,.course-trail-map-headline h2,.course-trail-module-head h3,.course-trail-current-card h3{margin:0;color:var(--text-primary);line-height:1.12}.course-trail-title-row h3{font-size:clamp(1.7rem,2.6vw,2.45rem);font-weight:950}.course-trail-current{display:grid;gap:.1rem;min-width:0}.course-trail-current strong{overflow:hidden;color:var(--text-primary);font-size:1.03rem;line-height:1.22;text-overflow:ellipsis;white-space:nowrap}.course-trail-inline-continue{justify-self:start;min-height:2.15rem;padding:.28rem .7rem;border:1px solid color-mix(in srgb,var(--accent) 45%,var(--border-subtle));border-radius:var(--radius-pill);background:color-mix(in srgb,var(--accent) 12%,var(--bg-surface));color:var(--accent);font-size:.84rem;font-weight:900}.course-trail-preview{position:relative;display:flex;align-items:center;justify-content:space-between;gap:.28rem;min-width:0;padding:1.35rem .15rem 1.1rem}.course-trail-preview-line{position:absolute;right:1.2rem;left:1.2rem;top:50%;height:.28rem;border-radius:var(--radius-pill);background:repeating-linear-gradient(90deg,color-mix(in srgb,var(--info) 40%,var(--border-subtle)) 0 1.05rem,color-mix(in srgb,var(--success) 42%,var(--border-subtle)) 1.05rem 1.18rem)}.course-trail-preview-node{position:relative;z-index:1;display:inline-flex;align-items:center;justify-content:center;justify-self:center;width:2.15rem;height:2.15rem;border:2px solid var(--border-subtle);border-radius:var(--radius-pill);background:var(--bg-surface);color:var(--text-secondary);font-size:.72rem;font-weight:950;font-variant-numeric:tabular-nums;box-shadow:0 0 0 .26rem color-mix(in srgb,var(--bg-surface) 82%,transparent)}.course-trail-preview-node:nth-of-type(odd){transform:translateY(-.45rem)}.course-trail-preview-node:nth-of-type(2n){transform:translateY(.45rem)}.course-trail-preview-node.complete{border-color:var(--success-border);background:var(--success-soft);color:var(--success)}.course-trail-preview-node.current{border-color:var(--info-border);background:color-mix(in srgb,var(--info-soft) 82%,var(--bg-surface));color:var(--info);box-shadow:0 0 0 .28rem color-mix(in srgb,var(--bg-surface) 82%,transparent),0 0 0 .58rem color-mix(in srgb,var(--info) 13%,transparent)}.course-trail-preview-node.review{border-color:var(--warning-border);background:var(--warning-soft);color:var(--warning)}.course-trail-preview-node.milestone:after{content:"";position:absolute;top:-.62rem;width:.42rem;height:.42rem;border-radius:2px;background:color-mix(in srgb,var(--accent) 70%,var(--warning));transform:rotate(45deg)}.course-trail-launcher-metrics{display:grid;justify-items:stretch;gap:.5rem;min-width:0;width:10.75rem}.course-trail-launcher-metrics>div{display:grid;justify-items:center;gap:.05rem;text-align:center}.course-trail-launcher-metrics span{color:var(--accent);font-size:clamp(1.9rem,3vw,3rem);font-weight:950;font-variant-numeric:tabular-nums;line-height:.94}.course-trail-launcher-metrics b{color:var(--text-secondary);font-size:.8rem;white-space:nowrap}.course-trail-launcher-metrics>.settings-primary-btn{min-height:2.85rem;padding-inline:.9rem}.course-trail-support-row{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));align-items:stretch;gap:.65rem}.course-trail-support-action{display:flex;align-items:center;justify-content:space-between;min-width:0;min-height:4.75rem;gap:.65rem;padding:.7rem .78rem;border:1px solid var(--border-subtle);border-radius:var(--radius-md);background:color-mix(in srgb,var(--bg-surface-muted) 82%,var(--bg-surface));box-shadow:var(--surface-shadow)}.course-trail-support-action>div:first-child{display:grid;min-width:0;gap:.05rem}.course-trail-support-action strong{overflow:hidden;color:var(--text-primary);font-size:1rem;line-height:1.18;text-overflow:ellipsis;white-space:nowrap}.course-trail-support-action em{overflow:hidden;color:var(--text-secondary);font-size:.8rem;font-style:normal;font-weight:760;text-overflow:ellipsis;white-space:nowrap}.course-trail-support-controls{display:flex;align-items:center;gap:.38rem;flex:0 0 auto}.course-trail-map{display:grid;gap:.85rem}.course-trail-map-head{position:sticky;top:.5rem;z-index:8;display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:.8rem;padding:.72rem;border:1px solid var(--border-subtle);border-radius:var(--radius-md);background:color-mix(in srgb,var(--bg-surface) 94%,transparent);box-shadow:var(--surface-shadow);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}.course-trail-map-headline h2{font-size:clamp(1.35rem,2.1vw,2rem)}.course-trail-map-actions{display:flex;align-items:center;gap:.5rem}.course-trail-current-card{display:grid;grid-template-columns:3.25rem minmax(0,1fr) 8.5rem;align-items:center;gap:.75rem;padding:.78rem .85rem;border:1px solid color-mix(in srgb,var(--info) 36%,var(--border-subtle));border-radius:var(--radius-md);background:linear-gradient(135deg,color-mix(in srgb,var(--info-soft) 58%,var(--bg-surface)),var(--bg-surface));box-shadow:var(--surface-shadow)}.course-trail-current-marker{--checkpoint-progress: 0%;--checkpoint-ring: var(--accent);--checkpoint-ring-track: color-mix(in srgb, var(--info) 18%, var(--bg-surface));display:inline-flex;align-items:center;justify-content:center;width:3.05rem;height:3.05rem;border:0;border-radius:var(--radius-pill);background:radial-gradient(circle,var(--bg-surface) 0 58%,transparent 59%),conic-gradient(var(--checkpoint-ring) 0 var(--checkpoint-progress),var(--checkpoint-ring-track) var(--checkpoint-progress) 100%);color:var(--info);font-size:1.05rem;font-weight:950;font-variant-numeric:tabular-nums;box-shadow:0 0 0 .35rem color-mix(in srgb,var(--info) 10%,transparent)}.course-trail-current-card h3{margin-top:.08rem;font-size:clamp(1.15rem,1.6vw,1.5rem)}.course-trail-current-meta{display:flex;flex-wrap:wrap;gap:.32rem;margin-top:.28rem}.course-trail-current-meta span{display:inline-flex;min-height:1.72rem;align-items:center;padding:.14rem .48rem;border:1px solid var(--border-subtle);border-radius:var(--radius-pill);background:color-mix(in srgb,var(--bg-surface) 78%,transparent);color:var(--text-secondary);font-size:.78rem;font-weight:780}.course-trail-summary{display:grid;grid-template-columns:14rem minmax(0,1fr);align-items:center;gap:.8rem;padding:.72rem .85rem}.course-trail-summary b{display:block;color:var(--text-primary);font-size:.98rem;font-variant-numeric:tabular-nums}.course-trail-path{display:grid;gap:.75rem}.course-trail-module{display:grid;gap:.7rem;padding:.8rem;border:1px solid var(--border-subtle);border-radius:var(--radius-md);background:linear-gradient(180deg,color-mix(in srgb,var(--bg-surface) 96%,var(--success-soft)),var(--bg-surface));box-shadow:var(--surface-shadow)}.course-trail-module-head{display:flex;align-items:center;justify-content:space-between;gap:.7rem}.course-trail-module-head h3{font-size:1.15rem}.course-trail-module-head>span{display:inline-flex;align-items:center;min-height:1.9rem;padding:.15rem .55rem;border:1px solid var(--border-subtle);border-radius:var(--radius-pill);background:var(--bg-surface-muted);color:var(--text-secondary);font-size:.82rem;font-weight:850}.course-trail-stop-list{--trail-marker-column: 2.75rem;--trail-line-x: calc(var(--trail-marker-column) / 2);position:relative;display:grid;gap:.42rem;padding-block:.12rem}.course-trail-stop-list:before{content:"";position:absolute;top:.9rem;bottom:.9rem;left:var(--trail-line-x);width:.26rem;border-radius:var(--radius-pill);background:linear-gradient(180deg,var(--success),var(--info) 46%,color-mix(in srgb,var(--border-subtle) 78%,var(--info)));opacity:.82;transform:translate(-50%)}.course-trail-stop{position:relative;z-index:1;display:grid;grid-template-columns:var(--trail-marker-column) minmax(0,1fr);align-items:center;gap:.55rem;min-width:0}.course-trail-stop:nth-child(4n+2),.course-trail-stop:nth-child(4n+3){padding-left:0}.course-trail-stop-marker{--checkpoint-progress: 0%;--checkpoint-ring: var(--info);--checkpoint-ring-track: color-mix(in srgb, var(--border-subtle) 72%, var(--bg-surface));position:relative;isolation:isolate;display:inline-flex;align-items:center;justify-content:center;justify-self:center;flex:0 0 auto;width:2.3rem;height:2.3rem;min-width:2.3rem;min-height:2.3rem;border:0;border-radius:var(--radius-pill);background:radial-gradient(circle,var(--bg-surface) 0 58%,transparent 59%),conic-gradient(var(--checkpoint-ring) 0 var(--checkpoint-progress),var(--checkpoint-ring-track) var(--checkpoint-progress) 100%);color:var(--text-secondary);font-size:.78rem;font-weight:950;font-variant-numeric:tabular-nums;line-height:1;overflow:hidden;text-align:center;-webkit-user-select:none;user-select:none;box-shadow:0 0 0 .22rem color-mix(in srgb,var(--bg-surface) 86%,transparent)}.course-trail-stop.complete .course-trail-stop-marker{--checkpoint-ring: var(--success);--checkpoint-ring-track: color-mix(in srgb, var(--success) 18%, var(--bg-surface));color:var(--success)}.course-trail-stop.current .course-trail-stop-marker{--checkpoint-ring: var(--accent);--checkpoint-ring-track: color-mix(in srgb, var(--info) 18%, var(--bg-surface));width:2.5rem;height:2.5rem;color:var(--info);box-shadow:0 0 0 .24rem color-mix(in srgb,var(--bg-surface) 88%,transparent),0 0 0 .56rem color-mix(in srgb,var(--info) 12%,transparent)}.course-trail-stop.review .course-trail-stop-marker{--checkpoint-ring: var(--warning);--checkpoint-ring-track: color-mix(in srgb, var(--warning) 18%, var(--bg-surface));color:var(--warning)}.course-trail-stop.milestone .course-trail-stop-marker:after{content:"";position:absolute;width:.42rem;height:.42rem;margin-top:-2rem;border-radius:2px;background:color-mix(in srgb,var(--accent) 72%,var(--warning));transform:rotate(45deg)}.course-trail-checkpoint{display:grid;grid-template-columns:minmax(0,1fr) 8.6rem 5.2rem;align-items:center;gap:.6rem;min-width:0;min-height:3.55rem;padding:.5rem .6rem;border:1px solid var(--border-subtle);border-radius:var(--radius-md);background:color-mix(in srgb,var(--bg-surface-muted) 82%,var(--bg-surface));color:var(--text-primary);text-align:left;box-shadow:var(--surface-shadow)}.course-trail-checkpoint:hover,.course-trail-checkpoint:focus-visible{border-color:var(--border-strong);background:color-mix(in srgb,var(--bg-surface-muted) 72%,var(--info-soft))}.course-trail-stop.current .course-trail-checkpoint{min-height:3.95rem;border-color:var(--info-border);background:color-mix(in srgb,var(--info-soft) 54%,var(--bg-surface));box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--info) 18%,transparent),var(--surface-shadow)}.course-trail-stop.complete .course-trail-checkpoint{border-color:color-mix(in srgb,var(--success-border) 74%,var(--border-subtle))}.course-trail-stop.review .course-trail-checkpoint{border-color:var(--warning-border);background:color-mix(in srgb,var(--warning-soft) 38%,var(--bg-surface-muted))}.course-trail-checkpoint-main{display:grid;min-width:0;gap:.08rem}.course-trail-checkpoint-main strong{overflow:hidden;color:var(--text-primary);font-size:.98rem;line-height:1.18;text-overflow:ellipsis;white-space:nowrap}.course-trail-stop.current .course-trail-checkpoint-main strong{font-size:1.08rem}.course-trail-checkpoint-letters{overflow:hidden;color:var(--text-secondary);font-size:.8rem;font-weight:850;letter-spacing:.08em;line-height:1.18;text-overflow:ellipsis;white-space:nowrap}.course-trail-checkpoint-status{display:inline-flex;align-items:baseline;justify-content:flex-end;gap:.32rem;color:var(--text-secondary);font-size:.8rem;font-weight:820;white-space:nowrap;font-variant-numeric:tabular-nums}.course-trail-checkpoint-status b{color:var(--text-primary);font-size:.92rem}.course-trail-checkpoint-action{display:inline-flex;align-items:center;justify-content:center;width:5.2rem;min-width:5.2rem;min-height:2rem;padding:.16rem .52rem;border:1px solid var(--border-subtle);border-radius:var(--radius-pill);background:var(--bg-surface);color:var(--text-primary);font-size:.78rem;font-weight:900;white-space:nowrap}.course-trail-stop.current .course-trail-checkpoint-action{border-color:color-mix(in srgb,var(--accent) 46%,var(--border-subtle));background:color-mix(in srgb,var(--accent) 12%,var(--bg-surface));color:var(--accent)}@media(prefers-reduced-motion:no-preference){.course-trail-preview-node.current,.course-trail-stop.current .course-trail-stop-marker{animation:trail-current-pulse 2.3s ease-in-out infinite}@keyframes trail-current-pulse{0%,to{box-shadow:0 0 0 .24rem color-mix(in srgb,var(--bg-surface) 88%,transparent),0 0 0 .52rem color-mix(in srgb,var(--info) 10%,transparent)}50%{box-shadow:0 0 0 .24rem color-mix(in srgb,var(--bg-surface) 88%,transparent),0 0 0 .76rem color-mix(in srgb,var(--info) 16%,transparent)}}}@media(max-width:980px){.course-home-overview,.course-trail-launcher,.course-trail-support-row{grid-template-columns:1fr}.course-trail-launcher-metrics{grid-template-columns:minmax(0,1fr) auto;align-items:center;width:100%}.course-trail-launcher-metrics>div{justify-items:start;text-align:left}.course-trail-map-head,.course-trail-current-card{grid-template-columns:1fr}.course-trail-map-actions{align-items:stretch;flex-direction:column}.course-trail-map-actions>button,.course-trail-current-card>button{width:100%}}@media(max-width:640px){.course-home-overview-card{min-height:auto}.course-trail-launcher{padding:.86rem}.course-trail-title-row h3{font-size:1.85rem}.course-trail-preview{grid-template-columns:repeat(auto-fit,minmax(1.55rem,1fr));padding-block:1.05rem}.course-trail-preview-node{width:1.86rem;height:1.86rem;font-size:.64rem}.course-trail-launcher-metrics,.course-trail-summary{grid-template-columns:1fr}.course-trail-stop,.course-trail-stop:nth-child(4n+2),.course-trail-stop:nth-child(4n+3){--trail-marker-column: 2.7rem;grid-template-columns:var(--trail-marker-column) minmax(0,1fr);padding-left:0}.course-trail-checkpoint{grid-template-columns:minmax(0,1fr);gap:.35rem}.course-trail-checkpoint-main strong{white-space:normal}.course-trail-checkpoint-status,.course-trail-checkpoint-action{justify-self:start}.course-trail-support-action{align-items:flex-start}}.course-module-pie{width:64px;height:64px;box-shadow:inset 0 0 0 5px #fff,0 2px 8px #0000000f}.course-module-progress-text{color:#555;font-weight:600}.course-lesson-item{display:grid;gap:.25rem;text-align:left;background:#f7f7f7;border:1px solid #e0e0e0;border-radius:.8rem;padding:1rem;cursor:pointer}.course-lesson-item:disabled,.course-lesson-item.locked{cursor:not-allowed;opacity:.55}.course-lesson-row{display:flex;align-items:center;justify-content:space-between;gap:1rem}.course-lesson-main{display:grid;gap:.25rem}.course-lesson-title-row{display:flex;flex-wrap:wrap;align-items:center;gap:.6rem}.course-lesson-progress{flex:0 0 auto;display:grid;justify-items:end;gap:.35rem}.course-lesson-pie{width:56px;height:56px;box-shadow:inset 0 0 0 4px #fff,0 2px 8px #00000014}.course-lesson-pie .course-timer-pie-label{font-size:.8rem;font-weight:700}.course-lesson-title{font-size:1.05rem;font-weight:700;color:#1a2233}.course-lesson-desc{color:#555}.course-lesson-status{font-size:.9rem;font-weight:600;margin-top:.25rem}.course-lesson-status.complete{color:#2e7d32}.course-lesson-status.incomplete{color:var(--text-secondary)}.course-lesson-mastery{font-size:.82rem;font-weight:700;color:var(--text-secondary)}.course-review-chip{display:inline-flex;align-items:center;justify-content:center;padding:.2rem .55rem;border-radius:999px;font-size:.75rem;font-weight:700;border:1px solid var(--border-subtle);background:var(--bg-surface-muted);color:var(--text-secondary)}.course-review-chip.healthy{background:var(--success-soft);border-color:var(--success-border);color:var(--success)}.course-review-chip.needs_review{background:var(--warning-soft);border-color:var(--warning-border);color:var(--warning)}.course-review-chip.overdue{background:var(--danger-soft);border-color:var(--danger-border);color:var(--danger)}.course-weak-symbols{display:flex;flex-wrap:wrap;gap:.4rem;margin-top:.15rem}.course-weak-symbol-chip{display:inline-flex;align-items:center;gap:.25rem;padding:.2rem .5rem;border-radius:999px;font-size:.75rem;font-weight:700;background:var(--bg-chip-neutral);color:var(--text-secondary)}.course-weak-symbol-chip.good{background:var(--success-soft);color:var(--success);border:1px solid var(--success-border)}.course-weak-symbol-chip.poor{background:var(--danger-soft);color:var(--danger);border:1px solid var(--danger-border)}.course-weak-symbol-chip.unseen{background:var(--bg-chip-neutral);color:var(--text-muted);border:1px solid var(--border-subtle)}.course-toggle-row{display:grid;gap:.5rem;margin-bottom:1rem}.course-toggle{display:flex;align-items:center;gap:.5rem;font-weight:600;color:var(--text-primary)}.course-toggle input[type=checkbox]{width:18px;height:18px;accent-color:var(--accent);border-radius:4px}.course-toggle:hover{color:var(--text-primary)}.course-toggle input[type=checkbox]:focus-visible{outline:2px solid var(--focus-ring-color);outline-offset:2px}.course-voice-prompt-toggle{min-height:var(--control-height);padding:.85rem .95rem;border:1px solid var(--border-subtle);border-radius:var(--radius-md);background:var(--bg-surface-muted);box-shadow:var(--shadow-sm)}.course-send-controls .course-voice-prompt-toggle{align-content:center;justify-content:flex-start;margin:0;font-size:.92rem;line-height:1.2}.course-send-controls .course-voice-prompt-toggle input[type=checkbox]{flex:0 0 auto}.course-warning{color:var(--warning);font-weight:600;margin-bottom:1rem}.course-results-card{margin-top:.5rem;padding:1rem 1.2rem;border-radius:.8rem;border:1px solid var(--border-subtle);background:var(--bg-surface-muted);display:grid;gap:.4rem}.course-results-card.passed{border-color:var(--success-border);background:var(--success-soft)}.course-results-card.failed{border-color:var(--danger-border);background:var(--danger-soft)}.compact-card{border:1px solid var(--border-subtle);border-radius:var(--radius-md);background:var(--bg-surface);box-shadow:var(--surface-shadow);padding:var(--space-3)}.compact-row{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);min-height:var(--control-height);padding:.45rem .65rem;border:1px solid var(--border-subtle);border-radius:var(--radius-md);background:color-mix(in srgb,var(--bg-surface-muted) 72%,transparent)}.metadata-strip{display:flex;flex-wrap:wrap;align-items:center;gap:.38rem .65rem;color:var(--text-secondary);font-size:.84rem;font-weight:750;line-height:1.25}.status-dot{display:inline-block;width:.62rem;height:.62rem;border-radius:999px;background:var(--text-muted);box-shadow:0 0 0 3px color-mix(in srgb,currentColor 12%,transparent)}.status-dot.ready,.status-dot.good{background:var(--success)}.status-dot.warning{background:var(--warning)}.status-dot.error{background:var(--danger)}.icon-action,.info-trigger{display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;width:2rem;height:2rem;min-width:2rem;min-height:2rem;padding:0;border:1px solid var(--border-subtle);border-radius:var(--radius-pill);background:color-mix(in srgb,var(--bg-surface-muted) 80%,transparent);color:var(--text-secondary);font:inherit;font-size:.86rem;font-weight:850;line-height:1;cursor:pointer}.icon-action:hover,.icon-action:focus-visible,.info-trigger:hover,.info-trigger:focus-visible{border-color:var(--border-strong);background:color-mix(in srgb,var(--accent-soft) 62%,var(--bg-surface));color:var(--text-primary)}.help-tooltip{position:fixed;z-index:4000;max-width:min(18rem,calc(100vw - 2rem));padding:.55rem .68rem;border:1px solid var(--border-strong);border-radius:var(--radius-md);background:color-mix(in srgb,var(--bg-surface-strong) 96%,var(--bg-surface));color:var(--text-primary);box-shadow:var(--shadow-lg);font-size:.84rem;font-weight:650;line-height:1.35;pointer-events:none}.help-tooltip:after{content:"";position:absolute;left:50%;width:.65rem;height:.65rem;border:inherit;background:inherit;transform:translate(-50%) rotate(45deg)}.help-tooltip[data-placement=top]:after{bottom:-.38rem;border-top:0;border-left:0}.help-tooltip[data-placement=bottom]:after{top:-.38rem;border-right:0;border-bottom:0}.collapsed-banner{display:inline-flex;align-items:center;gap:.42rem;min-height:var(--control-height-compact);padding:.32rem .7rem;border:1px solid var(--border-subtle);border-radius:var(--radius-pill);background:color-mix(in srgb,var(--bg-surface-muted) 82%,transparent);color:var(--text-secondary);font-size:.84rem;font-weight:800}.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}.main-app-content{position:relative}.help-icon{position:absolute;top:18px;right:18px;z-index:10;background:#fff;border:none;border-radius:50%;box-shadow:0 2px 8px #0000001a;width:44px;height:44px;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:box-shadow .2s,background .2s}.help-icon:hover,.help-icon:focus{background:#f0f4ff;box-shadow:0 4px 16px #2563eb1a}.help-icon:focus-visible{outline:2px solid var(--focus-ring-color);outline-offset:2px}.course-status-banner{display:flex;align-items:center;justify-content:space-between;gap:.75rem;margin-bottom:1rem;padding:.75rem .9rem;border-radius:.65rem;border:1px solid var(--border-subtle);font-size:.95rem;line-height:1.5}.course-status-banner.info{background:var(--info-soft);border-color:var(--info-border);color:var(--info)}.course-status-banner.error{background:var(--danger-soft);border-color:var(--danger-border);color:var(--danger)}.course-philosophy-banner{margin-bottom:1rem}.cw-proficiency-card{--cw-proficiency: 0%;display:grid;gap:.9rem;margin-bottom:1rem;padding:1rem;border:1px solid var(--border-subtle);border-radius:1rem;background:linear-gradient(135deg,color-mix(in srgb,var(--bg-surface) 94%,var(--info-soft)),var(--bg-surface));box-shadow:var(--shadow-sm);color:var(--text-primary)}.course-pace-summary-card{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:1rem;padding:.95rem 1rem;border:1px solid var(--border-subtle);border-radius:var(--radius-md, 8px);background:var(--bg-surface);box-shadow:var(--shadow-sm);color:var(--text-primary)}.course-pace-summary-card h3{margin:.12rem 0 .2rem;font-size:clamp(1.1rem,1.3vw,1.35rem);line-height:1.15}.course-pace-summary-copy{color:var(--text-secondary);font-size:.95rem;font-weight:700}@media(max-width:640px){.course-pace-summary-card{align-items:stretch;flex-direction:column}.course-pace-summary-card .modal-secondary-btn{width:100%}}.cw-proficiency-top{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem}.cw-proficiency-kicker{font-size:.78rem;font-weight:800;letter-spacing:.04em;text-transform:uppercase;color:var(--text-muted)}.cw-proficiency-title{margin:.1rem 0 0;font-size:clamp(1.35rem,1.8vw,1.8rem);line-height:1.15;color:var(--text-primary)}.cw-proficiency-status{margin-top:.25rem;color:var(--text-secondary);font-weight:700}.cw-proficiency-score{flex:0 0 auto;font-size:clamp(2.2rem,4vw,3.3rem);line-height:.95;font-weight:900;color:var(--accent)}.cw-proficiency-track{position:relative;width:100%;height:.78rem;overflow:hidden;border-radius:999px;background:color-mix(in srgb,var(--bg-surface-muted) 86%,var(--border-subtle));border:1px solid var(--border-subtle)}.cw-proficiency-fill{width:var(--cw-proficiency);height:100%;border-radius:inherit;background:linear-gradient(90deg,var(--accent),color-mix(in srgb,var(--success) 82%,var(--accent)));transition:width .22s ease}.cw-proficiency-rings{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:.65rem}.cw-proficiency-ring{--ring-progress: 0%;--ring-color: var(--accent);--ring-track: color-mix(in srgb, var(--border-subtle) 72%, var(--bg-surface));display:grid;justify-items:center;align-content:start;gap:.38rem;min-width:0;padding:.65rem .45rem;border:1px solid var(--border-subtle);border-radius:var(--radius-md, 8px);background:color-mix(in srgb,var(--bg-surface-muted) 86%,transparent)}.cw-proficiency-ring.characterMastery{--ring-color: var(--accent)}.cw-proficiency-ring.retentionHealth{--ring-color: var(--info)}.cw-proficiency-ring.appliedCopy{--ring-color: var(--success)}.cw-proficiency-ring.sendingControl{--ring-color: var(--warning)}.cw-proficiency-ring.courseCoverage{--ring-color: color-mix(in srgb, var(--accent) 56%, var(--info))}.cw-proficiency-ring-chart{position:relative;display:grid;width:4.35rem;aspect-ratio:1;place-items:center;border-radius:var(--radius-pill);background:radial-gradient(circle,var(--bg-surface) 0 55%,transparent 56%),conic-gradient(var(--ring-color) 0 var(--ring-progress),var(--ring-track) var(--ring-progress) 100%);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--border-subtle) 55%,transparent),0 0 0 .14rem color-mix(in srgb,var(--bg-surface) 78%,transparent)}.cw-proficiency-ring-chart:after{position:absolute;inset:.42rem;border:1px solid color-mix(in srgb,var(--ring-color) 34%,transparent);border-radius:inherit;content:"";pointer-events:none}.cw-proficiency-ring-value{color:var(--text-primary);font-size:.9rem;font-weight:950;font-variant-numeric:tabular-nums;line-height:1}.cw-proficiency-ring-meta{display:grid;justify-items:center;gap:.1rem;min-width:0;color:var(--text-secondary);text-align:center;line-height:1.12}.cw-proficiency-ring-meta span{max-width:100%;overflow:hidden;color:var(--text-primary);font-size:.78rem;font-weight:850;text-overflow:ellipsis;white-space:nowrap}.cw-proficiency-ring-meta small{color:var(--text-muted);font-size:.62rem;font-weight:800}.cw-proficiency-next{display:flex;flex-wrap:wrap;align-items:center;gap:.35rem;padding-top:.1rem;color:var(--text-secondary);font-size:.92rem;line-height:1.45}.cw-proficiency-next strong{color:var(--text-primary)}.keying-setup-card{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:1rem;padding:.9rem 1rem;border:1px solid var(--border-subtle);border-radius:var(--radius-lg, 10px);background:var(--bg-surface);box-shadow:var(--shadow-sm);color:var(--text-primary)}.keying-setup-kicker,.keying-setup-modal .modal-kicker{font-size:.78rem;font-weight:800;letter-spacing:.04em;text-transform:uppercase;color:var(--text-muted)}.keying-setup-card h2{margin:.1rem 0 0;font-size:clamp(1.25rem,1.6vw,1.55rem);line-height:1.15}.keying-setup-card.compact{gap:.75rem}.keying-setup-card.compact h2{display:none}.keying-setup-card p{margin:.35rem 0 0;color:var(--text-secondary);font-weight:750}.keying-setup-summary-lines{display:grid;gap:.1rem}.keying-setup-card.compact p{margin-top:.15rem;font-size:1.02rem;line-height:1.2}.keying-setup-status{margin-top:.45rem;color:var(--success);font-size:.88rem;font-weight:800}.keying-setup-card.compact .keying-setup-status{margin-top:.18rem;font-size:.78rem;line-height:1.2}.keying-setup-status.warning{color:var(--warning, #b45309)}.keying-setup-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:.55rem}.keying-setup-card.compact .keying-setup-actions{flex:0 0 auto}.keying-setup-card.compact .keying-setup-actions>button{min-height:2.45rem;padding:.45rem .68rem;font-size:.9rem}.keying-setup-modal{width:min(92vw,620px);max-width:620px;max-height:min(86vh,760px);overflow:auto;position:relative;text-align:left;padding-top:2.4rem}.keying-setup-overlay{z-index:2200}.keying-setup-overlay .keying-setup-modal{z-index:2201}.keying-setup-modal-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.85rem;margin:1rem 0}.keying-setup-modal-grid .course-keying-status-row,.keying-setup-modal-grid .course-control:has(input[type=range]){grid-column:1 / -1}.keying-setup-options{display:grid;gap:.7rem;margin:.85rem 0;padding:.85rem;border:1px solid var(--border-subtle);border-radius:var(--radius-md, 8px);background:var(--bg-surface-muted)}.keying-setup-audio-panel{gap:.82rem}.keying-setup-audio-status-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.55rem}.keying-setup-audio-status-grid .settings-meter-card{min-height:4.6rem;padding:.72rem}.keying-setup-audio-status-grid .settings-meter-card strong{overflow-wrap:anywhere}.keying-setup-audio-meter{display:grid;gap:.35rem}.keying-setup-audio-meter .settings-meter-track{width:100%}.keying-setup-mic-note{margin:.85rem 0}@media(max-width:640px){.cw-proficiency-card{padding:.9rem}.course-send-controls{grid-template-columns:1fr}.course-send-options{grid-template-columns:repeat(auto-fit,minmax(11rem,1fr))}.keying-setup-card{display:grid}.keying-setup-actions,.keying-setup-actions>button{width:100%}.keying-setup-modal-grid,.keying-setup-audio-status-grid{grid-template-columns:1fr}.cw-proficiency-top{display:grid;gap:.65rem}.cw-proficiency-score{justify-self:start}.cw-proficiency-rings{grid-template-columns:repeat(auto-fit,minmax(6.8rem,1fr))}.cw-proficiency-ring-chart{width:4rem}}.course-status-retry{border:none;background:var(--button-primary-bg);color:var(--button-primary-text);border-radius:.5rem;padding:.35rem .75rem;font-weight:600;cursor:pointer}.adaptive-recommendation,.coach-summary-banner{align-items:flex-start}.coach-banner-next{margin-top:.35rem;color:#0f4c81;font-weight:600}.course-lesson-why{margin-top:.35rem;color:var(--text-secondary);font-size:.94rem;line-height:1.45}.course-runtime-card{display:flex;flex-direction:column;gap:1rem}.course-runtime-header{display:flex;justify-content:space-between;gap:1rem;align-items:flex-start;flex-wrap:wrap}.course-runtime-subtitle{margin:.35rem 0 0;color:#4f5b6a;max-width:60ch;line-height:1.5}.course-runtime-metrics{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.6rem;min-width:280px}.course-runtime-metrics>div{padding:.75rem .9rem;border-radius:12px;background:#f4f7fb;border:1px solid #d9e3f2;color:#243244}.course-choice-button{width:100%;text-align:left;padding:.85rem 1rem;border-radius:12px;border:1px solid #ccd7e7;background:#fff;color:#1f2937}.course-choice-button.selected{border-color:#1d5fbf;background:#eef5ff;box-shadow:0 0 0 2px #1d5fbf1a}.course-log-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.9rem}.coach-card{display:grid;gap:1.25rem}.coach-header{justify-content:space-between;align-items:center}.coach-summary-card{background:linear-gradient(135deg,#f7fbff,#eef6ff);border:1px solid #cfe3fb;border-radius:1rem;padding:1.1rem 1.2rem;display:grid;gap:.65rem}.coach-kicker{font-size:.82rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:#0f4c81}.coach-summary-card h2{margin:0;color:#1a2233}.coach-summary-line{color:#334155;line-height:1.45}.coach-summary-meta{display:flex;flex-wrap:wrap;gap:.85rem;color:#0f4c81;font-weight:600}.coach-summary-actions{display:flex;flex-wrap:wrap;gap:.75rem}.coach-primary-btn,.coach-secondary-btn,.coach-block-btn{border:none;border-radius:.7rem;padding:.7rem 1.05rem;font-weight:700;cursor:pointer}.coach-primary-btn{background:#e53935;color:#fff}.coach-secondary-btn,.coach-block-btn{background:#edf2f7;color:#1a2233}.coach-secondary-btn.danger{background:#fdecec;color:#9f1c1c}.coach-agenda{display:grid;gap:.85rem}.coach-agenda-header{display:flex;justify-content:space-between;align-items:center;color:#1a2233}.coach-agenda-header h3{margin:0}.coach-block-card{border:1px solid #e2e8f0;border-radius:1rem;padding:1rem 1.1rem;display:flex;justify-content:space-between;gap:1rem;align-items:center;background:#fff}.coach-block-card.ready{border-color:#f4c53f;background:#fffbeb}.coach-block-card.in_progress{border-color:#93c5fd;background:#eff6ff}.coach-block-card.complete{border-color:#bbf7d0;background:#f0fdf4}.coach-block-main{display:grid;gap:.35rem}.coach-block-title-row{display:flex;flex-wrap:wrap;gap:.75rem;align-items:center}.coach-block-title{font-weight:700;color:#1a2233}.coach-block-status{border-radius:999px;padding:.18rem .55rem;font-size:.8rem;font-weight:700}.coach-block-status.ready{background:#fff1b8;color:#7a5413}.coach-block-status.in_progress{background:#dbeafe;color:#1d4ed8}.coach-block-status.complete{background:#dcfce7;color:#166534}.coach-block-status.locked{background:#e5e7eb;color:#475569}.coach-block-reason{color:#475569;line-height:1.45}.coach-block-meta{display:flex;flex-wrap:wrap;gap:.8rem;color:#334155;font-size:.92rem}.coach-launch-banner{margin-bottom:1rem}.coach-v2-page{max-width:1120px}.coach-v2-shell{display:grid;gap:1rem;background:radial-gradient(circle at top left,rgba(229,57,53,.08),transparent 26%),linear-gradient(180deg,#fff7f4,#fff 34%);border:1px solid #f0d5cb;border-radius:1.4rem;padding:1.4rem;box-shadow:0 24px 60px #91483a24}.coach-v2-header{display:grid;grid-template-columns:auto 1fr auto;gap:1rem;align-items:start}.coach-v2-header-main h2{margin:.15rem 0 .3rem;color:#22181a;font-size:2rem}.coach-v2-kicker{font-size:.8rem;text-transform:uppercase;letter-spacing:.08em;color:#a94433;font-weight:800}.coach-v2-subline{color:#694b45;font-weight:600}.coach-v2-progress-strip{display:flex;flex-wrap:wrap;gap:.6rem;align-items:center;color:#6b4b45;font-size:.95rem}.coach-v2-progress-pill{border-radius:999px;padding:.3rem .7rem;background:#f3e7e3;color:#7a5248;font-weight:700}.coach-v2-progress-pill.current{background:#1f2937;color:#fff}.coach-v2-progress-pill.complete,.coach-v2-progress-pill.skipped{background:#dff6e4;color:#1b7f3a}.coach-v2-progress-pill.running{background:#ffe7c2;color:#975a16}.coach-v2-brief,.coach-v2-transition,.coach-v2-debrief{display:grid;gap:1rem}.coach-v2-card{background:#fffffff0;border:1px solid #ead9d3;border-radius:1.15rem;padding:1.15rem 1.2rem;display:grid;gap:.75rem}.coach-v2-card.primary{background:linear-gradient(145deg,#fffffffa,#fff4f0f2)}.coach-v2-card.feedback.positive{border-color:#b8e7c5;background:#f4fff7}.coach-v2-card.feedback.corrective,.coach-v2-card.warning{border-color:#f5c29f;background:#fff6ed}.coach-v2-card-title{font-size:.82rem;text-transform:uppercase;letter-spacing:.08em;color:#a94433;font-weight:800}.coach-v2-card-body{color:#2e2322;line-height:1.5;font-size:1rem}.coach-v2-meta-line{color:#6b4b45;font-weight:600}.coach-v2-focus-row{display:flex;flex-wrap:wrap;gap:.5rem}.coach-v2-focus-chip{border-radius:999px;padding:.35rem .65rem;background:#fce8e2;color:#8d3727;font-weight:700}.coach-v2-actions{display:flex;flex-wrap:wrap;gap:.75rem}.coach-v2-stage-layout{display:grid;grid-template-columns:minmax(260px,320px) minmax(0,1fr);gap:1rem;align-items:start}.coach-v2-feedback-rail{display:grid;gap:.9rem}.coach-v2-block-stage{min-width:0}.coach-v2-debrief-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.9rem}.coach-v2-debrief-item{padding:.9rem;border-radius:.9rem;background:#fff;border:1px solid #f0dfd8;color:#2e2322;line-height:1.45}.coach-v2-debrief-label{font-size:.8rem;font-weight:800;text-transform:uppercase;letter-spacing:.08em;color:#8d3727;margin-bottom:.35rem}.coach-embedded-surface{background:#fff;border:1px solid #eddad2;border-radius:1.15rem;padding:1rem 1.05rem;box-shadow:inset 0 1px #ffffffb3}.coach-guided-columns{display:grid;grid-template-columns:minmax(0,1fr)}.operating-practice-controls{grid-template-columns:repeat(auto-fit,minmax(180px,1fr))}.operating-stage-card{background:linear-gradient(135deg,#faf7f0f5,#ede8dcf5)}.operating-log-card{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:.75rem}.operating-log-card .course-control{margin:0}.coach-embedded-surface .course-results{padding:1rem 1.1rem;margin-top:1rem}.coach-embedded-surface .course-card,.coach-embedded-surface .course-page h1{display:none}.head-copy-embedded-surface .course-card{margin:0}.course-status-retry:focus-visible{outline:2px solid var(--focus-ring-color);outline-offset:2px}.course-requirements-list{display:grid;gap:.35rem}.course-requirement-item{font-size:.92rem}.course-requirement-item.done{color:#1b7f3a}.course-requirement-item.pending{color:#555}.course-requirements-blocked{color:#b11e1e;font-weight:600}.course-signoff-actions{display:flex;flex-wrap:wrap;gap:.6rem}.help-icon svg{display:block}@media(max-width:900px){.main-content,.main-content-home{padding:2rem .5rem}.nav-bar{padding:0 1rem}.nav-links{gap:1rem}.streak-popup{width:min(300px,calc(100vw - 2rem))}.streak-popup-metrics{grid-template-columns:1fr}.mode-panel,.transmit-ui,.receive-ui{padding:1.5rem 1rem 1rem;margin-bottom:1.2rem}.transmit-letter,.receive-question{font-size:2.2rem}.keyboard-grid{grid-template-columns:repeat(7,2.2rem);gap:.35rem}.mode-switch{gap:1rem;margin:2rem 0 1.2rem;padding:.2rem}.mode-btn{font-size:.98rem;padding:.6rem 1.2rem}.morse-key-btn,.backspace-btn,.submit-btn,.next-btn,.play-btn{padding:.85rem 1.7rem}.mode-content{max-width:100vw;padding:0 .5rem}.receive-ui{max-width:100vw;padding:1.5rem 1rem 1rem;margin-bottom:1.2rem}.course-page{margin:2rem auto;padding:0 1rem}.course-step-columns{grid-template-columns:1fr}.course-step-panel{order:2}.course-step-main{order:1}.course-lesson-row{flex-direction:column;align-items:flex-start}.course-lesson-progress{align-self:flex-end}.course-module-progress{flex-direction:column;align-items:flex-start}.practice-sending-control{grid-column:span 6}.course-action-indicators{flex-wrap:wrap}.course-prompt-text{font-size:2.6rem}}@media(max-width:600px){.main-content,.main-content-home{padding:1rem .2rem}.nav-bar{flex-direction:column;gap:.75rem;padding:.75rem 1rem 1rem}.nav-links{flex-wrap:wrap;justify-content:center;gap:.75rem}.nav-actions{flex-wrap:wrap;justify-content:center}.streak-popup{left:50%;right:auto;transform:translate(-50%)}.streak-popup-header{flex-direction:column;align-items:flex-start}.mode-panel,.transmit-ui,.receive-ui{padding:1rem .2rem .7rem;margin-bottom:.7rem;border-radius:.7rem;box-shadow:0 2px 8px #0000000a}.transmit-letter,.receive-question{font-size:1.5rem;margin-bottom:1rem}.transmit-morse-display{font-size:1.1rem;padding:.3rem .7rem;margin-bottom:1rem}.transmit-controls{flex-direction:column;gap:.5rem;margin-bottom:1rem}.morse-key-btn,.backspace-btn,.submit-btn,.next-btn,.play-btn{font-size:1rem;padding:.7rem 1.2rem;min-width:0;padding:.7rem 1.3rem}.keyboard-grid{grid-template-columns:repeat(5,2rem);gap:.25rem;overflow-x:auto;justify-content:flex-start}.keyboard-key{font-size:.95rem;padding:.5rem 0;min-width:1.7rem}.receive-input{font-size:1.2rem;width:2.5rem;padding:.3rem}.transmit-feedback,.receive-feedback{font-size:1rem;padding:.7rem;margin-top:1rem;border-radius:.6rem}.mode-switch{gap:.5rem;margin:1.2rem 0 .7rem;padding:.12rem}.mode-btn{font-size:.92rem;padding:.5rem .7rem}.morse-key-btn,.backspace-btn,.submit-btn,.next-btn,.play-btn{padding:.7rem 1.3rem}.mode-content{max-width:100vw;padding:0 .2rem}.receive-ui{max-width:100vw;padding:1rem .2rem .7rem;margin-bottom:.7rem;border-radius:.7rem;box-shadow:0 2px 8px #0000000a}.course-card{padding:1.25rem}.course-actions{align-items:stretch}.practice-sending-control{grid-column:1 / -1}.course-action-buttons{flex-direction:column;align-items:stretch}.course-actions button{width:100%}.course-timer-pie{width:72px;height:72px}.course-step-pie{width:56px;height:56px}.course-prompt-text{font-size:2.2rem}.course-module-card,.course-lesson-item{padding:.9rem}.course-runtime-metrics,.course-log-grid{grid-template-columns:1fr;min-width:0}.coach-block-card{flex-direction:column;align-items:flex-start}.coach-summary-actions{flex-direction:column;align-items:stretch}.coach-v2-header,.coach-v2-stage-layout,.coach-v2-debrief-grid{grid-template-columns:1fr}.coach-v2-actions{flex-direction:column;align-items:stretch}}.sbui-modal-close,.sbui-modal__close,.supabase-auth-ui .sbui-btn-container,button[aria-label=Close]{color:#2563eb!important;background:transparent!important;font-size:1.7rem;font-weight:700;border:none;cursor:pointer;z-index:1002}.sbui-modal-close:hover,.sbui-modal__close:hover,.supabase-auth-ui .sbui-btn-container:hover,button[aria-label=Close]:hover{color:#1741a6!important;background:#f0f4ff!important}button[style*="position: absolute"][style*="right: 8px"][style*="top: 8px"]{color:#2563eb!important;background:none!important;border:none!important;font-size:1.7rem!important;font-weight:700;cursor:pointer;z-index:1002}button[style*="position: absolute"][style*="right: 8px"][style*="top: 8px"]:hover,button[style*="position: absolute"][style*="right: 8px"][style*="top: 8px"]:focus{color:#1741a6!important;background:#f0f4ff!important}html,body,#root,.homepage-root{background:var(--bg-app);color:var(--text-primary)}.settings-action-row{align-items:flex-start}.settings-secondary-btn{justify-self:start;border:1px solid var(--border-subtle);background:var(--bg-surface);color:var(--text-primary);border-radius:.65rem;padding:.55rem 1rem;font-weight:700;cursor:pointer}.settings-secondary-btn:hover:not(:disabled){border-color:color-mix(in srgb,var(--button-primary-bg) 42%,var(--border-subtle));background:var(--bg-surface-muted)}.room-readiness{display:grid;gap:.65rem;min-width:0}.room-readiness.compact{gap:.45rem}.room-readiness-head{display:flex;align-items:center;justify-content:space-between;gap:.75rem}.room-readiness-list{display:flex;flex-wrap:wrap;gap:.45rem}.room-readiness-pill{display:inline-flex;align-items:center;gap:.45rem;min-height:2rem;padding:.35rem .75rem;border:1px solid var(--border-subtle);border-radius:999px;background:var(--bg-surface);color:var(--text-secondary);font-weight:700;line-height:1.1}.room-readiness-dot{width:.55rem;height:.55rem;border-radius:999px;background:var(--text-muted);flex:0 0 auto}.room-readiness-pill.ready{border-color:color-mix(in srgb,var(--success) 32%,var(--border-subtle));color:var(--success)}.room-readiness-pill.ready .room-readiness-dot{background:var(--success)}.room-readiness-pill.warning{border-color:color-mix(in srgb,var(--warning) 40%,var(--border-subtle));color:var(--warning)}.room-readiness-pill.warning .room-readiness-dot{background:var(--warning)}.room-readiness-pill.error{border-color:color-mix(in srgb,var(--danger) 36%,var(--border-subtle));color:var(--danger)}.room-readiness-pill.error .room-readiness-dot{background:var(--danger)}.play-friends-panel{display:grid;gap:1rem}.play-friends-arena{gap:.9rem}.play-friends-arena-grid{display:grid;grid-template-columns:minmax(20rem,1.25fr) minmax(16rem,.75fr);gap:.9rem;align-items:stretch}.arena-play-now-panel,.arena-lobby-panel{border:1px solid var(--border-subtle);border-radius:var(--radius-lg);background:var(--bg-surface);box-shadow:var(--shadow-sm)}.arena-play-now-panel{display:grid;gap:1rem;min-width:0;padding:clamp(1rem,2.2vw,1.45rem);border-color:color-mix(in srgb,var(--button-primary-bg) 34%,var(--border-subtle));background:radial-gradient(circle at top right,color-mix(in srgb,var(--button-primary-bg) 16%,transparent),transparent 42%),linear-gradient(145deg,color-mix(in srgb,var(--bg-surface) 96%,var(--accent-soft)),color-mix(in srgb,var(--bg-elevated) 94%,transparent))}.arena-play-now-copy{display:grid;gap:.35rem;max-width:42rem}.arena-play-now-title-row{align-items:flex-start}.arena-play-now-copy h3{margin:0;color:var(--text-primary);font-size:clamp(1.65rem,3vw,2.35rem);line-height:1.02}.arena-play-now-copy p,.arena-play-now-copy span{margin:0;color:var(--text-secondary);font-weight:650;line-height:1.42}.arena-play-now-meta{display:flex;flex-wrap:wrap;gap:.45rem}.arena-play-now-meta span{display:inline-flex;align-items:center;gap:.25rem;min-height:2rem;padding:.25rem .65rem;border:1px solid var(--border-subtle);border-radius:var(--radius-pill);background:color-mix(in srgb,var(--bg-surface-muted) 86%,transparent);color:var(--text-secondary);font-size:.84rem;font-weight:750}.arena-play-now-meta b{color:var(--text-primary)}.arena-play-now-actions{display:flex;flex-wrap:wrap;align-items:center;gap:.55rem}.arena-primary-action{min-height:3.15rem;padding-inline:1.35rem;font-size:1.04rem}.arena-panel-head{display:flex;align-items:flex-start;justify-content:space-between;gap:.85rem;min-width:0}.arena-panel-head h3{margin:.15rem 0 0;color:var(--text-primary);font-size:1.05rem;line-height:1.2}.play-friends-setup-strip{display:flex;align-items:center;justify-content:space-between;gap:.85rem;padding:.85rem 1rem;border:1px solid color-mix(in srgb,var(--button-primary-bg) 24%,var(--border-subtle));border-radius:var(--radius-lg);background:color-mix(in srgb,var(--button-primary-bg) 8%,var(--bg-surface))}.play-friends-setup-strip h3,.play-friends-setup-strip p{margin:0}.play-friends-setup-strip p{margin-top:.25rem;color:var(--text-secondary);font-weight:650}.play-friends-setup-strip.compact{padding:.6rem .75rem;border-color:var(--border-subtle);background:var(--bg-surface-subtle)}.play-friends-setup-strip.compact h3{font-size:1rem}.play-friends-setup-strip.compact p{font-size:.9rem}.play-friends-setup-actions,.play-friends-mode-controls{display:flex;flex-wrap:wrap;align-items:end;gap:.55rem}.play-friends-mode-controls{display:grid;grid-template-columns:minmax(0,1fr);align-items:stretch}.play-friends-mode-panel.arena-lobby-panel{display:grid;gap:.85rem;padding:1rem}.play-friends-command,.play-friends-card,.play-friends-browser,.group-command-card,.group-join-card,.activity-card,.skill-check-card,.skill-check-result-card,.feature-flag-row{border:1px solid var(--border-subtle);background:var(--bg-surface);border-radius:.8rem;box-shadow:var(--shadow-sm)}.play-friends-command{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:start;gap:1rem;padding:1.1rem}.play-friends-command-actions{display:grid;gap:.65rem;justify-items:end;min-width:min(24rem,100%)}.schema-readiness-panel{display:grid;gap:.65rem;min-width:0}.schema-readiness-details{display:grid;grid-template-columns:repeat(auto-fit,minmax(12rem,1fr));gap:.65rem}.schema-readiness-block{display:grid;gap:.35rem;padding:.7rem .85rem;border:1px solid var(--border-subtle);border-radius:.7rem;background:var(--bg-surface-muted);color:var(--text-secondary);font-weight:650}.schema-readiness-block b{color:var(--text-primary)}.play-friends-chooser{display:grid;gap:.9rem;padding:1rem;border:1px solid color-mix(in srgb,var(--button-primary-bg) 30%,var(--border-subtle));border-radius:.9rem;background:linear-gradient(180deg,color-mix(in srgb,var(--button-primary-bg) 8%,var(--bg-surface)),var(--bg-surface));box-shadow:var(--shadow-sm)}.play-friends-chooser-header,.play-friends-identity-card{display:flex;align-items:flex-start;justify-content:space-between;gap:.9rem;min-width:0}.play-friends-chooser-header h3,.play-friends-identity-card b{margin:.15rem 0 0;color:var(--text-primary)}.play-friends-chooser-header p,.play-friends-identity-card small{display:block;margin-top:.35rem;color:var(--text-secondary);font-weight:650}.play-friends-identity-card{padding:.85rem;border:1px solid var(--border-subtle);border-radius:.8rem;background:var(--bg-surface)}.play-friends-identity-card span{color:var(--text-secondary);font-weight:800}.play-friends-identity-chips,.play-friends-room-meta,.activity-tag-row{display:flex;flex-wrap:wrap;gap:.45rem}.play-friends-identity-chips span,.play-friends-room-meta span,.activity-tag-row span{display:inline-flex;align-items:center;min-height:1.9rem;padding:.25rem .6rem;border:1px solid var(--border-subtle);border-radius:999px;background:var(--bg-surface-muted);color:var(--text-secondary);font-size:.82rem;font-weight:800}.play-friends-chooser-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(12rem,1fr));gap:.75rem}.play-friends-choice-card{display:grid;gap:.35rem;text-align:left;border:1px solid var(--border-subtle);border-radius:.8rem;background:var(--bg-surface);color:var(--text-primary);padding:.9rem;cursor:pointer}.play-friends-choice-card.primary{border-color:color-mix(in srgb,var(--button-primary-bg) 36%,var(--border-subtle));box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--button-primary-bg) 16%,transparent)}.play-friends-choice-card span,.play-friends-choice-card small{color:var(--text-secondary);font-weight:750}.play-friends-choice-card b{font-size:1.05rem}.play-friends-choice-card:disabled{opacity:.55;cursor:not-allowed}.play-friends-command-main h3,.play-friends-card h3,.play-friends-card h4,.play-friends-room-card h4,.activity-card h3,.group-command-card h3,.skill-check-card h3,.skill-check-result-card h3{margin:.2rem 0 0;line-height:1.18}.play-friends-command-main p,.play-friends-card p,.play-friends-room-card p,.activity-card p,.group-command-card p,.skill-check-card p,.skill-check-result-card p{margin:.5rem 0 0;color:var(--text-secondary);line-height:1.45}.play-friends-grid,.play-friends-social-grid,.activity-card-grid,.skill-check-grid,.feature-flag-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(15rem,1fr));gap:.9rem}.activity-card-grid.compact{grid-template-columns:repeat(auto-fit,minmax(13rem,1fr))}.play-friends-card,.activity-card,.skill-check-card,.skill-check-result-card,.group-command-card,.group-join-card,.feature-flag-row{padding:1rem;display:grid;gap:.8rem;min-width:0}.play-friends-card.primary{border-color:color-mix(in srgb,var(--button-primary-bg) 32%,var(--border-subtle))}.activity-card-top{display:flex;align-items:flex-start;justify-content:space-between;gap:.75rem;color:var(--text-secondary);font-weight:700}.activity-card-top b{color:var(--text-primary)}.play-friends-browser{padding:1rem;display:grid;gap:.9rem}.play-friends-room-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(12rem,1fr));gap:.75rem}.play-friends-room-card{display:grid;gap:.65rem;min-width:0;border:1px solid var(--border-subtle);border-radius:.7rem;padding:.85rem;background:var(--bg-surface-muted)}.group-activity-list{display:grid;gap:.55rem}.group-activity-row{display:flex;justify-content:space-between;gap:.75rem;padding:.75rem .85rem;border:1px solid var(--border-subtle);border-radius:.75rem;background:var(--bg-surface-muted)}.group-activity-row b{text-transform:capitalize}.group-activity-row span{color:var(--text-secondary);font-weight:650}.admin-sql-snippet{max-width:100%;overflow-x:auto;padding:.9rem;border:1px solid var(--border-subtle);border-radius:.75rem;background:var(--bg-surface-muted);color:var(--text-primary);font-size:.86rem;line-height:1.45}.play-friends-chip-list,.recent-player-list,.group-member-list{display:grid;gap:.55rem}.play-friends-chip{justify-self:start;border:1px solid var(--border-subtle);background:var(--bg-surface-muted);color:var(--text-primary);border-radius:999px;padding:.4rem .75rem;font-weight:700;cursor:pointer}.play-friends-empty{color:var(--text-secondary);font-weight:650}.play-friends-create-form{display:grid;gap:.75rem}.play-friends-create-form.compact{grid-template-columns:minmax(0,1fr) auto;align-items:end}.recent-player-row,.group-member-row{display:flex;align-items:center;justify-content:space-between;gap:.75rem;border:1px solid var(--border-subtle);border-radius:.7rem;padding:.75rem;background:var(--bg-surface-muted);min-width:0}.recent-player-row>div:first-child,.group-member-row>div:first-child{display:grid;gap:.2rem;min-width:0}.recent-player-row span,.group-member-row span{color:var(--text-secondary);font-weight:650}.skill-check-card textarea,.play-friends-create-form textarea{min-height:5.5rem;resize:vertical}.skill-check-card textarea,.play-friends-create-form textarea,.play-friends-create-form input,.play-friends-card select,.group-join-card input,.group-command-card select{width:100%;border:1px solid var(--border-subtle);border-radius:.7rem;background:var(--bg-surface);color:var(--text-primary);padding:.65rem .75rem;font:inherit}.activity-card .challenge-secondary-btn,.play-friends-card .challenge-secondary-btn,.play-friends-room-card .challenge-secondary-btn,.recent-player-row .challenge-secondary-btn,.group-member-row .challenge-secondary-btn{min-height:2.35rem}.feature-flag-row{grid-template-columns:minmax(0,1fr) auto;align-items:center}.feature-flag-row code{font-weight:800}.challenge-room-invite-card{border-color:color-mix(in srgb,var(--button-primary-bg) 24%,var(--border-subtle))}.challenge-room-invite-card .course-status-banner{margin:0}.challenge-stage-chip{max-width:100%;overflow-wrap:anywhere}@media(max-width:760px){.play-friends-command{grid-template-columns:minmax(0,1fr)}.play-friends-command-actions{justify-items:stretch}.play-friends-chooser-header,.play-friends-identity-card{flex-direction:column}.recent-player-row,.group-member-row,.feature-flag-row{align-items:stretch;flex-direction:column;grid-template-columns:minmax(0,1fr)}.recent-player-row .challenge-actions,.group-member-row .challenge-actions{width:100%}.play-friends-create-form.compact{grid-template-columns:minmax(0,1fr)}}@media(max-width:720px){.settings-device-header,.settings-toggle-line,.my-key-serial-actions{flex-direction:column;align-items:stretch}.settings-key-tester-history-row{grid-template-columns:1fr 1fr}}.challenge-hub-card,.challenge-shell-card{display:flex;flex-direction:column;gap:1.1rem}.challenge-hub{--challenge-hub-hero-border: color-mix(in srgb, var(--warning) 22%, var(--border-subtle));--challenge-hub-hero-bg: radial-gradient(circle at top right, color-mix(in srgb, var(--warning) 16%, transparent), transparent 36%), radial-gradient(circle at left center, color-mix(in srgb, var(--success) 14%, transparent), transparent 48%), linear-gradient(145deg, color-mix(in srgb, var(--bg-surface-strong) 88%, var(--accent-soft)) 0%, color-mix(in srgb, var(--bg-surface) 92%, transparent) 54%, color-mix(in srgb, var(--bg-elevated) 90%, transparent) 100%);--challenge-hub-hero-shadow: var(--shadow-lg);--challenge-hub-kicker: var(--warning);--challenge-hub-body-text: var(--text-secondary);--challenge-hub-title: var(--text-primary);--challenge-hub-panel-bg: color-mix(in srgb, var(--bg-surface) 90%, transparent);--challenge-hub-panel-border: color-mix(in srgb, var(--border-strong) 54%, transparent);--challenge-hub-panel-shadow: var(--shadow-md);--challenge-hub-panel-strong-bg: radial-gradient(circle at top right, color-mix(in srgb, var(--warning) 14%, transparent), transparent 40%), linear-gradient(145deg, color-mix(in srgb, var(--bg-surface) 96%, var(--accent-soft)) 0%, color-mix(in srgb, var(--bg-elevated) 95%, transparent) 100%);--challenge-hub-counter-bg: color-mix(in srgb, var(--bg-elevated) 84%, transparent);--challenge-hub-counter-border: color-mix(in srgb, var(--border-strong) 56%, transparent);--challenge-hub-counter-label: var(--text-muted);--challenge-hub-counter-value: var(--text-primary);--challenge-hub-mode-bg: color-mix(in srgb, var(--bg-surface) 88%, transparent);--challenge-hub-mode-border: color-mix(in srgb, var(--border-strong) 44%, transparent);--challenge-hub-accent-text: color-mix(in srgb, var(--success) 84%, var(--text-primary));--challenge-hub-tab-shell: color-mix(in srgb, var(--bg-app) 54%, transparent);--challenge-hub-tab-border: color-mix(in srgb, var(--border-subtle) 92%, transparent);--challenge-hub-tab-text: var(--text-secondary);--challenge-hub-tab-hover-bg: color-mix(in srgb, var(--bg-elevated) 82%, transparent);--challenge-hub-tab-hover-text: var(--text-primary);--challenge-hub-tab-active-bg: linear-gradient(135deg, color-mix(in srgb, var(--warning) 74%, var(--accent)) 0%, color-mix(in srgb, var(--accent) 86%, var(--danger)) 100%);--challenge-hub-tab-active-text: #fffaf5;--challenge-hub-tab-active-shadow: 0 12px 24px color-mix(in srgb, var(--accent) 24%, transparent);--challenge-hub-card-bg: linear-gradient(180deg, color-mix(in srgb, var(--bg-surface) 96%, transparent) 0%, color-mix(in srgb, var(--bg-elevated) 88%, transparent) 100%);--challenge-hub-card-border: color-mix(in srgb, var(--border-strong) 42%, transparent);--challenge-hub-card-shadow: var(--shadow-md);--challenge-hub-card-hover-shadow: 0 18px 34px rgba(0, 0, 0, .22);--challenge-hub-featured-bg: radial-gradient(circle at top right, color-mix(in srgb, var(--warning) 18%, transparent), transparent 40%), linear-gradient(145deg, color-mix(in srgb, var(--bg-surface) 96%, var(--accent-soft)) 0%, color-mix(in srgb, var(--bg-elevated) 92%, transparent) 54%, color-mix(in srgb, var(--bg-surface-strong) 96%, transparent) 100%);--challenge-hub-featured-border: color-mix(in srgb, var(--warning) 34%, var(--border-strong));--challenge-hub-spotlight-label: var(--text-muted);--challenge-hub-spotlight-value: var(--text-primary);--challenge-hub-special-tag-bg: color-mix(in srgb, var(--info-soft) 92%, transparent);--challenge-hub-special-tag-text: var(--info);--challenge-hub-stat-bg: color-mix(in srgb, var(--bg-surface-muted) 92%, transparent);--challenge-hub-stat-border: color-mix(in srgb, var(--border-subtle) 92%, transparent);--challenge-hub-stat-text: var(--text-muted);--challenge-hub-stat-value: var(--text-primary);--challenge-hub-featured-kicker-bg: color-mix(in srgb, var(--success-soft) 96%, transparent);--challenge-hub-featured-kicker-text: color-mix(in srgb, var(--success) 82%, var(--text-primary));--challenge-hub-featured-unlocked-bg: color-mix(in srgb, var(--warning-soft) 96%, transparent);--challenge-hub-featured-unlocked-text: color-mix(in srgb, var(--warning) 82%, var(--text-primary));--challenge-hub-featured-locked-bg: color-mix(in srgb, var(--bg-chip-neutral) 90%, transparent);--challenge-hub-featured-locked-text: var(--text-secondary);--challenge-hub-lock-bg: color-mix(in srgb, var(--warning-soft) 80%, var(--bg-surface));--challenge-hub-lock-border: color-mix(in srgb, var(--warning-border) 88%, var(--border-subtle));--challenge-hub-lock-text: var(--text-primary);--challenge-hub-continue-bg: radial-gradient(circle at top right, color-mix(in srgb, var(--accent) 12%, transparent), transparent 42%), linear-gradient(145deg, color-mix(in srgb, var(--bg-surface) 95%, var(--accent-soft)) 0%, color-mix(in srgb, var(--bg-elevated) 92%, transparent) 100%);--challenge-hub-continue-border: color-mix(in srgb, var(--accent) 26%, var(--border-strong));--challenge-hub-state-badge-bg: color-mix(in srgb, var(--warning-soft) 90%, transparent);--challenge-hub-state-badge-text: color-mix(in srgb, var(--warning) 82%, var(--text-primary));--challenge-hub-utility-bg: color-mix(in srgb, var(--bg-surface) 92%, transparent);--challenge-hub-utility-border: color-mix(in srgb, var(--border-strong) 44%, transparent);--challenge-hub-utility-label: var(--text-muted);--challenge-hub-utility-value: var(--text-primary);--challenge-hub-hero-chip-bg: color-mix(in srgb, var(--bg-surface) 84%, transparent);--challenge-hub-hero-chip-border: color-mix(in srgb, var(--border-subtle) 90%, transparent);--challenge-hub-hero-chip-text: var(--text-secondary)}:root[data-theme=light] .challenge-hub{--challenge-hub-hero-border: color-mix(in srgb, #f59e0b 24%, var(--border-subtle));--challenge-hub-hero-bg: radial-gradient(circle at top right, rgba(255, 191, 105, .32), transparent 34%), radial-gradient(circle at left center, rgba(46, 196, 182, .18), transparent 44%), linear-gradient(140deg, #fff9ec 0%, #f5fbff 52%, #eef7ff 100%);--challenge-hub-hero-shadow: 0 18px 40px rgba(31, 41, 55, .08);--challenge-hub-kicker: #b45309;--challenge-hub-body-text: #475569;--challenge-hub-title: #0f172a;--challenge-hub-panel-bg: rgba(255, 255, 255, .78);--challenge-hub-panel-border: rgba(148, 163, 184, .24);--challenge-hub-panel-shadow: 0 12px 28px rgba(15, 23, 42, .06);--challenge-hub-panel-strong-bg: linear-gradient(180deg, #ffffff 0%, #f8fbff 100%);--challenge-hub-counter-bg: rgba(255, 255, 255, .76);--challenge-hub-counter-border: rgba(148, 163, 184, .28);--challenge-hub-counter-label: #64748b;--challenge-hub-counter-value: #0f172a;--challenge-hub-mode-bg: rgba(255, 255, 255, .78);--challenge-hub-mode-border: rgba(148, 163, 184, .24);--challenge-hub-accent-text: #0f766e;--challenge-hub-tab-shell: rgba(15, 23, 42, .05);--challenge-hub-tab-border: rgba(148, 163, 184, .26);--challenge-hub-tab-text: #475569;--challenge-hub-tab-hover-bg: rgba(255, 255, 255, .7);--challenge-hub-tab-hover-text: #0f172a;--challenge-hub-tab-active-bg: linear-gradient(135deg, #f59e0b, #fb7185);--challenge-hub-tab-active-text: #fffdf7;--challenge-hub-tab-active-shadow: 0 10px 20px rgba(245, 158, 11, .22);--challenge-hub-card-bg: linear-gradient(180deg, #ffffff 0%, #f8fbff 100%);--challenge-hub-card-border: rgba(148, 163, 184, .22);--challenge-hub-card-shadow: 0 12px 28px rgba(15, 23, 42, .06);--challenge-hub-card-hover-shadow: 0 10px 24px rgba(0, 0, 0, .1);--challenge-hub-featured-bg: radial-gradient(circle at top right, rgba(245, 158, 11, .15), transparent 38%), linear-gradient(145deg, #fff9ef 0%, #fef6ff 44%, #f6fbff 100%);--challenge-hub-featured-border: rgba(251, 146, 60, .28);--challenge-hub-spotlight-label: #64748b;--challenge-hub-spotlight-value: #0f172a;--challenge-hub-special-tag-bg: rgba(99, 102, 241, .12);--challenge-hub-special-tag-text: #4338ca;--challenge-hub-stat-bg: rgba(248, 250, 252, .9);--challenge-hub-stat-border: rgba(148, 163, 184, .24);--challenge-hub-stat-text: #64748b;--challenge-hub-stat-value: #0f172a;--challenge-hub-featured-kicker-bg: rgba(15, 118, 110, .1);--challenge-hub-featured-kicker-text: #0f766e;--challenge-hub-featured-unlocked-bg: rgba(245, 158, 11, .14);--challenge-hub-featured-unlocked-text: #b45309;--challenge-hub-featured-locked-bg: rgba(71, 85, 105, .1);--challenge-hub-featured-locked-text: #475569;--challenge-hub-lock-bg: color-mix(in srgb, var(--warning) 10%, transparent);--challenge-hub-lock-border: color-mix(in srgb, var(--warning) 28%, rgba(148, 163, 184, .22));--challenge-hub-lock-text: #0f172a;--challenge-hub-continue-bg: radial-gradient(circle at top right, rgba(251, 146, 60, .16), transparent 38%), linear-gradient(145deg, #fff8ef 0%, #fff6fb 52%, #f6fbff 100%);--challenge-hub-continue-border: rgba(251, 146, 60, .26);--challenge-hub-state-badge-bg: rgba(245, 158, 11, .14);--challenge-hub-state-badge-text: #b45309;--challenge-hub-utility-bg: rgba(255, 255, 255, .82);--challenge-hub-utility-border: rgba(148, 163, 184, .22);--challenge-hub-utility-label: #64748b;--challenge-hub-utility-value: #0f172a;--challenge-hub-hero-chip-bg: rgba(255, 255, 255, .78);--challenge-hub-hero-chip-border: rgba(148, 163, 184, .24);--challenge-hub-hero-chip-text: #475569}.challenge-hub-card{width:100%;max-width:none;align-self:center;gap:1rem;overflow:hidden}.challenge-hub-pane{animation:challenge-hub-rise .34s both cubic-bezier(.16,1,.3,1)}.challenge-hub-pane-2{animation-delay:40ms}.challenge-hub-pane-3{animation-delay:80ms}.challenge-hub-pane-4{animation-delay:.12s}.challenge-hub-pane-5{animation-delay:.16s}.challenge-hub-kicker{color:var(--challenge-hub-kicker)}.challenge-hub.embedded .challenge-hub-card{gap:.95rem}.challenge-page>.challenge-hub-card{width:100%}.challenge-hub-header{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(280px,.9fr);gap:1rem;align-items:end;padding:clamp(1rem,1.8vw,1.35rem);border-radius:1.4rem;border:1px solid var(--challenge-hub-hero-border);background:var(--challenge-hub-hero-bg);box-shadow:var(--challenge-hub-hero-shadow)}.challenge-hub-header-main{display:grid;gap:.32rem;max-width:34rem}.challenge-hub-header-main h2{margin:.12rem 0 0;font-size:clamp(1.7rem,2.5vw,2.28rem);line-height:.96;letter-spacing:-.035em;color:var(--challenge-hub-title)}.challenge-hub-header-main p,.challenge-category-copy{margin:0;color:var(--challenge-hub-body-text);line-height:1.4;font-size:.92rem}.challenge-hub-header-side{display:grid;gap:.72rem}.challenge-hub-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.55rem}.challenge-room-panel,.challenge-board-section,.challenge-round-card{border:1px solid var(--card-border, rgba(255, 255, 255, .1));border-radius:18px;background:var(--card-bg, rgba(255, 255, 255, .03));padding:1rem}.challenge-hub-counter{min-width:0;padding:.7rem .8rem;border-radius:.9rem;background:var(--challenge-hub-counter-bg);border:1px solid var(--challenge-hub-counter-border);box-shadow:inset 0 1px color-mix(in srgb,var(--text-inverse) 10%,transparent)}.challenge-hub-counter span{display:block;font-size:.64rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--challenge-hub-counter-label)}.challenge-hub-counter b{display:block;margin-top:.16rem;font-size:1.02rem;color:var(--challenge-hub-counter-value)}.challenge-hub-mode-bar{display:grid;gap:.7rem;padding:.78rem .88rem;border-radius:1rem;background:var(--challenge-hub-mode-bg);border:1px solid var(--challenge-hub-mode-border);box-shadow:var(--challenge-hub-panel-shadow)}.challenge-hub-mode-copy{display:grid;gap:.12rem}.challenge-hub-mode-eyebrow,.challenge-hub-section-kicker{font-size:.73rem;font-weight:800;letter-spacing:.12em;text-transform:uppercase;color:var(--challenge-hub-accent-text)}.challenge-hub-mode-title{margin-top:.08rem;font-size:.94rem;font-weight:800;color:var(--challenge-hub-title)}.challenge-hub-mode-copy p{margin:.14rem 0 0;color:var(--challenge-hub-body-text);font-size:.86rem}.challenge-category-copy{flex:1 1 20rem}.challenge-category-tabs{display:inline-flex;gap:.5rem;flex-wrap:wrap;padding:.2rem;border-radius:999px;background:var(--challenge-hub-tab-shell);border:1px solid var(--challenge-hub-tab-border)}.challenge-category-tab{display:inline-flex;align-items:center;justify-content:center;border-radius:999px;border:1px solid transparent;background:transparent;color:var(--challenge-hub-tab-text);padding:.52rem .92rem;font-weight:700}.challenge-category-tab.active{background:var(--challenge-hub-tab-active-bg);color:var(--challenge-hub-tab-active-text);border-color:transparent;box-shadow:var(--challenge-hub-tab-active-shadow)}.challenge-category-tab:hover:not(.active){background:var(--challenge-hub-tab-hover-bg);color:var(--challenge-hub-tab-hover-text)}.challenge-hub-dashboard,.challenge-hub-rail,.challenge-hub-feature,.challenge-hub-continue,.challenge-hub-collection{display:grid;gap:.8rem}.challenge-hub-dashboard{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(280px,.92fr);gap:1rem;align-items:start}.challenge-hub-feature{min-width:0}.challenge-hub-rail{align-content:start}.challenge-hub-section-head{display:flex;justify-content:space-between;align-items:end;gap:.8rem;flex-wrap:wrap}.challenge-hub-section-head h3{margin:.18rem 0 0;font-size:1.02rem;line-height:1.1;color:var(--challenge-hub-title)}.challenge-hub .challenge-card-state-badge{display:inline-flex;align-items:center;min-height:1.35rem;padding:.16rem .5rem;border-radius:999px;font-size:.58rem;font-weight:800;letter-spacing:.06em;text-transform:uppercase;background:var(--challenge-hub-state-badge-bg);color:var(--challenge-hub-state-badge-text)}.challenge-hub .challenge-card{border:1px solid var(--challenge-hub-card-border);border-radius:1.25rem;background:var(--challenge-hub-card-bg);box-shadow:var(--challenge-hub-card-shadow)}.challenge-card-grid,.challenge-board-grid,.challenge-room-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:.8rem}.challenge-hub .challenge-card{display:grid;gap:.78rem;text-align:left;border-radius:1.1rem;padding:.95rem;min-height:100%;overflow:visible;transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease}.challenge-hub .challenge-card-featured,.challenge-hub .challenge-card-continue{position:relative;grid-template-columns:1fr;gap:.9rem;padding:1.1rem;overflow:hidden}.challenge-hub .challenge-card-featured{background:var(--challenge-hub-featured-bg);border-color:var(--challenge-hub-featured-border)}.challenge-hub .challenge-card-continue{background:var(--challenge-hub-continue-bg);border-color:var(--challenge-hub-continue-border)}.challenge-hub .challenge-card-featured:before{content:"";position:absolute;inset:-20% auto -20% -10%;width:42%;background:linear-gradient(115deg,transparent 0%,color-mix(in srgb,var(--warning) 14%,transparent) 50%,transparent 100%);opacity:.3;pointer-events:none;animation:challenge-hub-glow 10s ease-in-out infinite}.challenge-hub .challenge-card-header,.challenge-hub .challenge-card-meta,.challenge-hub .challenge-card-body,.challenge-hub .challenge-card-footer{padding:0}.challenge-hub .challenge-card-header{display:grid;gap:.35rem}.challenge-hub .challenge-card-kicker-row,.challenge-card-top,.challenge-shell-header,.challenge-room-player,.challenge-board-row{display:flex;justify-content:space-between;gap:1rem;align-items:flex-start}.challenge-hub .challenge-card-kicker-row{flex-wrap:wrap}.challenge-hub .challenge-card-header-chips{display:inline-flex;gap:.45rem;flex-wrap:wrap}.challenge-hub .challenge-card-special-tag{display:inline-flex;align-items:center;padding:.22rem .58rem;border-radius:999px;font-size:.68rem;font-weight:700;background:var(--challenge-hub-special-tag-bg);color:var(--challenge-hub-special-tag-text)}.challenge-hub .challenge-card-body{display:flex;flex-direction:column;gap:.52rem}.challenge-hub .challenge-card-footer{margin-top:auto}.challenge-hub .challenge-card.locked{opacity:.92}.challenge-board-section-title,.challenge-room-title,.challenge-round-label{font-size:.78rem;letter-spacing:.08em;text-transform:uppercase;opacity:.72}.challenge-hub .challenge-card-title{font-size:1.04rem;font-weight:800;line-height:1.2;color:var(--challenge-hub-title)}.challenge-hub .challenge-card-copy{font-weight:700;color:var(--challenge-hub-title)}.challenge-hub .challenge-card-promise{color:var(--challenge-hub-body-text);font-size:.88rem}.challenge-hub .challenge-card-hero-top{position:relative;z-index:1;display:flex;justify-content:space-between;align-items:flex-start;gap:.8rem;flex-wrap:wrap}.challenge-hub .challenge-card-hero-kicker,.challenge-hub .challenge-card-hero-status,.challenge-hub .challenge-card-hero-context{display:inline-flex;align-items:center;min-height:1.45rem;padding:.16rem .52rem;border-radius:999px;font-size:.59rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase}.challenge-hub .challenge-card-hero-kicker{background:var(--challenge-hub-featured-kicker-bg);color:var(--challenge-hub-featured-kicker-text)}.challenge-hub .challenge-card-hero-chip-group{display:inline-flex;gap:.4rem;flex-wrap:wrap;justify-content:flex-end}.challenge-hub .challenge-card-hero-status.unlocked{background:var(--challenge-hub-featured-unlocked-bg);color:var(--challenge-hub-featured-unlocked-text)}.challenge-hub .challenge-card-hero-status.locked{background:var(--challenge-hub-featured-locked-bg);color:var(--challenge-hub-featured-locked-text)}.challenge-hub .challenge-card-hero-context{background:var(--challenge-hub-hero-chip-bg);border:1px solid var(--challenge-hub-hero-chip-border);color:var(--challenge-hub-hero-chip-text)}.challenge-hub .challenge-card-hero-title{position:relative;z-index:1;font-size:clamp(1.55rem,3vw,2.5rem);line-height:.92;letter-spacing:-.045em;max-width:11ch}.challenge-hub .challenge-card-continue .challenge-card-hero-title{font-size:clamp(1.35rem,2vw,1.95rem);max-width:14ch}.challenge-hub .challenge-card-hero-copy{position:relative;z-index:1;max-width:22ch;font-size:.98rem;font-weight:800;line-height:1.1;color:var(--challenge-hub-title)}.challenge-hub .challenge-card-continue .challenge-card-hero-copy{max-width:18ch;font-size:.93rem}.challenge-hub .challenge-card-hero-support{position:relative;z-index:1;max-width:34rem;margin-top:-.18rem;font-size:.92rem}.challenge-hub .challenge-card-continue .challenge-card-hero-support{max-width:none;font-size:.86rem}.challenge-card-promise,.challenge-room-lobby-copy,.challenge-board-empty,.challenge-inline-separator{opacity:.84}.challenge-hub .challenge-card-meta{display:grid;gap:.55rem}.challenge-hub .challenge-card-stat,.challenge-hub .challenge-card-lock{border-radius:.75rem;padding:.7rem .85rem}.challenge-hub .challenge-card-stat{display:flex;justify-content:space-between;align-items:center;gap:.8rem;background:var(--challenge-hub-stat-bg);border:1px solid var(--challenge-hub-stat-border);color:var(--challenge-hub-stat-text)}.challenge-hub .challenge-card-stat b{color:var(--challenge-hub-stat-value)}.challenge-hub .challenge-card-stat.muted{background:color-mix(in srgb,var(--challenge-hub-stat-bg) 88%,transparent)}.challenge-hub .challenge-card-lock{display:grid;gap:.3rem;background:var(--challenge-hub-lock-bg);border:1px solid var(--challenge-hub-lock-border);color:var(--challenge-hub-lock-text)}.challenge-hub .challenge-card-hero-lock{position:relative;z-index:1;max-width:32rem}.challenge-hub .challenge-card-hero-meta{position:relative;z-index:1;display:flex;gap:.55rem;flex-wrap:wrap}.challenge-hub .challenge-card-hero-meta-chip{display:grid;gap:.16rem;min-width:0;flex:1 1 120px;padding:.62rem .72rem;border-radius:.82rem;background:var(--challenge-hub-stat-bg);border:1px solid var(--challenge-hub-stat-border)}.challenge-hub .challenge-card-hero-meta-chip span{font-size:.58rem;letter-spacing:.1em;text-transform:uppercase;color:var(--challenge-hub-stat-text);font-weight:800}.challenge-hub .challenge-card-hero-meta-chip b{font-size:.9rem;color:var(--challenge-hub-stat-value)}.challenge-hub .challenge-card-actions,.challenge-actions,.challenge-room-launch,.challenge-shell-badges,.challenge-hub .challenge-card-badges{display:flex;gap:.65rem;flex-wrap:wrap;align-items:center}.challenge-hub .challenge-card-actions{position:relative;z-index:1;width:auto}.challenge-hub .challenge-card-actions>button{flex:0 1 auto;min-height:40px}.challenge-primary-btn,.challenge-secondary-btn{display:inline-flex;align-items:center;justify-content:center;min-height:46px;padding:.8rem 1.1rem;border-radius:.8rem;border:1px solid transparent;font-size:.98rem;font-weight:700;line-height:1.1;cursor:pointer;transition:background .18s ease,color .18s ease,border-color .18s ease,box-shadow .18s ease,transform .18s ease}.challenge-primary-btn{background:var(--button-primary-bg);color:var(--button-primary-text);box-shadow:var(--shadow-sm)}.challenge-primary-btn:hover:not(:disabled){background:var(--button-primary-hover);color:var(--button-primary-text);transform:translateY(-1px)}.challenge-secondary-btn{background:var(--button-secondary-bg);color:var(--button-secondary-text);border-color:var(--border-subtle)}.challenge-secondary-btn:hover:not(:disabled){background:var(--button-secondary-hover);color:var(--text-primary);transform:translateY(-1px)}.challenge-primary-btn:focus-visible,.challenge-secondary-btn:focus-visible{outline:2px solid var(--focus-ring-color);outline-offset:2px}.challenge-primary-btn:disabled,.challenge-secondary-btn:disabled{opacity:.55;cursor:not-allowed;box-shadow:none;transform:none}.challenge-badge,.challenge-category-badge{display:inline-flex;align-items:center;gap:.25rem;border-radius:999px;padding:.3rem .7rem;font-size:.78rem;background:var(--bg-surface-muted);color:var(--text-secondary);border:1px solid var(--border-subtle)}.challenge-hub .challenge-card:hover{transform:translateY(-2px);box-shadow:var(--challenge-hub-card-hover-shadow)}.challenge-hub-utility-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.7rem}.challenge-hub-utility-tile{display:grid;gap:.45rem;padding:.8rem .84rem;border-radius:1rem;border:1px solid var(--challenge-hub-utility-border);background:var(--challenge-hub-utility-bg);box-shadow:var(--challenge-hub-card-shadow)}.challenge-hub-utility-top{display:flex;justify-content:space-between;gap:.55rem;align-items:flex-start}.challenge-hub-utility-label{font-size:.7rem;letter-spacing:.12em;text-transform:uppercase;font-weight:800;color:var(--challenge-hub-utility-label)}.challenge-hub-utility-value{font-size:1rem;font-weight:800;color:var(--challenge-hub-utility-value)}.challenge-hub-utility-value.locked{color:var(--challenge-hub-featured-locked-text)}.challenge-hub-utility-tile p{margin:0;color:var(--challenge-hub-body-text);font-size:.84rem;line-height:1.35}.challenge-hub-utility-btn{justify-self:start;min-height:34px;padding:.5rem .75rem;font-size:.85rem}.challenge-hub-collection{gap:.7rem}@keyframes challenge-hub-rise{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@keyframes challenge-hub-glow{0%,to{transform:translateZ(0);opacity:.12}50%{transform:translate3d(12px,0,0);opacity:.2}}.challenge-category-badge.group{background:#ffbf6929}.challenge-room-roster,.challenge-board-list{display:flex;flex-direction:column;gap:.75rem}.challenge-room-player.online{border-left:3px solid var(--button-primary-bg, #2ec4b6);padding-left:.6rem}.challenge-board-row{align-items:center}.challenge-board-rank,.challenge-board-score{font-weight:700}.challenge-log-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.75rem}.challenge-input textarea{min-height:110px}.challenge-inline-separator{margin-top:.5rem;font-weight:600}.challenge-shell-card{gap:1.35rem;padding:2.35rem 2.5rem}.challenge-shell-header{display:grid;grid-template-columns:minmax(0,1fr);gap:1.25rem;align-items:start}.challenge-shell-hero{display:grid;gap:.7rem}.challenge-shell-eyebrow-row,.challenge-shell-title-row,.challenge-shell-subtitle-row{display:flex;flex-wrap:wrap;justify-content:space-between;gap:.85rem;align-items:center}.challenge-shell-title-row h1{flex:1 1 320px}.challenge-shell-subtitle-row{justify-content:flex-start}.challenge-shell-subtitle-row .course-runtime-subtitle{flex:1 1 auto;max-width:48rem}.challenge-shell-status-row{display:flex;align-items:center}.challenge-shell-header h1{margin:0;font-size:2rem;line-height:1.02;letter-spacing:-.03em}.challenge-shell-header .course-runtime-subtitle{margin:0;color:var(--text-secondary)}.challenge-stage-status{display:inline-flex;align-items:center;width:fit-content;min-height:32px;padding:.35rem .7rem;border-radius:999px;background:linear-gradient(135deg,color-mix(in srgb,var(--button-primary-bg) 18%,transparent),color-mix(in srgb,var(--button-primary-bg) 8%,transparent));border:1px solid color-mix(in srgb,var(--button-primary-bg) 28%,var(--border-subtle));color:var(--text-primary);font-size:.82rem;font-weight:800;letter-spacing:.06em;text-transform:uppercase}.challenge-shell-aside{display:grid;gap:.75rem;align-self:start;justify-items:stretch}.challenge-shell-aside-content{display:grid;gap:.75rem;width:100%}.challenge-hero-notice{padding:.95rem 1rem;border-radius:1rem;background:linear-gradient(135deg,color-mix(in srgb,var(--button-primary-bg) 14%,transparent),color-mix(in srgb,var(--button-primary-bg) 5%,transparent));border:1px solid color-mix(in srgb,var(--button-primary-bg) 22%,var(--border-subtle))}.challenge-shell-meta{display:inline-flex;width:fit-content;max-width:min(100%,34rem);padding:.44rem .78rem;border-radius:999px;align-items:center;justify-self:end;background:linear-gradient(135deg,color-mix(in srgb,#1f9d62 22%,white 78%),color-mix(in srgb,#45b97c 12%,white 88%));border:1px solid color-mix(in srgb,#1f9d62 30%,var(--border-subtle));box-shadow:0 10px 22px -18px color-mix(in srgb,#1f9d62 45%,transparent)}.challenge-shell-notice-content{color:var(--text-primary);line-height:1.5}.challenge-shell-meta .challenge-shell-notice-content{font-size:.92rem;line-height:1.25;color:color-mix(in srgb,#0f5132 88%,var(--text-primary) 12%)}.challenge-shell-meta .challenge-shell-notice-content b{color:#0f5132}.challenge-shell-notice-content.error{color:var(--danger, #b42318)}.challenge-score-rail{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:.95rem}.challenge-score-pill{display:grid;gap:.3rem;min-height:88px;padding:1rem 1.05rem;border-radius:1rem;background:var(--bg-surface-muted);border:1px solid var(--border-subtle)}.challenge-score-pill span{color:var(--text-secondary);font-size:.8rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase}.challenge-score-pill b{color:var(--text-primary);font-size:1.2rem;line-height:1.15}.challenge-shell-body,.challenge-page-layout{display:grid;gap:1.4rem}.challenge-page-layout.has-sidebar{grid-template-columns:minmax(320px,360px) minmax(0,1fr);align-items:start}.challenge-page-layout.has-sidebar.sidebar-closed{grid-template-columns:4.75rem minmax(0,1fr)}.challenge-page-main{display:grid;gap:1rem;min-width:0}.challenge-shell-main{display:grid;gap:1.4rem;min-width:0}.challenge-shell-sidebar{min-width:0;align-self:stretch}.challenge-shell-sidebar-panel{display:grid;gap:.9rem;align-content:start;height:100%}.challenge-shell-sidebar-header{display:flex;justify-content:space-between;align-items:center;gap:.75rem;min-height:auto;padding:0 0 .55rem;border-bottom:1px solid color-mix(in srgb,var(--border-subtle) 88%,transparent)}.challenge-shell-sidebar-title{color:var(--text-secondary);font-size:.72rem;font-weight:800;letter-spacing:.12em;text-transform:uppercase}.challenge-shell-sidebar-toggle{display:inline-flex;align-items:center;justify-content:center;min-height:28px;min-width:28px;padding:.2rem;border-radius:.5rem;border:none;background:transparent;color:var(--text-primary);font-size:.76rem;font-weight:700;line-height:1.15}.challenge-shell-sidebar-toggle-icon{font-size:1.1rem;line-height:1}.challenge-shell-sidebar-toggle:hover{background:color-mix(in srgb,var(--bg-surface-muted) 92%,transparent)}.challenge-shell-sidebar-toggle:focus-visible{outline:2px solid var(--focus-ring-color);outline-offset:2px}.challenge-shell-sidebar-body{display:grid;gap:1rem;align-content:start}.challenge-shell-sidebar.is-closed .challenge-shell-sidebar-header{min-height:100%;flex-direction:column;justify-content:center;align-items:center;padding:.8rem .4rem;border-bottom:none}.challenge-shell-sidebar.is-closed .challenge-shell-sidebar-title{writing-mode:vertical-rl;transform:rotate(180deg);text-align:center}.challenge-shell-sidebar.is-closed .challenge-shell-sidebar-toggle{min-height:auto;min-width:32px;padding:.35rem .2rem}.challenge-shell-sidebar.is-closed .challenge-shell-sidebar-body{display:none}.challenge-info-strip{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:.8rem}.challenge-info-strip.compact{grid-template-columns:repeat(2,minmax(0,1fr))}.challenge-info-card{display:grid;gap:.4rem;min-height:84px;padding:.85rem .95rem;border-radius:1rem;background:color-mix(in srgb,var(--bg-surface-muted) 92%,transparent);border:1px solid var(--border-subtle)}.challenge-info-card span,.challenge-rail-title,.challenge-board-summary-card span,.challenge-room-player-score span,.challenge-result-meta span,.challenge-stage-label{color:var(--text-secondary);font-size:.78rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase}.challenge-info-card b{color:var(--text-primary);line-height:1.45}.challenge-stage-layout,.challenge-match-layout{display:grid;gap:1.4rem;align-items:start;grid-template-columns:minmax(0,1fr)}.challenge-stage-layout.solo-focus{grid-template-columns:minmax(0,1fr)}.challenge-stage-column,.challenge-match-main,.challenge-side-rail,.challenge-match-side{display:grid;gap:1rem;min-width:0}.challenge-stage-card,.challenge-rail-card,.challenge-room-panel,.challenge-board-section{background:var(--bg-surface);border:1px solid var(--border-subtle);border-radius:1.1rem;box-shadow:var(--shadow-md)}.challenge-stage-card,.challenge-rail-card,.challenge-room-panel{padding:1.35rem}.challenge-stage-card{display:grid;gap:.9rem}.challenge-stage-card.state-playing{border-color:color-mix(in srgb,var(--button-primary-bg) 35%,var(--border-subtle));box-shadow:0 12px 24px color-mix(in srgb,var(--button-primary-bg) 12%,transparent)}.challenge-stage-card.state-countdown{border-color:color-mix(in srgb,var(--warning) 38%,var(--border-subtle));background:linear-gradient(180deg,color-mix(in srgb,var(--warning) 8%,var(--bg-surface)),var(--bg-surface))}.challenge-stage-card.state-answer{border-color:color-mix(in srgb,var(--warning) 40%,var(--border-subtle))}.challenge-stage-card-header,.challenge-board-section-header,.challenge-room-player-top{display:flex;justify-content:space-between;gap:.9rem;align-items:flex-start}.challenge-stage-card-header h3,.challenge-launch-card h3{margin:.2rem 0 0;font-size:1.35rem;line-height:1.15}.challenge-launch-card{min-height:22rem;display:flex;flex-direction:column;justify-content:space-between;gap:1.5rem}.challenge-launch-card p{margin:0;max-width:42rem;color:var(--text-secondary);line-height:1.55}.challenge-launch-top,.challenge-launch-bottom{display:grid;gap:1.2rem}.challenge-launch-bottom{margin-top:auto;align-content:end}.challenge-launch-summary{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.8rem;max-width:28rem}.challenge-launch-summary>div{display:grid;gap:.25rem;padding:.85rem .95rem;border-radius:.95rem;background:var(--bg-surface-muted);border:1px solid var(--border-subtle)}.challenge-launch-summary b{font-size:1.05rem;color:var(--text-primary)}.challenge-launch-card .challenge-actions{margin-top:.2rem}.challenge-stage-chip,.challenge-save-chip{display:inline-flex;align-items:center;justify-content:center;min-height:34px;padding:.35rem .75rem;border-radius:999px;border:1px solid var(--border-subtle);background:var(--bg-surface-muted);color:var(--text-primary);font-size:.84rem;font-weight:700;white-space:nowrap}.challenge-save-chip.state-saved{background:color-mix(in srgb,#16a34a 14%,transparent);border-color:color-mix(in srgb,#16a34a 28%,var(--border-subtle))}.challenge-save-chip.state-saving{background:color-mix(in srgb,var(--button-primary-bg) 14%,transparent);border-color:color-mix(in srgb,var(--button-primary-bg) 26%,var(--border-subtle))}.challenge-save-chip.state-error{background:color-mix(in srgb,var(--danger, #b42318) 10%,transparent);border-color:color-mix(in srgb,var(--danger, #b42318) 24%,var(--border-subtle))}.challenge-round-prompt{font-size:1.45rem;font-weight:800;line-height:1.15;letter-spacing:.01em;color:var(--text-primary)}.challenge-result-card{background:linear-gradient(180deg,color-mix(in srgb,var(--bg-surface) 92%,transparent),color-mix(in srgb,var(--bg-surface-muted) 80%,transparent))}.challenge-result-hero{display:grid;grid-template-columns:minmax(120px,180px) minmax(0,1fr);gap:1rem;align-items:start}.challenge-result-score{display:flex;align-items:center;justify-content:center;min-height:140px;border-radius:1.1rem;background:linear-gradient(135deg,color-mix(in srgb,var(--button-primary-bg) 18%,transparent),color-mix(in srgb,var(--button-primary-bg) 5%,transparent));border:1px solid color-mix(in srgb,var(--button-primary-bg) 24%,var(--border-subtle));font-size:clamp(2rem,4vw,3rem);font-weight:900;letter-spacing:-.04em}.challenge-result-meta{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.75rem}.challenge-result-meta>div,.challenge-board-summary-card{display:grid;gap:.25rem;padding:.85rem .95rem;border-radius:.95rem;background:var(--bg-surface-muted);border:1px solid var(--border-subtle)}.challenge-result-meta b,.challenge-board-summary-card b{font-size:1.08rem;color:var(--text-primary)}.challenge-result-copy,.challenge-room-lobby-copy{color:var(--text-secondary);line-height:1.55}.challenge-rail-card{display:grid;gap:.85rem;background:color-mix(in srgb,var(--bg-surface) 92%,transparent);border-color:color-mix(in srgb,var(--border-subtle) 92%,transparent);box-shadow:var(--shadow-sm)}.challenge-rail-list,.challenge-round-history{display:grid;gap:.7rem}.challenge-rail-list>div,.challenge-round-history-row{display:flex;justify-content:space-between;gap:.75rem;align-items:center;padding:.75rem .85rem;border-radius:.85rem;background:var(--bg-surface-muted);border:1px solid var(--border-subtle)}.challenge-rail-list span,.challenge-round-history-row span{color:var(--text-secondary)}.challenge-host-strip{display:flex;flex-wrap:wrap;justify-content:space-between;gap:.85rem;align-items:center;padding:.95rem 1rem;border-radius:1rem;background:color-mix(in srgb,var(--bg-surface-muted) 90%,transparent);border:1px solid var(--border-subtle)}.challenge-host-status{color:var(--text-secondary);line-height:1.5}.challenge-room-player-card{display:grid;gap:.75rem;padding:.9rem .95rem;border-radius:.95rem;background:var(--bg-surface-muted);border:1px solid var(--border-subtle)}.challenge-room-player-card.online{border-color:color-mix(in srgb,var(--button-primary-bg) 34%,var(--border-subtle))}.challenge-room-player-card.self{box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--button-primary-bg) 30%,transparent)}.challenge-room-player-badges{display:flex;gap:.45rem;flex-wrap:wrap}.challenge-room-player-score{display:flex;justify-content:space-between;gap:.75rem;align-items:center}.challenge-room-player-score b{font-size:1.05rem}.challenge-board-surface{display:grid;gap:1rem}.challenge-board-surface.variant-sidebar{gap:.85rem}.challenge-board-surface.variant-sidebar .challenge-board-grid{grid-template-columns:1fr;gap:.85rem}.challenge-board-surface.variant-sidebar .challenge-board-section{padding:.9rem;gap:.75rem;box-shadow:0 12px 26px -22px color-mix(in srgb,var(--button-primary-bg) 38%,transparent)}.challenge-board-surface.variant-sidebar .challenge-board-row{padding:.72rem .8rem}.challenge-board-surface.variant-sidebar .challenge-board-section-header{gap:.65rem}.challenge-board-surface.variant-sidebar .challenge-board-section:first-child{border-color:color-mix(in srgb,var(--button-primary-bg) 28%,var(--border-subtle));background:linear-gradient(180deg,color-mix(in srgb,var(--button-primary-bg) 8%,var(--bg-surface)),var(--bg-surface))}.challenge-board-summary-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.8rem}.challenge-board-section{display:grid;gap:.9rem}.challenge-board-section.accent-room{border-color:color-mix(in srgb,var(--button-primary-bg) 30%,var(--border-subtle))}.challenge-board-section.accent-daily{border-color:color-mix(in srgb,var(--warning) 30%,var(--border-subtle))}.challenge-board-section.accent-weekly{border-color:color-mix(in srgb,#2563eb 26%,var(--border-subtle))}.challenge-board-section-header{align-items:center}.challenge-board-row{padding:.8rem .9rem;border-radius:.85rem;background:var(--bg-surface-muted);border:1px solid var(--border-subtle)}.challenge-board-row.rank-1{background:linear-gradient(135deg,color-mix(in srgb,var(--warning) 16%,transparent),var(--bg-surface-muted))}.challenge-board-row.rank-2{background:linear-gradient(135deg,color-mix(in srgb,#94a3b8 12%,transparent),var(--bg-surface-muted))}.challenge-board-row.rank-3{background:linear-gradient(135deg,color-mix(in srgb,#b45309 12%,transparent),var(--bg-surface-muted))}.challenge-board-name b{display:block}.challenge-actions{gap:.75rem}.challenge-actions>button{min-height:46px}.challenge-log-field input,.challenge-input textarea{background:var(--bg-surface);border-color:var(--border-subtle)}.group-copy-card{gap:1rem}.group-copy-settings-panel,.group-copy-listen-panel,.group-copy-expected,.group-copy-answer-card,.group-copy-rank-row,.group-copy-podium-card{border:1px solid var(--border-subtle);background:color-mix(in srgb,var(--bg-surface-muted) 88%,transparent)}.group-copy-settings-panel{display:grid;gap:.95rem;padding:1rem;border-radius:1rem}.group-copy-settings-head,.group-copy-answer-top,.group-copy-answer-meta,.group-copy-rank-row{display:flex;justify-content:space-between;gap:.75rem;align-items:center}.group-copy-settings-head h4{margin:.18rem 0 0;font-size:1.1rem;color:var(--text-primary)}.group-copy-settings-grid{display:grid;grid-template-columns:repeat(3,minmax(150px,1fr));gap:.8rem}.group-copy-settings-grid .settings-field{min-width:0}.group-copy-settings-grid input,.group-copy-settings-grid select{width:100%}.group-copy-settings-chips,.group-copy-round-meta{display:flex;flex-wrap:wrap;gap:.55rem}.group-copy-settings-chips span,.group-copy-round-meta span{display:inline-flex;align-items:center;min-height:32px;padding:.35rem .65rem;border-radius:999px;border:1px solid var(--border-subtle);background:var(--bg-surface);color:var(--text-secondary);font-size:.84rem;font-weight:700}.group-copy-listen-panel{display:flex;justify-content:space-between;gap:1rem;align-items:center;padding:1rem;border-radius:1rem}.group-copy-listen-panel p{margin:.22rem 0 0;color:var(--text-secondary);line-height:1.45}.group-copy-answer-input textarea{min-height:140px;resize:vertical;font-size:1.05rem;line-height:1.45}.group-copy-expected{display:grid;gap:.35rem;padding:.95rem 1rem;border-radius:.95rem}.group-copy-expected span,.group-copy-answer-meta,.group-copy-answer-top span{color:var(--text-secondary);font-size:.82rem;font-weight:800}.group-copy-expected b{color:var(--text-primary);font-size:clamp(1.15rem,2vw,1.55rem);line-height:1.2;overflow-wrap:anywhere}.group-copy-answer-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:.8rem}.group-copy-answer-card{display:grid;gap:.7rem;min-width:0;padding:.9rem;border-radius:.95rem}.group-copy-answer-card.self,.group-copy-rank-row.self{border-color:color-mix(in srgb,var(--button-primary-bg) 36%,var(--border-subtle));background:linear-gradient(135deg,color-mix(in srgb,var(--button-primary-bg) 10%,var(--bg-surface-muted)),color-mix(in srgb,var(--bg-surface-muted) 92%,transparent))}.group-copy-answer-top b,.group-copy-rank-row b,.group-copy-podium-card b{min-width:0;color:var(--text-primary);overflow-wrap:anywhere}.group-copy-answer-copy{min-height:2.8rem;padding:.7rem .75rem;border-radius:.8rem;background:var(--bg-surface);color:var(--text-primary);line-height:1.45;overflow-wrap:anywhere}.group-copy-answer-meta{justify-content:flex-start;flex-wrap:wrap}.group-copy-ranking-list{display:grid;gap:.55rem}.group-copy-rank-row{min-width:0;padding:.78rem .85rem;border-radius:.85rem;animation:group-copy-rank-move .38s ease both;animation-delay:calc(var(--rank, 1) * 40ms)}.group-copy-rank-row span:first-child{min-width:2.6rem;font-weight:900;color:var(--text-primary)}.group-copy-rank-row span:not(:first-child){color:var(--text-secondary);font-weight:700}.group-copy-rank-row.movement-up span:last-child{color:var(--success)}.group-copy-rank-row.movement-down span:last-child{color:var(--danger)}.group-copy-reaction-row{display:flex;flex-wrap:wrap;gap:.5rem}.group-copy-reaction-chip{min-height:2.2rem;border:1px solid var(--border-subtle);border-radius:999px;background:var(--bg-surface);color:var(--text-secondary);padding:.35rem .75rem;font-weight:800;cursor:pointer}.group-copy-reaction-chip.active{border-color:color-mix(in srgb,var(--button-primary-bg) 36%,var(--border-subtle));color:var(--button-primary-bg);background:color-mix(in srgb,var(--button-primary-bg) 10%,var(--bg-surface))}.group-copy-ranking-list.final .group-copy-rank-row{min-height:3.25rem}.group-copy-podium{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.8rem;align-items:end}.group-copy-podium-card{display:grid;gap:.4rem;min-width:0;padding:1rem;border-radius:1rem;text-align:center}.group-copy-podium-card span{color:var(--text-secondary);font-weight:900}.group-copy-podium-card strong{color:var(--text-primary);font-size:1.4rem}.group-copy-podium-card.place-1{min-height:9rem;border-color:color-mix(in srgb,var(--warning) 42%,var(--border-subtle));background:linear-gradient(180deg,color-mix(in srgb,var(--warning) 18%,transparent),var(--bg-surface-muted))}.group-copy-podium-card.place-2{min-height:7.6rem}.group-copy-podium-card.place-3{min-height:6.8rem}@keyframes group-copy-rank-move{0%{opacity:.65;transform:translateY(calc(var(--rank-delta, 0) * 1.45rem))}to{opacity:1;transform:translateY(0)}}@media(max-width:900px){.challenge-room-grid,.challenge-hub-header,.challenge-hub-dashboard{grid-template-columns:1fr}.challenge-hub-stats{width:100%;justify-content:flex-start}.challenge-hub-mode-bar,.challenge-hub-section-head,.challenge-hub .challenge-card-hero-top{flex-direction:column;align-items:stretch}.challenge-hub-header-main h2{max-width:none}.challenge-hub .challenge-card-featured,.challenge-hub .challenge-card-continue{padding:1rem}.challenge-hub-utility-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.challenge-shell-header,.challenge-stage-layout,.challenge-match-layout,.challenge-result-hero,.challenge-board-summary-grid,.challenge-page-layout.has-sidebar,.challenge-page-layout.has-sidebar.sidebar-closed{grid-template-columns:1fr}.challenge-shell-card{padding:1.5rem}.challenge-shell-title-row,.challenge-shell-subtitle-row,.challenge-shell-eyebrow-row{flex-direction:column;align-items:flex-start}.challenge-shell-meta{max-width:100%;justify-self:start}.challenge-shell-sidebar{order:0}.challenge-shell-sidebar-panel{height:auto}.challenge-shell-sidebar-body{align-content:start}.challenge-shell-sidebar.is-closed .challenge-shell-sidebar-header{min-height:auto;justify-content:space-between;align-items:center;padding:.9rem 1rem;border-bottom:1px solid color-mix(in srgb,var(--border-subtle) 88%,transparent)}.challenge-shell-sidebar.is-closed .challenge-shell-sidebar-title,.challenge-shell-sidebar.is-closed .challenge-shell-sidebar-toggle{writing-mode:horizontal-tb;transform:none}.challenge-shell-sidebar.is-closed .challenge-shell-sidebar-toggle{padding:.55rem .85rem}.challenge-page-main{order:1}}@media(max-width:640px){.challenge-hub-header{padding:.95rem}.challenge-category-tabs{width:100%;justify-content:stretch}.challenge-hub-stats,.challenge-hub-utility-grid,.challenge-hub .challenge-card-hero-meta,.challenge-card-grid{grid-template-columns:1fr}.challenge-hub .challenge-card-hero-meta{display:grid}.challenge-hub .challenge-card-actions>button{flex:1 1 auto}.challenge-category-tab{flex:1 1 0;justify-content:center;text-align:center}.challenge-score-rail,.challenge-info-strip,.challenge-result-meta,.group-copy-settings-grid,.group-copy-podium,.challenge-info-strip.compact,.challenge-launch-summary,.challenge-log-grid{grid-template-columns:1fr}.challenge-shell-header,.challenge-card-top,.challenge-board-row,.challenge-room-player,.challenge-stage-card-header,.challenge-board-section-header,.challenge-room-player-top,.challenge-host-strip,.group-copy-settings-head,.group-copy-listen-panel,.group-copy-rank-row{flex-direction:column}}@media(prefers-reduced-motion:reduce){.challenge-hub-pane,.challenge-hub .challenge-card-featured:before,.group-copy-rank-row{animation:none}.challenge-hub .challenge-card,.challenge-primary-btn,.challenge-secondary-btn{transition:none}}.challenge-hub{--challenge-hub-command-border: color-mix(in srgb, var(--warning) 30%, var(--border-subtle));--challenge-hub-scene-a: color-mix(in srgb, var(--warning) 22%, transparent);--challenge-hub-scene-b: color-mix(in srgb, var(--success) 18%, transparent);--challenge-hub-scene-c: color-mix(in srgb, var(--accent) 18%, transparent);--challenge-hub-lounge-bg: radial-gradient(circle at 2% 10%, var(--challenge-hub-scene-a), transparent 32%), radial-gradient(circle at 88% 12%, var(--challenge-hub-scene-b), transparent 30%), radial-gradient(circle at 55% 100%, var(--challenge-hub-scene-c), transparent 35%), linear-gradient(145deg, color-mix(in srgb, var(--bg-surface-strong) 88%, transparent) 0%, color-mix(in srgb, var(--bg-surface) 95%, transparent) 55%, color-mix(in srgb, var(--bg-elevated) 94%, transparent) 100%);--challenge-hub-lounge-shadow: var(--shadow-lg);--challenge-hub-featured-bg: radial-gradient(circle at 84% 18%, color-mix(in srgb, var(--warning) 18%, transparent), transparent 28%), radial-gradient(circle at 2% 84%, color-mix(in srgb, var(--success) 10%, transparent), transparent 36%), linear-gradient(150deg, color-mix(in srgb, var(--bg-surface) 97%, transparent) 0%, color-mix(in srgb, var(--bg-elevated) 92%, transparent) 54%, color-mix(in srgb, var(--bg-surface-strong) 94%, transparent) 100%);--challenge-hub-featured-border: color-mix(in srgb, var(--warning) 34%, var(--border-strong));--challenge-hub-launch-bg: color-mix(in srgb, var(--bg-surface) 92%, transparent);--challenge-hub-launch-border: color-mix(in srgb, var(--border-strong) 44%, transparent);--challenge-hub-launch-label: var(--text-muted);--challenge-hub-launch-value: var(--text-primary);--challenge-hub-launch-copy: var(--text-secondary);--challenge-hub-launch-badge-bg: color-mix(in srgb, var(--warning-soft) 90%, transparent);--challenge-hub-launch-badge-text: color-mix(in srgb, var(--warning) 82%, var(--text-primary));--challenge-hub-chip-bg: color-mix(in srgb, var(--bg-surface) 84%, transparent);--challenge-hub-chip-border: color-mix(in srgb, var(--border-subtle) 90%, transparent);--challenge-hub-chip-text: var(--text-secondary);--challenge-hub-lock-bg: color-mix(in srgb, var(--warning-soft) 80%, var(--bg-surface));--challenge-hub-lock-border: color-mix(in srgb, var(--warning-border) 88%, var(--border-subtle));--challenge-hub-lock-text: var(--text-primary);--challenge-hub-shelf-bg: color-mix(in srgb, var(--bg-surface) 84%, transparent);--challenge-hub-shelf-border: color-mix(in srgb, var(--border-strong) 36%, transparent);--challenge-hub-shelf-primary-border: color-mix(in srgb, var(--warning) 20%, var(--border-subtle));--challenge-hub-shelf-secondary-border: color-mix(in srgb, var(--accent) 14%, var(--border-subtle));--challenge-hub-card-bg: color-mix(in srgb, var(--bg-surface) 76%, transparent);--challenge-hub-card-border: color-mix(in srgb, var(--border-subtle) 92%, transparent);--challenge-hub-card-shadow: 0 6px 16px rgba(0, 0, 0, .06)}:root[data-theme=light] .challenge-hub{--challenge-hub-command-border: rgba(251, 146, 60, .28);--challenge-hub-scene-a: rgba(255, 191, 105, .34);--challenge-hub-scene-b: rgba(46, 196, 182, .2);--challenge-hub-scene-c: rgba(244, 114, 182, .12);--challenge-hub-lounge-bg: radial-gradient(circle at 2% 10%, rgba(255, 191, 105, .36), transparent 32%), radial-gradient(circle at 88% 12%, rgba(46, 196, 182, .22), transparent 30%), radial-gradient(circle at 55% 100%, rgba(251, 146, 60, .14), transparent 35%), linear-gradient(145deg, #fff9ee 0%, #fff7fb 48%, #f5fbff 100%);--challenge-hub-lounge-shadow: 0 18px 40px rgba(31, 41, 55, .08);--challenge-hub-featured-bg: radial-gradient(circle at 85% 18%, rgba(245, 158, 11, .14), transparent 28%), radial-gradient(circle at 4% 82%, rgba(15, 118, 110, .1), transparent 36%), linear-gradient(150deg, #fffaf1 0%, #fff8fd 42%, #f6fbff 100%);--challenge-hub-launch-bg: rgba(255, 255, 255, .82);--challenge-hub-launch-border: rgba(148, 163, 184, .22);--challenge-hub-launch-label: #64748b;--challenge-hub-launch-value: #0f172a;--challenge-hub-launch-copy: #475569;--challenge-hub-launch-badge-bg: rgba(245, 158, 11, .14);--challenge-hub-launch-badge-text: #b45309;--challenge-hub-chip-bg: rgba(255, 255, 255, .78);--challenge-hub-chip-border: rgba(148, 163, 184, .24);--challenge-hub-chip-text: #475569;--challenge-hub-lock-text: #0f172a;--challenge-hub-shelf-bg: rgba(255, 255, 255, .7);--challenge-hub-shelf-border: rgba(148, 163, 184, .18);--challenge-hub-shelf-primary-border: rgba(251, 146, 60, .2);--challenge-hub-shelf-secondary-border: rgba(99, 102, 241, .14);--challenge-hub-card-bg: rgba(255, 255, 255, .76);--challenge-hub-card-border: rgba(148, 163, 184, .2);--challenge-hub-card-shadow: 0 6px 14px rgba(15, 23, 42, .05)}.challenge-hub.is-group{--challenge-hub-kicker: color-mix(in srgb, var(--accent) 72%, var(--warning));--challenge-hub-accent-text: color-mix(in srgb, var(--accent) 82%, var(--text-primary));--challenge-hub-tab-active-bg: linear-gradient(135deg, color-mix(in srgb, var(--accent) 80%, #38bdf8) 0%, color-mix(in srgb, var(--warning) 60%, var(--danger)) 100%);--challenge-hub-featured-border: color-mix(in srgb, var(--accent) 28%, var(--border-strong));--challenge-hub-scene-a: color-mix(in srgb, var(--accent) 24%, transparent);--challenge-hub-scene-b: color-mix(in srgb, var(--warning) 18%, transparent);--challenge-hub-scene-c: color-mix(in srgb, var(--success) 16%, transparent)}.challenge-hub-card{position:relative;width:100%;max-width:none;align-self:center;gap:.9rem}.challenge-page.challenge-page-cw-games .challenge-hub-card,.course-page.course-page-cw-games .challenge-hub-card,.course-card.course-card-cw-games .challenge-hub-card{width:100%;max-width:none}.challenge-hub-pane{animation:challenge-hub-rise .32s both cubic-bezier(.16,1,.3,1)}.challenge-hub-pane-1{animation-delay:0ms}.challenge-hub-pane-2{animation-delay:45ms}.challenge-hub-lounge{position:relative;display:grid;gap:.85rem;padding:clamp(.88rem,1.55vw,1.08rem);border-radius:1.5rem;border:1px solid var(--challenge-hub-command-border);background:var(--challenge-hub-lounge-bg);box-shadow:var(--challenge-hub-lounge-shadow);overflow:hidden}.challenge-hub-lounge-light{position:absolute;border-radius:999px;filter:blur(28px);opacity:.3;pointer-events:none}.challenge-hub-lounge-light-a{top:-44px;right:12%;width:160px;height:160px;background:color-mix(in srgb,var(--warning) 42%,transparent)}.challenge-hub-lounge-light-b{bottom:-68px;left:8%;width:220px;height:220px;background:color-mix(in srgb,var(--accent) 22%,transparent)}.challenge-hub-header{position:relative;z-index:1;display:grid;grid-template-columns:minmax(0,1fr) minmax(320px,.96fr);gap:.8rem;align-items:end}.challenge-hub-title-block{display:grid;gap:.18rem;max-width:31rem}.challenge-hub-title-block h2{margin:.08rem 0 0;max-width:12ch;font-size:clamp(1.78rem,2.9vw,2.65rem);line-height:.93;letter-spacing:-.045em;color:var(--challenge-hub-title)}.challenge-hub-title-block p{margin:0;max-width:34ch;color:var(--challenge-hub-body-text);line-height:1.25;font-size:.84rem}.challenge-hub-header-side{display:grid;gap:.55rem;justify-self:end;width:min(100%,24rem)}.challenge-hub-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.42rem;width:100%}.challenge-hub-mode-tabs{justify-self:end;align-self:start}.challenge-hub-counter{min-width:0;padding:.54rem .64rem;border-radius:.82rem;background:var(--challenge-hub-counter-bg);border:1px solid var(--challenge-hub-counter-border)}.challenge-hub-counter span{display:block;font-size:.62rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--challenge-hub-counter-label)}.challenge-hub-counter b{display:block;margin-top:.16rem;font-size:.98rem;color:var(--challenge-hub-counter-value)}.challenge-hub-command-grid{position:relative;z-index:1;display:grid;grid-template-columns:minmax(0,1.26fr) minmax(340px,.94fr);gap:.82rem;align-items:start}.challenge-hub-featured-panel,.challenge-hub-launch-card,.challenge-hub-shelf,.challenge-hub-lane-card{position:relative;overflow:hidden}.challenge-hub-featured-panel{display:grid;gap:.7rem;padding:clamp(.92rem,1.5vw,1.16rem);border-radius:1.35rem;border:1px solid var(--challenge-hub-featured-border);background:var(--challenge-hub-featured-bg);box-shadow:0 18px 38px #00000024}.challenge-hub-featured-panel:before{content:"";position:absolute;inset:auto -8% -26% auto;width:38%;aspect-ratio:1;border-radius:999px;background:radial-gradient(circle,color-mix(in srgb,var(--warning) 24%,transparent) 0%,transparent 72%);opacity:.45;pointer-events:none;animation:challenge-hub-glow 10s ease-in-out infinite}.challenge-hub-featured-top,.challenge-hub-shelf-head,.challenge-hub-launch-head{display:flex;justify-content:space-between;gap:.55rem;align-items:flex-start;flex-wrap:wrap}.challenge-hub-featured-chip-row,.challenge-hub-featured-badges,.challenge-hub-featured-actions,.challenge-hub-launch-actions,.challenge-hub-launch-meta,.challenge-hub-lane-card-actions{display:flex;gap:.42rem;flex-wrap:wrap;align-items:center}.challenge-hub-featured-chip,.challenge-hub-lane-card-tag,.challenge-hub-launch-badge{display:inline-flex;align-items:center;min-height:1.35rem;padding:.14rem .48rem;border-radius:999px;font-size:.56rem;font-weight:800;letter-spacing:.09em;text-transform:uppercase}.challenge-hub-featured-chip.strong{background:var(--challenge-hub-featured-kicker-bg);color:var(--challenge-hub-featured-kicker-text)}.challenge-hub-featured-chip.muted,.challenge-hub-featured-chip.context{background:var(--challenge-hub-chip-bg);border:1px solid var(--challenge-hub-chip-border);color:var(--challenge-hub-chip-text)}.challenge-hub-featured-chip.status.unlocked,.challenge-hub-launch-badge{background:var(--challenge-hub-launch-badge-bg);color:var(--challenge-hub-launch-badge-text)}.challenge-hub-featured-chip.status.locked{background:var(--challenge-hub-featured-locked-bg);color:var(--challenge-hub-featured-locked-text)}.challenge-hub-featured-title{position:relative;z-index:1;margin:0;max-width:11ch;font-size:clamp(1.8rem,3vw,3rem);line-height:.92;letter-spacing:-.05em;color:var(--challenge-hub-title)}.challenge-hub-featured-lead{position:relative;z-index:1;margin:0;max-width:27ch;font-size:.98rem;font-weight:800;line-height:1.08;color:var(--challenge-hub-title)}.challenge-hub-featured-support{position:relative;z-index:1;margin:0;max-width:38rem;color:var(--challenge-hub-body-text);font-size:.82rem;line-height:1.28}.challenge-hub-featured-panel .challenge-badge{padding:.2rem .5rem;font-size:.66rem;background:color-mix(in srgb,var(--bg-surface) 82%,transparent);border-color:color-mix(in srgb,var(--border-strong) 24%,transparent)}.challenge-hub-featured-lock,.challenge-hub-lane-card-lock{display:grid;gap:.16rem;padding:.58rem .7rem;border-radius:.84rem;background:var(--challenge-hub-lock-bg);border:1px solid var(--challenge-hub-lock-border);color:var(--challenge-hub-lock-text)}.challenge-hub-featured-meta,.challenge-hub-lane-card-meta{display:flex;gap:.4rem;flex-wrap:wrap}.challenge-hub-featured-meta-chip,.challenge-hub-lane-card-meta{min-width:0;padding:.48rem .56rem;border-radius:.8rem;background:var(--challenge-hub-stat-bg);border:1px solid var(--challenge-hub-stat-border)}.challenge-hub-featured-meta-chip{display:grid;gap:.14rem;flex:0 1 150px}.challenge-hub-featured-meta-chip span,.challenge-hub-lane-card-meta span{font-size:.56rem;letter-spacing:.11em;text-transform:uppercase;font-weight:800;color:var(--challenge-hub-stat-text)}.challenge-hub-featured-meta-chip b,.challenge-hub-lane-card-meta b{font-size:.84rem;color:var(--challenge-hub-stat-value)}.challenge-hub-featured-actions{position:relative;z-index:1}.challenge-hub-launch-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.6rem;align-content:start}.challenge-hub-launch-card{display:grid;gap:.5rem;padding:.72rem .76rem;border-radius:1rem;border:1px solid var(--challenge-hub-launch-border);background:var(--challenge-hub-launch-bg);box-shadow:var(--challenge-hub-card-shadow);transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease}.challenge-hub-launch-card.is-continue{grid-column:1 / -1;background:radial-gradient(circle at top right,color-mix(in srgb,var(--warning) 12%,transparent),transparent 36%),var(--challenge-hub-launch-bg)}.challenge-hub-launch-card:hover,.challenge-hub-lane-card:hover{transform:translateY(-1px);box-shadow:0 10px 20px #00000014}.challenge-hub-launch-label{font-size:.56rem;letter-spacing:.12em;text-transform:uppercase;font-weight:800;color:var(--challenge-hub-launch-label)}.challenge-hub-launch-main{display:grid;gap:.16rem}.challenge-hub-launch-value{font-size:1rem;font-weight:800;line-height:1.02;color:var(--challenge-hub-launch-value)}.challenge-hub-launch-card.is-continue .challenge-hub-launch-value{font-size:1.08rem}.challenge-hub-launch-copy{margin:0;color:var(--challenge-hub-launch-copy);font-size:.76rem;line-height:1.22}.challenge-hub-launch-meta-chip{display:inline-flex;align-items:center;padding:.18rem .42rem;border-radius:999px;background:var(--challenge-hub-stat-bg);border:1px solid var(--challenge-hub-stat-border);color:var(--challenge-hub-stat-value);font-size:.64rem;font-weight:700}.challenge-hub-launch-actions .challenge-primary-btn,.challenge-hub-launch-actions .challenge-secondary-btn{min-height:32px;padding:.42rem .68rem;font-size:.78rem}.challenge-hub-shelves{display:grid;gap:.56rem}.challenge-hub-shelf{display:grid;gap:.48rem;padding:.62rem .7rem .76rem;border-radius:1.05rem;border:1px solid var(--challenge-hub-shelf-border);background:var(--challenge-hub-shelf-bg);box-shadow:0 8px 14px #0000000d;animation:challenge-hub-rise .32s both cubic-bezier(.16,1,.3,1)}.challenge-hub-shelf-primary{border-color:var(--challenge-hub-shelf-primary-border)}.challenge-hub-shelf-secondary{border-color:var(--challenge-hub-shelf-secondary-border)}.challenge-hub-shelf-head{gap:.4rem}.challenge-hub-shelf-head h3{margin:.12rem 0 0;font-size:.95rem;line-height:1.08;color:var(--challenge-hub-title)}.challenge-hub-shelf .challenge-category-copy{font-size:.76rem;line-height:1.2;max-width:34ch;color:var(--text-muted)}.challenge-hub-shelf-track{grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:.56rem}.challenge-hub .challenge-card{border:1px solid var(--challenge-hub-card-border);border-radius:.95rem;background:var(--challenge-hub-card-bg);box-shadow:var(--challenge-hub-card-shadow)}.challenge-hub-lane-card{display:grid;gap:.42rem;text-align:left;padding:.7rem;min-height:100%;transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease}.challenge-hub-lane-card-top{display:flex;justify-content:space-between;gap:.4rem;align-items:flex-start;flex-wrap:wrap}.challenge-hub-lane-card .course-module-eyebrow.challenge{padding:.16rem .42rem;border-radius:999px;border:1px solid color-mix(in srgb,var(--border-subtle) 88%,transparent);background:transparent;color:var(--text-muted);font-size:.54rem;letter-spacing:.12em}.challenge-hub-lane-card-tag{background:var(--challenge-hub-launch-badge-bg);color:var(--challenge-hub-launch-badge-text);opacity:.82}.challenge-hub-lane-card-title{font-size:.94rem;font-weight:800;line-height:1.12;color:var(--challenge-hub-title)}.challenge-hub-lane-card-support{color:var(--challenge-hub-body-text);font-size:.76rem;line-height:1.2;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;min-height:2.1em}.challenge-hub-lane-card-meta{display:grid;gap:.14rem;width:fit-content;min-width:min(100%,10rem)}.challenge-hub-lane-card-actions{margin-top:auto;gap:.36rem}.challenge-hub-lane-card-actions .challenge-primary-btn,.challenge-hub-lane-card-actions .challenge-secondary-btn{min-height:34px;padding:.46rem .7rem;font-size:.8rem}.challenge-hub.embedded .challenge-hub-lounge{padding:.8rem;border-radius:1.3rem}.challenge-hub.embedded .challenge-hub-title-block h2{font-size:clamp(1.52rem,2.3vw,2.08rem)}.challenge-hub.embedded .challenge-hub-featured-panel{padding:.88rem}.challenge-hub.embedded .challenge-hub-shelf{padding:.66rem .72rem .78rem}@media(max-width:960px){.challenge-hub-header,.challenge-hub-command-grid{grid-template-columns:1fr}.challenge-hub-title-block h2{max-width:none}.challenge-hub-header-side,.challenge-hub-stats{justify-self:stretch;width:100%}.challenge-hub-stats{grid-template-columns:repeat(3,minmax(0,1fr))}.challenge-hub-launch-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:720px){.challenge-hub-lounge{padding:.88rem}.challenge-hub-stats{grid-template-columns:repeat(3,minmax(0,1fr))}.challenge-hub-featured-title{max-width:none;font-size:clamp(1.65rem,9vw,2.4rem)}.challenge-hub-launch-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.challenge-hub-shelf,.challenge-hub-shelf-head{padding-right:0}.challenge-hub-shelf-track{display:grid;grid-auto-flow:row;grid-auto-columns:auto;grid-template-columns:1fr;gap:.55rem;overflow-x:visible;overscroll-behavior-x:auto;scroll-snap-type:none;padding:0}.challenge-hub-shelf-track>*{scroll-snap-align:none}}@media(max-width:640px){.challenge-hub-header{gap:.68rem}.challenge-hub-mode-tabs{justify-self:stretch}.challenge-category-tabs{width:100%;justify-content:stretch}.challenge-category-tab{flex:1 1 0}.challenge-hub-stats{grid-template-columns:repeat(3,minmax(0,1fr))}.challenge-hub-counter{padding:.5rem .52rem}.challenge-hub-counter span{font-size:.56rem}.challenge-hub-counter b{font-size:.88rem}.challenge-hub-launch-grid,.challenge-hub-featured-meta{grid-template-columns:1fr}.challenge-hub-featured-meta{display:grid}.challenge-hub-featured-actions,.challenge-hub-launch-actions,.challenge-hub-lane-card-actions{flex-direction:column;align-items:stretch}.challenge-hub-featured-actions>button,.challenge-hub-launch-actions>button,.challenge-hub-lane-card-actions>button{width:100%}.challenge-hub-launch-card.is-continue{grid-column:auto}.challenge-hub-shelf-track{grid-auto-columns:minmax(15rem,88vw)}}@media(min-width:1400px){.challenge-page.challenge-page-cw-games,.course-page.course-page-cw-games{padding-left:.45rem;padding-right:.45rem}.course-card.course-card-cw-games{padding:.45rem}.challenge-page.challenge-page-cw-games .challenge-hub-command-grid,.course-page.course-page-cw-games .challenge-hub-command-grid{grid-template-columns:minmax(0,1.34fr) minmax(360px,.94fr);gap:.95rem}.challenge-page.challenge-page-cw-games .challenge-hub-shelf-track,.course-page.course-page-cw-games .challenge-hub-shelf-track{grid-template-columns:repeat(auto-fit,minmax(230px,1fr))}}@media(min-width:1680px){.challenge-page.challenge-page-cw-games,.course-page.course-page-cw-games{max-width:1920px;padding-left:.35rem;padding-right:.35rem}.course-card.course-card-cw-games{padding:.35rem}.challenge-page.challenge-page-cw-games .challenge-hub-command-grid,.course-page.course-page-cw-games .challenge-hub-command-grid{grid-template-columns:minmax(0,1.42fr) minmax(400px,.9fr);gap:1rem}.challenge-page.challenge-page-cw-games .challenge-hub-title-block,.course-page.course-page-cw-games .challenge-hub-title-block{max-width:40rem}.challenge-page.challenge-page-cw-games .challenge-hub-shelf-track,.course-page.course-page-cw-games .challenge-hub-shelf-track{grid-template-columns:repeat(auto-fit,minmax(244px,1fr))}}@media(prefers-reduced-motion:reduce){.challenge-hub-pane,.challenge-hub-featured-panel:before{animation:none}.challenge-hub-launch-card,.challenge-hub-lane-card,.challenge-primary-btn,.challenge-secondary-btn{transition:none}}.challenge-hub .challenge-hub-lounge{gap:.72rem;border-radius:1.05rem;background:color-mix(in srgb,var(--bg-surface) 84%,transparent);box-shadow:var(--shadow-sm)}.challenge-hub .challenge-hub-lounge-light,.challenge-hub .challenge-hub-featured-panel:before{display:none}.challenge-hub .challenge-hub-header{align-items:start}.challenge-hub .challenge-hub-title-block h2{max-width:none;font-size:clamp(1.35rem,2.1vw,2rem);line-height:1;letter-spacing:0}.challenge-hub .challenge-hub-title-block p{max-width:46rem}.challenge-hub-primary-actions,.play-friends-primary-actions{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.52rem}.challenge-hub-primary-actions>button,.play-friends-primary-actions>button{min-height:2.55rem;justify-content:center;white-space:normal}.challenge-hub .challenge-hub-command-grid{grid-template-columns:1fr;max-width:100%}.challenge-hub .challenge-hub-featured-panel{gap:.55rem;padding:.82rem;border-radius:.95rem;box-shadow:var(--shadow-sm)}.challenge-hub .challenge-hub-featured-title{max-width:none;font-size:clamp(1.35rem,2.15vw,2.05rem);line-height:1;letter-spacing:0}.challenge-hub .challenge-hub-featured-lead{max-width:56rem;font-size:.92rem;line-height:1.18}.challenge-hub .challenge-hub-featured-support{max-width:64rem}.challenge-hub .challenge-hub-featured-meta{gap:.34rem}.challenge-hub .challenge-hub-featured-meta-chip{flex-basis:12rem;padding:.42rem .5rem}.challenge-hub-ready-pill{display:inline-flex;align-items:center;justify-content:center;justify-self:end;min-height:2rem;padding:.26rem .72rem;border:1px solid color-mix(in srgb,var(--success) 38%,var(--border-subtle));border-radius:999px;background:color-mix(in srgb,var(--success-soft) 92%,transparent);color:color-mix(in srgb,var(--success) 78%,var(--text-primary));font-size:.82rem;font-weight:850}.play-friends-panel{gap:.72rem}.play-friends-command{grid-template-columns:minmax(0,1fr) minmax(12rem,auto);padding:.82rem;border-radius:.8rem;box-shadow:none}.play-friends-command-actions{gap:.45rem}.play-friends-launcher{display:grid;grid-template-columns:minmax(0,1fr) minmax(18rem,.78fr);gap:.72rem;align-items:stretch}.play-friends-mode-panel{display:grid;gap:.62rem;padding:.82rem;border:1px solid var(--border-subtle);border-radius:.8rem;background:var(--bg-surface)}.play-friends-mode-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.48rem}.play-friends-mode-card{display:grid;gap:.2rem;min-width:0;min-height:4.8rem;padding:.68rem;border:1px solid var(--border-subtle);border-radius:.72rem;background:var(--bg-surface-muted);color:var(--text-primary);text-align:left;cursor:pointer}.play-friends-mode-card.active{border-color:color-mix(in srgb,var(--button-primary-bg) 40%,var(--border-subtle));background:color-mix(in srgb,var(--button-primary-bg) 8%,var(--bg-surface));box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--button-primary-bg) 12%,transparent)}.play-friends-mode-card span,.play-friends-mode-card small{color:var(--text-secondary);font-size:.78rem;font-weight:750;line-height:1.22}.play-friends-mode-card b{font-size:.98rem;line-height:1.08}.play-friends-browser{padding:.78rem;gap:.52rem;box-shadow:none}.play-friends-room-list{display:grid;gap:.34rem}.play-friends-room-row{display:grid;grid-template-columns:minmax(13rem,.82fr) minmax(0,1.55fr) auto;align-items:center;gap:.72rem;min-width:0;padding:.48rem .55rem;border:1px solid var(--border-subtle);border-radius:var(--radius-md);background:color-mix(in srgb,var(--bg-surface-muted) 74%,transparent)}.play-friends-room-main{display:grid;gap:.06rem;min-width:0}.play-friends-room-title-line,.play-friends-room-main span{min-width:0}.play-friends-room-title-line{display:flex;align-items:center;gap:.42rem}.play-friends-room-main b,.play-friends-room-main>span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.play-friends-room-main b{color:var(--text-primary);font-size:.92rem;line-height:1.18}.play-friends-room-main span{color:var(--text-secondary);font-size:.76rem;font-weight:700}.play-friends-fit-label{flex:0 0 auto;width:fit-content;max-width:100%;min-height:1.34rem;padding:.08rem .4rem;border:1px solid color-mix(in srgb,var(--success) 26%,var(--border-subtle));border-radius:999px;background:color-mix(in srgb,var(--success-soft) 90%,transparent);color:color-mix(in srgb,var(--success) 76%,var(--text-primary))!important;font-size:.66rem!important;font-weight:850!important;line-height:1.05}.play-friends-room-row .play-friends-room-meta{display:flex;align-items:center;justify-content:flex-start;gap:.28rem;min-width:0}.play-friends-room-row .play-friends-room-meta span{min-height:1.38rem;padding:.08rem .36rem;border-color:color-mix(in srgb,var(--border-subtle) 74%,transparent);background:color-mix(in srgb,var(--bg-surface) 72%,transparent);color:var(--text-secondary);font-size:.68rem;font-weight:780}.play-friends-room-row .play-friends-room-meta .info-trigger,.metadata-strip .info-trigger,.arena-panel-title-row .info-trigger,.challenge-stage-title-row .info-trigger,.morse-chat-setup-subtitle-row .info-trigger,.morse-chat-setup-title-row .info-trigger,.keying-setup-title-row .info-trigger{width:1.65rem;height:1.65rem;min-width:1.65rem;min-height:1.65rem;font-size:.74rem}.play-friends-room-row>.challenge-secondary-btn{min-height:2.25rem;padding-inline:.78rem;border-radius:var(--radius-md)}.challenge-hub .arena-play-now-panel{border-color:color-mix(in srgb,var(--accent) 34%,var(--border-subtle));border-left:5px solid color-mix(in srgb,var(--accent) 86%,var(--success));background:radial-gradient(circle at top right,color-mix(in srgb,var(--accent-soft) 72%,transparent),transparent 42%),linear-gradient(145deg,color-mix(in srgb,var(--bg-surface) 98%,var(--success-soft)),color-mix(in srgb,var(--bg-elevated) 96%,transparent));box-shadow:0 14px 30px color-mix(in srgb,var(--accent) 10%,transparent)}.challenge-hub .arena-play-now-meta{gap:.28rem .55rem}.challenge-hub .arena-play-now-meta span{min-height:auto;padding:0;border:0;border-radius:0;background:transparent;color:var(--text-secondary);font-size:.82rem}.challenge-hub .arena-play-now-meta span:not(:last-child):after{content:"";width:1px;height:1rem;margin-left:.28rem;background:var(--border-subtle)}.challenge-hub .play-friends-setup-strip{border-color:var(--border-subtle);border-left:4px solid color-mix(in srgb,var(--success) 64%,var(--accent));background:color-mix(in srgb,var(--bg-surface-muted) 72%,var(--bg-surface));box-shadow:none}.challenge-hub .play-friends-mode-panel.arena-lobby-panel,.challenge-hub .play-friends-browser.arena-lobby-panel,.challenge-hub .play-friends-secondary.arena-lobby-panel{border-color:color-mix(in srgb,var(--border-subtle) 78%,transparent);background:color-mix(in srgb,var(--bg-surface) 88%,var(--bg-surface-muted));box-shadow:none}.challenge-hub .play-friends-mode-card{border-color:color-mix(in srgb,var(--border-subtle) 86%,transparent);background:color-mix(in srgb,var(--bg-surface-muted) 68%,transparent)}.challenge-hub .play-friends-mode-card.active{border-color:color-mix(in srgb,var(--accent) 48%,var(--border-subtle));border-left:4px solid color-mix(in srgb,var(--accent) 82%,var(--success));background:color-mix(in srgb,var(--accent-soft) 46%,var(--bg-surface));box-shadow:none}.challenge-hub .play-friends-more-item,.challenge-hub .play-friends-room-row{background:color-mix(in srgb,var(--bg-surface-muted) 54%,transparent)}.challenge-hub .play-friends-browser.arena-lobby-panel{border-color:color-mix(in srgb,var(--accent) 24%,var(--border-subtle));border-left:4px solid color-mix(in srgb,var(--accent) 72%,var(--success));background:linear-gradient(180deg,color-mix(in srgb,var(--bg-surface) 94%,var(--accent-soft)) 0%,var(--bg-surface) 100%)}.challenge-hub .play-friends-browser .arena-panel-head{padding-bottom:.2rem;border-bottom:1px solid color-mix(in srgb,var(--accent) 14%,var(--border-subtle))}.challenge-hub .play-friends-room-row{border-color:transparent;border-radius:0;background:transparent;border-top:1px solid color-mix(in srgb,var(--border-subtle) 68%,transparent)}.challenge-hub .play-friends-room-row:first-child{border-top:0}.challenge-hub .play-friends-secondary.arena-lobby-panel{border-style:dashed;border-color:color-mix(in srgb,var(--border-subtle) 70%,transparent);background:color-mix(in srgb,var(--bg-surface-muted) 56%,transparent)}.play-friends-show-all{justify-self:start}.play-friends-empty.compact{display:flex;align-items:center;justify-content:space-between;gap:.7rem;padding:.68rem .78rem;border:1px dashed var(--border-subtle);border-radius:.68rem;background:var(--bg-surface-muted)}.play-friends-secondary{display:grid;gap:.6rem;padding:.82rem;box-shadow:none}.play-friends-secondary .arena-panel-head{align-items:center;min-height:0}.play-friends-secondary .arena-panel-head h3{font-size:1.02rem}.challenge-hub-ready-pill.warning{border-color:color-mix(in srgb,var(--warning) 42%,var(--border-subtle));background:color-mix(in srgb,var(--warning-soft) 86%,transparent);color:color-mix(in srgb,var(--warning) 82%,var(--text-primary))}.play-friends-more-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.44rem}.play-friends-more-item{display:grid;align-content:space-between;gap:.5rem;min-width:0;min-height:5.35rem;padding:.62rem;border:1px solid var(--border-subtle);border-radius:var(--radius-md);background:var(--bg-surface-muted)}.play-friends-more-item>div:first-child{display:grid;gap:.08rem;min-width:0}.play-friends-more-item span{color:var(--text-secondary);font-size:.78rem;font-weight:850}.play-friends-more-item b{color:var(--text-primary);font-size:.95rem;line-height:1.18;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.play-friends-more-actions,.play-friends-more-item.tools .play-friends-tool-row{display:flex;align-items:center;flex-wrap:wrap;justify-content:flex-start;gap:.42rem}.play-friends-more-item.tools{grid-template-columns:repeat(3,minmax(0,1fr));align-items:stretch;min-height:auto;grid-column:1 / -1}.play-friends-more-item.tools .challenge-secondary-btn{width:100%;min-height:2.65rem}.play-friends-compact-panel{display:grid;gap:.55rem;padding:.6rem;border:1px solid var(--border-subtle);border-radius:.68rem;background:var(--bg-surface)}.play-friends-disclosure{border:1px solid var(--border-subtle);border-radius:.75rem;background:var(--bg-surface);padding:.2rem .74rem}.play-friends-disclosure summary{display:flex;align-items:center;justify-content:space-between;gap:.75rem;min-height:2.65rem;cursor:pointer;color:var(--text-secondary);font-weight:850}.play-friends-disclosure summary b{color:var(--text-primary)}.play-friends-disclosure[open]{padding-bottom:.74rem}.play-friends-disclosure[open] summary{margin-bottom:.58rem;border-bottom:1px solid var(--border-subtle)}.play-friends-tool-row{display:flex;flex-wrap:wrap;gap:.48rem}.play-friends-chip-list.compact{display:flex;flex-wrap:wrap}.recent-player-list.compact{display:grid;gap:.42rem}.recent-player-row.compact{padding:.52rem .6rem;border-radius:.68rem;background:var(--bg-surface)}.recent-player-row.compact>div:first-child{gap:.06rem}.recent-player-row.compact b{font-size:.94rem;line-height:1.15}.recent-player-row.compact span{font-size:.78rem}.recent-player-row.compact .challenge-actions{align-items:center;gap:.36rem}.recent-player-more{position:relative}.recent-player-more summary{display:inline-flex;align-items:center;min-height:var(--control-height-compact);padding:0 .72rem;border:1px solid var(--border-subtle);border-radius:var(--radius-md);background:var(--bg-surface);color:var(--text-primary);font-weight:850;cursor:pointer;list-style:none}.recent-player-more summary::-webkit-details-marker{display:none}.recent-player-more>div{position:absolute;right:0;z-index:3;display:grid;gap:.32rem;min-width:8.5rem;margin-top:.28rem;padding:.42rem;border:1px solid var(--border-subtle);border-radius:.68rem;background:var(--bg-surface);box-shadow:var(--surface-shadow-raised)}@media(max-width:960px){.play-friends-arena-grid,.play-friends-launcher,.play-friends-room-row{grid-template-columns:1fr}.play-friends-room-row>button{justify-self:start}}@media(max-width:720px){.challenge-hub-primary-actions,.play-friends-primary-actions,.play-friends-mode-grid{grid-template-columns:1fr 1fr}.play-friends-setup-strip,.arena-panel-head,.arena-play-now-actions,.play-friends-setup-actions{align-items:stretch;flex-direction:column}.arena-play-now-actions>button,.play-friends-setup-actions>button{width:100%}.play-friends-command{grid-template-columns:1fr}.play-friends-command-actions,.challenge-hub-ready-pill{justify-items:stretch;justify-self:stretch}.play-friends-more-grid{grid-template-columns:1fr}.play-friends-more-item,.play-friends-more-item.tools{grid-template-columns:1fr;min-height:auto}.play-friends-more-actions,.play-friends-more-item.tools .play-friends-tool-row{justify-content:stretch}.play-friends-more-actions>button,.play-friends-more-item.tools .challenge-secondary-btn{flex:1 1 9rem}}@media(max-width:520px){.challenge-hub-primary-actions,.play-friends-primary-actions,.play-friends-mode-grid{grid-template-columns:1fr}.play-friends-empty.compact,.recent-player-row{align-items:stretch;flex-direction:column}.recent-player-row.compact .challenge-actions{align-items:stretch}.recent-player-row.compact .challenge-actions>.challenge-secondary-btn,.recent-player-more,.recent-player-more summary{width:100%}.recent-player-more>div{position:static;width:100%}}.app-notice-banner{display:flex;align-items:center;justify-content:space-between;gap:.85rem;max-width:1100px;margin:.9rem auto 0;padding:.8rem 1rem;border-radius:.85rem;border:1px solid var(--border-subtle);background:var(--bg-surface);color:var(--text-primary);box-shadow:var(--shadow-sm)}.app-notice-banner.error{background:var(--danger-soft);color:var(--danger);border-color:var(--danger-border)}.app-notice-banner.info{background:var(--info-soft);color:var(--info);border-color:var(--info-border)}.app-notice-dismiss{border:1px solid var(--border-subtle);background:var(--button-secondary-bg);color:var(--button-secondary-text);border-radius:999px;padding:.35rem .7rem;font-weight:700;cursor:pointer}.nav-link-primary{font-weight:700}.nav-link-secondary{opacity:.78}.course-access-gate{display:flex;align-items:center;justify-content:center}.course-access-card{max-width:680px;width:min(100%,680px);padding:1.6rem 1.7rem;border-radius:1.1rem;border:1px solid var(--border-subtle);background:var(--bg-surface);box-shadow:var(--shadow-md);text-align:left}.course-access-kicker,.course-module-eyebrow{font-size:.78rem;font-weight:800;letter-spacing:.11em;text-transform:uppercase;color:var(--text-secondary)}.course-module-eyebrow.secondary{color:var(--warning)}.course-access-actions,.course-status-actions{display:flex;flex-wrap:wrap;gap:.75rem;margin-top:1rem}.course-module-copy{margin-top:.45rem;color:var(--text-secondary);line-height:1.5}.course-module-copy.compact{display:-webkit-box;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:2}.course-module-copy.active-module-copy.compact-row{margin:0 0 1rem}.course-module-copy.active-module-copy.compact-row>span{color:var(--text-primary);font-weight:800}.course-module-grid{grid-template-columns:repeat(auto-fit,minmax(260px,1fr))}.course-module-card.secondary,.course-lesson-item.secondary{background:var(--bg-surface-muted);border-style:dashed}.course-module-card.challenge-module{position:relative;overflow:hidden;background:radial-gradient(circle at top right,rgba(255,214,102,.28),transparent 34%),radial-gradient(circle at bottom left,rgba(255,122,89,.2),transparent 36%),linear-gradient(145deg,#1e2d4f,#16213b 45%,#122c47);border-color:#ffb74d61;box-shadow:0 14px 34px #0d1b3733}.course-module-card.challenge-module:before{content:"";position:absolute;inset:0;background:linear-gradient(120deg,rgba(255,255,255,.08),transparent 30%,transparent 70%,rgba(255,255,255,.05));pointer-events:none}.course-module-card.challenge-module:hover{transform:translateY(-2px);box-shadow:0 18px 38px #0d1b373d;border-color:#ffd1667a}.course-module-card.challenge-module .course-module-title,.course-module-card.challenge-module .course-module-copy,.course-module-card.challenge-module .course-module-progress-text{color:#f7fbff}.course-module-eyebrow.challenge{color:#ffd166}.course-module-card.morse-chat-module{position:relative;overflow:hidden;background:linear-gradient(145deg,color-mix(in srgb,var(--bg-surface) 92%,#e0f2fe),color-mix(in srgb,var(--bg-surface) 86%,#dcfce7));border-color:color-mix(in srgb,var(--border-subtle) 62%,#0891b2);box-shadow:0 12px 30px #0891b21f}.course-module-card.morse-chat-module:hover{transform:translateY(-2px);border-color:color-mix(in srgb,var(--border-strong) 60%,#0891b2);box-shadow:0 16px 34px #0891b229}.course-module-eyebrow.morse-chat{color:#0e7490}.course-module-chat-callout{display:flex;align-items:center;justify-content:space-between;gap:.85rem;margin-top:auto;padding:.62rem .7rem;border-radius:var(--radius-md);background:#0e749014;border:1px solid rgba(14,116,144,.14)}.course-module-chat-count{color:#0e7490;font-size:.78rem;font-weight:800;letter-spacing:0;text-transform:uppercase}.course-module-chat-cta{color:var(--text-primary);font-weight:800}.course-module-challenge-callout{display:flex;align-items:center;justify-content:space-between;gap:.85rem;margin-top:auto;padding:.62rem .7rem;border-radius:var(--radius-md);background:#ffffff1a;border:1px solid rgba(255,255,255,.12)}.course-module-challenge-count{color:#ffd166;font-size:.78rem;font-weight:800;letter-spacing:.04em;text-transform:uppercase}.course-module-challenge-cta{color:#f7fbff;font-weight:700}.active-module-copy{margin:0 0 1rem}.app-error-boundary{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:2rem;background:var(--bg-app)}.app-error-card{width:min(100%,520px);padding:1.8rem;border-radius:1.1rem;border:1px solid var(--border-subtle);background:var(--bg-surface);box-shadow:var(--shadow-md)}.app-error-kicker{margin-bottom:.35rem;color:var(--danger);font-size:.8rem;font-weight:800;letter-spacing:.12em;text-transform:uppercase}@media(max-width:600px){.app-notice-banner{margin:.75rem 1rem 0;align-items:flex-start}.course-access-card{padding:1.2rem}.course-access-actions,.course-status-actions{flex-direction:column}.nav-actions{width:100%;justify-content:center;gap:.75rem}.nav-links{width:100%;align-items:center}.nav-links li{flex:1 1 auto;justify-content:center}}.logo,.nav-links li a{color:var(--nav-text)}.nav-links li a:hover{color:var(--nav-link-hover)}.nav-links li button{font:inherit}.theme-toggle-btn{display:inline-flex;align-items:center;gap:.45rem;min-height:36px;padding:.42rem .8rem;border-radius:999px;border:1px solid var(--border-subtle);background:var(--button-secondary-bg);color:var(--text-primary);cursor:pointer;transition:background .2s ease,border-color .2s ease,color .2s ease,transform .2s ease}.theme-toggle-btn:hover{background:var(--button-secondary-hover);border-color:var(--border-strong)}.theme-toggle-icon{font-size:1rem;line-height:1}.theme-toggle-label{font-size:.92rem;font-weight:700}.main-content h1,.main-content-home h1,.course-page h1,.course-page h2,.course-module-title,.course-lesson-title,.course-step-title,.course-runtime-subtitle,.streak-popup-title,.settings-page h2,.settings-modal h2,.modal h2{color:var(--text-primary)}.main-content-copy,.mode-desc,.course-lesson-desc,.course-lesson-why,.course-lesson-mastery,.course-control-current,.course-meta,.course-results-empty,.course-status-banner,.streak-popup-label,.streak-popup-last,.streak-popup-status,.settings-help-text,.settings-info-copy,.signup-modal-copy,.modal p{color:var(--text-secondary)}.get-started-btn,.morse-key-btn,.settings-primary-btn,.profile-menu-logout,.close-settings-btn,.modal-close-btn,.back-btn,.course-actions button,.course-status-retry,.course-touch-key.straight{background:var(--button-primary-bg);color:var(--button-primary-text);box-shadow:var(--shadow-sm)}.get-started-btn:hover,.morse-key-btn:hover,.settings-primary-btn:hover,.profile-menu-logout:hover,.close-settings-btn:hover,.modal-close-btn:hover,.back-btn:hover,.course-actions button:hover:not(:disabled),.course-status-retry:hover,.course-touch-key.straight:active{background:var(--button-primary-hover);color:var(--button-primary-text)}.settings-primary-btn:disabled,.course-actions button:disabled,.settings-danger-btn:disabled,.modal-secondary-btn:disabled{opacity:.55;cursor:not-allowed;box-shadow:none}.homepage-header,.mode-switch,.mode-panel,.transmit-ui,.receive-ui,.main-interface,.course-card,.course-control,.course-results,.course-step-panel,.course-module-card,.course-lesson-item,.course-results-card,.course-runtime-card,.settings-page,.settings-modal,.streak-popup,.profile-menu,.modal,.course-log-grid,.course-choice-button,.course-input textarea,.course-control select,.course-toggle,.course-warning,.course-requirement-item,.settings-info-card{background:var(--bg-surface);color:var(--text-primary);border-color:var(--border-subtle);box-shadow:var(--shadow-md)}.home-course-section,.core-app-layout,.course-page,.main-content-home,.main-content{background:var(--bg-app);color:var(--text-primary)}.mode-switch,.transmit-morse-display,.transmit-tip,.kbd,.course-meta,.course-status-banner,.course-runtime-metrics>div,.course-lesson-status,.course-warning,.course-control-current,.settings-info-card,.streak-popup-metric,.streak-popup-badge,.settings-danger-card,.modal-secondary-btn,.theme-choice-btn,.settings-meter-track{background:var(--bg-surface-muted);border-color:var(--border-subtle);color:var(--text-secondary)}.mode-btn,.profile-icon-btn,.course-choice-button,.course-toggle,.course-touch-key,.receive-input,.keyboard-key,.play-btn,.backspace-btn,.submit-btn,.next-btn,.modal-secondary-btn,.theme-choice-btn,.settings-meter-btn{background:var(--button-secondary-bg);color:var(--button-secondary-text);border-color:var(--border-subtle)}.mode-btn:not(.active):hover,.course-choice-button:hover,.course-toggle:hover,.course-touch-key:hover,.receive-input:focus,.keyboard-key:hover:not(:disabled),.play-btn:hover,.backspace-btn:hover,.submit-btn:hover,.next-btn:hover,.modal-secondary-btn:hover,.theme-choice-btn:hover,.settings-meter-btn:hover{background:var(--button-secondary-hover);color:var(--text-primary)}.mode-btn.active,.theme-choice-btn.active{background:var(--button-primary-bg);color:var(--button-primary-text);border-color:var(--button-primary-bg)}.transmit-letter,.receive-question,.settings-icon,.course-step-marker.current .course-step-dot,.course-step-marker.complete .course-step-dot,.course-module-progress-text b,.course-lesson-progress b,.course-status-banner b,.course-meta b{color:var(--accent)}.transmit-hint-morse,.course-prompt-text,.course-step-status,.course-requirement-item.pending,.streak-popup-kicker{color:var(--text-secondary)}.transmit-feedback.correct,.receive-feedback.correct,.course-results-card.passed,.course-review-chip.healthy,.course-weak-symbol-chip.good{background:var(--success-soft);color:var(--success);border-color:var(--success-border)}.transmit-feedback.incorrect,.receive-feedback.incorrect,.course-results-card.failed,.course-review-chip.overdue,.course-weak-symbol-chip.poor,.settings-danger-card,.settings-error-text{background:var(--danger-soft);color:var(--danger);border-color:var(--danger-border)}.course-review-chip.needs_review,.course-warning,.streak-popup-badge,.streak-icon-btn{background:var(--warning-soft);color:var(--warning);border-color:var(--warning-border)}.course-weak-symbol-chip.unseen{background:var(--bg-chip-neutral);color:var(--text-muted);border-color:var(--border-subtle)}.course-status-banner.info,.adaptive-recommendation,.course-philosophy-banner,.course-choice-button.selected,.course-requirement-item.done{background:var(--info-soft);color:var(--info);border-color:var(--info-border)}.course-module-card,.course-lesson-item,.course-step-panel,.course-results-card,.course-choice-button,.course-log-grid,.course-control,.course-runtime-card,.settings-page,.settings-modal,.modal,.streak-popup,.profile-menu{border:1px solid var(--border-subtle)}.course-timer-pie{background:conic-gradient(var(--accent) calc(var(--progress) * 1turn),var(--bg-surface-muted) 0);box-shadow:inset 0 0 0 6px var(--bg-surface),var(--shadow-sm)}.course-step-pie,.course-module-pie,.course-lesson-pie{box-shadow:inset 0 0 0 4px var(--bg-surface),var(--shadow-sm)}.course-timer-pie-label,.course-module-progress-text,.course-lesson-progress,.course-lesson-mastery,.course-results h2,.course-results-empty,.course-step-panel-title,.course-step-title,.course-control label,.course-toggle-row,.course-toggle,.course-runtime-header,.course-runtime-metrics>div,.course-requirement-item,.settings-row label,.settings-row span,.profile-menu-email,.modal-form-label,.modal-stage-label{color:var(--text-primary)}.slider,.letter-progress-bar,.dot,.progress-box,.settings-meter-track{background:var(--bg-chip-neutral)}.settings-meter-fill{background:var(--success)}.course-step-segment.complete,.progress-box.filled,.switch input:checked+.slider,.letter-progress-half.left,.letter-progress-half.right{background:var(--accent)}.course-input textarea,.course-control select,.course-control input,.settings-row input,.settings-row select,.modal-form-input,.modal-form-textarea,.modal-form-field input,.modal-form-field select{width:100%;padding:.75rem;border-radius:.65rem;border:1px solid var(--input-border);background:var(--bg-input);color:var(--text-primary)}.modal-form-textarea{min-height:10rem;resize:vertical}.modal-backdrop,.settings-modal-overlay{background:var(--bg-overlay)}.profile-menu{position:absolute;right:0;top:40px;min-width:200px;z-index:2000;padding:1rem;border-radius:.85rem}.profile-menu-email{margin-bottom:.75rem;font-weight:500;word-break:break-all}.profile-menu-logout{width:100%;padding:.65rem .85rem;border:none;border-radius:.55rem;font-weight:700;cursor:pointer}.settings-inline-fields{display:flex;gap:1rem;flex-wrap:wrap}.settings-field,.modal-form-field{display:flex;flex-direction:column;gap:.35rem;min-width:200px}.settings-field-compact{min-width:120px}.settings-field-wide{min-width:260px}.settings-action-row,.modal-actions-start{margin-top:.6rem}.settings-help-text,.settings-meter-label,.settings-danger-text,.feedback-success-copy{font-size:.95rem}.settings-meter-btn{border:1px solid var(--border-subtle);border-radius:.6rem;padding:.45rem .85rem;cursor:pointer}.settings-meter-btn.active{background:var(--danger);color:var(--text-inverse);border-color:transparent}.settings-device-card{background:var(--bg-surface-muted);border-color:var(--border-subtle);color:var(--text-primary)}.settings-device-title,.course-touch-label,.my-key-serial-title,.vband-inline-title,.settings-key-tester-stage-header strong,.settings-key-tester-history-row strong,.vband-inline-debug-item strong,.settings-key-tester-output-stream{color:var(--text-primary)}.settings-device-copy,.settings-key-tester-stage,.settings-key-tester-stage-header span,.settings-key-tester-history-row,.vband-inline-copy,.my-key-serial-copy{color:var(--text-secondary)}.settings-device-status,.my-key-serial-signal,.vband-inline-signal{background:var(--bg-chip-neutral);color:var(--text-secondary)}.settings-device-status.connected{background:var(--success-soft);color:var(--success)}.settings-key-tester-stage{border-color:var(--border-strong);background:var(--bg-surface)}.settings-key-tester-stage:hover{border-color:var(--focus-ring-color);background:var(--bg-elevated)}.settings-key-tester-stage.active{border-color:var(--focus-ring-color);background:var(--info-soft);box-shadow:var(--focus-ring)}.settings-key-tester-output,.settings-key-tester-output-stream,.settings-key-tester-history-row,.vband-inline-hint,.my-key-serial-panel{background:var(--bg-surface);border-color:var(--border-subtle)}.settings-key-tester-output-stream{background:var(--bg-surface-strong)}.settings-key-tester-history-list{color:var(--text-secondary)}.my-key-serial-panel.connected{background:var(--success-soft);border-color:var(--success-border)}.my-key-serial-debug,.vband-inline-copy.subtle,.vband-inline-debug-item span{color:var(--text-muted)}.my-key-serial-signal.active,.vband-inline-signal.active{background:var(--accent);color:var(--button-primary-text)}.vband-inline-debug-item{background:var(--bg-surface-muted);border-color:var(--border-subtle)}.settings-meter-block{margin-top:.5rem}.settings-meter-label{margin-bottom:.3rem;color:var(--text-secondary)}.settings-meter-track{width:240px;height:10px;border-radius:6px;overflow:hidden}.settings-meter-fill{height:100%;border-radius:6px}.settings-error-text{margin-top:.35rem;font-size:.9rem}.settings-status-banner{width:100%;border:1px solid var(--border-subtle);border-radius:.8rem;padding:.8rem 1rem;margin:0 0 1.5rem;font-size:.95rem;font-weight:600}.settings-status-banner.success{background:var(--success-soft);color:var(--success);border-color:var(--success-border)}.settings-status-banner.error{background:var(--danger-soft);color:var(--danger);border-color:var(--danger-border)}.settings-footer-actions{width:100%;display:flex;justify-content:flex-end;gap:.75rem;margin:0 0 1.5rem}.settings-info-card{text-align:center;padding:1rem;border-radius:.8rem;border:1px solid var(--border-subtle)}.settings-primary-btn{border:none;border-radius:.65rem;padding:.65rem 1rem;font-size:.95rem;font-weight:700;cursor:pointer}.theme-choice-group{display:inline-flex;gap:.5rem;flex-wrap:wrap}.theme-choice-btn{padding:.55rem .9rem;border-radius:999px;border:1px solid var(--border-subtle);cursor:pointer;font-weight:700}.modal-wide{max-width:520px;width:90%}.signup-modal-content{min-width:320px;width:min(92vw,520px);max-width:520px;position:relative;text-align:left;padding-top:2.3rem}.modal-x-btn{position:absolute;top:8px;right:8px;background:transparent;color:var(--text-secondary);border:none;font-size:1.7rem;cursor:pointer}.modal-x-btn:hover,.modal-x-btn:focus-visible{color:var(--text-primary);background:var(--button-ghost-hover)}.signup-modal-copy{margin-top:0;line-height:1.6}.signup-modal-form,.signup-modal-stack{display:flex;flex-direction:column;gap:.85rem}.experienced-setup-modal{width:min(92vw,560px);max-width:560px}.experienced-setup-stack{display:grid;gap:1rem}.experienced-setup-modal .challenge-actions{display:grid;grid-template-columns:repeat(auto-fit,minmax(12rem,1fr));align-items:stretch}.start-setup-modal{width:min(94vw,640px)}.start-setup-path-group{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.start-setup-defaults{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:.4rem;padding:.85rem;border:1px solid var(--border-subtle);border-radius:var(--radius-md);background:var(--bg-surface-subtle)}.start-setup-defaults strong{display:block;margin-top:.25rem;color:var(--text-primary)}.start-setup-defaults p{grid-column:1 / -1;margin:0;color:var(--text-secondary)}.start-setup-defaults-edit{min-height:var(--control-height-compact);padding-inline:1rem;white-space:nowrap}.course-module-card.secondary .course-module-title,.course-lesson-item.secondary .course-lesson-title{color:var(--text-primary)}.course-module-card.secondary .course-module-copy,.course-lesson-item.secondary .course-lesson-desc,.course-lesson-item.secondary .course-lesson-why{color:var(--text-secondary)}.course-module-card.challenge-module .course-module-copy{color:#f7fbffe0}.course-meta,.course-status-banner{line-height:1.55}.course-status-banner>div:first-child{flex:1 1 auto}.course-runtime-metrics{display:flex;flex-wrap:wrap;gap:.75rem}.course-runtime-metrics>div{min-width:9.5rem}.course-lesson-title-row{align-items:flex-start}.course-lesson-progress{min-width:6.5rem}.modal-form-row{margin-bottom:1rem}.modal-form-label{display:block;margin-bottom:.5rem;font-weight:600}.modal-actions{display:flex;gap:1rem;justify-content:flex-end}.modal-secondary-btn{padding:.75rem 1.25rem;border-radius:.65rem;border:1px solid var(--border-subtle);cursor:pointer;font-size:1rem}@media(max-width:600px){.theme-toggle-btn,.create-account-link,.settings-icon,.profile-icon-btn,.streak-icon-btn{min-height:40px}.course-page{margin:1.1rem auto 2rem}.course-step-panel{max-height:none}.course-step-item{align-items:flex-start}.course-step-marker{padding-top:.1rem}.signup-modal-content{width:min(95vw,520px);padding-top:2.5rem}.modal-actions,.course-status-actions{width:100%;flex-direction:column}.course-runtime-header{gap:.75rem}.course-runtime-metrics>div{min-width:100%}.course-results-card,.course-status-banner,.course-card,.course-module-card,.course-lesson-item{padding-left:1rem;padding-right:1rem}.course-lesson-title-row{align-items:flex-start}.course-lesson-progress{align-self:stretch;min-width:0}.settings-inline-fields,.settings-footer-actions{flex-direction:column}}.feedback-success-state{text-align:center;padding:2rem}.feedback-success-icon{font-size:3rem;margin-bottom:1rem}.feedback-success-copy{color:var(--success);font-size:1.1rem;margin:0}.main-content-copy{max-width:520px;text-align:center;color:var(--text-secondary);margin-bottom:1.5rem}.profile-icon-btn{background:var(--bg-surface-muted);color:var(--text-secondary)}.settings-icon{color:var(--accent);background:transparent;border:none;border-radius:.6rem;padding:.2rem}.streak-icon-btn{box-shadow:none}.streak-icon-btn.active .streak-icon-count,.streak-icon-count,.streak-icon-glyph,.streak-icon-btn.active .streak-icon-glyph,.streak-popup-kicker{color:var(--warning)}.streak-popup-badge.active{background:var(--button-primary-bg);border-color:transparent;color:var(--button-primary-text)}.settings-danger-card{background:color-mix(in srgb,var(--danger-soft) 72%,var(--bg-surface));border-color:var(--danger-border)}.settings-danger-text{color:var(--text-secondary)}.settings-danger-btn{justify-self:start;border:none;background:var(--button-destructive-bg);color:var(--button-destructive-text);border-radius:.6rem;padding:.5rem 1rem;font-weight:600;cursor:pointer}.settings-danger-btn:hover:not(:disabled){background:var(--button-destructive-hover)}.sbui-modal-close,.sbui-modal__close,.supabase-auth-ui .sbui-btn-container,button[aria-label=Close]{color:var(--info)!important;background:transparent!important}.sbui-modal-close:hover,.sbui-modal__close:hover,.supabase-auth-ui .sbui-btn-container:hover,button[aria-label=Close]:hover{color:var(--text-primary)!important;background:var(--info-soft)!important}.homepage-header{background:var(--nav-bg);box-shadow:var(--shadow-sm)}.course-card:not(.course-card-cw-games),.course-results,.course-module-card,.course-lesson-item,.course-control,.course-step-panel,.course-status-banner,.course-results-card,.cw-proficiency-card,.settings-device-card,.settings-info-card,.settings-danger-card,.settings-key-tester-stage,.settings-key-tester-output,.challenge-stage-card,.challenge-shell-card,.challenge-shell-sidebar-panel,.activity-card,.play-friends-command,.play-friends-mode-panel,.play-friends-browser,.play-friends-disclosure,.play-friends-room-row,.play-friends-choice-card,.play-friends-identity-card,.morse-chat-audio-gate,.morse-chat-receive-panel,.morse-chat-composer,.morse-chat-timeline,.morse-chat-on-air,.morse-chat-roster,.morse-chat-setup-panel{border-radius:var(--radius-md);border-color:var(--border-subtle);background:var(--bg-surface);color:var(--text-primary);box-shadow:var(--surface-shadow)}.course-module-card,.course-lesson-item,.play-friends-room-row,.play-friends-mode-card,.activity-card,.challenge-stage-card{box-shadow:none}.get-started-btn,.home-secondary-btn,.settings-primary-btn,.settings-secondary-btn,.settings-meter-btn,.settings-danger-btn,.modal-close-btn,.modal-secondary-btn,.challenge-primary-btn,.challenge-secondary-btn,.course-actions button,.course-status-retry,.course-back-btn,.theme-choice-btn,.theme-toggle-btn,.create-account-link,.profile-icon-btn,.streak-icon-btn,.settings-icon,.play-friends-chip,.play-friends-choice-card,.morse-chat-room-actions button,.morse-chat-audio-actions button,.morse-chat-message-actions button,.morse-chat-roster-actions button,.morse-chat-setup-actions button,.challenge-hub-launch-actions .challenge-primary-btn,.challenge-hub-launch-actions .challenge-secondary-btn,.challenge-hub-lane-card-actions .challenge-primary-btn,.challenge-hub-lane-card-actions .challenge-secondary-btn,.challenge-hub-primary-actions>button,.play-friends-primary-actions>button{min-height:var(--control-height);border-radius:var(--radius-md);font-size:var(--text-base)}.profile-icon-btn,.streak-icon-btn,.settings-icon,.modal-x-btn,.challenge-secondary-btn.compact{min-height:var(--control-height-compact);min-width:var(--control-height-compact)}.homepage-header.app-topbar .theme-toggle-btn{width:var(--control-height-compact);min-width:var(--control-height-compact);min-height:var(--control-height-compact);justify-content:center;gap:0;padding:0;border:0;border-radius:50%;background:transparent;box-shadow:none}.homepage-header.app-topbar .theme-toggle-btn:hover,.homepage-header.app-topbar .theme-toggle-btn:focus-visible{background:color-mix(in srgb,var(--bg-surface-muted) 72%,transparent)}.homepage-header.app-topbar .theme-toggle-icon{font-size:1.18rem}.course-page h1,.challenge-hub-title-block h2,.morse-chat-hero-copy h1{color:var(--text-primary);font-size:clamp(var(--text-2xl),3vw,var(--text-3xl));line-height:1.08;letter-spacing:0}.course-module-title,.course-lesson-title,.settings-device-title,.challenge-hub-lane-card-title,.play-friends-mode-card b,.play-friends-room-main b,.morse-chat-section-head h3{color:var(--text-primary);font-size:var(--text-md);line-height:1.2}.course-module-copy,.course-module-progress-text,.course-lesson-desc,.course-lesson-why,.settings-device-copy,.challenge-hub-featured-lead,.challenge-hub-featured-support,.challenge-hub-lane-card-support,.play-friends-room-main span,.morse-chat-hero-copy p,.morse-chat-receive-copy,.morse-chat-message-meta,.modal p{color:var(--text-secondary);font-size:var(--text-base);line-height:1.55}.challenge-badge,.challenge-stage-chip,.course-review-chip,.course-weak-symbol-chip,.settings-device-status,.my-key-serial-signal,.vband-inline-signal,.play-friends-fit-label,.play-friends-room-meta span,.morse-chat-meta-bar span,.morse-chat-kicker,.course-module-eyebrow,.my-key-serial-title,.vband-inline-title,.modal-stage-label{min-height:1.9rem;padding:.28rem .58rem;border-radius:var(--radius-pill);font-size:var(--text-xs);letter-spacing:0;text-transform:none}.morse-chat-meta-bar .morse-chat-status-pill{min-height:1.45rem;padding:.1rem .42rem;gap:.24rem;font-size:.74rem;line-height:1.05}.morse-chat-meta-bar>div>span,.morse-chat-meta-bar .morse-chat-kicker{min-height:0;padding:0;border-radius:0;font-size:.68rem;line-height:1.05;opacity:.9;text-transform:none}.morse-chat-meta-bar>div>b{color:var(--text-primary);font-size:.96rem;font-weight:850;line-height:1.08;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.morse-chat-meta-bar .morse-chat-status-light{width:.64rem;height:.64rem}.morse-chat-meta-bar .morse-chat-status-light>span{width:.5rem;height:.5rem;min-height:0;padding:0;border:0;border-radius:999px;font-size:0;line-height:1}.morse-chat-meta-bar .morse-chat-roster-row{flex:0 0 auto;height:1.85rem;max-width:min(100%,10.5rem);gap:.35rem;border-radius:var(--radius-md);padding:0 .4rem}.morse-chat-meta-bar .morse-chat-roster-row b,.morse-chat-meta-bar .morse-chat-roster-row>span:not(.morse-chat-status-light){min-height:0;padding:0;border:0;border-radius:0;font-size:.76rem;line-height:1.1}.morse-chat-meta-bar .morse-chat-roster-row>span:not(.morse-chat-status-light){border:1px solid var(--border-subtle);border-radius:var(--radius-pill);padding:.08rem .32rem;background:color-mix(in srgb,var(--bg-surface-muted) 70%,transparent);font-size:.66rem}.morse-chat-meta-bar .morse-chat-roster.compact{align-content:start;grid-template-rows:auto minmax(0,1.95rem)}.morse-chat-meta-bar .morse-chat-roster-list{display:flex;flex-wrap:nowrap;align-items:center;min-height:1.95rem;max-height:1.95rem;overflow-x:auto;overflow-y:hidden;scrollbar-width:none}.morse-chat-meta-bar .morse-chat-roster-list::-webkit-scrollbar{display:none}.morse-chat-meta-bar .morse-chat-roster-more{flex:0 0 auto;height:1.85rem;min-height:0;padding:0 .45rem}.morse-chat-meta-bar .morse-chat-composer.compact{align-content:start;gap:.22rem;grid-template-columns:minmax(0,1fr) auto;align-items:center}.morse-chat-meta-bar .morse-chat-composer.compact .morse-chat-section-head,.morse-chat-meta-bar .morse-chat-composer.compact .morse-chat-transmit-meter,.morse-chat-meta-bar .morse-chat-composer.compact .course-status-banner,.morse-chat-meta-bar .morse-chat-composer.compact .morse-chat-action-row{grid-column:1 / -1}.morse-chat-meta-bar .morse-chat-keyer-line{min-width:0;overflow:hidden;color:var(--text-muted);font-weight:800;line-height:1.15;text-overflow:ellipsis;white-space:nowrap}.morse-chat-meta-bar .morse-chat-transmitter-summary{justify-self:end;min-height:0}.morse-chat-meta-bar .morse-chat-transmitter-summary span{max-width:100%;min-height:1.45rem;padding:.1rem .42rem;font-size:.72rem;line-height:1.05}.morse-chat-meta-bar .morse-chat-transmit-meter{min-height:1.45rem;padding:.14rem .42rem;font-size:.7rem}.morse-chat-meta-bar .morse-chat-transmit-meter.idle{display:none}.morse-chat-meta-bar .morse-chat-action-row{gap:.3rem;margin-top:.08rem}.morse-chat-meta-bar .morse-chat-action-row .challenge-primary-btn,.morse-chat-meta-bar .morse-chat-action-row .challenge-secondary-btn{min-height:1.75rem;padding:.2rem .5rem;border-radius:var(--radius-md);font-size:.74rem;line-height:1}.morse-chat-meta-bar .morse-chat-on-air{gap:.24rem}.morse-chat-meta-bar .morse-chat-on-air-list{flex-wrap:nowrap;align-items:center;min-height:1.95rem;max-height:1.95rem;overflow-x:auto;overflow-y:hidden;scrollbar-width:none}.morse-chat-meta-bar .morse-chat-on-air-list::-webkit-scrollbar{display:none}.morse-chat-meta-bar .morse-chat-on-air-chip{flex:0 0 auto;max-width:min(100%,11.5rem);min-height:1.85rem;gap:.35rem;padding:.18rem .45rem}.morse-chat-meta-bar .morse-chat-on-air-chip b{font-size:.78rem;line-height:1.05}.morse-chat-meta-bar .morse-chat-on-air-chip span,.morse-chat-meta-bar .morse-chat-on-air-empty{min-height:0;padding:0;border-radius:0;font-size:.68rem;line-height:1.05}.morse-chat-meta-bar .morse-chat-on-air-chip .challenge-secondary-btn.compact{min-height:1.45rem;min-width:0;padding:.12rem .36rem;font-size:.66rem;line-height:1}@media(max-width:720px){.get-started-btn,.home-secondary-btn,.settings-primary-btn,.settings-secondary-btn,.modal-close-btn,.modal-secondary-btn,.challenge-primary-btn,.challenge-secondary-btn,.course-actions button,.course-status-retry,.course-back-btn{min-height:var(--control-height-large)}}.mobile-nav-current{display:none}.nav-link-active,.nav-links li a.nav-link-active:hover,.nav-icon-active{background:transparent;color:var(--nav-text, #fff)}.nav-links li a.nav-link-active{opacity:1;color:var(--nav-text, #fff)}.nav-links li a.nav-link-active:after{content:"";position:absolute;right:0;bottom:-.42rem;left:0;height:2px;border-radius:var(--radius-pill);background:var(--button-primary-bg)}@media(max-width:720px){.homepage-header{position:sticky;top:0;z-index:900;padding:calc(env(safe-area-inset-top,0px) + .42rem) 0 .46rem;border-bottom:1px solid var(--border-subtle);box-shadow:var(--shadow-sm)}.nav-bar{max-width:none;min-height:44px;padding:0 .75rem;flex-direction:row!important;flex-wrap:wrap;align-items:center;justify-content:flex-start;gap:.42rem}.logo{max-width:9.8rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:1rem;line-height:1;letter-spacing:.02em}.mobile-nav-current{display:inline-flex;align-items:center;min-height:32px;max-width:8.8rem;padding:.22rem .58rem;border:1px solid var(--border-subtle);border-radius:var(--radius-pill);background:var(--button-secondary-bg);color:var(--text-primary);font-size:.82rem;font-weight:800;line-height:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.nav-spacer{flex:1 1 0!important;min-width:0}.nav-actions{display:contents}.nav-links{order:3;width:100%!important;display:flex;flex:0 0 100%;flex-wrap:nowrap!important;align-items:center;justify-content:flex-start!important;gap:.38rem!important;max-width:100%;margin-top:.1rem;padding:.08rem 0 .02rem;overflow-x:auto;overflow-y:hidden;scrollbar-width:none;-webkit-overflow-scrolling:touch}.nav-links::-webkit-scrollbar{display:none}.nav-links li{flex:0 0 auto!important;justify-content:flex-start!important}.nav-links li a,.theme-toggle-btn{min-height:36px;border:1px solid var(--border-subtle);border-radius:var(--radius-pill);background:var(--button-secondary-bg);color:var(--text-primary);font-size:.84rem;font-weight:800;line-height:1;white-space:nowrap}.nav-links li a{padding:.4rem .68rem}.nav-links li a.nav-link-active{border-color:color-mix(in srgb,var(--button-primary-bg) 54%,var(--border-subtle));background:color-mix(in srgb,var(--button-primary-bg) 8%,var(--button-secondary-bg));color:var(--text-primary)}.nav-links li a.nav-link-active:after{right:.65rem;bottom:.28rem;left:.65rem;height:2px}.theme-toggle-btn{width:38px;min-width:38px;padding:0;justify-content:center;gap:0}.theme-toggle-label{display:none}.profile-icon-btn,.streak-icon-btn,.settings-icon{min-width:38px;min-height:38px;padding:0}.settings-icon svg{width:22px;height:22px}.settings-icon{order:2}.streak-icon-btn{gap:.22rem;padding-inline:.42rem}.streak-icon-count{font-size:.88rem}.profile-menu,.streak-popup{top:calc(100% + .45rem);right:0}}@media(max-width:430px){.logo{max-width:8.2rem}.mobile-nav-current{max-width:7.4rem}.nav-links li a{padding-inline:.58rem}}@media(max-width:720px){.homepage-header.app-topbar{min-height:var(--app-topbar-height);padding:env(safe-area-inset-top,0px) 0 0}.homepage-header.app-topbar .nav-bar{min-height:56px;max-width:none;padding:0 .75rem;flex-direction:row!important;flex-wrap:nowrap!important;align-items:center;justify-content:flex-start;gap:.42rem}.homepage-header.app-topbar .app-topbar-actions{display:flex;align-items:center;justify-content:flex-end;flex:0 0 auto;gap:.35rem;min-width:0}.homepage-header.app-topbar .theme-toggle-btn{width:38px;min-width:38px;min-height:38px;padding:0;justify-content:center;gap:0}.homepage-header.app-topbar .theme-toggle-label{display:none}.homepage-header.app-topbar .profile-icon-btn,.homepage-header.app-topbar .streak-icon-btn{min-width:38px;min-height:38px}.app-sidebar-toggle{width:40px;min-width:40px;height:40px;top:calc(var(--app-topbar-height) + .7rem);left:.7rem}.app-sidebar-open.app-sidebar-narrow .app-sidebar-toggle{left:calc(min(84vw,19rem) - 3.25rem)}.homepage-header.app-topbar .app-topbar-account-link{max-width:5rem;min-height:38px;padding-inline:.62rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.homepage-header.app-topbar .profile-menu,.homepage-header.app-topbar .streak-popup{top:calc(100% + .45rem);right:0}}@media(max-width:430px){.homepage-header.app-topbar .logo{max-width:7.2rem}.homepage-header.app-topbar .mobile-nav-current{max-width:6.8rem}}.settings-page{align-items:stretch;width:min(920px,calc(100vw - 2rem));max-width:920px;margin-top:1.5rem;padding:clamp(1rem,2vw,1.4rem);gap:1rem;border-radius:var(--radius-modal);text-align:left}.settings-page-header{display:flex;align-items:flex-end;justify-content:space-between;gap:1rem;padding-inline:.1rem}.settings-page h2{margin:0;color:var(--text-primary);font-size:var(--text-2xl);line-height:1.1;text-align:left}.settings-page-kicker,.settings-section-kicker{display:block;color:var(--text-muted);font-size:var(--text-xs);font-weight:850;letter-spacing:.08em;line-height:1.2;text-transform:uppercase}.settings-main-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.85rem}.settings-section{width:auto;margin:0;padding:.85rem;gap:.75rem;border-radius:var(--radius-md);border-color:var(--border-subtle);background:color-mix(in srgb,var(--bg-surface) 92%,var(--bg-surface-muted));box-shadow:none}.settings-section-pace{grid-column:1 / -1}.settings-section-header{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem}.settings-section-header h3{margin:.18rem 0 0;color:var(--text-primary);font-size:var(--text-lg);line-height:1.18}.settings-section-summary{max-width:20rem;color:var(--text-secondary);font-size:var(--text-sm);font-weight:750;line-height:1.35;text-align:right;white-space:nowrap}.settings-row{margin:0;gap:.55rem}.settings-row label{color:var(--text-primary);font-size:var(--text-sm);font-weight:750}.settings-help-text{color:var(--text-secondary);font-size:var(--text-sm);line-height:1.35}.settings-segmented{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.45rem}.settings-segmented .theme-choice-btn{min-height:var(--control-height-compact);padding:.45rem .65rem;font-size:var(--text-sm);white-space:nowrap}.settings-custom-pace-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.85rem}.settings-inline-fields{display:grid;grid-template-columns:minmax(0,1fr) minmax(5.5rem,.42fr);gap:.65rem}.settings-field,.modal-form-field{min-width:0}.settings-field input,.settings-field select{min-width:0;width:100%}.settings-meter-block{margin:0;min-width:0}.settings-meter-track{width:100%;max-width:16rem;background:var(--bg-surface-muted)}.settings-section-keyer .keying-setup-card{min-height:0;padding:.78rem;gap:.8rem;border-radius:var(--radius-md);box-shadow:none}.settings-section-keyer .keying-setup-card h2{font-size:var(--text-lg);line-height:1.18}.settings-section-keyer .keying-setup-card p{margin-top:.18rem;font-size:var(--text-sm);line-height:1.35}.settings-section-keyer .keying-setup-status{margin-top:.35rem;font-size:var(--text-sm)}.settings-section-keyer .keying-setup-actions>button{min-height:var(--control-height-compact);padding-inline:.9rem;font-size:var(--text-sm)}.settings-footer-actions{margin:0;padding-top:.2rem}.settings-utility-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:.85rem}.settings-utility-grid.single{grid-template-columns:minmax(0,1fr)}.settings-info-card,.settings-danger-card{display:flex;align-items:center;justify-content:space-between;gap:1rem;min-width:0;padding:.85rem;border-radius:var(--radius-md);box-shadow:none;text-align:left}.settings-info-copy,.settings-danger-text{margin:.15rem 0 0;font-size:var(--text-sm);line-height:1.35}.settings-utility-title,.settings-danger-title{color:var(--text-primary);font-size:var(--text-base);font-weight:850;line-height:1.2}.settings-danger-title{color:var(--danger)}.settings-info-card .settings-primary-btn,.settings-danger-card .settings-danger-btn{flex:0 0 auto;min-height:var(--control-height-compact);padding-inline:.9rem;white-space:nowrap}@media(max-width:820px){.settings-main-grid,.settings-utility-grid,.settings-custom-pace-grid{grid-template-columns:1fr}.settings-section-summary{max-width:none;text-align:left;white-space:normal}.settings-section-header,.settings-info-card,.settings-danger-card{align-items:stretch;flex-direction:column}.settings-segmented{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:520px){.settings-page{width:min(100%,calc(100vw - 1rem));padding:.8rem}.settings-inline-fields,.settings-segmented{grid-template-columns:1fr}}.sidebar-levels{width:220px;background:#181818;color:#fff;padding:2rem 1rem 2rem 1.5rem;height:100vh;box-shadow:2px 0 12px #0000000a;display:flex;flex-direction:column;align-items:flex-start;overflow-y:auto;position:relative}.sidebar-title{font-size:1.2rem;font-weight:700;margin-bottom:1.5rem;letter-spacing:1px;color:#e53935}.sidebar-level-list{list-style:none;padding:0;margin:0;width:100%}.sidebar-level-item{width:100%;padding:.75rem 1rem;margin-bottom:.5rem;border-radius:.75rem;cursor:pointer;background:transparent;color:#fff;display:flex;flex-direction:column;border:2px solid transparent;transition:background .2s,border .2s,color .2s;position:relative;text-align:left;font:inherit}.sidebar-level-item:focus-visible{outline:2px solid #1d4ed8;outline-offset:2px}.sidebar-level-item.active{background:#fff;color:#e53935;border:2px solid #e53935;font-weight:700}.sidebar-level-item.complete .sidebar-level-label{color:#388e3c}.sidebar-level-item:hover:not(.active){background:#222;color:#e53935}.sidebar-level-label{font-size:1rem;font-weight:600;margin-bottom:.25rem}.sidebar-level-chars{font-size:.95rem;color:#bbb;letter-spacing:1px}.sidebar-level-check{position:absolute;right:1rem;top:1rem;color:#388e3c;font-size:1.2rem;font-weight:700}.sidebar-char{display:flex;align-items:center;margin-right:.5em;font-size:1.1em;color:#bbb;font-weight:600;transition:color .2s}.sidebar-char.char-complete{color:#388e3c;font-weight:700}.total-progress-container{width:100%;margin-bottom:1.5rem;display:flex;flex-direction:column;align-items:flex-start}.total-progress-label{font-size:1rem;font-weight:600;margin-bottom:.5rem;color:#e53935;letter-spacing:.5px}.total-progress-bar-bg{width:100%;height:16px;background:#292929;border-radius:8px;overflow:hidden;margin-bottom:.5rem;box-shadow:0 1px 4px #00000014}.total-progress-bar-fill{height:100%;background:linear-gradient(90deg,#e53935,#ffb300);border-radius:8px 0 0 8px;transition:width .5s cubic-bezier(.4,0,.2,1)}.total-progress-percent{font-size:.95rem;color:#bbb;font-weight:500;margin-left:2px}.letter-progress-bar{display:inline-block;vertical-align:middle;width:22px;height:7px;margin:0 .15em;background:#eee;border-radius:4px;overflow:hidden;position:relative}.letter-progress-half{display:inline-block;height:100%;position:absolute;top:0;transition:width .3s}.letter-progress-half.left{left:0;background:#e53935;border-radius:4px 0 0 4px;z-index:1}.letter-progress-half.right{right:0;background:#ffb300;border-radius:0 4px 4px 0;z-index:1}.letter-progress-dots{display:inline-flex;align-items:center;gap:.18em;font-size:.68em;margin-left:.18em;vertical-align:middle}.mode-indicator{font-weight:700;margin:0 .08em 0 .22em;color:#888;font-size:.92em}.dot{display:inline-block;width:.65em;height:.65em;border-radius:50%;background:#eee;color:#bbb;text-align:center;line-height:.65em;font-size:1em;margin:0 .04em;transition:background .2s,color .2s}.dot.filled{background:#43a047;color:#fff}.letter-progress-checks{display:inline-flex;align-items:center;gap:.08em;font-size:.72em;margin-left:.12em;vertical-align:middle}.check{font-size:1em;margin:0 .01em;vertical-align:middle;opacity:.85}.letter-progress-boxes{display:inline-flex;align-items:center;gap:.08em;font-size:.72em;margin-left:.12em;vertical-align:middle}.letter-label{font-size:1.25em;font-weight:800;color:#222;letter-spacing:1px;margin-right:.18em;vertical-align:middle;transition:color .2s,background .2s}.sidebar-level-item:not(.active) .letter-label,.sidebar-char .letter-label{color:#fff;background:#222;border-radius:.22em;padding:.04em .22em;font-weight:800}.progress-box{display:inline-flex;align-items:center;justify-content:center;width:1.1em;height:1.1em;border-radius:.18em;background:#eee;color:#bbb;font-size:.92em;font-weight:500;margin:0 .03em;border:1.5px solid #ddd;box-sizing:border-box;transition:background .2s,color .2s;letter-spacing:0}.progress-box.filled{background:#43a047;color:#fff;border-color:#43a047;font-weight:700}.letter-score-bar-wrapper{display:flex;align-items:center;min-width:54px;position:relative;margin:0 .08em}.letter-score-bar-bg{width:48px;height:7px;background:#e6f4ea;border-radius:4px;overflow:hidden;position:relative;margin-right:2px;margin-left:2px;display:inline-block}.letter-score-bar-bg.mode-transmit{background:#e6f4ea}.letter-score-bar-bg.mode-receive{background:#e3f0fa}.letter-score-bar-fill{height:100%;background:linear-gradient(90deg,#43a047,#4fc3f7);border-radius:4px 0 0 4px;transition:width .3s cubic-bezier(.4,0,.2,1);position:absolute;left:0;top:0;z-index:1}.letter-score-bar-threshold{position:absolute;top:0;bottom:0;width:1px;background:#000;opacity:.7;z-index:2}.letter-score-check{display:none}.letter-score-bars-vertical{display:flex;flex-direction:column;gap:2px;margin-left:.4em;margin-right:.1em;align-items:flex-start}.letter-score-bar-fill.blue{background:#4fc3f7}.letter-score-bar-fill.green{background:#43a047}@media(max-width:600px){.sidebar-levels{display:none}.mobile-progress-nav{display:flex;position:fixed;bottom:0;left:0;width:100vw;background:#181818;color:#fff;z-index:1000;align-items:center;justify-content:space-between;padding:.5rem;box-shadow:0 -2px 12px #0000001f;min-height:64px}.mobile-progress-left{flex:1 1 50%;display:flex;align-items:center;justify-content:flex-start;padding-left:.7rem}.mobile-progress-right{flex:1 1 50%;display:flex;align-items:center;justify-content:flex-end;padding-right:.7rem;gap:.5rem}.mobile-level-switcher{background:#292929;color:#e53935;border:none;border-radius:8px;padding:.5rem 1rem;font-size:1rem;font-weight:600;cursor:pointer;min-width:80px;min-height:44px;box-shadow:0 1px 4px #00000014}.mobile-level-switcher:focus-visible{outline:2px solid #1d4ed8;outline-offset:2px}.mobile-level-chars-inline{display:flex;gap:.3rem;margin-right:.5rem}.mobile-level-char-inline{display:inline-block;min-width:28px;min-height:32px;font-size:1.1em;color:#bbb;font-weight:600;background:none;border:none;border-radius:6px;text-align:center;line-height:32px;padding:0 .15em;transition:color .2s,background .2s}.mobile-level-char-inline.char-complete{color:#388e3c;font-weight:700}.mobile-level-modal-backdrop{position:fixed;top:0;left:0;width:100vw;height:100vh;background:#00000080;z-index:2000;display:flex;align-items:flex-end;justify-content:center}.mobile-level-modal{background:#222;width:100vw;max-height:80vh;border-radius:18px 18px 0 0;box-shadow:0 -2px 16px #0000002e;padding:1.2rem .5rem 2rem;overflow-y:auto;position:relative;display:flex;flex-direction:column;align-items:stretch}.mobile-level-modal-header{display:flex;align-items:center;justify-content:space-between;font-size:1.2rem;font-weight:700;color:#fff;margin-bottom:1rem;padding:0 .5rem}.mobile-level-modal-close{background:none;border:none;color:#fff;font-size:2rem;cursor:pointer;margin-left:1rem;line-height:1}.mobile-level-modal-close:focus-visible{outline:2px solid #1d4ed8;outline-offset:2px;border-radius:.3rem}.mobile-level-modal-list{list-style:none;padding:0;margin:0;width:100%}.mobile-level-modal-item{width:100%;padding:.7rem 1rem;margin-bottom:.5rem;border-radius:.75rem;cursor:pointer;background:transparent;color:#fff;display:flex;flex-direction:column;border:2px solid transparent;transition:background .2s,border .2s,color .2s;position:relative;text-align:left;font:inherit}.mobile-level-modal-item:focus-visible{outline:2px solid #1d4ed8;outline-offset:2px}.mobile-level-modal-item.active{background:#fff;color:#e53935;border:2px solid #e53935;font-weight:700}.mobile-level-modal-label{font-size:1rem;font-weight:600;margin-bottom:.25rem}.mobile-level-modal-chars{font-size:.95rem;color:#bbb;letter-spacing:1px}.mobile-level-modal-char{display:inline-block;margin-right:.5em;font-size:1.1em;color:#bbb;font-weight:600;transition:color .2s}.mobile-level-modal-char.char-complete{color:#388e3c;font-weight:700}.mobile-progress-bar{display:flex;flex-direction:column;align-items:flex-start;min-width:60px;font-size:.95rem}.mobile-progress-label{color:#e53935;font-weight:600;margin-bottom:2px;font-size:.95rem}.mobile-progress-bar-bg{width:60px;height:8px;background:#292929;border-radius:4px;overflow:hidden;margin-bottom:.5rem;box-shadow:0 1px 4px #00000014}.mobile-progress-bar-fill{height:100%;background:linear-gradient(90deg,#e53935,#ffb300);border-radius:4px 0 0 4px;transition:width .5s cubic-bezier(.4,0,.2,1)}}.sidebar-levels{background:var(--bg-surface-strong);color:var(--text-primary);box-shadow:var(--shadow-sm)}.sidebar-level-item:focus-visible,.mobile-level-switcher:focus-visible,.mobile-level-modal-item:focus-visible,.mobile-level-modal-close:focus-visible{outline:2px solid var(--focus-ring-color);outline-offset:2px}.sidebar-title,.total-progress-label,.mobile-progress-label{color:var(--accent)}.sidebar-level-item{color:var(--text-primary)}.sidebar-level-item.active{background:var(--bg-surface);color:var(--accent);border-color:var(--accent)}.sidebar-level-item:hover:not(.active),.mobile-level-switcher,.mobile-level-modal-item:hover:not(.active){color:var(--accent)}.sidebar-level-item.complete .sidebar-level-label,.sidebar-level-check,.sidebar-char.char-complete,.dot.filled,.progress-box.filled,.letter-score-bar-fill.green,.mobile-level-modal-char.char-complete{color:var(--success)}.sidebar-level-item:hover:not(.active),.sidebar-level-item:not(.active) .letter-label,.letter-label,.mobile-level-modal,.mobile-level-switcher,.mobile-progress-nav{background:var(--bg-surface-muted)}.sidebar-level-chars,.sidebar-char,.total-progress-percent,.mode-indicator,.progress-box,.dot,.mobile-level-modal-char{color:var(--text-muted)}.total-progress-bar-bg,.mobile-progress-bar-bg,.letter-score-bar-bg.mode-transmit,.letter-score-bar-bg.mode-receive{background:var(--bg-chip-neutral);box-shadow:none}.total-progress-bar-fill,.mobile-progress-bar-fill,.letter-score-bar-fill{background:linear-gradient(90deg,var(--accent) 0%,var(--warning) 100%)}.letter-score-bar-fill.blue{background:var(--info)}.letter-progress-bar,.dot,.progress-box{background:var(--bg-chip-neutral);border-color:var(--border-subtle)}.letter-progress-half.left{background:var(--accent)}.letter-progress-half.right{background:var(--warning)}.letter-label{color:var(--text-primary)}.sidebar-level-item:not(.active) .letter-label,.sidebar-char .letter-label{color:var(--text-primary);background:var(--bg-surface-muted)}.progress-box.filled{background:var(--success);border-color:var(--success)}.mobile-level-modal{color:var(--text-primary);box-shadow:var(--shadow-lg)}.mobile-progress-nav{color:var(--text-primary);box-shadow:0 -2px 12px color-mix(in srgb,var(--shadow-color) 18%,transparent)}.mobile-level-modal-header,.mobile-level-modal-close,.mobile-level-modal-item,.mobile-level-switcher{color:var(--text-primary)}.mobile-level-modal-item.active{background:var(--bg-surface);color:var(--accent);border-color:var(--accent)}.mobile-level-modal-chars,.mobile-level-modal-char{color:var(--text-muted)}.letter-score-bar-threshold{background:var(--border-strong)}
