/* Stream2 dark theme, staging 2. Visual styling only. No player/live behavior changes. */
html.stream2-modern {
    color-scheme: dark;
    --s2-bg: #121820;
    --s2-paper: #1d2834;
    --s2-paper-hover: #253544;
    --s2-ink: #edf3f9;
    --s2-muted: #afbed0;
    --s2-border: #364756;
    --s2-accent: #78d9d0;
    --s2-accent-dark: #a2f4e7;
    --s2-action: #137d7a;
    --s2-action-hover: #106965;
}
html.stream2-modern, html.stream2-modern body {
    background: var(--s2-bg) !important;
    color: var(--s2-ink);
}
html.stream2-modern body {
    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Arial, sans-serif;
    font-size: 14px;
    line-height: 1.55;
}
html.stream2-modern a { color: var(--s2-accent); }
html.stream2-modern a:hover, html.stream2-modern a:focus { color: var(--s2-accent-dark); }
html.stream2-modern .text-muted, html.stream2-modern .help-block,
html.stream2-modern small, html.stream2-modern .small { color: var(--s2-muted); }
html.stream2-modern h1, html.stream2-modern h2, html.stream2-modern h3,
html.stream2-modern h4, html.stream2-modern h5, html.stream2-modern h6 {
    color: var(--s2-ink); font-weight: 650; letter-spacing: -.02em;
}
html.stream2-modern h1 { font-size: 25px; }
html.stream2-modern h2 { font-size: 21px; }
html.stream2-modern h3 { font-size: 18px; }
/* Header/sidebar: keep original layout and JS controls unchanged. */
html.stream2-modern .navbar-fixed-top {
    background: #101e28; border: 0; border-bottom: 1px solid #2f4352;
    box-shadow: 0 3px 16px rgba(0,0,0,.26);
}
html.stream2-modern .navbar-fixed-top .navbar-brand,
html.stream2-modern .navbar-fixed-top .navbar-nav > li > a { color: #f3f7fa; }
html.stream2-modern .navbar-fixed-top .btn-default {
    background: #263d4a; border-color: #3a5362; color: #f3f7fa;
}
html.stream2-modern .navbar-fixed-top .btn-default:hover,
html.stream2-modern .navbar-fixed-top .btn-default:focus { background: #345261; }
html.stream2-modern .navbar-fixed-top .dropdown-menu .btn-default,
html.stream2-modern .navbar-fixed-top #sidebar .btn-default {
    background: #293c4b; color: var(--s2-ink); border-color: var(--s2-border);
}
html.stream2-modern .navbar-fixed-top .dropdown-menu a,
html.stream2-modern #sidebar a { color: var(--s2-ink); }
html.stream2-modern .navbar-fixed-top .globalsearchfield {
    background: #253441; color: var(--s2-ink); border-color: #405364;
    box-shadow: none; border-radius: 8px 0 0 8px;
}
html.stream2-modern .globalsearchfield::placeholder,
html.stream2-modern .form-control::placeholder { color: #aab8c8; opacity: 1; }
html.stream2-modern #sidebar {
    background: var(--s2-paper); border-color: var(--s2-border);
    box-shadow: 8px 12px 32px rgba(0,0,0,.3);
}
/* Common surfaces; intentionally excludes video.js and the OBS/live player. */
html.stream2-modern .panel,
html.stream2-modern .well,
html.stream2-modern .list-group-item,
html.stream2-modern .modal-content,
html.stream2-modern .thumbnail,
html.stream2-modern .jumbotron,
html.stream2-modern .breadcrumb {
    color: var(--s2-ink); background: var(--s2-paper);
    border-color: var(--s2-border); border-radius: 12px;
    box-shadow: 0 3px 14px rgba(0,0,0,.10);
}
html.stream2-modern .list-group-item + .list-group-item { border-radius: 0; }
html.stream2-modern a.list-group-item:hover,
html.stream2-modern a.list-group-item:focus { background: var(--s2-paper-hover); color: var(--s2-ink); }
html.stream2-modern .panel-heading,
html.stream2-modern .modal-header,
html.stream2-modern .modal-footer {
    color: var(--s2-ink); background: #273645; border-color: var(--s2-border);
}
html.stream2-modern .panel-heading { border-radius: 11px 11px 0 0; }
html.stream2-modern .panel-primary > .panel-heading,
html.stream2-modern .panel-success > .panel-heading { background: #204448; }
html.stream2-modern .modal-content .close { color: #fff; opacity: .82; text-shadow: none; }
html.stream2-modern .btn {
    border-radius: 7px; font-weight: 600;
    transition: background-color .15s ease, border-color .15s ease;
}
html.stream2-modern .btn-primary,
html.stream2-modern .btn-success {
    background: var(--s2-action); border-color: var(--s2-action); color: #fff;
}
html.stream2-modern .btn-primary:hover, html.stream2-modern .btn-primary:focus,
html.stream2-modern .btn-success:hover, html.stream2-modern .btn-success:focus {
    background: var(--s2-action-hover); border-color: var(--s2-action-hover); color: #fff;
}
html.stream2-modern .btn-default { background: #293c4b; border-color: #455967; color: var(--s2-ink); }
html.stream2-modern .btn-default:hover, html.stream2-modern .btn-default:focus {
    background: #364d5d; color: #fff;
}
html.stream2-modern .form-control,
html.stream2-modern select.form-control,
html.stream2-modern textarea.form-control {
    color: var(--s2-ink); background: #263544; border-color: #43566a;
    border-radius: 7px; box-shadow: none;
}
html.stream2-modern .form-control:focus {
    background: #293a49; border-color: var(--s2-accent);
    box-shadow: 0 0 0 3px rgba(120,217,208,.16);
}
html.stream2-modern a:focus-visible, html.stream2-modern button:focus-visible,
html.stream2-modern input:focus-visible { outline: 3px solid #9bece3; outline-offset: 3px; }
html.stream2-modern .input-group .form-control { border-radius: 0; }
html.stream2-modern .input-group .form-control:last-child { border-radius: 0 7px 7px 0; }
html.stream2-modern .input-group-addon,
html.stream2-modern .input-group-btn .btn-default {
    background: #2b3b49; border-color: #43566a; color: #e3edf5;
}
html.stream2-modern .dropdown-menu {
    background: #21303e; border-color: var(--s2-border); border-radius: 10px;
    box-shadow: 0 10px 28px rgba(0,0,0,.40);
}
html.stream2-modern .dropdown-menu > li > a { padding: 8px 18px; color: var(--s2-ink); }
html.stream2-modern .dropdown-menu > li > a:hover,
html.stream2-modern .dropdown-menu > li > a:focus {
    background: #314756; color: #fff;
}
html.stream2-modern .dropdown-menu .divider { background: var(--s2-border); }
html.stream2-modern .table { color: var(--s2-ink); background: transparent; }
html.stream2-modern .table > thead > tr > th {
    color: #d3e2ed; background: #263745; border-bottom: 1px solid var(--s2-border);
}
html.stream2-modern .table > tbody > tr > td,
html.stream2-modern .table > tfoot > tr > td { border-color: var(--s2-border); vertical-align: middle; }
html.stream2-modern .table-striped > tbody > tr:nth-of-type(odd) { background: #202f3c; }
html.stream2-modern .table-hover > tbody > tr:hover { background: #2c3f4e; }
html.stream2-modern .nav-tabs { border-color: var(--s2-border); }
html.stream2-modern .nav-tabs > li > a { border-radius: 8px 8px 0 0; }
html.stream2-modern .nav-tabs > li.active > a,
html.stream2-modern .nav-tabs > li.active > a:hover,
html.stream2-modern .nav-tabs > li.active > a:focus {
    background: var(--s2-paper); color: #fff; border-color: var(--s2-border);
}
html.stream2-modern .pagination > li > a,
html.stream2-modern .pagination > li > span {
    color: var(--s2-accent); background: var(--s2-paper); border-color: var(--s2-border);
}
html.stream2-modern .pagination > li > a:hover { background: var(--s2-paper-hover); }
html.stream2-modern .pagination > .active > a,
html.stream2-modern .pagination > .active > span {
    color: #fff; background: var(--s2-action); border-color: var(--s2-action);
}
/* Gallery cards retain original Bootstrap widths, links, thumbnails, and loading. */
html.stream2-modern .gallery > .list-group-item {
    border: 0; background: transparent; box-shadow: none;
}
html.stream2-modern .gallery .galleryTitle {
    margin: 14px 0 18px; padding: 12px 4px;
    font-size: 22px; border-bottom: 1px solid var(--s2-border);
}
html.stream2-modern .galleryTitle a.btn-default {
    color: var(--s2-ink); background: transparent; border: 0;
}
html.stream2-modern .galleryVideo { padding: 0 9px 22px; }
html.stream2-modern .galleryVideo > .galleryLink:first-child {
    position: relative; display: block; overflow: hidden; border-radius: 11px;
    background: #243441; box-shadow: 0 2px 8px rgba(0,0,0,.24);
}
html.stream2-modern .galleryVideo .aspectRatio16_9 { border-radius: 11px; }
html.stream2-modern .galleryVideo a.h6 {
    display: block; margin-top: 10px; color: var(--s2-ink);
}
html.stream2-modern .gallery h2,
html.stream2-modern .galleryVideo .title {
    font-size: 15px; font-weight: 650; line-height: 1.4;
    min-height: 42px; max-height: 42px;
}
html.stream2-modern .galleryVideo .galeryDetails { margin-top: 5px; line-height: 1.65; }
html.stream2-modern .galleryVideo .galeryDetails div { font-size: 12px; color: var(--s2-muted); }
html.stream2-modern .galleryVideo .duration {
    top: auto; left: auto; bottom: 9px; right: 8px;
    background: rgba(9,14,20,.9) !important; color: #fff;
    border-radius: 5px; padding: 2px 6px; font-size: 11px; font-weight: 600;
}
html.stream2-modern .galleryVideo .progress { margin: 0; border-radius: 0; }
html.stream2-modern .gallery .label-default {
    background: #304755; color: #d6e5ee; border-radius: 4px; font-weight: 500;
}
html.stream2-modern .aligned-row { border-bottom: 0; }
html.stream2-modern footer {
    color: var(--s2-muted); background: #19232e;
    border-color: var(--s2-border); padding: 14px;
}
/* The video.js control bar, poster, fullscreen, theater, and live overlay are untouched. */
.stream2-login-row { margin-top: 28px; margin-bottom: 40px; }
html.stream2-modern .stream2-login-card {
    background: var(--s2-paper); color: var(--s2-ink);
    border: 1px solid var(--s2-border); border-radius: 16px;
    padding: 32px; box-shadow: 0 12px 36px rgba(0,0,0,.24);
}
html.stream2-modern .stream2-eyebrow {
    display: inline-block; color: var(--s2-accent); font-size: 11px;
    letter-spacing: .14em; font-weight: 700; margin-bottom: 10px;
}
html.stream2-modern .stream2-login-card h1 { margin: 0 0 12px; padding: 0; }
html.stream2-modern .stream2-login-card p { margin-bottom: 22px; }
html.stream2-modern .stream2-login-card .form-control { min-height: 43px; }
html.stream2-modern .stream2-login-card .btn { min-height: 44px; }
html.stream2-modern .stream2-login-card .stream2-login-note {
    margin: 15px 0 0; color: var(--s2-muted); font-size: 12px; line-height: 1.6;
}
@media (max-width: 767px) {
    html.stream2-modern .navbar-fixed-top #mysearch { background: #101e28; }
    html.stream2-modern .gallery .mainArea { padding: 5px; }
    html.stream2-modern .gallery .galleryTitle { font-size: 20px; }
    html.stream2-modern .galleryVideo { padding-left: 6px; padding-right: 6px; }
    .stream2-login-row { margin-top: 14px; }
    html.stream2-modern .stream2-login-card { padding: 24px 20px; }
}
@media (prefers-reduced-motion: reduce) {
    html.stream2-modern .btn { transition: none; }
}
