:root {
  --parliament-blue: #005b96;
  --parliament-blue-dark: #003f6b;
  --parliament-blue-soft: #eaf4fb;
  --ink: #132238;
  --muted: #6d7b8d;
  --line: #dce5ee;
  --white: #ffffff;
  --danger: #b42318;
  --success: #147d4a;
  --shadow: 0 18px 50px rgba(17, 42, 70, .10);
}

* { box-sizing: border-box; }
html, body { min-height: 100%; }
body { margin: 0; background: var(--white); color: var(--ink); font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; }
.topbar { align-items: center; background: var(--panel-header-color, #ffffff); border-bottom: 1px solid var(--line); color: var(--panel-header-foreground, var(--ink)); display: flex; justify-content: space-between; min-height: 72px; padding: 0 clamp(18px, 5vw, 40px); position: relative; z-index: 1000; }
.topbar-leading { align-items: center; display: flex; gap: 14px; min-width: 0; }
.sr-only { height: 1px; margin: -1px; overflow: hidden; position: absolute; width: 1px; clip: rect(0, 0, 0, 0); }
.account-menu { position: relative; z-index: 4100; }
.account-menu summary { list-style: none; }
.account-menu summary::-webkit-details-marker { display: none; }
.account-menu-toggle { align-items: center; background: transparent !important; border-color: transparent !important; box-shadow: none !important; color: var(--panel-header-foreground, var(--parliament-blue-dark)); display: inline-flex; gap: 7px; min-height: 42px; min-width: 0; padding: 0 7px; }
.account-menu-toggle:hover { background: rgba(255,255,255,.18) !important; border-color: transparent !important; box-shadow: none !important; color: var(--panel-header-foreground, var(--parliament-blue-dark)); transform: none; }
.account-menu-user-icon { align-items: center; color: var(--panel-header-foreground, var(--parliament-blue-dark)); display: inline-flex; height: 22px; justify-content: center; width: 22px; }
.account-menu-user-icon svg { fill: none; height: 21px; stroke: currentColor; stroke-linecap: round; stroke-linejoin: round; stroke-width: 1.7; width: 21px; }
.account-menu-user { display: none; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.account-menu-chevron { font-size: 16px; line-height: 1; }
.account-menu[open] .account-menu-chevron { transform: rotate(180deg); }
.account-menu-panel { background: #000; border: 1px solid #303030; border-radius: 11px; box-shadow: 0 14px 28px rgba(17,42,70,.16); min-width: 180px; padding: 7px; position: absolute; right: 0; top: calc(100% + 7px); }
.account-menu-panel a, .account-menu-panel button { background: transparent; border: 0; border-radius: 8px; color: #fff; cursor: pointer; display: block; font: inherit; font-size: 12px; font-weight: 750; padding: 10px 11px; text-align: left; text-decoration: none; width: 100%; }
.account-menu-panel a:hover, .account-menu-panel button:hover { background: #292929; color: #fff; }
.account-menu-panel form { margin: 0; }
.account-menu-panel a, .account-menu-panel button { display: flex; align-items: center; gap: 9px; }
.account-menu-item-icon { display: inline-flex; width: 18px; height: 18px; flex: 0 0 18px; align-items: center; justify-content: center; }
.account-menu-item-icon svg { width: 18px; height: 18px; fill: none; stroke: currentColor; stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; }
.account-menu-panel a.active { background: #292929; color: #fff; }
.brand { color: var(--panel-header-foreground, var(--parliament-blue-dark)); font-size: 18px; font-weight: 800; letter-spacing: .08em; text-decoration: none; }
.brand span { color: currentColor; font-weight: 500; opacity: .72; }
.page-shell { margin: 0 auto; max-width: 1440px; padding: clamp(24px, 5vw, 64px); }
.page-shell.dashboard-page-shell { padding-top: clamp(18px, 2vw, 28px); }
.page-shell.transcode-page-shell { padding-top: 18px; }
.auth-layout { display: grid; grid-template-columns: minmax(0, 1fr) minmax(360px, 520px); margin: 0 auto; max-width: 1120px; min-height: 620px; overflow: hidden; box-shadow: var(--shadow); border: 1px solid var(--line); border-radius: 24px; }
.intro-panel { background: linear-gradient(145deg, var(--parliament-blue-dark), var(--parliament-blue)); color: #fff; padding: clamp(32px, 6vw, 76px); position: relative; }
.intro-panel::after { background: rgba(255,255,255,.08); border-radius: 50%; content: ""; height: 380px; position: absolute; right: -160px; top: -120px; width: 380px; }
.logo-mark { align-items: center; background: #fff; border-radius: 14px; color: var(--parliament-blue); display: flex; font-weight: 900; height: 54px; justify-content: center; letter-spacing: -.08em; margin-bottom: 48px; position: relative; width: 54px; z-index: 1; }
.logo-mark-small { height: 48px; margin-bottom: 24px; width: 48px; }
.eyebrow { font-size: 11px; font-weight: 800; letter-spacing: .16em; margin: 0 0 14px; }
.blue-text { color: var(--parliament-blue); }
.intro-panel h1 { font-size: clamp(30px, 4vw, 48px); letter-spacing: -.04em; line-height: 1.08; margin: 0 0 22px; position: relative; z-index: 1; }
.muted { color: var(--muted); line-height: 1.6; }
.light-text { color: rgba(255,255,255,.78); max-width: 460px; position: relative; z-index: 1; }
.feature-list { display: grid; gap: 13px; margin-top: 46px; position: relative; z-index: 1; }
.feature-list span { color: rgba(255,255,255,.9); font-size: 14px; }
.form-panel { background: #fff; padding: clamp(28px, 5vw, 58px); }
.form-panel h2 { font-size: clamp(27px, 4vw, 36px); letter-spacing: -.04em; margin: 0 0 10px; }
.form-help { color: var(--muted); font-size: 14px; margin: 0 0 30px; }
.field { margin-bottom: 18px; }
.field label { display: block; font-size: 13px; font-weight: 700; margin-bottom: 8px; }
.input { background: #fff; border: 1px solid var(--line); border-radius: 10px; color: var(--ink); font: inherit; min-height: 48px; outline: none; padding: 0 14px; transition: border-color .2s, box-shadow .2s; width: 100%; }
.input:focus { border-color: var(--parliament-blue); box-shadow: 0 0 0 4px rgba(0,91,150,.12); }
.button { border: 0; border-radius: 10px; cursor: pointer; font: inherit; font-weight: 750; min-height: 46px; padding: 0 18px; transition: transform .15s, background .15s; }
.button:hover { transform: translateY(-1px); }
.button-primary { background: var(--parliament-blue); color: #fff; }
.button-primary:hover { background: var(--parliament-blue-dark); }
.button-light { background: var(--parliament-blue-soft); color: var(--parliament-blue-dark); min-height: 38px; }
.button-danger { background: #fff0ef; color: var(--danger); }
.button-danger:hover { background: #ffe1de; }
.button-small { font-size: 12px; min-height: 36px; padding: 0 12px; }
.button-full { margin-top: 8px; width: 100%; }
.error { color: var(--danger); display: block; font-size: 12px; margin-top: 5px; }
.security-note { color: var(--muted); font-size: 12px; margin: 24px 0 0; text-align: center; }
.toast-stack { bottom: 22px; display: grid; gap: 12px; position: fixed; right: 22px; width: min(380px, calc(100vw - 44px)); z-index: 1000; }
.toast { align-items: flex-start; animation: toast-in .25s ease-out; border: 1px solid; border-radius: 12px; box-shadow: 0 16px 36px rgba(17,42,70,.16); display: flex; font-size: 14px; gap: 12px; justify-content: space-between; line-height: 1.45; padding: 14px 14px 14px 16px; }
.toast-message { min-width: 0; }
.toast-close { background: transparent; border: 0; color: currentColor; cursor: pointer; flex: 0 0 auto; font-size: 22px; line-height: 1; opacity: .6; padding: 0 2px; }
.toast-close:hover { opacity: 1; }
.toast-success { background: #e9f8ef; border-color: #b8e4ca; color: var(--success); }
.toast-danger { background: #fff0ef; border-color: #f2c2bd; color: var(--danger); }
.toast-warning { background: #fff8e8; border-color: #f1d99b; color: #8a5a00; }
.toast-info { background: var(--parliament-blue-soft); border-color: #bcd7eb; color: var(--parliament-blue-dark); }
.toast.is-hiding { animation: toast-out .25s ease-in forwards; }
@keyframes toast-in { from { opacity: 0; transform: translateY(12px); } to { opacity: 1; transform: translateY(0); } }
@keyframes toast-out { from { opacity: 1; transform: translateY(0); } to { opacity: 0; transform: translateY(12px); } }
.centered-card-wrap { display: grid; min-height: calc(100vh - 200px); place-items: center; }
.login-card { border: 1px solid var(--line); border-radius: 20px; box-shadow: var(--shadow); max-width: 460px; width: 100%; }
.global-toolbar { background: #000; border-right: 1px solid #303030; box-shadow: 12px 0 30px rgba(0,0,0,.22); display: flex; flex-direction: column; gap: 14px; height: calc(100vh - 72px); left: 0; margin: 0; max-width: none; overflow: hidden; padding: 16px 12px; position: fixed; top: 72px; transform: translateX(0); transition: transform .24s ease; width: 264px; z-index: 2000; }
.global-toolbar.is-collapsed { transform: translateX(-100%); }
.toolbar-sidebar-heading { align-items: center; color: #f3f4f6; display: flex; font-size: 11px; font-weight: 850; justify-content: space-between; letter-spacing: .12em; padding: 3px 8px 9px; text-transform: uppercase; }
.toolbar-sidebar-close { align-items: center; background: transparent; border: 0; color: #d1d5db; cursor: pointer; display: inline-flex; font-size: 24px; height: 28px; justify-content: center; line-height: 1; padding: 0; width: 28px; }
.toolbar-sidebar-close:hover { background: #292929; border-radius: 8px; color: #fff; }
.toolbar-menu { flex: 1; min-height: 0; min-width: 0; overflow-x: hidden; overflow-y: auto; width: 100%; }
.toolbar-scroll { align-items: stretch; display: flex; flex-direction: column; gap: 7px; min-width: 0; overflow: visible; }
.toolbar-dropdown { display: grid; gap: 5px; min-width: 0; position: relative; }
.toolbar-dropdown-toggle { justify-content: flex-start; width: 100%; }
.toolbar-dropdown-toggle:not(.active) { background: #111; border-color: #333; color: #f3f4f6; }
.toolbar-dropdown-toggle:not(.active):hover { background: #292929; }
.toolbar-dropdown-chevron { font-size: 16px; line-height: 1; margin-left: auto; transition: transform .18s ease; }
.toolbar-dropdown.is-open .toolbar-dropdown-chevron { transform: rotate(180deg); }
.toolbar-dropdown-menu { display: none; gap: 5px; padding-left: 14px; }
.toolbar-dropdown.is-open .toolbar-dropdown-menu { display: grid; }
.toolbar-dropdown-menu .toolbar-button { font-size: 12px; min-height: 37px; padding-left: 13px; }
.toolbar-button { align-items: center; background: #111; border: 1px solid #333; border-radius: 11px; color: #f3f4f6; cursor: pointer; display: inline-flex; flex: 0 0 auto; font: inherit; font-size: 13px; font-weight: 750; gap: 8px; min-height: 40px; padding: 0 15px; text-decoration: none; transition: background .18s, border-color .18s, box-shadow .18s, color .18s, transform .18s; white-space: nowrap; }
.toolbar-button-icon { align-items: center; display: inline-flex; flex: 0 0 16px; height: 16px; justify-content: center; width: 16px; }
.toolbar-button-icon svg { fill: none; height: 16px; stroke: currentColor; stroke-linecap: round; stroke-linejoin: round; stroke-width: 1.8; width: 16px; }
.toolbar-button:hover:not(:disabled) { background: #292929; border-color: #555; box-shadow: 0 6px 14px rgba(0,0,0,.22); color: #fff; transform: translateY(-1px); }
.toolbar-button.active { background: linear-gradient(135deg, #006aa8, #004a7d); border-color: #004a7d; box-shadow: 0 7px 16px rgba(0,91,150,.22); color: #fff; }
.toolbar-button.active:hover { background: linear-gradient(135deg, #0078bb, #005689); color: #fff; }
.toolbar-button:disabled { cursor: not-allowed; opacity: .52; }
.toolbar-toggle { align-items: center; background: transparent; border: 1px solid transparent; border-radius: 10px; color: var(--panel-header-foreground, var(--parliament-blue-dark)); cursor: pointer; display: inline-flex; flex: 0 0 42px; font: inherit; gap: 10px; height: 42px; justify-content: center; padding: 0; text-align: left; width: 42px; }
.toolbar-toggle:hover { background: rgba(255,255,255,.18); border-color: transparent; }
.toolbar-toggle-icon { display: grid; gap: 4px; width: 18px; }
.toolbar-toggle-icon i { background: currentColor; border-radius: 2px; display: block; height: 2px; transition: transform .2s, opacity .2s; width: 18px; }
.toolbar-toggle.is-open .toolbar-toggle-icon i:nth-child(1) { transform: translateY(6px) rotate(45deg); }
.toolbar-toggle.is-open .toolbar-toggle-icon i:nth-child(2) { opacity: 0; }
.toolbar-toggle.is-open .toolbar-toggle-icon i:nth-child(3) { transform: translateY(-6px) rotate(-45deg); }
.global-toolbar + .nav-overlay { display: none; }
.global-toolbar + .nav-overlay.is-visible { display: block; }
.global-toolbar + .nav-overlay + .page-shell { margin-left: 264px; max-width: calc(100% - 264px); }
body.nav-collapsed .global-toolbar + .nav-overlay + .page-shell { margin-left: 0; max-width: 1440px; }
.nav-overlay { background: rgba(10, 30, 50, .34); inset: 72px 0 0; position: fixed; z-index: 900; }
.appearance-icon { background: linear-gradient(135deg, #5d77d4, #354c9b); font-size: 11px; }
.appearance-settings-form { max-width: 620px; }
.appearance-color-picker-row { align-items: center; display: flex; gap: 12px; }
.appearance-color-picker { background: #fff; border: 1px solid var(--line); border-radius: 10px; cursor: pointer; height: 48px; padding: 4px; width: 72px; }
.appearance-color-value { color: var(--parliament-blue-dark); font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace; font-size: 13px; font-weight: 800; letter-spacing: .04em; }
.panel-footer { align-items: center; color: var(--muted); display: flex; font-size: 11px; gap: 8px; justify-content: center; margin: 22px auto 0; max-width: 1440px; padding: 16px 24px 22px; }
.panel-footer span:first-child { color: var(--parliament-blue-dark); font-weight: 800; }
.panel-footer-separator { color: #9bb2c4; }
body.panel-menu-top .panel-footer { margin-top: 22px; }
.appearance-dashboard-sections { border: 1px solid var(--line); border-radius: 12px; margin: 4px 0 2px; padding: 14px; }
.profile-password-heading { align-items: baseline; border-top: 1px solid var(--line); display: flex; gap: 10px; margin-top: 8px; padding-top: 16px; }
.profile-password-heading h3 { color: var(--parliament-blue-dark); font-size: 14px; margin: 0; }
.appearance-dashboard-sections legend { color: var(--parliament-blue-dark); font-size: 13px; font-weight: 850; padding: 0 6px; }
.appearance-section-grid { display: grid; gap: 8px; grid-template-columns: repeat(2, minmax(0, 1fr)); margin-top: 10px; }
.appearance-section-toggle { align-items: center; background: #f8fafc; border: 1px solid var(--line); border-radius: 9px; color: var(--ink); cursor: pointer; display: flex; gap: 9px; min-height: 42px; padding: 8px 10px; }
.appearance-section-toggle:hover { border-color: #9fc5dc; background: #f4f9fd; }
.appearance-section-toggle input { accent-color: var(--parliament-blue); flex: 0 0 auto; height: 16px; width: 16px; }
.appearance-section-toggle span { font-size: 12px; font-weight: 700; }

@media (min-width: 1025px) {
  body.panel-menu-top .topbar { display: flex !important; left: 0; position: fixed; right: 0; top: 0; width: 100%; z-index: 4000; }
  .panel-menu-top .global-toolbar { border-bottom: 1px solid #303030; border-right: 0; box-shadow: 0 10px 26px rgba(0,0,0,.24); height: 64px; left: 0; max-width: none; padding: 6px clamp(18px, 4vw, 40px); top: 72px; transform: translateY(0); width: 100%; }
  .panel-menu-top .global-toolbar.is-collapsed { transform: translateY(-100%); }
  .panel-menu-top .toolbar-sidebar-heading { display: none; }
  .panel-menu-top .toolbar-menu { overflow-x: auto; overflow-y: hidden; }
  .panel-menu-top .toolbar-scroll { align-items: stretch; flex-direction: row; min-width: max-content; }
  .panel-menu-top .toolbar-dropdown { display: block; }
  .panel-menu-top .toolbar-dropdown-menu { background: #000; border: 1px solid #303030; border-radius: 11px; box-shadow: 0 18px 38px rgba(0,0,0,.35); min-width: 205px; padding: 8px; position: absolute; right: 0; top: calc(100% + 7px); z-index: 20; }
  .panel-menu-top .toolbar-dropdown-menu .toolbar-button { width: 100%; }
  body.panel-menu-top .global-toolbar + .nav-overlay + .page-shell { margin-left: 0; margin-top: 136px; max-width: 1440px; }
  body.panel-menu-top.nav-collapsed .global-toolbar + .nav-overlay + .page-shell { margin-left: 0; margin-top: 72px; max-width: 1440px; }
}
.server-stats-grid { display: grid; gap: 16px; grid-template-columns: repeat(5, minmax(0, 1fr)); margin: 0 auto 24px; max-width: 1120px; }
.server-stat-card { border: 0; border-radius: 14px; color: #fff; min-height: 176px; min-width: 0; overflow: hidden; padding: 20px; position: relative; box-shadow: 0 14px 30px rgba(35, 56, 90, .13); }
.server-stat-card::before, .server-stat-card::after { background: rgba(255,255,255,.13); border-radius: 50%; content: ""; pointer-events: none; position: absolute; }
.server-stat-card::before { height: 142px; right: -48px; top: -54px; width: 142px; }
.server-stat-card::after { bottom: -74px; height: 166px; right: 18px; width: 166px; }
.gradient-coral { background: linear-gradient(135deg, #ff9a8b 0%, #ff6a88 100%); }
.gradient-blue { background: linear-gradient(135deg, #55b9ef 0%, #2588d8 100%); }
.gradient-teal { background: linear-gradient(135deg, #45d5c1 0%, #18bcae 100%); }
.gradient-orange { background: linear-gradient(135deg, #ffbd73 0%, #f47b61 100%); }
.gradient-purple { background: linear-gradient(135deg, #a890f0 0%, #7064d8 100%); }
.server-stat-top { align-items: center; display: flex; gap: 10px; margin-bottom: 20px; }
.stat-icon { align-items: center; background: rgba(255,255,255,.22); border: 1px solid rgba(255,255,255,.2); border-radius: 9px; color: #fff; display: inline-flex; font-size: 10px; font-weight: 900; height: 34px; justify-content: center; letter-spacing: .02em; position: relative; width: 38px; z-index: 1; }
.network-in, .network-out { color: #fff; font-size: 22px; }
.server-stat-card .stat-label { color: rgba(255,255,255,.88); position: relative; z-index: 1; }
.server-stat-card strong { color: #fff; display: block; font-size: clamp(22px, 2.4vw, 30px); letter-spacing: -.04em; margin-bottom: 14px; overflow: hidden; position: relative; text-overflow: ellipsis; white-space: nowrap; z-index: 1; }
.server-stat-card .muted { color: rgba(255,255,255,.82); display: block; font-size: 12px; margin-top: 10px; position: relative; white-space: nowrap; z-index: 1; }
.progress-track { background: rgba(255,255,255,.28); border-radius: 99px; height: 7px; overflow: hidden; position: relative; width: 100%; z-index: 1; }
.progress-track span { background: #fff; border-radius: inherit; display: block; height: 100%; transition: width .35s ease; width: 0; }
.network-card { display: flex; flex-direction: column; }
.network-card .muted { margin-top: auto; }
.stats-grid { display: grid; gap: 18px; grid-template-columns: repeat(3, 1fr); margin: 0 auto 24px; max-width: 1120px; }
.stat-card, .empty-panel { border: 1px solid var(--line); border-radius: 16px; padding: 24px; }
.stat-card { display: grid; gap: 8px; }
.stat-label { color: var(--muted); font-size: 13px; font-weight: 700; }
.stat-card strong { color: var(--parliament-blue-dark); font-size: 38px; }
.stat-card .muted { font-size: 13px; }
.empty-panel { margin: 0 auto; max-width: 1120px; text-align: center; }
.empty-icon { align-items: center; background: var(--parliament-blue-soft); border-radius: 50%; color: var(--parliament-blue); display: flex; font-size: 30px; height: 58px; justify-content: center; margin: 0 auto 16px; width: 58px; }
.empty-panel h2 { margin-bottom: 8px; }
.empty-panel p { margin: 0 auto; max-width: 520px; }
.settings-page { margin: 0 auto; max-width: 1120px; }
.page-shell.settings-page-shell { padding-top: 0; }
.series-page-shell { padding-top: 0; }
.series-page { margin: 0 auto; max-width: 1120px; }
.live-categories-page-shell { padding-top: 0; }
.live-categories-page { margin: 0 auto; max-width: 1120px; }
.settings-card.live-category-create-card { align-items: center; display: flex; flex-wrap: wrap; gap: 14px 24px; margin-bottom: 20px; padding: 14px 18px; width: 100%; }
.live-category-create-card .settings-card-heading { flex: 1 1 360px; margin-bottom: 0; }
.live-category-create-card .live-category-create-form { flex: 1 1 380px; margin: 0; }
.live-category-create-card .settings-card-heading h2 { font-size: 18px; }
.live-category-create-card .settings-card-heading p { font-size: 12px; margin-bottom: 0; }
.live-category-create-card .settings-card-icon { height: 38px; width: 38px; flex-shrink: 0; }
.live-category-create-card .input { min-height: 36px; padding: 7px 10px; }
.live-category-create-card .button { min-height: 36px; padding: 0 14px; }
.live-category-icon { background: linear-gradient(135deg, #4e8ed0, #24538c); font-size: 10px; }
.live-category-create-form { align-items: end; display: flex; gap: 14px; max-width: 800px; }
.live-category-title-field { flex: 1; margin-bottom: 0; }
.live-categories-section { margin-top: 20px; }
.live-category-table-wrap { background: #fff; border: 1px solid var(--line); border-radius: 12px; overflow-x: auto; }
.live-category-table { border-collapse: collapse; width: 100%; font-size: 13px; }
.live-category-table th { background: var(--parliament-blue-soft); color: var(--parliament-blue-dark); font-size: 11px; text-align: left; white-space: nowrap; }
.live-category-table th, .live-category-table td { padding: 10px 14px; border-bottom: 1px solid var(--line); }
.live-category-table tbody tr:last-child td { border-bottom: 0; }
.live-category-table tbody tr:hover { background: #f7fafc; }
.live-category-table th:last-child, .live-category-table td:last-child { text-align: right; white-space: nowrap; }
.live-category-table td:first-child { min-width: 160px; overflow-wrap: anywhere; }
.live-category-name { color: var(--parliament-blue-dark); font-weight: 700; text-decoration: none; }
.live-category-name:hover { text-decoration: underline; }
.category-name-with-icon { align-items: center; display: inline-flex; gap: 9px; }
.category-type-icon { align-items: center; background: var(--parliament-blue-soft); border-radius: 6px; color: var(--parliament-blue); display: inline-flex; flex: 0 0 28px; height: 28px; justify-content: center; width: 28px; }
.category-type-icon svg { fill: none; height: 18px; stroke: currentColor; stroke-linecap: round; stroke-linejoin: round; stroke-width: 1.6; width: 18px; }
.category-table-actions { justify-content: flex-end; }
.category-table-actions .movie-category-edit form { white-space: normal; }
.live-category-grid { display: grid; gap: 16px; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); }
.live-category-card { align-items: center; background: #fff; border: 1px solid var(--line); border-radius: 16px; box-shadow: 0 10px 28px rgba(17,42,70,.07); color: inherit; display: grid; gap: 14px; grid-template-columns: 58px minmax(0, 1fr) auto; min-height: 112px; padding: 18px; text-decoration: none; transition: transform .15s, box-shadow .15s, border-color .15s; }
.live-category-card:hover { border-color: #bcd7eb; box-shadow: 0 16px 34px rgba(17,42,70,.14); transform: translateY(-2px); }
.live-category-folder { align-items: center; background: var(--parliament-blue-soft); border-radius: 15px; color: var(--parliament-blue); display: flex; font-size: 22px; height: 58px; justify-content: center; width: 58px; }
.live-category-folder-large { font-size: 30px; height: 78px; width: 78px; }
.live-category-info { min-width: 0; }
.live-category-info h3 { color: var(--parliament-blue-dark); font-size: 16px; line-height: 1.35; margin: 0 0 6px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.live-category-info span { color: var(--muted); font-size: 12px; }
.live-category-hero { align-items: center; background: #fff; border: 1px solid var(--line); border-radius: 18px; box-shadow: var(--shadow); display: grid; gap: 20px; grid-template-columns: 78px minmax(0, 1fr) auto; margin-bottom: 24px; padding: 22px; }
.live-category-hero-info { min-width: 0; }
.live-category-hero-info h1 { color: var(--parliament-blue-dark); font-size: clamp(28px, 4vw, 42px); letter-spacing: -.04em; margin: 0 0 10px; }
.live-category-hero-info .muted { max-width: 720px; }
.live-category-rename-card { margin-bottom: 24px; }
.live-category-future-card { align-items: center; display: grid; gap: 6px; justify-items: center; text-align: center; }
.live-category-future-card h2 { color: var(--parliament-blue-dark); font-size: 22px; margin: 2px 0 0; }
.live-category-future-card p { margin: 0; max-width: 650px; }
.vod-channels-page-shell { padding-top: 0; }
.vod-channels-page, .vod-channel-detail-page { margin: 0 auto; max-width: 1220px; }
.vod-channel-create-card { margin-bottom: 32px; }
.vod-channel-icon { background: linear-gradient(135deg, #0f8c83, #075b74); font-size: 22px; }
.vod-channel-create-form { align-items: end; display: flex; gap: 14px; max-width: 820px; }
.vod-channel-name-field { flex: 1; margin-bottom: 0; }
.vod-channel-section-heading, .vod-channel-detail-heading { align-items: flex-start; display: flex; gap: 20px; justify-content: space-between; margin-bottom: 24px; }
.vod-channel-section-heading h1, .vod-channel-detail-heading h1 { color: var(--parliament-blue-dark); font-size: clamp(30px, 4vw, 42px); letter-spacing: -.04em; margin: 0 0 8px; }
.vod-channel-section-heading p, .vod-channel-detail-heading p { margin: 0; }
.vod-channel-grid { display: grid; gap: 16px; grid-template-columns: repeat(auto-fill, minmax(320px, 1fr)); }
.vod-channel-card { background: #fff; border: 1px solid var(--line); border-radius: 16px; box-shadow: 0 10px 28px rgba(17,42,70,.07); display: grid; gap: 14px; padding: 18px; }
.vod-channel-card-main { align-items: center; color: inherit; display: grid; gap: 14px; grid-template-columns: 58px minmax(0, 1fr) auto; text-decoration: none; }
.vod-channel-card-main:hover h2 { color: var(--parliament-blue); }
.vod-channel-card-icon { align-items: center; background: #e4f7f5; border-radius: 15px; color: #087d77; display: flex; font-size: 22px; height: 58px; justify-content: center; width: 58px; }
.vod-channel-card-info { min-width: 0; }
.vod-channel-card-info h2 { color: var(--parliament-blue-dark); font-size: 17px; margin: 0 0 5px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.vod-channel-card-info span { color: var(--muted); font-size: 12px; }
.vod-channel-card-actions { border-top: 1px solid var(--line); display: flex; flex-wrap: wrap; gap: 8px; justify-content: flex-end; padding-top: 14px; }
.vod-channel-card-actions form, .vod-channel-control-group form, .vod-channel-row-actions form { margin: 0; }
.vod-streams-page { max-width: 1500px; }
.vod-streams-heading { align-items: center; display: flex; justify-content: space-between; margin-bottom: 28px; }
.vod-streams-heading h1 { color: #273747; font-size: 24px; font-weight: 500; margin: 0; }
.vod-streams-top-actions { align-items: center; display: flex; gap: 6px; }
.button-filter, .button-search, .button-refresh { min-height: 38px; padding: 0 13px; }
.button-filter { background: #f7c75b; color: #fff; }
.button-search { background: #55bdd2; color: #fff; }
.button-refresh { background: #293c51; color: #fff; font-size: 12px; }
.vod-stream-create-details { position: relative; }
.vod-stream-create-details summary { list-style: none; }
.vod-stream-create-details summary::-webkit-details-marker { display: none; }
.vod-stream-create-form { align-items: end; background: #fff; border: 1px solid var(--line); border-radius: 10px; box-shadow: var(--shadow); display: grid; gap: 7px; min-width: 280px; padding: 12px; position: absolute; right: 0; top: calc(100% + 8px); z-index: 20; }
.vod-stream-create-form label { color: var(--parliament-blue-dark); font-size: 11px; font-weight: 800; }
.vod-stream-create-form .input { min-height: 38px; }
.vod-stream-filters { align-items: center; display: grid; gap: 22px; grid-template-columns: minmax(190px, 1fr) minmax(180px, 1.45fr) minmax(180px, 1.45fr) minmax(160px, 1fr) 105px; margin-bottom: 14px; }
.vod-stream-filters .input { border-color: #d7dce1; border-radius: 0; color: #63707b; font-size: 12px; min-height: 38px; }
.vod-stream-search .input { border-radius: 11px; }
.vod-stream-show { align-items: center; display: flex; gap: 14px; justify-content: flex-end; }
.vod-stream-show > span { color: #2b3540; font-size: 12px; font-weight: 700; }
.vod-stream-show .input { width: 105px; }
.vod-stream-table-card { background: #fff; border: 1px solid #dce1e5; overflow: hidden; }
.vod-stream-table-wrap { overflow-x: auto; }
.vod-stream-table { border-collapse: collapse; min-width: 1180px; table-layout: fixed; width: 100%; }
.vod-stream-table th { background: #f8f9fa; border-bottom: 1px solid #dce1e5; color: #66717c; font-size: 10px; font-weight: 500; height: 42px; padding: 0 12px; text-align: center; }
.vod-stream-table td { border-bottom: 1px solid #e4e7ea; color: #65717d; font-size: 12px; height: 70px; padding: 8px 10px; text-align: center; vertical-align: middle; }
.vod-stream-table th:nth-child(1), .vod-stream-table td:nth-child(1) { width: 72px; }
.vod-stream-table th:nth-child(2), .vod-stream-table td:nth-child(2) { width: 68px; }
.vod-stream-table th:nth-child(3), .vod-stream-table td:nth-child(3) { text-align: left; width: 195px; }
.vod-stream-table th:nth-child(4), .vod-stream-table td:nth-child(4) { width: 150px; }
.vod-stream-table th:nth-child(5), .vod-stream-table td:nth-child(5) { width: 105px; }
.vod-stream-table th:nth-child(6), .vod-stream-table td:nth-child(6) { width: 160px; }
.vod-stream-table th:nth-child(7), .vod-stream-table td:nth-child(7) { width: 260px; }
.vod-stream-table th:nth-child(8), .vod-stream-table td:nth-child(8) { width: 92px; }
.vod-stream-table th:nth-child(9), .vod-stream-table td:nth-child(9) { width: 92px; }
.vod-stream-table th:nth-child(10), .vod-stream-table td:nth-child(10) { width: 230px; }
.vod-stream-id { color: #65717d; }
.vod-stream-icon { align-items: center; background: #e5f4f7; border-radius: 2px; color: #2ca5ba; display: inline-flex; font-size: 16px; height: 48px; justify-content: center; width: 48px; }
.vod-stream-name { color: #536171; display: block; font-size: 13px; text-decoration: none; }
.vod-stream-name:hover { color: var(--parliament-blue); }
.vod-stream-table td small { color: #e07f79; display: block; font-size: 10px; margin-top: 4px; }
.vod-stream-source { color: #64717d; font-weight: 600; }
.vod-stream-clients { background: #f0f4f6; color: #7a8791; display: inline-flex; min-width: 34px; padding: 8px 10px; justify-content: center; }
.vod-stream-uptime { color: #7a8791; display: block; font-size: 11px; margin-top: 5px; white-space: nowrap; }
.vod-stream-now-playing { color: #7a8791; display: block; font-size: 11px; line-height: 1.35; margin-top: 5px; max-width: 220px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.vod-stream-info { display: block; max-width: 220px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.vod-channel-statistics-page { margin: 0 auto; max-width: 1320px; }
.vod-channel-statistics-heading { align-items: center; display: flex; justify-content: space-between; gap: 20px; margin-bottom: 24px; }
.vod-channel-statistics-heading h1 { color: var(--parliament-blue-dark); margin: 6px 0; }
.vod-channel-statistics-cards { display: grid; gap: 16px; grid-template-columns: repeat(3, minmax(0, 1fr)); margin-bottom: 20px; }
.vod-channel-statistics-cards .settings-card { display: flex; flex-direction: column; gap: 8px; padding: 20px; }
.vod-channel-statistics-cards strong { color: var(--parliament-blue-dark); font-size: 28px; }
.vod-channel-statistics-card { overflow-x: auto; padding: 0; }
.vod-channel-statistics-table { border-collapse: collapse; min-width: 900px; width: 100%; }
.vod-channel-statistics-table th, .vod-channel-statistics-table td { border-bottom: 1px solid var(--line); padding: 13px 14px; text-align: left; white-space: nowrap; }
.vod-channel-statistics-table th { color: var(--muted); font-size: 11px; letter-spacing: .05em; }
.vod-channel-statistics-table td { color: var(--text); font-size: 13px; }
.vod-channel-statistics-table code { background: #f3f6f8; border-radius: 4px; padding: 4px 7px; }
.vod-watch-status { background: #f0f3f5; border-radius: 999px; color: #5c6b78; display: inline-block; font-size: 10px; font-weight: 800; padding: 5px 8px; }
.vod-watch-status.is-live { background: #e5f6ef; color: #18835e; }
.vod-channel-statistics-empty { padding: 28px !important; text-align: center !important; }
.vod-stream-status { display: inline-flex; font-size: 11px; font-weight: 700; padding: 8px 11px; }
.vod-stream-status.status-running { background: #d8f3ec; color: #1b9b80; }
.vod-stream-status.status-stopped { background: #f7ca68; color: #fff; }
.vod-stream-status.status-error { background: #2d3744; color: #fff; }
.vod-stream-actions { align-items: center; display: inline-flex; gap: 2px; }
.vod-stream-actions form { margin: 0; }
.vod-action-button { align-items: center; border: 0; color: #fff; display: inline-flex; font-size: 13px; height: 29px; justify-content: center; text-decoration: none; width: 31px; }
.vod-action-button.action-light { background: #a7b1ba; }
.vod-action-button.action-dark { background: #3f4d5e; cursor: pointer; }
.vod-action-button:hover { filter: brightness(1.12); }
.vod-player-button { align-items: center; background: #8ad9e5; border-radius: 11px; color: #fff; display: inline-flex; height: 32px; justify-content: center; text-decoration: none; width: 42px; }
.vod-epg-button { background: #ef735a; border: 0; color: #fff; cursor: pointer; height: 32px; width: 34px; }
.vod-stream-info { color: #7e8790; font-size: 11px; }
.vod-stream-empty, .vod-stream-no-results { color: var(--muted); padding: 30px; text-align: center; }
.vod-stream-table-footer { color: #7e8790; font-size: 11px; padding: 12px 15px; text-align: right; }
.vod-stream-filters.is-visible { display: grid; }
.vod-channel-detail-heading { align-items: center; }
.vod-channel-control-group { align-items: center; display: flex; flex-wrap: wrap; gap: 10px; justify-content: flex-end; }
.vod-channel-live-status { border-radius: 999px; font-size: 11px; font-weight: 850; padding: 9px 13px; }
.vod-channel-live-status.status-running { background: #e5f6ef; color: #18835e; }
.vod-channel-live-status.status-stopped { background: #eef2f5; color: #657484; }
.vod-channel-live-status.status-error { background: #fff0ef; color: var(--danger); }
.vod-channel-now-playing { align-items: center; display: grid; gap: 16px; grid-template-columns: 52px minmax(0, 1fr) minmax(280px, .85fr); margin-bottom: 22px; padding: 18px 22px; }
.now-playing-icon { align-items: center; background: var(--parliament-blue); border-radius: 14px; color: #fff; display: flex; font-size: 19px; height: 52px; justify-content: center; width: 52px; }
.vod-channel-now-playing strong { display: block; font-size: 17px; margin-top: 2px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.vod-channel-now-playing small { display: block; margin-top: 5px; }
.vod-channel-url { border-left: 1px solid var(--line); display: grid; gap: 5px; min-width: 0; padding-left: 18px; }
.vod-channel-url span { color: var(--muted); font-size: 11px; font-weight: 800; text-transform: uppercase; }
.vod-channel-url code { color: var(--parliament-blue-dark); display: block; font-size: 11px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.vod-channel-top-panels { align-items: stretch; display: grid; gap: 18px; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); margin-bottom: 20px; }
.vod-channel-main-layout { align-items: start; display: grid; gap: 18px; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
.vod-channel-main-layout .vod-channel-top-panels, .vod-channel-main-layout .vod-channel-columns { display: contents; }
.vod-channel-main-layout > .vod-channel-top-panels > .vod-channel-schedule-card { grid-column: 1; grid-row: 1; }
.vod-channel-main-layout > .vod-channel-top-panels > .vod-channel-now-playing { grid-column: 2; grid-row: 1; }
.vod-channel-main-layout > .vod-channel-top-panels > .vod-channel-schedule-card,
.vod-channel-main-layout > .vod-channel-top-panels > .vod-channel-now-playing { align-self: stretch; }
.vod-channel-main-layout > .vod-channel-columns > .vod-channel-source-card { grid-column: 1; grid-row: 2; }
.vod-channel-main-layout > .vod-channel-columns > .vod-channel-playlist-card { grid-column: 2; grid-row: 2; }
.vod-channel-top-panels > .vod-channel-schedule-card { grid-column: 1; grid-row: 1; margin-bottom: 0; }
.vod-channel-top-panels > .vod-channel-now-playing { align-content: center; grid-column: 2; grid-row: 1; margin-bottom: 0; min-width: 0; padding: 16px 18px; }
.vod-channel-top-panels .vod-channel-now-playing { grid-template-columns: 42px minmax(0, 1fr); }
.vod-channel-top-panels .now-playing-icon { border-radius: 11px; font-size: 16px; height: 42px; width: 42px; }
.vod-channel-top-panels .vod-channel-now-playing strong { font-size: 14px; }
.vod-channel-top-panels .vod-channel-now-playing { align-content: start; display: grid; grid-template-columns: minmax(0, 1fr); grid-template-rows: auto; }
.now-playing-media { align-items: start; display: grid; gap: 17px; grid-template-columns: 166px minmax(0, 1fr); min-width: 0; }
.now-playing-cover { background: var(--parliament-blue-soft); border-radius: 11px; height: 236px; overflow: hidden; width: 166px; }
.now-playing-cover[hidden] { display: none; }
.now-playing-cover img { height: 100%; object-fit: cover; width: 100%; }
.now-playing-copy { min-width: 0; }
.now-playing-copy strong { display: block; margin-top: 2px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.now-playing-meta { color: var(--muted); display: block; font-size: 10px; margin-top: 3px; }
.now-playing-overview { color: var(--muted); display: -webkit-box; font-size: 11px; line-height: 1.35; margin: 6px 0 0; overflow: hidden; -webkit-box-orient: vertical; -webkit-line-clamp: 3; }
.now-playing-stats { align-items: center; display: flex; flex-wrap: wrap; gap: 10px; margin-top: 8px; }
.now-playing-stats span { background: var(--parliament-blue-soft); border-radius: 6px; color: var(--muted); font-size: 10px; padding: 4px 7px; }
.now-playing-stats b { color: var(--parliament-blue-dark); }
.now-playing-credits { color: var(--muted); display: grid; font-size: 10px; gap: 3px; line-height: 1.35; margin-top: 6px; }
.now-playing-credits span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.now-playing-credits b { color: var(--parliament-blue-dark); font-weight: 700; }
.now-playing-progress, .now-playing-playlist-total { color: var(--parliament-blue-dark); display: block; font-size: 10px; font-weight: 800; margin-top: 7px; }
.now-playing-playlist-total { color: var(--muted); font-weight: 600; margin-top: 3px; }
.now-playing-playlist-total b { color: var(--parliament-blue-dark); }
.vod-channel-top-panels .vod-channel-url { border-left: 0; border-top: 1px solid var(--line); grid-column: 1 / -1; padding-left: 0; padding-top: 10px; }
.vod-channel-columns { align-items: start; display: grid; gap: 22px; grid-template-columns: minmax(0, .95fr) minmax(0, 1.05fr); }
.vod-channel-card-heading { align-items: flex-start; display: flex; gap: 12px; justify-content: space-between; margin-bottom: 20px; }
.vod-channel-card-heading h2 { color: var(--parliament-blue-dark); font-size: 22px; margin: 0 0 5px; }
.vod-channel-card-heading p { font-size: 13px; margin: 0; }
.vod-channel-profile-picker { border-bottom: 1px solid var(--line); display: grid; gap: 7px; margin-bottom: 16px; padding-bottom: 16px; }
.vod-channel-profile-picker label { color: var(--parliament-blue-dark); font-size: 12px; font-weight: 800; }
.vod-channel-profile-picker .input { min-height: 42px; }
.vod-channel-asset-list, .vod-channel-playlist-list { display: grid; gap: 9px; }
.vod-channel-asset-row, .vod-channel-playlist-row { align-items: center; border: 1px solid var(--line); border-radius: 12px; display: grid; gap: 10px; grid-template-columns: 38px minmax(0, 1fr) auto; padding: 10px; }
.vod-channel-asset-row { grid-template-columns: 20px 38px minmax(0, 1fr); }
.vod-channel-asset-row .checkbox-field { align-items: center; display: flex; justify-content: center; margin: 0; }
.vod-channel-asset-row .checkbox-field input { accent-color: var(--parliament-blue); height: 16px; width: 16px; }
.vod-channel-source-card > form[action*="add-multiple"] > .button { margin-top: 12px; }
.vod-channel-asset-icon { align-items: center; background: var(--parliament-blue-soft); border-radius: 9px; color: var(--parliament-blue); display: flex; height: 38px; justify-content: center; width: 38px; }
.vod-channel-asset-info, .vod-channel-playlist-info { display: grid; gap: 4px; min-width: 0; }
.vod-channel-asset-info strong, .vod-channel-playlist-info strong { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.vod-channel-asset-info span, .vod-channel-playlist-info span { color: var(--muted); font-size: 11px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.vod-channel-position { align-items: center; background: var(--parliament-blue-soft); border-radius: 50%; color: var(--parliament-blue-dark); display: flex; font-size: 12px; font-weight: 850; height: 32px; justify-content: center; width: 32px; }
.vod-channel-playlist-row.is-current { border-color: #57b99d; box-shadow: 0 0 0 3px #e7f8f1; }
.vod-channel-playlist-row[draggable="true"] { cursor: grab; }
.vod-channel-playlist-row[draggable="true"]:active { cursor: grabbing; }
.vod-channel-playlist-row.is-dragging { opacity: .42; }
.vod-channel-playlist-list.is-saving { opacity: .75; pointer-events: none; }
.vod-channel-position { cursor: grab; flex-direction: column; gap: 0; line-height: 1; }
.vod-channel-position b { font-size: 11px; }
.vod-channel-playlist-hint, .vod-channel-playlist-message { color: var(--muted); display: block; font-size: 12px; margin-top: 12px; }
.vod-channel-playlist-message { color: #16835e; min-height: 16px; }

/* Compact schedule panel: keep all controls visible without oversized fields. */
.vod-channel-schedule-card { margin-bottom: 20px; min-width: 0; overflow: hidden; padding: 20px 22px; }
.vod-channel-schedule-card .vod-channel-card-heading { margin-bottom: 14px; }
.vod-channel-schedule-card .vod-channel-card-heading h2 { font-size: 18px; }
.vod-channel-schedule-card .vod-channel-card-heading p { font-size: 12px; }
.vod-channel-schedule-card .vod-channel-card-heading p { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.vod-channel-schedule-card form.form-grid { align-items: end; display: grid; gap: 9px 10px; grid-template-columns: minmax(150px, 1.1fr) repeat(2, minmax(105px, .9fr)); min-width: 0; }
.vod-channel-schedule-card form.form-grid > label:not(.checkbox-field) { color: var(--muted); display: grid; font-size: 10px; font-weight: 800; gap: 4px; }
.vod-channel-schedule-card form.form-grid .input { min-height: 34px; padding: 6px 10px; }
.vod-channel-schedule-card .checkbox-field { align-items: center; display: flex; gap: 7px; min-height: 34px; }
.vod-channel-schedule-card .checkbox-field input { accent-color: var(--parliament-blue); height: 15px; width: 15px; }
.vod-channel-schedule-card .schedule-days { align-items: center; border: 1px solid var(--line); border-radius: 9px; display: flex; flex-wrap: wrap; gap: 8px; grid-column: 1 / -1; margin: 0; padding: 7px 10px 9px; }
.vod-channel-schedule-card .schedule-days legend { color: var(--muted); font-size: 10px; font-weight: 800; padding: 0 4px; }
.vod-channel-schedule-card .schedule-days label { align-items: center; display: inline-flex; font-size: 11px; gap: 4px; }
.vod-channel-schedule-card .schedule-days input { accent-color: var(--parliament-blue); height: 14px; width: 14px; }
.vod-channel-schedule-card form.form-grid > div:last-child { align-self: start; }
.vod-channel-schedule-card form.form-grid > div:last-child { grid-column: 3; grid-row: 2; }
.vod-channel-schedule-card form.form-grid > div:last-child .button { min-height: 34px; padding: 0 14px; }

/* Compact, professional playlist rows */
.vod-channel-playlist-card { min-width: 0; }
.vod-channel-playlist-card .vod-channel-card-heading { margin-bottom: 14px; }
.vod-channel-playlist-heading-tools { align-items: center; display: flex; flex-wrap: wrap; gap: 8px; justify-content: flex-end; }
.vod-channel-playlist-search { align-items: center; background: #fff; border: 1px solid var(--line); border-radius: 8px; display: flex; gap: 5px; min-width: 190px; padding: 0 8px; }
.vod-channel-playlist-search > span { color: var(--muted); font-size: 17px; line-height: 1; }
.vod-channel-playlist-search .input { border: 0; font-size: 11px; min-height: 30px; outline: 0; padding: 4px 0; width: 100%; }
.vod-channel-playlist-row[hidden] { display: none; }
.vod-channel-search-empty { margin-top: 8px; }
.vod-channel-playlist-list { gap: 4px; }
.vod-channel-playlist-row { border-radius: 8px; gap: 6px; grid-template-columns: 30px minmax(0, 1fr) auto; padding: 5px 8px; }
.vod-channel-playlist-info { gap: 2px; }
.vod-channel-playlist-info strong { font-size: 13px; line-height: 1.25; }
.vod-channel-playlist-info > span { font-size: 10px; }
.playlist-timing-details { font-size: 10px; line-height: 1.2; }
.playlist-timing-details summary { color: var(--parliament-blue-dark); cursor: pointer; width: fit-content; }
.playlist-timing-details[open] { margin-top: 3px; }
.vod-channel-position { font-size: 10px; height: 28px; width: 28px; }
.vod-channel-position b { font-size: 10px; }
.playlist-timing-form { align-items: end; display: flex; flex-wrap: wrap; gap: 5px; margin-top: 5px; }
.playlist-timing-form label { color: var(--muted); display: grid; font-size: 9px; font-weight: 750; gap: 2px; }
.playlist-timing-form .input-small { font-size: 11px; min-height: 28px; padding: 3px 7px; width: 82px; }
.playlist-timing-form .button-small { font-size: 10px; min-height: 28px; padding: 0 9px; }
.vod-channel-row-actions { align-items: center; display: flex; flex-wrap: wrap; gap: 4px; justify-content: flex-end; }
.vod-channel-row-actions .button-small { border-radius: 8px; font-size: 11px; min-height: 29px; min-width: 29px; padding: 0 8px; }
.vod-channel-row-actions form:last-child .button-small { padding-inline: 9px; }
.vod-channel-playlist-message.is-error { color: var(--danger); }

.tv-channel-list { display: grid; gap: 10px; }
.tv-channel-row { align-items: center; border: 1px solid var(--line); border-radius: 12px; display: grid; gap: 14px; grid-template-columns: 54px minmax(0, 1fr) auto; padding: 12px; }
.tv-channel-logo { align-items: center; background: #edf3f9; border-radius: 10px; color: var(--primary); display: flex; height: 54px; justify-content: center; overflow: hidden; font-size: 12px; font-weight: 800; }
.tv-channel-logo img { height: 100%; object-fit: contain; width: 100%; }
.tv-channel-info { display: grid; gap: 4px; min-width: 0; }
.tv-channel-info strong { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.tv-channel-info span { color: var(--muted); font-size: 12px; }
.tv-channel-info code { color: var(--muted); font-size: 11px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.tv-channel-actions { align-items: center; display: flex; gap: 7px; }
@media (max-width: 700px) { .tv-channel-row { align-items: start; grid-template-columns: 48px minmax(0, 1fr); } .tv-channel-logo { height: 48px; width: 48px; } .tv-channel-actions { grid-column: 1 / -1; } }
.vod-channel-row-actions { align-items: center; display: flex; flex-wrap: wrap; gap: 5px; justify-content: flex-end; }
.vod-channel-empty { background: var(--parliament-blue-soft); border-radius: 12px; color: var(--muted); padding: 26px 18px; text-align: center; }
.bouquets-page-shell { padding-top: 0; }
.bouquets-page { margin: 0 auto; max-width: 1120px; }
.bouquets-heading, .bouquet-detail-heading { align-items: flex-start; display: flex; gap: 20px; justify-content: space-between; margin-bottom: 24px; }
.bouquets-heading h1, .bouquet-detail-heading h1 { color: var(--parliament-blue-dark); font-size: clamp(30px, 4vw, 42px); letter-spacing: -.04em; margin: 0 0 8px; }
.bouquets-heading p, .bouquet-detail-heading p { margin: 0; }
.bouquet-icon { background: linear-gradient(135deg, #7162d8, #3e53a5); font-size: 22px; }
.bouquet-create-card { margin-bottom: 30px; }
.bouquet-form { display: grid; gap: 24px; }
.bouquet-form-main { display: grid; gap: 14px; grid-template-columns: minmax(220px, .8fr) minmax(260px, 1.2fr); }
.bouquet-form-main .field { margin-bottom: 0; }
.bouquet-form-main textarea.input { min-height: 92px; padding-bottom: 12px; padding-top: 12px; resize: vertical; }
.bouquet-form-options { align-items: end; display: flex; gap: 20px; grid-column: 1 / -1; }
.bouquet-form-options .field { max-width: 180px; width: 100%; }
.bouquet-active-checkbox { align-items: center; color: var(--ink); display: inline-flex; gap: 9px; min-height: 48px; }
.bouquet-active-checkbox input, .bouquet-checkbox input { accent-color: var(--parliament-blue); height: 16px; width: 16px; }
.bouquet-category-picker { border-top: 1px solid var(--line); padding-top: 20px; }
.bouquet-picker-heading { align-items: center; display: flex; gap: 12px; justify-content: space-between; margin-bottom: 14px; }
.bouquet-picker-heading strong { color: var(--parliament-blue-dark); }
.bouquet-picker-heading .muted { font-size: 12px; }
.bouquet-category-groups { display: grid; gap: 14px; grid-template-columns: repeat(3, minmax(0, 1fr)); }
.bouquet-category-groups { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.bouquet-category-group { border: 1px solid var(--line); border-radius: 12px; display: grid; gap: 9px; margin: 0; min-width: 0; padding: 14px; }
.bouquet-category-group legend { color: var(--parliament-blue-dark); font-size: 12px; font-weight: 800; padding: 0 5px; }
.bouquet-checkbox { align-items: center; color: #526174; display: flex; font-size: 13px; gap: 8px; min-width: 0; }
.bouquet-checkbox span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.bouquet-submit { justify-self: start; }
.bouquet-list-section { margin-top: 30px; }
.bouquet-grid { display: grid; gap: 16px; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); }
.bouquet-card { background: #fff; border: 1px solid var(--line); border-left: 4px solid var(--parliament-blue); border-radius: 15px; box-shadow: 0 10px 28px rgba(17,42,70,.07); display: grid; gap: 14px; padding: 18px; }
.bouquet-card.is-inactive { border-left-color: #a7b1bc; opacity: .82; }
.bouquet-card-top { align-items: center; display: flex; gap: 12px; }
.bouquet-card-icon { align-items: center; background: var(--parliament-blue-soft); border-radius: 11px; color: var(--parliament-blue); display: flex; flex: 0 0 42px; font-size: 18px; font-weight: 900; height: 42px; justify-content: center; }
.bouquet-card-title { min-width: 0; }
.bouquet-card-title h3 { color: var(--parliament-blue-dark); font-size: 16px; margin: 0 0 4px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.bouquet-card-title span, .bouquet-card-description { color: var(--muted); font-size: 12px; }
.bouquet-card-title span { display: block; }
.bouquet-status { color: var(--success); font-size: 18px; margin-left: auto; }
.bouquet-card.is-inactive .bouquet-status { color: var(--muted); }
.bouquet-card-description { line-height: 1.5; margin: 0; }
.bouquet-card-meta { border-top: 1px solid var(--line); color: var(--muted); display: flex; flex-wrap: wrap; font-size: 11px; gap: 12px; padding-top: 12px; }
.bouquet-card-meta strong { color: var(--parliament-blue-dark); }
.bouquet-card-vod-list { border-top: 1px solid var(--line); display: grid; gap: 5px; padding-top: 11px; }
.bouquet-card-vod-list a { color: var(--parliament-blue-dark); font-size: 12px; overflow: hidden; text-decoration: none; text-overflow: ellipsis; white-space: nowrap; }
.bouquet-card-vod-list a:hover { color: var(--parliament-blue); text-decoration: underline; }
.bouquet-selected-vod-card { margin-top: 22px; }
.bouquet-selected-vod-list { display: grid; gap: 9px; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); }
.bouquet-selected-vod-item { align-items: center; border: 1px solid var(--line); border-radius: 12px; color: inherit; display: flex; gap: 10px; padding: 10px; text-decoration: none; }
.bouquet-selected-vod-item:hover { border-color: #a9c9df; box-shadow: 0 6px 16px rgba(17,42,70,.08); }
.bouquet-selected-vod-item .vod-channel-card-icon { flex: 0 0 38px; font-size: 15px; height: 38px; width: 38px; }
.bouquet-selected-vod-item strong, .bouquet-selected-vod-item small { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.bouquet-selected-vod-item small { color: var(--muted); font-size: 11px; margin-top: 3px; }
.bouquet-card-link { justify-self: start; }
.bouquet-detail-heading { align-items: center; }
.bouquet-detail-actions { display: flex; justify-content: flex-start; }
.iptv-users-page-shell { padding-top: 0; }
.iptv-users-page { margin: 0 auto; max-width: 1120px; }
.iptv-users-heading { margin-bottom: 24px; }
.iptv-users-heading h1 { color: var(--parliament-blue-dark); font-size: clamp(30px, 4vw, 42px); letter-spacing: -.04em; margin: 0 0 8px; }
.iptv-users-heading p { margin: 0; }
.iptv-user-create-card { margin-bottom: 24px; }
.iptv-user-icon { background: linear-gradient(135deg, #20ad9d, #087b87); font-size: 21px; }
.iptv-user-success-icon { background: var(--success); font-size: 20px; }
.iptv-user-form { display: grid; gap: 26px; }
.iptv-user-fields { display: grid; gap: 14px; grid-template-columns: repeat(2, minmax(0, 1fr)); }
.iptv-user-fields .field { margin-bottom: 0; }
.iptv-user-fields .input { min-height: 46px; }
.iptv-user-toggle { align-items: center; border: 1px solid var(--line); border-radius: 10px; display: flex; gap: 11px; min-height: 46px; padding: 9px 13px; }
.iptv-user-toggle input { accent-color: var(--parliament-blue); height: 17px; width: 17px; }
.iptv-user-toggle span { display: grid; gap: 2px; }
.iptv-user-toggle strong { color: var(--ink); font-size: 13px; }
.iptv-user-toggle small { color: var(--muted); font-size: 11px; }
.iptv-bouquet-picker { border-top: 1px solid var(--line); padding-top: 22px; }
.iptv-bouquet-picker-heading { align-items: center; display: flex; gap: 16px; justify-content: space-between; margin-bottom: 15px; }
.iptv-bouquet-picker-heading h3 { color: var(--parliament-blue-dark); font-size: 18px; margin: 0 0 4px; }
.iptv-bouquet-picker-heading p { font-size: 12px; margin: 0; }
.iptv-bouquet-grid { display: grid; gap: 12px; grid-template-columns: repeat(auto-fill, minmax(250px, 1fr)); }
.iptv-bouquet-option { align-items: flex-start; border: 1px solid var(--line); border-radius: 12px; cursor: pointer; display: flex; gap: 11px; padding: 14px; transition: border-color .15s, background .15s, box-shadow .15s; }
.iptv-bouquet-option:hover, .iptv-bouquet-option:has(input:checked) { background: var(--parliament-blue-soft); border-color: #8dbedb; box-shadow: 0 5px 16px rgba(17,42,70,.06); }
.iptv-bouquet-option input { accent-color: var(--parliament-blue); flex: 0 0 auto; height: 17px; margin-top: 2px; width: 17px; }
.iptv-bouquet-option-content { display: grid; gap: 5px; min-width: 0; }
.iptv-bouquet-option-content strong { color: var(--parliament-blue-dark); font-size: 13px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.iptv-bouquet-option-content small { color: var(--muted); font-size: 11px; }
.iptv-no-bouquet { padding: 20px; }
.iptv-user-submit { justify-self: start; }
.iptv-link-result { border-left: 4px solid var(--success); margin-bottom: 24px; }
.iptv-link-box { align-items: center; display: flex; gap: 10px; }
.iptv-link-box .input { font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: 12px; min-width: 0; }
.iptv-link-box .button { flex: 0 0 auto; }
.iptv-link-result .field-hint { display: block; margin-top: 8px; }
.iptv-users-list-page { margin: 0 auto; max-width: 1560px; }
.iptv-users-list-heading { align-items: flex-start; display: flex; gap: 22px; justify-content: space-between; margin-bottom: 24px; }
.iptv-users-list-heading h1 { color: var(--parliament-blue-dark); font-size: clamp(30px, 4vw, 42px); letter-spacing: -.04em; margin: 0 0 8px; }
.iptv-users-list-heading p { margin: 0; }
.iptv-users-top-actions { align-items: center; display: flex; flex-wrap: wrap; gap: 5px; justify-content: flex-end; }
.iptv-users-icon-button, .iptv-users-refresh-button, .iptv-users-add-button { align-items: center; border: 0; color: #fff; cursor: pointer; display: inline-flex; font: inherit; font-size: 12px; font-weight: 800; justify-content: center; min-height: 34px; padding: 0 12px; text-decoration: none; }
.iptv-users-icon-button { border-radius: 0; font-size: 18px; min-width: 40px; padding: 0; }
.iptv-users-filter-button { background: #f2c963; color: #6e5512; }
.iptv-users-search-button { background: #53bed0; }
.iptv-users-refresh-button { background: #263a50; }
.iptv-users-refresh-button.is-active { background: #147d4a; }
.iptv-users-add-button { background: #1aa891; }
.iptv-users-table-card { overflow: hidden; padding: 0; }
.iptv-users-filter-bar { align-items: center; background: #fff; border-bottom: 1px solid var(--line); display: grid; gap: 12px; grid-template-columns: minmax(220px, 1.15fr) minmax(110px, .7fr) minmax(170px, 1.25fr) minmax(150px, 1fr) minmax(145px, .9fr) 112px; padding: 14px; }
.iptv-users-filter-bar label { min-width: 0; }
.iptv-users-filter-bar .input { border-radius: 3px; font-size: 12px; min-height: 38px; }
.iptv-users-search-field .input { border-color: #aab5c0; border-radius: 9px; }
.iptv-users-filter-results { color: var(--ink); font-size: 12px; font-weight: 750; white-space: nowrap; }
.iptv-users-show-field { align-items: center; display: flex; gap: 10px; justify-content: flex-end; }
.iptv-users-show-field span { color: var(--ink); font-size: 12px; font-weight: 750; }
.iptv-users-show-field .input { max-width: 74px; }
.iptv-users-table-meta { align-items: center; display: flex; gap: 14px; justify-content: space-between; padding: 14px 18px 0; }
.iptv-users-table-meta strong { color: var(--parliament-blue-dark); font-size: 13px; }
.iptv-users-table-meta .muted { font-size: 11px; }
.iptv-users-table-wrap { overflow-x: clip; padding: 12px 14px 0; }
.iptv-users-table { border-collapse: separate; border-spacing: 0; font-size: 12px; min-width: 0; table-layout: fixed; width: 100%; }
.iptv-users-table th { background: #f7f9fb; border-bottom: 1px solid var(--line); border-top: 1px solid var(--line); color: #687587; font-size: 10px; font-weight: 800; letter-spacing: .04em; padding: 11px 10px; text-align: left; white-space: nowrap; }
.iptv-users-table th:first-child { border-left: 1px solid var(--line); border-radius: 5px 0 0 0; }
.iptv-users-table th:last-child { border-radius: 0 5px 0 0; border-right: 1px solid var(--line); }
.iptv-users-table td { border-bottom: 1px solid var(--line); color: #536275; padding: 9px 10px; vertical-align: middle; white-space: nowrap; }
.iptv-users-table td:first-child { border-left: 1px solid var(--line); }
.iptv-users-table td:last-child { border-right: 1px solid var(--line); }
.iptv-users-table tbody tr:hover td { background: #fbfdff; }
.iptv-users-table tbody tr[hidden] { display: none; }
.iptv-user-id { color: var(--muted); font-variant-numeric: tabular-nums; text-align: center; width: 54px; }
.iptv-user-name strong { color: #405064; font-size: 12px; }
.iptv-user-reseller, .iptv-user-expiration { color: #5b6879; font-size: 11px; }
.iptv-user-password { color: #657387; font-family: ui-monospace, SFMono-Regular, Menlo, monospace; letter-spacing: .08em; }
.iptv-user-status, .iptv-user-trial { display: inline-flex; font-size: 10px; font-weight: 800; padding: 8px 10px; }
.iptv-user-status { border-radius: 2px; }
.iptv-user-status.status-active { background: #e8f7f2; color: #1d9a83; }
.iptv-user-status.status-expired, .iptv-user-status.status-disabled { background: #eef0f2; color: #2f3740; }
.iptv-user-trial { background: #e8f7f2; color: #1d9a83; }
.iptv-user-days { color: #5b6879; font-size: 11px; }
.iptv-user-days.is-expired { color: var(--danger); }
.iptv-user-connections { background: #f3f6f8; color: #657387; display: inline-flex; min-width: 48px; justify-content: center; padding: 8px 9px; }
.iptv-user-isp span, .iptv-user-isp small, .iptv-user-country small { display: block; }
.iptv-user-isp span { color: #526174; font-size: 11px; font-weight: 750; max-width: 170px; overflow: hidden; text-overflow: ellipsis; }
.iptv-user-isp small { color: var(--muted); font-size: 10px; margin-top: 3px; }
.iptv-user-ip code { background: #f3f6f8; border-radius: 4px; color: #526174; font-size: 10px; padding: 5px 7px; }
.iptv-user-online { color: var(--muted); display: block; font-size: 10px; margin-top: 5px; }
.iptv-user-online.is-online { color: var(--success); font-weight: 800; }
.iptv-user-country { align-items: center; display: table-cell; height: 48px; text-align: center; vertical-align: middle !important; width: 58px; }
.iptv-user-country .iptv-country-flag { align-items: center; display: inline-flex; justify-content: center; min-height: 24px; vertical-align: middle; }
.iptv-user-now-playing { max-width: 280px; white-space: nowrap !important; }
.iptv-user-now-playing span { white-space: nowrap; color: #1d5e4a; display: block; font-size: 11px; font-weight: 750; line-height: 1.35; max-width: 280px; overflow: hidden; text-overflow: ellipsis; }
.iptv-country-flag { font-size: 20px; line-height: 1; }
.iptv-country-flag img, .iptv-country-flag-image { display: block; width: 28px; height: 21px; object-fit: cover; border-radius: 2px; }
.iptv-country-unknown { color: var(--muted); font-size: 18px; }
.iptv-user-info { white-space: normal !important; }
.iptv-user-info span, .iptv-user-info small { display: block; }
.iptv-user-info span { color: #526174; font-size: 11px; font-weight: 750; }
.iptv-user-info small { color: var(--muted); font-size: 10px; margin-top: 3px; }
.iptv-user-actions { align-items: center; display: flex; gap: 4px; }
.iptv-user-actions form { display: contents; }
.iptv-user-action-button { align-items: center; background: #526174; border: 0; color: #fff; cursor: pointer; display: inline-flex; font: inherit; font-size: 13px; height: 28px; justify-content: center; min-width: 28px; padding: 0 7px; }
.iptv-user-action-button:hover { background: var(--parliament-blue); }
.iptv-user-action-button.action-copy { background: #68798c; }
.iptv-user-action-button.action-edit { background: #8a6b2f; }
.iptv-user-action-button.action-stats { background: #2e7891; }
.iptv-user-action-button.action-delete { background: #344250; }
.iptv-users-empty { align-items: center; color: var(--muted); display: grid; gap: 6px; justify-items: center; padding: 44px 20px; text-align: center; }
.iptv-users-empty strong { color: var(--parliament-blue-dark); }
.iptv-users-no-results { color: var(--muted); padding: 30px; text-align: center; }
.iptv-users-pagination { display: flex; gap: 5px; justify-content: flex-end; padding: 14px 18px 18px; }
.iptv-users-page-button { background: #fff; border: 1px solid var(--line); border-radius: 5px; color: var(--muted); cursor: pointer; font: inherit; font-size: 12px; min-height: 30px; min-width: 30px; }
.iptv-users-page-button:hover, .iptv-users-page-button.is-active { background: var(--parliament-blue); border-color: var(--parliament-blue); color: #fff; }
.iptv-users-page-button:disabled { cursor: default; opacity: .4; }
.iptv-user-statistics-page { margin: 0 auto; max-width: 1320px; }
.iptv-user-statistics-heading { align-items: center; display: flex; gap: 20px; justify-content: space-between; margin-bottom: 24px; }
.iptv-user-statistics-heading h1 { color: var(--parliament-blue-dark); font-size: clamp(30px, 4vw, 42px); letter-spacing: -.04em; margin: 0 0 8px; }
.iptv-user-statistics-heading p { margin: 0; }
.iptv-user-stat-cards { display: grid; gap: 16px; grid-template-columns: repeat(3, minmax(0, 1fr)); margin-bottom: 24px; }
.iptv-user-stat-card { display: grid; gap: 7px; padding: 22px; }
.iptv-user-stat-card strong { color: var(--parliament-blue-dark); font-size: 26px; letter-spacing: -.03em; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.iptv-user-stat-card small { color: var(--muted); font-size: 11px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.iptv-user-stat-label { color: var(--muted); font-size: 10px; font-weight: 850; letter-spacing: .06em; }
.iptv-user-stat-country-card strong { font-size: 34px; line-height: 1; }
.iptv-user-stat-country-card .iptv-country-flag-image { width: 48px; height: 36px; }
.iptv-watch-analytics-card { margin-top: 22px; }
.iptv-watch-analytics-card .settings-card-heading { align-items: center; }
.iptv-watch-total { background: #edf6f9; border: 1px solid #cfe7ed; border-radius: 999px; color: var(--parliament-blue-dark); font-size: 13px; font-weight: 800; margin-left: auto; padding: 8px 13px; white-space: nowrap; }
.iptv-watch-chart { display: grid; gap: 10px; margin: 6px 0 26px; }
.iptv-watch-chart-title { color: var(--parliament-blue-dark); font-size: 13px; font-weight: 850; margin-bottom: 3px; }
.iptv-watch-chart-row { align-items: center; display: grid; gap: 10px; grid-template-columns: 58px minmax(100px, 1fr) 70px; }
.iptv-watch-chart-row > span { color: var(--muted); font-size: 12px; }
.iptv-watch-chart-row > strong { color: var(--parliament-blue-dark); font-size: 12px; text-align: right; }
.iptv-watch-chart-track { background: #edf1f4; border-radius: 999px; height: 12px; overflow: hidden; }
.iptv-watch-chart-track i { background: linear-gradient(90deg, #2d9d9a, var(--parliament-blue)); border-radius: inherit; display: block; height: 100%; min-width: 3px; }
.iptv-watch-history-wrap { overflow-x: auto; }
.iptv-watch-history-table { border-collapse: collapse; min-width: 760px; width: 100%; }
.iptv-watch-history-table th, .iptv-watch-history-table td { border-bottom: 1px solid var(--line); padding: 12px 10px; text-align: left; }
.iptv-watch-history-table th { color: var(--muted); font-size: 11px; letter-spacing: .05em; }
.iptv-watch-history-table td { color: var(--text); font-size: 13px; }
.iptv-watch-history-table td strong { color: var(--parliament-blue-dark); }
.iptv-watch-type, .iptv-watch-status { background: #f0f3f5; border-radius: 999px; color: #5c6b78; display: inline-block; font-size: 11px; font-weight: 800; padding: 4px 8px; }
.iptv-watch-status.is-live { background: #e5f6ef; color: #18835e; }
.iptv-watch-empty { padding: 26px 20px; }
.iptv-user-history-card { padding: 24px; }
.iptv-user-history-wrap { overflow-x: auto; }
.iptv-user-history-table { border-collapse: collapse; min-width: 780px; width: 100%; }
.iptv-user-history-table th { background: #f7f9fb; color: #687587; font-size: 10px; letter-spacing: .04em; padding: 11px 10px; text-align: left; }
.iptv-user-history-table td { border-bottom: 1px solid var(--line); color: #536275; font-size: 12px; padding: 13px 10px; white-space: nowrap; }
.iptv-user-history-table code { background: #f3f6f8; border-radius: 4px; color: #526174; font-size: 11px; padding: 5px 7px; }
.iptv-user-history-table .iptv-user-connections { min-width: 34px; }
.movies-page-shell { padding-top: 0; }
.movies-page { margin: 0 auto; max-width: 1120px; }
.movies-index-page { max-width: 1560px; }
.movies-list-heading { align-items: flex-start; display: flex; gap: 20px; justify-content: space-between; margin-bottom: 24px; }
.movies-list-heading h1 { color: var(--parliament-blue-dark); font-size: clamp(30px, 4vw, 42px); letter-spacing: -.04em; margin: 0 0 8px; }
.movies-list-heading p { margin: 0; }
.movie-category-create { flex: 0 0 auto; }
.movie-category-create summary { list-style: none; }
.movie-category-create summary::-webkit-details-marker { display: none; }
.movie-category-create[open] summary { border-radius: 10px 10px 0 0; }
.movie-category-create .movie-create-form { background: #fff; border: 1px solid var(--line); border-top: 0; border-radius: 0 0 10px 10px; box-shadow: var(--shadow); display: flex; max-width: 360px; padding: 14px; }
.movie-category-create .movie-create-form .movie-title-field { min-width: 0; }
.movie-category-create .movie-create-form .button { flex: 0 0 auto; }
.movie-category-management-card { margin-bottom: 22px; }
.movie-category-management-heading { margin-bottom: 16px; }
.movie-category-management-heading h2 { color: var(--parliament-blue-dark); font-size: 22px; margin: 0 0 5px; }
.movie-category-management-heading p { font-size: 13px; margin: 0; }
.movie-category-management-list { display: grid; gap: 9px; }
.movie-category-management-row { align-items: center; border: 1px solid var(--line); border-radius: 12px; display: flex; gap: 12px; justify-content: space-between; padding: 10px 12px; }
.movie-category-management-main { align-items: center; color: inherit; display: flex; gap: 12px; min-width: 0; text-decoration: none; }
.movie-category-management-main:hover strong { color: var(--parliament-blue); }
.movie-category-management-main .movie-folder-icon { flex: 0 0 42px; font-size: 18px; height: 42px; width: 42px; }
.movie-category-management-info { display: grid; gap: 4px; min-width: 0; }
.movie-category-management-info strong { color: var(--parliament-blue-dark); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.movie-category-management-info small { color: var(--muted); font-size: 11px; }
.movie-category-management-actions { align-items: center; display: flex; flex: 0 0 auto; flex-wrap: wrap; gap: 7px; }
.movie-category-management-actions form { margin: 0; }
.movie-category-edit { position: relative; }
.movie-category-edit summary { list-style: none; }
.movie-category-edit summary::-webkit-details-marker { display: none; }
.movie-category-edit form { align-items: center; background: #fff; border: 1px solid var(--line); border-radius: 10px; box-shadow: var(--shadow); display: flex; gap: 7px; margin-top: 7px; padding: 8px; position: absolute; right: 0; top: 100%; z-index: 5; }
.movie-category-edit form .input { min-width: 190px; width: 220px; }
.movie-category-empty { margin-top: 4px; }
.movies-table-card { overflow: hidden; padding: 0; }
.movies-filter-bar { align-items: center; background: #fff; border-bottom: 1px solid var(--line); display: grid; gap: 12px; grid-template-columns: minmax(210px, 1.1fr) minmax(150px, 1.5fr) minmax(150px, 1.5fr) minmax(150px, 1fr) 112px; padding: 14px; }
.movies-filter-bar label { min-width: 0; }
.movies-filter-bar .input { border-radius: 3px; font-size: 12px; min-height: 38px; }
.movies-search-field .input { border-color: #aab5c0; border-radius: 9px; }
.movies-show-field { align-items: center; display: flex; gap: 10px; justify-content: flex-end; }
.movies-show-field span { color: var(--ink); font-size: 12px; font-weight: 750; }
.movies-show-field .input { max-width: 74px; }
.movies-table-meta { align-items: center; display: flex; gap: 14px; justify-content: space-between; padding: 14px 18px 0; }
.movies-table-meta strong { color: var(--parliament-blue-dark); font-size: 13px; }
.movies-table-meta .muted { font-size: 11px; }
.movies-table-wrap { overflow-x: auto; padding: 12px 14px 0; }
.movies-table { border-collapse: separate; border-spacing: 0; font-size: 12px; min-width: 1240px; width: 100%; }
.movies-table th { background: #f7f9fb; border-bottom: 1px solid var(--line); border-top: 1px solid var(--line); color: #687587; font-size: 10px; font-weight: 800; letter-spacing: .04em; padding: 11px 10px; text-align: left; text-transform: uppercase; white-space: nowrap; }
.movies-table th:first-child { border-left: 1px solid var(--line); border-radius: 5px 0 0 0; }
.movies-table th:last-child { border-radius: 0 5px 0 0; border-right: 1px solid var(--line); }
.movies-table td { border-bottom: 1px solid var(--line); color: #536275; padding: 9px 10px; vertical-align: middle; white-space: nowrap; }
.movies-table td:first-child { border-left: 1px solid var(--line); }
.movies-table td:last-child { border-right: 1px solid var(--line); }
.movies-table tbody tr:hover td { background: #fbfdff; }
.movies-table tbody tr[hidden] { display: none; }
.movie-table-id { color: var(--muted); font-variant-numeric: tabular-nums; text-align: center; width: 54px; }
.movie-table-cover, .movie-table-cover-placeholder { align-items: center; background: linear-gradient(145deg, var(--parliament-blue-soft), #d5e9f6); border-radius: 3px; color: var(--parliament-blue-dark); display: flex; font-size: 9px; font-weight: 850; height: 88px; justify-content: center; object-fit: cover; width: 62px; }
.movie-table-name { max-width: 270px; min-width: 220px; white-space: normal !important; }
.movie-table-name strong { color: #405064; display: block; font-size: 12px; line-height: 1.35; }
.movie-table-name small { color: #bf604d; display: block; font-size: 10px; margin-top: 3px; }
.movie-table-name .movie-table-file { color: var(--muted); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.movie-server-label { color: #5b6879; font-size: 11px; font-weight: 750; }
.movie-client-count { background: #f3f6f8; color: #7b8793; display: inline-flex; justify-content: center; min-width: 30px; padding: 8px 10px; }
.movie-status { align-items: center; background: #e8f7f2; border-radius: 2px; color: #1d9a83; display: inline-flex; font-size: 11px; font-weight: 800; gap: 5px; padding: 8px 10px; }
.movie-status::before { content: "✓"; font-size: 11px; }
.movie-status.status-running, .movie-status.status-queued, .movie-status.status-pending, .movie-status.status-paused { background: #fff7df; color: #9b6b08; }
.movie-status.status-running::before { content: "↻"; }
.movie-status.status-queued::before, .movie-status.status-pending::before { content: "…"; }
.movie-status.status-failed { background: #fff0ef; color: var(--danger); }
.movie-status.status-failed::before { content: "!"; }
.movie-status.status-empty { background: #f3f6f8; color: var(--muted); }
.movie-status.status-empty::before { content: "—"; }
.movie-status-dot { border-radius: 50%; display: inline-block; height: 15px; width: 15px; }
.movie-status-dot-ready { background: #18a66f; box-shadow: 0 0 0 3px #dff5ea; }
.movie-status-dot-downloading { background: #e4a51b; box-shadow: 0 0 0 3px #fff1cf; }
.movie-status-dot-error { background: #111827; box-shadow: 0 0 0 3px #e5e7eb; }
.movie-table-actions { background: #465364; display: inline-flex; gap: 0; padding: 0; }
.movie-table-delete-form { display: contents; margin: 0; }
.movie-action-button { align-items: center; color: #fff; display: inline-flex; font-size: 13px; height: 31px; justify-content: center; text-decoration: none; width: 31px; }
.movie-action-button.movie-delete-button { background: transparent; border: 0; cursor: pointer; font: inherit; }
.movie-action-button:first-child { background: #73808d; }
.movie-action-button:hover { background: var(--parliament-blue); }
.movie-action-button.movie-delete-button:hover { background: var(--danger); }
.movie-player-button { align-items: center; border: 1px solid #62c8d0; color: #4db6be; display: inline-flex; height: 31px; justify-content: center; text-decoration: none; width: 31px; }
.movie-player-button:hover { background: #e8fbfc; }
.movie-stream-info { color: #687587 !important; font-size: 11px; line-height: 1.5; min-width: 130px; }
.movies-table-empty { display: grid; gap: 4px; padding: 34px 18px; text-align: center; }
.movies-table-empty[hidden] { display: none; }
.movies-table-empty strong { color: var(--parliament-blue-dark); }
.movies-table-empty .muted { font-size: 12px; }
.movies-pagination { display: flex; flex-wrap: wrap; gap: 6px; justify-content: flex-end; padding: 14px 18px 18px; }
.movie-page-button { background: #fff; border: 1px solid var(--line); border-radius: 5px; color: var(--parliament-blue-dark); cursor: pointer; font: inherit; font-size: 12px; min-height: 30px; min-width: 30px; }
.movie-page-button:hover, .movie-page-button.active { background: var(--parliament-blue); border-color: var(--parliament-blue); color: #fff; }
.movie-create-card { margin-bottom: 32px; }
.movie-icon { background: linear-gradient(135deg, #2b9bcb, #005b96); }
.movie-create-form, .movie-rename-form, .movie-upload-form { align-items: end; display: flex; gap: 14px; max-width: 820px; }
.movie-title-field { flex: 1; margin-bottom: 0; }
.movies-section { margin-top: 30px; }
.movies-section-heading { align-items: center; display: flex; justify-content: space-between; margin-bottom: 16px; }
.movies-section-heading .eyebrow { margin-bottom: 7px; }
.movies-section-heading h2 { color: var(--parliament-blue-dark); font-size: 22px; letter-spacing: -.03em; margin: 0; }
.transcode-folder-icon { background: linear-gradient(135deg, #1a9b8b, #11645d); color: #fff; font-size: 20px; font-weight: 900; }
.movie-folder-grid { display: grid; gap: 16px; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); }
.movie-folder-card { align-items: center; background: #fff; border: 1px solid var(--line); border-radius: 16px; box-shadow: 0 10px 28px rgba(17,42,70,.07); color: inherit; display: grid; gap: 14px; grid-template-columns: 58px minmax(0, 1fr) auto; min-height: 128px; padding: 18px; text-decoration: none; transition: transform .15s, box-shadow .15s, border-color .15s; }
.movie-folder-card:hover { border-color: #bcd7eb; box-shadow: 0 16px 34px rgba(17,42,70,.14); transform: translateY(-2px); }
.movie-folder-icon { align-items: center; background: var(--parliament-blue-soft); border-radius: 15px; color: var(--parliament-blue); display: flex; font-size: 24px; height: 58px; justify-content: center; width: 58px; }
.movie-folder-icon-large { font-size: 32px; height: 78px; width: 78px; }
.movie-folder-info { min-width: 0; }
.movie-folder-info h3 { color: var(--parliament-blue-dark); font-size: 16px; line-height: 1.35; margin: 0 0 5px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.movie-folder-id { color: var(--muted); display: block; font-size: 12px; }
.movie-folder-meta { color: var(--muted); display: flex; flex-wrap: wrap; font-size: 12px; gap: 12px; margin-top: 12px; }
.movie-folder-meta span + span { border-left: 1px solid var(--line); padding-left: 12px; }
.movie-folder-arrow { color: var(--parliament-blue); font-size: 22px; }
.movie-folder-hero { align-items: center; background: #fff; border: 1px solid var(--line); border-radius: 18px; box-shadow: var(--shadow); display: grid; gap: 20px; grid-template-columns: 78px minmax(0, 1fr) auto; margin-bottom: 24px; padding: 22px; }
.movie-folder-hero-info { min-width: 0; }
.movie-folder-hero-info h1 { color: var(--parliament-blue-dark); font-size: clamp(28px, 4vw, 42px); letter-spacing: -.04em; margin: 0 0 10px; }
.movie-path { color: var(--muted); display: block; font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: 11px; margin-top: 10px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.movie-folder-actions { align-items: center; display: flex; flex-wrap: wrap; gap: 8px; justify-content: flex-end; }
.movie-folder-actions form { margin: 0; }
.movie-downloader-note { margin-bottom: 30px; }
.movie-rename-card { margin-bottom: 30px; }
.movie-rename-card[hidden] { display: none; }
.movie-file-list { display: grid; gap: 10px; }
.movie-file-item { align-items: center; border: 1px solid var(--line); border-radius: 12px; display: grid; gap: 14px; grid-template-columns: 40px minmax(0, 1fr) auto; padding: 12px 14px; }
.movie-file-icon { align-items: center; background: var(--parliament-blue-soft); border-radius: 9px; color: var(--parliament-blue); display: flex; font-size: 12px; height: 38px; justify-content: center; width: 38px; }
.movie-file-info { display: grid; gap: 5px; min-width: 0; }
.movie-file-info strong { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.movie-file-info span { color: var(--muted); font-size: 12px; }
.movie-file-actions { align-items: center; display: flex; flex-wrap: wrap; gap: 7px; justify-content: flex-end; }
.movie-file-actions form { margin: 0; }
.downloader-page-shell { padding-top: 0; }
.downloader-page { margin: 0 auto; max-width: 1240px; }
.downloader-heading { margin-bottom: 24px; }
.downloader-heading h1 { color: var(--parliament-blue-dark); font-size: clamp(30px, 4vw, 42px); letter-spacing: -.04em; margin: 0 0 8px; }
.downloader-heading p { margin: 0; }
.downloader-grid { align-items: start; display: grid; gap: 22px; grid-template-columns: minmax(330px, .82fr) minmax(0, 1.18fr); }
.downloader-form-card, .downloader-queue-card { min-width: 0; }
.downloader-icon { background: linear-gradient(135deg, #2b9bcb, #005b96); font-size: 24px; }
.downloader-form { display: grid; gap: 2px; }
.downloader-form .field { margin-bottom: 14px; }
.downloader-target-panel[hidden], .downloader-quality-field[hidden] { display: none; }
.downloader-warning { background: #fff8e8; border: 1px solid #f1d99b; border-radius: 10px; color: #8a5a00; font-size: 13px; line-height: 1.5; margin: 4px 0 16px; padding: 12px 14px; }
.downloader-submit { margin-top: 8px; width: 100%; }
.downloader-tmdb-suggestions { max-width: none; }
.downloader-queue-heading { align-items: center; display: flex; gap: 14px; justify-content: space-between; margin-bottom: 20px; }
.downloader-queue-heading h2 { color: var(--parliament-blue-dark); font-size: 24px; letter-spacing: -.03em; margin: 0; }
.downloader-queue-heading .eyebrow { margin-bottom: 7px; }
.downloader-queue-heading form { flex: 0 0 auto; margin: 0; }
.downloader-queue { display: grid; gap: 12px; }
.downloader-empty { background: var(--parliament-blue-soft); border-radius: 12px; color: var(--muted); padding: 24px; text-align: center; }
.download-job-card { align-items: start; border: 1px solid var(--line); border-left: 4px solid var(--parliament-blue); border-radius: 14px; display: grid; gap: 12px; grid-template-columns: 54px minmax(0, 1fr); padding: 12px; }
.download-job-card.status-completed { border-left-color: var(--success); }
.download-job-card.status-failed { border-left-color: var(--danger); }
.download-job-card.status-paused { border-left-color: #c18400; }
.downloader-poster-placeholder, .download-job-card img { align-items: center; background: var(--parliament-blue-soft); border-radius: 9px; color: var(--parliament-blue-dark); display: flex; font-size: 10px; font-weight: 800; height: 76px; justify-content: center; object-fit: cover; width: 54px; }
.download-job-main { min-width: 0; }
.download-job-top { align-items: start; display: flex; gap: 10px; justify-content: space-between; }
.download-job-top > div { flex: 1 1 auto; min-width: 0; }
.download-job-top strong { color: var(--parliament-blue-dark); display: block; font-size: 14px; line-height: 1.35; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.download-job-top span { color: var(--muted); display: block; font-size: 11px; margin-top: 4px; }
.download-job-top span, .download-job-main > .field-hint { overflow-wrap: anywhere; }
.download-job-top b { background: var(--parliament-blue-soft); border-radius: 999px; color: var(--parliament-blue-dark); flex: 0 0 auto; font-size: 10px; padding: 6px 8px; }
.status-running .download-job-top b { background: #e9f8ef; color: var(--success); }
.status-failed .download-job-top b { background: #fff0ef; color: var(--danger); }
.status-paused .download-job-top b { background: #fff8e8; color: #8a5a00; }
.download-progress { background: #e9eef3; border-radius: 99px; height: 7px; margin-top: 12px; overflow: hidden; }
.download-progress span { background: var(--parliament-blue); border-radius: inherit; display: block; height: 100%; transition: width .5s ease; }
.status-completed .download-progress span { background: var(--success); }
.status-failed .download-progress span { background: var(--danger); }
.download-job-meta { color: var(--muted); display: flex; flex-wrap: wrap; font-size: 11px; gap: 12px; justify-content: space-between; margin-top: 6px; }
.download-job-actions { align-items: center; display: flex; flex-wrap: wrap; gap: 7px; margin-top: 10px; }
.downloader-action-form { margin: 0; }
.downloader-error { background: #fff8f7; border: 1px solid #f2c2bd; border-radius: 8px; color: var(--danger); font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: 11px; line-height: 1.45; margin: 10px 0 0; max-height: 180px; overflow: auto; padding: 10px; white-space: pre-wrap; }
.downloader-error[hidden] { display: none; }
.server-list-page-shell { padding-top: 0; }
.server-list-page { margin: 0 auto; max-width: 1240px; }
.server-list-heading { align-items: flex-end; display: flex; gap: 18px; justify-content: space-between; margin-bottom: 20px; }
.server-list-heading h1 { color: var(--parliament-blue-dark); font-size: clamp(30px, 4vw, 42px); letter-spacing: -.04em; margin: 0 0 8px; }
.server-list-heading p { margin: 0; }
.server-list-summary { align-items: center; background: var(--parliament-blue-soft); border: 1px solid #c9dfed; border-radius: 12px; color: var(--parliament-blue-dark); display: flex; flex-wrap: wrap; font-size: 13px; font-weight: 750; gap: 20px; margin-bottom: 16px; padding: 12px 16px; }
.server-list-grid { display: grid; gap: 16px; }
.server-list-card { background: #fff; border: 1px solid var(--line); border-left: 4px solid #8aa9bd; border-radius: 16px; box-shadow: 0 10px 28px rgba(17,42,70,.07); padding: 18px; }
.server-list-card.is-main-server { border-left-color: var(--parliament-blue); }
.server-list-card-top { align-items: flex-start; display: flex; gap: 16px; justify-content: space-between; }
.server-list-title { align-items: center; display: flex; flex-wrap: wrap; gap: 9px; min-width: 0; }
.server-list-title h2 { color: var(--parliament-blue-dark); font-size: 19px; margin: 0; }
.server-list-title p { color: var(--muted); font-size: 12px; margin: 4px 0 0; }
.server-list-status-dot { background: #a5b2bd; border-radius: 50%; display: inline-block; flex: 0 0 auto; height: 10px; width: 10px; }
.server-list-status-dot.is-online { background: var(--success); box-shadow: 0 0 0 4px #e9f8ef; }
.server-list-status-dot.is-error { background: var(--danger); box-shadow: 0 0 0 4px #fff0ef; }
.server-list-status { background: #eef3f6; border-radius: 999px; color: var(--muted); font-size: 10px; font-weight: 800; padding: 5px 8px; }
.is-main-server .server-list-status { background: var(--parliament-blue-soft); color: var(--parliament-blue-dark); }
.server-list-actions { align-items: center; display: flex; flex-wrap: wrap; gap: 8px; justify-content: flex-end; }
.server-gpu-log { margin-top: 12px; min-width: 0; }
.server-gpu-log pre { max-height: 240px; overflow: auto; white-space: pre-wrap; overflow-wrap: anywhere; font-size: 12px; }
.server-health { color: var(--success); font-size: 11px; font-weight: 800; }
.server-list-capabilities { display: flex; flex-wrap: wrap; gap: 7px; margin: 17px 0 14px; }
.server-list-capabilities span { background: var(--parliament-blue-soft); border-radius: 999px; color: var(--parliament-blue-dark); font-size: 10px; font-weight: 800; padding: 6px 9px; }
.server-metrics-grid { display: grid; gap: 9px; grid-template-columns: repeat(6, minmax(0, 1fr)); }
.server-metric { background: #fbfdff; border: 1px solid var(--line); border-radius: 11px; min-width: 0; padding: 11px; }
.server-metric-head { align-items: baseline; display: flex; gap: 8px; justify-content: space-between; }
.server-metric-head span { color: var(--muted); font-size: 10px; font-weight: 800; white-space: nowrap; }
.server-metric-head strong { color: var(--parliament-blue-dark); font-size: 16px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.server-metric small { color: var(--muted); display: block; font-size: 10px; margin-top: 7px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.server-metric-bar { background: #e9eef3; border-radius: 999px; height: 5px; margin-top: 9px; overflow: hidden; }
.server-metric-bar i { background: var(--parliament-blue); border-radius: inherit; display: block; height: 100%; transition: width .35s ease; }
.server-metric.cpu .server-metric-bar i { background: #e77768; }
.server-metric.ram .server-metric-bar i { background: #2588d8; }
.server-metric.disk .server-metric-bar i { background: #18bcae; }
.server-list-meta { border-top: 1px solid var(--line); color: var(--muted); display: flex; flex-wrap: wrap; font-size: 11px; gap: 12px 24px; justify-content: space-between; margin-top: 15px; padding-top: 12px; }
.server-list-error { background: #fff0ef; border: 1px solid #f2c2bd; border-radius: 9px; color: var(--danger); font-size: 12px; line-height: 1.45; margin-top: 12px; padding: 9px 11px; }
.server-list-empty, .server-list-loading { background: var(--parliament-blue-soft); border-radius: 14px; color: var(--muted); padding: 32px; text-align: center; }
.server-edit-page { margin: 0 auto; max-width: 900px; }
.server-edit-page h1 { color: var(--parliament-blue-dark); font-size: clamp(25px, 3.5vw, 36px); letter-spacing: -.04em; margin: 0 0 7px; }
.server-edit-form-grid { display: grid; gap: 16px; grid-template-columns: repeat(2, minmax(0, 1fr)); }
.server-edit-key-field { grid-column: 1 / -1; }
.server-edit-actions { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 24px; }
.server-edit-notice { background: var(--parliament-blue-soft); border: 1px solid #c9dfed; border-radius: 10px; color: var(--parliament-blue-dark); font-size: 13px; line-height: 1.5; margin-top: 22px; padding: 13px 15px; }
.series-page-heading { margin-bottom: 24px; }
.series-page-heading h1 { color: var(--parliament-blue-dark); font-size: clamp(30px, 4vw, 42px); letter-spacing: -.04em; margin: 0 0 8px; }
.series-page-heading p { margin: 0; }
.series-create-card { margin-bottom: 32px; }
.series-icon { background: linear-gradient(135deg, #2b9bcb, #005b96); }
.series-create-form, .season-create-form { align-items: end; display: flex; gap: 14px; max-width: 800px; }
.series-title-field { flex: 1; margin-bottom: 0; }
.tmdb-series-suggestions { background: #fff; border: 1px solid var(--line); border-radius: 12px; display: grid; gap: 8px; margin-top: 8px; max-width: 680px; padding: 8px; }
.tmdb-series-suggestions[hidden] { display: none; }
.tmdb-suggestion { align-items: center; background: #fff; border: 1px solid transparent; border-radius: 10px; cursor: pointer; display: grid; gap: 10px; grid-template-columns: 42px minmax(0, 1fr); padding: 7px; text-align: left; width: 100%; }
.tmdb-suggestion:hover { background: var(--parliament-blue-soft); border-color: #bcd7eb; }
.tmdb-suggestion img, .tmdb-suggestion-placeholder { align-items: center; background: var(--parliament-blue-soft); border-radius: 7px; color: var(--parliament-blue-dark); display: flex; font-size: 10px; font-weight: 800; height: 58px; justify-content: center; object-fit: cover; width: 42px; }
.tmdb-suggestion > span:not(.tmdb-suggestion-placeholder) { display: grid; gap: 4px; min-width: 0; }
.tmdb-suggestion strong { color: var(--ink); font-size: 13px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.tmdb-suggestion small, .tmdb-search-state { color: var(--muted); font-size: 11px; }
.tmdb-search-state { padding: 8px; }
.series-section { margin-top: 30px; }
.series-section-heading { align-items: center; display: flex; justify-content: space-between; margin-bottom: 16px; }
.series-section-heading .eyebrow { margin-bottom: 7px; }
.series-section-heading h2 { color: var(--parliament-blue-dark); font-size: 22px; letter-spacing: -.03em; margin: 0; }
.count-badge { background: var(--parliament-blue-soft); border-radius: 999px; color: var(--parliament-blue-dark); font-size: 12px; font-weight: 800; padding: 8px 12px; }
.series-list-controls { align-items: center; display: flex; gap: 12px; justify-content: space-between; margin: -2px 0 16px; }
.series-search-field { display: block; margin: 0; max-width: 460px; width: 100%; }
.series-search-field .input { min-height: 44px; }
.series-view-switch { background: var(--parliament-blue-soft); border: 1px solid #c7ddea; border-radius: 10px; display: flex; gap: 4px; padding: 4px; }
.series-view-button { background: transparent; border: 0; border-radius: 7px; color: var(--muted); cursor: pointer; font: inherit; font-size: 12px; font-weight: 800; min-height: 34px; padding: 0 12px; }
.series-view-button.active { background: var(--parliament-blue); color: #fff; }
.series-category-grid { display: grid; gap: 18px; grid-template-columns: repeat(auto-fill, minmax(190px, 1fr)); }
.series-category-card { background: #fff; border: 1px solid var(--line); border-radius: 15px; box-shadow: 0 10px 28px rgba(17,42,70,.07); color: inherit; display: block; overflow: hidden; text-decoration: none; transition: transform .15s, box-shadow .15s; }
.series-category-card:hover { box-shadow: 0 16px 34px rgba(17,42,70,.14); transform: translateY(-2px); }
.series-category-card img, .series-poster-placeholder { aspect-ratio: 2 / 3; background: linear-gradient(145deg, var(--parliament-blue-soft), #d5e9f6); color: var(--parliament-blue-dark); display: grid; font-size: 24px; font-weight: 900; object-fit: cover; place-items: center; width: 100%; }
.series-category-info { padding: 14px; }
.series-category-info h3 { color: var(--parliament-blue-dark); font-size: 15px; line-height: 1.35; margin: 0 0 6px; }
.series-category-info span { color: var(--muted); font-size: 12px; }
.series-category-arrow { color: var(--parliament-blue); display: none; font-size: 22px; font-weight: 800; padding: 0 18px 0 0; }
.series-list-view { grid-template-columns: 1fr; }
.series-list-view .series-category-card { align-items: center; display: grid; grid-template-columns: 78px minmax(0, 1fr) auto; min-height: 96px; }
.series-list-view .series-category-card img, .series-list-view .series-poster-placeholder { aspect-ratio: auto; border-radius: 0; height: 96px; width: 78px; }
.series-list-view .series-category-info { padding: 14px 16px; }
.series-list-view .series-category-arrow { display: block; }
.series-filter-empty { margin-top: 14px; }
.series-category-card[hidden] { display: none; }
.sr-only { height: 1px; margin: -1px; overflow: hidden; position: absolute; width: 1px; clip: rect(0, 0, 0, 0); }
.series-empty { align-items: center; background: var(--parliament-blue-soft); border-radius: 14px; display: grid; gap: 6px; justify-items: center; padding: 34px 20px; text-align: center; }
.series-empty .empty-icon { margin: 0 0 8px; }
.back-link { color: var(--parliament-blue); display: inline-block; font-size: 13px; font-weight: 750; margin-bottom: 18px; text-decoration: none; }
.back-link:hover { color: var(--parliament-blue-dark); }
.series-detail-hero { align-items: flex-start; background: #fff; border: 1px solid var(--line); border-radius: 18px; box-shadow: var(--shadow); display: grid; gap: 24px; grid-template-columns: 170px minmax(0, 1fr); margin-bottom: 24px; overflow: hidden; padding: 22px; }
.series-detail-hero img, .series-detail-placeholder { aspect-ratio: 2 / 3; background: linear-gradient(145deg, var(--parliament-blue-soft), #d5e9f6); border-radius: 12px; color: var(--parliament-blue-dark); display: grid; font-size: 24px; font-weight: 900; object-fit: cover; place-items: center; width: 170px; }
.series-detail-info h1 { color: var(--parliament-blue-dark); font-size: clamp(28px, 4vw, 42px); letter-spacing: -.04em; margin: 0 0 10px; }
.series-detail-info .muted { max-width: 720px; }
.detail-meta { color: var(--muted); display: block; font-size: 12px; }
.season-create-card { margin-bottom: 30px; }
.season-icon { background: linear-gradient(135deg, #4e8ed0, #24538c); }
.season-create-form .field { margin-bottom: 0; max-width: 260px; }
.season-grid { display: grid; gap: 18px; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); }
.season-card { background: #fff; border: 1px solid var(--line); border-radius: 15px; display: grid; grid-template-columns: 112px minmax(0, 1fr); overflow: hidden; }
.season-card img, .season-poster-placeholder { background: linear-gradient(145deg, var(--parliament-blue-soft), #d5e9f6); color: var(--parliament-blue-dark); display: grid; font-size: 20px; font-weight: 900; height: 170px; object-fit: cover; place-items: center; width: 112px; }
.season-card-info { display: flex; flex-direction: column; gap: 7px; padding: 15px; }
.season-card-info h3 { color: var(--parliament-blue-dark); font-size: 16px; line-height: 1.3; margin: 0; }
.season-coming-soon { color: var(--muted); font-size: 12px; line-height: 1.4; margin-top: auto; }
.season-card-info form { margin-top: 6px; }
.season-open-button { margin-top: auto; align-self: flex-start; }
.season-file-hero { align-items: center; background: #fff; border: 1px solid var(--line); border-radius: 18px; box-shadow: var(--shadow); display: grid; gap: 16px; grid-template-columns: 78px minmax(0, 1fr) auto; margin-bottom: 24px; padding: 22px; }
.season-file-icon { align-items: center; background: linear-gradient(145deg, #4e8ed0, #24538c); border-radius: 15px; color: #fff; display: flex; font-size: 18px; font-weight: 900; height: 78px; justify-content: center; width: 78px; }
.season-file-hero h1 { color: var(--parliament-blue-dark); font-size: clamp(24px, 3.5vw, 36px); letter-spacing: -.04em; margin: 0 0 7px; }
.season-file-hero p { margin: 0; }
.episode-list-card { padding: 18px; }
.episode-table-wrap { overflow-x: auto; }
.episode-table { border-collapse: collapse; min-width: 960px; width: 100%; }
.episode-table th { background: var(--parliament-blue-soft); color: var(--parliament-blue-dark); font-size: 11px; letter-spacing: .03em; padding: 12px 10px; text-align: left; white-space: nowrap; }
.episode-table td { border-bottom: 1px solid var(--line); color: var(--ink); font-size: 12px; padding: 13px 10px; vertical-align: middle; white-space: nowrap; }
.episode-table tbody tr:last-child td { border-bottom: 0; }
.episode-table td:first-child { min-width: 230px; white-space: normal; }
.episode-table td:first-child strong, .episode-table td:first-child small { display: block; }
.episode-table td:first-child strong { color: var(--parliament-blue-dark); font-size: 13px; }
.episode-table td:first-child small { color: var(--muted); font-size: 11px; margin-top: 4px; max-width: 260px; overflow: hidden; text-overflow: ellipsis; }
.file-type-badge { background: var(--parliament-blue-soft); border-radius: 6px; color: var(--parliament-blue-dark); font-size: 10px; font-weight: 800; padding: 5px 7px; }
.episode-actions { align-items: center; display: flex; gap: 7px; }
.episode-actions form { margin: 0; }
.settings-heading { align-items: flex-start; display: flex; justify-content: space-between; margin-bottom: 26px; }
.settings-heading h1 { font-size: clamp(30px, 4vw, 42px); letter-spacing: -.04em; margin: 0 0 8px; }
.settings-tabs { align-items: stretch; background: #f5f7fa; border: 1px solid var(--line); border-radius: 14px; display: grid; gap: 6px; grid-template-columns: repeat(10, minmax(0, 1fr)); margin: 18px 0 24px; overflow: visible; padding: 8px; }
.settings-tab { align-items: center; background: #fff; border: 1px solid #dce5ee; border-radius: 10px; color: #536579; cursor: pointer; display: inline-flex; font: inherit; font-size: 11px; font-weight: 750; justify-content: center; line-height: 1.2; min-height: 42px; min-width: 0; overflow: hidden; padding: 0 4px; text-decoration: none; text-overflow: ellipsis; transition: background .18s, border-color .18s, color .18s, box-shadow .18s; white-space: nowrap; }
.settings-tab:hover:not(:disabled) { background: #eef4f8; border-color: #b8c9d7; color: var(--ink); }
.settings-tab.active { background: var(--parliament-blue); border-color: var(--parliament-blue); box-shadow: 0 4px 10px rgba(0,91,150,.16); color: #fff; }
.settings-tab:disabled { cursor: not-allowed; opacity: .5; }
.settings-tabs-mobile { display: none; }
.settings-tabs-mobile label { color: var(--parliament-blue-dark); display: block; font-size: 12px; font-weight: 750; margin: 0 0 7px; }
.settings-tabs-mobile select { background: #fff; border: 1px solid var(--line); border-radius: 10px; color: var(--ink); font: inherit; min-height: 46px; padding: 0 12px; width: 100%; }
@media (max-width: 1100px) {
  .settings-tabs { display: none; }
  .settings-tabs-mobile { background: #f5f7fa; border: 1px solid var(--line); border-radius: 14px; display: block; margin: 18px 0 24px; padding: 10px; }
}
.settings-card { background: #fff; border: 1px solid var(--line); border-radius: 18px; box-shadow: var(--shadow); padding: clamp(24px, 4vw, 40px); }
.settings-card-heading { align-items: flex-start; display: flex; gap: 16px; margin-bottom: 26px; }
.settings-card-icon { align-items: center; background: var(--parliament-blue); border-radius: 12px; color: #fff; display: flex; font-size: 12px; font-weight: 900; height: 52px; justify-content: center; letter-spacing: .03em; flex: 0 0 58px; }
.balance-icon { background: linear-gradient(135deg, #0d6ea8, #123c68); }
.youtube-icon { background: linear-gradient(135deg, #ff5f6d, #d71920); }
.vpn-icon { background: linear-gradient(135deg, #7557d9, #403092); }
.settings-card h2 { font-size: 24px; letter-spacing: -.03em; margin: 0 0 6px; }
.settings-card-heading .muted { font-size: 14px; margin: 0; }
.secret-status { align-items: center; background: #e9f8ef; border-radius: 10px; color: var(--success); display: flex; flex-wrap: wrap; font-size: 13px; gap: 8px; margin-bottom: 24px; padding: 13px 15px; }
.secret-status.pending { background: #fff8e8; color: #8a5a00; }
.status-dot { background: currentColor; border-radius: 50%; display: inline-block; height: 8px; width: 8px; }
.secret-status code { background: rgba(255,255,255,.65); border-radius: 5px; font-size: 12px; padding: 4px 7px; }
.settings-form { max-width: 680px; }
.transcode-profile-card { max-width: none; }
.transcode-icon { background: linear-gradient(135deg, #1a9b8b, #11645d); }
.transcode-notice { align-items: flex-start; display: grid; gap: 4px; margin-bottom: 22px; }
.transcode-accelerator-grid { display: grid; gap: 10px; grid-template-columns: repeat(5, minmax(0, 1fr)); margin-bottom: 28px; }
.transcode-accelerator { align-items: flex-start; background: #fff8e8; border: 1px solid #f1d99b; border-radius: 11px; color: #8a5a00; display: flex; gap: 9px; min-height: 70px; padding: 11px 12px; }
.transcode-accelerator.is-available { background: #e9f8ef; border-color: #b8e4ca; color: var(--success); }
.transcode-accelerator .status-dot { flex: 0 0 8px; margin-top: 5px; }
.transcode-accelerator strong, .transcode-accelerator small { display: block; }
.transcode-accelerator strong { color: var(--parliament-blue-dark); font-size: 12px; }
.transcode-accelerator small { color: var(--muted); font-size: 10px; line-height: 1.4; margin-top: 4px; }
.transcode-form { max-width: none; }
.transcode-fieldset { border: 0; border-top: 1px solid var(--line); margin: 28px 0 0; padding: 24px 0 0; }
.transcode-fieldset legend { color: var(--parliament-blue-dark); font-size: 16px; font-weight: 850; margin-bottom: 16px; padding: 0; }
.transcode-form-grid { display: grid; gap: 16px; grid-template-columns: repeat(3, minmax(0, 1fr)); }
.transcode-wide-field { grid-column: span 2; }
.transcode-check-grid { display: grid; gap: 10px; grid-template-columns: repeat(3, minmax(0, 1fr)); margin-top: 2px; }
.transcode-check { align-items: center; background: #fbfdff; border: 1px solid var(--line); border-radius: 10px; color: var(--parliament-blue-dark); cursor: pointer; display: flex; gap: 9px; min-height: 44px; padding: 10px 12px; }
.transcode-check input { accent-color: var(--parliament-blue); height: 17px; width: 17px; }
.transcode-page-actions { margin-left: auto; }
.transcode-current-logo { align-items: center; background: #fbfdff; border: 1px solid var(--line); border-radius: 10px; display: flex; gap: 10px; margin-top: 10px; max-width: 360px; padding: 8px 10px; }
.transcode-current-logo img { background: #fff; border-radius: 6px; height: 42px; object-fit: contain; width: 72px; }
.transcode-current-logo span { color: var(--muted); font-size: 12px; overflow-wrap: anywhere; }
.transcode-profile-grid { display: grid; gap: 14px; }
.transcode-profile-list-card { align-items: center; background: #fff; border: 1px solid var(--line); border-radius: 16px; box-shadow: var(--shadow); display: grid; gap: 18px; grid-template-columns: 96px minmax(0, 1fr) auto; padding: 16px; }
.transcode-profile-logo { align-items: center; background: var(--parliament-blue-soft); border: 1px solid #c9dfed; border-radius: 12px; color: var(--parliament-blue-dark); display: flex; font-size: 11px; font-weight: 850; height: 72px; justify-content: center; overflow: hidden; width: 96px; }
.transcode-profile-logo img { background: #fff; display: block; height: 100%; object-fit: contain; width: 100%; }
.transcode-profile-info { min-width: 0; }
.transcode-profile-info h2 { color: var(--parliament-blue-dark); font-size: 17px; letter-spacing: -.02em; margin: 0 0 8px; overflow-wrap: anywhere; }
.transcode-profile-tags { display: flex; flex-wrap: wrap; gap: 6px; }
.transcode-profile-tags span { background: var(--parliament-blue-soft); border-radius: 7px; color: var(--parliament-blue-dark); font-size: 11px; font-weight: 750; padding: 5px 7px; }
.transcode-profile-info small { display: block; font-size: 12px; margin-top: 9px; }
.transcode-profile-path { font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace; font-size: 10px !important; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.transcode-profile-actions { align-items: center; display: flex; flex-wrap: wrap; gap: 8px; justify-content: flex-end; }
.transcode-profile-actions form { margin: 0; }
.transcode-profile-empty { align-items: center; display: flex; flex-direction: column; gap: 10px; text-align: center; }
.transcode-profile-empty .settings-card-icon { margin-bottom: 4px; }
.transcode-profile-empty h2, .transcode-profile-empty p { margin: 0; }
.transcode-profile-empty .button { margin-top: 8px; }
.transcode-page { margin: 0 auto; max-width: 1240px; }
.transcode-layout { align-items: start; display: grid; gap: 22px; grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr); }
.transcode-form-card, .transcode-queue-card { min-width: 0; }
.transcode-form-card .settings-card-heading { margin-bottom: 20px; }
.transcode-source-select { min-height: 48px; }
[data-movie-source-fields][hidden], [data-series-source-fields][hidden] { display: none !important; }
.transcode-empty-note { background: #fff8e8; border: 1px solid #f1d99b; border-radius: 10px; color: #8a5a00; font-size: 13px; line-height: 1.5; margin-bottom: 20px; padding: 12px 14px; }
.transcode-overlay-fieldset { border: 0; border-top: 1px solid var(--line); margin: 24px 0 22px; padding: 20px 0 0; }
.transcode-overlay-fieldset legend { color: var(--parliament-blue-dark); font-size: 16px; font-weight: 850; margin-bottom: 12px; padding: 0; }
.transcode-overlay-grid { display: grid; gap: 12px; grid-template-columns: repeat(2, minmax(0, 1fr)); margin-top: 14px; }
.transcode-overlay-wide { grid-column: 1 / -1; }
.transcode-overlay-grid.is-disabled { opacity: .52; }
.transcode-title-check { margin-top: 10px; }
.color-input { cursor: pointer; padding: 5px; }
.transcode-queue-heading { align-items: center; display: flex; gap: 14px; justify-content: space-between; margin-bottom: 20px; }
.transcode-queue-heading h2 { color: var(--parliament-blue-dark); font-size: 24px; letter-spacing: -.03em; margin: 0; }
.transcode-queue-heading .eyebrow { margin-bottom: 7px; }
.transcode-queue-actions { align-items: center; display: flex; flex-wrap: wrap; gap: 8px; justify-content: flex-end; }
.transcode-queue-actions form, .transcode-job-actions form { margin: 0; }
.transcode-queue { display: grid; gap: 12px; }
.transcode-job-card { background: #fff; border: 1px solid var(--line); border-left: 4px solid #a9b7c5; border-radius: 12px; padding: 14px; }
.transcode-job-card.status-pending { border-left-color: #d39c24; }
.transcode-job-card.status-queued { border-left-color: #628db0; }
.transcode-job-card.status-running { border-left-color: var(--parliament-blue); }
.transcode-job-card.status-paused { border-left-color: #8e6cb4; }
.transcode-job-card.status-completed { border-left-color: var(--success); }
.transcode-job-card.status-failed { border-left-color: var(--danger); }
.transcode-job-card.status-cancelled { border-left-color: #8895a3; }
.transcode-job-top { align-items: flex-start; display: flex; gap: 12px; justify-content: space-between; }
.transcode-job-top strong, .transcode-job-top span { display: block; }
.transcode-job-top strong { color: var(--parliament-blue-dark); font-size: 14px; overflow-wrap: anywhere; }
.transcode-job-top span { color: var(--muted); font-size: 12px; margin-top: 5px; overflow-wrap: anywhere; }
.transcode-job-top b { color: var(--muted); flex: 0 0 auto; font-size: 11px; text-align: right; }
.transcode-progress { background: #edf2f6; border-radius: 999px; height: 8px; margin: 14px 0 8px; overflow: hidden; }
.transcode-progress span { background: linear-gradient(90deg, #1a9b8b, #005b96); border-radius: inherit; display: block; height: 100%; transition: width .35s ease; }
.transcode-job-meta { color: var(--muted); display: flex; font-size: 11px; gap: 12px; justify-content: space-between; }
.transcode-job-meta span:last-child { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.transcode-job-error { background: #fff0ef; border-radius: 8px; color: var(--danger); font-size: 12px; line-height: 1.45; margin-top: 10px; padding: 9px 10px; white-space: pre-wrap; }
.transcode-job-actions { align-items: center; display: flex; flex-wrap: wrap; gap: 7px; justify-content: flex-end; margin-top: 12px; }
.transcode-empty { background: var(--parliament-blue-soft); border-radius: 10px; color: var(--muted); font-size: 13px; padding: 18px; text-align: center; }
.transcode-preview-modal { align-items: center; background: rgba(7, 25, 42, .72); display: flex; inset: 0; justify-content: center; padding: 20px; position: fixed; z-index: 1000; }
.transcode-preview-modal[hidden] { display: none; }
.transcode-preview-dialog { background: #fff; border-radius: 16px; box-shadow: 0 22px 70px rgba(0, 0, 0, .3); max-width: 860px; padding: 18px; width: min(100%, 860px); }
.transcode-preview-heading { align-items: center; display: flex; gap: 14px; justify-content: space-between; margin-bottom: 14px; }
.transcode-preview-heading h2 { color: var(--parliament-blue-dark); font-size: 20px; margin: 0; overflow-wrap: anywhere; }
.transcode-preview-video { background: #071a2d; border-radius: 10px; display: block; max-height: 70vh; width: 100%; }
.transcode-report-card { max-width: none; }
.transcode-report-grid { display: grid; gap: 12px; grid-template-columns: repeat(4, minmax(0, 1fr)); margin: 24px 0; }
.transcode-report-grid div { background: #fbfdff; border: 1px solid var(--line); border-radius: 10px; min-width: 0; padding: 13px; }
.transcode-report-grid span, .transcode-report-grid strong { display: block; }
.transcode-report-grid span { color: var(--muted); font-size: 11px; margin-bottom: 6px; }
.transcode-report-grid strong { color: var(--parliament-blue-dark); font-size: 13px; overflow-wrap: anywhere; }
.transcode-report-log { background: #102235; border-radius: 12px; color: #d7e8f5; font: 12px/1.5 ui-monospace, SFMono-Regular, Menlo, Consolas, monospace; max-height: 460px; overflow: auto; padding: 15px; white-space: pre-wrap; }
.transcode-report-error { background: #fff0ef; border: 1px solid #f2c2bd; border-radius: 10px; color: var(--danger); font-size: 13px; line-height: 1.5; padding: 12px 14px; white-space: pre-wrap; }
.recording-page { margin: 0 auto; max-width: 1360px; }
.recording-page-heading { margin-bottom: 24px; }
.recording-page-heading h1 { color: var(--parliament-blue-dark); font-size: clamp(30px, 4vw, 42px); letter-spacing: -.04em; margin: 0 0 8px; }
.recording-page-heading p { margin: 0; }
.recording-layout { align-items: start; display: grid; gap: 22px; grid-template-columns: minmax(320px, .85fr) minmax(0, 1.15fr); }
.recording-forms-column { display: grid; gap: 18px; }
.recording-card, .recording-list-card, .recording-channels-card { min-width: 0; }
.recording-icon { background: linear-gradient(135deg, #d44b50, #8b1f36); }
.recording-form { display: grid; gap: 14px; }
.recording-form .field { margin: 0; }
.recording-notice { background: #fff8e8; border: 1px solid #f1d99b; border-radius: 9px; color: #8a5a00; font-size: 12px; line-height: 1.45; margin-bottom: 12px; padding: 10px 12px; }
.recording-storage-status { background: #f1f6fa; border: 1px solid #d6e2ec; border-radius: 9px; color: var(--muted); display: grid; font-size: 12px; gap: 4px; line-height: 1.45; padding: 10px 12px; }
.recording-storage-status strong { color: var(--parliament-blue-dark); }
.recording-storage-status small { font-size: 11px; }
.recording-storage-status.is-good { background: #edf8f1; border-color: #b8dfc6; color: #23613d; }
.recording-storage-status.is-good strong { color: #23613d; }
.recording-storage-status.is-error { background: #fff0ef; border-color: #efb8b5; color: var(--danger); }
.recording-storage-status.is-error strong { color: var(--danger); }
.recording-list-heading { align-items: center; display: flex; gap: 14px; justify-content: space-between; margin-bottom: 16px; }
.recording-list-heading h2 { color: var(--parliament-blue-dark); font-size: 23px; letter-spacing: -.03em; margin: 0; }
.recording-list-heading .eyebrow { margin-bottom: 6px; }
.recording-job-list, .recording-channel-list { display: grid; gap: 11px; }
.recording-job-card { background: #fff; border: 1px solid var(--line); border-left: 4px solid #a9b7c5; border-radius: 12px; min-width: 0; padding: 14px; }
.recording-job-card.status-scheduled { border-left-color: #8e6cb4; }
.recording-job-card.status-queued, .recording-job-card.status-starting { border-left-color: #d39c24; }
.recording-job-card.status-running { border-left-color: var(--success); }
.recording-job-card.status-stopping { border-left-color: #d16e34; }
.recording-job-card.status-failed { border-left-color: var(--danger); }
.recording-job-card.status-completed { border-left-color: var(--success); }
.recording-job-heading { align-items: flex-start; display: flex; gap: 12px; justify-content: space-between; }
.recording-job-heading strong, .recording-job-heading small { display: block; }
.recording-job-heading strong { color: var(--parliament-blue-dark); font-size: 14px; overflow-wrap: anywhere; }
.recording-job-heading small { color: var(--muted); font-size: 11px; margin-top: 5px; overflow-wrap: anywhere; }
.recording-job-heading b { color: var(--muted); flex: 0 0 auto; font-size: 11px; text-align: right; }
.recording-job-time { color: var(--muted); font-size: 11px; margin-top: 8px; }
.recording-progress { background: #edf2f6; border-radius: 999px; height: 8px; margin: 13px 0 8px; overflow: hidden; }
.recording-progress span { background: linear-gradient(90deg, #d44b50, #9b2047); border-radius: inherit; display: block; height: 100%; transition: width .35s ease; }
.recording-job-meta { color: var(--muted); display: flex; font-size: 11px; justify-content: space-between; }
.recording-job-health { color: var(--muted); display: flex; flex-wrap: wrap; font-size: 11px; gap: 4px 14px; justify-content: space-between; margin-top: 7px; }
.recording-job-error { background: #fff0ef; border-radius: 8px; color: var(--danger); font-size: 12px; line-height: 1.45; margin-top: 10px; padding: 9px 10px; white-space: pre-wrap; }
.recording-job-actions { display: flex; justify-content: flex-end; margin-top: 10px; }
.recording-job-actions form, .recording-channel-row form { margin: 0; }
.recording-empty { background: var(--parliament-blue-soft); border-radius: 10px; color: var(--muted); font-size: 13px; padding: 16px; text-align: center; }
.recording-channels-card { margin-top: 22px; }
.recording-channel-row { align-items: center; background: #fbfdff; border: 1px solid var(--line); border-radius: 10px; display: flex; gap: 12px; justify-content: space-between; min-width: 0; padding: 11px 13px; }
.recording-channel-row strong, .recording-channel-row small { display: block; }
.recording-channel-row strong { color: var(--parliament-blue-dark); font-size: 13px; }
.recording-channel-row small { color: var(--muted); font-size: 11px; margin-top: 4px; max-width: 800px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.recording-epg-card { margin-top: 18px; }
.recording-notice.is-error { background: #fff0ef; border-color: #efb8b5; color: var(--danger); }
.recording-channel-card { align-items: flex-start; flex-wrap: wrap; }
.recording-channel-summary { flex: 1 1 280px; min-width: 0; }
.recording-channel-summary small { max-width: 100%; }
.recording-channel-actions { align-items: flex-start; display: flex; flex: 0 0 auto; gap: 8px; }
.recording-channel-edit { position: relative; }
.recording-channel-edit summary { cursor: pointer; list-style: none; white-space: nowrap; }
.recording-channel-edit summary::-webkit-details-marker { display: none; }
.recording-channel-edit[open] { flex: 1 1 100%; margin-top: 8px; }
.recording-channel-edit[open] summary { display: inline-flex; margin-bottom: 12px; }
.recording-channel-edit form { background: #f8fafc; border: 1px solid var(--line); border-radius: 10px; max-width: 760px; padding: 14px; }
.recording-epg-map-row { align-items: center; display: flex; gap: 8px; }
.recording-epg-map-row .input { flex: 1 1 auto; min-width: 0; }
.recording-channel-edit [data-epg-channel-options] { margin-top: 8px; }
.recording-channel-epg { border-top: 1px solid var(--line); flex: 1 1 100%; margin-top: 4px; min-width: 0; padding-top: 12px; }
.recording-channel-epg-heading { align-items: center; color: var(--parliament-blue-dark); display: flex; font-size: 12px; gap: 10px; justify-content: space-between; margin-bottom: 9px; }
.recording-channel-epg-heading span { color: var(--muted); font-size: 11px; font-weight: 400; }
.recording-epg-strip { display: flex; gap: 9px; overflow-x: auto; overscroll-behavior-inline: contain; padding: 2px 2px 10px; scroll-snap-type: x mandatory; }
.recording-programme-tile { background: #f7faff; border: 1px solid #d8e3ef; border-radius: 10px; color: var(--parliament-blue-dark); cursor: pointer; flex: 0 0 210px; min-height: 84px; padding: 10px 12px; scroll-snap-align: start; text-align: left; transition: border-color .15s, background .15s, transform .15s; }
.recording-programme-tile:hover { border-color: #6885a6; transform: translateY(-1px); }
.recording-programme-tile.selected { background: #e7eff8; border-color: var(--parliament-blue); box-shadow: 0 0 0 2px rgb(44 74 111 / 12%); }
.recording-programme-tile span, .recording-programme-tile strong { display: block; }
.recording-programme-tile span { color: var(--muted); font-size: 10px; margin-bottom: 8px; }
.recording-programme-tile strong { font-size: 12px; line-height: 1.4; overflow-wrap: anywhere; }
.recording-program-schedule { background: #f8fafc; border: 1px solid #dce5ef; border-radius: 10px; flex: 1 1 100%; margin: 4px 0 2px; padding: 12px; }
.recording-program-schedule[hidden] { display: none; }
.recording-program-schedule > strong { color: var(--parliament-blue-dark); display: block; font-size: 13px; margin-bottom: 10px; }
.recording-program-schedule-controls { align-items: center; display: flex; flex-wrap: wrap; gap: 9px; }
.recording-program-schedule-controls .input { flex: 1 1 190px; min-width: 0; }
.record-epg-source-list { margin-top: 22px; }
.record-epg-source-item { align-items: flex-end; border: 1px solid var(--line); border-radius: 12px; display: flex; gap: 9px; padding: 12px; }
.record-epg-source-edit { align-items: flex-end; display: grid; flex: 1 1 auto; gap: 10px; grid-template-columns: minmax(150px, .7fr) minmax(240px, 1.4fr) auto; }
.record-epg-source-edit .field { margin: 0; min-width: 0; }
.record-epg-source-edit label { font-size: 11px; }
@media (max-width: 680px) { .record-epg-source-item { align-items: stretch; flex-direction: column; } .record-epg-source-edit { grid-template-columns: 1fr; } }
@media (max-width: 900px) { .recording-layout { grid-template-columns: 1fr; } }
@media (max-width: 580px) { .recording-job-heading { display: grid; } .recording-job-heading b { text-align: left; } .recording-channel-row { align-items: flex-start; } .recording-channel-actions { flex-wrap: wrap; } .recording-epg-map-row { align-items: stretch; flex-direction: column; } }
.field-hint { color: var(--muted); display: block; font-size: 12px; line-height: 1.5; margin-top: 8px; }
.settings-help { border-top: 1px solid var(--line); margin-top: 32px; padding-top: 22px; }
.settings-help strong { font-size: 14px; }
.settings-help p { font-size: 13px; margin-bottom: 0; }
.openvpn-client-list { margin-top: 32px; }
.client-list-heading { margin-bottom: 16px; }
.client-list-heading p { margin-top: 7px; }
.client-list { display: grid; gap: 10px; }
.client-item { align-items: center; border: 1px solid var(--line); border-radius: 12px; display: grid; gap: 18px; grid-template-columns: minmax(0, 1fr) auto; padding: 14px 16px; }
.client-name { color: var(--parliament-blue-dark); display: block; font-size: 14px; }
.client-meta { color: var(--muted); display: block; font-size: 12px; margin-top: 5px; }
.client-actions { align-items: center; display: flex; flex-wrap: wrap; gap: 7px; justify-content: flex-end; }
.client-actions form { margin: 0; }
.client-list-empty { margin: 0; }
.weekly-show-list { margin-top: 32px; }
.dashboard-content-panels { display: grid; gap: 22px; grid-template-columns: repeat(2, minmax(0, 1fr)); margin: 28px auto 0; max-width: 1120px; }
.dashboard-system-panel { background: #fff; border: 1px solid var(--line); border-radius: 16px; margin: 0 auto 24px; max-width: 1120px; padding: 20px; }
.dashboard-system-actions { align-items: center; display: flex; gap: 10px; }
.dashboard-system-updated { color: var(--muted); font-size: 11px; font-weight: 700; }
.dashboard-system-updated.has-alerts { color: #b45309; }
.dashboard-system-grid { display: grid; gap: 12px; grid-template-columns: repeat(3, minmax(0, 1fr)); }
.dashboard-system-status { align-items: flex-start; background: #f8fafc; border: 1px solid var(--line); border-left: 4px solid #94a3b8; border-radius: 12px; display: flex; gap: 11px; min-width: 0; padding: 14px; }
.dashboard-system-status.is-active { border-left-color: #14b8a6; }
.dashboard-system-status.is-error { background: #fff8f1; border-left-color: #f59e0b; }
.dashboard-system-status strong { color: var(--parliament-blue-dark); display: block; font-size: 13px; }
.dashboard-system-status p { color: var(--muted); font-size: 11px; margin: 4px 0; }
.dashboard-system-status small { color: var(--muted); display: block; font-size: 10px; line-height: 1.4; }
.dashboard-system-icon { align-items: center; background: var(--parliament-blue-soft); border-radius: 9px; color: var(--parliament-blue-dark); display: inline-flex; flex: 0 0 31px; font-size: 16px; height: 31px; justify-content: center; }
.dashboard-system-loading { color: var(--muted); font-size: 12px; grid-column: 1 / -1; padding: 10px 2px; }
.dashboard-system-loading.is-error { color: #b45309; }
.dashboard-now-playing { margin-bottom: 24px; }
.dashboard-now-playing-list { display: grid; gap: 8px; }
.dashboard-now-playing-row { align-items: center; background: #f8fafc; border: 1px solid var(--line); border-radius: 10px; display: grid; gap: 10px; grid-template-columns: 10px minmax(0, 1fr) auto; padding: 10px 12px; }
.dashboard-now-playing-row > div { display: grid; gap: 3px; min-width: 0; }
.dashboard-now-playing-row strong { color: var(--parliament-blue-dark); font-size: 12px; }
.dashboard-now-playing-row small { color: var(--muted); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.dashboard-now-playing-row b { color: var(--parliament-blue-dark); font-size: 11px; white-space: nowrap; }
.dashboard-now-playing-dot { background: #16a34a; border-radius: 50%; box-shadow: 0 0 0 4px #dcfce7; height: 7px; width: 7px; }
.dashboard-activity { margin-bottom: 24px; }
.dashboard-activity-grid { display: grid; gap: 18px; grid-template-columns: repeat(2, minmax(0, 1fr)); }
.dashboard-activity-column { min-width: 0; }
.dashboard-activity-column h3 { color: var(--parliament-blue-dark); font-size: 13px; margin: 0 0 9px; }
.dashboard-activity-list { display: grid; gap: 8px; }
.dashboard-activity-row { align-items: center; background: #f8fafc; border: 1px solid var(--line); border-left: 4px solid #94a3b8; border-radius: 10px; color: inherit; display: grid; gap: 10px; grid-template-columns: 9px minmax(0, 1fr) auto; min-width: 0; padding: 10px 12px; text-decoration: none; }
.dashboard-activity-row:hover { border-color: #9fc5dc; box-shadow: 0 5px 14px rgba(0,91,150,.08); }
.dashboard-activity-row.is-active { border-left-color: #14b8a6; }
.dashboard-activity-row.is-error { background: #fff8f1; border-left-color: #f59e0b; }
.dashboard-activity-dot { background: #94a3b8; border-radius: 50%; height: 7px; width: 7px; }
.dashboard-activity-row.is-active .dashboard-activity-dot { background: #14b8a6; box-shadow: 0 0 0 4px #ccfbf1; }
.dashboard-activity-row.is-error .dashboard-activity-dot { background: #f59e0b; box-shadow: 0 0 0 4px #fef3c7; }
.dashboard-activity-main, .dashboard-activity-meta { display: grid; gap: 3px; min-width: 0; }
.dashboard-activity-main strong { color: var(--parliament-blue-dark); font-size: 12px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.dashboard-activity-main small, .dashboard-activity-meta small { color: var(--muted); font-size: 10px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.dashboard-activity-meta { justify-items: end; }
.dashboard-activity-meta b { color: var(--parliament-blue-dark); font-size: 10px; white-space: nowrap; }
.dashboard-content-panels > .dashboard-media-panel { margin: 0; max-width: none; min-width: 0; width: 100%; }
.radio-channels-page { margin: 0 auto; max-width: 1120px; }
.radio-table-page { margin: 0 auto; }
.radio-table-page .vod-streams-heading { gap: 12px; margin-bottom: 14px; }
.radio-table-page .vod-stream-filters { display: flex; flex-wrap: wrap; gap: 10px; }
.radio-table-page .vod-stream-filters .input { width: auto; flex: 1 1 180px; }
.radio-table-page .radio-stream-table { min-width: 1050px; table-layout: auto; }
.radio-table-page .radio-stream-table th, .radio-table-page .radio-stream-table td { width: auto; }
.radio-table-page .radio-stream-table td { height: 52px; }
.radio-table-page .radio-stream-table td small { color: var(--muted); }
.radio-table-page .radio-stream-table th:nth-child(2), .radio-table-page .radio-stream-table td:nth-child(2) { min-width: 180px; text-align: left; }
.radio-table-page .radio-stream-table th:nth-child(8), .radio-table-page .radio-stream-table td:nth-child(8) { min-width: 230px; }
.radio-stream-table tr[hidden] { display: none; }
.radio-stream-table .radio-source-url { max-width: 190px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.radio-stream-table .radio-channel-actions { flex-wrap: wrap; }
.radio-table-page .radio-stream-table .radio-health-error { color: var(--danger); max-width: 240px; max-height: 42px; overflow: auto; white-space: normal; overflow-wrap: anywhere; }
.radio-channels-heading { margin-bottom: 24px; }
.radio-forms-grid { display: grid; gap: 18px; grid-template-columns: repeat(2, minmax(0, 1fr)); }
.radio-create-single-grid { grid-template-columns: minmax(0, 760px); }
.radio-form { display: grid; gap: 12px; }
.radio-form .field { margin: 0; }
.radio-list-card { margin-top: 20px; }
.radio-category-block { border-top: 1px solid var(--line); padding: 18px 0; }
.radio-category-block h3 { color: var(--parliament-blue-dark); margin: 0 0 12px; }
.radio-channel-list { display: grid; gap: 9px; }
.radio-channel-item { align-items: center; border: 1px solid var(--line); border-radius: 11px; display: grid; gap: 12px; grid-template-columns: 42px minmax(0, 1fr) auto; padding: 10px 12px; }
.radio-channel-icon { align-items: center; background: var(--parliament-blue-soft); border-radius: 9px; color: var(--parliament-blue); display: flex; font-size: 20px; height: 42px; justify-content: center; width: 42px; }
.radio-channel-item strong, .radio-channel-item span { display: block; }
.radio-channel-item strong { color: var(--parliament-blue-dark); }
.radio-channel-item div span { color: var(--muted); font-size: 11px; margin-top: 4px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.radio-channel-info { display: grid; gap: 4px; min-width: 0; }
.radio-channel-info > span { margin-top: 0 !important; }
.radio-server-label { color: var(--parliament-blue) !important; font-size: 11px !important; font-weight: 700; }
.radio-channel-actions { align-items: center; display: flex; flex-wrap: wrap; gap: 7px; justify-content: flex-end; }
.radio-health-card { margin-bottom: 16px; }
.radio-health-grid { display: grid; gap: 10px; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); }
.radio-health-item { background: #f8fbfe; border: 1px solid var(--line); border-radius: 11px; display: grid; gap: 5px; padding: 12px; }
.radio-health-item > div { align-items: center; display: flex; gap: 10px; justify-content: space-between; }
.radio-health-item strong { color: var(--parliament-blue-dark); }
.radio-health-item small { color: var(--muted); font-size: 11px; }
.radio-health-error { color: var(--danger) !important; line-height: 1.35; }
.radio-health-ok { color: var(--success) !important; }
.vod-epg-page { margin: 0 auto; max-width: 980px; }
.vod-epg-card, .vod-epg-info-card { margin-bottom: 18px; }
.vod-epg-link-box { background: #f4f9fd; border: 1px solid #c8deeb; border-radius: 11px; display: grid; gap: 7px; margin-top: 18px; padding: 14px; }
.vod-epg-link-box strong { color: var(--parliament-blue-dark); font-size: 13px; }
.vod-epg-link-box code { background: #fff; border: 1px solid var(--line); border-radius: 7px; color: var(--parliament-blue-dark); display: block; font-size: 12px; overflow-wrap: anywhere; padding: 9px; }
.vod-epg-link-box small { color: var(--muted); font-size: 11px; line-height: 1.45; }
.vod-epg-updated { font-size: 11px; margin: 12px 0 0; }
.vod-epg-info-card h2 { color: var(--parliament-blue-dark); font-size: 16px; margin-top: 0; }
.vod-epg-info-card ul { color: var(--muted); display: grid; gap: 7px; font-size: 12px; line-height: 1.45; margin: 0; padding-left: 20px; }
.vod-epg-button { align-items: center; background: var(--parliament-blue-soft); border: 1px solid #c8deeb; border-radius: 7px; color: var(--parliament-blue-dark); display: inline-flex; font-size: 10px; font-weight: 800; height: 27px; justify-content: center; padding: 0 7px; text-decoration: none; }
.vod-epg-button:hover { background: #dceefa; }
.radio-template-actions { align-items: center; display: flex; gap: 7px; }
.radio-status { align-items: center; display: inline-flex !important; font-size: 11px !important; font-weight: 800; gap: 6px; text-transform: uppercase; }
.radio-status i { background: #8a98a5; border-radius: 50%; display: inline-block; height: 7px; width: 7px; }
.radio-status-running { color: var(--success); }
.radio-status-running i { background: var(--success); box-shadow: 0 0 0 3px #e9f8ef; }
.radio-status-error { color: var(--danger); }
.radio-status-error i { background: var(--danger); box-shadow: 0 0 0 3px #fff0ef; }
.system-center-page { margin: 0 auto; max-width: 1280px; }
.system-center-heading { align-items: flex-end; display: flex; gap: 18px; justify-content: space-between; margin-bottom: 20px; }
.system-center-heading h1 { color: var(--parliament-blue-dark); margin: 5px 0; }
.system-center-heading p { margin: 0; }
.system-center-summary { align-items: center; background: #f6faff; border: 1px solid var(--line); border-radius: 12px; color: var(--muted); display: flex; flex-wrap: wrap; gap: 20px; margin-bottom: 18px; padding: 12px 15px; }
.system-center-summary span { font-size: 13px; font-weight: 750; }
.system-health-grid { display: grid; gap: 14px; grid-template-columns: repeat(4, minmax(0, 1fr)); margin-bottom: 18px; }
.system-health-card { align-items: center; background: #fff; border: 1px solid var(--line); border-radius: 14px; box-shadow: 0 8px 22px rgba(17,42,70,.06); display: grid; gap: 10px; grid-template-columns: 42px minmax(0,1fr); padding: 14px; }
.system-health-card small { color: var(--muted); font-size: 10px; grid-column: 1 / -1; }
.system-health-card strong { color: var(--parliament-blue-dark); }
.system-health-card p { color: var(--muted); font-size: 11px; margin: 4px 0 0; }
.system-health-card p b { color: var(--parliament-blue); font-size: 18px; }
.system-health-icon { align-items: center; background: var(--parliament-blue-soft); border-radius: 11px; color: var(--parliament-blue); display: flex; font-size: 20px; height: 42px; justify-content: center; width: 42px; }
.system-center-card { margin-bottom: 18px; }
.system-alert-card { margin-bottom: 18px; }
.system-alert-list { display: grid; gap: 8px; }
.system-alert-row { align-items: flex-start; background: #fffaf0; border: 1px solid #f0d58f; border-radius: 10px; display: flex; gap: 10px; padding: 10px 12px; }
.system-alert-row.is-error { background: #fff3f1; border-color: #efc4bf; }
.system-alert-dot { background: #d69d12; border-radius: 50%; flex: 0 0 9px; height: 9px; margin-top: 5px; width: 9px; }
.system-alert-row.is-error .system-alert-dot { background: var(--danger); }
.system-alert-row strong { color: var(--parliament-blue-dark); font-size: 12px; }
.system-alert-row p { color: var(--muted); font-size: 11px; line-height: 1.4; margin: 3px 0 0; }
.system-alert-empty { background: #eefaf3; border: 1px solid #bfe4cb; border-radius: 10px; color: #187447; font-size: 13px; padding: 13px; }
.system-server-grid { display: grid; gap: 12px; grid-template-columns: repeat(auto-fit, minmax(330px, 1fr)); }
.system-server-card { border: 1px solid var(--line); border-radius: 12px; padding: 14px; }
.system-server-title { align-items: center; display: flex; gap: 9px; }
.system-server-title h3 { color: var(--parliament-blue-dark); font-size: 15px; margin: 0; }
.system-server-title p { color: var(--muted); font-size: 11px; margin: 3px 0 0; }
.system-server-health { color: var(--success); font-size: 11px; font-weight: 800; margin-left: auto; }
.system-server-metrics { display: grid; gap: 8px; grid-template-columns: repeat(3, 1fr); margin-top: 15px; }
.system-server-metrics span { background: #f7fafc; border-radius: 8px; color: var(--parliament-blue); font-size: 12px; padding: 8px; }
.system-server-metrics b { color: var(--muted); display: block; font-size: 10px; margin-bottom: 3px; }
.system-error { color: var(--danger); display: block; font-size: 11px; line-height: 1.35; margin-top: 10px; }
.system-process-grid { display: grid; gap: 14px; grid-template-columns: repeat(3, minmax(0,1fr)); }
.system-process-card { border: 1px solid var(--line); border-radius: 11px; padding: 12px; }
.system-process-card h3 { color: var(--parliament-blue-dark); font-size: 14px; margin: 0 0 9px; }
.system-process-row { align-items: center; border-top: 1px solid #edf2f6; display: flex; gap: 10px; justify-content: space-between; padding: 9px 0; }
.system-process-row b, .system-process-row small { display: block; }
.system-process-row b { color: var(--ink); font-size: 12px; max-width: 190px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.system-process-row small { color: var(--muted); font-size: 10px; margin-top: 3px; }
.system-process-row strong { font-size: 10px; white-space: nowrap; }
.system-state-running { color: var(--success); }.system-state-queued { color: #a87800; }.system-state-failed { color: var(--danger); }
@media (max-width: 900px) { .system-health-grid { grid-template-columns: repeat(2, minmax(0,1fr)); }.system-process-grid { grid-template-columns: 1fr; } }
@media (max-width: 600px) { .system-center-heading { align-items: stretch; flex-direction: column; }.system-health-grid { grid-template-columns: 1fr; }.system-server-grid { grid-template-columns: 1fr; }.system-server-metrics { grid-template-columns: repeat(2,1fr); } }
.radio-edit-card { max-width: 760px; }
.radio-edit-actions { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 8px; }
.dashboard-media-panel .section-heading { margin-bottom: 14px; }
.dashboard-media-panel .section-heading h2 { font-size: clamp(20px, 2.5vw, 28px); }
.dashboard-count-badge { background: var(--parliament-blue-soft); border-radius: 999px; color: var(--parliament-blue-dark); font-size: 11px; font-weight: 800; padding: 7px 10px; white-space: nowrap; }
.dashboard-media-list { display: grid; gap: 9px; }
.dashboard-media-item { align-items: center; background: #fff; border: 1px solid var(--line); border-radius: 11px; display: grid; gap: 11px; grid-template-columns: 44px minmax(0, 1fr); padding: 8px 10px; }
.dashboard-media-item img, .dashboard-media-placeholder { background: var(--parliament-blue-soft); border-radius: 7px; color: var(--parliament-blue-dark); display: grid; font-size: 10px; font-weight: 800; height: 54px; object-fit: cover; place-items: center; width: 44px; }
.dashboard-media-info { display: grid; gap: 4px; min-width: 0; }
.dashboard-media-info strong { color: var(--parliament-blue-dark); font-size: 13px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.dashboard-media-info span { color: var(--muted); font-size: 11px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.weekly-show-items { display: grid; gap: 10px; margin-top: 16px; }
.weekly-show-item { align-items: center; border: 1px solid var(--line); border-radius: 12px; display: grid; gap: 12px; grid-template-columns: 44px minmax(0, 1fr) auto; padding: 10px 12px; }
.weekly-show-item img, .weekly-show-placeholder { background: var(--parliament-blue-soft); border-radius: 8px; color: var(--parliament-blue-dark); display: grid; font-size: 10px; font-weight: 800; height: 52px; object-fit: cover; place-items: center; width: 44px; }
.weekly-show-info { display: grid; gap: 5px; min-width: 0; }
.weekly-show-info strong { font-size: 13px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.weekly-show-info span { color: var(--muted); font-size: 12px; }
.weekly-empty { margin: 12px 0 0; }
.today-shows-panel { background: #fff; border: 1px solid var(--line); border-radius: 16px; box-shadow: var(--shadow); margin: 0 auto 24px; max-width: 1120px; padding: 24px; }
.section-heading { align-items: center; display: flex; gap: 18px; justify-content: space-between; margin-bottom: 18px; }
.section-heading .eyebrow { margin-bottom: 7px; }
.section-heading h2 { color: var(--parliament-blue-dark); font-size: 22px; letter-spacing: -.03em; margin: 0; }
.today-show-grid { display: grid; gap: 14px; grid-template-columns: repeat(auto-fill, minmax(170px, 1fr)); }
.today-show-card { background: #fff; border: 1px solid var(--line); border-radius: 13px; overflow: hidden; }
.today-show-card img, .today-show-placeholder { aspect-ratio: 2 / 3; background: linear-gradient(145deg, var(--parliament-blue-soft), #d5e9f6); color: var(--parliament-blue-dark); display: grid; font-size: 20px; font-weight: 800; object-fit: cover; place-items: center; width: 100%; }
.today-show-info { padding: 12px; }
.today-show-channel { color: var(--parliament-blue); display: block; font-size: 11px; font-weight: 800; letter-spacing: .04em; text-transform: uppercase; }
.today-show-info h3 { color: var(--ink); font-size: 14px; line-height: 1.35; margin: 5px 0 0; }
.today-show-empty { background: var(--parliament-blue-soft); border-radius: 12px; display: grid; gap: 5px; padding: 18px; }
.qr-card { margin: 0 auto; max-width: 680px; text-align: center; }
.qr-card .settings-card-heading { text-align: left; }
.qr-image-wrap { align-items: center; background: #fff; border: 1px solid var(--line); border-radius: 16px; display: flex; justify-content: center; margin: 24px auto; max-width: 390px; padding: 18px; }
.qr-image { display: block; height: auto; max-width: 100%; width: 340px; }
.qr-actions { display: flex; flex-wrap: wrap; gap: 10px; justify-content: center; }
.modal-open { overflow: hidden; }
.qr-modal { align-items: center; display: flex; inset: 0; justify-content: center; padding: 14px; position: fixed; z-index: 1100; }
.qr-modal[hidden] { display: none; }
.qr-modal-backdrop { background: rgba(10, 27, 45, .52); inset: 0; position: absolute; }
.qr-modal-dialog { animation: toast-in .2s ease-out; background: #fff; border: 1px solid var(--line); border-radius: 18px; box-shadow: 0 24px 70px rgba(17,42,70,.28); max-width: 390px; padding: 28px 24px 24px; position: relative; text-align: center; width: 100%; z-index: 1; }
.qr-modal-dialog h2 { color: var(--parliament-blue-dark); font-size: 22px; margin: 0 28px 7px; }
.qr-modal-dialog p { font-size: 13px; margin: 0; }
.qr-modal-close { background: transparent; border: 0; color: var(--muted); cursor: pointer; font-size: 28px; line-height: 1; padding: 2px 8px; position: absolute; right: 10px; top: 9px; }
.qr-modal-close:hover { color: var(--parliament-blue-dark); }
.qr-modal-image-wrap { align-items: center; background: #fff; border: 1px solid var(--line); border-radius: 14px; display: flex; justify-content: center; margin: 18px auto; max-width: 300px; padding: 12px; }
.qr-modal-image { display: block; height: auto; max-width: 100%; width: 260px; }
.settings-divider { align-items: center; color: var(--muted); display: flex; font-size: 12px; gap: 12px; margin: 4px 0 18px; max-width: 680px; }
.settings-divider::before, .settings-divider::after { background: var(--line); content: ""; flex: 1; height: 1px; }
.cookies-textarea { min-height: 160px; padding: 14px; resize: vertical; }
.file-input { padding: 10px 12px; }
.server-balance-card, .managed-servers-card { margin-bottom: 24px; }
.server-balance-notice { background: var(--parliament-blue-soft); border: 1px solid #c9dfed; border-radius: 12px; color: var(--parliament-blue-dark); display: grid; gap: 5px; font-size: 13px; line-height: 1.5; margin-bottom: 24px; padding: 14px 16px; }
.server-balance-error { background: #fff0ef; border: 1px solid #f2c2bd; border-radius: 10px; color: var(--danger); font-size: 13px; line-height: 1.45; margin: 12px 0; padding: 11px 13px; }
.server-balance-form { max-width: none; }
.server-balance-form-grid { display: grid; gap: 16px; grid-template-columns: repeat(2, minmax(0, 1fr)); }
.server-key-field { grid-column: 1 / -1; }
.server-private-key { font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace; font-size: 12px; min-height: 118px; resize: vertical; }
.capability-fieldset { border: 0; margin: 26px 0 18px; padding: 0; }
.capability-fieldset legend { color: var(--parliament-blue-dark); font-size: 14px; font-weight: 800; margin-bottom: 12px; }
.capability-grid { display: grid; gap: 10px; grid-template-columns: repeat(4, minmax(0, 1fr)); }
.capability-option { align-items: flex-start; background: #fbfdff; border: 1px solid var(--line); border-radius: 12px; cursor: pointer; display: flex; gap: 10px; min-height: 74px; padding: 13px; transition: border-color .15s, background .15s; }
.capability-option:hover { background: var(--parliament-blue-soft); border-color: #aacfe5; }
.capability-option input, .gpu-install-option input { position: absolute; opacity: 0; pointer-events: none; }
.capability-check { align-items: center; border: 1px solid #c5d3de; border-radius: 6px; color: transparent; display: flex; flex: 0 0 21px; font-size: 13px; font-weight: 900; height: 21px; justify-content: center; margin-top: 1px; }
.capability-option:has(input:checked) { background: var(--parliament-blue-soft); border-color: var(--parliament-blue); }
.capability-option:has(input:checked) .capability-check { background: var(--parliament-blue); border-color: var(--parliament-blue); color: #fff; }
.capability-option strong, .gpu-install-option strong { color: var(--parliament-blue-dark); display: block; font-size: 13px; }
.capability-option small, .gpu-install-option small { color: var(--muted); display: block; font-size: 11px; line-height: 1.4; margin-top: 4px; }
.gpu-install-option { align-items: flex-start; background: #fff8e8; border: 1px solid #f1d99b; border-radius: 12px; cursor: pointer; display: flex; gap: 10px; margin-bottom: 22px; padding: 13px 15px; }
.gpu-install-option::before { border: 1px solid #d4b66b; border-radius: 6px; content: '✓'; color: transparent; display: flex; flex: 0 0 21px; font-size: 13px; font-weight: 900; height: 21px; justify-content: center; margin-top: 1px; }
.gpu-install-option:has(input:checked)::before { background: #b27a00; border-color: #b27a00; color: #fff; }
.managed-servers-card { padding-bottom: 26px; }
.server-list-heading { align-items: center; display: flex; gap: 15px; justify-content: space-between; margin-bottom: 18px; }
.server-list-heading h2 { color: var(--parliament-blue-dark); font-size: 21px; letter-spacing: -.03em; margin: 0 0 5px; }
.server-list-heading p { font-size: 13px; margin: 0; }
.server-count-badge { background: var(--parliament-blue-soft); border-radius: 999px; color: var(--parliament-blue-dark); font-size: 12px; font-weight: 800; padding: 8px 12px; white-space: nowrap; }
.managed-server-list { display: grid; gap: 13px; }
.managed-server-empty { background: #fbfdff; border: 1px dashed #cbd8e1; border-radius: 12px; color: var(--muted); font-size: 13px; padding: 22px; text-align: center; }
.managed-server-card { border: 1px solid var(--line); border-left: 4px solid #8aa9bd; border-radius: 14px; padding: 16px; }
.managed-server-card.is-ready { border-left-color: var(--success); }
.managed-server-card.is-error { border-left-color: var(--danger); }
.managed-server-card.is-queued { border-left-color: #d39c24; }
.managed-server-top { align-items: flex-start; display: flex; gap: 14px; justify-content: space-between; }
.managed-server-title { align-items: center; display: flex; flex-wrap: wrap; gap: 8px; }
.managed-server-title h3 { color: var(--parliament-blue-dark); font-size: 16px; margin: 0; }
.server-status-dot { background: #8aa9bd; border-radius: 50%; height: 9px; width: 9px; }
.is-ready .server-status-dot { background: var(--success); }
.is-error .server-status-dot { background: var(--danger); }
.is-queued .server-status-dot { background: #d39c24; }
.server-status-label { background: #eef3f6; border-radius: 999px; color: var(--muted); font-size: 10px; font-weight: 800; padding: 4px 8px; }
.is-ready .server-status-label { background: #e9f8ef; color: var(--success); }
.is-error .server-status-label { background: #fff0ef; color: var(--danger); }
.managed-server-host { color: var(--muted); font-size: 12px; margin: 6px 0 0; }
.managed-server-actions { align-items: center; display: flex; flex-wrap: wrap; gap: 7px; justify-content: flex-end; }
.managed-server-actions form { margin: 0; }
.managed-server-progress { background: #edf2f5; border-radius: 999px; height: 8px; margin-top: 16px; overflow: hidden; }
.managed-server-progress-bar { background: linear-gradient(90deg, var(--parliament-blue), #3b9bd0); border-radius: inherit; height: 100%; transition: width .35s ease; }
.is-ready .managed-server-progress-bar { background: var(--success); }
.is-error .managed-server-progress-bar { background: var(--danger); }
.managed-server-progress-meta { color: var(--muted); display: flex; font-size: 11px; gap: 15px; justify-content: space-between; margin-top: 7px; }
.managed-server-progress-meta strong { color: var(--parliament-blue-dark); }
.managed-server-details { border-top: 1px solid var(--line); display: grid; gap: 16px; grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr); margin-top: 14px; padding-top: 13px; }
.managed-server-details small { color: var(--muted); display: block; font-size: 11px; font-weight: 800; margin-bottom: 7px; }
.managed-server-details p { color: var(--ink); font-size: 12px; line-height: 1.45; margin: 0; }
.capability-tags { display: flex; flex-wrap: wrap; gap: 5px; }
.capability-tag { background: var(--parliament-blue-soft); border-radius: 6px; color: var(--parliament-blue-dark); font-size: 10px; font-weight: 800; padding: 5px 7px; }
.fingerprint-line { color: var(--muted); font-size: 10px; margin-top: 13px; overflow-wrap: anywhere; }
.fingerprint-line code { color: var(--parliament-blue-dark); }
.server-log { border-top: 1px solid var(--line); margin-top: 13px; padding-top: 11px; }
.server-log summary { color: var(--parliament-blue-dark); cursor: pointer; font-size: 12px; font-weight: 800; }
.server-log-actions { align-items: center; display: flex; flex-wrap: wrap; gap: 8px; margin-top: 10px; }
.server-log-actions [data-log-feedback] { color: var(--muted); font-size: 11px; }
.server-log pre { background: #102235; border-radius: 9px; color: #d7e8f5; font-size: 10px; line-height: 1.5; margin: 10px 0 0; max-height: 220px; overflow: auto; padding: 12px; white-space: pre-wrap; }

@media (max-width: 780px) {
  .page-shell { padding: 18px; }
  .topbar { min-height: 62px; }
  .auth-layout { border-radius: 16px; grid-template-columns: 1fr; }
  .intro-panel { padding: 30px 24px; }
  .intro-panel .logo-mark { margin-bottom: 30px; }
  .feature-list { gap: 8px; margin-top: 28px; }
  .form-panel { padding: 28px 22px; }
  .global-toolbar { border-bottom: 1px solid #d7e4ef; border-right: 0; box-shadow: 0 12px 28px rgba(17,42,70,.14); height: auto; left: 0; max-height: calc(100vh - 62px); top: 62px; transform: translateY(-110%); width: 100%; }
  .global-toolbar.is-open { transform: translateY(0); }
  .global-toolbar + .nav-overlay + .page-shell { margin-left: 0; max-width: none; }
  .toolbar-menu { max-height: calc(100vh - 126px); overflow-x: hidden; overflow-y: auto; }
  .toolbar-scroll { padding-bottom: 4px; }
  .nav-overlay { inset: 62px 0 0; }
  .toolbar-button { text-align: left; width: 100%; }
  .server-stats-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .stats-grid { grid-template-columns: 1fr; }
  .dashboard-activity-grid { grid-template-columns: 1fr; }
  .appearance-section-grid { grid-template-columns: 1fr; }
  .settings-heading { align-items: stretch; flex-direction: column; gap: 18px; }
  .settings-heading .button { align-self: flex-start; }
  .transcode-accelerator-grid, .transcode-form-grid, .transcode-check-grid { grid-template-columns: 1fr; }
  .transcode-wide-field { grid-column: auto; }
  .transcode-layout { grid-template-columns: 1fr; }
  .transcode-queue-heading { align-items: flex-start; flex-direction: column; }
  .transcode-queue-actions { justify-content: flex-start; }
  .transcode-overlay-grid { grid-template-columns: 1fr; }
  .transcode-overlay-wide { grid-column: auto; }
  .transcode-report-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .transcode-page-actions { margin-left: 0; }
  .transcode-profile-list-card { align-items: start; grid-template-columns: 72px minmax(0, 1fr); }
  .transcode-profile-logo { height: 64px; width: 72px; }
  .transcode-profile-actions { grid-column: 1 / -1; justify-content: flex-start; }
  .client-item { align-items: stretch; grid-template-columns: 1fr; }
  .client-actions { justify-content: flex-start; }
  .section-heading { align-items: flex-start; flex-direction: column; }
  .weekly-show-item { grid-template-columns: 44px minmax(0, 1fr); }
  .dashboard-content-panels { grid-template-columns: 1fr; }
  .dashboard-system-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .radio-forms-grid { grid-template-columns: 1fr; }
  .radio-channel-item { align-items: start; grid-template-columns: 42px minmax(0, 1fr); }
  .radio-channel-item > .radio-channel-actions { grid-column: 2; }
  .weekly-show-item form { grid-column: 1 / -1; }
  .series-create-form, .season-create-form { align-items: stretch; flex-direction: column; }
  .series-title-field, .season-create-form .field { max-width: none; width: 100%; }
  .series-create-form .button, .season-create-form .button { align-self: flex-start; }
  .series-list-controls { align-items: stretch; flex-direction: column; }
  .series-search-field { max-width: none; }
  .series-view-switch { align-self: flex-start; }
  .series-detail-hero { grid-template-columns: 96px minmax(0, 1fr); padding: 16px; }
  .series-detail-hero img, .series-detail-placeholder { width: 96px; }
  .series-detail-info h1 { font-size: 26px; }
  .live-category-create-form { align-items: stretch; flex-direction: column; }
  .live-category-create-form .button { align-self: flex-start; }
  .live-category-hero { align-items: flex-start; grid-template-columns: 58px minmax(0, 1fr); padding: 16px; }
  .live-category-folder-large { height: 58px; width: 58px; }
  .live-category-hero > form { grid-column: 1 / -1; }
  .vod-channel-create-form { align-items: stretch; flex-direction: column; }
  .vod-channel-create-form .button { align-self: flex-start; }
  .vod-streams-heading { align-items: flex-start; flex-direction: column; gap: 14px; }
  .vod-streams-top-actions { flex-wrap: wrap; }
  .vod-stream-filters { grid-template-columns: 1fr; gap: 9px; }
  .vod-stream-show { justify-content: flex-start; }
  .vod-stream-table { min-width: 1180px; }
  .vod-channel-section-heading, .vod-channel-detail-heading { align-items: flex-start; flex-direction: column; }
  .vod-channel-control-group { justify-content: flex-start; }
  .vod-channel-now-playing { grid-template-columns: 52px minmax(0, 1fr); }
  .vod-channel-url { border-left: 0; border-top: 1px solid var(--line); grid-column: 1 / -1; padding-left: 0; padding-top: 14px; }
  .vod-channel-main-layout { grid-template-columns: 1fr; }
  .vod-channel-main-layout > .vod-channel-top-panels > .vod-channel-schedule-card { grid-column: 1; grid-row: 1; }
  .vod-channel-main-layout > .vod-channel-top-panels > .vod-channel-now-playing { grid-column: 1; grid-row: 2; }
  .vod-channel-main-layout > .vod-channel-columns > .vod-channel-source-card { grid-column: 1; grid-row: 3; }
  .vod-channel-main-layout > .vod-channel-columns > .vod-channel-playlist-card { grid-column: 1; grid-row: 4; }
  .vod-channel-top-panels { grid-template-columns: 1fr; }
  .vod-channel-top-panels > .vod-channel-schedule-card { grid-column: 1; grid-row: 1; }
  .vod-channel-top-panels > .vod-channel-now-playing { grid-column: 1; grid-row: 2; }
  .now-playing-media { grid-template-columns: 120px minmax(0, 1fr); }
  .now-playing-cover { height: 170px; width: 120px; }
  .vod-channel-top-panels .vod-channel-now-playing { grid-template-columns: minmax(0, 1fr); }
  .vod-channel-schedule-card { padding: 16px; }
  .vod-channel-playlist-heading-tools { align-items: stretch; justify-content: flex-start; width: 100%; }
  .vod-channel-playlist-search { flex: 1 1 190px; }
  .vod-channel-schedule-card form.form-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .vod-channel-schedule-card .schedule-days { grid-column: 1 / -1; }
  .vod-channel-schedule-card form.form-grid > div:last-child { grid-column: 1; grid-row: auto; }
  .vod-channel-asset-row, .vod-channel-playlist-row { grid-template-columns: 38px minmax(0, 1fr); }
  .vod-channel-asset-row { grid-template-columns: 20px 30px minmax(0, 1fr); }
  .vod-channel-playlist-row { grid-template-columns: 30px minmax(0, 1fr); }
  .vod-channel-asset-row > form, .vod-channel-row-actions { grid-column: 2; justify-content: flex-start; }
  .playlist-timing-form { align-items: end; }
  .bouquets-heading, .bouquet-detail-heading { align-items: flex-start; flex-direction: column; }
  .bouquet-detail-heading .button { align-self: flex-start; }
  .bouquet-form-main { grid-template-columns: 1fr; }
  .bouquet-form-options { align-items: stretch; flex-direction: column; gap: 8px; }
  .bouquet-form-options .field { max-width: none; }
  .bouquet-active-checkbox { min-height: 38px; }
  .bouquet-category-groups { grid-template-columns: 1fr; }
  .iptv-user-fields { grid-template-columns: 1fr; }
  .iptv-bouquet-picker-heading { align-items: flex-start; flex-direction: column; }
  .iptv-link-box { align-items: stretch; flex-direction: column; }
  .iptv-link-box .button { align-self: flex-start; }
  .iptv-users-list-heading { align-items: stretch; flex-direction: column; }
  .iptv-users-top-actions { justify-content: flex-start; }
  .iptv-users-filter-bar { grid-template-columns: 1fr 1fr; }
  .iptv-users-search-field { grid-column: 1 / -1; }
  .iptv-users-show-field { justify-content: flex-start; }
  .iptv-users-table-meta { align-items: flex-start; flex-direction: column; gap: 4px; }
  .iptv-users-table-wrap { padding-left: 10px; padding-right: 10px; }
  .iptv-user-statistics-heading { align-items: flex-start; flex-direction: column; }
  .iptv-user-stat-cards { grid-template-columns: 1fr; }
  .iptv-watch-analytics-card .settings-card-heading { align-items: flex-start; flex-wrap: wrap; }
  .iptv-watch-total { margin-left: 0; }
  .iptv-user-history-card { padding: 16px; }
  .season-file-hero { align-items: flex-start; grid-template-columns: 58px minmax(0, 1fr); padding: 16px; }
  .season-file-icon { font-size: 14px; height: 58px; width: 58px; }
  .season-file-hero .count-badge { grid-column: 1 / -1; justify-self: flex-start; }
  .episode-list-card { padding: 12px; }
  .episode-table-wrap { overflow: visible; }
  .episode-table, .episode-table tbody, .episode-table tr, .episode-table td { display: block; min-width: 0; width: 100%; }
  .episode-table thead { display: none; }
  .episode-table tr { border: 1px solid var(--line); border-radius: 12px; margin-bottom: 12px; padding: 8px 12px; }
  .episode-table tr:last-child { margin-bottom: 0; }
  .episode-table td { align-items: center; border-bottom: 1px solid var(--line); display: grid; gap: 12px; grid-template-columns: minmax(110px, 40%) minmax(0, 1fr); padding: 10px 0; white-space: normal; }
  .episode-table td:last-child { border-bottom: 0; }
  .episode-table td::before { color: var(--muted); content: attr(data-label); font-size: 11px; font-weight: 750; }
  .episode-table td:first-child { min-width: 0; }
  .episode-table td:first-child small { max-width: 100%; }
  .episode-actions { justify-content: flex-start; }
  .movie-create-form, .movie-rename-form, .movie-upload-form { align-items: stretch; flex-direction: column; }
  .movie-create-form .button, .movie-rename-form .button, .movie-upload-form .button { align-self: flex-start; }
  .movies-list-heading { align-items: stretch; flex-direction: column; }
  .movie-category-create { align-self: flex-start; }
  .movie-category-create .movie-create-form { max-width: min(360px, calc(100vw - 36px)); }
  .movies-filter-bar { grid-template-columns: 1fr 1fr; }
  .movies-search-field { grid-column: 1 / -1; }
  .movies-show-field { justify-content: flex-start; }
  .movies-table-meta { align-items: flex-start; flex-direction: column; gap: 4px; }
  .movies-table-wrap { padding-left: 10px; padding-right: 10px; }
  .movie-folder-hero { align-items: flex-start; grid-template-columns: 64px minmax(0, 1fr); padding: 16px; }
  .movie-folder-icon-large { height: 64px; width: 64px; }
  .movie-folder-actions { grid-column: 1 / -1; justify-content: flex-start; }
  .downloader-grid { grid-template-columns: 1fr; }
  .downloader-queue-heading { align-items: flex-start; flex-direction: column; }
  .downloader-queue-heading form { align-self: flex-start; }
  .server-list-heading { align-items: flex-start; flex-direction: column; }
  .server-list-heading .button { align-self: flex-start; }
  .server-list-card-top { flex-direction: column; }
  .server-list-actions { justify-content: flex-start; }
  .server-metrics-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .server-edit-form-grid { grid-template-columns: 1fr; }
  .server-edit-key-field { grid-column: auto; }
  .server-balance-form-grid, .capability-grid { grid-template-columns: 1fr; }
  .server-key-field { grid-column: auto; }
  .managed-server-top { flex-direction: column; }
  .managed-server-actions { justify-content: flex-start; }
  .managed-server-details { grid-template-columns: 1fr; }
}

@media (min-width: 781px) and (max-width: 1024px) {
  .global-toolbar { height: calc(100vh - 72px); top: 72px; transform: translateX(-100%); width: min(300px, 88vw); }
  .global-toolbar.is-open { transform: translateX(0); }
  .global-toolbar + .nav-overlay + .page-shell { margin-left: 0; max-width: none; }
  .nav-overlay { inset: 72px 0 0; }
  .toolbar-button { text-align: left; width: 100%; }
  .downloader-grid { grid-template-columns: 1fr; }
  .server-metrics-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

@media (max-width: 540px) {
  .movies-filter-bar { grid-template-columns: 1fr; }
  .movies-search-field { grid-column: auto; }
  .iptv-users-filter-bar { grid-template-columns: 1fr; }
  .iptv-users-search-field { grid-column: auto; }
  .server-stats-grid { grid-template-columns: 1fr; }
  .dashboard-system-panel { padding: 16px; }
  .dashboard-system-actions { align-items: flex-end; flex-direction: column; }
  .dashboard-system-grid { grid-template-columns: 1fr; }
  .server-metrics-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 420px) {
  .topbar { min-height: 62px; padding: 0 16px; }
  .brand { font-size: 15px; }
  .button-light { font-size: 12px; min-height: 34px; padding: 0 12px; }
  .toast-stack { bottom: 14px; left: 14px; right: 14px; width: auto; }
}

/* Stream menu v03: mobile and tablet always open as a full-width top drawer. */
@media (max-width: 1024px) {
  .global-toolbar {
    background: #000 !important;
    border: 0 !important;
    border-bottom: 1px solid #303030 !important;
    border-radius: 0 0 20px 20px;
    box-shadow: 0 18px 38px rgba(0, 0, 0, .38) !important;
    height: auto !important;
    left: 0 !important;
    max-height: calc(100vh - 62px) !important;
    padding: 12px 14px 16px !important;
    right: 0 !important;
    top: 62px !important;
    transform: translateY(-115%) !important;
    width: 100% !important;
  }
  .global-toolbar.is-open { transform: translateY(0) !important; }
  .toolbar-sidebar-heading { align-items: center; display: flex !important; font-size: 12px; padding: 2px 6px 12px; }
  .toolbar-menu { max-height: calc(100vh - 128px) !important; overflow-x: hidden !important; overflow-y: auto !important; }
  .toolbar-scroll { display: grid !important; gap: 8px !important; grid-template-columns: repeat(2, minmax(0, 1fr)); padding: 0 2px 3px; }
  .toolbar-scroll > .toolbar-button,
  .toolbar-scroll > .toolbar-dropdown { min-width: 0; width: 100%; }
  .toolbar-scroll > .toolbar-button,
  .toolbar-dropdown-toggle {
    background: #111 !important;
    border: 1px solid #333 !important;
    border-radius: 14px !important;
    box-shadow: 0 4px 12px rgba(0, 0, 0, .24);
    color: #f3f4f6 !important;
    min-height: 48px !important;
    padding: 0 13px !important;
  }
  .toolbar-scroll > .toolbar-button:hover,
  .toolbar-dropdown-toggle:hover { background: #292929 !important; border-color: #555 !important; color: #fff !important; transform: translateY(-1px); }
  .toolbar-scroll > .toolbar-button.active,
  .toolbar-dropdown-toggle.active { background: linear-gradient(135deg, #006da9, #004570) !important; border-color: #004570 !important; color: #fff !important; }
  .toolbar-dropdown { display: block !important; position: relative; }
  .toolbar-dropdown.is-open { grid-column: 1 / -1; }
  .toolbar-dropdown-menu { background: transparent; display: none; gap: 7px; grid-column: 1 / -1; padding: 8px 0 0 12px; }
  .toolbar-dropdown.is-open .toolbar-dropdown-menu { display: grid; }
  .toolbar-dropdown-menu .toolbar-button { background: #111; border: 1px solid #333; border-radius: 12px; color: #f3f4f6; min-height: 42px; width: 100%; }
  .toolbar-dropdown-menu .toolbar-button.active { background: linear-gradient(135deg, #1685bd, #075780); border-color: #075780; color: #fff; }
  .nav-overlay { inset: 62px 0 0 !important; }
}

/* Stream menu v04: prevent the submenu from being clipped or painted behind
   the page content. The navigation is intentionally the top stacking layer. */
.global-toolbar { overflow: visible !important; z-index: 2000 !important; }
.toolbar-menu,
.toolbar-scroll,
.toolbar-dropdown,
.toolbar-dropdown-menu { overflow: visible !important; }
.toolbar-dropdown { isolation: isolate; z-index: 1; }
.toolbar-dropdown.is-open { z-index: 3000; }
.toolbar-dropdown-menu { position: relative; z-index: 3100; }

@media (min-width: 1025px) {
  .panel-menu-top .global-toolbar { overflow: visible !important; z-index: 2000 !important; }
  .panel-menu-top .toolbar-menu,
  .panel-menu-top .toolbar-scroll { overflow: visible !important; }
  .panel-menu-top .toolbar-dropdown-menu {
    background: #000;
    border: 1px solid #303030;
    border-radius: 11px;
    box-shadow: 0 18px 38px rgba(0,0,0,.35);
    position: absolute;
    z-index: 3100 !important;
  }
}

@media (max-width: 1024px) {
  .global-toolbar { overflow: visible !important; }
  .toolbar-menu { max-height: none !important; overflow: visible !important; }
  .toolbar-scroll { overflow: visible !important; }
  .toolbar-dropdown-menu { position: relative; z-index: 3100 !important; }
}
/* GitHub release update UI */
.update-alert{display:flex;align-items:center;gap:10px;margin:12px auto 0;width:min(1200px,calc(100% - 32px));padding:12px 16px;border:1px solid #b9d5f4;border-radius:12px;background:#edf6ff;color:#153e6d;font-size:.94rem}
.update-alert[hidden]{display:none}
.update-alert-icon{display:grid;place-items:center;width:28px;height:28px;border-radius:50%;background:#d7eaff;font-size:1.1rem}
.update-alert a{margin-left:auto;color:#0759a6;font-weight:700;text-decoration:none}
.update-alert a:hover{text-decoration:underline}
.update-card{max-width:860px;padding:26px;border:1px solid #e2e8f0;border-radius:18px;background:#fff;box-shadow:0 12px 34px rgba(18,42,74,.07)}
.update-card-top{display:flex;align-items:center;gap:10px;margin-bottom:22px;font-weight:700}
.update-status-dot{width:11px;height:11px;border-radius:50%;background:#94a3b8}
.update-status-dot[data-state="available"]{background:#16a34a;box-shadow:0 0 0 5px #dcfce7}
.update-status-dot[data-state="current"]{background:#2563eb;box-shadow:0 0 0 5px #dbeafe}
.update-status-dot[data-state="warning"]{background:#d97706;box-shadow:0 0 0 5px #fef3c7}
.update-status-dot[data-state="error"]{background:#dc2626;box-shadow:0 0 0 5px #fee2e2}
.update-version-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.update-version-grid>div{padding:16px;border-radius:12px;background:#f8fafc}
.update-version-grid span{display:block;margin-bottom:7px;color:#64748b;font-size:.85rem}
.update-version-grid strong{color:#132238;font-size:1.2rem}
.update-message{margin:20px 0;color:#475569;line-height:1.55}
.update-release-notes{max-height:240px;overflow:auto;white-space:pre-wrap;margin:16px 0;padding:16px;border:1px solid #e2e8f0;border-radius:12px;background:#f8fafc;color:#334155;font-size:.92rem}
.update-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:18px}
.update-job-status{margin-top:18px;padding:12px 14px;border-radius:10px;background:#eef2ff;color:#273b75}
.update-safety-status{margin:14px 0;padding:12px 14px;border:1px solid #f59e0b;border-radius:10px;background:#fffbeb;color:#92400e;line-height:1.5}
.update-help{max-width:860px;margin-top:18px;padding:16px 18px;border:1px solid #e2e8f0;border-radius:12px;background:#fff}
.update-help summary{cursor:pointer;font-weight:700;color:#19365a}
.update-help p{color:#475569;line-height:1.55}
@media(max-width:600px){.update-alert{align-items:flex-start;flex-wrap:wrap}.update-alert a{width:100%;margin-left:38px}.update-card{padding:18px}.update-version-grid{grid-template-columns:1fr}.page-updates .page-heading{align-items:flex-start;gap:12px;flex-direction:column}}

/* Profile menu update entry and availability badge */
.account-menu-toggle { position: relative; }
.account-update-indicator { align-items: center; background: #dc2626; border: 2px solid #fff; border-radius: 50%; box-shadow: 0 2px 7px rgba(127, 29, 29, .28); color: #fff; display: inline-flex; font-size: 11px; font-weight: 900; height: 18px; justify-content: center; line-height: 1; position: absolute; right: -5px; top: -5px; width: 18px; z-index: 2; }
.account-update-indicator[hidden] { display: none; }
.account-menu-update { align-items: center; color: var(--ink, #132238); display: flex; gap: 9px; text-decoration: none; }
.account-menu-update:hover, .account-menu-update.active { background: #edf6ff; color: #0759a6; }
.account-menu-update.has-update { color: #9f1239; font-weight: 800; }

.iptv-user-action-button.action-download { background: #147d64; }
.iptv-user-action-button:disabled { cursor: wait; opacity: .65; }
.iptv-m3u-create-actions { align-items: center; display: flex; flex-wrap: wrap; gap: 8px; margin-top: 12px; }

 
/* System Center local health v01 */
.system-host-grid { display: grid; gap: 10px; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); }
.system-host-card { background: #fff; border: 1px solid var(--line); border-radius: 11px; display: grid; gap: 8px; min-width: 0; padding: 12px; }
.system-host-card-heading { align-items: center; display: flex; gap: 8px; justify-content: space-between; }
.system-host-card-heading strong { color: var(--parliament-blue-dark); font-size: 12px; }
.system-host-card small { color: var(--muted); font-size: 10px; line-height: 1.4; overflow-wrap: anywhere; }
.system-host-state { align-items: center; display: inline-flex; font-size: 10px; font-weight: 800; gap: 5px; white-space: nowrap; }
.system-host-state i { background: #94a3b8; border-radius: 50%; height: 8px; width: 8px; }
.system-host-state.ok { color: #177245; }.system-host-state.ok i { background: #19a464; }
.system-host-state.warning { color: #966900; }.system-host-state.warning i { background: #d69d12; }
.system-host-state.error { color: #b42318; }.system-host-state.error i { background: #dc3f35; }
.system-host-state.neutral { color: var(--muted); }
.system-disk-bar { background: #e9f0f5; border-radius: 999px; height: 8px; overflow: hidden; }
.system-disk-bar i { background: #20855a; border-radius: inherit; display: block; height: 100%; }
.system-disk-bar.is-warning i { background: #d69d12; }.system-disk-bar.is-critical i { background: #dc3f35; }
.system-host-path { color: #8293a2 !important; }
@media (max-width: 600px) { .system-host-grid { grid-template-columns: 1fr; }.system-host-card-heading { align-items: flex-start; flex-direction: column; } }


/* Playlist health check */
.vod-channel-playlist-heading-tools { flex-wrap: wrap; }
.playlist-health-button { white-space: nowrap; }
.playlist-health-status { color: var(--muted); font-size: .82rem; min-width: 100%; }
.playlist-health-badge {
  display: inline-flex;
  width: fit-content;
  margin-top: .3rem;
  padding: .18rem .48rem;
  border-radius: 999px;
  font-size: .72rem;
  font-weight: 700;
}
.playlist-health-badge.is-ok { color: #12643c; background: #e7f6ed; }
.playlist-health-badge.is-warning { color: #805500; background: #fff4d6; }
.playlist-health-badge.is-error { color: #9f221b; background: #fde9e7; }


/* Playlist health filters and visible explanations */
.playlist-health-filters {
  display: flex;
  flex-wrap: wrap;
  gap: .4rem;
  width: 100%;
}
.playlist-health-filter {
  border: 1px solid var(--line);
  border-radius: 999px;
  background: var(--white);
  color: var(--ink);
  padding: .35rem .65rem;
  font: inherit;
  font-size: .78rem;
  cursor: pointer;
}
.playlist-health-filter.is-active {
  color: var(--parliament-blue-dark);
  background: var(--parliament-blue-soft);
  border-color: var(--parliament-blue);
}
.playlist-health-filter span {
  font-weight: 700;
  margin-left: .15rem;
}
.playlist-health-detail {
  color: var(--muted);
  display: block;
  font-size: .8rem;
  line-height: 1.35;
  overflow: visible;
  text-overflow: clip;
  white-space: normal;
}
.playlist-health-button:disabled { opacity: .65; cursor: wait; }


/* Playback skip error history */
.vod-channel-playback-errors {
  margin: 0 0 14px;
  padding: 11px 14px;
  border: 1px solid var(--line);
  border-radius: 10px;
  background: #fbfcfe;
}
.vod-channel-playback-errors summary {
  color: var(--ink);
  cursor: pointer;
  font-size: .9rem;
  font-weight: 700;
}
.vod-channel-playback-errors ul {
  display: grid;
  gap: 8px;
  margin: 10px 0 0;
  padding-left: 20px;
}
.vod-channel-playback-errors li {
  display: grid;
  gap: 3px;
  min-width: 0;
  color: var(--muted);
  font-size: .8rem;
  overflow-wrap: anywhere;
}
.vod-channel-playback-errors li strong { color: var(--ink); }
.vod-channel-playback-errors li time { font-size: .72rem; }


/* Downloader M3U bulk import */
.downloader-m3u-card {
  grid-column: 1 / -1;
  margin-bottom: 22px;
}
.downloader-m3u-inputs {
  display: grid;
  grid-template-columns: minmax(240px, .7fr) minmax(320px, 1.3fr);
  gap: 18px;
  margin-top: 20px;
}
.downloader-m3u-textarea {
  min-height: 150px;
  resize: vertical;
  font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
  font-size: .86rem;
}
.downloader-m3u-actions {
  display: flex;
  align-items: center;
  gap: 14px;
  margin-top: 14px;
}
.downloader-m3u-status {
  min-height: 1.4em;
}
.downloader-m3u-results {
  margin-top: 20px;
  border-top: 1px solid var(--border-color, #e5e7eb);
  padding-top: 16px;
}
.downloader-m3u-toolbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 10px;
}
.downloader-m3u-select-all,
.downloader-m3u-row {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  cursor: pointer;
}
.downloader-m3u-select-all input,
.downloader-m3u-row input {
  margin-top: 4px;
  accent-color: var(--primary, #2563eb);
}
.downloader-m3u-list {
  max-height: 360px;
  overflow: auto;
  border: 1px solid var(--border-color, #e5e7eb);
  border-radius: 10px;
}
.downloader-m3u-row {
  padding: 11px 13px;
  border-bottom: 1px solid var(--border-color, #e5e7eb);
}
.downloader-m3u-row:last-child {
  border-bottom: 0;
}
.downloader-m3u-row:hover {
  background: var(--surface-muted, #f8fafc);
}
.downloader-m3u-entry {
  display: grid;
  min-width: 0;
  gap: 3px;
}
.downloader-m3u-entry strong,
.downloader-m3u-entry small {
  overflow-wrap: anywhere;
}
.downloader-m3u-entry small {
  color: var(--text-muted, #64748b);
  font-size: .78rem;
}
.downloader-m3u-destination {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(190px, 1fr));
  gap: 14px;
  margin-top: 18px;
}
.downloader-m3u-destination [hidden],
.downloader-m3u-card [hidden] {
  display: none !important;
}
@media (max-width: 760px) {
  .downloader-m3u-inputs {
    grid-template-columns: 1fr;
  }
  .downloader-m3u-toolbar,
  .downloader-m3u-actions {
    align-items: flex-start;
    flex-direction: column;
  }
  .downloader-m3u-card {
    grid-column: auto;
  }
}

.downloader-m3u-status.text-danger { color: #b91c1c; }
.downloader-m3u-status.text-success { color: #15803d; }


/* Separate M3U and SFTP download workspace */
.downloader-import-tabs {
  display: flex;
  gap: 10px;
  margin: 0 0 18px;
  border-bottom: 1px solid var(--border-color, #e5e7eb);
  padding-bottom: 12px;
}
.downloader-import-tabs [aria-selected="true"] {
  box-shadow: 0 0 0 2px rgba(37, 99, 235, .15);
}
.downloader-bulk-page [data-bulk-panel][hidden],
.downloader-sftp-panel [hidden],
.downloader-sftp-panel [data-sftp-key-field][hidden] {
  display: none !important;
}
.downloader-sftp-panel {
  display: grid;
  gap: 18px;
}
.downloader-sftp-profile-picker {
  max-width: 540px;
  margin: 18px 0 12px;
}
.downloader-sftp-test-row {
  display: flex;
  align-items: center;
  gap: 14px;
  margin: 12px 0;
}
.downloader-sftp-test-row [data-sftp-status] {
  min-height: 1.4em;
}
.downloader-sftp-test-row [data-sftp-status].text-danger {
  color: #b91c1c;
}
.downloader-sftp-test-row [data-sftp-status].text-success {
  color: #15803d;
}
.downloader-sftp-trust {
  display: grid;
  justify-items: start;
  gap: 10px;
  margin: 14px 0;
  border: 1px solid #f59e0b;
  border-radius: 10px;
  background: #fffbeb;
  padding: 14px;
}
.downloader-sftp-trust code {
  overflow-wrap: anywhere;
  color: #7c2d12;
}
.downloader-sftp-profile-editor {
  margin-top: 18px;
  border-top: 1px solid var(--border-color, #e5e7eb);
  padding-top: 14px;
}
.downloader-sftp-profile-editor summary {
  cursor: pointer;
  font-weight: 650;
}
.downloader-sftp-form {
  margin-top: 14px;
}
.downloader-sftp-form-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(210px, 1fr));
  gap: 14px;
}
.downloader-sftp-saved-list {
  display: grid;
  gap: 8px;
  margin-top: 20px;
}
.downloader-sftp-saved-list h3 {
  margin: 0 0 4px;
}
.downloader-sftp-saved-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  border-top: 1px solid var(--border-color, #e5e7eb);
  padding-top: 10px;
}
.downloader-sftp-saved-row span {
  display: grid;
  gap: 3px;
}
.downloader-sftp-saved-row small {
  color: var(--text-muted, #64748b);
}
.downloader-sftp-browser-toolbar {
  display: grid;
  grid-template-columns: minmax(220px, 1fr) auto auto;
  align-items: end;
  gap: 10px;
  margin: 12px 0 18px;
}
.downloader-sftp-browser-toolbar .field {
  margin: 0;
}
.downloader-sftp-file-list {
  display: grid;
  max-height: 420px;
  overflow: auto;
  border: 1px solid var(--border-color, #e5e7eb);
  border-radius: 10px;
}
.downloader-sftp-entry {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  gap: 12px;
  width: 100%;
  border: 0;
  border-bottom: 1px solid var(--border-color, #e5e7eb);
  background: transparent;
  padding: 11px 13px;
  color: inherit;
  text-align: left;
}
.downloader-sftp-entry:last-child {
  border-bottom: 0;
}
.downloader-sftp-entry:hover {
  background: var(--surface-muted, #f8fafc);
}
label.downloader-sftp-entry {
  grid-template-columns: auto minmax(0, 1fr) auto;
  cursor: pointer;
}
.downloader-sftp-entry input {
  accent-color: var(--primary, #2563eb);
}
.downloader-sftp-folder {
  cursor: pointer;
}
.downloader-sftp-entry span {
  overflow-wrap: anywhere;
}
.downloader-sftp-entry small {
  color: var(--text-muted, #64748b);
  white-space: nowrap;
}
.downloader-sftp-destination {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(190px, 1fr));
  gap: 14px;
  margin: 20px 0;
}
.downloader-bulk-queue {
  margin-top: 20px;
}
@media (max-width: 760px) {
  .downloader-import-tabs {
    overflow-x: auto;
  }
  .downloader-sftp-test-row,
  .downloader-sftp-saved-row {
    align-items: flex-start;
    flex-direction: column;
  }
  .downloader-sftp-browser-toolbar {
    grid-template-columns: 1fr 1fr;
  }
  .downloader-sftp-browser-toolbar .field {
    grid-column: 1 / -1;
  }
  .downloader-sftp-entry {
    gap: 7px;
  }
}

/* FFmpeg resource monitor and transcode concurrency cap v01 */
.transcode-capacity-card { display: flex; justify-content: flex-end; margin: 0 0 16px; }
.transcode-capacity-form { align-items: center; display: flex; flex-wrap: wrap; gap: 10px; }
.transcode-capacity-form label { font-size: .86rem; font-weight: 650; }
.transcode-capacity-form .input { min-width: 190px; width: 190px; }
.system-ffmpeg-card .system-process-row strong { color: var(--parliament-blue-dark); font-size: .82rem; line-height: 1.45; text-align: right; white-space: nowrap; }
.system-ffmpeg-card h3 small { color: var(--muted); font-size: .76rem; font-weight: 500; margin-left: 8px; }
@media (max-width: 600px) { .transcode-capacity-card, .transcode-capacity-form { align-items: stretch; flex-direction: column; width: 100%; } .transcode-capacity-form .input { width: 100%; min-width: 0; } }

/* Reseller and administrator account management */
.account-create-card,.account-list-card{margin-top:1.25rem}
.account-permission-fieldset{grid-column:1/-1;border:1px solid var(--border-color,#d9e1ec);border-radius:12px;padding:1rem;margin:0}
.account-permission-fieldset legend{font-weight:700;padding:0 .4rem}
.account-permission-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:.55rem 1rem}
.account-check{display:flex;align-items:center;gap:.55rem;font-weight:500}
.account-check input{width:auto}
.account-permission-fieldset small{display:block;margin-top:.75rem;color:var(--muted,#64748b)}
.managed-account{border-top:1px solid var(--border-color,#d9e1ec);padding:1.25rem 0}
.managed-account-heading{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:1rem}
.managed-account-heading h3{margin:0}
.managed-account-heading p{margin:.25rem 0 0;color:var(--muted,#64748b)}
.managed-account-form{display:grid;gap:1rem}
.account-enabled{width:max-content}
@media(max-width:640px){.managed-account-heading{align-items:flex-start;flex-direction:column}.account-permission-grid{grid-template-columns:1fr}}


/* Reseller list and persistent encrypted access links */
.account-link-row { display:grid; gap:.4rem; margin:0 0 1rem; }
.account-link-row label { font-size:.86rem; font-weight:700; }
.account-link-control { display:flex; align-items:center; gap:.6rem; }
.account-link-control input { min-width:0; flex:1; font-family:ui-monospace,SFMono-Regular,Menlo,monospace; }
.account-link-legacy { margin:0; color:var(--muted,#64748b); font-size:.88rem; }
@media(max-width:640px){.account-link-control{align-items:stretch;flex-direction:column}}


/* Reseller account table, filters and inline editor */
.reseller-list-toolbar {
  align-items: end;
  display: grid;
  gap: 12px;
  grid-template-columns: minmax(220px, 1fr) minmax(170px, .45fr) auto;
  margin: 0 0 14px;
}
.reseller-list-toolbar .field { margin: 0; }
.reseller-list-count { color: var(--muted, #64748b); font-size: .86rem; padding: 0 0 10px; white-space: nowrap; }
.reseller-table-wrap { overflow-x: auto; width: 100%; }
.reseller-table { border-collapse: collapse; min-width: 1080px; width: 100%; }
.reseller-table th,
.reseller-table td { border-bottom: 1px solid var(--border-color, #e5e7eb); padding: 12px 10px; text-align: left; vertical-align: middle; }
.reseller-table th { background: #f7f9fc; color: var(--ink, #132238); font-size: .78rem; font-weight: 750; white-space: nowrap; }
.reseller-table tbody tr:hover { background: #f8fbff; }
.reseller-table tbody tr[hidden] { display: none; }
.reseller-status-badge { border-radius: 999px; display: inline-block; font-size: .75rem; font-weight: 750; padding: 4px 9px; white-space: nowrap; }
.reseller-status-badge.is-active { background: #e8f7ee; color: #17633b; }
.reseller-status-badge.is-inactive { background: #f1f3f5; color: #5b6470; }
.reseller-link-control { min-width: 330px; }
.reseller-link-control input { font-size: .78rem; }
.reseller-row-actions { align-items: center; display: flex; gap: 7px; }
.reseller-row-actions form { margin: 0; }
.reseller-no-results { color: var(--muted, #64748b); padding: 12px 0 0; }
.reseller-delete-note { color: var(--muted, #64748b); font-size: .82rem; margin: 12px 0 0; }
.reseller-editor-dialog { border: 0; border-radius: 16px; box-shadow: 0 22px 70px rgba(15, 23, 42, .3); max-height: min(88vh, 900px); max-width: 720px; overflow-y: auto; padding: 0; width: calc(100% - 28px); }
.reseller-editor-dialog::backdrop { background: rgba(10, 18, 30, .6); backdrop-filter: blur(2px); }
.reseller-editor-form { display: grid; gap: 18px; padding: 22px; }
.reseller-editor-heading { align-items: flex-start; display: flex; justify-content: space-between; gap: 14px; }
.reseller-editor-heading h2 { margin: 0; }
.reseller-editor-heading .eyebrow { margin: 0 0 5px; }
.reseller-editor-fields { display: grid; gap: 14px; grid-template-columns: repeat(2, minmax(0, 1fr)); }
.reseller-editor-fields > label:not(.account-check) { display: grid; gap: 6px; font-size: .88rem; font-weight: 650; }
.reseller-editor-password small { color: var(--muted, #64748b); font-weight: 400; }
.reseller-editor-fields .account-enabled { align-self: center; }
@media (max-width: 760px) {
  .reseller-list-toolbar { align-items: stretch; grid-template-columns: 1fr; }
  .reseller-list-count { padding: 0; }
}
@media (max-width: 520px) {
  .reseller-editor-form { padding: 16px; }
  .reseller-editor-fields { grid-template-columns: 1fr; }
}


/* Reseller dashboard */
.reseller-dashboard-page-shell .reseller-dashboard { display: grid; gap: 20px; }
.reseller-dashboard-heading { display: flex; align-items: end; justify-content: space-between; gap: 16px; margin: 0 0 4px; }
.reseller-dashboard-heading h1 { margin: 4px 0 0; }
.reseller-dashboard-heading p { margin: 6px 0 0; color: var(--muted, #64748b); }
.reseller-dashboard-kpis { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
.reseller-dashboard-kpi { display: grid; gap: 8px; padding: 20px; border: 1px solid var(--border, #e2e8f0); border-radius: 16px; background: var(--surface, #fff); box-shadow: 0 8px 24px rgba(15,23,42,.05); }
.reseller-dashboard-kpi-label { color: var(--muted, #64748b); font-size: .86rem; font-weight: 650; }
.reseller-dashboard-kpi strong { font-size: clamp(1.8rem, 3vw, 2.5rem); line-height: 1; color: var(--text, #0f172a); }
.reseller-dashboard-kpi small { color: var(--muted, #64748b); }
.reseller-dashboard-section { min-width: 0; padding: 20px; border: 1px solid var(--border, #e2e8f0); border-radius: 16px; background: var(--surface, #fff); box-shadow: 0 8px 24px rgba(15,23,42,.05); }
.reseller-dashboard-section .section-heading { margin-bottom: 16px; }
.reseller-dashboard-content { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px; }
.reseller-dashboard-shows, .reseller-dashboard-videos { display: grid; gap: 10px; }
.reseller-dashboard-media { display: flex; align-items: center; gap: 12px; min-width: 0; padding: 10px; border-radius: 12px; background: var(--surface-soft, #f8fafc); }
.reseller-dashboard-media img, .reseller-dashboard-placeholder { width: 54px; height: 72px; flex: 0 0 54px; border-radius: 8px; object-fit: cover; background: #e2e8f0; }
.reseller-dashboard-placeholder { display: grid; place-items: center; color: #64748b; font-weight: 800; }
.reseller-dashboard-media-info { display: grid; gap: 5px; min-width: 0; }
.reseller-dashboard-media-info strong { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; color: var(--text, #0f172a); }
.reseller-dashboard-media-info small { color: var(--muted, #64748b); }
.reseller-dashboard-empty { padding: 20px 12px; color: var(--muted, #64748b); text-align: center; border-radius: 12px; background: var(--surface-soft, #f8fafc); }
.reseller-dashboard-map-layout { display: grid; grid-template-columns: minmax(0, 1.8fr) minmax(220px, .8fr); gap: 20px; align-items: stretch; }
.reseller-world-map { position: relative; width: 100%; min-height: 220px; border: 1px solid #20364b; border-radius: 14px; background: #071321; overflow: hidden; }
.reseller-world-map svg { display: block; width: 100%; height: auto; }
.reseller-map-graticule { fill: none; stroke: #173047; stroke-width: 1; stroke-dasharray: 3 8; }
.geo-country { fill: #172b3f; stroke: #38536b; stroke-width: .75; stroke-linejoin: round; vector-effect: non-scaling-stroke; cursor: pointer; transition: fill .18s ease, stroke .18s ease, filter .18s ease; }
.geo-country:hover, .geo-country:focus, .geo-country.is-selected { stroke: #e7f3ff; stroke-width: 1.6; outline: none; filter: brightness(1.22); }
.geo-country.is-selected { filter: drop-shadow(0 0 4px rgba(91,194,255,.7)); }
.geo-level-0 { fill: #172b3f; background: #172b3f; }
.geo-level-1 { fill: #174b5a; background: #174b5a; }
.geo-level-2 { fill: #137d83; background: #137d83; }
.geo-level-3 { fill: #32b7a2; background: #32b7a2; }
.geo-level-4 { fill: #9de65c; background: #9de65c; }
.geo-map-legend { position: absolute; left: 12px; bottom: 10px; display: flex; flex-wrap: wrap; gap: 8px; padding: 7px 9px; border: 1px solid rgba(120,155,185,.25); border-radius: 9px; background: rgba(5,16,29,.88); color: #d7e5f2; font-size: .72rem; }
.geo-map-legend span { display: inline-flex; align-items: center; gap: 4px; }
.geo-map-legend i { display: inline-block; width: 10px; height: 10px; border-radius: 3px; }
.geo-map-attribution { position: absolute; right: 9px; bottom: 8px; color: #8da3b8; font-size: .63rem; }
.geo-map-side { display: grid; grid-template-rows: auto minmax(0, 1fr); gap: 10px; min-width: 0; }
.geo-country-detail { display: grid; grid-template-columns: minmax(0,1fr) auto; gap: 5px 12px; align-content: center; min-height: 76px; padding: 13px 15px; border: 1px solid #20364b; border-radius: 12px; background: #0b1a2a; color: #e6f0fa; }
.geo-country-detail strong { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.geo-country-detail span { grid-column: 1; color: #65d6c2; font-weight: 750; }
.geo-country-detail small { grid-column: 2; grid-row: 1 / span 2; align-self: center; color: #91a7bb; }
.reseller-country-list { display: grid; align-content: start; gap: 8px; max-height: 330px; overflow: auto; padding-right: 3px; }
.reseller-country-row { display: grid; grid-template-columns: 34px minmax(0,1fr) auto; align-items: center; gap: 9px; width: 100%; padding: 9px 10px; border: 1px solid transparent; border-radius: 10px; background: var(--surface-soft, #f8fafc); color: var(--text, #0f172a); text-align: left; cursor: pointer; }
.reseller-country-row:hover, .reseller-country-row:focus-visible, .reseller-country-row.is-selected { border-color: #42b8ad; outline: none; }
.reseller-country-code { display: grid; place-items: center; width: 32px; height: 24px; border-radius: 6px; background: #e0f2fe; color: #075985; font-size: .72rem; font-weight: 800; }
.reseller-country-row strong { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.reseller-country-row small { color: var(--muted, #64748b); }
.reseller-map-updated { color: var(--muted, #64748b); font-size: .8rem; }
@media (max-width: 820px) {
  .reseller-dashboard-content { grid-template-columns: 1fr; }
  .reseller-dashboard-map-layout { grid-template-columns: 1fr; }
}
@media (max-width: 520px) {
  .reseller-dashboard-kpis { grid-template-columns: 1fr; }
  .reseller-dashboard-section { padding: 15px; }
  .reseller-world-map { min-height: 160px; }
  .geo-map-attribution { max-width: 42%; text-align: right; }
}
 
/* Admin dashboard GeoIP map spacing */
.dashboard-geo-panel { box-sizing: border-box; width: 100%; max-width: 1120px; margin: 18px auto; }
.dashboard-geo-kpis { margin-bottom: 18px; }
@media (max-width: 520px) {
  .dashboard-geo-panel { padding: 15px; }
}

/* Reseller quota and term controls */
.reseller-plan-fields {
  display: grid;
  grid-column: 1 / -1;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 16px;
  padding: 16px;
  border: 1px solid var(--line);
  border-radius: 12px;
  background: #f7f9fc;
}
.reseller-plan-fields[hidden] { display: none; }
.reseller-plan-fields label,
.reseller-editor-fields > label:not(.account-check) { display: grid; gap: 7px; }
.reseller-plan-fields small,
.reseller-editor-fields small { color: var(--muted); font-weight: 400; }
.reseller-status-badge.is-expired { background: #fff0ed; color: #a83220; }
.reseller-expiry-note { margin: 14px 0; padding: 12px 14px; border-left: 3px solid #e3a328; border-radius: 7px; background: #fff9e8; color: #66501d; font-size: .9rem; }
.reseller-quota-banner { display: flex; justify-content: space-between; align-items: center; gap: 12px; margin: 0 0 18px; padding: 13px 16px; border: 1px solid #b9dfca; border-radius: 10px; background: #effaf3; color: #175b38; }
.reseller-quota-banner.is-full { border-color: #f1c4bc; background: #fff3f0; color: #8f2d20; }
@media (max-width: 700px) { .reseller-plan-fields { grid-template-columns: 1fr; } .reseller-quota-banner { align-items: flex-start; flex-direction: column; } }


/* Compact Streams-style TV channel list */
.tv-channels-table-page { max-width: none; min-width: 0; overflow-x: hidden; width: 100%; }
.tv-channels-table-page .vod-streams-heading { gap: 12px; margin-bottom: 16px; }
.tv-channels-table-page .vod-streams-heading h1 { font-size: 21px; }
.tv-channels-table-page .vod-streams-top-actions { flex-wrap: nowrap; gap: 5px; }
.tv-channels-table-page .vod-streams-top-actions .button { border-radius: 3px; font-size: 10px; min-height: 30px; padding: 0 10px; white-space: nowrap; }
.tv-channels-table-page .button-filter { min-width: 34px; padding: 0 8px !important; }
.tv-channels-table-page .button-search { min-width: 34px; padding: 0 8px !important; }
.tv-channels-table-page .button-refresh { background: #344255; }
.tv-channels-table-page .button-refresh.is-enabled { background: #344255; }
.tv-channels-table-page .tv-add-stream { background: #27ad94; color: #fff; text-decoration: none; }
.tv-channels-table-page .tv-create-stream { background: #6c59b8; color: #fff; text-decoration: none; }
.tv-stream-filters { align-items: center; display: grid; gap: 10px 14px; grid-template-columns: minmax(130px, 1.05fr) minmax(150px, 1.45fr) minmax(150px, 1.45fr) minmax(110px, 1fr) minmax(92px, .7fr); margin: 0 0 12px; min-width: 0; }
.tv-stream-filters label { display: flex; min-width: 0; }
.tv-stream-filters input, .tv-stream-filters select { background: #fff; border: 1px solid #cfd5da; border-radius: 3px; color: #56616b; font: inherit; font-size: 11px; height: 34px; min-width: 0; outline: none; padding: 0 10px; width: 100%; }
.tv-stream-filters input:focus, .tv-stream-filters select:focus { border-color: #59b8c6; box-shadow: 0 0 0 2px rgba(85,189,210,.14); }
.tv-search-field input { border-radius: 16px; padding-left: 13px; }
.tv-stream-filters .tv-show-count { align-items: center; gap: 8px; justify-content: flex-end; }
.tv-show-count span { color: #26323d; font-size: 10px; font-weight: 650; }
.tv-show-count select { max-width: 90px; }
.tv-stream-table-card { border-radius: 0; min-width: 0; overflow: hidden; width: 100%; }
.tv-stream-table-wrap { overflow: hidden; width: 100%; }
.tv-stream-table-wrap .tv-channel-table { border-collapse: collapse; min-width: 0; table-layout: fixed; width: 100%; }
.tv-channel-table th { font-size: 9px; height: 30px; padding: 0 4px; white-space: nowrap; }
.tv-channel-table td { font-size: 10px; height: 48px; overflow: hidden; padding: 4px 5px; text-overflow: ellipsis; white-space: nowrap; }
.tv-channel-table th:nth-child(1), .tv-channel-table td:nth-child(1) { width: 4%; }
.tv-channel-table th:nth-child(2), .tv-channel-table td:nth-child(2) { width: 5%; }
.tv-channel-table th:nth-child(3), .tv-channel-table td:nth-child(3) { text-align: left; width: 18%; }
.tv-channel-table th:nth-child(4), .tv-channel-table td:nth-child(4) { width: 13%; }
.tv-channel-table th:nth-child(5), .tv-channel-table td:nth-child(5) { width: 6%; }
.tv-channel-table th:nth-child(6), .tv-channel-table td:nth-child(6) { width: 12%; }
.tv-channel-table th:nth-child(7), .tv-channel-table td:nth-child(7) { width: 14%; }
.tv-channel-table th:nth-child(8), .tv-channel-table td:nth-child(8) { width: 6%; }
.tv-channel-table th:nth-child(9), .tv-channel-table td:nth-child(9) { width: 6%; }
.tv-channel-table th:nth-child(10), .tv-channel-table td:nth-child(10) { width: 16%; }
.tv-table-logo { background: #f4f7f9; border-radius: 3px; height: 30px; width: 30px; }
.tv-table-name strong { display: block; font-size: 10px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.tv-table-name small { font-size: 9px; margin-top: 2px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.tv-source { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.client-count { min-width: 24px; padding: 4px 6px; }
.uptime-pill { font-size: 9px; line-height: 1.2; max-width: 100%; overflow: hidden; padding: 4px 6px; text-overflow: ellipsis; white-space: nowrap; }
.uptime-pill small { font-size: 8px; margin-top: 2px; }
.tv-row-actions { border-radius: 2px; gap: 1px; justify-content: center; max-width: 100%; padding: 3px; }
.tv-row-actions form { display: inline-flex; margin: 0; }
.tv-row-actions button, .tv-row-actions a { align-items: center; border-radius: 2px; display: inline-flex; font-size: 11px; height: 21px; justify-content: center; padding: 0; width: 21px; }
.tv-row-actions button:hover, .tv-row-actions a:hover { background: rgba(255,255,255,.16); }
.player-button, .epg-button { height: 24px; width: 25px; }
.stream-info { display: block; font-size: 9px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.stream-info small { font-size: 8px; margin-top: 2px; overflow: hidden; text-overflow: ellipsis; }
.tv-table-footer { align-items: center; color: #72808b; display: flex; font-size: 10px; justify-content: space-between; min-height: 36px; padding: 4px 10px; }
.tv-pagination { align-items: center; display: inline-flex; gap: 8px; }
.tv-pagination button { background: #fff; border: 1px solid #d5dbe0; border-radius: 3px; color: #5b6873; cursor: pointer; height: 24px; width: 26px; }
.tv-pagination button:disabled { cursor: default; opacity: .42; }
.tv-channel-table tr[hidden], #tv-no-results[hidden] { display: none !important; }

@media (max-width: 1100px) {
  .tv-channel-table th:nth-child(4), .tv-channel-table td:nth-child(4),
  .tv-channel-table th:nth-child(10), .tv-channel-table td:nth-child(10) { display: none; }
  .tv-channel-table th:nth-child(1), .tv-channel-table td:nth-child(1) { width: 5%; }
  .tv-channel-table th:nth-child(2), .tv-channel-table td:nth-child(2) { width: 7%; }
  .tv-channel-table th:nth-child(3), .tv-channel-table td:nth-child(3) { width: 25%; }
  .tv-channel-table th:nth-child(5), .tv-channel-table td:nth-child(5) { width: 9%; }
  .tv-channel-table th:nth-child(6), .tv-channel-table td:nth-child(6) { width: 18%; }
  .tv-channel-table th:nth-child(7), .tv-channel-table td:nth-child(7) { width: 20%; }
  .tv-channel-table th:nth-child(8), .tv-channel-table td:nth-child(8),
  .tv-channel-table th:nth-child(9), .tv-channel-table td:nth-child(9) { width: 8%; }
}
@media (max-width: 760px) {
  .tv-channels-table-page .vod-streams-heading { align-items: flex-start; flex-direction: column; }
  .tv-channels-table-page .vod-streams-top-actions { flex-wrap: wrap; }
  .tv-stream-filters { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .tv-stream-filters .tv-search-field { grid-column: 1 / -1; }
  .tv-stream-filters .tv-show-count { justify-content: space-between; }
  .tv-channel-table th:nth-child(1), .tv-channel-table td:nth-child(1),
  .tv-channel-table th:nth-child(2), .tv-channel-table td:nth-child(2),
  .tv-channel-table th:nth-child(8), .tv-channel-table td:nth-child(8),
  .tv-channel-table th:nth-child(9), .tv-channel-table td:nth-child(9) { display: none; }
  .tv-channel-table th:nth-child(3), .tv-channel-table td:nth-child(3) { width: 44%; }
  .tv-channel-table th:nth-child(5), .tv-channel-table td:nth-child(5) { width: 12%; }
  .tv-channel-table th:nth-child(6), .tv-channel-table td:nth-child(6) { width: 22%; }
  .tv-channel-table th:nth-child(7), .tv-channel-table td:nth-child(7) { width: 22%; }
  .tv-row-actions { padding: 2px; }
  .tv-row-actions button, .tv-row-actions a { height: 19px; width: 19px; }
}
@media (max-width: 440px) {
  .tv-channels-table-page .vod-streams-top-actions .button { font-size: 9px; min-height: 28px; padding: 0 7px; }
  .tv-stream-filters { gap: 7px; }
  .tv-stream-filters input, .tv-stream-filters select { font-size: 10px; padding: 0 7px; }
  .tv-channel-table th:nth-child(5), .tv-channel-table td:nth-child(5) { display: none; }
  .tv-channel-table th:nth-child(3), .tv-channel-table td:nth-child(3) { width: 48%; }
  .tv-channel-table th:nth-child(6), .tv-channel-table td:nth-child(6) { width: 26%; }
  .tv-channel-table th:nth-child(7), .tv-channel-table td:nth-child(7) { width: 26%; }
}


/* TV channel actions use the same graphite button design as VOD Channels.
   Keep the controls compact so the Streams table remains readable. */
.tv-row-actions button.vod-action-button,
.tv-row-actions a.vod-action-button {
  align-items: center;
  border: 0;
  border-radius: 0;
  color: #fff;
  display: inline-flex;
  font-size: 11px;
  height: 22px;
  justify-content: center;
  padding: 0;
  text-decoration: none;
  width: 22px;
}
.tv-row-actions .vod-action-button.action-dark {
  background: #3f4d5e;
  cursor: pointer;
}
.tv-row-actions .vod-action-button:hover { filter: brightness(1.12); }
.tv-stream-info .stream-info-summary,
.tv-stream-info .stream-info-details { display: block; max-width: 100%; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.tv-stream-info .stream-info-summary { color: #40505e; font-size: 8px; font-weight: 750; }
.tv-stream-info .stream-info-details { color: #71808b; font-size: 8px; }
.tv-stream-info[data-state="checking"] i { background: #e6a733; }
.tv-stream-info[data-state="error"] i { background: #d84747; }
.tv-stream-info[data-state="ready"] i { background: #24a35a; }


/* Compact IPTV user table v149 */
.iptv-users-table-wrap { overflow-x: clip; }
.iptv-users-table { min-width: 0; table-layout: fixed; width: 100%; }
.iptv-users-table th,
.iptv-users-table td { overflow: hidden; padding: 7px 4px; }
.iptv-users-table th { font-size: 9px; letter-spacing: 0; line-height: 1.15; text-overflow: clip; white-space: normal; }
.iptv-users-table td { font-size: 10px; text-overflow: ellipsis; }
.iptv-users-table th:nth-child(1), .iptv-users-table td:nth-child(1) { width: 3%; }
.iptv-users-table th:nth-child(2), .iptv-users-table td:nth-child(2) { width: 7%; }
.iptv-users-table th:nth-child(3), .iptv-users-table td:nth-child(3) { width: 4%; }
.iptv-users-table th:nth-child(4), .iptv-users-table td:nth-child(4) { width: 6%; }
.iptv-users-table th:nth-child(5), .iptv-users-table td:nth-child(5) { width: 8%; }
.iptv-users-table th:nth-child(6), .iptv-users-table td:nth-child(6) { width: 3%; }
.iptv-users-table th:nth-child(7), .iptv-users-table td:nth-child(7) { width: 7%; }
.iptv-users-table th:nth-child(8), .iptv-users-table td:nth-child(8) { width: 3%; }
.iptv-users-table th:nth-child(9), .iptv-users-table td:nth-child(9) { width: 5%; }
.iptv-users-table th:nth-child(10), .iptv-users-table td:nth-child(10) { width: 9%; }
.iptv-users-table th:nth-child(11), .iptv-users-table td:nth-child(11) { width: 9%; }
.iptv-users-table th:nth-child(12), .iptv-users-table td:nth-child(12) { width: 4%; }
.iptv-users-table th:nth-child(13), .iptv-users-table td:nth-child(13) { width: 11%; }
.iptv-users-table th:nth-child(14), .iptv-users-table td:nth-child(14) { width: 7%; }
.iptv-users-table th:nth-child(15), .iptv-users-table td:nth-child(15) { width: 14%; }
.iptv-user-id,
.iptv-user-country { width: auto; }
.iptv-user-isp span,
.iptv-user-now-playing span,
.iptv-user-ip code { max-width: 100%; overflow: hidden; text-overflow: ellipsis; }
.iptv-user-actions { display: table-cell; white-space: normal; }
.iptv-user-actions-inner { align-items: center; display: flex; flex-direction: row; flex-wrap: wrap; gap: 3px; justify-content: flex-start; min-width: 0; width: 100%; }
.iptv-user-actions form { display: contents; }
.iptv-user-action-button { flex: 0 0 24px; height: 24px; min-width: 24px; padding: 0; }

@media (max-width: 780px) {
  .iptv-users-table th:nth-child(3), .iptv-users-table td:nth-child(3),
  .iptv-users-table th:nth-child(4), .iptv-users-table td:nth-child(4),
  .iptv-users-table th:nth-child(6), .iptv-users-table td:nth-child(6) { display: none; }
  .iptv-users-table th:nth-child(1), .iptv-users-table td:nth-child(1) { width: 4%; }
  .iptv-users-table th:nth-child(2), .iptv-users-table td:nth-child(2) { width: 11%; }
  .iptv-users-table th:nth-child(5), .iptv-users-table td:nth-child(5) { width: 8%; }
  .iptv-users-table th:nth-child(7), .iptv-users-table td:nth-child(7) { width: 8%; }
  .iptv-users-table th:nth-child(8), .iptv-users-table td:nth-child(8) { width: 4%; }
  .iptv-users-table th:nth-child(9), .iptv-users-table td:nth-child(9) { width: 6%; }
  .iptv-users-table th:nth-child(10), .iptv-users-table td:nth-child(10) { width: 11%; }
  .iptv-users-table th:nth-child(11), .iptv-users-table td:nth-child(11) { width: 11%; }
  .iptv-users-table th:nth-child(12), .iptv-users-table td:nth-child(12) { width: 4%; }
  .iptv-users-table th:nth-child(13), .iptv-users-table td:nth-child(13) { width: 11%; }
  .iptv-users-table th:nth-child(14), .iptv-users-table td:nth-child(14) { width: 7%; }
  .iptv-users-table th:nth-child(15), .iptv-users-table td:nth-child(15) { width: 15%; }
}

@media (max-width: 520px) {
  .iptv-users-table th:nth-child(13), .iptv-users-table td:nth-child(13),
  .iptv-users-table th:nth-child(14), .iptv-users-table td:nth-child(14) { display: none; }
  .iptv-users-table th:nth-child(1), .iptv-users-table td:nth-child(1) { width: 5%; }
  .iptv-users-table th:nth-child(2), .iptv-users-table td:nth-child(2) { width: 13%; }
  .iptv-users-table th:nth-child(5), .iptv-users-table td:nth-child(5) { width: 10%; }
  .iptv-users-table th:nth-child(7), .iptv-users-table td:nth-child(7) { width: 10%; }
  .iptv-users-table th:nth-child(8), .iptv-users-table td:nth-child(8) { width: 6%; }
  .iptv-users-table th:nth-child(9), .iptv-users-table td:nth-child(9) { width: 8%; }
  .iptv-users-table th:nth-child(10), .iptv-users-table td:nth-child(10) { width: 13%; }
  .iptv-users-table th:nth-child(11), .iptv-users-table td:nth-child(11) { width: 13%; }
  .iptv-users-table th:nth-child(12), .iptv-users-table td:nth-child(12) { width: 6%; }
  .iptv-users-table th:nth-child(15), .iptv-users-table td:nth-child(15) { width: 16%; }
  .iptv-users-table th,
  .iptv-users-table td { padding-left: 2px; padding-right: 2px; }
  .iptv-users-table th { font-size: 8px; }
  .iptv-user-action-button { flex-basis: 22px; height: 22px; min-width: 22px; }
}

[data-two-line-field][hidden] { display: none !important; }

[data-movie-intro][hidden], [data-intro-fields][hidden] { display: none !important; }

/* Series library follows the movie library table and compact creation row. */
.series-index-create { align-items: center; display: flex; flex-wrap: wrap; gap: 18px 28px; margin-bottom: 22px; padding: 20px 24px; }
.series-index-create .settings-card-heading { flex: 1 1 320px; margin-bottom: 0; }
.series-index-create .settings-card-heading h2 { font-size: 20px; }
.series-index-create .settings-card-heading p { font-size: 12px; margin-bottom: 0; }
.series-index-create .series-create-form { flex: 1 1 470px; margin: 0; max-width: none; }
.series-index-create .series-title-field { flex: 1; min-width: 0; }
.series-index-create .series-create-form .button { flex-shrink: 0; }
.series-index-page .series-table-filters { grid-template-columns: minmax(180px, 1fr) 120px; }
.series-index-table { min-width: 740px; }
.series-table-title { color: inherit; overflow-wrap: anywhere; text-decoration: none; }
.series-table-title:hover strong { color: var(--parliament-blue); }
@media (max-width: 700px) {
  .series-index-create { padding: 16px; }
  .series-index-create .settings-card-heading, .series-index-create .series-create-form { flex-basis: 100%; }
  .series-index-page .series-table-filters { grid-template-columns: 1fr; }
}

.series-index-page .movies-table-card { padding: 0; }
.series-index-table td > a { text-decoration: none; }

.series-index-create .series-create-form { flex-wrap: wrap; }
.series-broadcast-options { flex: 1 0 100%; order: 2; min-width: 0; }
.series-broadcast-options summary { color: var(--parliament-blue); cursor: pointer; font-size: 12px; font-weight: 700; }
.series-broadcast-fields { display: grid; gap: 12px; grid-template-columns: repeat(3,minmax(0,1fr)); margin: 14px 0 8px; }
.series-broadcast-fields .field { min-width: 0; }
.series-broadcast-card { margin-bottom: 22px; }
.series-broadcast-card > form > .button { margin-top: 14px; }
.series-broadcast-row, .series-legacy-row { display: flex; align-items: center; flex-wrap: wrap; gap: 12px; padding: 12px 0; border-top: 1px solid var(--line); margin-top: 12px; }
.series-broadcast-row > span, .series-legacy-row > strong { flex: 1; }
.series-broadcast-row small { display: block; color: var(--muted); margin-top: 4px; }
.series-broadcast-row form { margin: 0; }
.broadcast-channel-logo, .dashboard-media-item .broadcast-channel-logo, .reseller-dashboard-media .broadcast-channel-logo { display: inline-block; vertical-align: middle; width: 32px; height: 24px; object-fit: contain; background: transparent; border-radius: 3px; margin-inline-end: 6px; }
@media(max-width:700px) { .series-broadcast-fields { grid-template-columns: 1fr; } }

.series-table-broadcast > div { align-items: center; display: flex; margin: 5px 0; }
.series-table-broadcast small { color: var(--muted); display: block; margin-top: 3px; }

.movie-edit-page { max-width: 820px; }
.movie-edit-page h1 { font-size: 25px; margin: 0 0 6px; }
.movie-edit-actions { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 18px; }

.movie-tmdb-search-row { display: flex; align-items: center; gap: 10px; }
.movie-tmdb-search-row .input { flex: 1; min-width: 0; }
.movie-tmdb-search-row .button { flex-shrink: 0; }
.movie-tmdb-results { border: 1px solid var(--line); border-radius: 10px; max-height: 320px; overflow-y: auto; background: #fff; }
.movie-tmdb-saved { border-top: 1px solid var(--line); margin-top: 22px; padding-top: 18px; line-height: 1.6; }
@media(max-width:600px) { .movie-tmdb-search-row { align-items: stretch; flex-direction: column; } }
