:root{color-scheme:light;--bg:#f4f7fb;--card:#fff;--text:#142138;--muted:#5f6e83;--line:#dce4ee;--primary:#2457d6;--danger:#9c2335}
@media(prefers-color-scheme:dark){:root{color-scheme:dark;--bg:#0f1827;--card:#19263a;--text:#eaf0fa;--muted:#a9b9cf;--line:#35455d;--primary:#759dff;--danger:#ff8293}}
*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font:16px/1.5 system-ui,-apple-system,Segoe UI,sans-serif}a{color:var(--primary)}button,input,select,textarea{font:inherit}button{background:var(--primary);border:0;border-radius:.65rem;padding:.75rem 1rem;color:#fff;cursor:pointer;font-weight:650}button.secondary{background:transparent;color:var(--text);border:1px solid var(--line)}button.danger{background:var(--danger)}input,select,textarea{width:100%;padding:.65rem .8rem;border:1px solid var(--line);border-radius:.55rem;background:var(--card);color:var(--text)}label{display:block;font-weight:600;margin:1rem 0}label small{font-weight:400;color:var(--muted)}h1,h2,h3{line-height:1.2}h1{font-size:1.7rem}.muted,p{color:var(--muted)}.card{background:var(--card);border:1px solid var(--line);border-radius:1rem;padding:1.5rem;box-shadow:0 8px 30px #0001}.login-shell{min-height:100vh;display:grid;place-items:center;padding:1rem}.login-card{width:min(100%,420px)}.login-card button{width:100%;margin-top:.75rem}.alert{padding:.8rem 1rem;border-radius:.6rem;background:#edf5ff}.alert.error{background:#ffedef;color:#8f1429}.layout{max-width:1400px;margin:auto;padding:1rem 1.5rem 3rem}.topbar{display:flex;align-items:center;justify-content:space-between;gap:1rem}.topbar form{margin:0}.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:1rem}.stat{font-size:2rem;font-weight:800}.table-wrap{overflow:auto}table{border-collapse:collapse;width:100%;min-width:650px}th,td{text-align:left;padding:.7rem;border-bottom:1px solid var(--line)}th{font-size:.8rem;text-transform:uppercase;color:var(--muted)}.tag{display:inline-block;border:1px solid var(--line);border-radius:2rem;padding:.15rem .55rem;font-size:.8rem}.actions{display:flex;gap:.4rem;align-items:center;flex-wrap:wrap}.actions form{display:inline}.actions button{padding:.35rem .6rem}.section{margin-top:1.5rem}.small{font-size:.85rem}.mono{font-family:ui-monospace,Consolas,monospace;overflow-wrap:anywhere}@media(max-width:600px){.layout{padding:1rem}.topbar{align-items:flex-start}.card{padding:1rem}}

/* PingCore-inspired application shell, independent of external CSS or fonts. */
:root{--surface-soft:#f8faff;--shadow:0 12px 34px rgba(15,36,70,.055);--sidebar:#fff;--focus:rgba(37,99,235,.24)}
:root[data-theme=dark]{color-scheme:dark;--bg:#102238;--card:#19314d;--text:#eef5ff;--muted:#acc0d5;--line:#35516d;--primary:#8bb4ff;--danger:#ff8ca3;--surface-soft:#152b45;--shadow:0 16px 44px rgba(2,10,23,.2);--sidebar:#10243b;--focus:rgba(139,180,255,.3)}
:root[data-theme=light]{color-scheme:light;--bg:#f5f8fc;--card:#fff;--text:#18283e;--muted:#66778e;--line:#dce5f0;--primary:#2563eb;--danger:#bb3150;--surface-soft:#f8faff;--shadow:0 12px 34px rgba(15,36,70,.055);--sidebar:#fff}
html{scroll-behavior:smooth}body{font-size:15px;background:radial-gradient(circle at 10% -10%,rgba(59,130,246,.09),transparent 32rem),var(--bg)}.card{border-radius:1.1rem;padding:1.4rem;box-shadow:var(--shadow);min-width:0}.card>p:first-of-type{margin-top:0}.section{margin-top:1.4rem;scroll-margin-top:5rem}.grid{grid-template-columns:repeat(auto-fit,minmax(min(100%,290px),1fr))}h1,h2,h3{letter-spacing:-.02em}h1{font-size:clamp(1.65rem,2.5vw,2.15rem);margin:.25rem 0}h2{font-size:1.18rem;margin:0 0 .65rem}label{color:var(--text)}label input,label select,label textarea{display:block;margin-top:.4rem}input,select,textarea{border-radius:.75rem;padding:.7rem .85rem}button{border-radius:.8rem;font-weight:700}button:hover{filter:brightness(.94)}button.secondary{background:var(--surface-soft)}:focus-visible{outline:3px solid var(--focus);outline-offset:2px}.stat{line-height:1.1;color:var(--text);margin-bottom:.3rem}.table-wrap{margin:1rem -.25rem 0}th,td{padding:.72rem .78rem;vertical-align:top}th{font-size:.72rem;letter-spacing:.07em;font-weight:800}tbody tr:hover{background:var(--surface-soft)}.tag{background:var(--surface-soft);font-weight:700;font-size:.76rem}.actions form{display:inline-flex;margin:0}.actions button{padding:.4rem .65rem;font-size:.78rem}.mono{white-space:pre-wrap}.alert{margin-top:1rem;border:1px solid #b7d2f8;background:#eaf3ff;color:#12438f}.alert.error{border-color:#f9c0cc;background:#ffedf0;color:#8f1429}:root[data-theme=dark] .alert{background:#163c67;border-color:#345c88;color:#cce3ff}:root[data-theme=dark] .alert.error{background:#4b2538;border-color:#8e455c;color:#ffe0e7}
.skip-link{position:fixed;z-index:100;top:-4rem;left:1rem;background:#2563eb;color:#fff;padding:.6rem 1rem;border-radius:.5rem}.skip-link:focus{top:1rem}.app-shell{min-height:100vh}.sidebar{background:var(--sidebar);border-bottom:1px solid var(--line)}.sidebar-top{height:72px;padding:0 1.15rem;display:flex;align-items:center;justify-content:space-between;gap:.5rem}.brand{display:flex;align-items:center;gap:.7rem;text-decoration:none;color:var(--text)}.brand-mark{display:grid;place-items:center;width:39px;height:39px;flex:none;border-radius:12px;background:linear-gradient(135deg,#1e40af,#38bdf8);box-shadow:0 5px 15px rgba(37,99,235,.22);color:#fff;font-size:1.05rem;font-weight:900}.brand-copy{display:flex;flex-direction:column;line-height:1.15}.brand-copy strong{font-size:.95rem}.brand-copy small{font-size:.67rem;text-transform:uppercase;letter-spacing:.13em;color:var(--muted);margin-top:.14rem}.theme-toggle{width:36px;height:36px;padding:0;background:transparent;color:var(--muted);font-size:1.35rem}.theme-toggle:hover{background:var(--surface-soft)}.sidebar-caption{display:none}.sidebar-nav{display:flex;gap:.3rem;overflow-x:auto;padding:.15rem .9rem .8rem}.nav-link{display:flex;align-items:center;gap:.7rem;flex:none;padding:.63rem .75rem;border-radius:.8rem;color:var(--muted);text-decoration:none;font-size:.84rem;font-weight:700;white-space:nowrap}.nav-link:hover{background:var(--surface-soft);color:var(--text)}.nav-link.is-active{background:#2563eb;color:#fff;box-shadow:0 5px 14px rgba(37,99,235,.18)}.nav-symbol{display:grid;place-items:center;min-width:1.1rem;font-size:1rem}.sidebar-account{display:none}.workspace{min-width:0}.workspace-header{display:none}.page-content{width:min(100%,1520px);margin:auto;padding:1.25rem 1rem 3rem}.page-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:1rem}.page-heading p{margin:.3rem 0 0}.eyebrow{font-size:.69rem;font-weight:800;letter-spacing:.15em;color:var(--primary)}.workspace-footer{padding:0 1rem 1.5rem;text-align:center;color:var(--muted);font-size:.75rem}.role-pill{border-radius:999px;padding:.28rem .6rem;background:var(--surface-soft);border:1px solid var(--line);font-size:.72rem;font-weight:700}.header-actions{display:flex;align-items:center;gap:1rem}.header-account{color:var(--text);font-size:.79rem;text-decoration:none;font-weight:700}.account-avatar{width:38px;height:38px;flex:none;display:grid;place-items:center;border-radius:12px;background:#dbeafe;color:#1d4ed8;font-weight:800}.account-copy{min-width:0;flex:1}.account-copy strong,.account-copy small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.account-copy strong{font-size:.82rem}.account-copy small{font-size:.7rem;color:var(--muted)}.logout-button{width:34px;height:34px;padding:0;border:1px solid var(--line);background:var(--surface-soft);color:var(--text)}details{min-width:145px}summary{cursor:pointer;color:var(--primary);font-weight:700}.login-card{width:min(100%,430px)}.login-card h1{margin-top:0}.login-card:before{content:'M';display:grid;place-items:center;width:48px;height:48px;margin-bottom:1.1rem;border-radius:14px;background:linear-gradient(135deg,#1e40af,#38bdf8);color:#fff;font-size:1.35rem;font-weight:900}
@media(min-width:1024px){.sidebar{position:fixed;inset:0 auto 0 0;width:245px;border-bottom:0;border-right:1px solid var(--line);z-index:10}.sidebar-caption{display:block;margin:1rem 1.3rem .55rem;color:var(--muted);font-size:.65rem;font-weight:800;letter-spacing:.13em;text-transform:uppercase}.sidebar-nav{display:block;max-height:calc(100vh - 220px);overflow-y:auto;overflow-x:hidden;padding:0 .7rem}.nav-link{margin-bottom:.2rem;padding:.72rem .8rem}.sidebar-account{position:absolute;bottom:0;left:0;right:0;display:flex;align-items:center;gap:.65rem;padding:1rem;border-top:1px solid var(--line)}.workspace{padding-left:245px}.workspace-header{height:70px;display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:0 1.7rem;border-bottom:1px solid var(--line);background:var(--card)}.breadcrumb{font-size:.78rem;color:var(--muted)}.breadcrumb span{margin:0 .45rem;color:var(--line)}.page-content{padding:1.8rem 2rem 3rem}.workspace-footer{text-align:left;padding-left:2rem}}
@media(max-width:600px){.card{padding:1rem}.page-content{padding:1rem .85rem 2.5rem}.sidebar-top{height:62px}.nav-link{font-size:.78rem;padding:.55rem .65rem}.actions{gap:.35rem}.table-wrap{margin-left:-.4rem;margin-right:-.4rem}table{min-width:620px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
.sidebar-account{display:flex;align-items:center;gap:.65rem;padding:.7rem 1rem;border-top:1px solid var(--line)}.sidebar-account form{margin:0}
.app-shell button:not(.theme-toggle):not(.logout-button){background:#2563eb;color:#fff}.app-shell button.secondary{background:var(--surface-soft)!important;color:var(--text)!important;border:1px solid var(--line)}.app-shell button.danger{background:#bb3150!important;color:#fff!important}
.login-card button{background:#2563eb;color:#fff}

/* PingCore-style control panel */
:root[data-theme=dark]{--bg:#10243b;--card:#142b45;--surface-soft:#10253e;--sidebar:#0d2037;--line:#35536f;--text:#f0f6ff;--muted:#a9bdd2;--primary:#2f79ff;--shadow:0 14px 32px rgba(2,10,23,.10)}
:root[data-theme=light]{--bg:#f5f8fc;--card:#fff;--surface-soft:#f0f5fb;--sidebar:#fff;--line:#dbe5ef;--text:#192b42;--muted:#66798f;--primary:#2563eb}
body{background:radial-gradient(circle at 13% 0%,rgba(48,118,200,.12),transparent 37rem),var(--bg);font-size:14px}
.sidebar{background:var(--sidebar)}.sidebar-top{height:64px;padding:0 1rem}.brand{gap:.42rem}.brand-mark{width:37px;height:37px;border-radius:9px;background:transparent;color:#05b8ed;box-shadow:none;font-size:1.55rem}.brand-copy strong{font-size:1.36rem;font-weight:850;letter-spacing:-.045em}.brand-copy strong span{color:#05c4e9}.brand-copy small{font-size:.55rem;letter-spacing:.19em;margin-top:0}.theme-toggle{font-size:1rem;width:31px;height:31px}.sidebar-caption{display:none}.nav-symbol{font-size:.9rem;color:var(--muted)}.nav-link.is-active .nav-symbol{color:#fff}.nav-link{font-size:.82rem;font-weight:700;border-radius:10px}.nav-link.is-active{background:#1961ef;box-shadow:none}.sidebar-account{margin:.75rem;border:1px solid var(--line);border-radius:15px;background:color-mix(in srgb,var(--card) 86%,#2563eb 14%);padding:.7rem;flex-wrap:wrap}.account-avatar{background:#2b4d70;color:#9ed6ff;border-radius:10px}.account-copy span{display:block;margin-top:.12rem;font-size:.63rem;color:var(--muted)}.sidebar-account form{flex:0 0 100%}.logout-button{width:auto;height:auto;border:0;background:transparent;color:var(--muted);padding:.25rem;font-size:.74rem;font-weight:700}.logout-button span{margin-left:.25rem}.workspace-header{height:64px;border-color:var(--line);font-size:.8rem}.workspace-header>strong{font-weight:750}.workspace-header>div{color:var(--muted);font-size:.72rem}.workspace-header>div span{margin:0 .35rem}.page-content{max-width:1540px;padding:2.1rem 2.7rem 3rem}.page-heading h1{font-size:1.65rem;font-weight:850;letter-spacing:-.025em}.page-heading p{margin:.28rem 0 0;font-size:.86rem}.eyebrow{color:#2781ff;font-size:.65rem;margin-bottom:.1rem}.page-actions{display:flex;justify-content:flex-end;align-items:center;gap:.55rem;min-height:42px;margin-top:-2.75rem;margin-bottom:1.35rem}.page-actions button,.page-actions .button{display:inline-flex;align-items:center;justify-content:center;text-decoration:none;min-height:40px;padding:.55rem .85rem;border:1px solid transparent;border-radius:11px;background:#1961ef;color:#fff;font-size:.8rem;font-weight:800}.page-actions .secondary{background:var(--card)!important;color:var(--text)!important;border-color:var(--line)!important}.page-actions button:disabled{opacity:.5;cursor:not-allowed}.card{background:var(--card);border-color:var(--line);border-radius:21px;box-shadow:var(--shadow)}.table-card{padding:0;overflow:hidden}.table-card .table-wrap{margin:0}.table-card table{min-width:780px}.table-card th{background:var(--surface-soft);font-size:.68rem;letter-spacing:.03em;padding:.85rem 1rem}.table-card td{padding:.85rem 1rem}.table-card tr:last-child td{border-bottom:0}.table-card tbody tr:hover{background:color-mix(in srgb,var(--card) 88%,#2563eb 12%)}.empty-cell{text-align:center;color:var(--muted);padding:1.8rem!important}.status-pill{display:inline-flex;border-radius:999px;padding:.23rem .58rem;font-size:.72rem;font-weight:800}.status-pill.is-good{background:#d1fae5;color:#047857}.status-pill.is-bad{background:#fee2e2;color:#a12037}.status-pill.is-neutral{background:var(--surface-soft);color:var(--muted)}.icon-button{display:grid;place-items:center;width:34px;height:34px;padding:0!important;font-size:.8rem}.app-shell button.danger-ghost{background:transparent!important;color:#f12f5b!important}.stats-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.8rem}.stat-card{min-height:113px;padding:1rem;border:1px solid var(--line);border-radius:19px;background:var(--card)}.stat-card span,.stat-card small{display:block;color:var(--muted);font-size:.76rem}.stat-card strong{display:block;font-size:1.75rem;line-height:1.3;margin:.16rem 0;font-weight:850}.dashboard-columns{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,.95fr);gap:1rem}.dashboard-columns .card{padding:1.2rem}.dashboard-columns table{min-width:560px}.card-heading{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem;margin-bottom:.9rem}.card-heading h2{margin:0;font-size:1rem}.card-heading p{margin:.1rem 0 0;font-size:.72rem}.card-heading a{font-size:.74rem;font-weight:800;text-decoration:none}.node-list{display:grid;gap:.5rem}.node-list-row{display:flex;align-items:center;gap:.65rem;padding:.72rem .8rem;border-radius:12px;background:var(--surface-soft)}.node-list-row>div{min-width:0;flex:1}.node-list-row strong,.node-list-row small{display:block}.node-list-row strong{font-size:.78rem}.node-list-row small{font-size:.68rem;color:var(--muted)}.node-dot{width:8px;height:8px;flex:none;border-radius:50%;background:#f97373}.node-dot.online{background:#10d99a}.form-columns{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}.secret-card pre{background:var(--surface-soft);padding:1rem;border-radius:12px}
.app-dialog{width:min(96vw,670px);max-height:min(90vh,900px);padding:1.5rem;border:1px solid var(--line);border-radius:23px;background:var(--card);color:var(--text);box-shadow:0 30px 90px rgba(1,10,25,.5)}.app-dialog::backdrop{background:rgba(1,10,27,.73);backdrop-filter:blur(3px)}.dialog-head{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem}.dialog-head h2{font-size:1.2rem;margin:0}.dialog-head p{font-size:.78rem;margin:.2rem 0 0}.dialog-close{background:transparent!important;color:var(--text)!important;padding:0!important;width:28px;height:28px;font-size:1.5rem;line-height:1}.dialog-form{margin-top:1rem}.dialog-form label{font-size:.78rem;margin:.8rem 0}.dialog-form input,.dialog-form select{border-radius:12px}.dialog-actions{display:flex;justify-content:flex-end;gap:.6rem;margin-top:1.3rem}.dialog-actions button{padding:.65rem 1rem}.dialog-actions .secondary{border:0!important;background:transparent!important;color:var(--muted)!important}
@media(min-width:1024px){.sidebar{width:255px}.workspace{padding-left:255px}.sidebar-nav{max-height:calc(100vh - 210px)}.sidebar-account{position:absolute;bottom:.5rem;left:.1rem;right:.1rem}.page-content{padding:2.1rem 3rem 3rem}}
@media(max-width:1023px){.sidebar-account{margin:0;border-left:0;border-right:0;border-radius:0}.page-actions{margin-top:1rem;justify-content:flex-start}.stats-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.dashboard-columns{grid-template-columns:1fr}}
@media(max-width:640px){.page-content{padding:1.35rem .85rem 2.5rem}.page-actions{flex-wrap:wrap}.stats-grid{gap:.6rem}.stat-card{min-height:96px}.form-columns{grid-template-columns:1fr;gap:0}.app-dialog{padding:1.1rem}.dialog-actions{flex-wrap:wrap}.dialog-actions button{flex:1}.brand-copy strong{font-size:1.1rem}}

/* Split login based on PingCore's supplied reference. */
.auth-page{min-height:100vh;background:radial-gradient(circle at 2% 0%,rgba(8,156,195,.18),transparent 36rem),radial-gradient(circle at 100% 0%,rgba(37,99,235,.16),transparent 39rem),#10243b;color:#f0f6ff}.auth-theme-toggle{position:fixed;top:1rem;right:1rem;display:grid;place-items:center;width:40px;height:40px;padding:0;border:1px solid #3a5b78;border-radius:14px;background:#132e4c;color:#e8f2ff;font-size:1.1rem}.auth-wrap{min-height:100vh;display:grid;place-items:center;padding:2rem}.auth-card{display:grid;grid-template-columns:45% 55%;width:min(100%,920px);min-height:500px;overflow:hidden;border:1px solid #3b5a78;border-radius:25px;background:#142b46;box-shadow:0 25px 60px rgba(0,8,24,.22)}.auth-brand{position:relative;display:grid;place-items:center;padding:2rem;background:radial-gradient(circle at 95% 12%,rgba(9,169,211,.12) 0 22%,transparent 22.2%),radial-gradient(circle at 0 100%,rgba(40,109,220,.2) 0 23%,transparent 23.2%),#143454}.auth-brand-inner{text-align:center;position:relative;z-index:1}.auth-logo{display:flex;justify-content:center;align-items:center;gap:.6rem;font-size:2.3rem;font-weight:900;letter-spacing:-.06em;white-space:nowrap}.auth-logo>span:last-child span{color:#06c9ed}.auth-logo-symbol{display:grid;gap:5px;width:43px}.auth-logo-symbol span{height:6px;border-left:6px dotted #05c4f2;border-right:30px solid #05c4f2;border-radius:4px}.auth-brand-rule{width:54px;height:3px;margin:2rem auto 1.35rem;border-radius:99px;background:linear-gradient(90deg,#2563eb,#06c9ed)}.auth-brand p{color:#dceafd;font-size:1.06rem;line-height:1.65;font-weight:800}.auth-panel{display:grid;place-items:center;padding:2.25rem 3rem}.auth-form-inner{width:100%;max-width:370px}.auth-kicker{color:#54caff;font-size:.72rem;text-transform:uppercase;letter-spacing:.15em;font-weight:900}.auth-form-inner h1{font-size:1.55rem;letter-spacing:-.025em;margin:.45rem 0 1.2rem}.auth-hint{color:#afc2d7;font-size:.82rem}.auth-form label{display:block;margin:.9rem 0;color:#ecf5ff;font-size:.78rem;font-weight:800}.auth-form input{display:block;margin-top:.35rem;border:1px solid #42617f;border-radius:12px;background:#10243b;color:#f0f6ff;padding:.75rem .9rem}.auth-form input:focus{border-color:#30a5ff;outline:3px solid rgba(48,165,255,.17)}.auth-submit{width:100%;margin-top:1rem;background:linear-gradient(90deg,#2861ec,#0fa8e5)!important;border-radius:11px;font-weight:850}.auth-code{text-align:center;font-family:Consolas,Monaco,monospace;font-size:1.35rem!important;letter-spacing:.28em}.auth-back-form{text-align:center;margin-top:.55rem}.auth-back{background:transparent!important;color:#b9ccdf!important;font-size:.78rem}.auth-page .alert{font-size:.8rem}.auth-page .alert.error{background:#55283e;border-color:#9f5367;color:#ffe6ec}
@media(max-width:760px){.auth-wrap{padding:1rem}.auth-card{grid-template-columns:1fr;min-height:0}.auth-brand{min-height:165px;padding:1.2rem}.auth-logo{font-size:1.8rem}.auth-brand-rule{margin:.8rem auto .45rem}.auth-brand p{font-size:.8rem;margin:.2rem 0}.auth-panel{padding:1.6rem 1.3rem 2rem}}
:root[data-theme=light] .auth-page{background:radial-gradient(circle at 0 0%,rgba(9,169,211,.11),transparent 35rem),#eff5fc;color:#192b42}:root[data-theme=light] .auth-card{background:#fff;border-color:#d0dfed}:root[data-theme=light] .auth-brand{background:radial-gradient(circle at 95% 12%,rgba(9,169,211,.12) 0 22%,transparent 22.2%),radial-gradient(circle at 0 100%,rgba(40,109,220,.12) 0 23%,transparent 23.2%),#eaf4ff}:root[data-theme=light] .auth-brand p{color:#294964}:root[data-theme=light] .auth-form label{color:#192b42}:root[data-theme=light] .auth-form input{background:#f9fcff;border-color:#c6d7e8;color:#192b42}:root[data-theme=light] .auth-theme-toggle{background:#fff;color:#223e5c;border-color:#c6d7e8}
.dashboard-columns table{min-width:0;width:100%}.dashboard-columns th,.dashboard-columns td{padding:.65rem .5rem}
@media(min-width:1024px){.sidebar-account{padding:1rem}}

/* Unified stream package inspired by MediaCP's station overview. */
.product-card{grid-column:1/-1;padding:1.35rem}.product-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;padding-bottom:1rem;border-bottom:1px solid var(--line)}.product-heading h2{margin:.15rem 0;font-size:1.25rem;letter-spacing:-.02em}.product-heading p{margin:.2rem 0 0;font-size:.76rem;color:var(--muted)}.product-heading .eyebrow,.component-heading .eyebrow{font-size:.62rem;font-weight:900;letter-spacing:.13em;color:#3a9cff}.product-controls{display:flex;align-items:center;gap:.5rem;padding:1rem 0;border-bottom:1px solid var(--line)}.product-controls form{margin:0}.product-controls button{min-height:38px;padding:.5rem .85rem;border-radius:10px;font-size:.76rem;font-weight:800}.product-components{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.8rem;padding-top:1rem}.product-component{min-width:0;padding:1rem;border:1px solid var(--line);border-radius:16px;background:var(--surface-soft)}.standalone-product{grid-column:span 1}.component-heading{display:flex;align-items:center;gap:.65rem;min-width:0}.component-heading>div:nth-child(2){min-width:0;flex:1}.component-heading h3{margin:.1rem 0;font-size:.88rem}.component-heading p{margin:0;font-size:.69rem;color:var(--muted)}.component-heading .status-pill{flex:none}.component-icon{width:36px;height:36px;display:grid;place-items:center;border-radius:11px;background:color-mix(in srgb,var(--primary) 14%,var(--card));color:var(--primary)}.component-facts{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:.9rem}.component-facts span{flex:1 1 100px;padding:.6rem .7rem;border:1px solid var(--line);border-radius:10px;background:var(--card)}.component-facts small,.component-facts strong{display:block}.component-facts small{color:var(--muted);font-size:.62rem}.component-facts strong{margin-top:.15rem;font-size:.74rem}.product-component>.actions{margin-top:.8rem}.product-component .dialog-form{padding-top:.7rem;border-top:1px solid var(--line)}.customer-login-button{white-space:nowrap;padding:.45rem .65rem!important;border-radius:9px!important;font-size:.7rem!important;font-weight:800}
.package-details{position:relative;min-width:100px}.package-details summary{padding:.45rem .6rem;border:1px solid var(--line);border-radius:9px;background:var(--surface-soft);font-size:.69rem}.package-detail-row{display:flex;align-items:center;gap:.45rem;padding:.45rem 0;border-bottom:1px solid var(--line);font-size:.68rem}.package-detail-row strong{max-width:120px;overflow:hidden;text-overflow:ellipsis}.package-detail-row span{flex:1;color:var(--muted)}.package-detail-row form{margin:0}.package-detail-row .icon-button{width:28px;height:28px}.table-card .actions form{margin:0}.table-card .actions>form button{white-space:nowrap}
.impersonation-banner{display:flex;align-items:center;gap:.8rem;margin:0 0 1rem;padding:.8rem 1rem;border:1px solid color-mix(in srgb,#3299ff 40%,var(--line));border-radius:14px;background:color-mix(in srgb,#1677e9 12%,var(--card));color:var(--text)}.impersonation-icon{width:34px;height:34px;display:grid;place-items:center;border-radius:10px;background:#176de1;color:#fff}.impersonation-banner>div{min-width:0;flex:1}.impersonation-banner strong,.impersonation-banner small{display:block}.impersonation-banner strong{font-size:.78rem}.impersonation-banner small{margin-top:.12rem;color:var(--muted);font-size:.68rem}.impersonation-banner form{margin:0}.impersonation-banner button{padding:.52rem .8rem!important;border-radius:10px!important;font-size:.72rem!important;font-weight:800}.impersonation-banner button.secondary{background:var(--card)!important}
@media(max-width:720px){.product-card{padding:1rem}.product-heading{align-items:flex-start}.product-heading .status-pill{font-size:.64rem}.product-controls{flex-wrap:wrap}.product-controls form{flex:1 1 130px}.product-controls button{width:100%}.product-components{grid-template-columns:1fr}.standalone-product{grid-column:span 1}}
@media(max-width:640px){.impersonation-banner{align-items:flex-start;flex-wrap:wrap}.impersonation-banner>div{flex-basis:calc(100% - 50px)}.impersonation-banner form{width:100%;padding-left:42px}.impersonation-banner button{width:100%}}

/* MediaCP-informed playout controls: a service-first DJ workspace. */
.service-picker{max-width:760px;padding:.6rem 1rem}.service-picker label{display:grid;grid-template-columns:150px minmax(0,1fr);align-items:center;gap:.8rem;margin:.3rem 0;font-size:.78rem}.service-picker label select{margin:0}.dj-overview{grid-template-columns:repeat(3,minmax(0,1fr))}.dj-layout{grid-template-columns:minmax(0,1.25fr) minmax(300px,.75fr)}.dj-layout>.card{min-width:0}.dj-schedule{margin:1rem 0 0;padding:1rem;border:1px solid var(--line);border-radius:14px;background:var(--surface-soft)}.dj-schedule legend{padding:0 .4rem;font-size:.8rem;font-weight:800}.dj-schedule .check-row{display:flex;align-items:center;gap:.6rem;margin:.2rem 0 .8rem;font-size:.76rem}.dj-schedule input[type=checkbox]{width:17px;height:17px;flex:none;margin:0;accent-color:#1961ef}.weekday-picker{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.35rem;margin:.65rem 0}.weekday-picker label{display:flex;align-items:center;gap:.4rem;margin:0;padding:.45rem .55rem;border:1px solid var(--line);border-radius:9px;background:var(--card);font-size:.7rem;font-weight:700;cursor:pointer}.dj-schedule>small{display:block;line-height:1.45}.dj-connection dl{display:grid;gap:0;margin:1rem 0}.dj-connection dl>div{display:grid;grid-template-columns:110px minmax(0,1fr);gap:.7rem;padding:.7rem 0;border-bottom:1px solid var(--line)}.dj-connection dt{color:var(--muted);font-size:.73rem}.dj-connection dd{margin:0;font-size:.76rem;font-weight:700;overflow-wrap:anywhere}.dj-connection p{font-size:.73rem;line-height:1.55}.dj-layout .dialog-form label{font-size:.78rem}.dj-layout .dialog-form label small{display:block;margin-top:.25rem}.dj-layout .form-columns{gap:.75rem}.dj-layout .actions{flex-wrap:nowrap}.dj-layout table .actions .button{white-space:nowrap}
@media(max-width:900px){.dj-layout{grid-template-columns:1fr}.dj-overview{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:640px){.service-picker label{grid-template-columns:1fr;gap:.3rem}.dj-overview{grid-template-columns:1fr}.weekday-picker{grid-template-columns:repeat(2,minmax(0,1fr))}.dj-connection dl>div{grid-template-columns:90px minmax(0,1fr)}.dj-layout .actions{flex-wrap:wrap}}
.button{display:inline-flex;align-items:center;justify-content:center;min-height:36px;padding:.5rem .75rem;border:1px solid var(--line);border-radius:10px;background:var(--primary);color:#fff;text-decoration:none;font-size:.75rem;font-weight:800;white-space:nowrap}.button.secondary{background:var(--card);color:var(--text)}.app-shell .actions .button.secondary{background:var(--card)!important;color:var(--text)!important}.dashboard-products{grid-template-columns:repeat(2,minmax(0,1fr))}.dashboard-product{min-width:0;padding:1.2rem;scroll-margin-top:5rem}.dashboard-product .product-heading{padding-bottom:.85rem}.dashboard-product .product-heading h2{font-size:1.08rem}.dashboard-product .product-components{grid-template-columns:repeat(auto-fit,minmax(min(100%,240px),1fr));gap:.55rem;padding-top:.75rem}.dashboard-product .product-component{padding:.75rem;border-radius:13px}.dashboard-product .component-heading{gap:.45rem}.dashboard-product .component-icon{width:30px;height:30px;border-radius:9px}.dashboard-product .component-heading h3{font-size:.76rem}.dashboard-product .component-heading .status-pill{font-size:.62rem}.dashboard-product .component-facts{margin-top:.55rem}.dashboard-product .component-facts span{padding:.45rem .55rem}.dashboard-product .component-facts strong{font-size:.69rem}.dashboard-product .product-controls{display:flex;flex-wrap:wrap;gap:.45rem;padding:.75rem 0 0;border:0}.dashboard-product .product-controls .button{min-height:34px;padding:.45rem .65rem}.service-tool-links{margin-top:.8rem}.service-tool-links .button{min-height:34px;padding:.4rem .6rem}
@media(max-width:800px){.dashboard-products{grid-template-columns:1fr}}
.team-layout{grid-template-columns:minmax(0,1.5fr) minmax(280px,.75fr)}.team-layout>.card{min-width:0}.team-permissions{display:grid;gap:.6rem;margin-top:1.2rem}.team-permissions-heading{display:flex;justify-content:space-between;align-items:baseline;gap:.5rem}.team-permissions-heading h3{margin:0;font-size:.92rem}.team-permissions-heading span{font-size:.67rem;color:var(--muted)}.team-permissions fieldset{min-width:0;margin:0;padding:.75rem;border:1px solid var(--line);border-radius:12px;background:var(--surface-soft)}.team-permissions legend{padding:0 .35rem;font-size:.78rem;font-weight:800}.team-permissions legend small{color:var(--muted);font-weight:500}.permission-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.4rem}.permission-grid label{display:flex;align-items:center;gap:.4rem;margin:0;padding:.5rem .55rem;border:1px solid var(--line);border-radius:9px;background:var(--card);font-size:.69rem;font-weight:700;cursor:pointer}.permission-grid input[type=checkbox]{width:16px;height:16px;flex:none;margin:0;accent-color:#1961ef}.permission-descriptions{display:grid;gap:.15rem;margin:1rem 0}.permission-descriptions>div{display:grid;gap:.1rem;padding:.65rem 0;border-bottom:1px solid var(--line)}.permission-descriptions strong{font-size:.77rem}.permission-descriptions span{font-size:.7rem;color:var(--muted)}
@media(max-width:980px){.team-layout{grid-template-columns:1fr}.permission-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:560px){.team-permissions-heading{align-items:flex-start;flex-direction:column}.permission-grid{grid-template-columns:1fr}}
.service-overview-grid{grid-template-columns:repeat(2,minmax(0,1fr));align-items:start}.service-overview-component{min-width:0;padding:1.15rem}.service-overview-component .product-heading h2{font-size:1rem}.service-endpoint{display:grid;gap:.35rem;margin-top:.8rem;padding:.7rem;border:1px solid var(--line);border-radius:10px;background:var(--card)}.service-endpoint small{color:var(--muted);font-size:.65rem}.service-endpoint code{overflow-wrap:anywhere;font-size:.72rem}.service-shortcuts{display:flex;flex-wrap:wrap;gap:.45rem;margin-top:.8rem}.service-details-note .muted{margin-bottom:0}
@media(max-width:720px){.dashboard-products,.service-overview-grid{grid-template-columns:1fr}.service-overview-component{padding:.9rem}}

/* Customer management: service list, followed by a scoped service workspace. */
[hidden]{display:none!important}.service-breadcrumb{display:flex;align-items:center;flex-wrap:wrap;gap:.55rem;color:var(--muted);font-size:.76rem;margin:-.4rem 0 1.2rem}.service-breadcrumb a{text-decoration:none}.service-breadcrumb i{font-size:.6rem}.service-workspace{display:grid;grid-template-columns:190px minmax(0,1fr);gap:1.3rem;align-items:start}.service-navigation{position:sticky;top:20px;border:1px solid var(--line);border-radius:12px;background:var(--card);overflow:hidden}.service-identity{padding:1.1rem .9rem;display:grid;justify-items:center;gap:.3rem;background:var(--surface-soft);border-bottom:1px solid var(--line);text-align:center}.service-identity strong{font-size:.94rem;overflow-wrap:anywhere}.service-identity small{font-size:.7rem;color:var(--muted)}.service-emblem{display:grid;place-items:center;width:42px;height:42px;border-radius:12px;color:#2d8eff;background:color-mix(in srgb,var(--primary) 13%,var(--card));font-size:1.15rem}.service-navigation nav{padding:.5rem}.service-nav-link{display:flex;align-items:center;gap:.65rem;padding:.7rem .6rem;border-radius:7px;text-decoration:none;font-size:.79rem;color:var(--text)}.service-nav-link i{width:17px;color:var(--muted);text-align:center}.service-nav-link.is-active{background:#1961ef;color:#fff;font-weight:700}.service-nav-link.is-active i{color:#fff}.service-nav-link:hover:not(.is-active){background:var(--surface-soft)}.service-back-link{display:flex;gap:.5rem;padding:.85rem .9rem;color:var(--muted);font-size:.72rem;text-decoration:none;border-top:1px solid var(--line)}.service-main{min-width:0}.service-page-title{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:1rem}.service-page-title h2{font-size:1.2rem;margin:0}.service-context-label{color:var(--muted);font-size:.73rem}.service-main .card{border-radius:12px;box-shadow:none;padding:1.1rem}.service-main .table-card{padding:0}.service-main .table-card table{min-width:620px}.service-main h3{font-size:.95rem;margin:0 0 .4rem}.service-main .section{margin-top:1.1rem}.list-toolbar{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:1rem 1.1rem;flex-wrap:wrap}.list-toolbar h2{font-size:1rem;margin:0}.list-toolbar p{font-size:.77rem;color:var(--muted);margin:.2rem 0}.service-main>.list-toolbar{padding:.3rem 0 1.1rem}.list-toolbar .actions{flex-wrap:wrap}.table-search{display:flex;align-items:center;gap:.55rem;margin:0!important;position:relative}.table-search i{color:var(--muted)}.table-search input{max-width:240px;margin:0;padding:.6rem .7rem;font-size:.78rem}.service-list-name{display:flex;align-items:center;gap:.8rem;color:var(--text);text-decoration:none;min-width:180px}.service-list-name small,.cell-subtitle{display:block;font-size:.69rem;color:var(--muted);font-weight:400;margin-top:.18rem}.service-list-icon{width:38px;height:38px;border-radius:10px;display:grid;place-items:center;color:#2586ff;background:var(--surface-soft);flex:none}.service-list-name strong{font-size:.85rem}.service-list .table-wrap{border-radius:0 0 14px 14px}.service-stat-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.85rem;margin-bottom:1.1rem}.service-stat{min-height:155px;display:flex;flex-direction:column;align-items:flex-start;gap:.65rem}.service-stat>span{color:var(--muted);font-size:.76rem}.service-stat>span i{margin-right:.3rem}.service-stat>strong{font-size:1.55rem}.service-stat>small{font-size:.72rem;color:var(--muted)}.service-stat .component-controls{margin-top:auto;gap:.2rem;flex-wrap:wrap}.service-stat .component-controls button{font-size:.63rem;padding:.3rem .35rem;border-radius:6px}.service-package-controls{display:flex;gap:1rem;align-items:center;justify-content:space-between;margin-bottom:1.1rem;flex-wrap:wrap}.service-package-controls p{font-size:.73rem;color:var(--muted);margin:0}.service-overview-columns,.service-settings-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}.service-overview-columns>article{min-width:0}.service-facts{margin:1rem 0;font-size:.79rem}.service-facts>div{display:grid;grid-template-columns:120px minmax(0,1fr);gap:.7rem;padding:.65rem 0;border-bottom:1px solid var(--line)}.service-facts dt{color:var(--muted)}.service-facts dd{margin:0;overflow-wrap:anywhere}.service-launchers{display:grid;gap:.5rem}.service-launchers a{display:flex;gap:.65rem;align-items:center;padding:.8rem;background:var(--surface-soft);border-radius:8px;text-decoration:none;color:var(--text)}.service-launchers a>i:first-child{color:#2b89ff}.service-launchers a>i:last-child{margin-left:auto;color:var(--muted)}.service-launchers strong,.service-launchers small{display:block}.service-launchers strong{font-size:.78rem}.service-launchers small{font-size:.69rem;color:var(--muted);margin-top:.15rem}.service-status-note{font-size:.72rem;color:var(--muted);margin:1.1rem 0}.connection-address{display:flex;align-items:center;justify-content:space-between;gap:.8rem;padding:.9rem;background:var(--surface-soft);border-radius:8px}.connection-address code{overflow-wrap:anywhere;min-width:0}.service-tabs{display:flex;gap:.2rem;border-bottom:1px solid var(--line);margin-bottom:1rem}.service-tabs a{padding:.7rem .9rem;font-size:.79rem;text-decoration:none;border-bottom:2px solid transparent;color:var(--muted)}.service-tabs a.is-active{color:var(--primary);border-color:var(--primary);font-weight:700}.media-library-summary{display:flex;align-items:center;flex-wrap:wrap;gap:1rem;padding:.6rem 0 1rem;font-size:.8rem}.media-library-summary>span:first-child{font-weight:700}.media-library-summary>small{margin-left:auto;color:var(--muted)}.folder-filter{display:flex;align-items:center;gap:.5rem;margin:0;font-size:.76rem}.folder-filter select{margin:0;max-width:190px}.media-file-name{display:flex;gap:.6rem;align-items:center;overflow-wrap:anywhere}.media-file-name i{color:#2b89ff}.media-file-name strong{font-size:.78rem}.upload-dropzone{display:flex!important;align-items:center;flex-direction:column;gap:.6rem;border:2px dashed var(--line);border-radius:12px;padding:1.7rem 1rem;background:var(--surface-soft);text-align:center}.upload-dropzone>i{font-size:1.8rem;color:var(--primary)}.upload-dropzone small{color:var(--muted)}.app-dialog>.dialog-close{float:right}.app-dialog>.card{padding:0!important;border:0;box-shadow:none;background:transparent}.app-dialog .dialog-form{clear:both}.playlist-dialog{width:min(96vw,980px)}.playlist-builder{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);gap:1rem;margin:1rem 0}.playlist-builder>div,.playlist-builder>aside{border:1px solid var(--line);border-radius:10px;padding:.8rem;min-width:0}.playlist-tracks{max-height:340px;overflow-y:auto}.playlist-track{display:flex!important;align-items:center;gap:.55rem;padding:.65rem .25rem;margin:0!important;border-bottom:1px solid var(--line);font-size:.75rem!important}.playlist-track input{width:16px!important;flex:none;margin:0}.playlist-selection{list-style:none;padding:0;margin:.6rem 0;max-height:340px;overflow-y:auto}.playlist-selection li{display:flex;gap:.4rem;align-items:center;padding:.55rem 0;border-bottom:1px solid var(--line);font-size:.73rem}.playlist-selection li>span{flex:1;overflow-wrap:anywhere}.playlist-selection button{padding:.15rem .35rem!important;font-size:.7rem;border-radius:4px}.playlist-selection-count{color:var(--muted);font-size:.72rem}.page-content:has(.service-workspace){padding:1.5rem 1.7rem 2.5rem}.service-settings-grid .form-columns{gap:.7rem}.service-settings-grid label{min-width:0}
@media(max-width:1450px){.service-stat-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.service-overview-columns,.service-settings-grid{grid-template-columns:1fr}.service-stat{min-height:132px}}
@media(max-width:900px){.service-workspace{grid-template-columns:1fr}.service-navigation{position:static}.service-identity{display:flex;justify-content:flex-start;text-align:left;flex-wrap:wrap;padding:.7rem}.service-identity small{margin-right:auto}.service-navigation nav{display:flex;flex-wrap:wrap}.service-nav-link{font-size:.74rem;padding:.6rem}.service-back-link{display:none}.page-content:has(.service-workspace){padding:1rem}.service-page-title{margin-top:.3rem}.playlist-builder{grid-template-columns:1fr}.playlist-tracks{max-height:230px}}
@media(max-width:550px){.service-stat-grid{grid-template-columns:1fr}.list-toolbar{align-items:flex-start;gap:.7rem}.table-search input{max-width:100%}.service-facts>div{grid-template-columns:95px minmax(0,1fr)}.service-context-label{display:none}.connection-address{align-items:flex-start;flex-direction:column}.media-library-summary>small{margin-left:0}.service-tabs a{padding:.6rem .5rem;font-size:.73rem}}
.service-main .table-card .card-heading{padding:1rem 1.1rem;margin:0}.service-main .dialog-head{margin-bottom:1rem}

.service-main #dj-table .actions{flex-wrap:nowrap;gap:.35rem}.service-main #dj-table .actions button{font-size:.72rem;white-space:nowrap}.service-main #dj-table th,.service-main #dj-table td{padding:.8rem .75rem}

/* Service workspace, media browser and programme planning. */
.app-shell .control-button{border:1px solid transparent!important;box-shadow:0 3px 8px #1725400c;transition:transform .15s,box-shadow .15s}.app-shell .control-button:hover{transform:translateY(-1px);box-shadow:0 5px 12px #17254018}.app-shell button.control-start{background:#e4f7ed!important;color:#137343!important;border-color:#b6e3ca!important}.app-shell button.control-stop{background:#fff0f1!important;color:#b12d48!important;border-color:#f4c6d0!important}.app-shell button.control-restart{background:#fff3dc!important;color:#916010!important;border-color:#f0d8a5!important}.radio-restart-form{margin:1rem 0 0;width:100%}.app-shell .radio-restart-button{display:flex;align-items:center;justify-content:center;gap:.5rem;width:100%;padding:.65rem .55rem;background:linear-gradient(115deg,#396bec,#635be6)!important;font-size:.75rem;box-shadow:0 5px 14px #4964da22}.service-identity .radio-restart-form{grid-column:1/-1}.service-tabs.settings-tabs{margin-bottom:1.2rem}.settings-tabs a{display:flex;align-items:center;gap:.5rem}.secret-reveal{display:inline-flex;align-items:center;gap:.5rem;max-width:100%}.secret-value{font-size:.85rem;overflow-wrap:anywhere;user-select:all}.secret-value.is-hidden{filter:blur(3px);user-select:none;letter-spacing:1px}.app-shell button.secret-eye{padding:.35rem;width:32px;height:32px;background:var(--surface-soft)!important;color:var(--muted)!important;border:1px solid var(--line);flex:none}.section-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem}.section-heading h3{margin-top:0}.badge{display:inline-block;border-radius:2rem;background:var(--surface-soft);border:1px solid var(--line);font-size:.7rem;padding:.2rem .6rem;color:var(--primary);white-space:nowrap}.form-columns{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 1rem}.switch-label{display:flex;gap:.6rem;align-items:center;font-size:.85rem}.switch-label input{width:auto;margin:0;flex:none}.dialog-form fieldset{border:1px solid var(--line);border-radius:1rem;padding:.7rem 1rem}.dialog-form legend{padding:0 .4rem;font-size:.8rem;font-weight:750}.dialog-form .form-feedback{margin:.4rem 0;font-size:.85rem}.form-feedback.error{color:var(--danger)}.form-feedback.success{color:#16824c}.app-dialog .dialog-head{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem}.app-dialog .dialog-head h2{margin:0}.app-dialog .dialog-head .dialog-close{position:static;flex:none}.icon-button{display:inline-flex;align-items:center;justify-content:center;min-width:32px;min-height:32px;padding:.4rem!important}.app-shell button.danger-ghost{background:transparent!important;color:var(--danger)!important;border:1px solid var(--line)}.empty-state{text-align:center;padding:3rem 1rem}.empty-state>i{font-size:2rem;color:var(--primary);margin-bottom:1rem}.empty-cell{text-align:center;padding:3rem!important}.empty-cell>i{font-size:2rem;color:var(--muted)}
.library-heading h3{font-size:1.5rem;margin:.35rem 0}.library-heading small{color:var(--muted);font-size:.75rem}.library-layout{display:grid;grid-template-columns:210px minmax(0,1fr);gap:1.2rem}.folder-library{padding:1.2rem .7rem;align-self:start;position:sticky;top:1rem}.folder-library>.eyebrow,.folder-library-label{padding:.2rem .5rem;font-size:.61rem;letter-spacing:.16em;font-weight:850;color:var(--primary)}.folder-library-label{border-top:1px solid var(--line);padding-top:1.3rem;margin-top:1rem;margin-bottom:.6rem}.app-shell button.folder-root,.app-shell button.folder-entry{display:flex;align-items:center;gap:.6rem;background:transparent!important;color:var(--muted)!important;width:100%;text-align:left;font-size:.74rem;padding:.65rem .5rem;font-weight:650}.app-shell button.folder-root.is-active,.app-shell button.folder-entry.is-active{background:#625bf00f!important;color:var(--primary)!important}.folder-entry span{overflow:hidden;text-overflow:ellipsis}.folder-entry small{margin-left:auto;font-size:.6rem;font-weight:400;opacity:.65}.folder-library details{min-width:0}.folder-library summary{list-style:none;display:flex}.folder-library summary::-webkit-details-marker{display:none}.folder-library summary::before{content:'\203A';color:var(--muted);align-self:center;font-size:.7rem}.folder-library details[open]>summary::before{transform:rotate(90deg)}.folder-children{padding-left:.6rem}.library-storage{margin-top:1.3rem;border-top:1px solid var(--line);padding:.85rem .4rem 0;color:var(--muted);font-size:.7rem}.library-content{min-width:0;display:grid;gap:1.2rem;align-content:start}.preview-player{padding:1.2rem;background:linear-gradient(110deg,var(--card),var(--surface-soft));box-shadow:0 12px 30px #28376612}.preview-head{display:flex;align-items:center;gap:.8rem}.preview-art{display:grid;place-items:center;width:44px;height:44px;flex:none;border-radius:13px;color:#fff;background:linear-gradient(135deg,#7c72ff,#5147db);box-shadow:0 7px 16px #675aed38}.preview-head strong{display:block;font-size:.82rem;margin:.15rem 0}.preview-head small{display:block;font-size:.65rem;color:var(--muted)}.preview-head .eyebrow{font-size:.58rem}.preview-label{margin-left:auto;white-space:nowrap;font-size:.6rem;color:var(--muted);background:var(--card);border-radius:1rem;padding:.25rem .5rem}.preview-controls{display:flex;align-items:center;gap:.65rem;margin-top:1rem}.app-shell .player-small{padding:0;background:transparent!important;color:var(--muted)!important;display:flex;align-items:center;gap:.2rem;font-size:.65rem}.player-small small{font-size:.6rem}.app-shell .player-play{width:40px;height:40px;flex:none;display:grid;place-items:center;border-radius:13px;background:#6259ed!important;box-shadow:0 5px 14px #6259ed30;padding:0}.preview-controls>span{font-family:ui-monospace,monospace;font-size:.6rem;color:var(--muted)}.preview-controls input[type=range]{width:auto;margin:0;padding:0;height:5px;accent-color:#685cf4}.preview-controls #preview-seek{flex:1;min-width:20px}.preview-controls #preview-volume{width:65px;flex:none}.preview-controls>i{font-size:.7rem;color:var(--muted)}.media-browser{padding:0;overflow:hidden}.media-browser>.list-toolbar{padding:1.2rem 1.2rem .5rem;margin:0}.media-browser h3{font-size:.9rem;margin:.4rem 0}.library-breadcrumbs{font-size:.66rem;display:flex;align-items:center;gap:.3rem}.app-shell .library-breadcrumbs button{padding:.1rem .2rem;background:transparent!important;color:var(--muted)!important;font-size:.66rem}.media-browser .table-search{margin:0;max-width:250px}.media-selection-bar{display:flex;align-items:center;flex-wrap:wrap;gap:.6rem;padding:.75rem 1.2rem;font-size:.7rem;border-bottom:1px solid var(--line)}.media-selection-bar label{display:flex;align-items:center;gap:.4rem;margin:0;font-size:.68rem;color:var(--muted)}.media-selection-bar input[type=checkbox],.media-files-table input[type=checkbox],.program-file input[type=checkbox]{width:14px;height:14px;margin:0;accent-color:var(--primary);flex:none}.media-selection-bar button{font-size:.68rem;padding:.45rem .65rem}.library-global-search{margin-left:auto!important}.media-browser .table-wrap{margin:0}.media-files-table{min-width:640px}.media-files-table th{font-size:.61rem;padding:.75rem .9rem;background:var(--surface-soft)}.media-files-table td{padding:.85rem .9rem;vertical-align:middle}.media-files-table th:first-child{width:55px}.media-files-table th:nth-child(3){width:75px}.media-files-table th:nth-child(4){width:70px}.media-files-table th:last-child{width:120px}.app-shell button.media-track-link{padding:0;background:transparent!important;color:var(--text)!important;display:flex;align-items:center;gap:.7rem;text-align:left;max-width:100%}.media-track-link>i{display:grid;place-items:center;flex:none;border-radius:10px;width:35px;height:35px;background:#7664ff10;color:#7962fa}.media-track-link strong{display:block;font-size:.72rem;font-weight:750}.media-track-link small{display:block;font-size:.61rem;color:var(--muted);font-weight:400;margin-top:.2rem;overflow-wrap:anywhere}.media-files-table .media-duration{font: .65rem ui-monospace,monospace}.media-files-table .actions{gap:.3rem;flex-wrap:nowrap}.media-files-table .actions button{font-size:.7rem}.media-files-table tr.is-playing{background:#7563f00a}.library-pagination{padding:.8rem 1.2rem;display:flex;align-items:center;justify-content:space-between;font-size:.7rem;color:var(--muted)}.library-pagination select{width:auto;padding:.3rem .6rem;font-size:.7rem}.upload-dialog{width:min(760px,95vw)}.upload-dropzone{display:flex;align-items:center;flex-direction:column;padding:1.5rem;border:2px dashed var(--line);border-radius:1rem;cursor:pointer;background:var(--surface-soft);gap:.35rem}.upload-dropzone>i{font-size:1.8rem;color:var(--primary);margin-bottom:.4rem}.upload-dropzone strong{font-size:.85rem}.upload-dropzone small{font-size:.7rem}.upload-dropzone input{font-size:.75rem;width:auto;max-width:100%;padding:.4rem}.upload-dropzone.is-dragging{border-color:var(--primary);background:#6762ed12}.batch-progress>div{display:flex;justify-content:space-between;font-size:.75rem;gap:.8rem}.batch-progress span{font-size:.65rem;color:var(--muted)}progress{width:100%;height:6px;accent-color:#665ee9;border:0;border-radius:20px;overflow:hidden}.upload-file-list{list-style:none;padding:0;max-height:300px;overflow:auto}.upload-file-list li{border:1px solid var(--line);border-radius:.7rem;padding:.7rem;margin-bottom:.5rem}.upload-file-heading{display:flex;gap:.5rem;align-items:center;font-size:.7rem}.upload-file-heading strong{overflow-wrap:anywhere}.upload-file-heading small{margin-left:auto;white-space:nowrap;color:var(--muted)}.upload-file-list li>small{font-size:.65rem;color:var(--muted)}.upload-file-list li.is-failed>small{color:var(--danger)}
.program-list{padding:.3rem 1.2rem}.program-row{display:flex;align-items:center;gap:.9rem;padding:1rem 0;border-bottom:1px solid var(--line)}.program-row:last-child{border:0}.program-art{display:grid;place-items:center;width:40px;height:40px;border-radius:12px;background:#6960e912;color:#6860df;flex:none}.program-summary{flex:1;min-width:0}.program-summary strong{display:inline-block;font-size:.85rem;margin-right:.5rem}.program-summary small{display:block;font-size:.72rem;color:var(--muted);margin-top:.2rem}.program-dialog{width:min(1150px,96vw);max-width:1150px}.app-dialog.program-dialog .dialog-form{max-width:none}.playlist-workspace{display:grid;grid-template-columns:1fr 1fr;gap:1rem;min-height:420px}.playlist-library,.playlist-selection{border:1px solid var(--line);border-radius:1rem;padding:1rem;min-width:0;background:var(--surface-soft)}.playlist-workspace h3{font-size:.85rem;margin:.2rem 0 .8rem}.playlist-library input[type=search]{font-size:.75rem}.program-folder{display:flex;align-items:center;gap:.5rem;padding:.4rem .5rem;cursor:grab;font-size:.72rem;border-radius:.5rem}.program-folder>span{flex:1;overflow-wrap:anywhere}.program-folder>small{font-size:.62rem;white-space:nowrap;color:var(--muted)}.program-folder>i{color:#d7a84c}.program-folder.is-active{background:#685ee913}.program-folder .icon-button{min-width:26px;min-height:26px;font-size:.65rem}.playlist-library #program-library-folders{max-height:170px;overflow:auto;margin:.6rem 0}.playlist-library .media-selection-bar{padding:.6rem 0;justify-content:space-between}.program-library-files{max-height:250px;overflow:auto}.program-file{display:flex;align-items:center;gap:.5rem;padding:.55rem .3rem;border-bottom:1px solid var(--line);font-size:.72rem;cursor:grab}.program-file>span{flex:1;overflow-wrap:anywhere}.program-file>i{color:var(--primary)}.playlist-entries{margin:0;padding:0;list-style:none;min-height:300px;max-height:480px;overflow:auto}.playlist-entry{display:flex;align-items:center;gap:.5rem;border:1px solid var(--line);background:var(--card);padding:.6rem;border-radius:.7rem;margin-bottom:.5rem;cursor:grab}.playlist-entry>div{flex:1;min-width:0}.playlist-entry strong{display:block;font-size:.74rem;overflow-wrap:anywhere}.playlist-entry small{display:block;font-size:.63rem;color:var(--muted)}.playlist-entry>i{color:var(--primary)}.playlist-entry button{font-size:.62rem;min-width:26px;min-height:26px}.playlist-selection .section-heading>span{font-size:.7rem;color:var(--primary)}.empty-drop{border:2px dashed var(--line);padding:3rem 1rem;text-align:center;border-radius:1rem;color:var(--muted);font-size:.8rem}.rotation-dialog{width:min(800px,95vw)}.rotation-steps{padding:0;list-style:none}.rotation-step{display:flex;gap:.6rem;align-items:center;padding:.7rem 0}.rotation-step .step-number{width:25px;height:25px;border-radius:50%;background:#6860e919;display:grid;place-items:center;color:var(--primary);font-size:.7rem;flex:none}.rotation-step input{width:70px;flex:none}.rotation-step>span:not(.step-number){font-size:.7rem;white-space:nowrap}.rotation-step select{flex:1;min-width:0;font-size:.75rem}.rotation-step .icon-button{font-size:.7rem}.is-dragging{opacity:.5}
.calendar-workspace{display:grid;grid-template-columns:190px minmax(0,1fr);gap:1rem}.calendar-sources{padding:1rem;align-self:start}.calendar-sources h3{font-size:.85rem}.calendar-sources h4{font-size:.72rem;color:var(--muted);margin:1rem 0 .5rem}.calendar-sources label{font-size:.7rem}.calendar-sources select{font-size:.7rem;padding:.5rem}.calendar-sources>small{display:block;font-size:.65rem;color:var(--muted)}.app-shell .calendar-source{display:flex;align-items:center;gap:.5rem;font-size:.73rem;padding:.6rem .7rem;width:100%;text-align:left;margin:.4rem 0;cursor:grab;background:#5c74e912!important;color:#4765c8!important;border:1px solid #5b77e725}.app-shell .calendar-source.rotation{background:#9c64dc12!important;color:#9161bd!important;border-color:#9c64dc30}.calendar-card{padding:.8rem;overflow:hidden}.calendar-card>.list-toolbar{margin:0 0 .7rem;font-size:.75rem}.calendar-scroll{overflow:auto;max-height:720px}.program-calendar{display:grid;grid-template-columns:42px repeat(7,minmax(86px,1fr));grid-template-rows:55px repeat(24,42px);min-width:650px;position:relative}.calendar-corner,.calendar-day-head{position:sticky;top:0;z-index:3;background:var(--card);border-bottom:1px solid var(--line)}.calendar-day-head{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.15rem}.calendar-day-head small{font-size:.62rem;color:var(--muted);text-transform:uppercase}.calendar-day-head strong{font-size:.82rem}.calendar-day-head.is-today{color:var(--primary);background:var(--surface-soft)}.calendar-hour{font-size:.57rem;color:var(--muted);padding-top:.2rem;grid-column:1;border-top:1px solid transparent}.calendar-day{position:relative;border-left:1px solid var(--line);display:flex;flex-direction:column}.app-shell button.calendar-cell{background:transparent!important;flex:1;border:0;border-top:1px solid var(--line);border-radius:0;padding:0;min-height:42px}.app-shell button.calendar-cell:hover,.app-shell button.calendar-cell.drag-over{background:#6361e912!important}.app-shell button.calendar-event{position:absolute;left:3px;right:3px;z-index:1;padding:.2rem .3rem;text-align:left;border-radius:5px;background:#e8efff!important;color:#3758ad!important;border:1px solid #b5c7f1;border-left:3px solid #5b7bdb;overflow:hidden;box-shadow:0 2px 4px #233b6810;min-height:0}.app-shell button.calendar-event.rotation{background:#f0e9fb!important;color:#8252ac!important;border-color:#d7c0ec;border-left-color:#a478cc}.calendar-event small{font-size:.5rem;display:block;white-space:nowrap}.calendar-event strong{display:block;font-size:.62rem;line-height:1.2}.weekday-picker{display:flex;gap:.7rem;flex-wrap:wrap}.weekday-picker label{font-size:.75rem;display:flex;align-items:center;gap:.3rem;margin:.2rem 0}.weekday-picker input{width:auto;margin:0}
:root[data-theme=dark] .app-shell button.calendar-event{background:#24395e!important;color:#c6d8ff!important}:root[data-theme=dark] .app-shell button.calendar-event.rotation{background:#3b2c53!important;color:#e2c8ff!important}:root[data-theme=dark] .app-shell button.control-start{background:#163f35!important;color:#8ce1b4!important;border-color:#316451!important}:root[data-theme=dark] .app-shell button.control-stop{background:#482d3b!important;color:#ffb1c1!important;border-color:#754356!important}:root[data-theme=dark] .app-shell button.control-restart{background:#473e2d!important;color:#f8d48c!important;border-color:#736144!important}
@media(min-width:1600px){.page-content:has(.file-manager),.page-content:has(.calendar-workspace){max-width:1800px}.library-layout{grid-template-columns:230px minmax(0,1fr)}}@media(max-width:1100px){.library-layout{grid-template-columns:165px minmax(0,1fr)}.preview-controls{gap:.45rem}.preview-controls #preview-volume{width:45px}.preview-controls .player-small small{display:none}.calendar-workspace{grid-template-columns:155px minmax(0,1fr)}}@media(max-width:800px){.library-layout,.calendar-workspace{grid-template-columns:1fr}.folder-library{position:static}.folder-library #library-folders{max-height:200px;overflow:auto}.folder-library .library-storage{display:none}.playlist-workspace{grid-template-columns:1fr}.calendar-sources #calendar-sources{display:flex;gap:1rem}.calendar-source-group{flex:1}.preview-controls>i,.preview-controls #preview-volume{display:none}.preview-label{display:none}.rotation-step{gap:.35rem}.rotation-step>span:not(.step-number){display:none}}@media(max-width:500px){.form-columns{grid-template-columns:1fr}.library-heading{flex-direction:column}.media-browser>.list-toolbar{flex-direction:column}.media-browser .table-search{max-width:none;width:100%}.preview-controls .player-small{display:none}.program-row{gap:.6rem}.program-row .actions{gap:.2rem}.program-art{width:30px;height:30px}.program-summary strong{font-size:.75rem}.rotation-step input{width:55px}.rotation-step select{padding:.5rem .3rem}.batch-progress>div{flex-direction:column}}

@media(min-width:801px) and (max-width:1500px){.calendar-workspace{grid-template-columns:1fr}.calendar-sources{display:grid;grid-template-columns:1fr 180px;gap:0 1rem}.calendar-sources>.eyebrow,.calendar-sources>h3{grid-column:1}.calendar-sources #calendar-sources{grid-column:1;grid-row:3 / 5;display:flex;gap:1rem}.calendar-source-group{flex:1;min-width:0}.calendar-sources>label{grid-column:2;grid-row:1 / 4;margin:0}.calendar-sources>small{grid-column:2;grid-row:4}.calendar-source-group h4{margin:.3rem 0}.app-shell .calendar-source{padding:.45rem .65rem;margin:.3rem 0}.calendar-scroll{max-height:650px}}

.calendar-source{border-radius:.65rem;font-weight:650;touch-action:none;user-select:none}
