/* Shared phone/tablet baseline. Include after each page's own styles. */
html{ -webkit-text-size-adjust:100%;text-size-adjust:100% }
img,video,svg{max-width:100%}
input,select,textarea{min-width:0;max-width:100%}
button,a,summary{touch-action:manipulation}
button:focus-visible,a:focus-visible,summary:focus-visible{outline:2px solid #a2f2cb;outline-offset:3px}
[hidden]{display:none!important}
.mobile-menu-toggle{display:none}
dialog{overflow-y:auto;overscroll-behavior:contain;max-height:calc(100dvh - 32px)}
.panel,.card,.stat,.node-card,.player-area,.library,.signin-card,.signin-story{min-width:0}
.stat strong,.readiness,.saved-source,.node-card,.signin-message,.error,[role=status],code{overflow-wrap:anywhere}
@media(max-width:900px){
 button,input:not([type=checkbox]):not([type=radio]),select,summary{min-height:44px}
 input,select,textarea{font-size:16px!important}
 button{white-space:normal!important}
 .sidebar{position:sticky;top:0;z-index:30;inset-inline:auto;width:100%;padding:12px max(16px,env(safe-area-inset-left));border-right:0;border-bottom:1px solid #24303d;display:flex;flex-direction:row;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px}
 .sidebar .brand{font-size:21px}
 .sidebar .workspace,.sidebar .nav-label,.sidebar .sidebar-bottom{display:none}
 .mobile-menu-toggle{display:block;background:#192430;border:1px solid #344356;color:#e8eef6;border-radius:7px;padding:10px 16px}
 .sidebar nav{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:4px;flex-basis:100%;margin:0;max-height:60vh;max-height:60dvh;overflow-y:auto}
 .sidebar nav button{width:100%;margin:0;padding:12px;align-items:center;white-space:normal;min-width:0}
 .sidebar[data-nav-open=false] nav{display:none}
 .sidebar~main{margin-left:0;min-width:0}
 .sidebar~main>header{height:auto;min-height:48px;padding:10px 16px;gap:12px;flex-wrap:wrap}
 .page{padding:20px max(16px,env(safe-area-inset-right)) max(28px,env(safe-area-inset-bottom)) max(16px,env(safe-area-inset-left))}
 .page-heading,.section-head,.toolbar,.pagination,.node-edit,.controls{flex-wrap:wrap}
 .page-heading{gap:12px;align-items:flex-start}
 .page-heading>div,.section-head>div{min-width:0}
 .page-heading .primary{font-size:14px;padding:10px 16px}
 .toolbar input{max-width:none;flex:1 1 180px}
 .toolbar select{width:auto;max-width:100%;margin-left:0!important}
 .toolbar label{margin:0}
 .readiness{flex-wrap:wrap;align-items:center}
 .readiness>span:first-child{flex:1 1 100%}
 .readiness button{flex:1 1 auto}
 .stats,.nodes{grid-template-columns:repeat(2,minmax(0,1fr))}
 .stat strong{font-size:clamp(21px,4vw,30px)}
 .two-col,.lab-grid{grid-template-columns:minmax(0,1fr)}
 .panel{padding:16px}
 dialog,#test-channel-dialog,.provider-picker,.account-dialog{width:calc(100% - 24px);max-width:760px;max-height:calc(100vh - 24px);max-height:calc(100dvh - 24px);padding:18px;margin:auto}
 .dialog-head{gap:12px;align-items:center}
 .dialog-head h2{min-width:0;overflow-wrap:anywhere}
 .dialog-head>button{flex:0 0 44px;font-size:24px}
 .source-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
 .source-actions button{min-width:0}
 .form-grid,#assignment-options{grid-template-columns:minmax(0,1fr)}
 #assignment-options input,.failure-option input{width:22px;height:22px;flex-shrink:0}
 .saved-source textarea{font-size:16px;resize:vertical}
 #toast{left:12px;right:12px;bottom:max(12px,env(safe-area-inset-bottom));max-width:none;max-height:35dvh;overflow:auto;z-index:40}
 .table-scroll{overflow:visible;min-width:0}
 .table-scroll table[data-responsive]{display:block;white-space:normal}
 table[data-responsive] thead{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}
 table[data-responsive] tbody{display:grid;gap:14px}
 table[data-responsive] tbody tr{display:block;border:1px solid #344356;border-radius:9px;padding:12px;background:#0e1721}
 table[data-responsive] td{display:flex;flex-wrap:wrap;align-items:center;gap:8px;padding:8px 0;border:0;font-size:13px;min-width:0;overflow-wrap:anywhere}
 table[data-responsive] td::before{content:attr(data-label);flex:0 0 100%;font-size:10px;letter-spacing:.06em;font-weight:600;color:#8c9bad}
 table[data-responsive] td small{flex-basis:100%;margin:0;font-size:12px}
 table[data-responsive] td button{flex:1 1 100px;margin:0}
 .auth-top{height:auto;min-height:76px;padding:16px;gap:12px;flex-wrap:wrap}
 .auth-main{padding:24px 16px}
 .quiet-link{display:inline-flex;align-items:center;min-height:44px}
 .signin{grid-template-columns:minmax(0,1fr);max-width:470px;gap:24px;margin:0 auto}
 .signin-story h1{font-size:clamp(30px,7vw,40px)}
 .signin-card{padding:24px}
 .password-field input{padding-right:74px}
 .password-field button{top:2px;right:2px;min-height:44px;min-width:64px;font-size:13px}
 .watch-grid{grid-template-columns:minmax(0,1fr)}
 .watch-grid .library{order:2;max-height:none}
 .watch-grid .player-area{order:1}
 body>header:not(.auth-top){height:auto;min-height:72px;padding:12px 16px;gap:12px;flex-wrap:wrap}
 .account{flex-wrap:wrap;min-width:0}
 #username{max-width:none;white-space:normal;overflow-wrap:anywhere}
 .controls label{flex:1 1 140px;min-width:0}
 .controls select{width:100%;min-width:0}
 #reconnect{margin-left:0;flex:1 1 140px}
 #quality-status{flex-basis:100%;overflow-wrap:anywhere}
 #channels{grid-template-columns:repeat(auto-fit,minmax(min(180px,100%),1fr))}
 .channel{min-width:0;overflow-wrap:anywhere}
 .channel>span{min-width:0}
}
@media(max-width:420px){
 .stats,.nodes,.architecture{grid-template-columns:minmax(0,1fr)}
 .page-heading>.primary{width:100%}
 .signin-card{padding:20px}
 .pagination{gap:10px}
 .pagination button{margin-left:0}
 .secure{white-space:normal}
}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}

.service-settings{border-top:1px solid #35475a;margin-top:24px;padding-top:12px}.service-settings form{display:grid;gap:14px}.account-dialog fieldset{min-width:0;border:1px solid #35475a;margin:16px 0}.account-dialog [data-channels] label{display:flex;align-items:center;gap:12px;min-height:44px;overflow-wrap:anywhere}.account-dialog [data-channels] input{width:22px;height:22px;flex-shrink:0}
/* LiveTV+ control interface — scoped so customer/player layouts keep their behavior. */
body.panel-app{--bg:#101113;--panel:#181a1d;--line:#303238;--muted:#a5a8af;--text:#f0f0f2;--mint:#ff9600;--amber:#ffb347;background:var(--bg);color:var(--text);font-size:13px;line-height:1.45}
body.panel-app .sidebar{position:sticky;top:0;inset:auto;z-index:40;width:100%;height:auto;min-height:62px;display:flex;flex-direction:row;align-items:center;gap:28px;padding:0 24px;background:#181a1d;border:0;border-bottom:2px solid #ff9600}
body.panel-app .brand{flex-shrink:0;gap:8px;font-size:23px;letter-spacing:-1px;color:#f4f4f4}
body.panel-app .brand-word>span{color:#ff9600}body.panel-app .brand small{font-size:9px;letter-spacing:1.5px;align-self:center;margin:0 0 0 4px}
body.panel-app nav{display:flex;flex:1;align-items:center;gap:4px;margin:0;overflow:visible;flex-wrap:wrap}
body.panel-app nav button,body.panel-app nav summary{display:block;width:auto;white-space:nowrap;border:0;border-radius:3px;background:transparent;color:#c2c4c9;font-size:13px;font-weight:600;padding:12px 13px;margin:0;cursor:pointer}
body.panel-app nav button.active,body.panel-app nav .nav-group.active>summary{color:#ffac36;background:#ff960012}
body.panel-app nav button:hover,body.panel-app nav summary:hover{color:white;background:#27292d}
body.panel-app nav .signout{margin-left:auto;color:#a5a8af;font-weight:400}
body.panel-app .nav-group{position:relative}body.panel-app .nav-group>div{position:absolute;right:0;top:100%;width:200px;background:#202226;border:1px solid #383b42;box-shadow:0 10px 28px #0007;padding:6px;z-index:45;border-radius:4px}
body.panel-app .nav-group>div button{width:100%;text-align:left}
body.panel-app main{margin:0;min-width:0}body.panel-app .page{max-width:1920px;padding:22px 24px 48px}
body.panel-app .page-heading{margin-bottom:16px;align-items:center;gap:12px}body.panel-app h1{font-size:25px;line-height:1.2;letter-spacing:-.5px;margin:4px 0 5px}body.panel-app h2{font-size:16px}body.panel-app h3{font-size:14px}
body.panel-app .eyebrow{font-size:9px;letter-spacing:1px;margin:0;color:#969aa3}body.panel-app .page-heading p:last-child{font-size:12px}
body.panel-app .panel{padding:14px 0;margin:12px 0 0;border:0;border-top:1px solid #303238;border-radius:0;background:transparent}
body.panel-app .panel:first-child{margin-top:0}body.panel-app .section-head{margin-bottom:12px;gap:10px}
body.panel-app .stats{gap:0;border-bottom:1px solid #303238}body.panel-app .stat{border:0;border-right:1px solid #303238;background:transparent;border-radius:0;padding:10px 16px}body.panel-app .stat strong{font-size:25px;margin:3px 0}
body.panel-app .billing-card,body.panel-app .node-card{background:transparent;border:0;border-bottom:1px solid #303238;border-radius:0;padding:12px 0;box-shadow:none}
body.panel-app .nodes{display:block}body.panel-app .node-card button{margin-top:0}body.panel-app .node-card p{margin:6px 0}
body.panel-app .billing-grid{gap:14px}body.panel-app .billing-money{color:#ffad39;font-size:22px}body.panel-app .billing-note{padding:10px 12px;background:#272119;border-color:#ff9600}
body.panel-app .account-page .account-grid{gap:16px}body.panel-app .account-page .panel{padding:12px 0}body.panel-app .account-page a,body.panel-app .saved-source summary,body.panel-app #playlist-link{color:#ffad39}
body.panel-app .account-page .ping-tile{background:transparent;border:0;border-left:2px solid #55585f;border-radius:0;padding:8px 12px}
body.panel-app button,body.panel-app .secondary,body.panel-app .billing-dialog button{min-height:32px;border-radius:4px;padding:6px 10px;font-size:12px;background:#25272c;border:1px solid #44474f;color:#e6e7ea}
body.panel-app .primary,body.panel-app .billing-dialog .primary{background:#ff9600;border-color:#ff9600;color:#18110a;font-weight:650}body.panel-app .primary:hover{background:#ffad38}
body.panel-app .secondary:hover{border-color:#989ca5;background:#303239}body.panel-app .icon-button{background:transparent;border:0}
body.panel-app input,body.panel-app select,body.panel-app textarea,body.panel-app .billing-dialog input,body.panel-app .billing-dialog select,body.panel-app .billing-dialog textarea{background:#141518;color:#f0f0f2;border:1px solid #44474f;border-radius:4px;padding:7px 9px;font-size:13px;min-height:34px;margin-top:4px}
body.panel-app input[type=checkbox],body.panel-app input[type=radio]{min-height:0;accent-color:#ff9600}body.panel-app label{font-size:12px;margin:8px 0}
body.panel-app input:focus,body.panel-app textarea:focus,body.panel-app select:focus{border-color:#ff9600}body.panel-app :focus-visible{outline-color:#ffb34c}
body.panel-app dialog,body.panel-app .billing-dialog{background:#1b1d21;color:#f0f0f2;border:1px solid #4b4e56;border-radius:6px;padding:20px}
body.panel-app .billing-tabs{border-bottom:1px solid #393c43;gap:2px;margin:10px 0;padding-bottom:0}body.panel-app .billing-tabs button{background:transparent;border:0;border-bottom:2px solid transparent;border-radius:0;padding:8px 12px}
body.panel-app .billing-tabs button[aria-selected=true]{background:transparent;color:#ffad39;border-bottom-color:#ff9600}
body.panel-app td{padding:9px 10px;border-bottom:1px solid #2b2d32;font-size:12px}body.panel-app th{padding:9px 10px;font-size:10px;background:#1e2024;border-bottom:1px solid #3a3d44;color:#b7bbc3;letter-spacing:.6px}
body.panel-app tbody tr:hover{background:#ffffff04}body.panel-app .toolbar{gap:8px;margin:12px 0}
body.panel-app .tag{padding:2px 6px;border-radius:3px;background:#ff960016;color:#ffb54f}body.panel-app .tag.muted{background:#292b30;color:#b5b7bd}
body.panel-app .source-note{margin:10px 0;color:#a5a8af;font-size:11px}body.panel-app #toast{background:#24262b;border-color:#69605a;color:#faf0e1;border-left:3px solid #ff9600;border-radius:4px}
body.panel-app .row-actions{display:flex;align-items:center;gap:5px;flex-wrap:nowrap}body.panel-app .row-menu>summary,body.panel-app .inline-details>summary{cursor:pointer;font-size:11px;color:#c4c7cd;padding:6px 8px;border-radius:3px}
body.panel-app .row-menu>div{display:grid;gap:4px;min-width:150px;padding:6px 0}body.panel-app .row-menu button{width:100%}
body.panel-app .channel-toolbar{display:flex;align-items:end;gap:10px;flex-wrap:wrap;margin-bottom:14px}body.panel-app .channel-toolbar label{margin:0}body.panel-app .channel-toolbar .channel-search{flex:1;min-width:170px;max-width:400px}body.panel-app .channel-toolbar [data-channel-count]{margin:auto 0 7px auto}
body.panel-app .channel-scroll{overflow:auto;max-width:100%;padding-bottom:4px;scrollbar-color:#5c6069 #191b1f}
body.panel-app table.channel-table{display:table;width:100%;min-width:1040px;white-space:nowrap}
body.panel-app .channel-table thead{display:table-header-group;position:static;width:auto;height:auto;padding:0;margin:0;overflow:visible;clip:auto;white-space:nowrap}
body.panel-app .channel-table tbody{display:table-row-group}body.panel-app .channel-table tbody tr{display:table-row;border:0;border-radius:0;padding:0;background:transparent}
body.panel-app .channel-table td{display:table-cell;padding:9px 10px;border:0;border-bottom:1px solid #2b2d32;vertical-align:middle;white-space:nowrap}
body.panel-app .channel-table td::before{display:none}body.panel-app .channel-table td:first-child{min-width:160px}body.panel-app .channel-table td strong{font-weight:600}
body.panel-app .channel-table td small{display:inline;font-size:11px;margin:0}body.panel-app .channel-table td button{margin:0;flex:none}
body.panel-app .visibility-label{display:inline-block;color:#969ba5;font-size:10px;margin-left:8px}body.panel-app .inline-details{display:inline-block;vertical-align:middle;margin-left:4px}
body.panel-app .inline-details[open]{display:block;margin:4px 0;max-width:400px;white-space:normal}body.panel-app .inline-details p{font-size:11px;margin:4px 0;color:#b5b8bf;overflow-wrap:anywhere}
body.panel-app .channel-status{display:inline-flex;gap:6px;align-items:center;font-size:11px;text-transform:capitalize}body.panel-app .channel-status:before{content:'';width:6px;height:6px;border-radius:50%;background:#777d88}body.panel-app .channel-status.is-running:before{background:#77d39a}body.panel-app .channel-status.is-waiting:before{background:#ff9600}
@media(max-width:1100px){body.panel-app .sidebar{gap:12px;padding:8px 16px}body.panel-app nav button,body.panel-app nav summary{padding:10px 9px}}
@media(max-width:900px){
 body.panel-app .sidebar{justify-content:space-between;gap:8px;min-height:60px}body.panel-app .mobile-menu-toggle{display:block;min-height:44px}
 body.panel-app .sidebar nav{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));flex-basis:100%;max-height:65dvh;overflow-y:auto;gap:4px}
 body.panel-app .sidebar[data-nav-open=false] nav{display:none}body.panel-app nav button,body.panel-app nav summary{width:100%;text-align:left;min-height:44px;padding:12px}
 body.panel-app nav .signout{margin:0}body.panel-app .nav-group>div{position:static;width:auto;box-shadow:none;border:0;border-left:1px solid #555;padding:0 0 0 4px;margin-left:10px}
 body.panel-app .page{padding:16px max(12px,env(safe-area-inset-right)) 32px max(12px,env(safe-area-inset-left))}body.panel-app .page-heading{align-items:start}body.panel-app h1{font-size:23px}
 body.panel-app button,body.panel-app .secondary,body.panel-app .billing-dialog button,body.panel-app .row-menu>summary,body.panel-app .inline-details>summary{min-height:44px;padding:10px}
 body.panel-app input,body.panel-app select,body.panel-app textarea{font-size:16px;min-height:44px}body.panel-app input[type=checkbox]{min-height:22px}
 body.panel-app .channel-toolbar{gap:8px}body.panel-app .channel-toolbar .channel-search{max-width:none;flex-basis:100%}body.panel-app .channel-toolbar [data-channel-count]{margin:0;align-self:center}
 body.panel-app .channel-table td:first-child{position:sticky;left:0;background:#181a1d;z-index:1;box-shadow:1px 0 #383b42;max-width:180px;white-space:normal}
 body.panel-app .channel-table td{padding:7px 8px}body.panel-app .channel-scroll:focus-visible{outline-offset:1px}body.panel-app .source-note{line-height:1.6}
 body.panel-app .node-edit{display:grid;grid-template-columns:minmax(0,1fr);width:100%}body.panel-app .node-edit label{width:100%}
}

@media print{body.panel-app .billing-dialog.invoice-print{background:white;color:black;border:0}body.panel-app .invoice-print h2,body.panel-app .invoice-print h3,body.panel-app .invoice-print dd,body.panel-app .invoice-print .billing-message,body.panel-app .invoice-print .billing-money{color:black}}

body.panel-app button{font-family:inherit;font-weight:550;box-shadow:0 1px 2px #0003;transition:background .15s,border-color .15s}
body.panel-app button:disabled{opacity:.45;cursor:not-allowed;box-shadow:none}
body.panel-app .danger{background:#43272c;border-color:#784048;color:#ffb5bc}
body.panel-app .danger:hover{background:#63313a;border-color:#d57582}
body.panel-app .customer-filters{display:flex;align-items:end;gap:10px;flex-wrap:wrap;margin:16px 0}
body.panel-app .customer-filters label{margin:0;flex:1 1 130px;min-width:0}
body.panel-app .customer-filters .customer-search{flex:2 1 260px}
body.panel-app .customer-filters input,body.panel-app .customer-filters select{width:100%}
body.panel-app .customer-name{color:#f0f1f4;font-weight:650;text-decoration:none}body.panel-app .customer-name:hover{color:#ffad39}
body.panel-app .customer-table .cell-note{display:block;color:#979ca7;font-size:11px;margin-top:3px;max-width:250px;white-space:normal;overflow-wrap:anywhere}
body.panel-app table.customer-table{min-width:1440px}body.panel-app .customer-table td{height:66px}
body.panel-app .customer-table td[data-password]{min-width:175px}body.panel-app .customer-table .password-toggle{white-space:nowrap!important;min-width:52px;overflow-wrap:normal}
body.panel-app .customer-directory .channel-scroll{scroll-padding-left:180px}
body.panel-app .customer-table .watching-cell{max-width:250px;white-space:normal;overflow-wrap:anywhere}
body.panel-app .customer-table code{font-size:11px;display:inline-block;max-width:210px;white-space:normal;overflow-wrap:anywhere;vertical-align:middle}
body.panel-app .password-toggle{border:0;background:transparent;box-shadow:none;color:#ffb249;margin-left:6px!important}
body.panel-app .account-state{display:inline-flex;align-items:center;gap:6px;border-radius:4px;padding:4px 7px;background:#292c32;color:#bac0ca;font-size:11px;text-transform:capitalize}
body.panel-app .account-state:before{content:'';height:6px;width:6px;background:currentColor;border-radius:50%}
body.panel-app .state-active{background:#163629;color:#7cddb0}body.panel-app .state-expired{background:#3a2b18;color:#f3b959}body.panel-app .state-banned{background:#3e252e;color:#f3a1b4}
body.panel-app .connection-count{font-size:17px;color:#eee}
body.panel-app .customer-shortcuts{display:flex;gap:5px;align-items:center}
body.panel-app .customer-shortcuts .shortcut{width:31px;height:31px;min-height:31px;display:inline-flex;align-items:center;justify-content:center;padding:6px;border:1px solid #42464f;border-radius:5px;background:#262930;color:#bac5d6;position:relative}
body.panel-app .shortcut svg{width:17px;height:17px;flex-shrink:0}
body.panel-app .shortcut span{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
body.panel-app .customer-shortcuts .shortcut-details{color:#8fc4ff;background:#1d3043;border-color:#315172}
body.panel-app .customer-shortcuts .shortcut-kick,body.panel-app .customer-shortcuts .shortcut-disable{color:#ffcc7a;background:#392e1d;border-color:#605034}
body.panel-app .customer-shortcuts .shortcut-ban,body.panel-app .customer-shortcuts .shortcut-delete{color:#ff9dac;background:#3d252d;border-color:#67404b}
body.panel-app .customer-shortcuts .shortcut-enable,body.panel-app .customer-shortcuts .shortcut-unban{color:#8fdfb7;background:#21382e;border-color:#375b48}
body.panel-app .customer-shortcuts .shortcut:hover{filter:brightness(1.3);border-color:currentColor}
body.panel-app .customer-pagination{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-top:14px;color:#a9adb6;font-size:12px}
body.panel-app [data-updated]{margin-right:auto}
body.panel-app .customer-form,body.panel-app .server-install .form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px 16px}
body.panel-app .customer-dialog{width:min(600px,calc(100vw - 24px))}
body.panel-app .server-install>summary{color:#17110a;background:#ff9600;border:1px solid #ff9600;padding:9px 14px;border-radius:5px;width:fit-content;cursor:pointer;font-weight:650;min-height:38px}
body.panel-app .server-install .public-key{display:block;overflow-wrap:anywhere;white-space:normal;padding:12px;background:#131416;font-size:11px}
body.panel-app .server-install .button-group{margin:12px 0}body.panel-app .installer-message{white-space:normal;min-width:160px}
@media(max-width:900px){body.panel-app .customer-shortcuts .shortcut{width:44px;height:44px;min-height:44px}body.panel-app .customer-shortcuts{gap:7px}body.panel-app .server-install>summary{min-height:44px}body.panel-app .customer-form,body.panel-app .server-install .form-grid{grid-template-columns:minmax(0,1fr)}body.panel-app .customer-filters .customer-search{flex-basis:100%}body.panel-app .customer-directory .section-head{flex-wrap:wrap}body.panel-app .customer-pagination [data-updated]{flex-basis:100%}}

/* Shared customer surfaces: panel palette, compact controls and top navigation. */
body.customer-app,body.webplayer-app{background:#101113;color:#f0f0f2;font:14px/1.5 'Segoe UI',system-ui,sans-serif;color-scheme:dark}
body.customer-app:before{display:none}
body.customer-app .auth-top,body.webplayer-app>header{max-width:none;min-height:64px;height:auto;padding:12px 24px;background:#181a1d;border-bottom:2px solid #ff9600;gap:20px;flex-wrap:wrap}
body.customer-app .auth-brand,body.webplayer-app .brand{letter-spacing:.02em;font-size:21px;gap:9px}
body.customer-app .auth-brand>span,body.webplayer-app .brand>span{width:32px;height:32px;background:#ff9600;color:#18110a;border-radius:4px;font-size:22px}
body.customer-app .auth-main,body.webplayer-app main{max-width:1920px;padding:24px;margin:auto}
body.customer-app .auth-top nav{display:flex;gap:4px;align-items:center;flex:1;flex-wrap:wrap}
body.customer-app .auth-top nav a{color:#c7c9cf;text-decoration:none;padding:10px 12px;font-size:13px;font-weight:600;border-radius:4px}
body.customer-app .auth-top nav a:hover,body.customer-app .auth-top nav a:focus-visible{background:#ff960016;color:#ffac36}
body.customer-app button,body.webplayer-app button,body.customer-app .billing-link{border-radius:4px;border:1px solid #44474f;background:#25272c;color:#e6e7ea;padding:8px 12px;min-height:36px;font:600 12px/1.4 'Segoe UI',system-ui,sans-serif}
body.customer-app button:hover,body.webplayer-app button:hover{border-color:#ffad39;background:#303239}
body.customer-app input,body.customer-app select,body.customer-app textarea,body.webplayer-app input,body.webplayer-app select{background:#141518;color:#f0f0f2;border:1px solid #44474f;border-radius:4px;font-size:14px;padding:8px 10px;min-height:36px}
body.customer-app :focus-visible,body.webplayer-app :focus-visible{outline-color:#ffad39}
body.customer-app .signin-submit,body.webplayer-app .signin-submit,body.customer-app .watch-button,body.customer-app .billing-dialog .primary{background:#ff9600;border-color:#ff9600;color:#18110a;border-radius:4px}
body.customer-app .signin-submit:hover,body.webplayer-app .signin-submit:hover,body.customer-app .watch-button:hover{background:#ffb347}
body.customer-app .signin,body.webplayer-app .signin{margin:40px auto;max-width:1080px}
body.customer-app .signin-card,body.webplayer-app .signin-card,body.customer-app .billing-dialog{background:#1b1d21;border:1px solid #44474f;border-radius:6px;box-shadow:none}
body.customer-app .password-field button,body.webplayer-app .password-field button{background:transparent;border:0;min-height:34px;padding:0 10px}
body.customer-app .auth-eyebrow,body.webplayer-app .eyebrow,body.customer-app .billing-money,body.webplayer-app .play-symbol{color:#ffad39}
body.customer-app #account>h1{font-size:26px;margin:4px 0 20px}body.customer-app #account>.auth-eyebrow{margin:0;font-size:10px}
body.customer-app .customer-grid{grid-template-columns:minmax(0,1.35fr) minmax(0,1fr);gap:24px;border-top:1px solid #303238}
body.customer-app #account .signin-card,body.customer-app .billing-card{background:transparent;border:0;border-bottom:1px solid #303238;border-radius:0;padding:18px 0;box-shadow:none}
body.customer-app #account h2{font-size:18px;margin:0 0 12px;letter-spacing:-.3px}
body.customer-app #account h3{font-size:15px}body.customer-app .customer-grid dl{font-size:13px;gap:10px;margin:16px 0}
body.customer-app .customer-grid dt,body.customer-app .signin-footnote,body.customer-app .signin-intro,body.customer-app .billing-card p,body.webplayer-app p{color:#a5a8af}
body.customer-app .watch-button{max-width:340px;padding:10px 14px;min-height:40px;font-size:13px;margin:16px 0}
body.customer-app .customer-billing{margin-top:24px}body.customer-app .billing-grid{gap:20px}body.customer-app .billing-money{font-size:23px;font-weight:650}
body.customer-app .billing-note{background:#292219;border-left:3px solid #ff9600;padding:10px 14px;font-size:12px}
body.customer-app .billing-form{max-width:680px}body.customer-app .billing-form input[type=checkbox]{width:20px;min-height:20px;height:20px;accent-color:#ff9600}
body.customer-app .billing-dialog .billing-message{background:#222428;border-color:#3e4148;border-radius:4px}
body.customer-app #customer-billing,body.customer-app #customer-products,body.customer-app #customer-support{scroll-margin-top:20px}
body.webplayer-app .watch-grid{display:flex;flex-direction:column;gap:20px}
body.webplayer-app .player-area{order:0;min-width:0}
body.webplayer-app .player-info{margin:0 0 10px;padding:12px 16px;background:#1b1d21;border:1px solid #303238;border-radius:5px;display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap}
body.webplayer-app .now-title{min-width:0;flex:1 1 230px}body.webplayer-app .player-info h2{margin:2px 0;font-size:20px;overflow-wrap:anywhere}
body.webplayer-app #playback-message{font-size:12px;margin:2px 0 0}body.webplayer-app .controls{gap:10px;align-items:center;flex-wrap:wrap}
body.webplayer-app .controls label{display:flex;align-items:center;gap:8px;font-size:12px}body.webplayer-app .controls select{min-width:100px;margin:0}
body.webplayer-app #quality-status{color:#b5b8c1;max-width:220px}body.webplayer-app #reconnect{margin:0}
body.webplayer-app .video-shell{border-radius:5px;border:1px solid #303238;aspect-ratio:auto;width:100%;height:min(68vh,calc((100vw - 48px)*.5625));min-height:170px;background:#000}
body.webplayer-app video{object-fit:contain}body.webplayer-app #empty{background:radial-gradient(ellipse at center,#26211a,#090a0c)}
body.webplayer-app .library{order:1;width:100%;max-height:none;overflow:visible;border:0;border-top:1px solid #303238;border-radius:0;padding:16px 0;background:transparent}
body.webplayer-app .guide-toolbar{display:flex;align-items:end;gap:12px;flex-wrap:wrap;margin-bottom:14px}body.webplayer-app .guide-toolbar>div{margin-right:auto}
body.webplayer-app .guide-toolbar h2{font-size:19px}body.webplayer-app .guide-toolbar .search{margin:0;min-width:160px;flex:0 1 240px;font-size:12px;gap:4px}
body.webplayer-app .guide-scroll{overflow:auto;max-width:100%;border:1px solid #303238;border-radius:4px;scroll-padding-left:170px}
body.webplayer-app .guide-head,body.webplayer-app .channel{display:grid;grid-template-columns:230px minmax(250px,1fr) minmax(210px,.8fr);min-width:760px;gap:0;width:100%}
body.webplayer-app .guide-head{background:#23252a;font-size:10px;letter-spacing:1px;color:#a5a8af}
body.webplayer-app .guide-head>span{padding:10px 14px}body.webplayer-app #channels{display:block}
body.webplayer-app .channel{border:0;border-top:1px solid #303238;border-radius:0;background:#15171a;padding:0;text-align:left;min-height:65px;font-weight:400;align-items:stretch}
body.webplayer-app .channel>span{padding:13px 14px;border-right:1px solid #303238;min-width:0;overflow-wrap:anywhere;white-space:normal;position:relative}
body.webplayer-app .channel>span:first-child{padding-left:28px;background:#1b1d21}
body.webplayer-app .channel strong{font-size:13px;color:#f0f0f2}body.webplayer-app .channel small{color:#9a9ea8;margin-top:3px;font-size:11px}
body.webplayer-app .channel .dot{position:absolute;left:12px;top:21px;background:#ffad39;width:6px;height:6px}body.webplayer-app .channel .dot.offline{background:#727783}
body.webplayer-app .guide-programme{display:flex;align-items:center;font-size:13px;color:#c3c6cc}body.webplayer-app .guide-next{color:#8f949e}
body.webplayer-app .channel[aria-pressed=true],body.webplayer-app .channel[aria-pressed=true]>span:first-child{background:#3a2a18;box-shadow:inset 3px 0 #ff9600}
body.webplayer-app .channel:hover,body.webplayer-app .channel:hover>span:first-child{background:#292b30}
body.webplayer-app .guide-note,body.webplayer-app #catalog-message{font-size:12px;margin:10px 0 0}
@media(max-width:900px){body.customer-app .auth-top,body.webplayer-app>header{padding:12px 16px;gap:12px}body.customer-app .auth-main,body.webplayer-app main{padding:18px 12px}body.customer-app .auth-top nav{order:2;flex-basis:100%}body.customer-app .auth-top nav a{min-height:44px;padding:12px 10px}body.customer-app #logout{margin-left:auto}body.customer-app button,body.webplayer-app button{min-height:44px}body.customer-app input,body.customer-app select,body.webplayer-app input,body.webplayer-app select{min-height:44px;font-size:16px}body.customer-app .customer-grid{grid-template-columns:minmax(0,1fr);gap:0}body.customer-app .customer-grid dl{grid-template-columns:minmax(100px,.6fr) minmax(0,1fr);gap:10px}body.customer-app .customer-grid dd{margin:0}body.webplayer-app .player-info{padding:10px 12px;gap:8px}body.webplayer-app .now-title{flex-basis:100%}body.webplayer-app .controls{width:100%;gap:8px}body.webplayer-app .controls label{flex:0 1 auto}body.webplayer-app #quality-status{flex:1 1 100px;font-size:11px}body.webplayer-app .video-shell{height:auto;aspect-ratio:16/9;min-height:0}body.webplayer-app .guide-toolbar .search{flex:1 1 150px}body.webplayer-app .guide-toolbar>div{flex-basis:100%}body.webplayer-app .guide-head,body.webplayer-app .channel{grid-template-columns:160px minmax(230px,1fr) minmax(200px,.8fr);min-width:620px}body.webplayer-app .channel>span:first-child,body.webplayer-app .guide-head>span:first-child{position:sticky;left:0;z-index:1;background:#1b1d21}body.webplayer-app .account{gap:10px;flex-wrap:wrap}body.webplayer-app .brand small{display:none}}

/* ULTV shared visual finish: warm light, broadcast rings, and compact surfaces. */
body.panel-app,body.customer-app,body.webplayer-app,body.auth-page{--ultv-accent:#ffad42;--ultv-border:#343944;--ultv-muted:#aeb5c2;background:radial-gradient(ellipse at 90% 0%,#b16c1812,transparent 42%),linear-gradient(155deg,#12161d,#101216 65%);color:#f1f3f7;font-family:'Segoe UI',system-ui,-apple-system,sans-serif}
body.panel-app .topbar,body.customer-app .auth-top,body.webplayer-app>header,body.auth-page:not(.customer-app) .auth-top{background:linear-gradient(110deg,#202630,#171a21 68%,#2b241d);border-bottom:1px solid #a76d2d;box-shadow:0 5px 24px #0003}
body.auth-page:not(.customer-app) .auth-top{max-width:none}
body.panel-app .brand-word{letter-spacing:-1px}body.panel-app .brand-word>span{color:#ffad42}
body.panel-app .brand::before{content:'';width:28px;height:28px;flex:none;border:1px solid #ffb454;border-radius:9px;background:linear-gradient(135deg,#ffbe63,#f28a17);box-shadow:inset 0 1px #ffe6b8,0 2px 12px #ff980020;clip-path:polygon(0 0,100% 0,100% 100%,0 100%,0 0,37% 24%,37% 76%,76% 50%,37% 24%)}
body.customer-app .auth-brand>span,body.webplayer-app .brand>span,body.auth-page .auth-brand>span{background:linear-gradient(135deg,#ffd080,#ff9b26);border-radius:10px;box-shadow:inset 0 1px #fff8,0 3px 14px #ff960022;color:#251a0c}
body.panel-app .page-heading{position:relative;isolation:isolate;padding:18px 20px;border:1px solid #3c3d40;border-radius:12px;background:linear-gradient(110deg,#252a33,#1a1e26 65%,#31291f);min-height:100px}
body.panel-app .page-heading::after{content:'';position:absolute;inset:0;z-index:-1;border-radius:inherit;pointer-events:none;background:repeating-radial-gradient(circle at 94% 150%,transparent 0 28px,#e8af5320 29px 30px,transparent 31px 54px);opacity:.7}
body.panel-app .page-heading h1{font-size:27px;letter-spacing:-.8px}body.panel-app .page-heading .eyebrow{color:#f4bb68;font-weight:650;letter-spacing:1.5px}body.panel-app .page-heading #subtitle{color:#b8bfca}
body.panel-app nav button,body.panel-app nav summary,body.customer-app .auth-top nav a{border-radius:7px;transition:background .15s,color .15s}
body.panel-app nav button.active,body.panel-app nav .nav-group.active>summary{background:linear-gradient(135deg,#ffb64920,#ff960009);box-shadow:inset 0 -2px #f7a53e;color:#ffc575}
body.panel-app button,body.panel-app .secondary,body.customer-app button,body.webplayer-app button,body.customer-app .billing-link{border-radius:7px;border-color:#454c58;box-shadow:inset 0 1px #ffffff08;background-image:linear-gradient(#ffffff05,#ffffff00);transition:border-color .15s,background-color .15s,box-shadow .15s}
body.panel-app button:hover,body.customer-app button:hover,body.webplayer-app button:hover{border-color:#c7924b;box-shadow:0 2px 8px #0002}
body.panel-app .primary,body.panel-app .billing-dialog .primary,body.customer-app .signin-submit,body.webplayer-app .signin-submit,body.auth-page .signin-submit,body.customer-app .watch-button{background:linear-gradient(110deg,#ffbb58,#ff9a24);border-color:#ffc16b;color:#23190d;border-radius:8px;box-shadow:inset 0 1px #fff5,0 3px 12px #ff960018}
body.panel-app input,body.panel-app select,body.panel-app textarea,body.customer-app input,body.customer-app select,body.customer-app textarea,body.webplayer-app input,body.webplayer-app select,body.auth-page .signin-card input{border-radius:7px;border-color:#414956;background-color:#141922}
body.panel-app :focus-visible,body.customer-app :focus-visible,body.webplayer-app :focus-visible,body.auth-page :focus-visible{outline:2px solid #ffc575;outline-offset:3px}
body.panel-app .channel-scroll,body.webplayer-app .guide-scroll{border:1px solid #343b47;border-radius:9px;background:#151a22;box-shadow:0 5px 20px #0002}
body.panel-app th,body.webplayer-app .guide-head{background:#232b36;color:#c7cdd7}
body.panel-app .channel-table tbody tr:nth-child(even){background:#ffffff02}body.panel-app .channel-table tbody tr:hover{background:#ffb64909}
body.panel-app .billing-tabs button[aria-selected=true]{color:#ffbf68;border-bottom-color:#ffac3b;background:#ffad420a}
body.panel-app .billing-note,body.customer-app .billing-note{background:linear-gradient(100deg,#31291d,#211f1b);border-left-color:#ffb453;border-radius:0 8px 8px 0;color:#d9c8ab}
body.panel-app .stats{gap:10px;border:0}body.panel-app .stat{background:linear-gradient(120deg,#212934,#191e26);border:1px solid #353e4b;border-radius:9px;box-shadow:inset 0 2px #ffad4255}body.panel-app .stat strong{color:#ffbd68}
body.panel-app dialog,body.panel-app .billing-dialog,body.customer-app .billing-dialog{background:linear-gradient(145deg,#242b36,#191e27);border-color:#4c5665;border-radius:12px;box-shadow:0 24px 80px #0009}
body.panel-app .nav-group>div{background:#202731;border-color:#46505e;border-radius:9px}
body.customer-app #account>.auth-eyebrow{color:#ffbd68;letter-spacing:1.8px}body.customer-app #account>h1{font-size:30px;letter-spacing:-.8px}
body.customer-app .customer-grid{border:0;gap:20px}body.customer-app #account .customer-grid>.signin-card{padding:22px;border:1px solid #37404d;border-radius:12px;background:linear-gradient(135deg,#222b36,#171d26);box-shadow:0 8px 26px #0002}
body.customer-app #account .customer-grid>.signin-card:nth-child(2){background:radial-gradient(ellipse at 100% 0,#a5662126,transparent 70%),linear-gradient(135deg,#252a32,#191d24)}
body.customer-app #account h2::before{content:'';display:inline-block;width:5px;height:15px;border-radius:4px;background:linear-gradient(#ffcf83,#ff9727);margin-right:9px;vertical-align:-1px}
body.customer-app .billing-card{border-bottom-color:#3b4350;padding:20px 0}body.customer-app .billing-money{color:#ffc16f}body.customer-app .watch-button{text-decoration:none}
body.webplayer-app .player-info{border:1px solid #3a4350;border-radius:10px;background:linear-gradient(110deg,#26303d,#1c212a 65%,#30281d);box-shadow:0 5px 20px #0002}
body.webplayer-app .player-info .eyebrow{color:#ffc06a;letter-spacing:1.7px}body.webplayer-app .video-shell{border-radius:10px;border-color:#3d4652;box-shadow:0 10px 35px #0005}
body.webplayer-app #empty{background:radial-gradient(ellipse at 50% 65%,#73502725,transparent 65%),#0c1016}body.webplayer-app .play-symbol{display:grid;place-items:center;width:68px;height:68px;margin:0 auto 14px;border:1px solid #8a6533;border-radius:50%;background:#ffb6490c;color:#ffc575;box-shadow:0 0 0 10px #ffb64905;font-size:26px}
body.webplayer-app .channel[aria-pressed=true],body.webplayer-app .channel[aria-pressed=true]>span:first-child{background:#392e20;box-shadow:inset 3px 0 #ffb649}
body.auth-page .signin-card,body.webplayer-app .signin-card,body.customer-app .signin-card{background:linear-gradient(145deg,#252e3a,#181e27);border:1px solid #46505f;border-radius:16px;box-shadow:0 18px 55px #0004}
body.auth-page .access-label,body.webplayer-app .access-label,body.customer-app .access-label{color:#ffca81;border-color:#85633a;background:#ffb6490b;border-radius:30px;letter-spacing:1.2px}
body.auth-page .signin-story h1,body.customer-app .signin-story h1,body.webplayer-app .signin-story h1{letter-spacing:-1.6px}body.auth-page .signin-story h1 em,body.customer-app .signin-story h1 em,body.webplayer-app .signin-story h1 em{color:#ffc06a}
body.auth-page .signal-art,body.webplayer-app .signal-art{height:140px;border:1px solid #3d424b;border-radius:12px;background:repeating-radial-gradient(ellipse at 85% 100%,transparent 0 25px,#ffb64925 26px 27px,transparent 28px 46px),linear-gradient(120deg,#242c37,#2c251c);box-shadow:inset 0 1px #ffffff08}
body.customer-app .signin-story::after{content:'';display:block;height:110px;margin-top:24px;border-radius:12px;border:1px solid #3d424b;background:repeating-radial-gradient(ellipse at 80% 110%,transparent 0 24px,#ffb64930 25px 26px,transparent 27px 44px),linear-gradient(120deg,#242c37,#2c251c)}
@media(max-width:900px){body.panel-app .page-heading{padding:15px;min-height:96px}body.panel-app .page-heading h1{font-size:25px}body.panel-app button,body.panel-app .secondary,body.customer-app button,body.webplayer-app button{min-height:44px}body.panel-app input,body.panel-app select,body.panel-app textarea,body.customer-app input,body.customer-app select,body.customer-app textarea,body.webplayer-app input,body.webplayer-app select{font-size:16px}body.customer-app #account .customer-grid>.signin-card{padding:18px}body.customer-app .signin-story::after{height:60px;margin-top:16px}body.panel-app .channel-table td:first-child{background:#1c232d}}
@media(prefers-reduced-motion:reduce){body.panel-app *,body.customer-app *,body.webplayer-app *,body.auth-page *{transition:none!important}}
body.panel-app,body.customer-app,body.webplayer-app,body.auth-page{min-height:100vh;background-repeat:no-repeat;background-color:#101216}

/* Clickable control overview; retain compact management lists on destination pages. */
body.panel-app .overview-heading{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;margin:6px 0 16px;font-size:12px;color:#aeb7c5}body.panel-app .overview-live{color:#94dbb3;font-weight:600}
body.panel-app .overview-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin-bottom:20px}
body.panel-app .overview-tile{position:relative;display:grid;grid-template-columns:44px minmax(0,1fr);gap:5px 14px;align-items:center;text-decoration:none;color:#f0f3f8;padding:20px;border:1px solid #394351;border-radius:12px;background:linear-gradient(120deg,#242f3d,#191f29);box-shadow:0 5px 18px #0002;min-width:0}
body.panel-app .overview-icon{display:grid;place-items:center;width:40px;height:40px;color:#ffc16c;background:#ffae4610;border:1px solid #b6803a55;border-radius:10px}body.panel-app .overview-icon svg{width:23px;height:23px}
body.panel-app .overview-tile>.overview-icon{grid-row:1/4}body.panel-app .overview-label{font-size:12px;color:#c3cad5}body.panel-app .overview-tile>strong{font-size:30px;line-height:1.3;letter-spacing:-.6px;overflow-wrap:anywhere}body.panel-app .overview-note{font-size:11px;color:#aab4c2;overflow-wrap:anywhere}body.panel-app .overview-arrow{position:absolute;right:12px;top:10px;color:#aeb8c6}body.panel-app .overview-tile:hover{border-color:#d89b4b;background:linear-gradient(120deg,#2d3948,#242821)}body.panel-app .overview-warning{border-color:#95594b}body.panel-app .overview-warning>strong{color:#ffb29a}
body.panel-app .overview-detail-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:18px;margin-bottom:18px}body.panel-app .overview-detail{padding:18px;border:1px solid #37414d;border-radius:12px;background:#1b222c;min-width:0}body.panel-app .overview-detail a{color:#ffc16c;text-decoration:none}body.panel-app .overview-detail .section-head{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}body.panel-app .overview-detail .section-head h2{margin:0}body.panel-app .overview-detail .section-head a{font-size:12px}body.panel-app .overview-resources{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-top:20px}body.panel-app .overview-resources a{display:flex;flex-direction:column;gap:9px;padding:12px 0;color:#bec7d4;font-size:12px}body.panel-app .overview-resources strong{color:#f4f6fa;font-size:22px;overflow-wrap:anywhere}body.panel-app .overview-resources small{font-size:11px;color:#a9b2c0}
body.panel-app table.overview-network{min-width:430px;width:100%;display:table}body.panel-app .overview-network thead{display:table-header-group;position:static;clip:auto;height:auto;width:auto}body.panel-app .overview-network tbody{display:table-row-group}body.panel-app .overview-network tr{display:table-row}body.panel-app .overview-network td{display:table-cell;white-space:nowrap}body.panel-app .overview-network td::before{display:none}body.panel-app .overview-server{display:flex;align-items:center;gap:14px;min-height:70px;border-bottom:1px solid #39424e;padding:12px 0}body.panel-app .overview-server>span:nth-child(2){flex:1;min-width:0;overflow-wrap:anywhere}body.panel-app .overview-server strong{color:#f2f4f8;font-size:14px}body.panel-app .overview-server small{display:block;margin-top:5px;color:#a9b3c1}body.panel-app .overview-server>span:last-child{font-size:12px}body.panel-app .overview-detail .subtle{font-size:12px;line-height:1.6;color:#a9b3c1}
@media(max-width:1050px){body.panel-app .overview-detail-grid{grid-template-columns:minmax(0,1fr)}}@media(max-width:700px){body.panel-app .overview-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}body.panel-app .overview-tile{padding:14px;grid-template-columns:minmax(0,1fr);gap:7px}body.panel-app .overview-tile>.overview-icon{grid-row:auto}body.panel-app .overview-tile>strong{font-size:25px}body.panel-app .overview-detail{padding:14px}body.panel-app .overview-resources{gap:8px}body.panel-app .overview-resources strong{font-size:18px}body.panel-app .overview-detail .section-head a{display:inline-flex;align-items:center;min-height:44px}}

/* Direct channel shortcuts replace the expanding More menu. */
body.panel-app .channel-table .channel-action{display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;min-height:34px;padding:7px;border-radius:7px;flex:none}body.panel-app .channel-action svg{width:18px;height:18px;pointer-events:none}body.panel-app .channel-table .channel-action-stop{color:#ffb29f;background-color:#382923;border-color:#684739}body.panel-app .channel-table .channel-action-retry{color:#ffd083;background-color:#342d20;border-color:#665334}body.panel-app .channel-table .channel-action-check{color:#9edbc1;background-color:#21342f;border-color:#3b5c50}body.panel-app .channel-table .channel-action-visibility{color:#acd0fa;background-color:#243140;border-color:#405772}body.panel-app .channel-table .channel-action:disabled{opacity:.35;cursor:not-allowed;box-shadow:none}body.panel-app .channel-table .channel-action:hover:not(:disabled){border-color:currentColor;filter:brightness(1.15)}@media(max-width:900px){body.panel-app .channel-table .channel-action{width:44px;height:44px;min-height:44px;padding:11px}}
body.panel-app .server-directory .section-head{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap}body.panel-app .server-table{min-width:1280px}body.panel-app .server-cell-note{display:block;color:#aab4c2;font-size:11px;margin-top:5px;white-space:normal;max-width:230px}body.panel-app .server-table meter{display:block;width:110px;height:7px;margin:8px 0;accent-color:#ffb44e}body.panel-app .server-service,body.panel-app .server-net{display:block;margin:6px 0}body.panel-app .server-service i{display:inline-block;width:6px;height:6px;border-radius:50%;background:#919aaa;margin-right:6px}body.panel-app .server-service i.ok{background:#82d9a7}body.panel-app .server-history{margin-top:18px;border-top:1px solid #39414c;padding-top:14px}body.panel-app .server-history>summary{cursor:pointer;color:#ffbf68;font-size:13px;padding:10px 0}body.panel-app .server-manage-dialog{width:min(680px,calc(100vw - 24px));max-height:90dvh;overflow:auto}body.panel-app .server-manage-dialog .section-head{display:flex;align-items:center;justify-content:space-between}body.panel-app .server-manage-dialog .node-card{border:0}body.panel-app #server-installer{margin-top:20px}
body.panel-app th .column-sort{display:inline-flex;align-items:center;gap:7px;width:100%;padding:0;min-height:28px;border:0;background:none;box-shadow:none;color:inherit;font:inherit;text-align:left;letter-spacing:inherit}body.panel-app th .column-sort::after{content:'↕';color:#8895a6}body.panel-app th[aria-sort=ascending] .column-sort::after{content:'↑';color:#ffbf68}body.panel-app th[aria-sort=descending] .column-sort::after{content:'↓';color:#ffbf68}body.panel-app .account-overview-layout{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);gap:18px}body.panel-app .account-overview-layout .account-service-wide{grid-column:1/-1;padding:20px;border:1px solid #3b4655;border-radius:12px;background:linear-gradient(120deg,#252f3c,#1c222b);display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px 24px}body.panel-app .account-service-wide h3,body.panel-app .account-service-wide .toolbar,body.panel-app .account-service-wide p:last-child{grid-column:1/-1}body.panel-app .account-contact-compact form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px 14px}body.panel-app .account-notes-bottom{margin-top:24px}body.panel-app .account-notes-bottom textarea{min-height:85px}body.panel-app .compact-action{width:34px;height:34px;min-height:34px;padding:5px;font-size:18px}body.panel-app .panel>.section-head{display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap}body.panel-app .watching-cell a{color:#ffc16c;text-decoration:none}body.panel-app dialog table.channel-table{min-width:620px}@media(max-width:900px){body.panel-app th .column-sort{min-height:44px}body.panel-app .compact-action{width:44px;height:44px;min-height:44px}body.panel-app .account-overview-layout{grid-template-columns:minmax(0,1fr)}body.panel-app .account-overview-layout .account-service-wide{grid-template-columns:minmax(0,1fr)}body.panel-app .account-contact-compact form{grid-template-columns:minmax(0,1fr)}}

.channel-logo,.channel-logo-placeholder{width:48px;height:40px;object-fit:contain;display:inline-flex;align-items:center;justify-content:center}.channel-logo-placeholder{border-radius:8px;background:#ff9f1820;color:#ffb449;font-weight:700}.channel-table td small{display:block;margin-top:4px;color:#9da8b9}.channel-library table{min-width:1200px}
@media(max-width:600px){body.panel-app .channel-table td:first-child{position:static;box-shadow:none}}
body.panel-app .channel-library .channel-table td:first-child{min-width:55px}body.panel-app .channel-library .channel-table td small{display:block;margin-top:4px}

.logo-results{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,180px),1fr));gap:12px}.logo-result{border:1px solid var(--border,#3c424b);border-radius:10px;padding:12px;display:flex;flex-direction:column;gap:8px;min-width:0}.logo-result img{height:64px;max-width:100%;object-fit:contain}.logo-result p{overflow-wrap:anywhere;font-size:13px;margin:0}.logo-result button{white-space:normal}.logo-tools{margin-bottom:16px}

.provider-picker video{display:block;width:100%;max-width:100%;max-height:55vh;background:#000}.provider-picker td:last-child button{margin:3px}.provider-picker{box-sizing:border-box;max-width:calc(100vw - 24px)}
body.panel-app [data-epg-picker] table{min-width:0;width:100%;table-layout:fixed}body.panel-app [data-epg-picker] th,body.panel-app [data-epg-picker] td{min-width:0;white-space:normal;overflow-wrap:anywhere;padding:8px}body.panel-app [data-epg-picker] th:first-child{width:45%}body.panel-app [data-epg-picker] th:nth-child(2){width:25%}body.panel-app [data-epg-picker] td button{padding:6px;font-size:12px;max-width:100%}

/* Bulk provider review retains every column and action on small screens. */
.provider-review{width:min(1200px,96vw);max-width:96vw;max-height:90dvh;overflow:auto;box-sizing:border-box}.provider-review table{min-width:700px}.provider-review td small{display:block}.provider-review .row-actions{flex-wrap:wrap}.provider-review label{min-width:0}.logo-tools input{width:100%;box-sizing:border-box}

.provider-review > .channel-scroll{max-height:50dvh;overflow:auto}

/* Channel previews keep the channel list and its scroll position underneath. */
body.panel-app .channel-preview-dialog{box-sizing:border-box;width:min(960px,calc(100vw - 24px));max-width:calc(100vw - 24px);max-height:calc(100dvh - 24px);padding:16px;overflow:auto;border-radius:14px}
.channel-preview-dialog::backdrop{background:rgba(0,0,0,.78)}
.channel-preview-dialog>.dialog-head{position:sticky;top:-16px;z-index:2;background:var(--panel,#171a20);padding:12px 0;gap:12px}
.channel-preview-dialog>.dialog-head h2{margin:0;min-width:0}
.channel-preview-dialog>.dialog-head button{min-height:44px;flex-shrink:0}
.channel-preview-dialog .panel{margin:0;padding:12px;min-width:0}
.channel-preview-dialog video{display:block;width:100%;max-height:55dvh;aspect-ratio:16/9;background:#000;object-fit:contain}
.channel-preview-dialog .toolbar{display:flex;flex-wrap:wrap;gap:8px}
.channel-preview-dialog p,.channel-preview-dialog h2,.channel-preview-dialog a{overflow-wrap:anywhere}
@media(max-width:600px){body.panel-app .channel-preview-dialog{padding:12px}.channel-preview-dialog>.dialog-head{top:-12px}.channel-preview-dialog .panel{padding:8px}.channel-preview-dialog button,.channel-preview-dialog select{min-height:44px;font-size:16px}}

/* Customer expiry switch: large touch target, compact themed track. */
.customer-dialog .customer-form .expiry-switch{display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:44px;cursor:pointer}
.expiry-switch-control{position:relative;display:inline-flex;align-items:center;width:48px;height:44px;flex:0 0 48px}
.customer-dialog .expiry-switch-control input{position:absolute;inset:0;width:100%;height:100%;min-height:44px;margin:0;opacity:0;cursor:pointer;z-index:1}
.expiry-switch-track{display:block;width:48px;height:26px;border:1px solid #59616b;border-radius:999px;background:#2b3038;box-sizing:border-box;transition:background .16s,border-color .16s}
.expiry-switch-track:before{content:"";display:block;width:18px;height:18px;margin:3px;border-radius:50%;background:#d3d8df;box-shadow:0 1px 3px #0005;transition:transform .16s,background .16s}
.expiry-switch-control input:checked+.expiry-switch-track{background:#ff9800;border-color:#ffb249}
.expiry-switch-control input:checked+.expiry-switch-track:before{transform:translateX(22px);background:#171a20}
.expiry-switch-control input:focus-visible+.expiry-switch-track{outline:2px solid #ffbd66;outline-offset:4px}
@media(prefers-reduced-motion:reduce){.expiry-switch-track,.expiry-switch-track:before{transition:none}}

.account-dialog{box-sizing:border-box;width:min(560px,calc(100vw - 24px));max-height:calc(100dvh - 24px);overflow:auto;background:#171b20;color:#eee;border:1px solid #414852;border-radius:12px;padding:20px}.account-dialog form{display:grid;gap:14px}.account-dialog label{display:grid;gap:6px}.account-dialog input{box-sizing:border-box;max-width:100%;min-width:0;font-size:16px}.account-dialog button{min-height:44px}.account-dialog::backdrop{background:#000a}

/* Shared panel switches retain native checkbox behavior, labels and validation. */
body.panel-app input[type=checkbox]:not(.expiry-switch-control input){appearance:none;-webkit-appearance:none;position:relative;display:inline-block;box-sizing:border-box;width:48px!important;min-width:48px;height:44px!important;min-height:44px!important;padding:0!important;margin:0;flex:0 0 48px;border:0!important;border-radius:999px;background:transparent!important;box-shadow:none;vertical-align:middle;cursor:pointer}
body.panel-app input[type=checkbox]:not(.expiry-switch-control input)::before{content:"";position:absolute;inset:9px 0;border:1px solid #59616b;border-radius:999px;background:#2b3038;transition:background .16s,border-color .16s}
body.panel-app input[type=checkbox]:not(.expiry-switch-control input)::after{content:"";position:absolute;left:4px;top:13px;width:18px;height:18px;border-radius:50%;background:#d3d8df;box-shadow:0 1px 3px #0005;transition:transform .16s,background .16s}
body.panel-app input[type=checkbox]:not(.expiry-switch-control input):checked::before{background:#ff9800;border-color:#ffb249}
body.panel-app input[type=checkbox]:not(.expiry-switch-control input):checked::after{transform:translateX(22px);background:#171a20}
body.panel-app input[type=checkbox]:not(.expiry-switch-control input):indeterminate::after{transform:translateX(11px);border-radius:3px;height:4px;top:20px}
body.panel-app input[type=checkbox]:not(.expiry-switch-control input):focus-visible{outline:2px solid #ffbd66;outline-offset:2px}
body.panel-app input[type=checkbox]:not(.expiry-switch-control input):disabled{opacity:.45;cursor:not-allowed}
body.panel-app label:has(>input[type=checkbox]){display:flex;align-items:center;gap:10px;min-height:44px;cursor:pointer}
body.panel-app label:has(>input[type=checkbox])>span{min-width:0}
@media(prefers-reduced-motion:reduce){body.panel-app input[type=checkbox]::before,body.panel-app input[type=checkbox]::after{transition:none}}
@media(forced-colors:active){body.panel-app input[type=checkbox]:not(.expiry-switch-control input){appearance:auto;-webkit-appearance:auto}body.panel-app input[type=checkbox]::before,body.panel-app input[type=checkbox]::after{display:none}}

/* Compact customer overview: explicit groups prevent auto-grid gaps. */
body.panel-app .account-overview-layout .account-service-wide{display:block;padding:16px;background:linear-gradient(120deg,#202833,#181e26)}
body.panel-app .summary-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:14px}
body.panel-app .summary-heading h3{margin:0;font-size:16px}
body.panel-app .summary-actions{display:flex;gap:8px;flex-wrap:wrap}
body.panel-app .summary-actions button{width:auto;margin:0;min-height:36px;padding:7px 12px}
body.panel-app .summary-metrics{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:12px;margin:0;padding:12px 0 16px;border-bottom:1px solid #37414d}
body.panel-app .summary-metrics div{min-width:0}
body.panel-app .summary-metrics dt{font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:#a5b0bf;margin-bottom:5px}
body.panel-app .summary-metrics dd{margin:0;font-size:14px;font-weight:600;overflow-wrap:anywhere}
body.panel-app .summary-details{display:grid;grid-template-columns:1.35fr repeat(4,minmax(0,1fr));gap:18px;padding-top:14px}
body.panel-app .summary-detail{min-width:0;padding:0;margin:0}
body.panel-app .summary-detail h4{margin:0 0 7px}
body.panel-app .summary-detail h4 button,body.panel-app .summary-inline-link{display:inline-flex;align-items:center;gap:8px;background:none;box-shadow:none;border:0;color:#ffc16c;text-align:left;min-height:32px;padding:3px 0;width:auto;margin:0;font-size:13px}
body.panel-app .summary-detail p{margin:3px 0;line-height:1.5;font-size:12px;overflow-wrap:anywhere;color:#d1d8e2}
body.panel-app .summary-detail h4 button:hover,body.panel-app .summary-inline-link:hover{text-decoration:underline}
body.panel-app dialog .dialog-head>button[aria-label^="Close"]{display:inline-flex;align-items:center;justify-content:center;flex:0 0 36px;width:36px;min-height:36px;height:36px;padding:0;font-size:22px;line-height:1}
@media(max-width:1200px){body.panel-app .summary-metrics{grid-template-columns:repeat(4,minmax(0,1fr))}body.panel-app .summary-details{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:900px){body.panel-app .summary-actions button,body.panel-app .summary-detail h4 button,body.panel-app .summary-inline-link{min-height:44px}body.panel-app dialog .dialog-head>button[aria-label^="Close"]{flex-basis:44px;width:44px;height:44px;min-height:44px}body.panel-app .summary-details{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:480px){body.panel-app .summary-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}body.panel-app .summary-details{grid-template-columns:minmax(0,1fr);gap:12px}body.panel-app .summary-detail{border-bottom:1px solid #303a46;padding-bottom:10px}body.panel-app .summary-actions{width:100%}body.panel-app .summary-actions button{flex:1}}

/* Reseller settings retain usable touch controls at every breakpoint. */
body.panel-app .reseller-dialog input:not([type=checkbox]),body.panel-app .reseller-dialog select,body.panel-app .reseller-dialog button{min-height:44px}
@media(max-width:768px){body.panel-app .reseller-dialog input,body.panel-app .reseller-dialog select{font-size:16px}}
.reseller-table-wrap{max-width:100%;overflow-x:auto}.reseller-table-wrap table{width:100%}.reseller-table-wrap .row-actions{display:flex;flex-wrap:wrap;gap:6px}

body.panel-app .channel-preview-dialog>.dialog-head{background:transparent;border-bottom:1px solid var(--line);padding:0 0 12px;margin-bottom:12px;position:static}

/* Fixed channel geometry: polling must not change column widths or row height. */
body.panel-app .channel-library .channel-table{table-layout:fixed;width:100%;min-width:1770px;font-variant-numeric:tabular-nums}
body.panel-app .channel-library .channel-table th:nth-child(1){width:50px}body.panel-app .channel-library .channel-table th:nth-child(2){width:45px}body.panel-app .channel-library .channel-table th:nth-child(3){width:60px}body.panel-app .channel-library .channel-table th:nth-child(4){width:205px}body.panel-app .channel-library .channel-table th:nth-child(5){width:155px}body.panel-app .channel-library .channel-table th:nth-child(6){width:65px}body.panel-app .channel-library .channel-table th:nth-child(7){width:95px}body.panel-app .channel-library .channel-table th:nth-child(8){width:145px}body.panel-app .channel-library .channel-table th:nth-child(9){width:400px}body.panel-app .channel-library .channel-table th:nth-child(10){width:150px}body.panel-app .channel-library .channel-table th:nth-child(11){width:300px}
body.panel-app .channel-library .channel-table td{height:104px;box-sizing:border-box;overflow-wrap:normal;white-space:nowrap}
body.panel-app .channel-library .channel-table td:nth-child(4)>strong,body.panel-app .channel-library [data-customer-groups]>span,body.panel-app .channel-library .source-title{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
body.panel-app .channel-library .channel-table td:nth-child(10){overflow:hidden;text-overflow:ellipsis}
body.panel-app .channel-library .row-actions{display:flex;flex-wrap:wrap;align-content:center;gap:5px;width:280px;min-height:76px}
body.panel-app .channel-library .stream-info-bar{display:grid;grid-template-columns:110px 85px 48px 48px 47px 45px;gap:0;align-items:center;min-height:42px}
body.panel-app .channel-library .stream-metric{display:flex;flex-direction:column;gap:5px;min-width:0;font-size:11px;line-height:16px}
body.panel-app .channel-library .stream-metric strong{font-size:11px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
body.panel-app .channel-library .stream-metric-label{color:#9da8b9;font-size:10px}.stream-metric-label>span{color:#ffb649}
body.panel-app .channel-library .stream-info-note{height:16px;line-height:16px;margin-top:6px;font-size:10px;color:#9da8b9;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
body.panel-app .channel-library [data-current-source]{position:relative;height:34px}.channel-library .inline-details[open]{position:absolute;top:16px;left:0;min-width:240px;max-width:320px;z-index:5;padding:8px;background:#202833;border:1px solid #46505f;border-radius:8px;white-space:normal}
body.panel-app .channel-library [data-channel-status]{white-space:normal}body.panel-app .channel-library [data-channel-status] small{height:15px}
@media(max-width:900px){body.panel-app .channel-library .channel-table td{height:120px}body.panel-app .channel-library .row-actions{min-height:94px}}

/* Compact channel filters and a single bulk-action disclosure. */
body.panel-app .channel-toolbar .channel-group-filter{min-width:180px;max-width:280px;flex:1}
body.panel-app .channel-bulk-menu{position:relative;margin:0;flex:none}
body.panel-app .channel-bulk-menu>summary{display:flex;align-items:center;justify-content:center;gap:8px;min-height:44px;box-sizing:border-box;padding:10px 14px;border:1px solid #485361;border-radius:9px;background:#242b34;color:#f5f7fa;cursor:pointer;list-style:none;font-weight:600}
body.panel-app .channel-bulk-menu>summary::-webkit-details-marker{display:none}
body.panel-app .channel-bulk-menu>summary::after{content:'\25BE';color:#ffb13b}
body.panel-app .channel-bulk-menu>summary:focus-visible,body.panel-app .channel-bulk-menu[open]>summary{outline:2px solid #ffb13b;outline-offset:2px}
body.panel-app .channel-bulk-options{position:absolute;top:calc(100% + 8px);right:0;z-index:30;width:230px;max-width:calc(100vw - 40px);display:grid;gap:5px;padding:8px;border:1px solid #485361;border-radius:10px;background:#1c232d;box-shadow:0 12px 30px #0008}
body.panel-app .channel-bulk-options button{width:100%;min-height:44px;margin:0;text-align:left;justify-content:flex-start}
@media(max-width:600px){body.panel-app .channel-toolbar>label:not(.channel-search){flex:1 1 calc(50% - 8px);min-width:0;max-width:none}body.panel-app .channel-toolbar [data-channel-count]{flex-basis:100%;font-size:13px}body.panel-app .channel-bulk-menu{flex:1}body.panel-app .channel-toolbar #create-test-channel{flex:1;min-height:44px}body.panel-app .channel-bulk-options{left:0;right:auto}}

body.panel-app .provider-usage{min-width:160px;font-variant-numeric:tabular-nums}body.panel-app .provider-usage span{display:block;min-height:24px}body.panel-app .provider-usage button{margin-top:4px}

/* Customer sections are separate destinations, not a scrolling overview. */
body.customer-app [data-customer-panel][hidden]{display:none!important}
body.customer-app #customer-nav{display:flex;flex-wrap:wrap;gap:6px}
body.customer-app #customer-nav[hidden]{display:none}
body.customer-app #customer-nav a{padding:10px 14px;border-radius:8px;min-height:44px;display:inline-flex;align-items:center}
body.customer-app #customer-nav a.active{background:#ffad32;color:#171a20}
body.customer-app .customer-grid{display:block}
body.customer-app [data-customer-panel]{width:100%;min-width:0}
body.customer-app [data-customer-panel] dt{text-transform:capitalize}
.channel-name-link{font-weight:700;color:inherit;text-decoration:none}.channel-name-link:hover{text-decoration:underline;color:#ffb342}
body.panel-app .channel-editor-page{width:100%;max-width:1100px;margin:0 auto;padding:20px;background:#202731;border:1px solid #3b4655;border-radius:12px;box-sizing:border-box}
.channel-editor-page form{display:grid;gap:14px}.channel-editor-page fieldset{min-width:0}.channel-editor-page input,.channel-editor-page select{max-width:100%;box-sizing:border-box}.channel-editor-page .dialog-head{display:flex;align-items:center;justify-content:space-between}.channel-editor-page label{min-width:0}.channel-editor-page .dialog-head button{min-width:44px;min-height:44px}
.channel-editor-page form{grid-template-columns:minmax(0,1fr);min-width:0}.channel-editor-page form>*{min-width:0}.channel-editor-page .dialog-head{gap:12px}.channel-editor-page .dialog-head button{flex-shrink:0}
body.panel-app .channel-editor-page .dialog-head>button{flex:0 0 auto;width:auto;font-size:12px;white-space:nowrap}body.panel-app .channel-editor-page .row-actions{display:flex;flex-wrap:wrap;gap:6px}.channel-editor-page button{min-height:44px}
@media(max-width:600px){body.panel-app .channel-editor-page{padding:12px}.channel-editor-page input,.channel-editor-page select{font-size:16px}body.customer-app #customer-nav{width:100%}}

body .custom-site-logo{display:block;max-width:240px;width:auto;height:44px;object-fit:contain}body .site-logo-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}body .site-logo-card{display:grid;gap:16px;min-width:0;border:1px solid #465261;border-radius:12px;padding:20px;background:#1c2530}body .site-logo-card label{display:grid;gap:8px}body .site-logo-card input{max-width:100%;font-size:16px;min-height:44px}body .site-logo-preview{display:flex;align-items:center;justify-content:center;height:140px;border:1px dashed #627083;border-radius:8px;background:#111820}body .site-logo-preview img{max-width:90%;max-height:100px;object-fit:contain}body .site-logo-preview [hidden]{display:none}body .site-logo-card button{min-height:44px}@media(max-width:600px){body .site-logo-grid{grid-template-columns:1fr}body .custom-site-logo{max-width:180px;height:38px}}
body .has-custom-site-logo:before{display:none!important}

.sports-matchup-logos{display:flex;align-items:center;gap:12px;margin-bottom:10px}.sports-matchup-logos img{width:48px;height:48px;object-fit:contain}

.product-pictures,.product-pictures-editor [data-pictures]{display:flex;flex-wrap:wrap;gap:12px;margin:12px 0}.product-pictures img,.product-pictures-editor img{object-fit:contain;max-width:100%;border-radius:8px;background:#151b23}.product-pictures-editor [data-pictures]>div{display:flex;flex-direction:column;gap:6px}.product-pictures-editor{min-width:0;margin:16px 0;border:1px solid #46505c;border-radius:10px}.product-pictures-editor input{max-width:100%}
