* {
  box-sizing: border-box;
}

html {
  color-scheme: dark;
  scroll-behavior: smooth;
}

body {
  margin: 0;
  background: #10141c;
  color: #ecf2fc;
  font: 16px/1.6 system-ui,-apple-system,"Segoe UI",sans-serif;
}

a {
  color: #91c4ff;
  text-underline-offset: 4px;
}

button,input,select,textarea {
  font: inherit;
}

button,a,input,select,textarea {
  touch-action: manipulation;
}

button,input,select,textarea {
  max-width: 100%;
  min-width: 0;
}

button,.actions>a {
  min-height: 44px;
}

button {
  border: 1px solid #4c6589;
  background: #233f65;
  color: #fff;
  padding: 9px 16px;
  border-radius: 8px;
  cursor: pointer;
}

button:disabled {
  opacity: .5;
  cursor: default;
}

input,textarea,select {
  width: 100%;
  background: #0f1724;
  border: 1px solid #62728b;
  color: #fff;
  padding: 10px;
  border-radius: 6px;
}

input[type=checkbox] {
  width: 24px;
  height: 24px;
  flex: none;
}

input[type=file] {
  overflow: hidden;
}

textarea {
  resize: vertical;
  min-height: 90px;
}

label {
  display: grid;
  gap: 5px;
  margin: 12px 0;
}

label.check {
  display: flex;
  align-items: flex-start;
  gap: 12px;
}

h1,h2,h3,p {
  margin: 0 0 14px;
}

h1 {
  font-size: clamp(1.65rem,3vw,2.3rem);
  line-height: 1.25;
}

h2 {
  font-size: 1.35rem;
}

h3 {
  font-size: 1.1rem;
}

p,dd,dt,a,strong {
  overflow-wrap: anywhere;
}

header.portal-header {
  max-width: 1140px;
  margin: auto;
  display: flex;
  flex-wrap: wrap;
  gap: 20px;
  align-items: center;
  padding: 20px;
}

nav {
  display: flex;
  gap: 20px;
  flex-wrap: wrap;
}

.brand {
  font-weight: 800;
  font-size: 1.35rem;
  letter-spacing: 1px;
  text-decoration: none;
  color: #fff;
}

.language {
  margin: 0 0 0 auto;
  display: flex;
  align-items: center;
  gap: 10px;
}

.language select {
  width: auto;
}

main,.support {
  max-width: 1140px;
  margin: 0 auto;
  padding: 0 20px 28px;
}

main {
  min-height: 40vh;
}

.entry-grid {
  display: grid;
  grid-template-columns: minmax(0,1.25fr) minmax(0,1fr);
  gap: 24px;
  align-items: start;
}

.card {
  min-width: 0;
  background: #192230;
  border: 1px solid #334255;
  border-radius: 14px;
  padding: 26px;
  margin-bottom: 24px;
}

.narrow {
  max-width: 560px;
  margin: 0 auto 24px;
}

.eyebrow {
  font-size: .75rem;
  letter-spacing: .12em;
  color: #a2b8d7;
}

details {
  margin: 20px 0;
}

summary {
  cursor: pointer;
  padding: 8px 0;
  font-weight: 600;
}

.notice {
  border-left: 3px solid #d5b570;
  padding-left: 15px;
  color: #e9d4a5;
}

.actions {
  display: flex;
  gap: 12px;
  align-items: center;
  flex-wrap: wrap;
  margin: 18px 0;
}

.actions a {
  display: inline-flex;
  align-items: center;
}

footer.support {
  padding-top: 26px;
  border-top: 1px solid #334255;
}

.support p:empty,[role=status]:empty,.field-error:empty {
  display: none;
}

[role=status],.field-error {
  color: #ffc5ab;
  white-space: pre-wrap;
}

[role=status][data-ok] {
  color: #abdfc4;
}

:focus-visible {
  outline: 3px solid #ffd27a;
  outline-offset: 4px;
}

input[aria-invalid=true] {
  border-color: #ff9b83;
}

.resource-row {
  border-top: 1px solid #3a4b60;
  padding: 18px 0;
  min-width: 0;
}

.resource-row h3 {
  margin-bottom: 4px;
}

.resource-row p {
  color: #becce0;
}

.legal-text {
  white-space: pre-wrap;
  overflow-wrap: anywhere;
}

.skip {
  position: absolute;
  left: 12px;
  top: -80px;
  background: #111;
  padding: 10px;
  z-index: 99;
}

.skip:focus {
  top: 10px;
}

