.announce-bar[data-v-825b1b60]{width:100%;overflow:hidden;background:var(--ann-bg, #111827);color:var(--ann-fg, #ffffff);font-size:var(--text-body-sm);line-height:32px;min-height:32px}.announce-bar__single[data-v-825b1b60]{text-align:center;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;padding:0 var(--space-md)}.announce-bar__viewport[data-v-825b1b60]{overflow:hidden;width:100%}.announce-bar__track[data-v-825b1b60]{display:inline-flex;white-space:nowrap;will-change:transform;animation-name:announce-scroll-825b1b60;animation-timing-function:linear;animation-iteration-count:infinite}.announce-bar__viewport:hover .announce-bar__track[data-v-825b1b60]{animation-play-state:paused}.announce-bar__item[data-v-825b1b60]{padding-right:0}@keyframes announce-scroll-825b1b60{0%{transform:translate(0)}to{transform:translate(-50%)}}@media(prefers-reduced-motion:reduce){.announce-bar__track[data-v-825b1b60]{animation:none;transform:none}}.app[data-v-0b91584e]{min-height:100vh;background:var(--bg-primary)}.site-topbar__nav[data-v-0b91584e]{display:flex;align-items:center;gap:var(--space-sm)}.site-topbar__link[data-v-0b91584e]{padding:var(--space-xs) var(--space-md);border-radius:var(--radius-full);color:var(--text-secondary);font-size:var(--text-body);text-decoration:none;transition:background var(--dur-fast) var(--ease-out),color var(--dur-fast) var(--ease-out)}.site-topbar__link[data-v-0b91584e]:hover,.site-topbar__link.router-link-active[data-v-0b91584e]{background:var(--accent-soft);color:var(--accent-primary)}@media(max-width:600px){.site-topbar__nav[data-v-0b91584e]{gap:var(--space-xs)}.site-topbar__link[data-v-0b91584e]{padding:var(--space-xs) var(--space-sm);font-size:var(--text-body-sm);white-space:nowrap}}@media(max-width:480px){.site-topbar__brand[data-v-0b91584e]{font-size:var(--text-body-sm)}.site-topbar__mark[data-v-0b91584e]{width:20px;height:20px}}.live[data-v-1ba8fbdf]{max-width:1280px;margin:0 auto;padding:var(--space-xl) var(--space-md) var(--space-3xl)}.live__nav[data-v-1ba8fbdf]{margin-bottom:var(--space-md);font-size:var(--text-body-sm)}.live__nav a[data-v-1ba8fbdf]{color:var(--text-tertiary);text-decoration:none}.live__nav a[data-v-1ba8fbdf]:hover{color:var(--accent-primary)}.live__header[data-v-1ba8fbdf]{margin-bottom:var(--space-lg)}.live__title-row[data-v-1ba8fbdf]{display:flex;align-items:center;gap:var(--space-sm);flex-wrap:wrap}.live__title-row h1[data-v-1ba8fbdf]{margin:0;font-family:var(--font-brand);font-size:var(--text-title-lg);font-weight:600;color:var(--text-primary)}.live__meta[data-v-1ba8fbdf]{display:flex;align-items:center;gap:var(--space-sm);margin:var(--space-sm) 0 0;color:var(--text-secondary);font-size:var(--text-body-sm);flex-wrap:wrap}.badge[data-v-1ba8fbdf]{padding:2px var(--space-sm);border-radius:var(--radius-full);font-size:var(--text-caption-sm);font-weight:500}.badge--live[data-v-1ba8fbdf]{background:#ef44441f;color:var(--semantic-error)}.badge--neutral[data-v-1ba8fbdf]{background:#ffffff0f;color:var(--text-secondary)}.status-badge[data-v-1ba8fbdf]{display:inline-flex;align-items:center;gap:var(--space-xs);padding:3px var(--space-sm);border-radius:var(--radius-full);font-size:var(--text-caption-sm);font-weight:500;white-space:nowrap}.status-badge[data-v-1ba8fbdf]:before{content:"";width:6px;height:6px;border-radius:50%;flex-shrink:0;background:currentcolor}.status--live[data-v-1ba8fbdf]{background:#10b9811f;color:var(--semantic-success)}.status--upcoming[data-v-1ba8fbdf]{background:#ffffff0f;color:var(--text-secondary)}.status--upcoming[data-v-1ba8fbdf]:before{background:transparent;border:1px solid currentcolor}.status--finished[data-v-1ba8fbdf]{background:#ffffff0f;color:var(--text-tertiary)}.status--postponed[data-v-1ba8fbdf]{background:#f59e0b1f;color:var(--semantic-warning)}.status--postponed[data-v-1ba8fbdf]:before{border-radius:1px}.status--unknown[data-v-1ba8fbdf]{background:#3b82f61f;color:var(--semantic-info)}.status--unknown[data-v-1ba8fbdf]:before{clip-path:polygon(50% 0,100% 100%,0 100%);border-radius:0}.league-badge[data-v-1ba8fbdf]{display:inline-block;padding:2px var(--space-sm);border-radius:var(--radius-xs);font-size:var(--text-caption-sm);font-weight:600;white-space:nowrap}.live__lines[data-v-1ba8fbdf]{display:flex;align-items:center;gap:var(--space-sm);margin:0 0 var(--space-lg);flex-wrap:wrap}.live__lines-label[data-v-1ba8fbdf]{font-size:var(--text-body-sm);color:var(--text-tertiary)}.live__line[data-v-1ba8fbdf]{padding:var(--space-xs) var(--space-md);border:var(--glass-clear-border);border-radius:var(--radius-full);background:var(--glass-clear-bg);backdrop-filter:var(--glass-clear-blur);-webkit-backdrop-filter:var(--glass-clear-blur);cursor:pointer;font-family:var(--font-ui);font-size:var(--text-body);color:var(--text-secondary);transition:background var(--dur-fast) var(--ease-out),color var(--dur-fast) var(--ease-out),border-color var(--dur-fast) var(--ease-out)}.live__line[data-v-1ba8fbdf]:hover{background:var(--glass-regular-bg);color:var(--text-primary)}.live__line--active[data-v-1ba8fbdf]{background:var(--accent-soft);border-color:var(--border-active);color:var(--accent-primary);font-weight:600}.player-card[data-v-1ba8fbdf]{position:relative;padding:var(--space-sm);border-radius:var(--radius-xl);background:var(--glass-thin-bg);backdrop-filter:var(--glass-thin-blur);-webkit-backdrop-filter:var(--glass-thin-blur);border:var(--glass-thin-border);box-shadow:var(--shadow-md)}.player[data-v-1ba8fbdf]{display:block;width:100%;aspect-ratio:16 / 9;background:#000;border-radius:var(--radius-lg)}.popup-layer[data-v-1ba8fbdf]{position:absolute;inset:0;overflow:hidden;pointer-events:none;padding:var(--space-sm)}.popup-item[data-v-1ba8fbdf]{position:absolute;white-space:nowrap;font-weight:700;text-shadow:0 1px 2px rgba(0,0,0,.85),0 0 6px rgba(0,0,0,.6)}.popup-item--marquee[data-v-1ba8fbdf]{top:12%;left:0;font-size:clamp(16px,3.2vw,32px);animation:popup-marquee-1ba8fbdf 14s linear forwards}.popup-item--banner[data-v-1ba8fbdf]{top:6%;left:0;right:0;text-align:center;font-size:clamp(14px,2.4vw,24px);animation:popup-fade-1ba8fbdf .4s ease-out}@keyframes popup-marquee-1ba8fbdf{0%{transform:translate(100%)}to{transform:translate(-100%)}}@keyframes popup-fade-1ba8fbdf{0%{opacity:0}to{opacity:1}}.status[data-v-1ba8fbdf]{margin-top:var(--space-md);color:var(--text-secondary);font-size:var(--text-body)}.status--error[data-v-1ba8fbdf]{color:var(--semantic-error)}@media(max-width:600px){.live[data-v-1ba8fbdf]{padding:var(--space-md) var(--space-sm) var(--space-2xl);overflow-x:hidden}.live__title-row h1[data-v-1ba8fbdf]{font-size:var(--text-title-sm);min-width:0;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;white-space:normal}.live__meta[data-v-1ba8fbdf]{font-size:var(--text-caption);gap:var(--space-xs)}.live__lines[data-v-1ba8fbdf]{gap:var(--space-xs);margin-bottom:var(--space-md)}.live__line[data-v-1ba8fbdf]{min-height:36px;display:inline-flex;align-items:center;font-size:var(--text-body-sm)}.player-card[data-v-1ba8fbdf]{padding:4px;border-radius:var(--radius-lg)}.player[data-v-1ba8fbdf]{border-radius:var(--radius-md)}.status[data-v-1ba8fbdf]{font-size:var(--text-body-sm);word-break:break-word}}@media(max-width:480px){.live__title-row h1[data-v-1ba8fbdf]{font-size:var(--text-body)}.popup-item--marquee[data-v-1ba8fbdf]{font-size:clamp(14px,4.5vw,20px)}.popup-item--banner[data-v-1ba8fbdf]{font-size:clamp(12px,3.8vw,16px);padding:0 var(--space-sm)}}.sport-icon[data-v-6fd473e5]{display:block;flex-shrink:0;color:var(--text-secondary);opacity:.9}.match-home[data-v-ff278894]{max-width:1280px;margin:0 auto;padding:var(--space-xl) var(--space-md) var(--space-3xl)}.match-home__head-row[data-v-ff278894]{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--space-md);flex-wrap:wrap}.match-home__title[data-v-ff278894]{margin:0;font-family:var(--font-brand);font-size:var(--text-title-lg);font-weight:600;color:var(--text-primary)}.match-home__date[data-v-ff278894]{margin:var(--space-xs) 0 0;color:var(--text-tertiary);font-size:var(--text-body-sm)}.match-home__lang[data-v-ff278894]{display:flex;align-items:center;gap:var(--space-sm);font-size:var(--text-body-sm);color:var(--text-secondary)}.match-home__lang-select[data-v-ff278894]{height:var(--control-height);padding:0 var(--space-md);border:1px solid var(--border-glass);border-radius:var(--radius-sm);background:#ffffff0a;color:var(--text-primary);font-family:var(--font-ui);font-size:var(--text-body-sm)}.match-home__lang-select[data-v-ff278894]:focus-visible{outline:2px solid var(--accent-primary);outline-offset:2px}.match-home__tabs[data-v-ff278894]{display:flex;gap:var(--space-sm);margin:var(--space-lg) 0 var(--space-md);flex-wrap:wrap}.match-home__tab[data-v-ff278894]{padding:var(--space-xs) var(--space-md);border:var(--glass-clear-border);border-radius:var(--radius-full);background:var(--glass-clear-bg);backdrop-filter:var(--glass-clear-blur);-webkit-backdrop-filter:var(--glass-clear-blur);cursor:pointer;font-family:var(--font-ui);font-size:var(--text-body);color:var(--text-secondary);transition:background var(--dur-fast) var(--ease-out),color var(--dur-fast) var(--ease-out),border-color var(--dur-fast) var(--ease-out)}.match-home__tab[data-v-ff278894]:hover{background:var(--glass-regular-bg);color:var(--text-primary)}.match-home__tab--active[data-v-ff278894]{background:var(--accent-soft);border-color:var(--border-active);color:var(--accent-primary);font-weight:600}.match-home__league-filter[data-v-ff278894]{display:flex;align-items:center;gap:var(--space-sm);margin-bottom:var(--space-md);flex-wrap:wrap}.match-home__league-label[data-v-ff278894]{display:flex;align-items:center;gap:var(--space-sm);font-size:var(--text-body-sm);color:var(--text-tertiary)}.match-home__league-select[data-v-ff278894]{height:var(--control-height);min-width:180px;padding:0 var(--space-md);border:var(--glass-clear-border);border-radius:var(--radius-sm);background:var(--glass-clear-bg);backdrop-filter:var(--glass-clear-blur);-webkit-backdrop-filter:var(--glass-clear-blur);color:var(--text-primary);font-family:var(--font-ui);font-size:var(--text-body-sm);cursor:pointer}.match-home__league-select[data-v-ff278894]:focus-visible{outline:2px solid var(--accent-primary);outline-offset:2px}.match-home__sortbar[data-v-ff278894]{display:flex;align-items:center;gap:var(--space-md);margin-bottom:var(--space-md);flex-wrap:wrap}.match-home__sort-label[data-v-ff278894]{font-size:var(--text-body-sm);color:var(--text-tertiary)}.match-home__sort-toggle[data-v-ff278894]{padding:var(--space-xs) var(--space-md);border:var(--glass-clear-border);border-radius:var(--radius-full);background:var(--glass-clear-bg);backdrop-filter:var(--glass-clear-blur);-webkit-backdrop-filter:var(--glass-clear-blur);cursor:pointer;font-family:var(--font-ui);font-size:var(--text-body-sm);color:var(--text-secondary)}.match-home__sort-toggle--on[data-v-ff278894]{background:var(--accent-soft);border-color:var(--border-active);color:var(--accent-primary);font-weight:600}.match-home__status[data-v-ff278894]{padding:var(--space-3xl) 0;text-align:center;color:var(--text-tertiary)}.match-home__status--error[data-v-ff278894]{color:var(--semantic-error)}.match-table[data-v-ff278894]{background:var(--bg-secondary);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);overflow:hidden}.match-table__head[data-v-ff278894],.match-row[data-v-ff278894]{display:grid;grid-template-columns:36px minmax(120px,1.2fr) minmax(64px,.6fr) minmax(132px,1fr) minmax(110px,1.3fr) minmax(76px,.7fr) minmax(110px,1.3fr) minmax(72px,.6fr) minmax(150px,1.4fr);gap:var(--space-sm);align-items:center}.match-table__head[data-v-ff278894]{padding:var(--space-sm) var(--space-md);border-bottom:1px solid var(--border-subtle);background:#ffffff08;font-size:var(--text-caption);color:var(--text-tertiary);font-weight:500}.match-table__col[data-v-ff278894],.match-row__sport[data-v-ff278894],.match-row__league[data-v-ff278894],.match-row__time[data-v-ff278894],.match-row__status[data-v-ff278894],.match-row__score[data-v-ff278894],.match-row__team[data-v-ff278894],.match-row__viewers[data-v-ff278894],.match-row__channel[data-v-ff278894]{display:flex;align-items:center;justify-content:center;text-align:center}.match-row__viewers[data-v-ff278894]{gap:2px;font-size:var(--text-body-sm);color:var(--text-secondary);font-variant-numeric:tabular-nums}.viewer-heat__flame[data-v-ff278894]{display:inline-flex;width:11px;height:13px}.viewer-heat__flame svg[data-v-ff278894]{width:100%;height:100%;display:block}.viewer-heat__count[data-v-ff278894]{margin-left:2px}.viewer-heat__defs[data-v-ff278894]{position:absolute;width:0;height:0;overflow:hidden}.match-list[data-v-ff278894]{list-style:none;margin:0;padding:0;display:flex;flex-direction:column}.match-row[data-v-ff278894]{padding:var(--space-sm) var(--space-md);min-height:48px;border-bottom:1px solid var(--border-subtle);background:transparent;transition:background var(--dur-fast) var(--ease-out);cursor:pointer}.match-row[data-v-ff278894]:focus-visible{outline:2px solid var(--accent-primary);outline-offset:-2px}.match-row[data-v-ff278894]:last-child{border-bottom:none}.match-row[data-v-ff278894]:hover{background:#ffffff08}[data-theme=light] .match-row[data-v-ff278894]:hover{background:#00000005}.match-row--dimmed[data-v-ff278894]{opacity:.55}.match-row__sport[data-v-ff278894]{display:flex;align-items:center;justify-content:center}.league-badge[data-v-ff278894]{display:inline-block;padding:2px var(--space-sm);border-radius:var(--radius-xs);font-size:var(--text-caption-sm);font-weight:600;white-space:nowrap;max-width:100%;overflow:hidden;text-overflow:ellipsis}.match-row__clock[data-v-ff278894]{font-family:var(--font-brand);font-size:var(--text-body);font-weight:600;color:var(--text-primary);white-space:nowrap}.status-badge[data-v-ff278894]{display:inline-flex;align-items:center;gap:var(--space-xs);padding:3px var(--space-sm);border-radius:var(--radius-full);font-size:var(--text-caption-sm);font-weight:500;white-space:nowrap}.status-badge[data-v-ff278894]:before{content:"";width:6px;height:6px;border-radius:50%;flex-shrink:0;background:currentcolor}.status--live[data-v-ff278894]{background:#10b9811f;color:var(--semantic-success)}.status--live[data-v-ff278894]:before{animation:status-pulse-ff278894 2s var(--ease-out) infinite}.status--upcoming[data-v-ff278894]{background:#ffffff0f;color:var(--text-secondary)}.status--upcoming[data-v-ff278894]:before{background:transparent;border:1px solid currentcolor}.status--finished[data-v-ff278894]{background:#ffffff0f;color:var(--text-tertiary)}.status--postponed[data-v-ff278894]{background:#f59e0b1f;color:var(--semantic-warning)}.status--postponed[data-v-ff278894]:before{border-radius:1px}.status--unknown[data-v-ff278894]{background:#3b82f61f;color:var(--semantic-info)}.status--unknown[data-v-ff278894]:before{clip-path:polygon(50% 0,100% 100%,0 100%);border-radius:0}@keyframes status-pulse-ff278894{0%,to{opacity:1;transform:scale(1)}50%{opacity:.5;transform:scale(1.3)}}.match-row__team[data-v-ff278894]{display:flex;align-items:center;justify-content:center;gap:var(--space-xs);font-size:var(--text-body);color:var(--text-primary);overflow:hidden;white-space:nowrap}.match-row__team-name[data-v-ff278894]{overflow:hidden;text-overflow:ellipsis}.team-icon[data-v-ff278894]{width:20px;height:20px;flex-shrink:0;border-radius:var(--radius-xs);object-fit:contain;background:#ffffff0a}.match-row__score[data-v-ff278894]{display:flex;align-items:center;justify-content:center;gap:var(--space-xs);font-family:var(--font-brand);font-size:var(--text-title-sm);font-weight:700;color:var(--text-primary);white-space:nowrap}.score-value[data-v-ff278894]{transition:color var(--dur-normal) var(--ease-out)}.score-sep[data-v-ff278894]{color:var(--text-tertiary);font-weight:500}.score-value--flash[data-v-ff278894]{color:var(--accent-primary);text-shadow:0 0 12px rgba(0,255,157,.5)}.match-row__channel[data-v-ff278894]{display:flex;align-items:center;justify-content:center;gap:var(--space-xs);flex-wrap:wrap}.match-row__line[data-v-ff278894]{padding:3px var(--space-sm);border-radius:var(--radius-sm);border:var(--glass-clear-border);background:var(--glass-clear-bg);color:var(--text-secondary);font-size:var(--text-caption-sm);text-decoration:none;white-space:nowrap;transition:background var(--dur-fast) var(--ease-out),color var(--dur-fast) var(--ease-out)}.match-row__line[data-v-ff278894]:hover{background:var(--accent-soft);color:var(--accent-primary)}.match-home__footer[data-v-ff278894]{margin-top:var(--space-xl);text-align:center;font-size:var(--text-body-sm)}.match-home__footer a[data-v-ff278894]{color:var(--text-tertiary);text-decoration:none}.match-home__footer a[data-v-ff278894]:hover{color:var(--accent-primary)}@media(max-width:900px){.match-home[data-v-ff278894]{padding:var(--space-md) var(--space-sm) var(--space-2xl);overflow-x:hidden}.match-home__head-row[data-v-ff278894]{gap:var(--space-sm)}.match-home__title[data-v-ff278894]{font-size:var(--text-title-md)}.match-home__tabs[data-v-ff278894]{flex-wrap:nowrap;overflow-x:auto;margin:var(--space-md) calc(var(--space-sm) * -1) var(--space-sm);padding:0 var(--space-sm) var(--space-xs);scrollbar-width:none;-webkit-overflow-scrolling:touch}.match-home__tabs[data-v-ff278894]::-webkit-scrollbar{display:none}.match-home__tab[data-v-ff278894]{flex-shrink:0;min-height:32px}.match-home__league-filter[data-v-ff278894],.match-home__league-label[data-v-ff278894]{width:100%}.match-home__league-select[data-v-ff278894]{flex:1;min-width:0;width:100%;font-size:16px}.match-home__sortbar[data-v-ff278894]{width:100%;gap:var(--space-sm)}.match-home__sort-toggle[data-v-ff278894]{min-height:32px}.match-home__lang-select[data-v-ff278894]{font-size:16px;max-width:40vw}.match-table__head[data-v-ff278894]{display:none}.match-table[data-v-ff278894]{background:transparent;border:none;box-shadow:none;overflow:visible}.match-row[data-v-ff278894]{grid-template-columns:28px minmax(0,1fr) auto minmax(0,1fr);grid-template-areas:"sport league time status" "sport home score away" "sport viewers channel channel";gap:var(--space-sm) var(--space-sm);margin-bottom:var(--space-sm);padding:var(--space-sm) var(--space-md);background:var(--bg-secondary);border:1px solid var(--border-subtle);border-radius:var(--radius-md);min-width:0;overflow:hidden}.match-row__sport[data-v-ff278894]{grid-area:sport;align-self:center;justify-content:flex-start;--sport-icon-size: 20px}.match-row__league[data-v-ff278894]{grid-area:league;min-width:0;justify-content:flex-start;text-align:left}.match-row__time[data-v-ff278894]{grid-area:time;text-align:center;min-width:0}.match-row__status[data-v-ff278894]{grid-area:status;min-width:0;justify-content:flex-end}.match-row__team--home[data-v-ff278894]{grid-area:home;justify-content:flex-end;text-align:right;min-width:0}.match-row__score[data-v-ff278894]{grid-area:score;min-width:0;padding:0 var(--space-xs)}.match-row__team--away[data-v-ff278894]{grid-area:away;justify-content:flex-start;text-align:left;min-width:0}.match-row__team[data-v-ff278894]{min-width:0}.match-row__team-name[data-v-ff278894]{min-width:0;flex:1 1 auto;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.league-badge[data-v-ff278894],.status-badge[data-v-ff278894]{max-width:100%;overflow:hidden;text-overflow:ellipsis}.status-badge[data-v-ff278894]{font-size:11px;padding:2px var(--space-sm)}.match-row__viewers[data-v-ff278894]{grid-area:viewers;justify-content:flex-start;min-width:0}.match-row__channel[data-v-ff278894]{grid-area:channel;justify-content:flex-end;min-width:0}.match-row__line[data-v-ff278894]{min-height:32px;display:inline-flex;align-items:center}}@media(max-width:480px){.match-home[data-v-ff278894]{padding:var(--space-sm) var(--space-sm) var(--space-xl)}.match-home__title[data-v-ff278894]{font-size:var(--text-title-sm)}.match-home__date[data-v-ff278894]{font-size:var(--text-caption)}.match-home__head-row[data-v-ff278894]{align-items:center}.match-home__lang-label[data-v-ff278894]{font-size:var(--text-caption)}.match-home__tab[data-v-ff278894]{font-size:var(--text-body-sm);padding:var(--space-xs) var(--space-sm)}.match-row[data-v-ff278894]{padding:var(--space-sm);gap:var(--space-xs) var(--space-xs)}.match-row__team[data-v-ff278894]{font-size:var(--text-body-sm)}.team-icon[data-v-ff278894]{width:18px;height:18px}.match-row__score[data-v-ff278894]{font-size:15px}.match-row__clock[data-v-ff278894]{font-size:var(--text-body-sm)}.league-badge[data-v-ff278894]{font-size:11px;max-width:32vw}.match-row__channel[data-v-ff278894]{flex-wrap:wrap}.match-row__line[data-v-ff278894]{font-size:11px}.match-row__viewers[data-v-ff278894]{font-size:var(--text-caption)}}:root{--bg-primary: #0a0b0f;--bg-secondary: #111318;--bg-elevated: #171a21;--bg-glass: rgba(255, 255, 255, .05);--accent-primary: #00ff9d;--accent-secondary: #3b82f6;--accent-soft: rgba(0, 255, 157, .08);--semantic-success: #10b981;--semantic-warning: #f59e0b;--semantic-error: #ef4444;--semantic-info: #3b82f6;--semantic-neutral: #6b7280;--text-primary: #e5e7eb;--text-secondary: #9ca3af;--text-tertiary: #6b7280;--text-inverse: #0a0b0f;--border-glass: rgba(255, 255, 255, .08);--border-active: rgba(0, 255, 157, .25);--border-subtle: rgba(255, 255, 255, .04);--glass-clear-bg: rgba(255, 255, 255, .1);--glass-clear-blur: blur(16px) saturate(110%);--glass-clear-border: 1px solid rgba(255, 255, 255, .08);--glass-thin-bg: rgba(255, 255, 255, .16);--glass-thin-blur: blur(12px) saturate(120%);--glass-thin-border: 1px solid rgba(255, 255, 255, .1);--glass-regular-bg: rgba(255, 255, 255, .22);--glass-regular-blur: blur(20px) saturate(140%);--glass-regular-border: 1px solid rgba(255, 255, 255, .16);--glass-thick-bg: rgba(255, 255, 255, .3);--glass-thick-blur: blur(24px) saturate(160%);--glass-thick-border: 1px solid rgba(255, 255, 255, .28);--radius-none: 0;--radius-xs: 4px;--radius-sm: 6px;--radius-md: 10px;--radius-lg: 16px;--radius-xl: 20px;--radius-full: 9999px;--space-xs: 4px;--space-sm: 8px;--space-md: 16px;--space-lg: 24px;--space-xl: 32px;--space-2xl: 48px;--space-3xl: 64px;--shadow-sm: 0 1px 3px rgba(0, 0, 0, .3), inset 0 1px 0 rgba(255, 255, 255, .03);--shadow-md: 0 4px 16px rgba(0, 0, 0, .35), inset 0 1px 0 rgba(255, 255, 255, .05);--shadow-lg: 0 8px 32px rgba(0, 0, 0, .45), inset 0 1px 0 rgba(255, 255, 255, .06);--shadow-glow: 0 0 20px rgba(0, 255, 157, .15), 0 4px 16px rgba(0, 0, 0, .3);--shadow-3d: 0 2px 6px rgba(0, 0, 0, .4), 0 8px 24px rgba(0, 0, 0, .3);--font-brand: "Urbanist", -apple-system, BlinkMacSystemFont, "SF Pro Display", sans-serif;--font-ui: "Inter", -apple-system, BlinkMacSystemFont, "SF Pro Text", sans-serif;--text-display-xl: 36px;--text-display-lg: 28px;--text-title-lg: 24px;--text-title-md: 20px;--text-title-sm: 16px;--text-body: 14px;--text-body-sm: 13px;--text-caption: 12px;--text-caption-sm: 11px;--leading-tight: 1.2;--leading-normal: 1.4;--leading-relaxed: 1.5;--dur-fast: .15s;--dur-normal: .25s;--dur-slow: .4s;--ease-out: cubic-bezier(.16, 1, .3, 1);--ease-in: cubic-bezier(.4, 0, 1, 1);--ease-spring: cubic-bezier(.25, .1, .25, 1);--sidebar-width: 280px;--sidebar-width-collapsed: 64px;--detail-panel-width: 400px;--control-height: 40px;--button-height: 44px;--tap-min: 44px;--z-nav: 100;--z-dropdown: 200;--z-modal: 300;--z-toast: 400}[data-theme=light]{--bg-primary: #f8f9fa;--bg-secondary: #ffffff;--bg-elevated: #ffffff;--bg-glass: rgba(255, 255, 255, .65);--accent-primary: #059669;--accent-secondary: #2563eb;--accent-soft: rgba(5, 150, 105, .08);--semantic-success: #059669;--semantic-warning: #d97706;--semantic-error: #dc2626;--semantic-info: #2563eb;--semantic-neutral: #6b7280;--text-primary: #111827;--text-secondary: #4b5563;--text-tertiary: #9ca3af;--text-inverse: #ffffff;--border-glass: rgba(0, 0, 0, .06);--border-active: rgba(5, 150, 105, .25);--border-subtle: rgba(0, 0, 0, .04);--glass-clear-bg: rgba(255, 255, 255, .4);--glass-clear-blur: blur(12px) saturate(120%);--glass-clear-border: 1px solid rgba(0, 0, 0, .04);--glass-thin-bg: rgba(255, 255, 255, .62);--glass-thin-blur: blur(10px) saturate(130%);--glass-thin-border: 1px solid rgba(0, 0, 0, .05);--glass-regular-bg: rgba(255, 255, 255, .72);--glass-regular-blur: blur(16px) saturate(140%);--glass-regular-border: 1px solid rgba(0, 0, 0, .08);--glass-thick-bg: rgba(255, 255, 255, .85);--glass-thick-blur: blur(20px) saturate(150%);--glass-thick-border: 1px solid rgba(0, 0, 0, .1);--shadow-sm: 0 1px 3px rgba(0, 0, 0, .06), inset 0 1px 0 rgba(255, 255, 255, .6);--shadow-md: 0 4px 16px rgba(0, 0, 0, .08), inset 0 1px 0 rgba(255, 255, 255, .7);--shadow-lg: 0 8px 32px rgba(0, 0, 0, .12), inset 0 1px 0 rgba(255, 255, 255, .8);--shadow-glow: 0 0 20px rgba(5, 150, 105, .18), 0 4px 16px rgba(0, 0, 0, .08);--shadow-3d: 0 2px 6px rgba(0, 0, 0, .08), 0 8px 24px rgba(0, 0, 0, .06)}@media(prefers-color-scheme:light){:root:not([data-theme]){--bg-primary: #f8f9fa;--bg-secondary: #ffffff;--bg-elevated: #ffffff;--bg-glass: rgba(255, 255, 255, .65);--accent-primary: #059669;--accent-secondary: #2563eb;--accent-soft: rgba(5, 150, 105, .08);--semantic-success: #059669;--semantic-warning: #d97706;--semantic-error: #dc2626;--semantic-info: #2563eb;--text-primary: #111827;--text-secondary: #4b5563;--text-tertiary: #9ca3af;--text-inverse: #ffffff;--border-glass: rgba(0, 0, 0, .06);--border-active: rgba(5, 150, 105, .25);--border-subtle: rgba(0, 0, 0, .04);--glass-clear-bg: rgba(255, 255, 255, .4);--glass-clear-blur: blur(12px) saturate(120%);--glass-clear-border: 1px solid rgba(0, 0, 0, .04);--glass-thin-bg: rgba(255, 255, 255, .62);--glass-thin-blur: blur(10px) saturate(130%);--glass-thin-border: 1px solid rgba(0, 0, 0, .05);--glass-regular-bg: rgba(255, 255, 255, .72);--glass-regular-blur: blur(16px) saturate(140%);--glass-regular-border: 1px solid rgba(0, 0, 0, .08);--glass-thick-bg: rgba(255, 255, 255, .85);--glass-thick-blur: blur(20px) saturate(150%);--glass-thick-border: 1px solid rgba(0, 0, 0, .1);--shadow-sm: 0 1px 3px rgba(0, 0, 0, .06), inset 0 1px 0 rgba(255, 255, 255, .6);--shadow-md: 0 4px 16px rgba(0, 0, 0, .08), inset 0 1px 0 rgba(255, 255, 255, .7);--shadow-lg: 0 8px 32px rgba(0, 0, 0, .12), inset 0 1px 0 rgba(255, 255, 255, .8);--shadow-glow: 0 0 20px rgba(5, 150, 105, .18), 0 4px 16px rgba(0, 0, 0, .08);--shadow-3d: 0 2px 6px rgba(0, 0, 0, .08), 0 8px 24px rgba(0, 0, 0, .06)}}*{box-sizing:border-box}html,body{margin:0;padding:0;background:var(--bg-primary);color:var(--text-primary);font-family:var(--font-ui);font-size:var(--text-body);line-height:var(--leading-relaxed);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}h1,h2,h3,h4{font-family:var(--font-brand);color:var(--text-primary);margin:0;line-height:var(--leading-tight)}h1{font-size:var(--text-title-lg);font-weight:600}h2{font-size:var(--text-title-md);font-weight:600}h3{font-size:var(--text-title-sm);font-weight:500}a{color:var(--accent-secondary);text-decoration:none}a:hover{text-decoration:underline}.glass-clear{background:var(--glass-clear-bg);backdrop-filter:var(--glass-clear-blur);-webkit-backdrop-filter:var(--glass-clear-blur);border:var(--glass-clear-border)}.glass-thin{background:var(--glass-thin-bg);backdrop-filter:var(--glass-thin-blur);-webkit-backdrop-filter:var(--glass-thin-blur);border:var(--glass-thin-border)}.glass-regular{background:var(--glass-regular-bg);backdrop-filter:var(--glass-regular-blur);-webkit-backdrop-filter:var(--glass-regular-blur);border:var(--glass-regular-border)}.glass-thick{background:var(--glass-thick-bg);backdrop-filter:var(--glass-thick-blur);-webkit-backdrop-filter:var(--glass-thick-blur);border:var(--glass-thick-border)}@supports not ((backdrop-filter: blur(1px)) or (-webkit-backdrop-filter: blur(1px))){.glass-clear{background:#1e2128eb}.glass-thin{background:#22252df0}.glass-regular{background:#262932f5}.glass-thick{background:#2a2d37fa}[data-theme=light] .glass-clear{background:#fffffff0}[data-theme=light] .glass-thin{background:#fffffff5}[data-theme=light] .glass-regular{background:#fffffffa}[data-theme=light] .glass-thick{background:#fff}}.surface{background:var(--bg-secondary);border:1px solid var(--border-subtle);border-radius:var(--radius-lg)}.surface--elevated{background:var(--bg-elevated);box-shadow:var(--shadow-sm)}.card{background:var(--bg-secondary);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);padding:var(--space-lg)}.card--glass{background:var(--glass-thin-bg);backdrop-filter:var(--glass-thin-blur);-webkit-backdrop-filter:var(--glass-thin-blur);border:var(--glass-thin-border)}.card__title{font-family:var(--font-brand);font-size:var(--text-title-sm);font-weight:500;color:var(--text-primary);margin:0 0 var(--space-sm)}.stat{display:flex;flex-direction:column;justify-content:space-between;min-height:120px;min-width:220px;padding:var(--space-md) var(--space-lg);border-radius:var(--radius-lg);background:var(--glass-thin-bg);backdrop-filter:var(--glass-thin-blur);-webkit-backdrop-filter:var(--glass-thin-blur);border:var(--glass-thin-border);box-shadow:var(--shadow-sm);transition:background var(--dur-fast) var(--ease-out),transform var(--dur-fast) var(--ease-out)}.stat:hover{background:var(--glass-regular-bg);transform:translateY(-2px)}.stat__label{display:flex;align-items:center;justify-content:space-between;font-size:var(--text-caption);font-weight:500;color:var(--text-secondary)}.stat__value{font-family:var(--font-brand);font-size:var(--text-display-lg);font-weight:700;color:var(--text-primary);line-height:var(--leading-tight);text-align:center;padding:var(--space-sm) 0}.stat__hint{font-size:var(--text-caption-sm);color:var(--text-tertiary)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-xs);height:var(--button-height);padding:0 var(--space-lg);border-radius:var(--radius-full);border:1px solid transparent;font-family:var(--font-ui);font-size:var(--text-body);font-weight:600;line-height:1;cursor:pointer;transition:filter var(--dur-fast) var(--ease-out),transform var(--dur-fast) var(--ease-spring),background var(--dur-fast) var(--ease-out);white-space:nowrap}.btn:focus-visible{outline:2px solid var(--accent-primary);outline-offset:2px}.btn--primary{background:var(--accent-primary);color:var(--text-inverse);box-shadow:var(--shadow-glow)}.btn--primary:hover:not(:disabled){filter:brightness(1.1)}.btn--glass{background:var(--glass-clear-bg);backdrop-filter:var(--glass-clear-blur);-webkit-backdrop-filter:var(--glass-clear-blur);border:var(--glass-clear-border);color:var(--text-secondary);font-weight:500}.btn--glass:hover:not(:disabled){background:var(--glass-regular-bg)}.btn--ghost{background:transparent;color:var(--text-secondary);font-weight:500}.btn--ghost:hover:not(:disabled){background:var(--bg-glass);color:var(--text-primary)}.btn--danger{background:var(--semantic-error);color:#fff}.btn--sm{height:32px;padding:0 var(--space-md);font-size:var(--text-body-sm)}.btn:active:not(:disabled){transform:scale(.97)}.btn:disabled{background:#ffffff1a;color:var(--text-tertiary);cursor:not-allowed;box-shadow:none}[data-theme=light] .btn:disabled{background:#0000000f}.input,.select,.textarea{width:100%;height:var(--control-height);padding:0 var(--space-md);border-radius:var(--radius-sm);background:#ffffff0a;border:1px solid var(--border-glass);color:var(--text-primary);font-family:var(--font-ui);font-size:var(--text-body);transition:border-color var(--dur-fast) var(--ease-out),box-shadow var(--dur-fast) var(--ease-out)}.textarea{height:auto;min-height:96px;padding:var(--space-sm) var(--space-md);resize:vertical}.input::placeholder,.textarea::placeholder{color:var(--text-tertiary);font-size:var(--text-body-sm)}.input:focus,.select:focus,.textarea:focus{outline:none;border-color:var(--accent-primary);box-shadow:0 0 0 3px var(--accent-soft)}.select{appearance:none;cursor:pointer}[data-theme=light] .input,[data-theme=light] .select,[data-theme=light] .textarea{background:#00000005}.table{width:100%;border-collapse:collapse;background:var(--bg-secondary);border-radius:var(--radius-lg);overflow:hidden}.table th{padding:var(--space-sm) var(--space-md);background:#ffffff08;font-size:var(--text-caption);font-weight:500;color:var(--text-tertiary);text-align:left;white-space:nowrap}.table td{padding:var(--space-sm) var(--space-md);border-top:1px solid var(--border-subtle);font-size:var(--text-body);color:var(--text-primary);vertical-align:middle}.table tbody tr{height:48px;transition:background var(--dur-fast) var(--ease-out)}.table tbody tr:hover{background:#ffffff08}.table tbody tr.is-selected{background:var(--accent-soft)}[data-theme=light] .table th,[data-theme=light] .table tbody tr:hover{background:#00000005}.badge{display:inline-flex;align-items:center;gap:var(--space-xs);padding:4px 10px;border-radius:var(--radius-full);font-size:var(--text-caption-sm);font-weight:500;line-height:1.4;white-space:nowrap}.badge--success{background:#10b9811a;color:var(--semantic-success)}.badge--warning{background:#f59e0b1a;color:var(--semantic-warning)}.badge--error{background:#ef44441a;color:var(--semantic-error)}.badge--info{background:#3b82f61a;color:var(--semantic-info)}.badge--neutral{background:#ffffff0f;color:var(--text-secondary)}[data-theme=light] .badge--neutral{background:#0000000d}.status-dot{display:inline-block;width:10px;height:10px;flex-shrink:0}.status-dot--live{background:var(--semantic-success);border-radius:50%;animation:status-pulse 2s var(--ease-out) infinite}.status-dot--pending{background:var(--semantic-warning);border-radius:2px}.status-dot--offline{background:transparent;border:2px solid var(--text-tertiary);border-radius:50%}.status-dot--error{background:var(--semantic-error);clip-path:polygon(50% 0,100% 100%,0 100%)}@keyframes status-pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.55;transform:scale(1.25)}}.modal-backdrop{position:fixed;inset:0;z-index:var(--z-modal);display:flex;align-items:center;justify-content:center;padding:var(--space-lg);background:#0009;backdrop-filter:blur(2px);-webkit-backdrop-filter:blur(2px)}.modal{width:100%;max-width:640px;min-width:0;max-height:85vh;overflow-y:auto;padding:var(--space-xl);border-radius:var(--radius-xl);background:var(--glass-thick-bg);backdrop-filter:var(--glass-thick-blur);-webkit-backdrop-filter:var(--glass-thick-blur);border:var(--glass-thick-border);box-shadow:var(--shadow-lg);animation:modal-in var(--dur-normal) var(--ease-out)}@keyframes modal-in{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}.timeline{display:flex;gap:120px;padding:var(--space-lg) 0;overflow-x:auto}.timeline__item{display:flex;flex-direction:column;align-items:center;gap:var(--space-xs);flex-shrink:0}.timeline__node{width:12px;height:12px;border-radius:50%;background:var(--semantic-info);box-shadow:0 0 0 2px #ffffff1a;transition:transform var(--dur-fast) var(--ease-out)}.timeline__item:hover .timeline__node{transform:scale(1.2)}.timeline__label{font-size:var(--text-caption);font-weight:500;color:var(--text-primary)}.timeline__time{font-size:var(--text-caption-sm);color:var(--text-tertiary)}:focus-visible{outline:2px solid var(--accent-primary);outline-offset:2px}.skip-link{position:absolute;left:-9999px;z-index:var(--z-toast);padding:var(--space-sm) var(--space-md);background:var(--accent-primary);color:var(--text-inverse);border-radius:var(--radius-sm)}.skip-link:focus{left:var(--space-sm);top:var(--space-sm)}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:#ffffff1f;border-radius:var(--radius-full)}::-webkit-scrollbar-thumb:hover{background:#fff3}[data-theme=light] ::-webkit-scrollbar-thumb{background:#00000026}[data-theme=light] ::-webkit-scrollbar-thumb:hover{background:#00000040}body{margin:0;background:var(--bg-primary);color:var(--text-primary);font-family:var(--font-ui);font-size:var(--text-body);line-height:var(--leading-relaxed);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.site-topbar{position:sticky;top:0;z-index:var(--z-nav);display:flex;align-items:center;justify-content:space-between;gap:var(--space-md);padding:var(--space-sm) var(--space-lg);background:var(--glass-regular-bg);backdrop-filter:var(--glass-regular-blur);-webkit-backdrop-filter:var(--glass-regular-blur);border-bottom:var(--glass-regular-border)}.site-topbar__brand{display:flex;align-items:center;gap:var(--space-sm);font-family:var(--font-brand);font-size:var(--text-title-sm);font-weight:600;color:var(--text-primary);text-decoration:none}.site-topbar__mark{width:24px;height:24px;flex-shrink:0;object-fit:contain;border-radius:var(--radius-sm);background:#fff;box-shadow:var(--shadow-glow)}@media(max-width:600px){.site-topbar{padding:var(--space-sm) var(--space-sm);gap:var(--space-sm)}.site-topbar__brand{font-size:var(--text-body-sm);white-space:nowrap}}.site-list{max-width:1200px;margin:0 auto;padding:var(--space-xl) var(--space-md)}.site-list__title{font-family:var(--font-brand);font-size:var(--text-title-lg);font-weight:600;margin:0 0 var(--space-md)}.site-list__status{color:var(--text-secondary)}.site-list__status--error{color:var(--semantic-error)}.site-list__grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:var(--space-lg);list-style:none;padding:0;margin:0}@media(max-width:600px){.site-list{padding:var(--space-md) var(--space-sm);overflow-x:hidden}.site-list__title{font-size:var(--text-title-sm)}.site-list__grid{grid-template-columns:1fr;gap:var(--space-sm)}.site-card__link{padding:var(--space-md)}.site-card__logo{height:140px}}.site-card{background:var(--bg-secondary);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);overflow:hidden;transition:transform var(--dur-fast) var(--ease-out),box-shadow var(--dur-fast) var(--ease-out)}.site-card:hover{transform:translateY(-2px);box-shadow:var(--shadow-md)}.site-card__link{display:block;padding:var(--space-lg);color:inherit;text-decoration:none}.site-card__logo{width:100%;height:112px;object-fit:cover;border-radius:var(--radius-md);margin-bottom:var(--space-md);background:var(--bg-elevated)}.site-card__name{font-family:var(--font-brand);font-size:var(--text-title-sm);font-weight:500;margin:0 0 var(--space-xs)}.site-card__domain{font-size:var(--text-body-sm);color:var(--text-tertiary);margin:0}.site-detail{max-width:1200px;margin:0 auto;padding:var(--space-xl) var(--space-md)}.site-detail__header h1{font-family:var(--font-brand);font-size:var(--text-title-lg);font-weight:600;margin:0 0 var(--space-sm)}.site-detail__desc{color:var(--text-secondary);margin:0 0 var(--space-lg)}.site-detail__status{color:var(--text-secondary)}.site-detail__status--error{color:var(--semantic-error)}.site-detail__list{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:var(--space-lg);list-style:none;padding:0;margin:0}@media(max-width:600px){.site-detail{padding:var(--space-md) var(--space-sm);overflow-x:hidden}.site-detail__header h1{font-size:var(--text-title-sm);word-break:break-word}.site-detail__desc{font-size:var(--text-body-sm)}.site-detail__list{grid-template-columns:1fr;gap:var(--space-sm)}}.stream-card{background:var(--bg-secondary);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);overflow:hidden}.stream-card__link{display:block;padding:var(--space-md);color:inherit;text-decoration:none}.stream-card__cover{width:100%;aspect-ratio:16 / 9;object-fit:cover;border-radius:var(--radius-md);margin-bottom:var(--space-md);background:var(--bg-elevated)}.stream-card__title{display:block;font-family:var(--font-brand);font-size:var(--text-title-sm);font-weight:500;margin-bottom:var(--space-sm);overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;white-space:normal;word-break:break-word}.stream-card__live{display:inline-block;font-size:var(--text-caption-sm);font-weight:500;color:#fff;background:var(--semantic-error);border-radius:var(--radius-full);padding:2px var(--space-sm)}
