:root{--teal: #63abae;--teal-dark: #4a8a8d;--yellow: #f5c644;--good: #3d9970;--fix: #d9822b;--ink: #2b3a3b;--line: #dde5e5;--bg: #f4f7f7}*{box-sizing:border-box}body{margin:0;font-family:-apple-system,PingFang TC,sans-serif;background:var(--bg);color:var(--ink)}button{font-family:inherit}.viewer2-wrap{max-width:560px;margin:0 auto;padding-bottom:40px;min-height:100vh}.viewer2-loading{display:flex;align-items:center;justify-content:space-between;padding:16px;font-size:14px;color:var(--ink)}.lang-toggle{font-size:12px;border:1px solid rgba(255,255,255,.6);border-radius:14px;padding:4px 10px;background:#ffffff26;color:#fff}.viewer2-topbar{display:flex;justify-content:flex-end;padding:10px 12px 0}.viewer2-topbar .lang-toggle{border-color:var(--line);background:#fff;color:var(--ink)}.viewer2-header{padding:8px 16px 4px}.viewer2-header h1{margin:0;font-size:19px;line-height:1.3;color:var(--teal-dark)}.viewer2-header-meta{margin:4px 0 0;font-size:13px;color:#6d7f80}.viewer2-header-centered{text-align:center;padding-top:20px}.identity-picker{padding:28px 20px;max-width:400px;margin:2vh auto 0;text-align:center}.identity-picker h2{margin:0 0 8px;font-size:20px;color:var(--teal-dark)}.identity-picker p{font-size:13px;color:#6d7f80;line-height:1.6;margin:0 0 20px}.identity-picker select,.identity-picker input{width:100%;font-size:15px;padding:10px 12px;border:1px solid var(--line);border-radius:10px;background:#fff;margin-bottom:10px}.identity-picker button{width:100%;font-size:15px;font-weight:600;padding:12px;border:none;border-radius:10px;background:var(--teal);color:#fff;margin-top:4px}.identity-picker button:active{background:var(--teal-dark)}.identity-picker-error{color:var(--fix);font-size:13px;margin-top:8px}.setup{padding:20px 16px 32px}.setup h2{font-size:19px;color:var(--teal-dark);margin:0 0 16px}.setup section{background:#fff;border:1px solid var(--line);border-radius:12px;padding:14px;margin-bottom:14px}.setup h3{font-size:14px;margin:0 0 10px;color:var(--ink)}.setup input{width:100%;font-size:15px;padding:10px 12px;border:1px solid var(--line);border-radius:10px;background:var(--bg);margin-bottom:8px}.setup section button{font-size:14px;font-weight:600;padding:9px 16px;border:none;border-radius:10px;background:var(--teal);color:#fff}.setup section button:active{background:var(--teal-dark)}.setup-error{color:var(--fix);font-size:13px;margin:6px 0 0}.setup-status{color:var(--good);font-size:13px;margin:6px 0 0}.setup-empty{color:#6d7f80;font-size:13px;margin:0 0 8px}.setup-notice{background:var(--bg);border:1px solid var(--line);border-radius:10px;padding:10px;font-size:13px;color:#56696a;margin:0 0 10px}.setup-roster-list,.setup-coach-list,.setup-match-list{list-style:none;margin:0 0 10px;padding:0;display:flex;flex-wrap:wrap;gap:6px}.setup-roster-list li,.setup-coach-list li,.setup-match-list li{background:var(--bg);border:1px solid var(--line);border-radius:999px;padding:4px 6px 4px 10px;font-size:13px;display:flex;align-items:center;gap:8px}.setup-roster-list .btn-outline,.setup-coach-list .btn-outline,.setup-match-list .btn-outline{background:#fff;color:var(--teal-dark);border:1px solid var(--teal);border-radius:999px;padding:3px 10px;font-size:12px;font-weight:600}.setup-roster-list .btn-outline:active,.setup-coach-list .btn-outline:active,.setup-match-list .btn-outline:active{background:var(--bg)}.setup-team-match{background:var(--bg);border:1px solid var(--line);border-radius:10px;padding:10px;margin-bottom:8px}.setup-team-match p{margin:0 0 8px;font-size:14px}.setup-team-match button{margin-right:8px}.setup-step-indicator{font-size:12px;font-weight:700;letter-spacing:.02em;color:#6d7f80;margin:0 0 14px}.setup-nav{display:flex;gap:8px;margin-top:4px}.setup-nav-primary{flex:1;display:block;font-size:15px;font-weight:700;padding:13px;border:none;border-radius:10px;background:var(--yellow);color:var(--ink)}.setup-nav-primary:disabled{background:#e6e6e6;color:#9aa5a5}.setup-nav-back{flex:0 0 auto;font-size:14px;font-weight:600;padding:13px 18px;border:1px solid var(--line);border-radius:10px;background:#fff;color:var(--ink)}.setup-nav-back:active{background:var(--bg)}.viewer-toolbar{display:flex;align-items:center;flex-wrap:wrap;gap:8px;background:var(--teal);color:#fff;padding:10px 12px}.viewer-toolbar .lang-toggle{margin-left:auto}.match-switcher{display:flex;gap:6px;flex-wrap:wrap;width:100%;order:1}.match-switcher button{font-size:12px;border:1px solid rgba(255,255,255,.5);border-radius:14px;padding:4px 10px;background:#ffffff1f;color:#fff}.match-switcher button.on{background:#fff;color:var(--teal-dark);border-color:#fff;font-weight:700}.viewer-name{font-size:12px;opacity:.9}.viewer-toolbar>button:not(.lang-toggle){font-size:12px;border:1px solid rgba(255,255,255,.5);border-radius:14px;padding:4px 10px;background:#ffffff1f;color:#fff}.main-player-sticky{position:sticky;top:0;z-index:5;background:#000;aspect-ratio:16 / 9;width:100%}.main-player-sticky iframe,.main-player-sticky>div:first-child{width:100%;height:100%}.main-player-pulse{animation:main-player-pulse-glow .35s ease-out 2}@keyframes main-player-pulse-glow{0%{box-shadow:0 0 color-mix(in srgb,var(--teal) 0%,transparent)}50%{box-shadow:0 0 0 8px color-mix(in srgb,var(--teal) 55%,transparent)}to{box-shadow:0 0 color-mix(in srgb,var(--teal) 0%,transparent)}}.exit-loop{position:absolute;bottom:8px;left:50%;transform:translate(-50%);font-size:12px;padding:5px 12px;border:none;border-radius:14px;background:#000000a6;color:#fff}.composer{display:flex;flex-direction:column;gap:8px;padding:10px 12px;background:#fff;border-bottom:1px solid var(--line)}.composer textarea{font-size:14px;padding:9px 10px;border:1px solid var(--line);border-radius:10px;background:var(--bg);resize:none;min-height:40px;font-family:inherit}.composer-submit-row{display:flex;align-items:center;gap:8px}.composer-kind-toggle{display:flex;gap:6px;flex:1}.composer-submit-row>button.composer-submit-btn{flex-shrink:0;font-size:13px;font-weight:600;padding:0 14px;border:none;border-radius:10px;background:var(--teal);color:#fff;min-height:44px;margin-left:auto}.composer-submit-btn:disabled{background:#9ec7c9}.composer-tags{display:flex;flex-wrap:wrap;align-items:center;gap:6px}.composer-tags-label{font-size:12px;color:#6d7f80;margin-right:2px}.composer-chip{font-size:12px;font-weight:600;padding:0 12px;min-height:44px;border:1px solid var(--line);border-radius:14px;background:#fff;color:var(--ink);display:inline-flex;align-items:center}.composer-chip.on{background:var(--yellow);border-color:var(--yellow)}.composer-chip-player.on{background:#f3eefa;border-color:#b98fe0;color:var(--teal-dark)}.comment-list{padding:4px 12px 24px}.author-filter{display:flex;gap:6px;flex-wrap:wrap;padding:8px 0;margin-bottom:4px}.author-filter button{font-size:12px;border:1px solid var(--line);border-radius:14px;padding:4px 10px;background:#fff}.author-filter button.on{background:var(--ink);color:#fff;border-color:var(--ink)}.comment-list-empty{text-align:center;color:#6d7f80;font-size:13px;padding:32px 16px}.comment-list-hint{font-size:12px;color:#6d7f80;margin:0 0 10px;padding:0 2px}.comment-card{background:#fff;border:1px solid var(--line);border-radius:12px;padding:12px;margin-bottom:10px;border-left:5px solid var(--teal);cursor:pointer}.comment-card-looping{border:1px solid var(--teal);box-shadow:0 0 0 2px #63abae40}.comment-looping-badge{font-size:11px;font-weight:700;color:#fff;background:var(--teal);border-radius:10px;padding:1px 8px;flex-shrink:0;white-space:nowrap}.comment-card-head{display:flex;align-items:baseline;justify-content:space-between;gap:8px}.comment-card b{font-size:13px;color:var(--teal-dark)}.comment-timestamp{font-size:11px;color:#6d7f80;background:var(--bg);border-radius:10px;padding:1px 8px;flex-shrink:0;white-space:nowrap}.comment-card p{font-size:14px;line-height:1.6;white-space:pre-wrap;margin:4px 0 8px}.comment-tags{display:flex;flex-wrap:wrap;gap:4px;margin:0 0 8px}.comment-tag{font-size:11px;font-weight:600;border-radius:10px;padding:2px 8px;border:1px solid var(--line);background:var(--bg);color:var(--ink)}.comment-tag-good{background:#e8f3f3;border-color:var(--teal);color:var(--teal-dark)}.comment-tag-fix{background:#fff3d6;border-color:var(--yellow)}.comment-tag-player{background:#f3eefa;border-color:#b98fe0;color:var(--teal-dark)}.comment-card>button{font-size:12px;border:1px solid var(--line);border-radius:14px;padding:0 14px;min-height:44px;display:inline-flex;align-items:center;background:var(--bg);margin-right:6px}.comment-card>button.reaction.on{background:#fff3d6;border-color:var(--yellow);font-weight:700}.reply-composer{margin-top:10px;padding-top:10px;border-top:1px dashed var(--line)}.reply-composer textarea{width:100%;font-size:13px;padding:8px 10px;border:1px solid var(--line);border-radius:10px;background:var(--bg);resize:none;min-height:36px;font-family:inherit}.reply-composer>button{margin-top:6px;font-size:12px;font-weight:600;padding:6px 14px;border:none;border-radius:10px;background:var(--teal);color:#fff}.reply-error{color:var(--fix);font-size:12px;margin:6px 0 0}.reply-list{margin-top:8px;padding-left:14px;border-left:3px solid var(--line)}.reply-item{padding:6px 0}.reply-item b{font-size:12px;color:var(--teal-dark)}.reply-item p{font-size:13px;line-height:1.5;margin:2px 0 0;white-space:pre-wrap}@media (min-width: 480px){.identity-picker{margin-top:6vh}}
