/* TSGYM public TeamSpeak tools — isolated from the existing ts_server stylesheet. */
.tsgym-server-viewer-section{
  --tsv-bg:#ffffff;
  --tsv-soft:#f6f8fc;
  --tsv-line:#e3e8f2;
  --tsv-text:#172033;
  --tsv-muted:#667085;
  --tsv-accent:#2563eb;
  --tsv-accent-soft:rgba(37,99,235,.09);
  margin-top:22px;
  border:1px solid var(--tsv-line);
  border-radius:18px;
  background:var(--tsv-bg);
  overflow:hidden;
  box-shadow:0 12px 34px rgba(15,23,42,.06);
  color:var(--tsv-text);
}
.tsgym-server-viewer-section .tsv-public-head{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:18px;
  padding:20px 22px 16px;
  border-bottom:1px solid var(--tsv-line);
  background:linear-gradient(180deg,var(--tsv-bg),var(--tsv-soft));
}
.tsgym-server-viewer-section .tsv-public-copy{min-width:0}
.tsgym-server-viewer-section h2{margin:0 0 7px;font-size:1.22rem;line-height:1.45;color:var(--tsv-text)}
.tsgym-server-viewer-section p{margin:0;color:var(--tsv-muted);line-height:1.9;max-width:820px}
.tsgym-server-viewer-section .tsv-public-live{
  display:inline-flex;align-items:center;gap:8px;flex:0 0 auto;
  padding:7px 10px;border-radius:999px;border:1px solid rgba(16,185,129,.23);
  background:rgba(16,185,129,.08);color:#087a55;font-size:.78rem;font-weight:800;white-space:nowrap
}
.tsgym-server-viewer-section .tsv-public-live::before{
  content:"";width:8px;height:8px;border-radius:50%;background:#10b981;box-shadow:0 0 0 5px rgba(16,185,129,.12)
}
.tsgym-server-viewer-section .tsv-public-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(238px,286px);gap:14px;padding:14px;background:var(--tsv-soft);align-items:start}
.tsgym-server-viewer-section .tsv-public-frame-wrap{position:relative;min-width:0;padding:0}
.tsgym-server-viewer-section iframe{display:block;width:100%;min-height:520px;border:0;border-radius:14px;background:transparent}
.tsgym-server-viewer-section .tsv-public-frame-loader{position:absolute;z-index:1;inset:0;display:flex;align-items:center;justify-content:center;gap:10px;border:1px solid var(--tsv-line);border-radius:14px;background:color-mix(in srgb,var(--tsv-bg) 94%,transparent);color:var(--tsv-muted);font-size:.88rem;font-weight:700;transition:opacity .2s ease,visibility .2s ease}
.tsgym-server-viewer-section .tsv-public-spinner{width:18px;height:18px;border:2px solid var(--tsv-line);border-top-color:var(--tsv-accent);border-radius:50%;animation:tsv-spin .7s linear infinite}
.tsgym-server-viewer-section .tsv-public-frame-wrap.is-loaded .tsv-public-frame-loader{opacity:0;visibility:hidden;pointer-events:none}
@keyframes tsv-spin{to{transform:rotate(360deg)}}
.tsgym-server-viewer-section noscript{display:block;margin:14px;padding:12px 14px;border-radius:10px;background:var(--tsv-accent-soft);color:var(--tsv-muted)}
.tsgym-server-viewer-section .tsv-public-sidebar{display:grid;gap:12px;min-width:0;position:sticky;top:14px}
.tsgym-server-viewer-section .tsv-public-side-card{min-width:0;border:1px solid var(--tsv-line);border-radius:14px;background:var(--tsv-bg);overflow:hidden;box-shadow:0 8px 22px rgba(15,23,42,.045)}
.tsgym-server-viewer-section .tsv-public-side-card h3{display:flex;align-items:center;gap:8px;margin:0;padding:11px 12px;border-bottom:1px solid var(--tsv-line);background:linear-gradient(180deg,var(--tsv-bg),var(--tsv-soft));color:var(--tsv-text);font-size:.82rem;line-height:1.45}
.tsgym-server-viewer-section .tsv-public-side-card h3 i{width:16px;color:var(--tsv-accent);text-align:center}
.tsgym-server-viewer-section .tsv-public-side-list{margin:0;padding:0}
.tsgym-server-viewer-section .tsv-public-side-list>div{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;padding:9px 12px;border-bottom:1px solid color-mix(in srgb,var(--tsv-line) 72%,transparent)}
.tsgym-server-viewer-section .tsv-public-side-list>div:last-child{border-bottom:0}
.tsgym-server-viewer-section .tsv-public-side-list dt{display:flex;align-items:center;gap:7px;min-width:0;color:var(--tsv-muted);font-size:.72rem;line-height:1.55}
.tsgym-server-viewer-section .tsv-public-side-list dt i{width:14px;flex:0 0 14px;color:var(--tsv-accent);text-align:center;font-size:.72rem}
.tsgym-server-viewer-section .tsv-public-side-list dd{margin:0;max-width:58%;color:var(--tsv-text);font-size:.74rem;font-weight:800;line-height:1.55;text-align:end;overflow-wrap:anywhere;font-variant-numeric:tabular-nums}
.tsgym-server-viewer-section .tsv-public-side-list dd.tsv-side-code{font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:.66rem;font-weight:700}
.tsgym-server-viewer-section .tsv-side-status{display:inline-flex;align-items:center;padding:3px 7px;border-radius:999px;font-size:.65rem;line-height:1.2}
.tsgym-server-viewer-section .tsv-side-status.is-online{background:rgba(16,185,129,.11);color:#087a55}
.tsgym-server-viewer-section .tsv-side-status.is-offline{background:rgba(239,68,68,.1);color:#b42335}

html[data-theme="dark"] .tsgym-server-viewer-section,
body.dark .tsgym-server-viewer-section,
body.dark-mode .tsgym-server-viewer-section,
body.dark-theme .tsgym-server-viewer-section,
body.theme-dark .tsgym-server-viewer-section{
  --tsv-bg:#101827;--tsv-soft:#0c1422;--tsv-line:#243149;--tsv-text:#eef4ff;--tsv-muted:#9eabc0;--tsv-accent:#6da0ff;--tsv-accent-soft:rgba(109,160,255,.1);
  box-shadow:none
}
html[data-theme="dark"] .tsgym-server-viewer-section .tsv-public-live,
body.dark .tsgym-server-viewer-section .tsv-public-live,
body.dark-mode .tsgym-server-viewer-section .tsv-public-live,
body.dark-theme .tsgym-server-viewer-section .tsv-public-live,
body.theme-dark .tsgym-server-viewer-section .tsv-public-live{color:#6ee7b7}
html[data-theme="dark"] .tsgym-server-viewer-section .tsv-side-status.is-online,
body.dark .tsgym-server-viewer-section .tsv-side-status.is-online,
body.dark-mode .tsgym-server-viewer-section .tsv-side-status.is-online,
body.dark-theme .tsgym-server-viewer-section .tsv-side-status.is-online,
body.theme-dark .tsgym-server-viewer-section .tsv-side-status.is-online{color:#6ee7b7}
html[data-theme="dark"] .tsgym-server-viewer-section .tsv-side-status.is-offline,
body.dark .tsgym-server-viewer-section .tsv-side-status.is-offline,
body.dark-mode .tsgym-server-viewer-section .tsv-side-status.is-offline,
body.dark-theme .tsgym-server-viewer-section .tsv-side-status.is-offline,
body.theme-dark .tsgym-server-viewer-section .tsv-side-status.is-offline{color:#ff9baa}

@media (max-width:720px){
  .tsgym-server-viewer-section .tsv-public-head{padding:16px;flex-direction:column}
  .tsgym-server-viewer-section .tsv-public-frame-wrap{padding:8px}
  .tsgym-server-viewer-section iframe{min-height:460px}
  .tsgym-server-viewer-section .tsv-public-frame-loader{inset:8px}
}
@media (max-width:980px){
  .tsgym-server-viewer-section .tsv-public-layout{grid-template-columns:minmax(0,1fr)}
  .tsgym-server-viewer-section .tsv-public-sidebar{position:static;grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (max-width:720px){
  .tsgym-server-viewer-section .tsv-public-layout{gap:10px;padding:8px}
  .tsgym-server-viewer-section .tsv-public-frame-wrap{padding:0}
  .tsgym-server-viewer-section .tsv-public-frame-loader{inset:0}
  .tsgym-server-viewer-section .tsv-public-sidebar{grid-template-columns:1fr}
}