:root{color-scheme:dark;--bg:#0a0e19;--panel:#151b2c;--panel2:#1d2640;--line:#2b3552;--text:#edf1ff;--muted:#aab5cb;--purple:#8f89ff;--aqua:#5ddacb;--red:#fb8595;--green:#72e3b0}
*{box-sizing:border-box}body{font-family:Inter,ui-sans-serif,system-ui,-apple-system,'Segoe UI',sans-serif;background:radial-gradient(circle at 75% -10%,#1b2550 0,transparent 36%),var(--bg);color:var(--text);margin:0;min-height:100vh}button,input,select{font:inherit}a{color:#aeafff;text-decoration:none}a:hover{text-decoration:underline}.hide{display:none!important}.wrap{max-width:1160px;margin:0 auto;padding:0 24px}.topbar{border-bottom:1px solid #242c43;background:#0d1322d9;backdrop-filter:blur(16px)}.top-inner{display:flex;justify-content:space-between;align-items:center;min-height:70px;gap:16px}.top-inner nav{display:flex;gap:18px;align-items:center}.top-inner nav a{font-size:.88rem}.brand{display:flex;align-items:center;font-weight:800;letter-spacing:-.05em;font-size:1.4rem;color:white;gap:9px}.brand:hover{text-decoration:none}.brand-light{color:#a5a7ff}.brand-mark{background:linear-gradient(135deg,#7877ff,#4fdccb);border-radius:12px;padding:6px 11px;color:#111428;letter-spacing:0}.tag,.counter{padding:7px 11px;background:#252c49;border:1px solid #3a4569;border-radius:40px;color:#cdd2ee;font-size:.7rem;font-weight:700;letter-spacing:.06em}.hero{display:grid;grid-template-columns:1.4fr 1fr;gap:46px;align-items:center;padding:80px 0 66px}.hero h1{font-size:clamp(2.3rem,5vw,3.7rem);line-height:1.1;letter-spacing:-.065em;margin:17px 0 22px}.gradient{background:linear-gradient(90deg,#a4aaff 10%,#58e0c6 95%);color:transparent;background-clip:text}.lead{max-width:520px;font-size:1.12rem;line-height:1.75;color:var(--muted)}.hero-note{font-size:.83rem;color:#a4acd1;margin-top:24px;line-height:2}.eyebrow{font-size:.72rem;font-weight:800;letter-spacing:.12em;color:#99a9ff}.dot{display:inline-block;background:#61e3b9;width:8px;height:8px;border-radius:50%;margin-right:8px}.feature-box{border-radius:24px;border:1px solid #384467;background:linear-gradient(135deg,#232d51,#111728);box-shadow:0 15px 60px #0003;padding:42px;min-height:320px;display:flex;align-items:flex-start;justify-content:center;flex-direction:column}.feature-symbol{font-size:3.2rem;background:linear-gradient(135deg,#7773f9,#60e1cc);border-radius:20px;width:80px;height:80px;text-align:center;color:#121828}.feature-title{font-size:1.65rem;letter-spacing:-.04em;font-weight:800;margin-top:20px}.feature-box p{line-height:1.9;color:var(--muted)}.big-pill{background:#263c40;color:#8fe8cd;border:1px solid #3a716d;padding:8px 12px;border-radius:10px;font-size:.76rem;font-weight:700}.section{padding:28px 0 54px}.section-heading,.panel-head{display:flex;justify-content:space-between;align-items:center;gap:15px;margin-bottom:20px}.section h2,.panel h2{margin:5px 0;font-size:1.65rem;letter-spacing:-.04em}.plan-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:15px}.plan-card,.panel{border:1px solid var(--line);background:var(--panel);border-radius:18px;padding:24px;box-shadow:0 8px 24px #0002}.plan-card{cursor:pointer;transition:.2s;position:relative}.plan-card:hover{transform:translateY(-2px);border-color:#696c9c}.plan-card.selected{border-color:#8b86ff;box-shadow:0 0 0 1px #8b86ff,0 12px 35px #14154480;background:linear-gradient(145deg,#242748,#181d30)}.plan-card .plan-top{display:flex;align-items:center;justify-content:space-between}.plan-card strong{font-size:1.27rem}.plan-card .price{font-size:2.3rem;font-weight:850;letter-spacing:-.05em;margin:18px 0 5px}.plan-card .price small{font-size:.84rem;color:var(--muted);font-weight:400;letter-spacing:0}.plan-card .desc{color:var(--muted);line-height:1.6;font-size:.88rem}.plan-card .plan-footer{padding-top:18px;margin-top:22px;border-top:1px solid var(--line);font-size:.87rem;color:#ced5f3}.muted{color:var(--muted)}.small{font-size:.84rem}.fineprint{font-size:.75rem;line-height:1.65;color:#929eb8;margin:0}.auth-wrap{display:grid;grid-template-columns:1fr 1fr;gap:50px;align-items:center}.auth-copy h2{font-size:2.7rem;line-height:1.12;letter-spacing:-.06em}.auth-copy p{color:var(--muted);line-height:1.75;max-width:390px}.bullet{padding-top:17px;color:#c5d1f5;font-size:.91rem}.auth-card{padding:30px}.tabs{display:grid;grid-template-columns:1fr 1fr;gap:8px;background:#0e1424;padding:5px;border-radius:12px;margin-bottom:25px}.tab{background:none;color:var(--muted);border:0;border-radius:9px;padding:11px;cursor:pointer}.tab.active{background:#303958;color:white;font-weight:700}.stack{display:flex;flex-direction:column;gap:15px}.stack label,label{display:block;color:#d1d8ea;font-size:.84rem;font-weight:600}.stack label small{color:#8e9ab7;font-size:.74rem}input:not([type=checkbox]),select{background:#101625;border:1px solid #35405d;color:white;padding:12px 13px;display:block;border-radius:9px;width:100%;outline:none;margin-top:8px}input:focus,select:focus{border-color:#8a8cfc;box-shadow:0 0 0 2px #7177e933}.btn{display:inline-flex;justify-content:center;align-items:center;gap:8px;border:0;border-radius:10px;padding:12px 17px;font-weight:750;font-size:.88rem;cursor:pointer;text-align:center;min-height:44px}.btn:disabled{opacity:.5;cursor:not-allowed}.primary{background:linear-gradient(120deg,#8183ff,#7970e8);color:white}.primary:hover{filter:brightness(1.12)}.secondary{background:#293250;color:#dce4ff;border:1px solid #414d72}.secondary:hover{background:#323f65}.wide{width:100%}.small.secondary{border-radius:8px;padding:8px 12px;color:white;cursor:pointer}.selection{border:1px solid #414475;background:#202541;border-radius:13px;padding:15px;display:flex;flex-direction:column;gap:12px}.flex-between{display:flex;align-items:center;justify-content:space-between;gap:10px}.gradient-price{font-weight:800;color:#9ceadc;font-size:1.18rem}.stepper{display:flex;gap:13px;align-items:center}.stepper button{border:1px solid #505a81;background:#2b3350;color:white;border-radius:8px;height:30px;width:32px;cursor:pointer}.stepper output{font-size:1.2rem;font-weight:800;min-width:20px;text-align:center}.footer{padding-top:28px;padding-bottom:36px;border-top:1px solid #232c40;display:flex;justify-content:space-between;gap:25px;flex-wrap:wrap;color:#808da9;font-size:.78rem}.notice{position:sticky;top:15px;z-index:10;background:#234044;border:1px solid #4aa8a0;padding:13px 17px;border-radius:12px;margin-top:16px}.notice.error{background:#462c39;border-color:#bb607b}.dash-title{font-size:2.55rem;letter-spacing:-.055em;margin:5px 0}.status-pill{border-radius:999px;padding:11px 17px;font-size:.85rem;background:#402f3c;color:#ffc2ca;border:1px solid #76495e}.status-pill.ok{background:#1d4038;color:#98f3cc;border-color:#397a65}.stats-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.stat{display:flex;flex-direction:column;gap:9px;min-height:150px}.stat strong{font-size:1.85rem;letter-spacing:-.05em}.billing-panel{margin-top:16px;display:flex;justify-content:space-between;align-items:center;gap:20px}.billing-panel h3{margin:7px 0}.button-row{display:flex;gap:10px;flex-wrap:wrap}.content-grid{display:grid;grid-template-columns:1fr 1fr;gap:17px;margin-top:18px}.panel-head{margin-bottom:16px}.panel-head h2{font-size:1.3rem}.inline-form{display:flex;gap:10px;align-items:end}.inline-form input{flex:1;min-width:100px}.inline-form button{white-space:nowrap}.item-list{margin-top:17px;display:flex;flex-direction:column;gap:10px}.item{border:1px solid #343d57;border-radius:12px;padding:14px;background:#111829;display:flex;justify-content:space-between;gap:15px;align-items:flex-start}.item h4{font-size:.94rem;margin:0 0 6px}.item p{color:var(--muted);margin:3px 0;font-size:.79rem;overflow-wrap:anywhere}.item .item-actions{display:flex;gap:8px;flex-shrink:0;flex-wrap:wrap;justify-content:end}.mini-btn{background:#283450;border:1px solid #3f5070;color:white;border-radius:7px;padding:7px 10px;font-size:.75rem;cursor:pointer}.mini-btn.danger{color:#ffb6c3}.empty{color:#8594af;text-align:center;padding:18px 0;font-size:.85rem}.admin-panel{margin-top:18px}.admin-add{margin-top:30px;border-top:1px solid var(--line);padding-top:15px;max-width:580px}.check-label{display:flex!important;gap:10px;align-items:center}.check-label input{accent-color:#8f89ff}.tv-main{display:flex;align-items:center;justify-content:center;min-height:85vh}.tv-screen{max-width:720px;width:100%;text-align:center;padding:50px}.tv-icon{font-size:5rem;color:#9a9dff;margin:12px}.tv-screen h1{font-size:2.5rem}.tv-screen p{line-height:1.7}.tv-screen label{max-width:350px;margin:25px auto}.tv-code{font-size:clamp(2.5rem,8vw,4rem);font-weight:900;letter-spacing:.14em;border:1px dashed #6b7be3;border-radius:15px;background:#212947;padding:18px;margin:18px auto;max-width:460px}.success-heading{font-size:1.5rem;color:#8aeebc;font-weight:800}.tv-screen .item{text-align:left}
@media(max-width:800px){.hero,.auth-wrap,.content-grid{grid-template-columns:1fr;gap:22px}.hero{padding:50px 0 32px}.feature-box{min-height:230px;padding:30px}.plan-grid{grid-template-columns:1fr}.auth-copy h2{font-size:2rem}.stats-grid{grid-template-columns:1fr}.stat{min-height:100px}.billing-panel{align-items:start;flex-direction:column}.top-inner nav .tag{display:none}}@media(max-width:460px){.wrap{padding-left:15px;padding-right:15px}.top-inner nav{gap:7px}.top-inner nav a{font-size:.77rem}.panel,.plan-card{padding:19px}.inline-form{flex-direction:column;align-items:stretch}.inline-form button{width:100%}.item{flex-direction:column}.item .item-actions{width:100%;justify-content:start}.tv-screen{padding:24px}.hero h1{font-size:2.25rem}}

/* v0.2 catalog */
.catalog-panel{margin-top:18px}.catalog-list{max-height:550px;overflow:auto;display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:8px}
.catalog-row{display:flex;flex-direction:column;gap:6px;background:#111829;border:1px solid #343d57;padding:12px;border-radius:10px;overflow-wrap:anywhere}
.import-error{color:#ffadbc!important}
.tv-screen:has(#tvActive:not(.hide)){max-width:1100px;text-align:left}.tv-screen video{width:100%;max-height:55vh;background:black;border-radius:12px}
.tv-channel-layout{display:grid;grid-template-columns:290px 1fr;gap:16px;margin-top:18px}.tv-channel-list{max-height:55vh;overflow:auto;display:flex;flex-direction:column;gap:5px}
.tv-channel-list button{text-align:left;border-radius:8px;background:#232b43;color:#f0f3ff;border:1px solid #3d4866;padding:10px 12px;cursor:pointer}
.tv-channel-list button:focus,.tv-channel-list button:hover{border-color:#a8aaff;background:#344063}
.tv-player{min-width:0}.tv-player h3{margin:0 0 12px}.tv-screen .tv-channel-list{text-align:left}
@media(max-width:740px){.tv-channel-layout{grid-template-columns:1fr}.tv-channel-list{max-height:260px}}

/* v0.3: billing seat manager */
.billing-change{margin:22px 0}
.billing-change-form{display:flex;align-items:end;gap:16px;flex-wrap:wrap;margin:16px 0}
.billing-change-form label{flex:1;min-width:150px}
.billing-change-form input,.billing-change-form select{width:100%;margin-top:7px}
.billing-change-form>div{min-width:155px;display:grid;gap:5px;padding-bottom:4px}
.billing-change-form strong{font-size:1.14rem}
.billing-change .counter{white-space:nowrap}

/* v0.4: history and personalized channel library */
.upload-panel{border-top:1px solid var(--line);margin-top:22px;padding-top:16px}.upload-panel h3{font-size:1rem;margin:0 0 14px}
.upload-panel input[type=file]{background:#101625;border:1px solid #35405d;color:var(--muted);border-radius:9px;padding:12px;width:100%}
.library-panel{margin-top:18px}.category-chips{display:flex;gap:9px;flex-wrap:wrap;margin-top:15px}
.category-pill{display:flex;align-items:center;gap:9px;background:#1d2740;border:1px solid #37456b;padding:8px 11px;border-radius:12px}
.catalog-tools,.tv-filter{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin:15px 0}
.catalog-tools input,.catalog-tools select{margin-top:0;max-width:300px}.channel-editor select{font-size:.78rem;margin-top:2px}
.favorite-toggle{font-size:1.2rem;min-width:40px;color:#fbd77c}.tv-filter input,.tv-filter select{margin-top:0}
@media(max-width:740px){.catalog-tools input,.catalog-tools select{max-width:none}}

/* v0.5 hidden-channel management */
.catalog-actions{display:flex;gap:7px;align-items:center;flex-wrap:wrap}
.tv-quick-controls{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:12px}
.tv-quick-controls .btn{padding:9px 12px;font-size:.83rem}
.tv-guide{padding:12px;margin:10px 0;background:var(--panel,#18243c);border-radius:12px}
.tv-guide h4{margin:2px 0 12px}.tv-guide-show{padding:9px 0;border-bottom:1px solid var(--line)}
.tv-guide-show:last-child{border-bottom:0}
.tv-channel-list button.selected{outline:2px solid #70e6c8}

/* v0.7 Admin health dashboard, audit paging, M3U delta history */
.admin-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(145px,1fr));gap:12px;margin:12px 0 26px}
.admin-stat{padding:16px;border:1px solid var(--line);border-radius:12px;background:#101829;display:flex;flex-direction:column;gap:6px}
.admin-stat>span{font-size:.8rem;color:var(--muted)}.admin-stat strong{font-size:1.65rem}.admin-stat small{color:var(--muted);font-size:.7rem;line-height:1.4}
.audit-toolbar{display:flex;align-items:end;flex-wrap:wrap;gap:10px}
.audit-toolbar label{min-width:120px;flex:1}.audit-toolbar label:first-child{min-width:190px}
.audit-toolbar input,.audit-toolbar select{margin-top:5px}
.audit-pager{display:flex;justify-content:space-between;align-items:center;gap:10px;margin:14px 0}
.sync-event{display:block}.sync-event details{margin:9px 0;font-size:.82rem;color:var(--muted)}.sync-event summary{cursor:pointer}
.sync-event ul{padding-left:24px;line-height:1.8;overflow-wrap:anywhere}.sync-added{color:#8de8ba}.sync-removed{color:#ffadb8}
@media(max-width:460px){.admin-stats{grid-template-columns:repeat(2,minmax(0,1fr))}.audit-pager{flex-wrap:wrap}}


/* v0.15 – application shell: navigation replaces the long one-page dashboard */
#dashboard.section{padding-top:18px}
.workspace-shell{display:grid;grid-template-columns:238px minmax(0,1fr);align-items:start;gap:22px}
.workspace-sidebar{position:sticky;top:78px;background:rgba(19,27,46,.97);border:1px solid var(--line);border-radius:17px;padding:17px 11px;max-height:calc(100vh - 98px);overflow:auto}
.workspace-label{color:#8295b8;letter-spacing:.13em;font-weight:800;font-size:.7rem;padding:11px 15px 17px}
.workspace-nav{display:flex;flex-direction:column;gap:4px}
.workspace-nav button{appearance:none;cursor:pointer;display:flex;align-items:center;gap:12px;color:#bdcbe2;text-align:left;background:transparent;border:1px solid transparent;border-radius:10px;padding:13px 14px;font-size:.92rem;font-weight:650;width:100%}
.workspace-nav button span:first-child{font-size:1.3rem;min-width:23px;text-align:center}
.workspace-nav button:hover,.workspace-nav button:focus-visible{background:#222f4e;border-color:#50618c;outline:none;color:white}
.workspace-nav button.active{background:#30366a;color:white;border-color:#646db3}
.workspace-nav button[data-workspace=admin]{margin-top:12px;border-top:1px solid #354264;padding-top:17px}
.workspace-content{min-width:0}
.workspace-current-heading{display:flex;flex-direction:column;gap:7px;margin:7px 0 23px}
.workspace-current-heading h1{font-size:clamp(1.5rem,3vw,2.25rem);margin:0;letter-spacing:-.035em}
.workspace-view>.panel,.workspace-view>.billing-panel,.workspace-view>.stats-grid{margin:0 0 16px}
.workspace-view>.section-heading{margin:0 0 18px}
.workspace-view>.section-heading .dash-title{font-size:1.5rem}
.workspace-view>.panel{max-width:100%}
.workspace-view .admin-panel{margin-top:0}
.workspace-view .admin-add{max-width:none}
.workspace-view .stats-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
.workspace-view .stat{min-height:116px}
.workspace-view .stat strong{font-size:1.5rem}
.workspace-view .billing-panel{margin-top:0}
.workspace-view .catalog-panel{margin-bottom:16px}
.admin-subnav{display:flex;gap:8px;flex-wrap:wrap;margin:15px 0 24px;border-bottom:1px solid #344261;padding-bottom:14px}
.admin-subnav button{cursor:pointer;border:1px solid #3f4c6e;background:#1e2a43;color:#c4cee6;border-radius:9px;font-size:.85rem;padding:10px 16px}
.admin-subnav button.active,.admin-subnav button:focus-visible{background:#6565c9;color:#fff;border-color:#9292ff;outline:none}
.admin-subview{width:100%}.admin-subview.admin-add{border-top:none;padding-top:0;margin-top:0}
#notification:not(.hide){position:fixed;top:77px;right:20px;z-index:200;max-width:min(480px,calc(100vw - 40px));box-shadow:0 18px 42px #0009}
@media(max-width:1020px){.workspace-shell{grid-template-columns:200px minmax(0,1fr);gap:13px}.workspace-sidebar{padding:8px}.workspace-nav button{padding:11px 9px;font-size:.84rem}}
@media(max-width:780px){.workspace-shell{display:block}.workspace-sidebar{position:sticky;top:54px;z-index:20;background:#111a2b;max-height:none;margin-bottom:20px;padding:9px;border-radius:13px}.workspace-label{display:none}.workspace-nav{display:flex;flex-direction:row;overflow-x:auto;scrollbar-width:thin;gap:6px}.workspace-nav button{white-space:nowrap;width:auto;flex:none;padding:11px 12px}.workspace-nav button[data-workspace=admin]{margin-top:0;padding-top:11px;border-top:1px solid transparent}.workspace-current-heading{margin-top:4px}.workspace-view .stats-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:520px){.workspace-view .stats-grid{grid-template-columns:1fr}.workspace-current-heading{margin-bottom:12px}.workspace-view .admin-stats{grid-template-columns:repeat(2,minmax(0,1fr))}.admin-subnav{flex-wrap:nowrap;overflow-x:auto}.admin-subnav button{white-space:nowrap}.workspace-view>.section-heading{display:block}}

.epg-pill{display:inline-block;border-radius:9px;padding:5px 10px;font-size:.76rem;font-weight:750}.epg-ok{background:#174c3c;color:#8ff2c2}.epg-missing{background:#4a3727;color:#ffcf8e}

/* v0.16: compact pricing editor isolated in the admin workspace. */
.admin-price-row {display:flex;align-items:center;justify-content:space-between;gap:16px;padding:15px 12px;margin-bottom:8px;background:rgba(31,43,75,.48);border:1px solid rgba(145,164,213,.14);border-radius:12px;}
.admin-price-row span {display:flex;flex-direction:column;gap:4px;}
.admin-price-row small {color:#aebcda;font-size:12px;}
.admin-price-row input {width:135px;flex:0 0 135px;text-align:right;}
@media(max-width:550px){.admin-price-row{flex-wrap:wrap}.admin-price-row input{width:100%;flex:1 1 100%;}}

/* v0.24 – admin launchpad and PVR job readability */
.admin-quick .admin-quick-links{display:flex;flex-wrap:wrap;gap:9px}
.admin-quick-links button{background:#263655;border:1px solid #4e6389;color:#f1f7ff;border-radius:10px;padding:12px 15px;cursor:pointer;font-weight:650}
.admin-quick-links button:hover,.admin-quick-links button:focus-visible{border-color:#9ee9d9;outline:2px solid #9ee9d9;outline-offset:2px}
.pvr-filter{display:block;max-width:320px;margin:8px 0 14px}
.pvr-filter select{margin-top:7px}
.pvr-meter{height:9px;max-width:460px;margin:9px 0 20px;border-radius:8px;background:#2b3956;overflow:hidden}
.pvr-meter span{display:block;height:100%;border-radius:8px;background:#75dcca}

/* v0.25 – compact per-account administrator details */
.admin-profile-content{padding:8px 0 12px}
.admin-profile-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(235px,1fr));gap:14px;margin-top:14px}
.admin-profile-grid>section{background:rgba(20,32,52,.67);border:1px solid rgba(148,163,184,.18);border-radius:14px;padding:16px;min-width:0;max-height:460px;overflow-y:auto}
.admin-profile-grid h4{margin:0 0 12px}
.admin-profile-row{padding:10px 0;border-top:1px solid rgba(148,163,184,.15);overflow-wrap:anywhere}
.admin-profile-row p{margin:5px 0;font-size:.86rem;color:#bbc7d9}

.admin-detail-scroll{max-height:260px;overflow-y:auto;background:rgba(8,14,25,.55);border-radius:10px;padding:9px 14px;margin:8px 0 18px}
.admin-detail-scroll p{font-size:.88rem;margin:7px 0;overflow-wrap:anywhere}

/* Open-EPG country selector – responsive, keyboard accessible */
.open-epg-options {display:grid;grid-template-columns:repeat(auto-fit,minmax(185px,1fr));
  gap:8px;max-height:330px;overflow:auto;margin:12px 0 18px;padding:5px;
  border:1px solid rgba(149,176,206,.22);border-radius:12px}
.open-epg-choice {display:flex;align-items:center;gap:10px;padding:10px;
  border-radius:9px;background:rgba(75,106,164,.11);cursor:pointer}
.open-epg-choice:hover,.open-epg-choice:focus-within {background:rgba(89,140,195,.24);outline:1px solid rgba(137,202,239,.42)}
.open-epg-choice input {width:17px;height:17px;accent-color:#82e4ca}

/* v0.30 – all-channel EPG with readable programme synopses */
.guide-toolbar{display:grid;grid-template-columns:2fr 1fr;gap:12px;margin:14px 0 20px}
.guide-toolbar label{display:flex;flex-direction:column;gap:6px}
.guide-catalog{display:grid;gap:10px}
.guide-channel{display:grid;grid-template-columns:minmax(170px,28%) 1fr;gap:14px;padding:14px;background:rgba(21,35,54,.76);border:1px solid rgba(135,173,200,.18);border-radius:14px}
.guide-channel-title{display:flex;gap:12px;align-items:start}
.guide-channel-title div{display:flex;flex-direction:column;gap:5px}
.guide-shows{display:grid;gap:6px}
.guide-programme{border:1px solid rgba(130,170,190,.15);border-radius:9px;padding:9px 12px;background:rgba(40,60,80,.35)}
.guide-programme summary{cursor:pointer;line-height:1.65}
.guide-programme summary:focus-visible{outline:2px solid #a6eee2;outline-offset:4px}
.guide-programme p{white-space:pre-wrap;line-height:1.6;margin:10px 0 3px;color:#d4e2e8}
.guide-time{color:#a8e9d8;margin-right:10px;font-variant-numeric:tabular-nums}
#allGuideMore{margin-top:16px}
@media(max-width:740px){.guide-toolbar,.guide-channel{grid-template-columns:1fr}.guide-channel{gap:10px}}

/* v0.32: a compact, scannable summary above the admin device list. */
.device-summary-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(148px,1fr));gap:10px;margin:8px 0 10px}
.device-summary-grid>div{display:flex;flex-direction:column;gap:5px;padding:12px 14px;border-radius:12px;background:var(--surface-2,rgba(125,160,185,.09));border:1px solid rgba(142,170,187,.19)}
.device-summary-grid strong{font-size:clamp(1.35rem,2.5vw,1.75rem);line-height:1.2;font-variant-numeric:tabular-nums}
.device-summary-grid span{font-size:.81rem;color:var(--muted,#a4b4c2)}


/* v0.36 – playlist management: clear separation of EPG, devices and advanced actions. */
.playlist-panel { min-width:0 }
.playlist-panel .panel-head { align-items:start }
.playlist-overview { display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin:20px 0 }
.playlist-overview>div {display:flex;flex-direction:column;gap:4px;padding:13px;border:1px solid #354462;background:#101a2e;border-radius:11px;min-width:0}
.playlist-overview strong {font-size:1.45rem;color:#eff2ff;font-variant-numeric:tabular-nums}
.playlist-overview span {color:#aebbdb;font-size:.78rem}
.playlist-create {border:1px solid #42567b;border-radius:13px;background:#1b2843;margin:20px 0;overflow:hidden}
.playlist-create>summary {cursor:pointer;padding:16px 18px;font-weight:750;display:flex;flex-wrap:wrap;gap:12px;align-items:center;list-style-position:inside}
.playlist-create[open]>summary {border-bottom:1px solid #405273;color:#c6ffed}
.playlist-add-grid {display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;padding:18px}
.playlist-add-card {border:1px solid #354462;background:#111b2f;border-radius:12px;padding:16px;min-width:0}
.playlist-add-card h3 {font-size:1rem;margin:0 0 17px}
.playlist-add-card input[type=file] {display:block;width:100%;max-width:100%;border:1px solid #35405d;background:#101625;color:#e6edff;padding:11px;border-radius:8px;margin-top:7px}
.playlist-toolbar {display:grid;grid-template-columns:minmax(0,2fr) minmax(180px,1fr);gap:12px;margin:22px 0 15px;align-items:end}
.playlist-toolbar input,.playlist-toolbar select {min-width:0}
.playlist-cards {display:flex;flex-direction:column;gap:13px;min-width:0}
.playlist-card {border:1px solid #354664;background:#111c30;border-radius:14px;padding:18px;min-width:0}
.playlist-card-head {display:flex;align-items:start;justify-content:space-between;gap:14px;flex-wrap:wrap}
.playlist-heading {min-width:0;flex:1 1 190px;overflow-wrap:anywhere}
.playlist-heading h3 {font-size:1.08rem;margin:0 0 7px;letter-spacing:-.02em}
.playlist-heading p {margin:0;line-height:1.5}
.playlist-card-head .epg-pill {flex-shrink:0}
.playlist-card-actions,.playlist-advanced-actions {display:flex;flex-wrap:wrap;gap:8px;margin:16px 0}
.playlist-card-actions .mini-btn {min-height:38px;font-size:.8rem}
.playlist-pair-box {background:#1a2942;border:1px solid #354f77;border-radius:11px;padding:15px;margin-top:12px}
.playlist-pair-heading {display:flex;justify-content:space-between;gap:12px;align-items:center;margin-bottom:10px;flex-wrap:wrap}
.playlist-linked {display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin:10px 0}
.playlist-linked-chip {background:#294b47;border:1px solid #428377;color:#c3fff0;border-radius:9px;padding:7px 11px;cursor:pointer;font-size:.8rem;overflow-wrap:anywhere}
.playlist-linked-chip:hover {background:#3a5e5a}
.playlist-linked-chip span {font-size:1.1rem;margin-left:5px}
.playlist-assign {display:block;max-width:450px;margin-top:14px;color:#dbe5f5}
.playlist-assign select {margin-top:7px}
.playlist-warning {overflow-wrap:anywhere;margin:12px 0;font-size:.86rem}
.playlist-advanced {margin-top:14px;border-top:1px solid #2e3c58;padding-top:12px}
.playlist-advanced>summary {font-size:.82rem;font-weight:700;cursor:pointer;color:#bdcafa;padding:5px 0}
.playlist-advanced-actions {margin-bottom:0}
@media(max-width:900px){.playlist-add-grid{grid-template-columns:1fr}.playlist-overview{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:580px){.playlist-toolbar{grid-template-columns:1fr}.playlist-card{padding:13px}.playlist-add-grid{padding:10px}.playlist-add-card{padding:12px}.playlist-card-actions .mini-btn{flex:1 1 135px}.playlist-overview>div{padding:10px}.playlist-card-head .epg-pill{max-width:100%;white-space:normal}}

/* v0.68: readable EPG channel mapping on desktop and phones. */
#epgMapPanel {min-width:0}
#epgMapEditor {margin-top:18px;padding:15px;background:#141f35;border:1px solid #405273;border-radius:13px}
#epgMapEditor>h3 {margin:0 0 5px;overflow-wrap:anywhere}
#epgMapPanel label {display:block;margin-top:14px}
#epgMapPanel input[type=search] {width:100%;max-width:700px;margin-top:6px}
.epg-map-options {display:grid;grid-template-columns:repeat(auto-fill,minmax(185px,1fr));gap:8px;
  max-height:260px;overflow:auto;border:1px solid rgba(149,176,206,.2);
  border-radius:11px;padding:9px;margin:12px 0;align-content:start}
.epg-map-options .mini-btn {white-space:normal;overflow-wrap:anywhere;text-align:left;min-height:42px;
  line-height:1.45;padding:10px 12px}
.epg-map-options .mini-btn.selected,.epg-map-options .mini-btn:focus-visible {outline:2px solid #9be6d7;outline-offset:1px;background:#294b49}
@media(max-width:580px){#epgMapEditor{padding:10px}.epg-map-options{grid-template-columns:1fr;max-height:220px}}

/* v0.69 EPG coverage: legible at 720p, desktop and mobile. */
.epg-map-toolbar{display:grid;grid-template-columns:minmax(0,2fr) minmax(170px,1fr);gap:12px;align-items:end}
.epg-map-toolbar label{min-width:0}
#epgMapChannels .mini-btn{display:flex;flex-direction:column;align-items:flex-start;gap:5px}
.epg-status{font-size:.76rem;line-height:1.25;font-weight:600;opacity:.88;white-space:normal}
.epg-status.is-ready{color:#a2f3c3}
.epg-status.is-missing{color:#ffc78f}
@media(max-width:660px){.epg-map-toolbar{grid-template-columns:1fr}}

/* v0.80: persistent, provider-independent per-channel logo editor */
.channel-logo-editor{display:grid;gap:.4rem;margin:.55rem 0;padding:.65rem;border:1px solid var(--line,#42526a);border-radius:12px}
.channel-logo-input{display:flex;flex-wrap:wrap;gap:.4rem;align-items:center}
.channel-logo-input input{flex:1 1 230px;min-width:0}

/* v0.82: diagnostics and per-device error filtering. */
.connection-panel .connection-status{display:flex;align-items:center;gap:10px;margin:10px 0;font-size:1.05rem}
.connection-indicator{display:inline-block;width:11px;height:11px;border-radius:50%;background:#94a3b8;flex:none}
.connection-indicator.healthy{background:#4cddb0;box-shadow:0 0 0 4px #4cddb01c}
.connection-indicator.unhealthy{background:#ff8b96;box-shadow:0 0 0 4px #ff8b961c}
.connection-indicator.pending{background:#edc66e}
.connection-panel p{overflow-wrap:anywhere;line-height:1.6}
.playback-filter{display:grid;grid-template-columns:minmax(0,2fr) minmax(125px,1fr);gap:10px;margin:15px 0}
.playback-filter>span{grid-column:1/-1}
@media(max-width:520px){.playback-filter{grid-template-columns:1fr}}

/* v0.83: keyboard-accessible playlist health drilldown, including compact mobile layout. */
.playlist-health-panel{margin-top:18px}
.playlist-health-actions{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}
.playlist-health-action{border:1px solid #466284;background:#1b2c45;border-radius:12px;color:#eff5ff;min-width:0;min-height:78px;display:flex;flex-direction:column;align-items:flex-start;justify-content:center;gap:5px;padding:13px;text-align:left;cursor:pointer}
.playlist-health-action strong{font-size:1.55rem;line-height:1.1;font-weight:800;color:#96eee0}
.playlist-health-action span{font-size:.78rem;line-height:1.35;color:#d1dcf1}
.playlist-health-action:hover:not(:disabled){border-color:#74dbd4;background:#223955}
.playlist-health-action:focus-visible{outline:3px solid #76f0da;outline-offset:3px}
.playlist-health-action:disabled{opacity:.55;cursor:default}
@media(max-width:740px){.playlist-health-actions{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:380px){.playlist-health-actions{grid-template-columns:1fr 1fr}.playlist-health-action{padding:10px}}

/* v0.85: bounded and keyboard-friendly admin health warnings */
.admin-health-queue{padding:15px 18px;border:1px solid #425c7a;border-radius:15px;margin:16px 0;background:linear-gradient(135deg,#172740,#172238)}
.admin-health-queue .panel-head{display:flex;align-items:center;justify-content:space-between;gap:12px}
.admin-health-item{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px;padding:12px;border:1px solid #3d5674;border-radius:11px;margin:6px 0;color:#e4edff}
.admin-health-item.important{border-left:4px solid #ffb375}
.admin-health-item .mini-btn:focus-visible{outline:3px solid #8ce9d6;outline-offset:2px}
@media(max-width:540px){.admin-health-queue{padding:12px}.admin-health-item{align-items:stretch;flex-direction:column}}
