.new-badge[data-v-a48387a7]{background:var(--color-accent);color:var(--color-bg);vertical-align:middle;border-radius:9999px;margin-left:4px;padding:1px 6px;font-size:10px;font-weight:600;line-height:1.4;display:inline-block}.tour-hub-backdrop[data-v-58d50fe2]{z-index:201;padding:60px var(--space-lg) 0 0;justify-content:flex-end;align-items:flex-start;display:flex;position:fixed;inset:0}.tour-hub[data-v-58d50fe2]{background:var(--color-surface);color:var(--color-text);border:1px solid var(--color-text-secondary);border-radius:12px;width:100%;min-width:280px;max-width:360px;overflow:hidden;box-shadow:0 8px 24px #00000040}.tour-hub-header[data-v-58d50fe2]{padding:var(--space-md) var(--space-lg);border-bottom:1px solid var(--color-text-secondary);opacity:1;border-bottom-style:solid;justify-content:space-between;align-items:center;display:flex}.tour-hub-title[data-v-58d50fe2]{font-size:var(--text-heading);font-weight:var(--weight-semibold);margin:0}.tour-hub-close[data-v-58d50fe2]{color:var(--color-text-secondary);cursor:pointer;background:0 0;border:none;padding:0;font-size:22px;line-height:1;transition:color .15s}.tour-hub-close[data-v-58d50fe2]:hover{color:var(--color-text)}.tour-hub-list[data-v-58d50fe2]{padding:var(--space-sm) 0;margin:0;list-style:none}.tour-hub-item[data-v-58d50fe2]{align-items:center;gap:var(--space-sm);padding:var(--space-sm) var(--space-lg);cursor:pointer;transition:background .15s;display:flex}.tour-hub-item[data-v-58d50fe2]:hover{background:var(--color-bg)}.tour-hub-item.completed[data-v-58d50fe2]{opacity:.7}.tour-hub-item-icon[data-v-58d50fe2]{flex-shrink:0;font-size:18px}.tour-hub-item-label[data-v-58d50fe2]{font-size:var(--text-body);flex:1}.tour-hub-item-check[data-v-58d50fe2]{color:#28a745;flex-shrink:0;font-size:16px;font-weight:700}.tour-hub-item-status[data-v-58d50fe2]{color:var(--color-text-secondary);font-size:var(--text-label);flex-shrink:0}.tour-hub-footer[data-v-58d50fe2]{padding:var(--space-sm) var(--space-lg);border-top:1px solid var(--color-text-secondary);opacity:.8;justify-content:space-between;align-items:center;display:flex}.tour-hub-progress[data-v-58d50fe2]{font-size:var(--text-label);color:var(--color-text-secondary)}.tour-hub-restart[data-v-58d50fe2]{border:1px solid var(--color-accent);color:var(--color-accent);font-size:var(--text-label);font-weight:var(--weight-semibold);cursor:pointer;background:0 0;border-radius:6px;padding:4px 12px;transition:background .15s,color .15s}.tour-hub-restart[data-v-58d50fe2]:hover{background:var(--color-accent);color:var(--color-bg)}.hub-fade-enter-active[data-v-58d50fe2],.hub-fade-leave-active[data-v-58d50fe2]{transition:opacity .2s}.hub-fade-enter-from[data-v-58d50fe2],.hub-fade-leave-to[data-v-58d50fe2]{opacity:0}.app-header[data-v-de8fd036]{height:72px;padding:0 var(--space-lg);background-color:var(--color-surface);justify-content:space-between;align-items:center;gap:var(--space-md);z-index:100;transition:height .25s,padding .25s;display:flex;position:sticky;top:0}.app-header--scrolled[data-v-de8fd036]{height:48px;padding-top:0;padding-bottom:0}.app-header--scrolled .wave-text[data-v-de8fd036]{font-size:16px}.app-title[data-v-de8fd036]{align-items:center;gap:var(--space-sm);font-family:Pacifico,cursive;font-size:var(--text-heading);color:var(--color-text-strong);font-weight:400;text-decoration:none;display:flex}.app-title[data-v-de8fd036]:hover{color:var(--color-text-strong);text-decoration:none}.app-logo[data-v-de8fd036]{color:var(--color-accent);flex-shrink:0;align-self:center;transition:color .3s,transform .2s}.wave-text[data-v-de8fd036]{transition:font-size .25s;display:inline}.wave-text span[data-v-de8fd036]{transition:color .3s;animation:none;display:inline-block}[data-theme=dark] .app-title:hover .app-logo[data-v-de8fd036]{color:#134074;transform:scale(1.1)}[data-theme=dark] .app-title:hover .wave-text span[data-v-de8fd036]{animation:wave-dark-de8fd036 .3s ease calc(var(--i) * 30ms) 1 both}[data-theme=light] .app-title:hover .app-logo[data-v-de8fd036]{color:#eef4ed;transform:scale(1.1)}[data-theme=light] .app-title:hover .wave-text span[data-v-de8fd036]{animation:wave-light-de8fd036 .3s ease calc(var(--i) * 30ms) 1 both}@keyframes wave-dark-de8fd036{0%,to{color:var(--color-text-strong)}50%{color:#134074}}@keyframes wave-light-de8fd036{0%,to{color:var(--color-text-strong)}50%{color:#eef4ed}}.app-nav[data-v-de8fd036]{gap:var(--space-lg);flex:1;display:flex}.nav-link[data-v-de8fd036]{color:var(--color-text);font-size:var(--text-label);white-space:nowrap;text-decoration:none;transition:color .15s}.nav-link[data-v-de8fd036]:hover,.nav-link.router-link-active[data-v-de8fd036]{color:var(--color-text-strong)}.nav-link--live[data-v-de8fd036]{align-items:center;gap:6px;transition:color .15s,text-shadow .3s;display:inline-flex}.nav-link--live.nav-link--live-active[data-v-de8fd036]{color:#dc3545;text-shadow:0 0 8px #dc354580}.live-dot[data-v-de8fd036]{background:var(--color-text-secondary);border-radius:50%;width:8px;height:8px;transition:background .2s;display:inline-block}.live-dot.active[data-v-de8fd036]{background:#dc3545;animation:1.5s ease-in-out infinite live-pulse-de8fd036;box-shadow:0 0 6px #dc354599}@keyframes live-pulse-de8fd036{0%,to{opacity:1}50%{opacity:.5}}.header-live-badge[data-v-de8fd036]{color:#fff;font-size:11px;font-weight:var(--weight-semibold);letter-spacing:.05em;background:#dc3545;border-radius:9999px;align-items:center;padding:2px 8px;line-height:1.4;text-decoration:none;transition:background .15s;display:inline-flex}.header-live-badge[data-v-de8fd036]:hover{background:#c82333;text-decoration:none}.support-link[data-v-de8fd036]{position:relative}.unread-badge[data-v-de8fd036]{color:#fff;background:#dc3545;border-radius:50%;justify-content:center;align-items:center;min-width:18px;height:18px;padding:0 4px;font-size:11px;font-weight:700;display:flex;position:absolute;top:-4px;right:-8px}.user-section[data-v-de8fd036]{align-items:center;gap:var(--space-sm);display:flex}.user-avatar[data-v-de8fd036]{object-fit:cover;border-radius:50%;width:32px;height:32px}.user-name[data-v-de8fd036]{color:var(--color-text);font-size:var(--text-label)}.discord-icon-btn[data-v-de8fd036]{color:#5865f2;border-radius:6px;justify-content:center;align-items:center;padding:6px;text-decoration:none;transition:color .15s,background .15s;display:flex}.discord-icon-btn[data-v-de8fd036]:hover{color:#4752c4;background:var(--color-bg)}.user-dropdown-wrapper[data-v-de8fd036]{position:relative}.user-dropdown-trigger[data-v-de8fd036]{align-items:center;gap:var(--space-xs);cursor:pointer;background:0 0;border:none;border-radius:6px;padding:4px;transition:background .15s;display:flex}.user-dropdown-trigger[data-v-de8fd036]:hover{background:var(--color-bg)}.user-chevron[data-v-de8fd036]{transition:transform .2s}.user-chevron.open[data-v-de8fd036]{transform:rotate(180deg)}.user-dropdown-menu[data-v-de8fd036]{background:var(--color-surface);border:1px solid var(--color-text-secondary);z-index:200;border-radius:8px;min-width:160px;padding:4px;position:absolute;top:calc(100% + 6px);right:0;box-shadow:0 4px 16px #0003}.dropdown-item[data-v-de8fd036]{width:100%;color:var(--color-text);font-size:var(--text-label);text-align:left;cursor:pointer;background:0 0;border:none;border-radius:6px;padding:8px 12px;font-family:inherit;text-decoration:none;transition:background .15s;display:block}.dropdown-item[data-v-de8fd036]:hover{background:var(--color-bg)}.dropdown-divider[data-v-de8fd036]{background:var(--color-text-secondary);opacity:.2;height:1px;margin:4px 0}.dropdown-controls[data-v-de8fd036]{justify-content:space-between;align-items:center;padding:4px 12px;display:flex}.dropdown-item--danger[data-v-de8fd036]{color:#dc3545}.dropdown-item--danger[data-v-de8fd036]:hover{background:#dc35451a}.user-dropdown-backdrop[data-v-de8fd036]{z-index:199;position:fixed;inset:0}.logout-btn[data-v-de8fd036]{color:var(--color-text-secondary);font-size:var(--text-label);cursor:pointer;padding:var(--space-xs) var(--space-sm);background:0 0;border:none}.logout-btn[data-v-de8fd036]:hover{color:var(--color-text)}.discord-btn[data-v-de8fd036]{color:#fff;font-size:var(--text-label);font-weight:var(--weight-semibold);cursor:pointer;background:#5865f2;border:none;border-radius:6px;align-items:center;gap:6px;padding:6px 12px;text-decoration:none;transition:background .15s;display:inline-flex}.discord-btn[data-v-de8fd036]:hover{background:#4752c4}.lang-switcher[data-v-de8fd036]{background:var(--color-bg);border-radius:6px;gap:2px;padding:2px;display:flex}.lang-btn[data-v-de8fd036]{color:var(--color-text-secondary);font-size:12px;font-weight:var(--weight-semibold);cursor:pointer;background:0 0;border:none;border-radius:4px;padding:4px 8px;transition:all .15s}.lang-btn[data-v-de8fd036]:hover{color:var(--color-text)}.lang-btn.active[data-v-de8fd036]{background:var(--color-accent);color:var(--color-bg)}.theme-toggle[data-v-de8fd036]{min-width:44px;min-height:44px;color:var(--color-text);cursor:pointer;background:0 0;border:none;border-radius:8px;justify-content:center;align-items:center;font-size:22px;display:flex}.theme-toggle[data-v-de8fd036]:hover{background-color:var(--color-bg)}.hamburger-btn[data-v-de8fd036]{color:var(--color-text);cursor:pointer;padding:var(--space-xs);background:0 0;border:none;justify-content:center;align-items:center;min-width:44px;min-height:44px;font-size:28px;display:none}.mobile-drawer-backdrop[data-v-de8fd036]{z-index:999;background:#00000080;position:fixed;inset:0}.mobile-drawer[data-v-de8fd036]{background:var(--color-surface);z-index:1000;width:min(300px,80vw);padding:var(--space-lg);gap:var(--space-md);flex-direction:column;transition:transform .25s;display:flex;position:fixed;top:0;bottom:0;right:0;overflow-y:auto;transform:translate(100%)}.mobile-drawer.open[data-v-de8fd036]{transform:translate(0)}.drawer-close[data-v-de8fd036]{color:var(--color-text);cursor:pointer;background:0 0;border:none;align-self:flex-end;min-width:44px;min-height:44px;font-size:28px}.drawer-nav[data-v-de8fd036]{gap:var(--space-sm);flex-direction:column;display:flex}.drawer-nav .nav-link[data-v-de8fd036]{padding:var(--space-sm) 0;font-size:var(--text-body)}.drawer-divider[data-v-de8fd036]{border:none;border-top:1px solid var(--color-text-secondary);opacity:.3;margin:var(--space-sm) 0}.drawer-user[data-v-de8fd036]{gap:var(--space-sm);flex-direction:column;display:flex}.drawer-user-info[data-v-de8fd036]{align-items:center;gap:var(--space-sm);display:flex}.drawer-controls[data-v-de8fd036]{align-items:center;gap:var(--space-sm);flex-wrap:wrap;display:flex}@media (width<=1280px){.wave-text[data-v-de8fd036]{display:none}}@media (width<=767px){.hamburger-btn[data-v-de8fd036]{display:flex}.app-nav[data-v-de8fd036],.user-section[data-v-de8fd036]{display:none}.app-header[data-v-de8fd036]{padding:0 var(--space-md)}}.reauth-banner[data-v-93ac1ce1]{background:var(--color-warning-bg,#fff3cd);border-bottom:1px solid var(--color-warning-border,#ffc107);color:var(--color-warning-text,#856404);align-items:center;gap:.75rem;padding:.75rem 1rem;font-size:.875rem;display:flex}.reauth-link[data-v-93ac1ce1]{white-space:nowrap;font-weight:600;text-decoration:underline}.reauth-dismiss[data-v-93ac1ce1]{cursor:pointer;opacity:.7;color:inherit;background:0 0;border:none;margin-left:auto;font-size:1.25rem;line-height:1}.reauth-dismiss[data-v-93ac1ce1]:hover{opacity:1}.welcome-backdrop[data-v-7282f5f1]{z-index:9999;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#000000a6;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.welcome-modal[data-v-7282f5f1]{background:var(--color-surface);color:var(--color-text);padding:var(--space-2xl) var(--space-xl);text-align:center;border-radius:16px;width:90vw;max-width:480px;animation:.35s cubic-bezier(.34,1.56,.64,1) modal-pop-7282f5f1;box-shadow:0 8px 32px #0006}.welcome-modal--checklist[data-v-7282f5f1]{max-width:520px}@keyframes modal-pop-7282f5f1{0%{opacity:0;transform:scale(.9)translateY(12px)}to{opacity:1;transform:scale(1)translateY(0)}}.welcome-icon[data-v-7282f5f1]{margin-bottom:var(--space-md);font-size:48px}.welcome-title[data-v-7282f5f1]{font-size:var(--text-display);font-weight:var(--weight-semibold);line-height:var(--lh-heading);margin:0 0 var(--space-lg)}.role-cards[data-v-7282f5f1]{gap:var(--space-md);flex-wrap:wrap;justify-content:center;display:flex}.role-card[data-v-7282f5f1]{align-items:center;gap:var(--space-xs);background:var(--color-bg);padding:var(--space-lg) var(--space-md);cursor:pointer;border:2px solid #0000;border-radius:12px;flex-direction:column;min-width:180px;transition:border-color .2s,transform .15s,box-shadow .2s;display:flex}.role-card[data-v-7282f5f1]:hover{border-color:var(--color-accent);transform:translateY(-2px);box-shadow:0 4px 12px #00000026}.role-card-icon[data-v-7282f5f1]{font-size:32px}.role-card-label[data-v-7282f5f1]{font-weight:var(--weight-semibold);font-size:var(--text-body);color:var(--color-text)}.role-card-desc[data-v-7282f5f1]{font-size:var(--text-label);color:var(--color-text-secondary);line-height:var(--lh-body)}.module-checklist[data-v-7282f5f1]{gap:var(--space-sm);text-align:left;margin-bottom:var(--space-lg);flex-direction:column;max-height:320px;display:flex;overflow-y:auto}.module-check-item[data-v-7282f5f1]{align-items:center;gap:var(--space-sm);padding:var(--space-sm) var(--space-md);cursor:pointer;border-radius:8px;transition:background .15s;display:flex}.module-check-item[data-v-7282f5f1]:hover{background:var(--color-bg)}.module-checkbox[data-v-7282f5f1]{width:18px;height:18px;accent-color:var(--color-accent);cursor:pointer;flex-shrink:0}.module-check-icon[data-v-7282f5f1]{flex-shrink:0;font-size:20px}.module-check-label[data-v-7282f5f1]{font-size:var(--text-body);color:var(--color-text)}.welcome-actions[data-v-7282f5f1]{gap:var(--space-sm);flex-direction:column;align-items:center;display:flex}.welcome-btn[data-v-7282f5f1]{padding:var(--space-sm) var(--space-lg);font-size:var(--text-body);font-weight:var(--weight-semibold);cursor:pointer;border:none;border-radius:8px;min-width:240px;transition:opacity .2s,transform .15s}.welcome-btn[data-v-7282f5f1]:hover{opacity:.9;transform:translateY(-1px)}.welcome-btn[data-v-7282f5f1]:active{transform:translateY(0)}.welcome-btn[data-v-7282f5f1]:disabled{opacity:.5;cursor:not-allowed;transform:none}.welcome-btn--primary[data-v-7282f5f1]{background:var(--color-accent);color:var(--color-bg)}.welcome-btn--secondary[data-v-7282f5f1]{color:var(--color-text-secondary);min-width:auto;padding:var(--space-xs) var(--space-sm);background:0 0;text-decoration:underline}.welcome-btn--secondary[data-v-7282f5f1]:hover{color:var(--color-text)}.welcome-toast[data-v-7282f5f1]{bottom:var(--space-lg);z-index:10000;background:var(--color-surface);color:var(--color-text-secondary);padding:var(--space-sm) var(--space-lg);font-size:var(--text-label);white-space:nowrap;border-radius:8px;position:fixed;left:50%;transform:translate(-50%);box-shadow:0 4px 16px #0000004d}.overlay-fade-enter-active[data-v-7282f5f1],.overlay-fade-leave-active[data-v-7282f5f1]{transition:opacity .3s}.overlay-fade-enter-from[data-v-7282f5f1],.overlay-fade-leave-to[data-v-7282f5f1]{opacity:0}.toast-slide-enter-active[data-v-7282f5f1]{transition:all .3s cubic-bezier(.34,1.56,.64,1)}.toast-slide-leave-active[data-v-7282f5f1]{transition:all .3s}.toast-slide-enter-from[data-v-7282f5f1]{opacity:0;transform:translate(-50%)translateY(16px)}.toast-slide-leave-to[data-v-7282f5f1]{opacity:0;transform:translate(-50%)translateY(8px)}main[data-v-b552e243]{min-height:calc(100vh - 120px)}.app-footer[data-v-b552e243]{text-align:center;padding:var(--space-md) var(--space-lg);color:var(--color-text-secondary);font-size:var(--text-label);opacity:.6}.app-footer[data-v-b552e243] .footer-link{color:var(--color-accent);text-decoration:none}.app-footer[data-v-b552e243] .footer-link:hover{text-decoration:underline}.footer-version[data-v-b552e243]{margin-top:var(--space-xs);opacity:.7;font-size:.7rem}.footer-sha[data-v-b552e243]{font-family:monospace}:root,[data-theme=dark]{--color-bg:#0b2545;--color-surface:#13315c;--color-text-secondary:#8da9c4;--color-text:#eef4ed;--color-text-strong:#eef4ed;--color-accent:#eef4ed;--color-accent-hover:#8da9c4;--color-destructive:#b4362c;--color-success:#2f7d5b;--color-warning:#a06a1f}[data-theme=light]{--color-bg:#e5dbe1;--color-surface:#8da9c4;--color-text-secondary:#134074;--color-text:#0b2545;--color-text-strong:#0b2545;--color-accent:#134074;--color-accent-hover:#0b2545;--color-destructive:#9b2a20;--color-success:#1f5d42;--color-warning:#7a4e10}:root{--space-xs:4px;--space-sm:8px;--space-md:16px;--space-lg:24px;--space-xl:32px;--space-2xl:48px;--space-3xl:64px;--font-sans:-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif;--font-mono:"SF Mono", "Fira Code", "Cascadia Code", Consolas, monospace;--text-label:14px;--text-body:16px;--text-heading:20px;--text-display:28px;--weight-regular:400;--weight-semibold:600;--lh-label:1.4;--lh-body:1.5;--lh-heading:1.2;--lh-display:1;--max-width-list:1400px;--max-width-detail:1200px;--scrollspy-width:200px;--sparkline-width:120px;--sparkline-height:24px;--row-min-height:72px;--search-height:44px;--touch-target:44px}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{font-family:var(--font-sans);font-size:var(--text-body);line-height:var(--lh-body);color:var(--color-text);background-color:var(--color-bg);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{min-height:100vh;overflow-x:hidden}.table-scroll-wrapper{-webkit-overflow-scrolling:touch;overflow-x:auto}h1,h2,h3{color:var(--color-text-strong);font-weight:var(--weight-semibold)}h1{font-size:var(--text-display);line-height:var(--lh-display)}h2{font-size:var(--text-heading);line-height:var(--lh-heading)}a{color:var(--color-accent);text-decoration:none}a:hover{color:var(--color-accent-hover);text-decoration:underline}code,pre{font-family:var(--font-mono)}.text-secondary{color:var(--color-text-secondary);font-size:var(--text-label);line-height:var(--lh-label)}.text-strong{color:var(--color-text-strong);font-weight:var(--weight-semibold)}.visually-hidden{clip:rect(0, 0, 0, 0);border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}body{transition:background-color .2s,color .2s}.transition-colors{transition:color .15s,background-color .15s,border-color .15s}