dl {
  display: grid;
  grid-template-columns: minmax(0,1fr) minmax(0,2fr);
  gap: 10px;
}

dd {
  margin: 0;
}

[hidden] {
  display: none!important;
}

@media(max-width:700px) {
  .entry-grid {
    grid-template-columns: minmax(0,1fr);
  }
  .card {
    padding: 20px;
  }
  header.portal-header {
    gap: 12px;
    padding: 16px;
  }
  .language {
    width: 100%;
    margin: 0;
  }
  main,.support {
    padding-left: 16px;
    padding-right: 16px;
  }
  nav {
    gap: 16px;
  }
  .actions>* {
    max-width: 100%;
  }
  dl {
    grid-template-columns: minmax(0,1fr);
  }
}

@media(prefers-reduced-motion:reduce) {
  html {
    scroll-behavior: auto;
  }
}

.tv button,.tv input,.tv select,.tv a {
  min-height: 48px;
}

.tv :focus {
  outline: 4px solid #ffd27a;
  outline-offset: 4px;
}

dialog.card {
  color: #ecf2fc;
  width: min(94vw,720px);
  max-height: 90dvh;
  overflow: auto;
  margin: auto;
}

dialog::backdrop {
  background: #000b;
}

#subscribeClose {
  float: right;
  margin: 0 0 15px 15px;
}

h1,h2,h3,summary,label {
  overflow-wrap: anywhere;
}

