:root {
  --bg:#f5f6f8; --panel:#fff; --text:#161b22; --muted:#727b86;
  --nav:#171a1f; --nav2:#242a31; --accent:#079fd8; --accent2:#0874c9;
  --orange:#f59d0a; --cyan:#12c8e6; --blue:#0878ef;
  --green:#2e9d57; --red:#d84b4b; --line:#e5e8ec; --shadow:0 12px 34px rgba(20,28,38,.08);
}
*{box-sizing:border-box} body{margin:0;font-family:var(--tvhubiq-ui-font,"Segoe UI",Arial,sans-serif);background:var(--bg);color:var(--text)}
button,input{font:inherit} button{cursor:pointer}.hidden{display:none!important}.muted{color:var(--muted);margin:.25rem 0}
.primary{border:0;background:linear-gradient(135deg,var(--cyan),var(--blue));color:white;padding:12px 18px;border-radius:10px;font-weight:750;box-shadow:0 7px 18px rgba(8,120,239,.18)}
.primary:hover{filter:brightness(.95);transform:translateY(-1px)}.secondary{border:1px solid var(--line);background:white;color:var(--text);padding:11px 16px;border-radius:10px;font-weight:650}
.danger{border:0;background:#fff1f1;color:#bb3030;padding:11px 16px;border-radius:10px;font-weight:750}.full{width:100%}
.auth-shell{min-height:100vh;display:grid;grid-template-columns:minmax(420px,1fr) 460px;gap:72px;align-items:center;padding:7vw;background:
radial-gradient(circle at 22% 45%,rgba(245,157,10,.18),transparent 30%),
radial-gradient(circle at 48% 35%,rgba(0,174,255,.18),transparent 32%),
linear-gradient(135deg,#15181c 0%,#262a2f 53%,#f5f6f8 53%)}
.auth-brand{display:flex;align-items:center;gap:18px;color:white}.brand-mark{width:72px;height:72px;border-radius:22px;background:linear-gradient(135deg,#1ca1c8,#46c281);display:grid;place-items:center;font-weight:900;font-size:36px;color:white}
.brand-mark.small{width:40px;height:40px;border-radius:12px;font-size:20px}.brand-name{font-size:34px;font-weight:900;letter-spacing:3px}.brand-sub{opacity:.74}
.auth-card{background:white;border-radius:22px;padding:34px;box-shadow:0 30px 80px rgba(0,0,0,.18)}.auth-tabs{display:flex;gap:8px;background:#f1f4f6;padding:5px;border-radius:12px;margin-bottom:25px}
.auth-tab{flex:1;border:0;background:transparent;padding:10px;border-radius:9px;font-weight:700}.auth-tab.active{background:white;box-shadow:0 2px 8px rgba(0,0,0,.07)}
label{display:block;font-size:13px;font-weight:700;color:#536170;margin:16px 0 7px}input{width:100%;border:1px solid #dbe2e8;border-radius:10px;padding:13px 14px;outline:none;background:white}
input:focus{border-color:#3ca8c8;box-shadow:0 0 0 3px rgba(60,168,200,.12)}.demo-note{margin-top:17px;padding:12px;background:#f5f8fa;border-radius:10px;color:#6e7a86;font-size:12px}
.app-shell{min-height:100vh;display:flex}.sidebar{width:245px;background:var(--nav);color:white;position:fixed;left:0;top:0;bottom:0;padding:23px 16px;display:flex;flex-direction:column}
.side-brand{display:flex;gap:12px;align-items:center;padding:0 8px 27px}.side-brand div:last-child{display:flex;flex-direction:column}.side-brand span{font-size:11px;opacity:.55;margin-top:3px}
nav{display:flex;flex-direction:column;gap:6px}.nav-item{border:0;background:transparent;color:#c9d6de;padding:12px 13px;border-radius:10px;text-align:left;display:flex;gap:12px;align-items:center;font-weight:650}
.nav-item:hover:not(.disabled),.nav-item.active{background:var(--nav2);color:white}.nav-item em{font-style:normal;font-size:9px;margin-left:auto;color:#72b8cb;text-transform:uppercase;letter-spacing:.5px}
.nav-item.disabled{opacity:.45;cursor:default}.sidebar-bottom{margin-top:auto}.main{margin-left:245px;width:calc(100% - 245px);min-height:100vh}
.topbar{height:92px;background:white;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 34px;position:sticky;top:0;z-index:5}.topbar h2{margin:0 0 4px}
.top-actions{display:flex;gap:15px;align-items:center}.api-status{font-size:12px;color:#65717d;display:flex;align-items:center;gap:6px}.api-status i{width:8px;height:8px;border-radius:50%;background:#d84b4b}.api-status.ok i{background:var(--green)}
.content{padding:30px 34px}.summary-strip{display:flex;gap:8px;align-items:center;margin-bottom:24px}.filter{border:1px solid var(--line);background:white;border-radius:10px;padding:10px 13px;color:#65717d}.filter.active{border-color:#b9dce8;background:#ecf8fb;color:#136c87}.filter b{margin-left:5px}.grow{flex:1}.search{max-width:310px}
.screens-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(310px,1fr));gap:20px}.screen-card{background:white;border:1px solid var(--line);border-radius:16px;box-shadow:var(--shadow);overflow:hidden}
.screen-preview{height:150px;background:linear-gradient(135deg,#102c3d,#1b4f68);position:relative;display:flex;align-items:center;justify-content:center;color:#c7e8f4;font-weight:800;letter-spacing:1px}
.status-pill{position:absolute;top:13px;left:13px;padding:6px 9px;border-radius:999px;font-size:10px;font-weight:850;letter-spacing:.5px;background:#eef2f5;color:#65717d}.status-pill.online{background:#e9f8ee;color:#247943}.status-pill.offline{background:#fff0f0;color:#b34242}
.screen-body{padding:17px}.screen-title{display:flex;justify-content:space-between;gap:10px}.screen-title h3{margin:0;font-size:17px}.location{font-size:12px;color:#84909b;margin-top:5px}.screen-meta{margin:15px 0;display:grid;gap:8px;font-size:12px;color:#687580}.screen-meta b{color:#293642}.card-actions{display:flex;gap:8px}.card-actions button{flex:1}
.empty{background:white;border:1px dashed #cad4dd;border-radius:18px;text-align:center;padding:75px 20px}.empty-icon{font-size:48px;color:#8eb5c3}.empty h2{margin-bottom:8px}.empty p{color:#73808c;max-width:560px;margin:0 auto 25px}
.stats-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin:26px 0}.stat-card{background:white;border:1px solid var(--line);border-radius:15px;padding:22px;display:flex;flex-direction:column;gap:8px}.stat-card span{color:#74808d}.stat-card b{font-size:32px}
.panel{background:white;border:1px solid var(--line);border-radius:16px;padding:25px}.welcome-row h1{margin-bottom:4px}
.modal-backdrop{position:fixed;inset:0;background:rgba(5,20,31,.52);display:grid;place-items:center;z-index:20;padding:20px}.modal{width:min(520px,100%);max-height:90vh;overflow:auto;background:white;border-radius:18px;padding:25px;box-shadow:0 25px 80px rgba(0,0,0,.25)}.modal.wide{width:min(760px,100%)}
.modal-head{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:20px}.modal-head h2{margin:0}.icon-btn{border:0;background:#f0f3f5;width:36px;height:36px;border-radius:10px;font-size:24px}
.pairing-input{font-size:28px;font-weight:900;letter-spacing:10px;text-align:center}.modal-actions{display:flex;justify-content:flex-end;gap:9px;margin-top:24px}
.detail-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}.detail-box{border:1px solid var(--line);border-radius:12px;padding:14px}.detail-box span{font-size:11px;color:#7a8792;display:block;margin-bottom:6px}.detail-box b{font-size:14px}
.command-row{display:flex;gap:9px;flex-wrap:wrap;margin:22px 0}.command-history{display:grid;gap:8px}.command-entry{border:1px solid var(--line);border-radius:10px;padding:10px 12px;display:flex;justify-content:space-between;font-size:12px}.cmd-success{color:#287d46}.cmd-failed{color:#b23d3d}.cmd-queued{color:#a06a10}
.toast{position:fixed;right:24px;bottom:24px;background:#102b3b;color:white;padding:14px 18px;border-radius:12px;box-shadow:0 15px 40px rgba(0,0,0,.25);z-index:99;max-width:420px}
@media(max-width:850px){.auth-shell{grid-template-columns:1fr;background:#f5f7fa;padding:22px}.auth-brand{color:var(--nav)}.sidebar{width:76px}.side-brand div:last-child,.nav-item:not(.active) em,.nav-item{font-size:0}.nav-item span{font-size:20px}.main{margin-left:76px;width:calc(100% - 76px)}.topbar{padding:0 18px}.content{padding:20px}.stats-grid{grid-template-columns:1fr}.summary-strip{flex-wrap:wrap}.search{max-width:none}.detail-grid{grid-template-columns:1fr}}

.section-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:22px}.section-head h1{margin:0 0 5px}.upload-btn{display:inline-block}
.upload-progress{background:#eef8fb;border:1px solid #b9dce8;color:#136c87;padding:12px 15px;border-radius:10px;margin-bottom:16px}
.media-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:18px}.media-card{background:white;border:1px solid var(--line);border-radius:14px;overflow:hidden;box-shadow:var(--shadow)}
.media-thumb{height:150px;background:#102b3b;display:grid;place-items:center;overflow:hidden;position:relative}.media-thumb img,.media-thumb video{width:100%;height:100%;object-fit:cover}.media-type{position:absolute;left:9px;top:9px;background:rgba(10,25,37,.8);color:white;padding:5px 8px;border-radius:7px;font-size:10px;font-weight:800;text-transform:uppercase}
.media-info{padding:13px}.media-name{font-weight:750;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.media-meta{font-size:11px;color:#78848f;margin-top:5px}.media-actions{padding:0 13px 13px;display:flex;gap:7px}
.playlist-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:18px}.playlist-card{background:white;border:1px solid var(--line);border-radius:14px;padding:18px;box-shadow:var(--shadow)}.playlist-card h3{margin:0 0 7px}.playlist-card-actions{display:flex;gap:8px;margin-top:16px}
.playlist-editor{width:min(1050px,96vw)!important}.playlist-editor-layout{display:grid;grid-template-columns:1fr 1fr;gap:24px}.available-media,.playlist-items-editor{border:1px solid var(--line);border-radius:12px;min-height:340px;max-height:480px;overflow:auto;padding:10px;background:#f8fafb}
.available-row,.playlist-edit-row{background:white;border:1px solid var(--line);border-radius:10px;padding:10px;margin-bottom:8px;display:flex;align-items:center;gap:10px}.available-row .grow,.playlist-edit-row .grow{min-width:0}.mini-name{font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.mini-meta{font-size:11px;color:#7a8792}.duration-input{width:84px!important;padding:8px!important}
.move-btn{border:1px solid var(--line);background:white;border-radius:8px;padding:7px 9px}.remove-btn{border:0;background:#fff0f0;color:#b23d3d;border-radius:8px;padding:7px 9px}
.publish-screens{display:grid;gap:10px}.publish-screen{border:1px solid var(--line);border-radius:12px;padding:14px;display:flex;align-items:center;justify-content:space-between}.publish-screen b{display:block}.publish-screen span{font-size:11px;color:#78848f}
@media(max-width:850px){.playlist-editor-layout{grid-template-columns:1fr}.section-head{align-items:flex-start;gap:14px;flex-direction:column}}

/* ScreenBridge v0.3 */
:root{--accent:#168ead;--accent2:#0e7896;--screenbridge:#20abc4}
.section-head.compact{margin-bottom:14px}.drop-zone{border:2px dashed #b9d4dd;border-radius:16px;background:#f8fbfc;padding:30px;text-align:center;margin-bottom:20px;display:flex;flex-direction:column;gap:7px;color:#60727f;transition:.18s ease}.drop-zone.dragover{border-color:var(--accent);background:#ecf9fc;transform:scale(1.004)}.drop-icon{font-size:34px;color:var(--accent)}
.upload-queue{background:white;border:1px solid var(--line);border-radius:14px;padding:12px;margin-bottom:20px}.upload-row{display:grid;grid-template-columns:minmax(180px,1fr) 2fr 120px;gap:14px;align-items:center;padding:9px 7px;border-bottom:1px solid #edf1f4}.upload-row:last-child{border-bottom:0}.upload-file{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:12px;font-weight:700}.progress-track{height:8px;background:#edf2f4;border-radius:999px;overflow:hidden}.progress-bar{height:100%;background:var(--accent);width:0;transition:width .15s}.upload-status{font-size:11px;text-align:right;color:#72808c}.upload-status.ok{color:#247943}.upload-status.error{color:#b34242}.upload-status.duplicate{color:#9b6b12}
.media-metadata{display:flex;gap:6px;flex-wrap:wrap;margin-top:7px}.meta-chip{font-size:10px;background:#f1f5f7;color:#60717e;border-radius:999px;padding:4px 7px}.media-card.invalid{border-color:#e8b7b7}
.sync-chip{display:inline-flex;align-items:center;gap:5px;border-radius:999px;padding:4px 8px;font-size:10px;font-weight:750}.sync-chip.synced{background:#e9f8ee;color:#247943}.sync-chip.pending{background:#fff6df;color:#956514}.playlist-summary{display:flex;gap:10px;flex-wrap:wrap;margin:-5px 0 18px}.playlist-summary span{background:#f2f7f9;border-radius:999px;padding:6px 10px;font-size:11px;color:#60717d}.mini-thumb{width:48px;height:34px;border-radius:7px;background:#102b3b;overflow:hidden;display:grid;place-items:center;color:white;font-size:9px;flex:0 0 auto}.mini-thumb img{width:100%;height:100%;object-fit:cover}.playlist-edit-row[draggable="true"]{cursor:grab}.playlist-edit-row.dragging{opacity:.45}.playlist-edit-row.drag-over{border-color:var(--accent);box-shadow:0 0 0 2px rgba(22,142,173,.1)}
.preview-modal{width:min(1000px,96vw)!important}.preview-stage{aspect-ratio:16/9;background:#000;position:relative;overflow:hidden;border-radius:12px}.preview-layer{position:absolute;inset:0;opacity:0;transition:opacity .4s ease;display:flex;align-items:center;justify-content:center}.preview-layer.show{opacity:1}.preview-layer img,.preview-layer video{width:100%;height:100%;object-fit:contain}
.publish-columns,.group-layout{display:grid;grid-template-columns:1fr 1fr;gap:22px}.target-list{display:grid;gap:8px;max-height:360px;overflow:auto}.target-row{border:1px solid var(--line);border-radius:10px;padding:10px 12px;display:flex;align-items:center;gap:10px;background:#fff}.target-row input{width:auto}.target-row .grow b{display:block;font-size:13px}.target-row .grow span{font-size:10px;color:#74818c}.group-new{display:flex;gap:8px;margin-bottom:12px}.group-new input{margin:0}.groups-list{display:grid;gap:9px}.group-card{border:1px solid var(--line);border-radius:11px;padding:12px;display:flex;justify-content:space-between;align-items:center}.group-card b{display:block}.group-card span{font-size:10px;color:#74818c}.tiny-danger{border:0;background:#fff1f1;color:#b23d3d;border-radius:8px;padding:7px 9px}.top-actions .hidden{display:none!important}
@media(max-width:850px){.publish-columns,.group-layout{grid-template-columns:1fr}.upload-row{grid-template-columns:1fr}.upload-status{text-align:left}}

/* ScreenBridge v0.3.1 */
.modal-head-actions{display:flex;align-items:center;gap:8px}.compact-btn{padding:8px 12px}.field-hint{font-size:11px;color:#7a8792;margin-top:-5px}.card-actions .secondary{min-width:0}

/* ScreenBridge v0.3.2 */
select{border:1px solid #dbe2e8;border-radius:10px;padding:10px 12px;background:white;color:var(--text);font:inherit;outline:none}
.transition-settings{display:flex;gap:14px;align-items:end;margin:0 0 18px;padding:14px 16px;background:#f7f9fb;border:1px solid var(--line);border-radius:12px}.transition-settings label{margin:0;min-width:180px}.transition-settings select{display:block;width:100%;margin-top:7px}.mini-thumb.video{position:relative}.mini-thumb.video span{position:absolute;inset:0;display:grid;place-items:center;color:white;text-shadow:0 1px 5px #000;font-size:16px}.video-fallback{width:100%;height:100%;display:grid;place-items:center;color:#c8d8df;font-weight:900;letter-spacing:.5px}.screen-device-actions,.danger-zone{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-top:18px;padding:16px;border:1px solid var(--line);border-radius:12px}.screen-device-actions p,.danger-zone p{margin:4px 0 0}.danger-zone{border-color:#f2caca;background:#fffafa}.replacement-note{margin:14px 0;padding:12px 14px;border-radius:10px;background:#eef8fb;color:#46606f;font-size:12px;line-height:1.5}

/* ScreenBridge v0.3.3 */
.playlist-edit-row{flex-wrap:wrap}
.item-transition-controls{width:100%;display:grid;grid-template-columns:auto minmax(150px,1fr) 110px minmax(150px,auto);gap:8px;align-items:center;padding:8px 0 0 68px;border-top:1px dashed #e3e9ed;margin-top:2px}
.item-transition-controls select{min-width:0;width:100%;padding:7px 8px}
.item-transition-label{font-size:11px;font-weight:700;color:#52636f}
.item-transition-effective{font-size:10px;color:#7a8792;white-space:nowrap}
@media(max-width:850px){.item-transition-controls{grid-template-columns:1fr 1fr;padding-left:0}.item-transition-label,.item-transition-effective{grid-column:1/-1}}


/* v0.3.5 – portrait / vertical displays */
.content-format-guide{display:flex;align-items:center;justify-content:space-between;gap:16px;background:#f4f9fb;border:1px solid #d9e8ee;border-radius:12px;padding:14px 16px;margin:0 0 16px}
.content-format-guide b{display:block;margin-bottom:4px}.content-format-guide span{font-size:12px;color:#5d6b75}
.format-pills{display:flex;gap:8px;flex-wrap:wrap}.format-pills span,.format-chip,.orientation-pill{display:inline-flex;align-items:center;border-radius:999px;background:#e8f4f7;color:#176f87;padding:5px 9px;font-size:10px;font-weight:800}
.orientation-pill{position:absolute;right:12px;top:12px;background:rgba(255,255,255,.9);color:#12394a}
.screen-preview.portrait-screen-preview{background:linear-gradient(135deg,#0b3040,#17607a)}
.playlist-card-meta{display:grid;gap:7px}
.format-warning{font-size:10px!important;color:#a65a00!important;margin-top:5px;line-height:1.35;display:block}
.target-row.orientation-mismatch{border-color:#e7c38f;background:#fffaf3}
.preview-stage.portrait{width:min(366px,70vw);aspect-ratio:9/16;margin:0 auto}
.preview-stage:not(.portrait){width:100%;aspect-ratio:16/9}
@media(max-width:800px){.content-format-guide{align-items:flex-start;flex-direction:column}}


/* v0.3.10 – playlist deletion */
.playlist-usage{font-size:10px;color:#8a5a00;background:#fff8e9;border:1px solid #ecd4a6;border-radius:999px;padding:4px 8px;width:max-content;max-width:100%}
.playlist-card-actions{flex-wrap:wrap}


/* v0.4.0 – Programs */
.program-help{margin:0 0 18px;padding:12px 14px;border:1px solid #dce8ee;background:#f7fbfc;border-radius:11px;color:#52636d;font-size:12px}
.program-card{border-color:#d8e5eb}
.program-settings{display:grid;grid-template-columns:2fr 1fr;gap:14px;margin-bottom:14px}
.program-playlist-icon{width:42px;height:42px;display:grid;place-items:center;border-radius:9px;background:#eef5f7;color:#176f87;font-size:20px;font-weight:800}
.program-order{width:28px;height:28px;display:grid;place-items:center;border-radius:50%;background:#e8f4f7;color:#176f87;font-weight:800;font-size:11px}
.program-edit-row{min-height:72px}
.playlist-usage.program-use{background:#eef7fb;border-color:#cfe5ef;color:#176f87}
button:disabled{opacity:.45;cursor:not-allowed}
.empty-mini{padding:24px;text-align:center;border:1px dashed #cdd9df;border-radius:10px;color:#71808a;font-size:12px}
@media(max-width:800px){.program-settings{grid-template-columns:1fr}}


/* v0.4.1 – detach controls */
.detach-btn{border-color:#d6e4ea}
.dashboard-content-panel{margin-top:18px}
.panel-head-inline{display:flex;align-items:center;justify-content:space-between;gap:12px}
.assignment-list,.usage-list{display:flex;flex-direction:column;gap:9px}
.assignment-row,.usage-row{display:flex;align-items:center;gap:12px;padding:11px 12px;border:1px solid #dce5ea;border-radius:10px;background:#fff}
.assignment-screen{display:flex;align-items:center;gap:9px;min-width:220px}
.assignment-screen div,.assignment-content{display:flex;flex-direction:column;gap:2px}
.assignment-screen span:not(.status-dot),.assignment-content span,.usage-row span{font-size:10px;color:#78858d}
.assignment-content{flex:1}
.assignment-type{font-size:9px!important;text-transform:uppercase;letter-spacing:.04em;color:#18809a!important}
.status-dot{width:8px;height:8px;border-radius:50%;background:#aab6bc;flex:none}
.status-dot.online{background:#28a36a}
.status-dot.offline{background:#9aa7ad}
.usage-modal-body{display:flex;flex-direction:column;gap:18px;max-height:60vh;overflow:auto}
.usage-section h3{margin:0 0 9px}
.current-publication-bar{display:flex;align-items:center;justify-content:space-between;gap:14px;margin:14px 0;padding:12px 14px;background:#fff8f8;border:1px solid #f0d7d7;border-radius:10px}
.current-publication-bar div{display:flex;flex-direction:column;gap:3px}
.current-publication-bar span{font-size:10px;color:#7e7070}
@media(max-width:760px){
  .assignment-row,.usage-row,.current-publication-bar{align-items:stretch;flex-direction:column}
  .assignment-screen{min-width:0}
}


/* TVHUBIQ v0.4.2 branding */
.auth-brand{display:flex;flex-direction:column;align-items:flex-start;gap:18px;color:white;max-width:700px}
.auth-brand-logo{width:min(690px,46vw);height:auto;display:block;filter:drop-shadow(0 18px 45px rgba(0,0,0,.28))}
.auth-brand-copy{font-size:15px;letter-spacing:.08em;text-transform:uppercase;color:rgba(255,255,255,.62);padding-left:4px}
.auth-card{border:1px solid rgba(255,255,255,.6)}
.side-brand{display:flex;flex-direction:column;align-items:flex-start;gap:5px;padding:2px 4px 24px;overflow:visible}
.side-brand-lockup{width:202px;height:58px;display:block;object-fit:contain;object-position:left center;overflow:visible}
.side-brand-icon{display:none;width:42px;height:42px;object-fit:contain}
.side-brand .brand-version{font-size:10px;opacity:.46;letter-spacing:.06em;margin:0 0 0 3px}
.sidebar{background:linear-gradient(180deg,#171a1f,#101317)}
.nav-item{position:relative}
.nav-item.active{background:linear-gradient(90deg,rgba(7,159,216,.18),rgba(8,116,201,.08));color:white}
.nav-item.active:before{content:"";position:absolute;left:0;top:9px;bottom:9px;width:3px;border-radius:3px;background:linear-gradient(180deg,var(--orange),var(--cyan))}
.topbar{box-shadow:0 1px 0 rgba(20,28,38,.02)}
.api-status.ok i{background:var(--cyan)}
.screen-preview{background:
radial-gradient(circle at 30% 30%,rgba(245,157,10,.18),transparent 32%),
radial-gradient(circle at 70% 68%,rgba(0,174,255,.22),transparent 38%),
linear-gradient(135deg,#1a1d22,#2b3036)}
.screen-preview-logo{width:76px;height:76px;object-fit:contain;filter:drop-shadow(0 10px 18px rgba(0,0,0,.28))}
.screen-preview.portrait-screen-preview{background:
radial-gradient(circle at 30% 30%,rgba(245,157,10,.15),transparent 32%),
radial-gradient(circle at 70% 68%,rgba(0,174,255,.22),transparent 38%),
linear-gradient(135deg,#1a1d22,#2b3036)}
.format-pills span,.format-chip,.orientation-pill{background:#eef8fc;color:#0874a5}
.filter.active{border-color:#b8ddeb;background:#eefaff;color:#0874a5}
.upload-progress{background:#eefaff;border-color:#b8ddeb;color:#0874a5}
.drop-zone.dragover{border-color:var(--cyan);background:#effcff}
.playlist-usage.program-use{background:#edf8fc;border-color:#cae7f1;color:#0874a5}
.assignment-type{color:#0874a5!important}
@media(max-width:850px){
  .auth-shell{grid-template-columns:1fr;background:#f5f6f8;padding:22px}
  .auth-brand{display:none}
  .side-brand{align-items:center;padding:0 0 20px}
  .side-brand-lockup,.side-brand .brand-version{display:none}
  .side-brand-icon{display:block}
}


/* v0.4.3 – TVHUBIQ brand polish / settings */
.side-brand .brand-domain{font-size:10px;opacity:.56;letter-spacing:.055em;margin-left:3px;margin-top:-2px}
.settings-grid{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(320px,.65fr);gap:18px;align-items:start}
.settings-card{margin:0}
.settings-card-head{display:flex;justify-content:space-between;align-items:flex-start;gap:18px}
.settings-card-head h3,.settings-card h3{margin-top:0}
.smtp-badge{display:inline-flex;align-items:center;white-space:nowrap;padding:7px 10px;border-radius:999px;font-size:10px;font-weight:800;letter-spacing:.04em;background:#eef1f4;color:#65717d}
.smtp-badge.ready{background:#eaf8f2;color:#27815a;border:1px solid #cbeadf}
.smtp-badge.warning{background:#fff7e8;color:#a06b10;border:1px solid #f1ddb7}
.alert-thresholds{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:18px 0}
.check-card{display:flex!important;flex-direction:row!important;align-items:center;gap:10px;padding:12px;border:1px solid var(--line);border-radius:11px;background:#fafbfc;cursor:pointer}
.check-card input{width:18px;height:18px;accent-color:var(--accent)}
.check-card span{display:flex;flex-direction:column;gap:2px}
.check-card small{color:var(--muted);font-size:10px}
.settings-domain-note{display:flex;flex-direction:column;gap:4px;padding:12px 14px;margin-top:14px;border:1px solid #dce8ee;background:#f8fbfc;border-radius:10px}
.settings-domain-note span{font-size:11px;color:var(--muted)}
.settings-actions{padding-top:18px}
.font-preview{margin-top:15px;padding:22px;border-radius:14px;background:linear-gradient(135deg,#171a1f,#2b3036);color:white;display:flex;flex-direction:column;gap:3px}
.font-preview b{font-size:32px;letter-spacing:.02em}
.font-preview span{font-size:17px;color:#d8dde3}
.font-preview small{margin-top:9px;color:#9da8b2}
@media(max-width:980px){.settings-grid{grid-template-columns:1fr}.alert-thresholds{grid-template-columns:1fr}}
@media(max-width:850px){.side-brand .brand-domain{display:none}}


/* v0.4.3.2 – readability pass for Phenomena */
body{
  font-size:18px;
  line-height:1.34;
  font-weight:500;
}
.topbar h2{font-size:26px}
.section-head h1{font-size:34px;line-height:1.08}
.section-head .muted{font-size:17px}
.nav-item{font-size:17px}
.primary,.secondary,.danger{font-size:16px}
input,select,textarea{font-size:17px}
.panel h3,.settings-card h3{font-size:21px}
.media-name{font-size:17px}
.media-meta{font-size:14px}
.meta-chip{font-size:12px;padding:5px 8px}
.media-type{font-size:11px}
.upload-file{font-size:15px}
.upload-status{font-size:14px}
.format-chip,.sync-chip,.playlist-usage{font-size:12px}
.playlist-card h3{font-size:21px}
.mini-name{font-size:16px}
.mini-meta,.field-hint{font-size:13px}
.brand-version,.brand-domain{font-size:11px!important}
@media(max-width:900px){
  body{font-size:17px}
  .section-head h1{font-size:30px}
}


/* v0.4.3.3 – Playlist usage / detach alignment */
.playlist-usage-row{
  display:flex;
  align-items:center;
  flex-wrap:wrap;
  gap:7px;
  margin-top:9px;
}
.playlist-usage{
  display:inline-flex;
  align-items:center;
  width:max-content;
  max-width:100%;
  min-height:30px;
  padding:5px 10px;
  border-radius:8px !important;
  font-size:12px;
  line-height:1.1;
}
.detach-inline{
  appearance:none;
  font-family:inherit;
  font-weight:600;
  color:#4f5e68;
  background:#fff;
  border:1px solid #d6e4ea;
  cursor:pointer;
}
.detach-inline:hover{
  background:#f5fafc;
  border-color:#b8d9e5;
  color:#0874a5;
}


/* v0.5.0 – Schedules */
.schedule-toolbar{display:flex;align-items:center;gap:12px;margin-bottom:16px}.schedule-view-toggle{display:flex;gap:7px}.timezone-chip{padding:8px 11px;border:1px solid #d9e4ea;border-radius:8px;background:#fff;color:#55707d;font-size:13px}.schedule-list{display:flex;flex-direction:column;gap:10px}.schedule-card{display:flex;align-items:center;gap:14px;padding:15px 16px;background:#fff;border:1px solid var(--line);border-radius:12px;box-shadow:var(--shadow)}.schedule-disabled{opacity:.62}.schedule-priority{width:38px;height:38px;display:grid;place-items:center;border-radius:9px;background:#eef8fc;color:#0874a5;font-weight:800}.schedule-card-main{flex:1;min-width:0}.schedule-title-row{display:flex;align-items:center;gap:9px}.schedule-title-row h3{margin:0;font-size:20px}.schedule-active-chip,.schedule-off-chip{font-size:11px;padding:4px 7px;border-radius:6px}.schedule-active-chip{background:#e9f8f2;color:#247a55}.schedule-off-chip{background:#f1f3f5;color:#737e87}.schedule-content-line{margin-top:4px;font-size:15px}.schedule-meta-line{display:flex;flex-wrap:wrap;gap:9px 16px;margin-top:7px;color:var(--muted);font-size:13px}.schedule-editor{width:min(1050px,94vw)}.schedule-form-grid{display:grid;grid-template-columns:2fr 2fr .7fr 1fr;gap:12px}.schedule-enabled{align-self:end;min-height:45px;display:flex!important;flex-direction:row!important;align-items:center;gap:8px}.schedule-enabled input,.all-day-check input{width:18px;height:18px;accent-color:var(--accent)}.schedule-subsection{margin-top:18px;padding-top:16px;border-top:1px solid var(--line)}.schedule-subhead{display:flex;align-items:center;justify-content:space-between}.schedule-subhead h3,.schedule-subsection h3,.schedule-subsection h4{margin:0 0 10px}.all-day-check{display:flex!important;flex-direction:row!important;gap:7px;align-items:center}.weekday-picker{display:flex;gap:7px;flex-wrap:wrap}.weekday-picker label{cursor:pointer}.weekday-picker input{display:none}.weekday-picker span{display:grid;place-items:center;min-width:48px;padding:8px 9px;border:1px solid #d9e4ea;border-radius:8px;background:#fff}.weekday-picker input:checked+span{background:#eaf9fd;border-color:#72c9df;color:#0874a5;font-weight:700}.schedule-time-fields{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:12px}.schedule-week{overflow-x:auto;background:#fff;border:1px solid var(--line);border-radius:12px}.week-head,.week-body{display:grid;grid-template-columns:70px repeat(7,minmax(130px,1fr));min-width:1050px}.week-head>div{padding:10px;text-align:center;font-weight:700;border-right:1px solid var(--line);border-bottom:1px solid var(--line)}.week-time-head{color:var(--muted)}.week-body{height:720px;position:relative}.week-time-axis{position:relative;border-right:1px solid var(--line);background:#fafbfc}.week-time-axis span{position:absolute;right:8px;transform:translateY(-50%);font-size:11px;color:#89949d}.week-day-col{position:relative;border-right:1px solid var(--line);background:repeating-linear-gradient(to bottom,transparent 0,transparent 29px,#eef1f4 30px)}.week-schedule-block{position:absolute;left:5px;right:5px;border:0;border-left:4px solid #069fd4;border-radius:7px;background:#e9f8fd;color:#174b5c;text-align:left;padding:5px 7px;overflow:hidden;cursor:pointer;min-height:20px}.week-schedule-block b{display:block;font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.week-schedule-block span{font-size:10px}.week-schedule-block.p8,.week-schedule-block.p9,.week-schedule-block.p10{border-left-color:#f39b09;background:#fff4df}.week-schedule-block.p1,.week-schedule-block.p2,.week-schedule-block.p3{opacity:.72}

/* Publish activation progress */
.publish-progress-panel{margin:4px 0 8px;padding:16px;border:1px solid #dce7ed;border-radius:12px;background:#f9fbfc}.publish-progress-head{display:flex;justify-content:space-between;gap:12px;margin-bottom:10px}.publish-progress-track{height:10px;background:#e4ebef;border-radius:6px;overflow:hidden}.publish-progress-track i{display:block;width:0;height:100%;background:linear-gradient(90deg,var(--cyan),var(--blue));transition:width .35s ease}.publish-progress-screens{display:flex;flex-direction:column;gap:7px;margin-top:12px}.publish-progress-screen{display:flex;align-items:center;gap:9px;padding:8px 10px;border:1px solid #e0e7eb;border-radius:8px;background:#fff}.publish-progress-screen small{display:block;color:var(--muted);font-size:12px}.publish-state-dot{width:9px;height:9px;border-radius:50%;background:#aab5bc}.publish-progress-screen.syncing .publish-state-dot{background:#12b4d5;box-shadow:0 0 0 4px rgba(18,180,213,.12)}.publish-progress-screen.done .publish-state-dot{background:#2e9d57}.publish-progress-screen.offline .publish-state-dot{background:#e0a13b}.publish-progress-screen.done strong{color:#2e9d57}
@media(max-width:900px){.schedule-form-grid{grid-template-columns:1fr 1fr}.schedule-card{align-items:flex-start;flex-wrap:wrap}.schedule-card-main{min-width:70%}}

.playlist-usage.schedule-use{background:#fff7e8;border-color:#eedbb6;color:#9a6813}


/* v0.5.2 – Monitoring & Remote Control */
.monitor-stats{grid-template-columns:repeat(auto-fit,minmax(175px,1fr))}
.stat-card.good{border-left:4px solid #2e9d57}.stat-card.warn{border-left:4px solid #e2a12c}.stat-card.bad{border-left:4px solid #d84b4b}
.screen-card.health-offline,.screen-card.health-error{border-color:#efc9c9}.screen-card.health-low_storage,.screen-card.health-syncing{border-color:#ead9a9}
.monitor-health{display:inline-flex;align-items:center;width:max-content;max-width:100%;padding:6px 9px;border-radius:8px;font-size:13px;font-weight:750;background:#eaf8f2;color:#287d56;margin:10px 0 4px}
.monitor-health.offline,.monitor-health.error{background:#fff0f0;color:#b23d3d}.monitor-health.low_storage,.monitor-health.syncing{background:#fff7e8;color:#986712}
.monitor-section{padding:16px 0;border-bottom:1px solid var(--line)}.monitor-section:last-child{border-bottom:0}.monitor-section>h3,.monitor-section-head h3{margin:0 0 12px}.monitor-section-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px}.monitor-section-head .monitor-health{margin:0}
.remote-control-panel{margin:20px 0;padding:16px;border:1px solid var(--line);border-radius:14px;background:#f9fbfc}.remote-control-panel h3{margin:0}.remote-control-panel .command-row{margin:14px 0 0}
.storage-meter{margin-top:12px;padding:12px 14px;border:1px solid var(--line);border-radius:11px}.storage-meter>div:first-child{display:flex;justify-content:space-between;gap:15px;font-size:13px}.storage-track{height:9px;background:#edf1f4;border-radius:999px;overflow:hidden;margin-top:9px}.storage-track i{display:block;height:100%;background:#34a971}.storage-track i.low{background:#d98b2b}
.command-entry span,.command-entry small{color:var(--muted)}


/* v0.5.2.3 – publish progress responsiveness */
.publish-progress-track i.waiting{position:relative;overflow:hidden}.publish-progress-track i.waiting::after{content:"";position:absolute;inset:0;width:45%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.55),transparent);animation:tvhubiqPublishSweep 1.15s linear infinite}@keyframes tvhubiqPublishSweep{from{transform:translateX(-120%)}to{transform:translateX(280%)}}

/* v0.5.3 – Registration and plan limits */
.terms-check{
  display:flex!important;
  flex-direction:row!important;
  align-items:flex-start;
  gap:10px;
  margin:14px 0 16px;
  font-size:14px;
  line-height:1.45;
  color:#62717d;
}
.terms-check input{width:18px;height:18px;margin-top:2px;accent-color:var(--accent);flex:0 0 auto}
.terms-check a{color:#078eb4;text-decoration:underline;text-underline-offset:2px}
.register-plan-note{display:flex;flex-direction:column;gap:2px;margin-top:14px;padding:11px 13px;border:1px solid #d9e8ee;border-radius:10px;background:#f7fbfd;color:#526873;font-size:13px}
.register-plan-note b{color:#1e4656}
.plan-badge{display:inline-flex;align-items:center;justify-content:center;min-height:31px;padding:5px 11px;border-radius:999px;border:1px solid #cce5ed;background:#edf9fc;color:#087e9d;font-size:12px;font-weight:800;white-space:nowrap}
.plan-badge.large{font-size:14px;padding:8px 14px}
.settings-plan-card{grid-column:1/-1}
.plan-usage-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-top:18px}
.plan-usage-item{padding:13px 14px;border:1px solid var(--line);border-radius:12px;background:#fafcfd}
.plan-usage-head{display:flex;justify-content:space-between;gap:10px;align-items:center;margin-bottom:9px}
.plan-usage-head b{font-size:16px}
.plan-usage-head span{font-size:13px;color:var(--muted);font-family:Arial,sans-serif}
.plan-usage-track{height:7px;border-radius:999px;background:#e8eef2;overflow:hidden}
.plan-usage-track i{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,#08a7cf,#19c0e7);transition:width .3s ease}
.plan-note-row{display:flex;align-items:center;gap:18px;margin-top:17px;padding-top:15px;border-top:1px solid var(--line)}
.plan-note-row .muted{flex:1}
@media(max-width:980px){.plan-usage-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:650px){.plan-usage-grid{grid-template-columns:1fr}.plan-note-row{align-items:flex-start;flex-direction:column}.plan-note-row .primary{width:100%}.top-actions .plan-badge{display:none}}
\n\n/* v0.5.4 – account types, editable profile and platform administration */\n.account-type-picker{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:6px 0 12px}.account-type-option{display:flex!important;align-items:center;gap:10px;border:1px solid var(--line);border-radius:12px;padding:12px 13px;background:rgba(255,255,255,.025);cursor:pointer}.account-type-option input{width:auto!important;margin:0}.account-type-option span{display:flex;flex-direction:column}.account-type-option b{font-size:15px}.account-type-option small{color:var(--muted);font-size:12px}.account-type-option:has(input:checked){border-color:rgba(17,198,236,.55);background:rgba(17,198,236,.08)}\n.settings-profile-card{grid-column:1/-1}.profile-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px 18px}.admin-stats{margin-bottom:18px}.admin-users-panel{overflow:hidden}.admin-table-wrap{overflow:auto;margin-top:14px}.admin-table{width:100%;border-collapse:collapse;min-width:920px}.admin-table th,.admin-table td{text-align:left;padding:13px 12px;border-bottom:1px solid var(--line);vertical-align:middle}.admin-table th{color:#7890a0;font-size:12px;text-transform:uppercase;letter-spacing:.04em}.admin-table td{font-size:14px}.admin-user-cell{display:flex;flex-direction:column;gap:3px}.admin-user-cell span{color:var(--muted);font-size:12px}.admin-chip{display:inline-flex!important;color:#061017!important;background:var(--cyan);border-radius:6px;padding:2px 5px;font-size:9px!important;vertical-align:middle}.plan-badge.small{font-size:11px;padding:5px 8px}.panel-head-inline .search{max-width:320px}\n@media(max-width:700px){.account-type-picker,.profile-grid{grid-template-columns:1fr}.panel-head-inline{align-items:flex-start;flex-direction:column}.panel-head-inline .search{max-width:none;width:100%}}\n

/* v0.5.4.1 – Stripe Billing preview */
.billing-status-text{font-size:13px;font-weight:700;color:#47616f}.billing-modal{width:min(900px,calc(100vw - 30px))}.billing-cycle{display:flex;gap:8px;margin:18px 0}.billing-plans{display:grid;grid-template-columns:1fr 1fr;gap:16px}.billing-plan-card{border:1px solid var(--line);border-radius:16px;padding:20px;background:#fbfdfe;display:flex;flex-direction:column;gap:12px}.billing-plan-card.current{border-color:#31b8d8;box-shadow:0 0 0 2px rgba(49,184,216,.08)}.billing-plan-top{display:flex;align-items:center;justify-content:space-between}.current-plan-chip{font-size:11px;font-weight:800;color:#0b7e9a;background:#e8f8fc;border-radius:999px;padding:5px 8px}.billing-plan-card h3{font-size:30px;margin:0}.billing-plan-card h3 small{font-size:13px;color:var(--muted)}.billing-plan-card p{color:var(--muted);min-height:42px;margin:0}.billing-plan-card .billing-select-btn{margin-top:auto}.billing-footnote{margin-top:16px;color:var(--muted);font-size:13px}.plan-note-row{flex-wrap:wrap}@media(max-width:700px){.billing-plans{grid-template-columns:1fr}.billing-modal{width:calc(100vw - 18px)}}

/* TVHUBIQ v0.5.5 Visual Check */
.visual-check-panel{margin:20px 0;padding:16px;border:1px solid var(--line);border-radius:14px;background:#f7fbfd}.visual-check-head{display:flex;align-items:center;justify-content:space-between;gap:16px}.visual-check-head h3{margin:0 0 4px}.visual-check-head p{margin:0}.visual-check-head button{white-space:nowrap}.visual-check-result{margin-top:16px}.visual-check-frame{display:flex;align-items:center;justify-content:center;background:#111820;border-radius:12px;overflow:hidden;min-height:220px;max-height:62vh}.visual-check-frame img{display:block;max-width:100%;max-height:62vh;width:auto;height:auto;object-fit:contain}.visual-check-meta{margin-top:9px;font-size:12px;color:var(--muted);font-weight:700}@media(max-width:700px){.visual-check-head{align-items:stretch;flex-direction:column}.visual-check-head button{width:100%}.visual-check-frame{min-height:160px}}


/* v0.5.6 – Admin Customer Management */
.admin-kpi-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.admin-plan-cell{display:flex;flex-direction:column;align-items:flex-start;gap:5px}.admin-plan-cell small{color:var(--muted)}.admin-plan-cell small.warn{color:#b15b20;font-weight:800}.admin-table-sub{color:var(--muted)}
.admin-customer-modal{width:min(1120px,96vw)!important}.admin-customer-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}.admin-customer-section{border:1px solid var(--line);border-radius:16px;padding:18px;background:#fbfdfe}.admin-customer-section h3{margin-top:0}.admin-section-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.admin-section-actions{display:flex;gap:8px;flex-wrap:wrap}.admin-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.admin-form-grid label,.admin-limit-grid label{margin:0}.admin-inline-info{display:flex;flex-direction:column;gap:4px;padding:10px 12px;background:white;border:1px solid var(--line);border-radius:11px}.admin-inline-info span{font-size:11px;color:var(--muted);text-transform:uppercase;letter-spacing:.04em}.admin-inline-info b{font-size:13px}.admin-form-actions{grid-column:1/-1;display:flex;justify-content:flex-end;margin-top:4px}.admin-limit-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-bottom:12px}.admin-billing-summary{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:10px 0 16px}.admin-billing-summary>div,.admin-usage-grid>div{background:white;border:1px solid var(--line);border-radius:11px;padding:10px;display:flex;flex-direction:column;gap:3px;min-width:0}.admin-billing-summary span,.admin-usage-grid span{font-size:11px;color:var(--muted)}.admin-billing-summary b{font-size:13px;overflow-wrap:anywhere}.admin-billing-summary small{font-size:11px;color:var(--muted)}.admin-usage-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-bottom:16px}.admin-screen-list,.admin-audit-list{display:flex;flex-direction:column;gap:8px}.admin-screen-row,.admin-audit-row{display:flex;align-items:center;gap:10px;border-bottom:1px solid var(--line);padding:9px 2px}.admin-screen-row>div,.admin-audit-row>div{display:flex;flex-direction:column;gap:2px;flex:1}.admin-screen-row span,.admin-audit-row span{font-size:12px;color:var(--muted)}.admin-screen-row small,.admin-audit-row time{font-size:11px;color:var(--muted)}
@media(max-width:1000px){.admin-kpi-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.admin-customer-grid{grid-template-columns:1fr}.admin-billing-summary{grid-template-columns:1fr 1fr}}
@media(max-width:700px){.admin-kpi-grid,.admin-form-grid,.admin-limit-grid,.admin-billing-summary,.admin-usage-grid{grid-template-columns:1fr}.admin-customer-modal{width:calc(100vw - 14px)!important;padding:16px}}
