/* Sierra Hub minimalist karaoke — v1.8.9 */
.page-karaoke{
  --kr-bg:var(--public-bg,#f6f7f9);
  --kr-surface:var(--public-surface,#fff);
  --kr-soft:var(--public-surface-soft,#f0f2f5);
  --kr-border:var(--public-border,rgba(15,20,30,.12));
  --kr-text:var(--public-text,#242a33);
  --kr-heading:var(--public-heading,#111720);
  --kr-muted:var(--public-muted,#6d7581);
  --kr-radius:20px;
  --kr-shadow:0 18px 52px rgba(15,23,42,.08);
}
.page-karaoke .karaoke-head{padding:clamp(54px,7vw,82px) 0 26px;background:var(--kr-bg)}
.page-karaoke .karaoke-head-row{display:flex;align-items:end;justify-content:space-between;gap:24px}
.page-karaoke .karaoke-head h1{margin:4px 0 0;color:var(--kr-heading);font-size:clamp(2.7rem,6vw,5.5rem);font-weight:950;line-height:.92;letter-spacing:-.065em}
.page-karaoke .karaoke-head .btn{min-height:44px;padding-inline:1rem}
.page-karaoke .karaoke-room-section{padding:0 0 clamp(46px,7vw,86px);background:var(--kr-bg)}
.page-karaoke .karaoke-layout{display:grid;grid-template-columns:280px minmax(0,1fr);gap:18px;align-items:start}
.page-karaoke .karaoke-library,.page-karaoke .karaoke-stage,.page-karaoke .karaoke-import-card{border:1px solid var(--kr-border);background:var(--kr-surface);color:var(--kr-text);box-shadow:var(--kr-shadow)}
.page-karaoke .karaoke-library{position:sticky;top:88px;padding:14px;border-radius:var(--kr-radius)}
.page-karaoke .karaoke-library-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:4px 4px 12px}
.page-karaoke .karaoke-library-head h2{margin:0;color:var(--kr-heading);font-size:1rem;font-weight:900}
.page-karaoke .karaoke-count{min-width:30px;height:30px;display:grid;place-items:center;padding:0 8px;border-radius:999px;background:var(--kr-soft);color:var(--kr-muted);font-size:.72rem;font-weight:850}
.page-karaoke .karaoke-library-search{height:42px;display:grid;grid-template-columns:16px minmax(0,1fr);align-items:center;gap:8px;padding:0 11px;margin-bottom:10px;border:1px solid var(--kr-border);border-radius:12px;background:var(--kr-soft);color:var(--kr-muted)}
.page-karaoke .karaoke-library-search:focus-within{border-color:color-mix(in srgb,var(--shph-primary) 58%,var(--kr-border));box-shadow:0 0 0 3px color-mix(in srgb,var(--shph-primary) 12%,transparent)}
.page-karaoke .karaoke-library-search input{width:100%;height:38px;min-height:0!important;padding:0!important;border:0!important;outline:0!important;background:transparent!important;color:var(--kr-text)!important;box-shadow:none!important;font-size:.84rem}
.page-karaoke .karaoke-track-list{display:grid;gap:5px;max-height:min(66vh,680px);overflow:auto;padding-right:2px;scrollbar-width:thin}
.page-karaoke .karaoke-track-card{display:grid;grid-template-columns:44px minmax(0,1fr) 16px;gap:10px;align-items:center;padding:7px;border:1px solid transparent;border-radius:13px;color:inherit;text-decoration:none;transition:background-color .16s ease,border-color .16s ease,transform .16s ease}
.page-karaoke .karaoke-track-card:hover{transform:translateY(-1px);border-color:var(--kr-border);background:var(--kr-soft)}
.page-karaoke .karaoke-track-card.active{border-color:color-mix(in srgb,var(--shph-primary) 38%,var(--kr-border));background:color-mix(in srgb,var(--shph-primary) 8%,var(--kr-surface))}
.page-karaoke .karaoke-track-card[hidden]{display:none}
.page-karaoke .karaoke-track-art{width:44px;height:40px;display:grid;place-items:center;overflow:hidden;border-radius:10px;background:linear-gradient(145deg,#101521,#252e40);color:#fff;font-size:.8rem}
.page-karaoke .karaoke-track-art img{width:100%;height:100%;object-fit:cover}
.page-karaoke .karaoke-track-copy{min-width:0;display:grid;gap:1px}
.page-karaoke .karaoke-track-copy strong,.page-karaoke .karaoke-track-copy small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.page-karaoke .karaoke-track-copy strong{color:var(--kr-heading);font-size:.8rem}.page-karaoke .karaoke-track-copy small{color:var(--kr-muted);font-size:.68rem}
.page-karaoke .karaoke-track-card>i{color:var(--shph-primary);font-size:.65rem}
.page-karaoke .karaoke-empty,.page-karaoke .karaoke-no-results{display:grid;place-items:center;gap:7px;padding:28px 10px;color:var(--kr-muted);font-size:.8rem;text-align:center}
.page-karaoke .karaoke-empty i{color:var(--shph-primary);font-size:1.3rem}.page-karaoke .karaoke-empty a{color:var(--shph-primary);font-weight:800}
.page-karaoke .karaoke-no-results[hidden]{display:none}

.page-karaoke .karaoke-stage{overflow:hidden;border-radius:var(--kr-radius)}
.page-karaoke .karaoke-stage-top{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:14px 16px;border-bottom:1px solid var(--kr-border)}
.page-karaoke .karaoke-now-playing{min-width:0;display:flex;align-items:center;gap:11px}
.page-karaoke .karaoke-cover{width:52px;height:46px;flex:0 0 auto;display:grid;place-items:center;overflow:hidden;border-radius:12px;background:linear-gradient(145deg,#101521,#252e40);color:#fff}
.page-karaoke .karaoke-cover img{width:100%;height:100%;object-fit:cover}
.page-karaoke .karaoke-now-copy{min-width:0}.page-karaoke .karaoke-now-copy>span{display:block;margin-bottom:1px;color:var(--kr-muted);font-size:.63rem;font-weight:850;text-transform:uppercase;letter-spacing:.08em}
.page-karaoke .karaoke-now-copy h2,.page-karaoke .karaoke-now-copy p{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.page-karaoke .karaoke-now-copy h2{max-width:min(42vw,620px);margin:0;color:var(--kr-heading);font-size:1rem}.page-karaoke .karaoke-now-copy p{max-width:min(42vw,620px);margin:1px 0 0;color:var(--kr-muted);font-size:.7rem}
.page-karaoke .karaoke-stage-actions{display:flex;align-items:center;gap:7px}
.page-karaoke .karaoke-sync-badge{max-width:180px;height:34px;display:inline-flex;align-items:center;gap:6px;padding:0 10px;border:1px solid var(--kr-border);border-radius:999px;background:var(--kr-soft);color:var(--kr-muted);font-size:.66rem;font-weight:800;white-space:nowrap;overflow:hidden}
.page-karaoke .karaoke-sync-badge span{overflow:hidden;text-overflow:ellipsis}.page-karaoke .karaoke-sync-badge i{color:#299565}
.page-karaoke .karaoke-action-button,.page-karaoke .karaoke-stage-actions .icon-button{width:38px;height:38px;display:grid;place-items:center;padding:0;border:1px solid var(--kr-border);border-radius:11px;background:var(--kr-surface);color:var(--kr-text)}

.page-karaoke .karaoke-performance{display:grid;grid-template-columns:minmax(300px,.8fr) minmax(0,1.2fr);min-height:430px;background:#0b0e15;color:#fff}
.page-karaoke .karaoke-media-shell{position:relative;min-height:430px;display:grid;place-items:center;overflow:hidden;border-right:1px solid rgba(255,255,255,.08);background:radial-gradient(circle at 50% 38%,rgba(111,74,255,.19),transparent 42%),#080b11}
.page-karaoke .karaoke-video-player,.page-karaoke .karaoke-video-player iframe{width:100%;height:100%;min-height:430px;border:0}
.page-karaoke .karaoke-audio-player{position:absolute;left:16px;right:16px;bottom:16px;width:calc(100% - 32px)}
.page-karaoke .karaoke-audio-visual{display:flex;align-items:center;gap:7px;height:110px}.page-karaoke .karaoke-audio-visual span{width:7px;height:34%;border-radius:99px;background:linear-gradient(180deg,#fff,var(--shph-primary));animation:kr-bars 1.2s ease-in-out infinite alternate}.page-karaoke .karaoke-audio-visual span:nth-child(2){height:78%;animation-delay:-.5s}.page-karaoke .karaoke-audio-visual span:nth-child(3){height:100%;animation-delay:-.8s}.page-karaoke .karaoke-audio-visual span:nth-child(4){height:70%;animation-delay:-.3s}.page-karaoke .karaoke-audio-visual span:nth-child(5){height:42%;animation-delay:-.7s}
@keyframes kr-bars{to{transform:scaleY(.45);opacity:.55}}
.page-karaoke .karaoke-stage-empty{display:grid;place-items:center;gap:9px;color:rgba(255,255,255,.68);text-align:center}.page-karaoke .karaoke-stage-empty i{font-size:1.5rem}.page-karaoke .karaoke-stage-empty strong{color:#fff}.page-karaoke .karaoke-stage-empty a{color:#fff;font-size:.78rem;font-weight:800}
.page-karaoke .karaoke-live-panel{position:relative;min-height:430px;display:flex;flex-direction:column;justify-content:center;padding:clamp(26px,4vw,52px);background:radial-gradient(circle at 50% 45%,rgba(126,88,255,.17),transparent 54%),linear-gradient(145deg,#10141d,#080b11);color:#fff}
.page-karaoke .karaoke-live-status{position:absolute;top:18px;left:20px;color:rgba(255,255,255,.58);font-size:.65rem;font-weight:800}.page-karaoke .karaoke-live-status i{font-size:.45rem;color:#55d98d}
.page-karaoke .karaoke-time-row{position:absolute;left:20px;right:20px;bottom:18px;display:grid;grid-template-columns:36px minmax(0,1fr) 36px;align-items:center;gap:10px;color:rgba(255,255,255,.58);font-size:.65rem;font-variant-numeric:tabular-nums}
.page-karaoke .karaoke-seek{width:100%;accent-color:var(--shph-primary)}
.page-karaoke .karaoke-lyric-focus{display:grid;gap:16px;text-align:center;text-wrap:balance}
.page-karaoke .karaoke-previous-line,.page-karaoke .karaoke-next-line{min-height:24px;color:rgba(255,255,255,.34);font-size:calc(.95rem * var(--karaoke-lyric-scale));font-weight:700}
.page-karaoke .karaoke-current-line{min-height:110px;display:grid;place-items:center;color:#fff;font-size:calc(clamp(2rem,4.5vw,4.8rem) * var(--karaoke-lyric-scale));font-weight:950;line-height:1.02;letter-spacing:-.045em}
.page-karaoke .karaoke-countdown{display:grid;place-items:center;width:1.25em;height:1.25em;margin:auto;border:1px solid rgba(255,255,255,.2);border-radius:50%;font-size:1.2em}
.page-karaoke .karaoke-word{position:relative;display:inline-block;color:rgba(255,255,255,.42)}.page-karaoke .karaoke-word::after{content:attr(data-word);position:absolute;inset:0;width:calc(var(--karaoke-word-progress,0) * 100%);overflow:hidden;color:#fff;white-space:nowrap}
.page-karaoke .karaoke-voice-reactor{position:absolute;left:20%;right:20%;bottom:44px;height:3px;overflow:hidden;border-radius:99px;background:rgba(255,255,255,.12)}.page-karaoke .karaoke-voice-reactor span{display:block;width:100%;height:100%;transform:scaleX(0);transform-origin:left;background:linear-gradient(90deg,var(--shph-primary),var(--shph-secondary));transition:transform .08s linear}

.page-karaoke .karaoke-control-deck{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:16px;padding:12px 14px;border-bottom:1px solid var(--kr-border);background:var(--kr-surface)}
.page-karaoke .karaoke-transport-controls,.page-karaoke .karaoke-session-controls{display:flex;align-items:center;gap:7px}.page-karaoke .karaoke-session-controls{justify-content:flex-end}
.page-karaoke .karaoke-control-button,.page-karaoke .karaoke-play-button,.page-karaoke .karaoke-reset-offset,.page-karaoke .karaoke-view-controls button{min-width:40px;height:40px;display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:0 11px;border:1px solid var(--kr-border);border-radius:11px;background:var(--kr-surface);color:var(--kr-text);font-size:.72rem;font-weight:850}
.page-karaoke .karaoke-play-button{min-width:84px;border-color:transparent;background:var(--shph-primary);color:#fff}.page-karaoke .karaoke-control-button:disabled,.page-karaoke .karaoke-play-button:disabled{opacity:.45;cursor:not-allowed}
.page-karaoke .karaoke-offset-control{min-width:230px;height:40px;display:grid;grid-template-columns:32px minmax(80px,1fr) 44px;align-items:center;gap:8px;padding:0 10px;border:1px solid var(--kr-border);border-radius:11px;background:var(--kr-soft);font-size:.68rem;font-weight:800}.page-karaoke .karaoke-offset-control input{width:100%;accent-color:var(--shph-primary)}.page-karaoke .karaoke-offset-control output{text-align:right;color:var(--kr-muted);font-variant-numeric:tabular-nums}
.page-karaoke .karaoke-transcript{background:var(--kr-surface)}
.page-karaoke .karaoke-transcript-head{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:15px 16px 10px}.page-karaoke .karaoke-transcript-head h3{margin:0;color:var(--kr-heading);font-size:.95rem}.page-karaoke .karaoke-transcript-head p{margin:2px 0 0;color:var(--kr-muted);font-size:.66rem}
.page-karaoke .karaoke-view-controls{display:flex;gap:5px}.page-karaoke .karaoke-view-controls button{width:34px;min-width:34px;height:34px;padding:0}
.page-karaoke .karaoke-lyrics-scroll{max-height:360px;overflow:auto;padding:0 10px 14px;scrollbar-width:thin}
.page-karaoke .karaoke-lyric-row{width:100%;display:grid;grid-template-columns:44px minmax(0,1fr) 18px;gap:10px;align-items:center;padding:10px;border:0;border-radius:11px;background:transparent;color:var(--kr-text);text-align:left;font-size:calc(.84rem * var(--karaoke-lyric-scale))}.page-karaoke .karaoke-lyric-row:hover{background:var(--kr-soft)}.page-karaoke .karaoke-lyric-row.is-active{background:color-mix(in srgb,var(--shph-primary) 9%,var(--kr-surface));color:var(--kr-heading);font-weight:850}.page-karaoke .karaoke-lyric-row time{color:var(--kr-muted);font-size:.65rem;font-variant-numeric:tabular-nums}.page-karaoke .karaoke-lyric-row i{opacity:0;color:var(--shph-primary)}.page-karaoke .karaoke-lyric-row:hover i,.page-karaoke .karaoke-lyric-row.is-active i{opacity:1}
.page-karaoke .karaoke-transcript-empty{display:grid;place-items:center;min-height:110px;color:var(--kr-muted);font-size:.78rem}

.page-karaoke .karaoke-import-section{padding:clamp(46px,7vw,82px) 0;background:var(--kr-soft)}
.page-karaoke .karaoke-import-card{padding:clamp(18px,3vw,28px);border-radius:var(--kr-radius)}
.page-karaoke .karaoke-import-head{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:18px}.page-karaoke .karaoke-import-head h2{margin:3px 0 0;color:var(--kr-heading);font-size:clamp(1.65rem,3vw,2.5rem);letter-spacing:-.04em}.page-karaoke .local-only-badge{display:inline-flex;align-items:center;gap:6px;padding:7px 10px;border:1px solid var(--kr-border);border-radius:999px;background:var(--kr-soft);color:var(--kr-muted);font-size:.68rem;font-weight:850}
.page-karaoke .karaoke-import-grid{display:grid;grid-template-columns:1fr 1fr 1.25fr;gap:10px;align-items:start}
.page-karaoke .karaoke-file-field{position:relative;min-height:70px;display:grid;grid-template-columns:36px minmax(0,1fr) auto;align-items:center;gap:10px;padding:11px;border:1px solid var(--kr-border);border-radius:14px;background:var(--kr-soft);cursor:pointer}.page-karaoke .karaoke-file-field>i{width:36px;height:36px;display:grid;place-items:center;border-radius:10px;background:var(--kr-surface);color:var(--shph-primary)}.page-karaoke .karaoke-file-field>span{min-width:0;display:grid}.page-karaoke .karaoke-file-field strong{color:var(--kr-heading);font-size:.78rem}.page-karaoke .karaoke-file-field small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--kr-muted);font-size:.66rem}.page-karaoke .karaoke-file-field em{padding:6px 8px;border-radius:8px;background:var(--kr-surface);color:var(--kr-text);font-style:normal;font-size:.64rem;font-weight:850}
.page-karaoke .karaoke-file-input{position:absolute!important;width:1px!important;height:1px!important;overflow:hidden!important;clip:rect(0 0 0 0)!important;clip-path:inset(50%)!important;white-space:nowrap!important}
.page-karaoke .karaoke-api-card{min-width:0;padding:10px;border:1px solid var(--kr-border);border-radius:14px;background:var(--kr-soft)}
.page-karaoke .karaoke-api-search{height:42px;display:grid;grid-template-columns:16px minmax(0,1fr) auto;align-items:center;gap:8px;padding-left:10px;border:1px solid var(--kr-border);border-radius:11px;background:var(--kr-surface);color:var(--kr-muted)}.page-karaoke .karaoke-api-search:focus-within{border-color:color-mix(in srgb,var(--shph-primary) 58%,var(--kr-border));box-shadow:0 0 0 3px color-mix(in srgb,var(--shph-primary) 12%,transparent)}.page-karaoke .karaoke-api-search input{width:100%;height:38px;min-height:0!important;padding:0!important;border:0!important;outline:0!important;background:transparent!important;color:var(--kr-text)!important;box-shadow:none!important;font-size:.78rem}.page-karaoke .karaoke-api-search button{height:32px;margin-right:4px;padding:0 10px;border:0;border-radius:8px;background:var(--shph-primary);color:#fff;font-size:.68rem;font-weight:850}
.page-karaoke .karaoke-api-status{padding:7px 2px 0;color:var(--kr-muted);font-size:.63rem}.page-karaoke .karaoke-api-results{display:grid;gap:5px;max-height:220px;overflow:auto;margin-top:8px}.page-karaoke .karaoke-api-results[hidden]{display:none}.page-karaoke .karaoke-api-result{width:100%;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;align-items:center;padding:8px;border:1px solid var(--kr-border);border-radius:10px;background:var(--kr-surface);color:var(--kr-text);text-align:left}.page-karaoke .karaoke-api-result:hover{border-color:color-mix(in srgb,var(--shph-primary) 45%,var(--kr-border))}.page-karaoke .karaoke-api-result span{min-width:0;display:grid}.page-karaoke .karaoke-api-result strong,.page-karaoke .karaoke-api-result small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.page-karaoke .karaoke-api-result strong{color:var(--kr-heading);font-size:.72rem}.page-karaoke .karaoke-api-result small{color:var(--kr-muted);font-size:.62rem}.page-karaoke .karaoke-api-result em{color:var(--shph-primary);font-style:normal;font-size:.63rem;font-weight:850}.page-karaoke .karaoke-api-result.is-selected{border-color:var(--shph-primary);background:color-mix(in srgb,var(--shph-primary) 7%,var(--kr-surface))}
.page-karaoke .karaoke-import-actions{display:flex;align-items:center;gap:12px;margin-top:12px}.page-karaoke .karaoke-import-actions .btn{min-width:110px;min-height:44px}.page-karaoke .karaoke-local-status{margin:0;color:var(--kr-muted);font-size:.7rem}.page-karaoke .karaoke-local-status[data-state="success"]{color:#22875c}.page-karaoke .karaoke-local-status[data-state="error"]{color:#c53b4c}.page-karaoke .karaoke-local-status[data-state="loading"]{color:var(--shph-primary)}

.page-karaoke .karaoke-stage.is-focus-mode .karaoke-performance{grid-template-columns:1fr}.page-karaoke .karaoke-stage.is-focus-mode .karaoke-media-shell{display:none}.page-karaoke .karaoke-stage.is-focus-mode .karaoke-live-panel{min-height:560px}.page-karaoke .karaoke-stage.is-focus-mode .karaoke-current-line{font-size:calc(clamp(2.6rem,6vw,6.5rem) * var(--karaoke-lyric-scale))}
.page-karaoke #karaoke-stage:fullscreen{height:100vh;overflow:auto;border:0;border-radius:0;background:var(--kr-surface)}.page-karaoke #karaoke-stage:fullscreen .karaoke-performance{min-height:calc(100vh - 190px)}.page-karaoke #karaoke-stage:fullscreen .karaoke-media-shell,.page-karaoke #karaoke-stage:fullscreen .karaoke-live-panel{min-height:calc(100vh - 190px)}
.page-karaoke :is(.karaoke-track-card,.karaoke-action-button,.karaoke-stage-actions .icon-button,.karaoke-control-button,.karaoke-play-button,.karaoke-reset-offset,.karaoke-view-controls button,.karaoke-api-result):focus-visible{outline:3px solid color-mix(in srgb,var(--shph-primary) 34%,transparent);outline-offset:2px}

@media(max-width:1100px){
  .page-karaoke .karaoke-performance{grid-template-columns:1fr}.page-karaoke .karaoke-media-shell{min-height:0;aspect-ratio:16/9;border-right:0;border-bottom:1px solid rgba(255,255,255,.08)}.page-karaoke .karaoke-video-player,.page-karaoke .karaoke-video-player iframe{min-height:0}.page-karaoke .karaoke-import-grid{grid-template-columns:1fr 1fr}.page-karaoke .karaoke-api-card{grid-column:1/-1}
}
@media(max-width:900px){
  .page-karaoke .karaoke-layout{grid-template-columns:1fr}.page-karaoke .karaoke-library{position:static}.page-karaoke .karaoke-track-list{display:flex;max-height:none;overflow-x:auto;overflow-y:hidden;padding-bottom:7px;scroll-snap-type:x proximity}.page-karaoke .karaoke-track-card{flex:0 0 min(265px,78vw);scroll-snap-align:start}.page-karaoke .karaoke-control-deck{grid-template-columns:1fr}.page-karaoke .karaoke-session-controls{justify-content:flex-start}
}
@media(max-width:650px){
  .page-karaoke .karaoke-head{padding-top:44px}.page-karaoke .karaoke-head-row{align-items:flex-start}.page-karaoke .karaoke-head .btn{font-size:.72rem}.page-karaoke .karaoke-stage-top{align-items:flex-start;padding:12px}.page-karaoke .karaoke-now-copy h2,.page-karaoke .karaoke-now-copy p{max-width:46vw}.page-karaoke .karaoke-sync-badge{display:none}.page-karaoke .karaoke-live-panel{min-height:380px;padding:26px 18px}.page-karaoke .karaoke-current-line{font-size:calc(clamp(1.8rem,9vw,3.2rem) * var(--karaoke-lyric-scale))}.page-karaoke .karaoke-control-deck{padding:10px}.page-karaoke .karaoke-transport-controls{display:grid;grid-template-columns:1fr 1.5fr 1fr 1fr}.page-karaoke .karaoke-control-button,.page-karaoke .karaoke-play-button{width:100%;min-width:0;padding-inline:7px}.page-karaoke .karaoke-session-controls{display:grid;grid-template-columns:70px minmax(0,1fr) 40px}.page-karaoke .karaoke-offset-control{min-width:0;width:100%;grid-template-columns:30px minmax(0,1fr) 40px}.page-karaoke .karaoke-transcript-head{padding-inline:12px}.page-karaoke .karaoke-lyrics-scroll{padding-inline:6px}.page-karaoke .karaoke-import-grid{grid-template-columns:1fr}.page-karaoke .karaoke-api-card{grid-column:auto}.page-karaoke .karaoke-import-actions{align-items:stretch;flex-direction:column}.page-karaoke .karaoke-import-actions .btn{width:100%}.page-karaoke .karaoke-local-status{text-align:center}.page-karaoke .karaoke-file-field{grid-template-columns:34px minmax(0,1fr) auto}
}
@media(max-width:420px){
  .page-karaoke .karaoke-head h1{font-size:2.7rem}.page-karaoke .karaoke-head-row{gap:12px}.page-karaoke .karaoke-head .btn{padding-inline:.75rem}.page-karaoke .karaoke-cover{width:44px;height:42px}.page-karaoke .karaoke-stage-actions{gap:4px}.page-karaoke .karaoke-action-button,.page-karaoke .karaoke-stage-actions .icon-button{width:36px;height:36px}.page-karaoke .karaoke-now-copy h2,.page-karaoke .karaoke-now-copy p{max-width:44vw}.page-karaoke .karaoke-transport-controls{grid-template-columns:1fr 1.4fr 1fr}.page-karaoke #karaoke-restart{grid-column:1/-1}.page-karaoke .karaoke-session-controls{grid-template-columns:60px minmax(0,1fr) 40px}.page-karaoke .karaoke-offset-control{padding-inline:7px}.page-karaoke .karaoke-lyric-row{grid-template-columns:38px minmax(0,1fr) 16px;gap:7px;padding-inline:8px}
}
@media(prefers-reduced-motion:reduce){.page-karaoke .karaoke-audio-visual span{animation:none!important}.page-karaoke .karaoke-track-card:hover{transform:none}}

/* v1.8.9 interaction cleanup: remove native range halos and keep controls visually stable. */
.page-karaoke .karaoke-offset-control{
  transition:border-color .16s ease,background-color .16s ease,box-shadow .16s ease;
}
@media (hover:hover) and (pointer:fine){
  .page-karaoke .karaoke-offset-control:hover{
    border-color:color-mix(in srgb,var(--shph-primary) 24%,var(--kr-border));
    background:color-mix(in srgb,var(--shph-primary) 3%,var(--kr-soft));
    outline:0;
    box-shadow:none;
  }
  .page-karaoke :is(.karaoke-control-button,.karaoke-reset-offset,.karaoke-view-controls button,.karaoke-action-button,.karaoke-stage-actions .icon-button,.karaoke-api-result):not(:disabled):hover{
    transform:none;
    border-color:color-mix(in srgb,var(--shph-primary) 24%,var(--kr-border));
    background:color-mix(in srgb,var(--shph-primary) 5%,var(--kr-surface));
    box-shadow:none;
  }
  .page-karaoke .karaoke-play-button:not(:disabled):hover,
  .page-karaoke .karaoke-api-search button:not(:disabled):hover{
    transform:none;
    background:color-mix(in srgb,var(--shph-primary) 88%,#000 12%);
    box-shadow:none;
  }
}
.page-karaoke .karaoke-offset-control:focus-within{
  outline:0;
  box-shadow:none;
}
.page-karaoke .karaoke-offset-control:has(input:focus-visible){
  border-color:color-mix(in srgb,var(--shph-primary) 56%,var(--kr-border));
  box-shadow:inset 0 0 0 2px color-mix(in srgb,var(--shph-primary) 52%,transparent);
}
.page-karaoke :is(.karaoke-offset-control input[type="range"],.karaoke-seek){
  -webkit-appearance:none;
  appearance:none;
  display:block;
  height:20px;
  margin:0;
  padding:0!important;
  border:0!important;
  border-radius:0!important;
  background:transparent!important;
  outline:0!important;
  box-shadow:none!important;
  cursor:pointer;
}
.page-karaoke :is(.karaoke-offset-control input[type="range"],.karaoke-seek)::-webkit-slider-runnable-track{
  height:4px;
  border:0;
  border-radius:999px;
  background:color-mix(in srgb,var(--kr-text) 22%,transparent);
  box-shadow:none;
}
.page-karaoke :is(.karaoke-offset-control input[type="range"],.karaoke-seek)::-webkit-slider-thumb{
  -webkit-appearance:none;
  appearance:none;
  width:14px;
  height:14px;
  margin-top:-5px;
  border:2px solid var(--kr-surface);
  border-radius:50%;
  background:var(--shph-primary);
  box-shadow:0 1px 3px rgba(0,0,0,.22);
}
.page-karaoke :is(.karaoke-offset-control input[type="range"],.karaoke-seek)::-moz-range-track{
  height:4px;
  border:0;
  border-radius:999px;
  background:color-mix(in srgb,var(--kr-text) 22%,transparent);
  box-shadow:none;
}
.page-karaoke :is(.karaoke-offset-control input[type="range"],.karaoke-seek)::-moz-range-progress{
  height:4px;
  border-radius:999px;
  background:var(--shph-primary);
}
.page-karaoke :is(.karaoke-offset-control input[type="range"],.karaoke-seek)::-moz-range-thumb{
  width:12px;
  height:12px;
  border:2px solid var(--kr-surface);
  border-radius:50%;
  background:var(--shph-primary);
  box-shadow:0 1px 3px rgba(0,0,0,.22);
}
.page-karaoke .karaoke-seek::-webkit-slider-runnable-track{
  background:rgba(255,255,255,.24);
}
.page-karaoke .karaoke-seek::-webkit-slider-thumb{
  border-color:#111720;
  background:#fff;
}
.page-karaoke .karaoke-seek::-moz-range-track{
  background:rgba(255,255,255,.24);
}
.page-karaoke .karaoke-seek::-moz-range-progress{
  background:#fff;
}
.page-karaoke .karaoke-seek::-moz-range-thumb{
  border-color:#111720;
  background:#fff;
}
.page-karaoke .karaoke-seek:focus-visible::-webkit-slider-runnable-track{
  box-shadow:0 0 0 2px rgba(255,255,255,.5);
}
.page-karaoke .karaoke-seek:focus-visible::-moz-range-track{
  box-shadow:0 0 0 2px rgba(255,255,255,.5);
}
.page-karaoke :is(.karaoke-control-button,.karaoke-play-button,.karaoke-reset-offset,.karaoke-view-controls button,.karaoke-action-button,.karaoke-stage-actions .icon-button):active{
  transform:none;
  box-shadow:inset 0 1px 2px color-mix(in srgb,var(--kr-text) 14%,transparent);
}
.page-karaoke .karaoke-offset-control input[type="range"]:focus-visible::-webkit-slider-runnable-track{
  box-shadow:0 0 0 2px color-mix(in srgb,var(--shph-primary) 44%,transparent);
}
.page-karaoke .karaoke-offset-control input[type="range"]:focus-visible::-moz-range-track{
  box-shadow:0 0 0 2px color-mix(in srgb,var(--shph-primary) 44%,transparent);
}

/* v1.9.2 refined karaoke room */
.page-karaoke{
  --karaoke-page:#f5f7fb;
  --karaoke-surface:#fff;
  --karaoke-surface-2:#f8fafc;
  --karaoke-border:rgba(20,28,42,.10);
  --karaoke-text:#172033;
  --karaoke-muted:#6c7689;
  --karaoke-stage:#080d16;
  --karaoke-stage-2:#101827;
  --karaoke-stage-border:rgba(255,255,255,.10);
  --karaoke-shadow:0 18px 48px rgba(20,28,42,.09);
  background:var(--karaoke-page)!important;
}
html[data-theme="dark"] .page-karaoke{
  --karaoke-page:#090d14;
  --karaoke-surface:#111722;
  --karaoke-surface-2:#151d2a;
  --karaoke-border:rgba(255,255,255,.09);
  --karaoke-text:#f5f7fb;
  --karaoke-muted:#9ea8b9;
  --karaoke-shadow:0 20px 56px rgba(0,0,0,.28);
}
.page-karaoke .karaoke-head{padding:34px 0 22px!important;background:transparent!important;border:0!important}
.page-karaoke .karaoke-head-row{align-items:center!important;min-height:54px!important}
.page-karaoke .karaoke-head-row h1{margin:0!important;font-size:clamp(30px,4vw,46px)!important;line-height:1!important;letter-spacing:-.045em!important;color:var(--karaoke-text)!important}
.page-karaoke .karaoke-head-row .btn{min-height:42px!important;padding:.62rem .9rem!important;border-radius:12px!important;background:var(--karaoke-surface)!important;color:var(--karaoke-text)!important;border-color:var(--karaoke-border)!important;box-shadow:none!important}
.page-karaoke .karaoke-head-row .btn:hover,.page-karaoke .karaoke-head-row .btn:focus-visible{background:var(--karaoke-surface-2)!important;border-color:color-mix(in srgb,var(--shph-primary) 28%,var(--karaoke-border))!important;color:var(--karaoke-text)!important;transform:none!important}
.page-karaoke .karaoke-room-section{padding:0 0 42px!important}
.page-karaoke .karaoke-layout{grid-template-columns:minmax(230px,278px) minmax(0,1fr)!important;gap:18px!important;align-items:start!important}
.page-karaoke .karaoke-library,.page-karaoke .karaoke-stage,.page-karaoke .karaoke-import-card{border:1px solid var(--karaoke-border)!important;background:var(--karaoke-surface)!important;box-shadow:var(--karaoke-shadow)!important}
.page-karaoke .karaoke-library{position:sticky!important;top:94px!important;padding:14px!important;border-radius:18px!important;max-height:calc(100dvh - 116px)!important;overflow:hidden!important}
.page-karaoke .karaoke-library-head{min-height:36px!important;margin:0 2px 10px!important;padding:0!important;border:0!important}
.page-karaoke .karaoke-library-head h2{font-size:14px!important;letter-spacing:.01em!important;color:var(--karaoke-text)!important}
.page-karaoke .karaoke-count{min-width:28px!important;height:25px!important;padding:0 8px!important;border:1px solid var(--karaoke-border)!important;background:var(--karaoke-surface-2)!important;color:var(--karaoke-muted)!important}
.page-karaoke .karaoke-library-search{height:42px!important;margin:0 0 10px!important;border:1px solid var(--karaoke-border)!important;border-radius:12px!important;background:var(--karaoke-surface-2)!important;color:var(--karaoke-muted)!important;box-shadow:none!important}
.page-karaoke .karaoke-library-search:focus-within{border-color:color-mix(in srgb,var(--shph-primary) 44%,var(--karaoke-border))!important;box-shadow:0 0 0 3px color-mix(in srgb,var(--shph-primary) 13%,transparent)!important}
.page-karaoke .karaoke-library-search input{color:var(--karaoke-text)!important;background:transparent!important}
.page-karaoke .karaoke-library-search input::placeholder{color:var(--karaoke-muted)!important;opacity:.76!important}
.page-karaoke .karaoke-track-list{gap:6px!important;padding-right:3px!important;scrollbar-width:thin!important}
.page-karaoke .karaoke-track-card{min-height:58px!important;padding:7px 9px!important;border:1px solid transparent!important;border-radius:12px!important;background:transparent!important;color:var(--karaoke-text)!important;box-shadow:none!important;transform:none!important}
.page-karaoke .karaoke-track-card:hover,.page-karaoke .karaoke-track-card:focus-visible{border-color:var(--karaoke-border)!important;background:var(--karaoke-surface-2)!important;transform:none!important}
.page-karaoke .karaoke-track-card.active{border-color:color-mix(in srgb,var(--shph-primary) 30%,var(--karaoke-border))!important;background:color-mix(in srgb,var(--shph-primary) 8%,var(--karaoke-surface))!important;box-shadow:inset 3px 0 0 var(--shph-primary)!important}
.page-karaoke .karaoke-track-art{width:42px!important;height:42px!important;border-radius:10px!important;background:var(--karaoke-surface-2)!important}
.page-karaoke .karaoke-track-copy strong{font-size:12px!important;color:var(--karaoke-text)!important}
.page-karaoke .karaoke-track-copy small{margin-top:3px!important;font-size:10px!important;color:var(--karaoke-muted)!important}
.page-karaoke .karaoke-stage{overflow:hidden!important;border-radius:20px!important}
.page-karaoke .karaoke-stage-top{min-height:76px!important;padding:12px 14px!important;border-color:var(--karaoke-border)!important;background:var(--karaoke-surface)!important}
.page-karaoke .karaoke-now-playing{gap:11px!important;min-width:0!important}
.page-karaoke .karaoke-cover{width:48px!important;height:48px!important;border-radius:12px!important;background:var(--karaoke-surface-2)!important;color:var(--shph-primary)!important}
.page-karaoke .karaoke-now-copy span{font-size:9px!important;color:var(--karaoke-muted)!important;letter-spacing:.13em!important}
.page-karaoke .karaoke-now-copy h2{margin:3px 0 1px!important;font-size:15px!important;color:var(--karaoke-text)!important}
.page-karaoke .karaoke-now-copy p{font-size:11px!important;color:var(--karaoke-muted)!important}
.page-karaoke .karaoke-stage-actions{gap:7px!important}
.page-karaoke .karaoke-sync-badge{height:36px!important;padding:0 10px!important;border:1px solid var(--karaoke-border)!important;border-radius:11px!important;background:var(--karaoke-surface-2)!important;color:var(--karaoke-muted)!important;box-shadow:none!important}
.page-karaoke .karaoke-action-button,.page-karaoke .karaoke-stage-actions .icon-button{width:38px!important;height:38px!important;border:1px solid var(--karaoke-border)!important;border-radius:11px!important;background:var(--karaoke-surface-2)!important;color:var(--karaoke-text)!important;box-shadow:none!important;transform:none!important}
.page-karaoke .karaoke-action-button:hover,.page-karaoke .karaoke-action-button:focus-visible,.page-karaoke .karaoke-stage-actions .icon-button:hover,.page-karaoke .karaoke-stage-actions .icon-button:focus-visible{background:color-mix(in srgb,var(--shph-primary) 8%,var(--karaoke-surface))!important;border-color:color-mix(in srgb,var(--shph-primary) 26%,var(--karaoke-border))!important;transform:none!important}
.page-karaoke .karaoke-performance{min-height:clamp(390px,48vw,600px)!important;border-radius:0!important;background:linear-gradient(145deg,var(--karaoke-stage),var(--karaoke-stage-2))!important;border:0!important}
.page-karaoke .karaoke-live-panel{padding:clamp(24px,4vw,54px)!important}
.page-karaoke .karaoke-live-status{top:16px!important;left:18px!important}
.page-karaoke .karaoke-current-line{max-width:1000px!important;font-size:clamp(30px,4.7vw,70px)!important;line-height:1.08!important;letter-spacing:-.035em!important;text-wrap:balance!important}
.page-karaoke .karaoke-previous-line,.page-karaoke .karaoke-next-line{font-size:clamp(15px,1.8vw,23px)!important;opacity:.62!important}
.page-karaoke .karaoke-time-row{left:18px!important;right:18px!important;bottom:15px!important;gap:11px!important}
.page-karaoke .karaoke-control-deck{min-height:70px!important;padding:10px 14px!important;border-color:var(--karaoke-border)!important;background:var(--karaoke-surface)!important}
.page-karaoke .karaoke-control-button,.page-karaoke .karaoke-reset-offset,.page-karaoke .karaoke-view-controls button{min-width:38px!important;height:38px!important;border:1px solid var(--karaoke-border)!important;border-radius:11px!important;background:var(--karaoke-surface-2)!important;color:var(--karaoke-text)!important;box-shadow:none!important;transform:none!important}
.page-karaoke .karaoke-play-button{height:42px!important;min-width:98px!important;padding:0 17px!important;border-radius:12px!important;box-shadow:none!important;transform:none!important}
.page-karaoke .karaoke-control-button:hover,.page-karaoke .karaoke-control-button:focus-visible,.page-karaoke .karaoke-reset-offset:hover,.page-karaoke .karaoke-reset-offset:focus-visible,.page-karaoke .karaoke-view-controls button:hover,.page-karaoke .karaoke-view-controls button:focus-visible{background:color-mix(in srgb,var(--shph-primary) 8%,var(--karaoke-surface))!important;border-color:color-mix(in srgb,var(--shph-primary) 28%,var(--karaoke-border))!important;transform:none!important}
.page-karaoke .karaoke-offset-control{min-height:38px!important;padding:5px 9px!important;border:1px solid var(--karaoke-border)!important;border-radius:11px!important;background:var(--karaoke-surface-2)!important;color:var(--karaoke-text)!important;box-shadow:none!important}
.page-karaoke .karaoke-offset-control>span,.page-karaoke .karaoke-offset-control output{color:var(--karaoke-muted)!important}
.page-karaoke .karaoke-transcript{padding:0!important;background:var(--karaoke-surface)!important}
.page-karaoke .karaoke-transcript-head{min-height:58px!important;padding:10px 14px!important;border-color:var(--karaoke-border)!important}
.page-karaoke .karaoke-transcript-head h3{font-size:14px!important;color:var(--karaoke-text)!important}
.page-karaoke .karaoke-transcript-head p{font-size:10px!important;color:var(--karaoke-muted)!important}
.page-karaoke .karaoke-lyrics-scroll{max-height:330px!important;padding:7px!important;background:var(--karaoke-surface)!important}
.page-karaoke .karaoke-lyric-row{grid-template-columns:46px minmax(0,1fr) 24px!important;min-height:46px!important;padding:8px 10px!important;border:1px solid transparent!important;border-radius:10px!important;color:var(--karaoke-text)!important;background:transparent!important;transform:none!important}
.page-karaoke .karaoke-lyric-row:hover,.page-karaoke .karaoke-lyric-row:focus-visible{background:var(--karaoke-surface-2)!important;border-color:var(--karaoke-border)!important;transform:none!important}
.page-karaoke .karaoke-lyric-row.is-active{background:color-mix(in srgb,var(--shph-primary) 9%,var(--karaoke-surface))!important;border-color:color-mix(in srgb,var(--shph-primary) 28%,var(--karaoke-border))!important;color:var(--karaoke-text)!important}
.page-karaoke .karaoke-lyric-row time{color:var(--karaoke-muted)!important}
.page-karaoke .karaoke-import-section{padding:16px 0 72px!important;background:transparent!important}
.page-karaoke .karaoke-import-card{padding:18px!important;border-radius:18px!important}
.page-karaoke .karaoke-import-head{margin-bottom:13px!important}
.page-karaoke .karaoke-import-head .eyebrow{display:none!important}
.page-karaoke .karaoke-import-head h2{margin:0!important;font-size:18px!important;color:var(--karaoke-text)!important}
.page-karaoke .local-only-badge{background:var(--karaoke-surface-2)!important;border:1px solid var(--karaoke-border)!important;color:var(--karaoke-muted)!important}
.page-karaoke .karaoke-import-grid{gap:10px!important}
.page-karaoke .karaoke-file-field,.page-karaoke .karaoke-api-card{min-height:72px!important;padding:11px!important;border:1px solid var(--karaoke-border)!important;border-radius:13px!important;background:var(--karaoke-surface-2)!important;color:var(--karaoke-text)!important;box-shadow:none!important;transform:none!important}
.page-karaoke .karaoke-file-field:hover,.page-karaoke .karaoke-file-field:focus-within{border-color:color-mix(in srgb,var(--shph-primary) 30%,var(--karaoke-border))!important;background:var(--karaoke-surface-2)!important;transform:none!important}
.page-karaoke .karaoke-file-field small,.page-karaoke .karaoke-local-status,.page-karaoke .karaoke-api-status{color:var(--karaoke-muted)!important}
.page-karaoke .karaoke-api-search{height:42px!important;border-color:var(--karaoke-border)!important;background:var(--karaoke-surface)!important}
.page-karaoke .karaoke-api-search input{color:var(--karaoke-text)!important;background:transparent!important}
.page-karaoke .karaoke-import-actions{margin-top:12px!important;padding-top:12px!important;border-color:var(--karaoke-border)!important}

@media(max-width:1199.98px){
  .page-karaoke .karaoke-layout{grid-template-columns:230px minmax(0,1fr)!important}
  .page-karaoke .karaoke-sync-badge{display:none!important}
}
@media(max-width:991.98px){
  .page-karaoke .karaoke-layout{display:block!important}
  .page-karaoke .karaoke-library{position:relative!important;top:auto!important;max-height:none!important;margin-bottom:14px!important;padding:10px!important}
  .page-karaoke .karaoke-track-list{display:grid!important;grid-auto-flow:column!important;grid-auto-columns:minmax(210px,260px)!important;overflow-x:auto!important;overflow-y:hidden!important;padding:0 0 4px!important;scroll-snap-type:x proximity!important}
  .page-karaoke .karaoke-track-card{scroll-snap-align:start!important}
  .page-karaoke .karaoke-performance{min-height:500px!important}
}
@media(max-width:767.98px){
  .page-karaoke .karaoke-head{padding:24px 0 15px!important}
  .page-karaoke .karaoke-head-row h1{font-size:32px!important}
  .page-karaoke .karaoke-stage{border-radius:16px!important}
  .page-karaoke .karaoke-stage-top{min-height:66px!important;padding:9px 10px!important}
  .page-karaoke .karaoke-cover{width:42px!important;height:42px!important}
  .page-karaoke .karaoke-now-copy h2{font-size:13px!important;max-width:48vw!important}
  .page-karaoke .karaoke-stage-actions{gap:5px!important}
  .page-karaoke .karaoke-action-button,.page-karaoke .karaoke-stage-actions .icon-button{width:36px!important;height:36px!important}
  .page-karaoke .karaoke-performance{min-height:430px!important}
  .page-karaoke .karaoke-control-deck{gap:9px!important;padding:9px!important}
  .page-karaoke .karaoke-transport-controls,.page-karaoke .karaoke-session-controls{width:100%!important;justify-content:center!important}
  .page-karaoke .karaoke-offset-control{flex:1 1 150px!important}
  .page-karaoke .karaoke-lyrics-scroll{max-height:280px!important}
  .page-karaoke .karaoke-import-card{padding:13px!important}
}
@media(max-width:479.98px){
  .page-karaoke .karaoke-head-row .btn span{display:none!important}
  .page-karaoke .karaoke-track-list{grid-auto-columns:minmax(190px,82vw)!important}
  .page-karaoke .karaoke-performance{min-height:390px!important}
  .page-karaoke .karaoke-current-line{font-size:clamp(29px,10vw,48px)!important}
  .page-karaoke .karaoke-previous-line,.page-karaoke .karaoke-next-line{font-size:14px!important}
  .page-karaoke .karaoke-play-button{min-width:88px!important}
  .page-karaoke .karaoke-lyric-row{grid-template-columns:40px minmax(0,1fr) 18px!important;padding:8px!important}
}