/* Portal data uses a single compact table style. */
body { font-size:14px; line-height:1.5; }
header.portal-header { max-width:1360px; padding:12px 20px; gap:16px; border-bottom:1px solid #334255; margin-bottom:16px; }
main,.support { max-width:1360px; padding-bottom:16px; }
nav { gap:14px; align-items:center; }
nav a { text-decoration:none; }
nav a[aria-current=page] { color:#fff; border-bottom:2px solid #91c4ff; }
nav button { background:transparent; }
h1 { font-size:1.5rem; } h2 { font-size:1.15rem; } h3 { font-size:1rem; }
h1,h2,h3,p { margin-bottom:10px; }
.card,.portal-card { background:transparent; border:0; border-top:1px solid #334255; border-radius:0; padding:16px 0; margin-bottom:12px; }
main > .card:first-child,main > .portal-card:first-child { border-top:0; }
.entry-grid { gap:36px; max-width:1000px; margin:24px auto; }
.entry-grid .card { border-top:0; }
.entry-grid .introduction { padding-right:24px; border-right:1px solid #334255; }
.narrow { max-width:440px; }
label { margin:8px 0; gap:4px; }
input,select,textarea { padding:7px 9px; border-radius:3px; }
button { padding:6px 10px; border-radius:3px; min-height:36px; }
.actions { gap:8px; margin:8px 0; }
.actions>a { min-height:36px; }
.table-scroll { max-width:100%; overflow:auto; margin:10px 0; }
table { width:100%; border-collapse:collapse; text-align:left; font-size:inherit; }
th,td { border-bottom:1px solid #334255; padding:7px 10px; vertical-align:middle; }
th { font-weight:600; color:#c5d1e3; background:#17202b; }
td { overflow-wrap:anywhere; max-width:36rem; }
td .actions { margin:0; flex-wrap:nowrap; }
td .actions button,td .actions a { white-space:nowrap; }
tr:hover td { background:#17202b; }
td form { display:flex; flex-wrap:wrap; align-items:end; gap:8px; margin:6px 0; }
td form label { margin:0; min-width:160px; }
td form [role=status] { flex-basis:100%; }
.details-table th { width:180px; }
dialog.card { background:#131c27; border:1px solid #52647b; padding:18px; }
footer.support { padding-top:12px; } footer.support h2 { font-size:1rem; }
@media(max-width:700px) {
 .entry-grid { gap:10px; margin:0; } .entry-grid .introduction { border-right:0; padding-right:0; }
 header.portal-header { gap:8px; } .language { width:auto; margin-left:auto; }
 nav { gap:10px; } .card { padding:12px 0; } th,td { padding:6px 8px; }
}
@media(pointer:coarse) { button,.actions>a,nav a { min-height:44px; } }
.entry-grid { grid-template-columns:minmax(0,1fr) minmax(280px,360px); max-width:1120px; gap:40px; margin:12px auto; }
.entry-auth { max-width:360px; width:100%; }
.entry-auth h2 { font-size:1.15rem; margin:18px 0 8px; }
.entry-auth form button[type=submit] { width:100%; margin-top:8px; }
.entry-auth form button[type=submit] { min-height:44px; }
.tv .entry-auth form button[type=submit],.tv .entry-auth input { min-height:48px; }
.entry-auth input { min-height:44px; }
.resource-enabled-state { white-space:nowrap; }
.authorization-kind { display:block; color:#afc0d6; margin-top:4px; }
.auth-tabs { border-bottom:1px solid #334255; padding:0; }
.auth-tabs a { padding:8px 0; }
.entry-auth>p { color:#aebed3; font-size:13px; }
.public-player-entry { text-decoration:none; }
.entry-player { border:1px solid #4c6589; background:#233f65; color:#fff; border-radius:6px; padding:7px 14px; text-decoration:none; }
.platform-section,.entry-help { margin-top:20px; padding-top:16px; border-top:1px solid #334255; }
.platform-icons { display:grid; grid-template-columns:repeat(6,52px); gap:10px; margin:12px 0; }
.platform-icons a { width:52px; height:52px; display:grid; place-items:center; border:1px solid #334255; border-radius:12px; background:#192230; }
.platform-icons a:hover { background:#233f65; border-color:#91c4ff; }
.platform-icons img { display:block; width:32px; height:32px; object-fit:contain; border-radius:6px; }
@media(max-width:700px) { .platform-icons { grid-template-columns:repeat(4,52px); gap:10px; } }
.introduction .details-table th { width:100px; }
.record-number { width:3.25rem; min-width:3.25rem; text-align:right; color:#aebed3; font-variant-numeric:tabular-nums; white-space:nowrap; }
table .record-details { margin:0; max-width:24rem; }
table .record-details summary { padding:2px 0; white-space:nowrap; font-weight:400; }
table .record-details p { margin:6px 0 0; font-size:13px; }
.channel-pagination { display:flex; align-items:center; justify-content:flex-end; gap:12px; flex-wrap:wrap; padding:12px 0; }
.channel-pagination [role=status] { color:#c5d1e3; font-variant-numeric:tabular-nums; white-space:normal; }
.resource-disclosure { margin:8px 0; }
.resource-disclosure>summary { width:-webkit-fit-content; width:fit-content; max-width:100%; min-height:44px; padding:10px 12px; border:1px solid #4c6589; border-radius:3px; background:#17202b; }
.resource-disclosure[open]>summary { margin-bottom:12px; }
.resource-import-layout { display:flex; align-items:flex-start; max-width:76rem; }
#sourceImport #addSource { flex:1 1 0; min-width:0; max-width:48rem; margin:0 28px 0 0; }
#sourceImport #fileImportArea { flex:0 1 22rem; min-width:0; max-width:22rem; border-left:1px solid #334255; padding-left:24px; }
.resource-source-fields { display:flex; margin:0 -6px; }
.resource-source-fields>label { flex:1 1 0; min-width:0; margin:0 6px 8px; }
.resource-source-fields>label:first-child { flex:1.4 1 0; }
#sourceImport input:not([type=checkbox]),#sourceImport select,#sourceImport button { min-height:44px; }
#sourceImport label.check { min-height:44px; align-items:center; margin:8px 0; gap:0; }
#sourceImport label.check input { margin:0 10px 0 0; }
#sourceImport [role=status]:empty { margin:0; }
#fileImportArea h3 { margin-bottom:8px; }
.tv #sourceImport input:not([type=checkbox]),.tv #sourceImport select,.tv #sourceImport button { min-height:48px; }
@media(max-width:1099px) {
 .resource-import-layout { display:block; max-width:44rem; }
 #sourceImport #addSource { max-width:44rem; margin:0; }
 .resource-source-fields { display:block; margin:0; }
 .resource-source-fields>label { margin:8px 0; }
 #sourceImport #fileImportArea { max-width:44rem; border-left:0; border-top:1px solid #334255; padding:16px 0 0; margin-top:16px; }
}
#channelManager #channelList { max-height:26rem; max-height:50vh; overflow:auto; }
#channelManager .channel-pagination { position:sticky; bottom:0; background:#10141c; border-top:1px solid #334255; }
@media(max-width:700px) { .channel-pagination { justify-content:space-between; gap:8px; } }
@media(max-width:700px) {
 .entry-grid { grid-template-columns:minmax(0,1fr); gap:16px; }
 .entry-auth { order:-1; max-width:440px; margin:0 auto; }
 .entry-grid .introduction { border-top:1px solid #334255; }
}

dialog.portal-player-qr { width:min(94vw,420px); }
.portal-player-qr h2 { margin-top:0; padding-right:5rem; }
#portalPlayerQrClose { float:right; margin:0 0 10px 12px; }
#portalPlayerQrCanvas { display:block; width:min(264px,100%); height:auto; margin:16px auto; image-rendering:pixelated; }
#portalPlayerQrLink { font-size:13px; }
.preserve-lines { white-space:pre-wrap; overflow-wrap:anywhere; }
#serviceOffers td { max-width:24rem; white-space:normal; }
#serviceOffers table { min-width:0; }
#serviceOffers th:last-child,#serviceOffers td:last-child { min-width:5rem; }
@media(max-width:680px) {
 #serviceOffers table,#authorizations table { display:block; width:100%; }
 #serviceOffers thead,#authorizations thead { position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; }
 #serviceOffers tbody,#authorizations tbody { display:block; }
 #serviceOffers tbody tr,#authorizations tbody tr { display:grid; grid-template-columns:1.5rem minmax(0,1fr); gap:3px 8px; padding:12px 0; border-bottom:1px solid #334255; }
 #serviceOffers td,#authorizations td { grid-column:2; display:block; min-width:0; max-width:none; padding:1px 0; border:0; overflow-wrap:anywhere; }
 #serviceOffers td:first-child,#authorizations td:first-child { grid-column:1; grid-row:1; min-width:0; width:auto; }
 #serviceOffers td:nth-child(2),#authorizations td:nth-child(2) { font-weight:600; }
 #serviceOffers td:not(:first-child):not(:nth-child(2)):not(:last-child)::before,#authorizations td:not(:first-child):not(:nth-child(2))::before { content:attr(data-label) ': '; font-size:12px; color:#aebed3; font-weight:400; }
 #serviceOffers tbody tr { grid-template-columns:1.5rem minmax(0,1fr) auto; }
 #serviceOffers td:last-child { grid-column:3; grid-row:1 / span 4; align-self:center; }
 #authorizations td:nth-child(3) { white-space:nowrap; }
}
#subscribe { width:min(36rem,calc(100vw - 2rem)); }
.channel-disabled td:not(:last-child) { color:var(--muted,#a1a9b4); opacity:.6; }

/* Public entry keeps its product, customer and external-site roles separate. */
header.portal-header:has(.public-brand) { max-width:1160px; }
.public-navigation { display:flex; align-items:center; gap:18px; }
.public-hero { display:grid; grid-template-columns:minmax(0,1fr) auto; align-items:center; gap:20px; max-width:1120px; margin:16px auto; padding:16px 20px; background:transparent; border:0; border-radius:0; }
.public-hero h1 { font-size:clamp(1.65rem,3vw,2.15rem); line-height:1.2; margin:0 0 10px; }
.public-hero p { max-width:680px; color:#bdcbe0; margin:0; }
.public-hero .entry-player { display:inline-flex; justify-content:center; align-items:center; min-height:44px; padding:10px 18px; white-space:nowrap; font-weight:600; }
.entry-grid { grid-template-columns:minmax(0,1fr) 360px; gap:16px; margin:0 auto 20px; }
.entry-side { grid-column:2; grid-row:1; display:grid; align-content:start; gap:16px; min-width:0; }
.entry-grid .card { margin:0; padding:16px 20px; background:transparent; border:0; border-radius:0; }
.entry-grid .introduction { grid-column:1; grid-row:1; padding:16px 20px; border:0; }
.entry-grid .entry-auth { max-width:none; }
.entry-auth h2 { margin-top:14px; }
.introduction .table-scroll { margin-top:0; }
.introduction details { margin:8px 0; }
.introduction details>summary { min-height:44px; display:list-item; align-content:center; cursor:pointer; }
.introduction>p:first-child { margin-top:0; }
.introduction h2 { margin-top:20px; }
.entry-platforms .platform-icons { grid-template-columns:repeat(6,44px); gap:8px; justify-content:center; margin:0; }
.entry-platforms .platform-icons a { width:44px; height:44px; border-radius:8px; }
.entry-platforms .platform-icons img { width:32px; height:32px; border-radius:4px; }
.public-help { display:flex; justify-content:space-between; align-items:center; gap:20px; max-width:1120px; margin:0 auto 24px; padding:16px 20px; border:1px solid #334255; border-radius:10px; background:#121c28; }
.public-help p { max-width:720px; margin:0; color:#bdcbe0; }
.public-help .actions { margin:0; flex:none; }
.public-help .actions a { min-height:44px; }
.visually-hidden { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
#customerAccess { scroll-margin-top:20px; }
@media(max-width:900px) {
 .entry-grid { grid-template-columns:minmax(0,1fr); }
 .entry-side { grid-column:1; grid-row:1; max-width:380px; width:100%; justify-self:center; }
 .entry-grid .introduction { grid-column:1; grid-row:2; }
}
@media(max-width:700px) {
 header.portal-header:has(.public-brand) .brand { order:0; }
 header.portal-header:has(.public-brand) .language { order:1; margin-left:auto; }
 .public-navigation { order:2; flex-basis:100%; gap:24px; }
 .public-navigation a { display:inline-flex; align-items:center; min-height:44px; }
 .public-hero { grid-template-columns:minmax(0,1fr); gap:16px; padding:20px; margin:16px auto; }
 .public-hero .entry-player { justify-self:start; }
 .entry-grid { grid-template-columns:minmax(0,1fr); gap:16px; margin-bottom:16px; }
 .entry-side { grid-column:1; grid-row:1; max-width:380px; width:100%; justify-self:center; }
 .entry-grid .introduction { grid-column:1; grid-row:2; padding:18px; }
 .entry-platforms .platform-icons { grid-template-columns:repeat(4,44px); gap:12px; }
 .public-help { flex-direction:column; align-items:flex-start; gap:12px; padding:18px; margin-bottom:16px; }
}
@media(max-width:380px) {
 header.portal-header:has(.public-brand) .language>span { display:none; }
}

/* Keep management headings and short fields compact without shrinking controls. */
main>.portal-page:first-child { padding-top:8px; }
.portal-page-heading { display:flex; flex-wrap:wrap; align-items:center; gap:8px 16px; margin-bottom:10px; }
.portal-page-heading>h1,.portal-page-heading>p,.portal-page-heading>.actions { margin:0; }
.portal-page-heading>p { color:#becce0; }
.portal-page-heading>button,.portal-page-heading>.actions>button { min-height:44px; }
.account-summary { max-width:44rem; margin:0 0 12px; }
.account-summary tbody { display:grid; grid-template-columns:minmax(0,1.7fr) minmax(0,1fr); gap:8px 24px; }
.account-summary tr { display:flex; flex-wrap:wrap; align-items:baseline; gap:4px 10px; }
.account-summary th,.account-summary td { display:block; width:auto; max-width:100%; padding:0; border:0; background:transparent; }
.account-summary th { color:#aebed3; }
.account-section { margin-top:14px; }
.account-section h2 { margin-bottom:6px; }
.account-section .table-scroll { margin:6px 0; }
.account-section .table-scroll>p { margin:0; }
.portal-page #siteSettings { align-items:start; margin:12px 0 16px; }
#siteSettings>label { align-content:start; }
#siteSettings input:not([type=checkbox]),#newTemplate input[type=url] { min-height:44px; align-self:start; }
#siteSettings .settings-description { grid-column:2; grid-row:1 / span 2; }
#siteSettings .settings-registration { grid-column:1; display:flex; flex-wrap:wrap; align-items:flex-end; gap:8px 16px; min-width:0; }
#siteSettings input[name=trialDays] { width:8rem; }
#siteSettings .check { min-height:44px; align-items:center; }
#siteSettings .check input { margin:0; }
#siteSettings>button { min-height:44px; }
.portal-page #newTemplate { margin:12px 0; }
#m3uFile[hidden] { display:none; }
.file-picker-field { min-width:0; }
.file-picker-field>label { margin-bottom:4px; }
.file-picker { display:flex; align-items:center; gap:8px; min-width:0; flex-wrap:wrap; }
.file-picker>button { flex:none; min-height:44px; }
.file-picker>span { min-width:0; overflow-wrap:anywhere; color:#becce0; }
.tv .file-picker>button,.tv .introduction details>summary { min-height:48px; }
#newTemplate label.check { min-height:44px; }
.tv .portal-page-heading>button,.tv .portal-page-heading>.actions>button,.tv #siteSettings input:not([type=checkbox]),.tv #siteSettings>button,.tv #newTemplate input[type=url] { min-height:48px; }
@media(max-width:700px) {
 .portal-page-heading { gap:8px 12px; }
 .portal-page-heading>p { flex-basis:100%; }
 .account-summary tbody { grid-template-columns:minmax(0,1fr); }
 .portal-page #siteSettings { grid-template-columns:minmax(0,1fr); }
 #siteSettings .settings-description { grid-column:auto; grid-row:auto; }
 #siteSettings .settings-registration { display:block; grid-column:auto; }
 #siteSettings .settings-registration>.check { margin-top:8px; }
}
