/* Native administration surfaces. Media/canvas/iframe output keeps its own colors. */
body.ls-app{background:var(--bg);color:var(--text)}
:root[data-theme] .ls-legacy{color:var(--text);text-align:start}
:root[data-theme] .ls-legacy :is(.container,.container-fluid,.card,.card-body,.panel,.section,.settings-section,.control-panel,.component-card,.modal-content,.file-browser){background:var(--panel);color:var(--text);border-color:var(--edge)}
:root[data-theme] .ls-legacy :is(.form-check,.info-box,.warning-box,.status-box,.flow-step,.channel-selector,.section-header,.results-count,.status-bar,.platform-detector,.source-card,.recording-card,.text-item,.link-item,.flow-diagram,.hls-controls,.rtmp-section,.hls-status-card){background:var(--card);color:var(--text);border-color:var(--edge)}
:root[data-theme] .ls-legacy :is(.card-header,.modal-header,.header){background:var(--card);color:var(--text);border-color:var(--edge)}
:root[data-theme] .ls-legacy :is(h1,h2,h3,h4,h5,h6,label,legend,.form-label,.source-name,.link-title,.status-label,.status-value){color:var(--text)}
:root[data-theme] .ls-legacy h1{-webkit-text-fill-color:currentColor;background-clip:border-box;background-image:none;text-shadow:none}
:root[data-theme] :is(.ls-legacy,.ls-admin) :is(.text-muted,.help-text,.form-text,.muted,small){color:var(--muted)!important}
:root[data-theme] .ls-legacy :is(.form-control,.form-select,select,textarea,input:not([type=checkbox]):not([type=radio]):not([type=color]):not([type=range]):not([type=button]):not([type=submit])){background:var(--brand-input);color:var(--text);border-color:var(--edge)}
:root[data-theme] :is(.ls-legacy,.ls-admin) :is(input,textarea)::placeholder{color:var(--muted);opacity:1}
:root[data-theme] .ls-legacy :is(select option,select optgroup){background:var(--brand-input);color:var(--text)}
:root[data-theme] .ls-legacy :is(.form-control,select,textarea):focus{background:var(--brand-input);color:var(--text);border-color:var(--accent)}
:root[data-theme] .ls-legacy .form-check{display:flex;align-items:center;gap:12px;padding:15px;border-inline-start:4px solid var(--accent);border-inline-end:0}
:root[data-theme] .ls-legacy .form-check-input{position:static;float:none;flex:0 0 auto;margin:0;transform:none;width:1.15em;height:1.15em;accent-color:var(--accent)}
:root[data-theme] .ls-legacy .form-check-label{margin:0;min-width:0;text-align:start}
:root[data-theme] .ls-legacy :is(.tabs,.nav-tabs){background:var(--panel);border-color:var(--edge)}
:root[data-theme] .ls-legacy :is(.tab,.tab-btn,.tab-button,.nav-link,.preset-btn,.platform-btn,.back-link,.quick-btn,.btn-secondary){background:var(--brand-button);color:var(--brand-button-text);border-color:var(--edge)}
:root[data-theme] .ls-legacy :is(.tab,.tab-btn,.tab-button,.nav-link,.preset-btn,.platform-btn,.file-item).active,
:root[data-theme] .ls-legacy :is(.file-item.selected,.file-item:hover,.tab:hover,.nav-link:hover,.preset-btn:hover,.platform-btn:hover){background:var(--brand-hover);color:var(--text);border-color:var(--accent)}
:root[data-theme] .ls-legacy :is(table,.table){color:var(--text);--bs-table-bg:var(--panel);--bs-table-color:var(--text);--bs-table-striped-bg:var(--card);--bs-table-striped-color:var(--text);--bs-table-hover-bg:var(--brand-hover);--bs-table-hover-color:var(--text);--bs-table-border-color:var(--edge)}
:root[data-theme] .ls-legacy :is(table td,table th){color:var(--text);border-color:var(--edge)}
:root[data-theme] .ls-legacy table th{background:var(--card)}
:root[data-theme] .ls-legacy :is(.table-striped tbody tr:nth-of-type(odd),.table-hover tbody tr:hover){background:var(--card);color:var(--text)}
:root[data-theme] .ls-legacy :is(.alert,.status-box,.status-badge,.status-running,.status-stopped,.status-unknown,.status-warning,.status.running,.status.stopped,.status.offline,.status.online,.status.success,.status.error,.status.info,.stream-status,.toast,.scheduled-badge,.component-btn.active,.component-btn.inactive){background:var(--card);color:var(--text);border:1px solid var(--edge)}
:root[data-theme] .ls-legacy :is(.alert-success,.status-running,.status.running,.status.online,.status.success,.stream-status.online,.component-btn.active){border-inline-start:4px solid var(--good)}
:root[data-theme] .ls-legacy :is(.alert-danger,.alert-error,.status-stopped,.status.stopped,.status.offline,.status.error,.stream-status.offline,.toast.error,.component-btn.inactive){border-inline-start:4px solid var(--bad)}
:root[data-theme] .ls-legacy :is(.alert-warning,.warning-box,.status-warning,.status-unknown){border-inline-start:4px solid #b8860b}
:root[data-theme] .ls-legacy :is(.alert-info,.info-box,.status.info,.scheduled-badge){border-inline-start:4px solid var(--accent)}
:root[data-theme] .ls-legacy :is(.log-box,.log-container,.command-preview){background:var(--brand-input);color:var(--text);border-color:var(--edge)}
:root[data-theme] .ls-legacy :is(.modal-title,.close){color:var(--text)}
:root[data-theme] .ls-legacy .close{text-shadow:none;opacity:1}
/* Button semantics remain readable in all four themes. */
:root[data-theme] .ls-legacy :is(.btn,.link-btn,.quick-btn){background:#245b83;color:#fff;border-color:#4780a9}
:root[data-theme] .ls-legacy :is(.btn-success,.btn.save,.link-btn.play){background:#17654f;color:#fff;border-color:#37856c}
:root[data-theme] .ls-legacy :is(.btn-danger,.btn.stop,.link-btn.delete,.quick-btn.danger,.remove-text-btn){background:#92384a;color:#fff;border-color:#b8566b}
:root[data-theme] .ls-legacy :is(.btn-warning,.quick-btn.warning){background:#69501c;color:#fff;border-color:#9d7b31}
:root[data-theme] .ls-legacy :is(.btn-secondary,.back-link){background:var(--brand-button);color:var(--brand-button-text);border-color:var(--edge)}
:root[data-theme] .ls-legacy :is(.btn,.link-btn,.quick-btn,.back-link) :is(span,i,small){color:inherit!important}
:root[data-theme] .ls-admin .plugin-actions .btn-activate{background:#d1fae5;color:#047857;border-color:#a7f3d0}
:root[data-theme] .ls-admin .plugin-actions .btn-deactivate{background:#fef3c7;color:#92400e;border-color:#fde68a}
:root[data-theme] .ls-admin .plugin-actions .btn-delete{background:#fee2e2;color:#b91c1c;border-color:#fecaca}

/* Reviewed fixed inline surfaces, including dynamically inserted forms. */
:root[data-theme] .ls-legacy :is(div,label,button)[style*="background: #fff3e0" i]:not([id*="preview" i],[id*="preview" i] *,[class*="preview" i],[class*="preview" i] *,video,canvas,iframe),
:root[data-theme] .ls-legacy :is(div,label,button)[style*="background:#fff3e0" i]:not([id*="preview" i],[id*="preview" i] *,[class*="preview" i],[class*="preview" i] *,video,canvas,iframe),
:root[data-theme] .ls-legacy :is(div,label,button)[style*="background-color: #fff3e0" i]:not([id*="preview" i],[id*="preview" i] *,[class*="preview" i],[class*="preview" i] *,video,canvas,iframe),
:root[data-theme] .ls-legacy :is(div,label,button)[style*="background-color:#fff3e0" i]:not([id*="preview" i],[id*="preview" i] *,[class*="preview" i],[class*="preview" i] *,video,canvas,iframe),
:root[data-theme] .ls-legacy :is(div,label,button)[style*="background: #e8f5e9" i]:not([id*="preview" i],[id*="preview" i] *,[class*="preview" i],[class*="preview" i] *,video,canvas,iframe),
:root[data-theme] .ls-legacy :is(div,label,button)[style*="background:#e8f5e9" i]:not([id*="preview" i],[id*="preview" i] *,[class*="preview" i],[class*="preview" i] *,video,canvas,iframe),
:root[data-theme] .ls-legacy :is(div,label,button)[style*="background-color: #e8f5e9" i]:not([id*="preview" i],[id*="preview" i] *,[class*="preview" i],[class*="preview" i] *,video,canvas,iframe),
:root[data-theme] .ls-legacy :is(div,label,button)[style*="background-color:#e8f5e9" i]:not([id*="preview" i],[id*="preview" i] *,[class*="preview" i],[class*="preview" i] *,video,canvas,iframe),
:root[data-theme] .ls-legacy :is(div,label,button)[style*="background: #e3f2fd" i]:not([id*="preview" i],[id*="preview" i] *,[class*="preview" i],[class*="preview" i] *,video,canvas,iframe),
:root[data-theme] .ls-legacy :is(div,label,button)[style*="background:#e3f2fd" i]:not([id*="preview" i],[id*="preview" i] *,[class*="preview" i],[class*="preview" i] *,video,canvas,iframe),
:root[data-theme] .ls-legacy :is(div,label,button)[style*="background-color: #e3f2fd" i]:not([id*="preview" i],[id*="preview" i] *,[class*="preview" i],[class*="preview" i] *,video,canvas,iframe),
:root[data-theme] .ls-legacy :is(div,label,button)[style*="background-color:#e3f2fd" i]:not([id*="preview" i],[id*="preview" i] *,[class*="preview" i],[class*="preview" i] *,video,canvas,iframe),
:root[data-theme] .ls-legacy :is(div,label,button)[style*="background: #ffebee" i]:not([id*="preview" i],[id*="preview" i] *,[class*="preview" i],[class*="preview" i] *,video,canvas,iframe),
:root[data-theme] .ls-legacy :is(div,label,button)[style*="background:#ffebee" i]:not([id*="preview" i],[id*="preview" i] *,[class*="preview" i],[class*="preview" i] *,video,canvas,iframe),
:root[data-theme] .ls-legacy :is(div,label,button)[style*="background-color: #ffebee" i]:not([id*="preview" i],[id*="preview" i] *,[class*="preview" i],[class*="preview" i] *,video,canvas,iframe),
:root[data-theme] .ls-legacy :is(div,label,button)[style*="background-color:#ffebee" i]:not([id*="preview" i],[id*="preview" i] *,[class*="preview" i],[class*="preview" i] *,video,canvas,iframe),
:root[data-theme] .ls-legacy :is(div,label,button)[style*="background: #f5f5f5" i]:not([id*="preview" i],[id*="preview" i] *,[class*="preview" i],[class*="preview" i] *,video,canvas,iframe),
:root[data-theme] .ls-legacy :is(div,label,button)[style*="background:#f5f5f5" i]:not([id*="preview" i],[id*="preview" i] *,[class*="preview" i],[class*="preview" i] *,video,canvas,iframe),
:root[data-theme] .ls-legacy :is(div,label,button)[style*="background-color: #f5f5f5" i]:not([id*="preview" i],[id*="preview" i] *,[class*="preview" i],[class*="preview" i] *,video,canvas,iframe),
:root[data-theme] .ls-legacy :is(div,label,button)[style*="background-color:#f5f5f5" i]:not([id*="preview" i],[id*="preview" i] *,[class*="preview" i],[class*="preview" i] *,video,canvas,iframe),
:root[data-theme] .ls-legacy :is(div,label,button)[style*="background: #f8f9fa" i]:not([id*="preview" i],[id*="preview" i] *,[class*="preview" i],[class*="preview" i] *,video,canvas,iframe),
:root[data-theme] .ls-legacy :is(div,label,button)[style*="background:#f8f9fa" i]:not([id*="preview" i],[id*="preview" i] *,[class*="preview" i],[class*="preview" i] *,video,canvas,iframe),
:root[data-theme] .ls-legacy :is(div,label,button)[style*="background-color: #f8f9fa" i]:not([id*="preview" i],[id*="preview" i] *,[class*="preview" i],[class*="preview" i] *,video,canvas,iframe),
:root[data-theme] .ls-legacy :is(div,label,button)[style*="background-color:#f8f9fa" i]:not([id*="preview" i],[id*="preview" i] *,[class*="preview" i],[class*="preview" i] *,video,canvas,iframe),
:root[data-theme] .ls-legacy :is(div,label,button)[style*="background: #1a1a2e" i]:not([id*="preview" i],[id*="preview" i] *,[class*="preview" i],[class*="preview" i] *,video,canvas,iframe),
:root[data-theme] .ls-legacy :is(div,label,button)[style*="background:#1a1a2e" i]:not([id*="preview" i],[id*="preview" i] *,[class*="preview" i],[class*="preview" i] *,video,canvas,iframe),
:root[data-theme] .ls-legacy :is(div,label,button)[style*="background-color: #1a1a2e" i]:not([id*="preview" i],[id*="preview" i] *,[class*="preview" i],[class*="preview" i] *,video,canvas,iframe),
:root[data-theme] .ls-legacy :is(div,label,button)[style*="background-color:#1a1a2e" i]:not([id*="preview" i],[id*="preview" i] *,[class*="preview" i],[class*="preview" i] *,video,canvas,iframe),
:root[data-theme] .ls-legacy :is(div,label,button)[style*="background: #173a34" i]:not([id*="preview" i],[id*="preview" i] *,[class*="preview" i],[class*="preview" i] *,video,canvas,iframe),
:root[data-theme] .ls-legacy :is(div,label,button)[style*="background:#173a34" i]:not([id*="preview" i],[id*="preview" i] *,[class*="preview" i],[class*="preview" i] *,video,canvas,iframe),
:root[data-theme] .ls-legacy :is(div,label,button)[style*="background-color: #173a34" i]:not([id*="preview" i],[id*="preview" i] *,[class*="preview" i],[class*="preview" i] *,video,canvas,iframe),
:root[data-theme] .ls-legacy :is(div,label,button)[style*="background-color:#173a34" i]:not([id*="preview" i],[id*="preview" i] *,[class*="preview" i],[class*="preview" i] *,video,canvas,iframe),
:root[data-theme] .ls-legacy :is(div,label,button)[style*="background: #493d20" i]:not([id*="preview" i],[id*="preview" i] *,[class*="preview" i],[class*="preview" i] *,video,canvas,iframe),
:root[data-theme] .ls-legacy :is(div,label,button)[style*="background:#493d20" i]:not([id*="preview" i],[id*="preview" i] *,[class*="preview" i],[class*="preview" i] *,video,canvas,iframe),
:root[data-theme] .ls-legacy :is(div,label,button)[style*="background-color: #493d20" i]:not([id*="preview" i],[id*="preview" i] *,[class*="preview" i],[class*="preview" i] *,video,canvas,iframe),
:root[data-theme] .ls-legacy :is(div,label,button)[style*="background-color:#493d20" i]:not([id*="preview" i],[id*="preview" i] *,[class*="preview" i],[class*="preview" i] *,video,canvas,iframe),
:root[data-theme] .ls-legacy :is(div,label,button)[style*="background: #19334a" i]:not([id*="preview" i],[id*="preview" i] *,[class*="preview" i],[class*="preview" i] *,video,canvas,iframe),
:root[data-theme] .ls-legacy :is(div,label,button)[style*="background:#19334a" i]:not([id*="preview" i],[id*="preview" i] *,[class*="preview" i],[class*="preview" i] *,video,canvas,iframe),
:root[data-theme] .ls-legacy :is(div,label,button)[style*="background-color: #19334a" i]:not([id*="preview" i],[id*="preview" i] *,[class*="preview" i],[class*="preview" i] *,video,canvas,iframe),
:root[data-theme] .ls-legacy :is(div,label,button)[style*="background-color:#19334a" i]:not([id*="preview" i],[id*="preview" i] *,[class*="preview" i],[class*="preview" i] *,video,canvas,iframe),
:root[data-theme] .ls-legacy label[style*="background: white" i]:not([id*="preview" i],[id*="preview" i] *,[class*="preview" i],[class*="preview" i] *,video,canvas,iframe){background:var(--card)!important;color:var(--text)!important;border-color:var(--edge)!important}
:root[data-theme] .ls-legacy :is(small,p,div,ul)[style*="color: #666" i]:not([id*="preview" i],[id*="preview" i] *,[class*="preview" i],[class*="preview" i] *,video,canvas,iframe),
:root[data-theme] .ls-legacy :is(small,p,div,ul)[style*="color:#666" i]:not([id*="preview" i],[id*="preview" i] *,[class*="preview" i],[class*="preview" i] *,video,canvas,iframe),
:root[data-theme] .ls-legacy :is(small,p,div,ul)[style*="color: #999" i]:not([id*="preview" i],[id*="preview" i] *,[class*="preview" i],[class*="preview" i] *,video,canvas,iframe),
:root[data-theme] .ls-legacy :is(small,p,div,ul)[style*="color:#999" i]:not([id*="preview" i],[id*="preview" i] *,[class*="preview" i],[class*="preview" i] *,video,canvas,iframe),
:root[data-theme] .ls-legacy :is(small,p,div,ul)[style*="color: #888" i]:not([id*="preview" i],[id*="preview" i] *,[class*="preview" i],[class*="preview" i] *,video,canvas,iframe),
:root[data-theme] .ls-legacy :is(small,p,div,ul)[style*="color:#888" i]:not([id*="preview" i],[id*="preview" i] *,[class*="preview" i],[class*="preview" i] *,video,canvas,iframe),
:root[data-theme] .ls-legacy :is(small,p,div,ul)[style*="color: #bac8dc" i]:not([id*="preview" i],[id*="preview" i] *,[class*="preview" i],[class*="preview" i] *,video,canvas,iframe),
:root[data-theme] .ls-legacy :is(small,p,div,ul)[style*="color:#bac8dc" i]:not([id*="preview" i],[id*="preview" i] *,[class*="preview" i],[class*="preview" i] *,video,canvas,iframe),
:root[data-theme] .ls-legacy :is(small,p,div,ul)[style*="color: #9ca3af" i]:not([id*="preview" i],[id*="preview" i] *,[class*="preview" i],[class*="preview" i] *,video,canvas,iframe),
:root[data-theme] .ls-legacy :is(small,p,div,ul)[style*="color:#9ca3af" i]:not([id*="preview" i],[id*="preview" i] *,[class*="preview" i],[class*="preview" i] *,video,canvas,iframe),
:root[data-theme] .ls-legacy :is(small,p,div,ul)[style*="color: #96a5ba" i]:not([id*="preview" i],[id*="preview" i] *,[class*="preview" i],[class*="preview" i] *,video,canvas,iframe),
:root[data-theme] .ls-legacy :is(small,p,div,ul)[style*="color:#96a5ba" i]:not([id*="preview" i],[id*="preview" i] *,[class*="preview" i],[class*="preview" i] *,video,canvas,iframe),
:root[data-theme] .ls-legacy :is(small,p,div,ul)[style*="color: #ccc" i]:not([id*="preview" i],[id*="preview" i] *,[class*="preview" i],[class*="preview" i] *,video,canvas,iframe),
:root[data-theme] .ls-legacy :is(small,p,div,ul)[style*="color:#ccc" i]:not([id*="preview" i],[id*="preview" i] *,[class*="preview" i],[class*="preview" i] *,video,canvas,iframe){color:var(--muted)!important}
:root[data-theme] .ls-legacy :is(h2,h3,h4,strong,span)[style*="color: #edf4ff" i]:not([id*="preview" i],[id*="preview" i] *,[class*="preview" i],[class*="preview" i] *,video,canvas,iframe),
:root[data-theme] .ls-legacy :is(h2,h3,h4,strong,span)[style*="color:#edf4ff" i]:not([id*="preview" i],[id*="preview" i] *,[class*="preview" i],[class*="preview" i] *,video,canvas,iframe),
:root[data-theme] .ls-legacy :is(h2,h3,h4,strong,span)[style*="color: #e1e8f0" i]:not([id*="preview" i],[id*="preview" i] *,[class*="preview" i],[class*="preview" i] *,video,canvas,iframe),
:root[data-theme] .ls-legacy :is(h2,h3,h4,strong,span)[style*="color:#e1e8f0" i]:not([id*="preview" i],[id*="preview" i] *,[class*="preview" i],[class*="preview" i] *,video,canvas,iframe),
:root[data-theme] .ls-legacy :is(h2,h3,h4,strong,span)[style*="color: #eee" i]:not([id*="preview" i],[id*="preview" i] *,[class*="preview" i],[class*="preview" i] *,video,canvas,iframe),
:root[data-theme] .ls-legacy :is(h2,h3,h4,strong,span)[style*="color:#eee" i]:not([id*="preview" i],[id*="preview" i] *,[class*="preview" i],[class*="preview" i] *,video,canvas,iframe),
:root[data-theme] .ls-legacy :is(h2,h3,h4,strong,span)[style*="color: #fff" i]:not([id*="preview" i],[id*="preview" i] *,[class*="preview" i],[class*="preview" i] *,video,canvas,iframe),
:root[data-theme] .ls-legacy :is(h2,h3,h4,strong,span)[style*="color:#fff" i]:not([id*="preview" i],[id*="preview" i] *,[class*="preview" i],[class*="preview" i] *,video,canvas,iframe),
:root[data-theme] .ls-legacy :is(h2,h3,h4,strong,span)[style*="color: white" i]:not([id*="preview" i],[id*="preview" i] *,[class*="preview" i],[class*="preview" i] *,video,canvas,iframe),
:root[data-theme] .ls-legacy :is(h2,h3,h4,strong,span)[style*="color:white" i]:not([id*="preview" i],[id*="preview" i] *,[class*="preview" i],[class*="preview" i] *,video,canvas,iframe){color:var(--text)!important}

:root[data-theme] .ls-legacy #programsDropdown{min-width:min(350px,85vw)!important;max-width:85vw;inset-inline-end:0;right:auto!important;left:auto}
html[dir=rtl] .ls-legacy #programsDropdown{right:0!important;left:auto!important}
html[dir=ltr] .ls-legacy #programsDropdown{left:0!important;right:auto!important}
:root[data-theme] .ls-legacy .section-header[style]{background:var(--card)!important;color:var(--text)!important;border-inline-start:4px solid var(--accent)}
:root[data-theme] .ls-legacy .section-header :is(h2,h3,h4,span){color:inherit}
:root[data-theme] .ls-legacy :is(.form-row,.form-row-3,.row)>*{min-width:0}
:root[data-theme] .ls-legacy :is(.tabs,.nav-tabs,.btn-group){flex-wrap:wrap}
:root[data-theme] .ls-legacy :is(.card-header,.section-header){gap:12px;flex-wrap:wrap}
:root[data-theme] .ls-legacy .modal-content{max-height:90vh;overflow:auto}
:root[data-theme] .ls-legacy :is(.form-control,input,select,textarea){max-width:100%}
:root[data-theme] .ls-legacy :is(input[type=checkbox],input[type=radio]){accent-color:var(--accent)}
:root[data-theme] .ls-legacy .form-check-label{cursor:pointer}
@media(max-width:780px){:root[data-theme] .ls-legacy .card-body{padding:16px}:root[data-theme] .ls-legacy :is(.component-grid,.form-row,.form-row-3){grid-template-columns:minmax(0,1fr)}}
:root[data-theme] .ls-legacy :is(.info-box p,.subtitle){color:var(--muted)}
:root[data-theme] .ls-legacy :is(.playlist-info,.playlist-url){background:var(--card);color:var(--text);border-color:var(--edge)}
/* The host already supplies navigation; the old fixed dashboard sidebar overlapped it. */
.ls-legacy>.sidebar{display:none}
.ls-legacy>.main-content{margin:0;padding:0;min-width:0}
:root[data-theme] .ls-legacy .channels-grid{grid-template-columns:repeat(auto-fill,minmax(min(100%,350px),1fr))}
:root[data-theme] .ls-legacy .actions{white-space:normal}
:root[data-theme] .ls-legacy .actions :is(form,a){margin-block:4px}
