.mytclab-site-utilities{padding:28px 24px 90px!important;border-top:1px solid var(--line,#354a3d);background:var(--panel,#0e1d17);color:var(--text,#f5f8f6);font-family:inherit}.utility-frame{max-width:1200px;margin:0 auto;display:grid;grid-template-columns:1fr 1fr;gap:32px}.utility-frame h2{font-size:18px;letter-spacing:normal;margin:0 0 14px}.utility-frame nav,.site-utility-compact nav{display:grid;gap:10px}.utility-frame nav a,.site-utility-compact nav a{color:var(--text,#f5f8f6);text-decoration:underline;text-underline-offset:3px;min-height:32px;display:flex;align-items:center}.utility-frame p{max-width:42ch;font-size:14px;color:var(--muted,#a7b5ae);margin:10px 0}.mytclab-site-utilities a:focus-visible,.site-utility-compact summary:focus-visible{outline:2px solid var(--accent,#91e95f);outline-offset:4px}.site-utility-compact{grid-column:1/-1;flex:0 0 100%;display:grid;gap:10px}.site-utility-compact summary{cursor:pointer;min-height:40px;padding:9px;border:1px solid var(--line,#354a3d);border-radius:10px}.site-utility-compact nav{padding:12px 4px;font-size:13px}.app>.rail{overflow-y:auto}.site-utility-compact [open] nav{animation:none}@media(max-width:600px){.utility-frame{grid-template-columns:1fr;gap:28px}.mytclab-site-utilities{padding-inline:18px!important}}@media(prefers-reduced-motion:reduce){}

.floating-music-btn{
  position:fixed;bottom:24px;left:24px;z-index:500;
  display:flex;align-items:center;justify-content:center;
  width:56px;height:56px;border-radius:50%;
  background:var(--accent,#91e95f);color:#07110e;
  box-shadow:0 10px 15px -3px rgba(0,0,0,0.15),0 4px 6px -4px rgba(0,0,0,0.15);
  transition:transform 0.2s,background 0.2s,box-shadow 0.2s;
}
.floating-music-btn:hover{
  background:color-mix(in srgb,var(--accent,#91e95f) 88%,#000);transform:scale(1.08);
  box-shadow:0 12px 20px -3px rgba(0,0,0,0.2),0 6px 8px -4px rgba(0,0,0,0.2);
}
.floating-music-btn svg{width:22px;height:22px;flex-shrink:0;}
@media (max-width:640px){
  .floating-music-btn{width:50px;height:50px;bottom:16px;left:16px;}
  .floating-music-btn svg{width:20px;height:20px;}
}

.mbt-music-panel{
  position:fixed;bottom:92px;left:24px;z-index:499;
  width:320px;height:460px;max-width:calc(100vw - 48px);
  max-height:calc(100vh - 116px);
  border-radius:16px;overflow:hidden;
  box-shadow:0 20px 40px rgba(0,0,0,0.3);
  opacity:0;visibility:hidden;transform:translateY(10px);
  transition:opacity 0.2s,transform 0.2s,visibility 0.2s;
}
.mbt-music-panel.open{opacity:1;visibility:visible;transform:translateY(0);}
.mbt-music-panel iframe{width:100%;height:100%;border:none;display:block;}
@media (max-width:640px){
  .mbt-music-panel{bottom:76px;left:16px;width:280px;height:420px;max-height:calc(100vh - 100px);}
}

.floating-music-btn{border:0;padding:0;cursor:pointer}.floating-music-btn:focus-visible{outline:3px solid var(--text,#fff);outline-offset:4px}.mbt-music-panel[hidden]{display:none!important}
/* Desktop lab sidebar has fixed language/theme/legal controls in this corner. */
@media(min-width:1101px){body:has(>.app)>.floating-music-btn,body:has(>.app)>.mbt-music-panel{left:274px}}
@media(prefers-reduced-motion:reduce){.floating-music-btn,.mbt-music-panel{transition:none}.floating-music-btn:hover{transform:none}}
@media print{.floating-music-btn,.mbt-music-panel{display:none!important}}

/* Owner override: match MyTCLab branding rather than the generic SOP blue. */
html[data-theme="light"] .floating-music-btn{color:#fff}
