.player-wrap[data-v-ff64279c]{position:relative;width:100%;height:100%;background:#000;overflow:hidden}.player-wrap video[data-v-ff64279c]{width:100%;height:100%;object-fit:contain;display:block;background:#000}.player-overlay[data-v-ff64279c]{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;background:#000000bf;color:#aaa;padding:20px;text-align:center;z-index:2;pointer-events:none}.player-overlay p[data-v-ff64279c]{font-size:14px}.error-text[data-v-ff64279c]{max-width:260px;font-size:14px;color:#ddd;line-height:1.5}.retry-btn[data-v-ff64279c]{pointer-events:auto;-webkit-appearance:none;-moz-appearance:none;appearance:none;border:1px solid #555;background:#1a1a1a;color:#fff;border-radius:2px;padding:8px 18px;font-family:inherit;font-size:14px;cursor:pointer}.retry-btn[data-v-ff64279c]:hover{background:#2a2a2a;border-color:#888}.retry-btn[data-v-ff64279c]:focus-visible{outline:1px solid #aaa;outline-offset:2px}.spinner[data-v-ff64279c]{width:28px;height:28px;border:2px solid #333;border-top-color:#ccc;border-radius:50%;animation:spin-ff64279c .7s linear infinite}@keyframes spin-ff64279c{to{transform:rotate(360deg)}}@media(prefers-reduced-motion:reduce){.spinner[data-v-ff64279c]{animation:none!important}}.channel-logo[data-v-f0b393d0]{flex-shrink:0;width:28px;height:28px;border-radius:2px;overflow:hidden;background:#222;display:inline-flex;align-items:center;justify-content:center}.channel-logo img[data-v-f0b393d0]{width:100%;height:100%;object-fit:contain;display:block;background:#111;padding:1px}.channel-logo.placeholder[data-v-f0b393d0]{background:#2a2a2a}.logo-fallback[data-v-f0b393d0]{font-size:11px;font-weight:700;color:#888;line-height:1;-webkit-user-select:none;user-select:none}:root{--bg: #111111;--bg-side: #161616;--bg-bar: #1a1a1a;--bg-hover: #222222;--bg-active: #2a2a2a;--line: #2c2c2c;--text: #eeeeee;--text-muted: #999999;--text-faint: #666666;--accent: #dddddd;--header-h: 52px;--font: "Noto Sans SC", "PingFang SC", "Microsoft YaHei", sans-serif}*{margin:0;padding:0;box-sizing:border-box}html,body{min-height:100%}body{font-family:var(--font);color:var(--text);background:var(--bg);min-height:100vh;overflow-x:hidden;-webkit-font-smoothing:antialiased}#app{min-height:100vh}.app{min-height:100vh;display:flex;flex-direction:column}.header{position:sticky;top:0;z-index:100;height:var(--header-h);display:flex;align-items:center;padding:0 16px;background:var(--bg);border-bottom:1px solid var(--line)}.brand{display:flex;align-items:baseline;gap:12px;width:100%;min-width:0}.header h1{font-size:18px;font-weight:700;letter-spacing:.06em;line-height:1;color:#fff;white-space:nowrap}.source-info{font-size:12px;color:var(--text-faint);line-height:1.3;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}.main{display:flex;flex-direction:column;flex:1;min-height:calc(100vh - var(--header-h))}.player-section{background:#000;position:relative;order:-1;display:flex;flex-direction:column}.now-playing{display:flex;align-items:center;gap:10px;padding:10px 14px;background:var(--bg-bar);border-bottom:1px solid var(--line)}.now-playing .now-logo,.now-playing :deep(.channel-logo){width:36px;height:36px;border-radius:2px}.now-text{display:flex;flex-direction:column;gap:2px;min-width:0}.now-label{font-size:12px;color:var(--text-muted)}.live-badge{color:var(--accent);font-weight:700;margin-right:6px}.now-name{font-size:15px;font-weight:600;color:#fff;line-height:1.3;word-break:break-word}.player-shell{padding:0;background:#000}.player-container{width:100%;aspect-ratio:16 / 9;background:#000;overflow:hidden;position:relative}.player-container :deep(.player-wrap){position:absolute;top:0;right:0;bottom:0;left:0}.channel-section{flex:1;background:var(--bg-side);border-top:1px solid var(--line);padding:12px;order:0}.channel-toolbar{display:flex;flex-direction:column;gap:10px;margin-bottom:8px;position:sticky;top:0;z-index:5;padding-bottom:8px;background:var(--bg-side)}.search-box{display:block;width:100%}.search-input{width:100%;-webkit-appearance:none;-moz-appearance:none;appearance:none;background:var(--bg);border:1px solid var(--line);border-radius:2px;color:var(--text);font-family:inherit;font-size:15px;line-height:1.4;padding:9px 12px;outline:none}.search-input::placeholder{color:var(--text-faint)}.search-input:focus{border-color:#555}.category-tabs{display:flex;gap:0;border-bottom:1px solid var(--line)}.category-tab{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:0;background:transparent;color:var(--text-muted);border-radius:0;padding:8px 12px;font-family:inherit;font-size:13px;font-weight:500;cursor:pointer;min-height:36px;border-bottom:2px solid transparent;margin-bottom:-1px}.category-tab:hover{color:var(--text)}.category-tab.active{color:#fff;border-bottom-color:var(--accent)}.channel-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(148px,1fr));gap:0}.channel-item{display:flex;align-items:center;gap:10px;width:100%;background:transparent;border:0;border-bottom:1px solid var(--line);border-radius:0;padding:10px 8px;cursor:pointer;text-align:left;font-family:inherit;font-size:14px;color:var(--text);line-height:1.35;word-break:break-word}.channel-name{flex:1;min-width:0}.live-dot{width:6px;height:6px;border-radius:50%;flex-shrink:0;background:var(--accent)}.channel-item:hover{background:var(--bg-hover)}.channel-item.active{background:var(--bg-active);color:#fff}.channel-item:focus-visible{outline:1px solid #888;outline-offset:-1px}.status,.empty-hint{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;text-align:center;color:var(--text-muted);padding:40px 16px;font-size:14px;flex:1}.status-error{color:#bbb}.status-spinner{width:22px;height:22px;border:2px solid #333;border-top-color:#ccc;border-radius:50%;animation:spin .7s linear infinite}.empty-hint{padding:28px 12px}@keyframes spin{to{transform:rotate(360deg)}}@media(min-width:900px){.header{padding:0 20px}.main{flex-direction:row;width:100%}.player-section{flex:1;min-width:0;order:0;position:sticky;top:var(--header-h);height:calc(100vh - var(--header-h));border-left:1px solid var(--line)}.now-playing{flex-shrink:0;padding:10px 16px}.player-shell{flex:1;display:flex;align-items:center;justify-content:center;padding:0;min-height:0}.player-container{flex:1;width:100%;max-width:100%;max-height:100%;height:100%;aspect-ratio:auto;border-radius:0;border:0}.channel-section{width:300px;flex-shrink:0;order:-1;overflow-y:auto;height:calc(100vh - var(--header-h));padding:12px 0 16px;border-top:0;border-right:1px solid var(--line)}.channel-toolbar{position:sticky;top:0;margin:0;padding:0 12px 8px;background:var(--bg-side)}.channel-list{grid-template-columns:1fr}.channel-item{padding:9px 12px;font-size:13px}.channel-item :deep(.channel-logo){width:28px;height:28px}}@media(max-width:899px){.player-section{position:sticky;top:var(--header-h);z-index:50}.channel-list{grid-template-columns:1fr 1fr}.channel-item{font-size:13px}.channel-item :deep(.channel-logo){width:28px;height:28px}.search-icon{display:none}}@media(max-width:480px){:root{--header-h: 48px}.header{padding:0 12px}.header h1{font-size:16px}.channel-section{padding:10px 8px 16px}.now-playing{padding:8px 12px}.now-name{font-size:14px}.category-tab{flex:1;padding:8px 4px;font-size:12px;text-align:center}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important}}
