*{box-sizing:border-box}html,body{margin:0;min-height:100%;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:#172033;background:#f4f6f8}a{text-decoration:none;color:inherit}button,input,select,textarea{font:inherit}.app{display:grid;grid-template-columns:272px minmax(0,1fr);min-height:100vh}.sidebar{background:#111827;color:#cbd5e1;padding:22px 18px;display:flex;flex-direction:column;position:sticky;top:0;height:100vh}.brand{display:flex;align-items:center;gap:12px;padding:4px 8px 22px}.brandmark{width:42px;height:42px;border-radius:13px;background:#2563eb;color:#fff;display:grid;place-items:center;font-weight:900}.brand strong{display:block;color:#fff;font-size:18px}.brand small{color:#94a3b8}.navgroup{font-size:11px;text-transform:uppercase;letter-spacing:.12em;color:#64748b;padding:20px 12px 7px}.nav a{display:flex;align-items:center;gap:12px;padding:11px 12px;border-radius:10px;margin:3px 0;font-size:14px}.nav a:hover,.nav a.active{background:#1f2937;color:#fff}.ico{width:20px;text-align:center}.sidebarfoot{margin-top:auto;padding:14px 12px 0;border-top:1px solid #273244}.sidebarfoot button{border:0;background:none;color:#cbd5e1;padding:7px 0;cursor:pointer}.main{min-width:0}.topbar{height:72px;background:rgba(255,255,255,.94);backdrop-filter:blur(12px);border-bottom:1px solid #e5e7eb;display:flex;align-items:center;justify-content:space-between;padding:0 34px;position:sticky;top:0;z-index:5}.crumb{font-size:14px;color:#64748b}.user{display:flex;align-items:center;gap:10px}.avatar{width:36px;height:36px;border-radius:50%;background:#eef2f7;display:grid;place-items:center;font-weight:700}.content{padding:30px 34px 48px;max-width:1840px;margin:auto}.headline{display:flex;justify-content:space-between;align-items:flex-start;gap:20px;margin-bottom:24px}.headline h1{margin:0;font-size:30px;letter-spacing:-.035em}.headline p{margin:7px 0 0;color:#64748b}.grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:18px}.card{background:#fff;border:1px solid #e5e7eb;border-radius:16px;padding:20px;box-shadow:0 1px 2px rgba(15,23,42,.03)}.metric{font-size:28px;font-weight:800;margin:7px 0 2px}.muted{color:#64748b}.label{font-size:13px;color:#64748b}.section{margin-top:22px}.section h2{font-size:18px;margin:0 0 15px}.tablewrap{overflow:auto;background:#fff;border:1px solid #e5e7eb;border-radius:16px}.table{width:100%;border-collapse:collapse;min-width:900px}.table th,.table td{text-align:left;padding:14px 16px;border-bottom:1px solid #eef2f7;font-size:14px}.table th{font-size:12px;color:#64748b;text-transform:uppercase;letter-spacing:.05em;background:#fafbfc}.table tr:last-child td{border-bottom:0}.badge{display:inline-flex;align-items:center;padding:5px 9px;border-radius:999px;font-size:12px;font-weight:700;background:#eef2f7;color:#475569}.badge.good{background:#ecfdf5;color:#047857}.badge.warn{background:#fff7ed;color:#c2410c}.badge.bad{background:#fef2f2;color:#b91c1c}.btn{border:0;border-radius:10px;padding:10px 14px;cursor:pointer;font-weight:700;font-size:13px}.btn.primary{background:#2563eb;color:#fff}.btn.secondary{background:#eef2f7;color:#334155}.btn.danger{background:#fff1f2;color:#be123c}.actions{display:flex;gap:8px;flex-wrap:wrap}.empty{padding:44px;text-align:center;color:#64748b}.formgrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.field label{display:block;font-size:12px;font-weight:700;color:#475569;margin-bottom:6px}.field input,.field select,.field textarea{width:100%;border:1px solid #dbe1e8;border-radius:10px;padding:11px 12px;background:#fff;outline:none}.field input:focus,.field select:focus,.field textarea:focus{border-color:#94a3b8;box-shadow:0 0 0 3px rgba(148,163,184,.15)}.field.wide{grid-column:1/-1}.notice{padding:13px 15px;border-radius:12px;background:#fff7ed;color:#9a3412;border:1px solid #fed7aa;font-size:13px}.errorbox{padding:13px 15px;border-radius:12px;background:#fef2f2;color:#991b1b;border:1px solid #fecaca;font-size:13px}.loading{opacity:.55;pointer-events:none}.toolbar{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.toolbar input{border:1px solid #dbe1e8;border-radius:10px;padding:10px 12px;min-width:240px}.split{display:grid;grid-template-columns:1.4fr .9fr;gap:18px}.kv{display:grid;grid-template-columns:180px 1fr;gap:8px 15px;font-size:14px}.kv div:nth-child(odd){color:#64748b}.footerline{margin-top:28px;color:#94a3b8;font-size:12px}@media(max-width:1100px){.grid{grid-template-columns:repeat(2,1fr)}.split{grid-template-columns:1fr}}@media(max-width:820px){.app{grid-template-columns:1fr}.sidebar{position:relative;height:auto}.topbar{padding:0 18px}.content{padding:22px 18px}.grid{grid-template-columns:1fr}.formgrid{grid-template-columns:1fr}.field.wide{grid-column:auto}}

/* 320 FM Stream · blue design system */
:root{
  --blue-50:#eff6ff;--blue-100:#dbeafe;--blue-200:#bfdbfe;--blue-300:#93c5fd;
  --blue-500:#3b82f6;--blue-600:#2563eb;--blue-700:#1d4ed8;--blue-800:#1e40af;--blue-900:#1e3a8a;
  --navy:#0b1f3a;--navy-2:#102a4c;--ink:#0f172a;--muted:#64748b;--line:#e2e8f0;
  --surface:#fff;--page:#f5f8fc;--shadow:0 18px 50px rgba(15,23,42,.10);
}
html,body{background:var(--page);color:var(--ink);-webkit-font-smoothing:antialiased}
.sidebar{background:linear-gradient(180deg,var(--navy) 0%,#0d2748 58%,#09192f 100%);color:#c8d7ea}
.brandmark{background:linear-gradient(135deg,var(--blue-500),var(--blue-700));box-shadow:0 8px 24px rgba(37,99,235,.28)}
.brand small{color:#86a4c8}.navgroup{color:#7091b6}
.nav a{color:#cbd9ea;transition:.16s ease}
.nav a:hover{background:rgba(59,130,246,.13);color:#fff;transform:translateX(2px)}
.nav a.active{background:linear-gradient(90deg,rgba(37,99,235,.30),rgba(37,99,235,.10));color:#fff;box-shadow:inset 3px 0 0 var(--blue-500)}
.sidebarfoot{border-color:rgba(148,163,184,.18)}
.topbar{border-color:#e6edf5;box-shadow:0 1px 0 rgba(15,23,42,.02)}
.card,.tablewrap{border-color:#e4ebf3;box-shadow:0 4px 18px rgba(15,23,42,.035)}
.btn.primary{background:linear-gradient(135deg,var(--blue-600),var(--blue-700));box-shadow:0 8px 20px rgba(37,99,235,.20)}
.btn.primary:hover{background:var(--blue-700)}
.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--blue-500);box-shadow:0 0 0 3px rgba(59,130,246,.14)}
.badge.good{background:#ecfdf5;color:#047857}.badge.warn{background:#fff7ed;color:#c2410c}.badge.bad{background:#fef2f2;color:#b91c1c}

/* Login */
.login-body{margin:0;min-height:100vh;background:linear-gradient(135deg,#eaf2ff 0%,#f7faff 45%,#eef4fb 100%);color:var(--ink)}
.login-grid{min-height:100vh;display:grid;grid-template-columns:minmax(420px,46%) 1fr}
.login-visual{position:relative;overflow:hidden;padding:56px 64px;display:flex;flex-direction:column;justify-content:space-between;color:#fff;background:linear-gradient(145deg,#0b1f3a 0%,#123b70 52%,#2563eb 100%)}
.login-visual:before,.login-visual:after{content:"";position:absolute;border-radius:50%;filter:blur(0);pointer-events:none}
.login-visual:before{width:420px;height:420px;right:-130px;top:-100px;background:rgba(147,197,253,.16)}
.login-visual:after{width:300px;height:300px;left:-110px;bottom:-90px;background:rgba(59,130,246,.20)}
.login-brand,.login-visual>div,.login-visual>small{position:relative;z-index:1}
.login-brand{font-size:24px;font-weight:900;letter-spacing:-.03em}.login-brand span{font-weight:600;color:#bfdbfe}
.login-visual .eyebrow{color:#bfdbfe}.login-visual h1{font-size:clamp(42px,5vw,72px);line-height:.98;margin:14px 0 24px;letter-spacing:-.055em;max-width:650px}
.login-visual p:not(.eyebrow){font-size:17px;line-height:1.7;color:#dbeafe;max-width:620px}
.login-visual small{color:#bfdbfe}
.login-panel{display:grid;place-items:center;padding:48px;background:radial-gradient(circle at 78% 18%,rgba(59,130,246,.08),transparent 28%)}
.login-card{width:min(440px,100%);background:rgba(255,255,255,.96);border:1px solid #dfe8f3;border-radius:22px;padding:38px;box-shadow:0 28px 70px rgba(15,23,42,.13)}
.login-card .eyebrow{margin:0 0 10px;color:var(--blue-600);font-weight:800;font-size:12px;letter-spacing:.14em}
.login-card h2{font-size:30px;letter-spacing:-.035em;margin:0 0 8px}.login-card>p:not(.eyebrow){margin:0 0 28px;color:var(--muted)}
.login-card label:not(.check){display:block;margin:16px 0 0;font-size:13px;font-weight:700;color:#334155}
.login-card input[type=text],.login-card input[type=password],.login-card input[name=username]{display:block;width:100%;margin-top:7px;border:1px solid #cfd9e6;border-radius:12px;padding:13px 14px;background:#fff;color:var(--ink);outline:none;transition:.16s ease}
.login-card input:focus{border-color:var(--blue-500);box-shadow:0 0 0 4px rgba(59,130,246,.13)}
.login-card .check{display:flex;align-items:center;gap:9px;margin:18px 0 22px;color:#475569;font-size:13px;font-weight:500}
.login-card .check input{accent-color:var(--blue-600)}
.login-card button{width:100%;border:0;border-radius:12px;padding:13px 16px;background:linear-gradient(135deg,var(--blue-600),var(--blue-700));color:#fff;font-weight:800;cursor:pointer;box-shadow:0 10px 26px rgba(37,99,235,.24);transition:.16s ease}
.login-card button:hover{transform:translateY(-1px);background:linear-gradient(135deg,var(--blue-700),var(--blue-800))}
.login-card .alert{margin:0 0 16px;padding:12px 14px;border-radius:11px;background:#fef2f2;border:1px solid #fecaca;color:#991b1b;font-size:13px}
@media(max-width:900px){.login-grid{grid-template-columns:1fr}.login-visual{min-height:340px;padding:38px 28px}.login-panel{padding:28px 20px}.login-card{padding:28px}.login-visual h1{font-size:46px}}

/* 320 FM Stream — flat Material navigation */
.nav a{
  border-radius:8px;
  border:0;
  box-shadow:none;
  transform:none;
  transition:background-color .16s ease,color .16s ease;
}
.nav a:hover{
  background:rgba(255,255,255,.065);
  color:#fff;
}
.nav a.active{
  background:rgba(59,130,246,.20);
  color:#fff;
  border:0;
  box-shadow:none;
  outline:0;
}
.nav a.active::before,.nav a.active::after{content:none!important;display:none!important}
.nav a .ico{opacity:.82}
.nav a.active .ico{opacity:1}

/* 320 FM Stream — responsive content system */
:root{
  --content-max:1760px;
  --content-pad-x:clamp(20px,2.4vw,42px);
  --content-pad-y:clamp(22px,2vw,36px);
  --card-radius:14px;
}
.main{background:linear-gradient(180deg,#f7faff 0%,#f3f7fc 100%);min-height:100vh}
.content{
  width:100%;
  max-width:var(--content-max);
  margin:0 auto;
  padding:var(--content-pad-y) var(--content-pad-x) 56px;
}
.page-head,.headline{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:20px;
  margin:0 0 24px;
}
.page-head h1,.headline h1{
  margin:0;
  font-size:clamp(26px,2vw,34px);
  line-height:1.1;
  letter-spacing:-.04em;
  color:#0f172a;
}
.page-head p,.headline p{margin:8px 0 0;color:#64748b;line-height:1.55;max-width:760px}
.cards,.grid{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(min(100%,220px),1fr));
  gap:16px;
}
.cards article,.card,.panel,.tablewrap{
  background:rgba(255,255,255,.94);
  border:1px solid #e4ebf4;
  border-radius:var(--card-radius);
  box-shadow:0 8px 28px rgba(15,23,42,.045);
}
.cards article{
  min-height:116px;
  padding:20px;
  display:flex;
  flex-direction:column;
  justify-content:space-between;
}
.cards article span,.label{font-size:12px;font-weight:700;color:#6b7d93;letter-spacing:.015em}
.cards article strong,.metric{font-size:clamp(24px,2.2vw,34px);line-height:1.05;font-weight:800;color:#0f172a;letter-spacing:-.035em}
.card{padding:clamp(18px,1.5vw,24px)}
.panel{padding:0;margin-top:18px;overflow:hidden}
.panel h2,.card h2,.section h2{font-size:17px;line-height:1.3;margin:0 0 16px;color:#172033;letter-spacing:-.015em}
.panel>h2{padding:20px 22px 4px;margin:0}
.panel table,.table{width:100%;border-collapse:collapse}
.panel th,.panel td,.table th,.table td{padding:14px 18px;border-bottom:1px solid #edf2f7;text-align:left;vertical-align:middle}
.panel tr:last-child th,.panel tr:last-child td,.table tr:last-child th,.table tr:last-child td{border-bottom:0}
.panel th,.table th{font-size:11px;font-weight:800;letter-spacing:.055em;text-transform:uppercase;color:#708197;background:#f8fafc}
.panel td,.table td{font-size:14px;color:#243247}
.tablewrap{overflow:auto;overscroll-behavior-inline:contain}
.table{min-width:720px}
.table tbody tr{transition:background-color .14s ease}
.table tbody tr:hover{background:#f8fbff}
.split{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(300px,.7fr);gap:16px}
.kv{display:grid;grid-template-columns:minmax(140px,190px) minmax(0,1fr);gap:10px 18px;align-items:start}
.kv>div:nth-child(odd){font-weight:600;color:#718196}
.kv>div:nth-child(even){color:#1e293b;min-width:0;overflow-wrap:anywhere}
.section{margin-top:20px}
.notice,.errorbox{border-radius:12px;line-height:1.5}
.btn{min-height:40px;display:inline-flex;align-items:center;justify-content:center;padding:10px 15px;border-radius:9px;transition:transform .14s ease,box-shadow .14s ease,background-color .14s ease}
.btn:hover{transform:translateY(-1px)}
.toolbar,.actions{display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.formgrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px 18px}
.field input,.field select,.field textarea{min-height:44px}
.empty{padding:48px 20px}
code{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:.91em;background:#f3f6fa;border:1px solid #e8edf3;border-radius:5px;padding:.1em .35em}

/* Large desktops */
@media (min-width:1600px){
  :root{--content-max:1900px;--content-pad-x:48px}
  .content{padding-top:38px}
  .cards,.grid{gap:18px}
  .card,.cards article{padding:24px}
}

/* Standard desktop / laptop */
@media (max-width:1279px){
  :root{--content-pad-x:28px}
  .split{grid-template-columns:1fr}
  .table{min-width:680px}
}

/* Tablet */
@media (max-width:960px){
  :root{--content-pad-x:22px;--content-pad-y:24px}
  .page-head,.headline{align-items:stretch;flex-direction:column}
  .page-head>.actions,.headline>.actions{width:100%}
  .cards,.grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .kv{grid-template-columns:1fr}
  .kv>div:nth-child(odd){margin-top:4px;font-size:12px;text-transform:uppercase;letter-spacing:.04em}
  .kv>div:nth-child(even){margin-top:-4px;padding-bottom:6px}
  .formgrid{grid-template-columns:1fr}
  .field.wide{grid-column:auto}
}

/* Mobile */
@media (max-width:640px){
  :root{--content-pad-x:16px;--content-pad-y:18px;--card-radius:12px}
  .content{padding-bottom:36px}
  .page-head,.headline{margin-bottom:18px}
  .page-head h1,.headline h1{font-size:26px}
  .cards,.grid{grid-template-columns:1fr;gap:12px}
  .cards article{min-height:96px;padding:17px}
  .card{padding:17px}
  .panel{margin-top:14px}
  .panel>h2{padding:17px 16px 4px}
  .panel th,.panel td,.table th,.table td{padding:12px 14px}
  .actions .btn,.toolbar .btn{flex:1 1 auto}
  .toolbar input{width:100%;min-width:0}
}

/* 320 FM Stream — account management components */
.eyebrow-page{display:block;margin-bottom:8px;font-size:11px;font-weight:800;letter-spacing:.12em;text-transform:uppercase;color:var(--blue-600)}
.surface{background:#fff;border:1px solid #e2e8f0;border-radius:16px;padding:22px;box-shadow:0 4px 18px rgba(15,23,42,.035)}
.table-surface{padding:0;overflow:hidden}.table-primary{display:block;font-weight:750;color:#0f172a}.table-primary:hover{color:var(--blue-600)}
.table td small{display:block;margin-top:4px;color:#64748b}.row-actions{text-align:right!important}.icon-btn{display:inline-grid;place-items:center;width:34px;height:34px;border-radius:9px;background:#f1f5f9;font-size:22px;color:#475569}.icon-btn:hover{background:var(--blue-50);color:var(--blue-700)}
.empty strong,.empty span{display:block}.empty strong{color:#334155;margin-bottom:5px}.empty span{font-size:13px}
.stack-lg{display:grid;gap:18px}.form-section{padding:0}.form-section>.section-head{padding:20px 22px;border-bottom:1px solid #edf2f7}.section-head{display:flex;justify-content:space-between;gap:16px;align-items:flex-start}.section-head h2{margin:0;font-size:17px;letter-spacing:-.02em}.section-head p{margin:5px 0 0;color:#64748b;font-size:13px}.form-section>.formgrid{padding:22px}
.field small{display:block;margin-top:6px;color:#64748b;font-size:12px}.field .errorlist{list-style:none;padding:0;margin:6px 0 0;color:#b91c1c;font-size:12px}.form-control{width:100%;min-height:43px;border:1px solid #cfd8e3;border-radius:10px;padding:10px 12px;background:#fff;color:#0f172a;outline:none}.form-control:focus{border-color:var(--blue-500);box-shadow:0 0 0 3px rgba(59,130,246,.12)}
.switch-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:10px;padding:22px}.switch-card{display:flex;align-items:center;gap:11px;padding:13px 14px;border:1px solid #e2e8f0;border-radius:12px;background:#f8fafc;cursor:pointer}.switch-card:hover{border-color:#bfdbfe;background:#f5f9ff}.switch-card strong{font-size:13px}.switch-input{width:18px;height:18px;accent-color:var(--blue-600)}
.form-actions{display:flex;justify-content:flex-end;gap:10px;position:sticky;bottom:0;padding:14px 0 4px;background:linear-gradient(180deg,rgba(245,248,252,0),var(--page) 28%)}
.metrics-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.metric.compact{font-size:20px;line-height:1.2;overflow-wrap:anywhere}.detail-grid{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(280px,.65fr);gap:18px}.modern-kv{margin-top:18px}.action-stack{display:grid;gap:10px;margin-top:18px}.action-stack form{margin:0}.btn.wide{width:100%}
@media(max-width:1200px){.metrics-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.detail-grid{grid-template-columns:1fr}}
@media(max-width:720px){.surface{border-radius:13px}.form-section>.formgrid,.switch-grid{padding:16px}.form-section>.section-head{padding:17px 16px}.metrics-grid{grid-template-columns:1fr}.form-actions{position:static;flex-direction:column-reverse}.form-actions .btn{width:100%;text-align:center}.modern-kv{grid-template-columns:1fr}.modern-kv div:nth-child(odd){font-size:12px;margin-top:8px}.modern-kv div:nth-child(even){font-weight:650}}


/* media library */
.media-tree{display:flex;flex-direction:column;gap:2px;max-height:620px;overflow:auto;border:1px solid var(--line);border-radius:12px;background:#fff}
.media-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:16px;align-items:center;padding:10px 12px;border-bottom:1px solid #eef2f7}
.media-row:last-child{border-bottom:0}.media-row:hover{background:var(--blue-50)}
.media-row>div:first-child{display:grid;grid-template-columns:22px minmax(0,1fr);column-gap:8px;align-items:center}
.media-row small{grid-column:2;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;margin-top:2px}
.media-row.dir{background:#f8fbff}.media-row.dir b{color:#1e40af}.media-icon{color:var(--blue-600);text-align:center}
@media(max-width:700px){.media-row{grid-template-columns:1fr}.media-row>div:last-child{padding-left:30px;color:var(--muted)}}


/* 320 FM Stream — responsive navigation drawer */
.topbar-left{display:flex;align-items:center;gap:12px;min-width:0}.menu-toggle{display:none;width:40px;height:40px;border:0;border-radius:9px;background:var(--blue-50);color:var(--blue-700);font-size:20px;cursor:pointer}.sidebar-backdrop{display:none}
@media(max-width:960px){.app{display:block}.menu-toggle{display:grid;place-items:center;flex:0 0 auto}.sidebar{position:fixed;left:0;top:0;bottom:0;z-index:40;width:min(310px,86vw);height:100vh;transform:translateX(-104%);transition:transform .2s ease;box-shadow:18px 0 55px rgba(2,8,23,.20);overflow-y:auto}.sidebar-open .sidebar{transform:translateX(0)}.sidebar-backdrop{position:fixed;inset:0;z-index:35;background:rgba(2,8,23,.36);backdrop-filter:blur(2px)}.sidebar-open .sidebar-backdrop{display:block}.topbar{padding:0 18px}.crumb{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.user span{display:none}}
@media(max-width:520px){.topbar{height:64px;padding:0 12px}.menu-toggle{width:38px;height:38px}.avatar{width:34px;height:34px}}


/* 320 FM Stream — media operations */
.media-surface{padding:0;overflow:hidden}.media-surface>.section-head{padding:20px 22px;border-bottom:1px solid #edf2f7}.media-bulk-actions>[data-selected-count]{font-size:12px;color:var(--muted);min-width:82px;text-align:right}.media-list-head,.media-row{display:grid;grid-template-columns:44px minmax(260px,1.4fr) minmax(220px,1fr) 90px 100px;gap:14px;align-items:center}.media-list-head{padding:10px 16px;background:#f8fafc;border-bottom:1px solid #edf2f7;font-size:11px;text-transform:uppercase;letter-spacing:.055em;font-weight:800;color:#708197}.media-list-head label{display:flex;gap:6px;align-items:center;text-transform:none;letter-spacing:0}.media-tree{border:0;border-radius:0;max-height:660px}.media-row{padding:10px 16px}.media-row>div:first-child{display:block}.media-file{display:grid;grid-template-columns:24px minmax(0,1fr);gap:0 8px;align-items:center;text-align:left;border:0;background:transparent;padding:0;color:inherit;cursor:pointer;min-width:0}.media-file b{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.media-file small{grid-column:2;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--muted)}.media-meta-cell{min-width:0}.media-meta-cell b,.media-meta-cell small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.modal-shell[hidden]{display:none}.modal-shell{position:fixed;inset:0;z-index:100;background:rgba(2,8,23,.42);backdrop-filter:blur(3px);display:grid;place-items:center;padding:20px}.modal-card{width:min(680px,100%);max-height:min(760px,92vh);overflow:auto;background:#fff;border-radius:18px;box-shadow:0 30px 90px rgba(2,8,23,.25);padding:22px}.modal-head{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;margin-bottom:18px}.modal-head h2{margin:0;font-size:20px}.modal-head p{margin:5px 0 0;color:var(--muted);font-size:13px;overflow-wrap:anywhere}.upload-progress{height:8px;background:#e9eff7;border-radius:999px;overflow:hidden;margin:18px 0 8px}.upload-progress>div{width:0;height:100%;background:var(--blue-600);transition:width .12s linear}.btn.danger{background:#fff1f2;color:#be123c}.btn.danger:hover{background:#ffe4e6}@media(max-width:900px){.media-list-head{display:none}.media-row{grid-template-columns:32px minmax(0,1fr) 90px}.media-meta-cell{grid-column:2}.media-row>div:nth-last-child(2){display:none}.media-row>div:last-child{grid-column:3;grid-row:1}.media-surface>.section-head{flex-direction:column}.media-bulk-actions{width:100%}}@media(max-width:600px){.media-row{grid-template-columns:30px minmax(0,1fr)}.media-row>div:last-child{display:none}.modal-shell{padding:10px}.modal-card{padding:17px;border-radius:14px}}


/* 320 FM Stream — core data and calendar */
.core-records{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:12px;margin-top:18px}.core-record{border:1px solid #e5edf6;border-radius:12px;padding:14px;background:#fbfdff;display:grid;gap:8px}.core-record>div{display:grid;grid-template-columns:minmax(90px,.7fr) minmax(0,1.3fr);gap:10px;align-items:start}.core-record span{font-size:11px;text-transform:uppercase;letter-spacing:.045em;color:#728197;font-weight:700}.core-record strong{font-size:13px;color:#1f2a3a;overflow-wrap:anywhere}.calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(180px,1fr));gap:1px;background:#dfe7f1;border:1px solid #dfe7f1;border-radius:14px;overflow:auto}.calendar-day{background:#fff;min-height:430px;padding:14px}.calendar-day header{display:flex;justify-content:space-between;align-items:center;padding-bottom:12px;border-bottom:1px solid #edf2f7}.calendar-day header strong{font-size:13px;text-transform:uppercase}.calendar-day header span{font-size:12px;color:var(--muted)}.calendar-events{display:grid;gap:8px;margin-top:12px}.calendar-events article{padding:10px;border-radius:10px;background:var(--blue-50);border:1px solid var(--blue-100)}.calendar-events article b,.calendar-events article span{display:block}.calendar-events article b{font-size:12px;color:#1e3a8a}.calendar-events article span{margin-top:4px;font-size:11px;color:#64748b}@media(max-width:1100px){.calendar-grid{grid-template-columns:repeat(7,minmax(160px,1fr))}}@media(max-width:650px){.core-records{grid-template-columns:1fr}.core-record>div{grid-template-columns:1fr}.calendar-day{min-height:320px}}

/* channel overview */
.stream-head{align-items:center}
.channel-list{padding:0;overflow:hidden}
.channel-row{display:grid;grid-template-columns:minmax(170px,1.15fr) 74px minmax(180px,1.2fr) minmax(170px,1fr) minmax(150px,.9fr) minmax(150px,.9fr) auto;align-items:center;gap:18px;padding:15px 18px;border-bottom:1px solid #e8eef5;background:#fff}
.channel-row:last-child{border-bottom:0}.channel-row:hover{background:#f8fbff}
.channel-engine{display:flex;align-items:center;gap:11px;min-width:0}.engine-badge{width:42px;height:42px;border-radius:11px;display:grid;place-items:center;font-size:11px;font-weight:900;letter-spacing:.04em;background:#eef4ff;color:#1d4ed8}.engine-badge.shoutcast{background:#fff7ed;color:#c2410c}.engine-badge.icecast{background:#eff6ff;color:#1d4ed8}.channel-engine strong{font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.switch-pill{width:38px;height:22px;border-radius:999px;background:#cbd5e1;display:inline-flex;align-items:center;padding:3px;transition:.16s}.switch-pill span{width:16px;height:16px;border-radius:50%;background:#fff;box-shadow:0 1px 3px rgba(15,23,42,.22)}.switch-pill.on{justify-content:flex-end;background:#315f93}.switch-pill.off{justify-content:flex-start}.channel-state,.channel-metrics,.channel-access{display:flex;flex-direction:column;gap:4px;min-width:0}.channel-state small,.channel-metrics small,.channel-access small{font-size:11px;color:#64748b;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.channel-state strong,.channel-metrics strong,.channel-access strong{font-size:13px}.status-pill{display:inline-flex;width:max-content;min-width:120px;justify-content:center;border-radius:8px;padding:5px 12px;font-size:12px;font-weight:800}.status-pill.online{background:#dcfce7;color:#15803d}.status-pill.offline{background:#eef2f7;color:#64748b}.channel-actions{display:flex;gap:8px;justify-content:flex-end}.round-action{width:38px;height:38px;border-radius:999px;border:1px solid #d7e0ea;background:#fff;color:#315f93;display:grid;place-items:center;cursor:pointer}.round-action:hover:not(:disabled){background:#eff6ff}.round-action.danger{color:#dc2626;border-color:#fecaca}.round-action:disabled{opacity:.45;cursor:not-allowed}.hls-row{display:flex;justify-content:space-between;align-items:center;padding:18px 20px}.hls-row>div{display:flex;align-items:center;gap:10px}.channel-empty{padding:56px 24px}
@media(max-width:1350px){.channel-row{grid-template-columns:minmax(170px,1.1fr) 66px minmax(170px,1fr) minmax(160px,.9fr) minmax(130px,.8fr) auto}.channel-row .channel-access:nth-of-type(6){display:none}}
@media(max-width:1050px){.channel-row{grid-template-columns:minmax(180px,1.2fr) 62px minmax(160px,1fr) minmax(150px,.9fr) auto}.channel-row .channel-access{display:none}.channel-actions{justify-content:flex-start}}
@media(max-width:760px){.channel-row{grid-template-columns:1fr auto;gap:12px;padding:16px}.channel-engine{grid-column:1/2}.channel-switch{grid-column:2/3}.channel-state,.channel-metrics{grid-column:1/-1;display:grid;grid-template-columns:auto 1fr;align-items:center;gap:8px 12px}.channel-actions{grid-column:1/-1}.status-pill{min-width:0}.stream-head{align-items:stretch}}

/* playlists */
.playlist-layout{display:grid;grid-template-columns:320px minmax(0,1fr);gap:18px;min-height:650px}.playlist-sidebar,.playlist-main{padding:0;overflow:hidden}.playlist-side-head,.playlist-main-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:18px 20px;border-bottom:1px solid #e8eef5}.playlist-main-head>div:first-child{display:flex;flex-direction:column;gap:4px}.playlist-main-head small{color:#64748b}.mini-icon{width:32px;height:32px;border-radius:8px;border:1px solid #d7e0ea;background:#fff;color:#2563eb;font-weight:800}.playlist-search,.media-browser-search{padding:12px;border-bottom:1px solid #edf2f7}.playlist-search input,.media-browser-search input,.playlist-toolbar input,.media-file-toolbar input{width:100%;border:1px solid #d7e0ea;border-radius:9px;padding:10px 12px;outline:none}.playlist-tree{padding:8px;max-height:560px;overflow:auto}.playlist-entry{width:100%;display:grid;grid-template-columns:28px minmax(0,1fr);gap:10px;text-align:left;border:0;background:transparent;padding:11px 10px;border-radius:9px;color:#243247}.playlist-entry.active{background:#eaf2ff;color:#1d4ed8}.playlist-entry strong,.playlist-entry small{display:block}.playlist-entry small{margin-top:4px;color:#64748b;font-size:11px}.playlist-icon{padding-top:2px}.playlist-empty{padding:28px 16px;text-align:center;color:#64748b}.playlist-empty strong,.playlist-empty span{display:block}.playlist-empty span{font-size:12px;margin-top:6px}.playlist-toolbar{display:grid;grid-template-columns:auto minmax(220px,1fr) auto;gap:10px;align-items:center;padding:12px 16px;border-bottom:1px solid #edf2f7;background:#fafcff}.select-all{display:flex;align-items:center;gap:7px;color:#64748b;font-size:12px}.track-row{display:grid;grid-template-columns:22px 24px 38px minmax(260px,1fr) minmax(120px,.35fr) 80px 40px;gap:10px;align-items:center;padding:11px 16px;border-bottom:1px solid #edf2f7}.track-row:hover{background:#f8fbff}.drag{color:#94a3b8;cursor:grab}.track-cover{width:36px;height:36px;border-radius:8px;background:#eef4ff;color:#2563eb;display:grid;place-items:center}.track-title strong,.track-title small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.track-title strong{font-size:13px}.track-title small,.track-meta,.track-duration{font-size:11px;color:#64748b}.track-duration{text-align:right}
.media-browser-backdrop{position:fixed;inset:0;background:rgba(15,23,42,.42);z-index:80;display:grid;place-items:center;padding:24px}.media-browser-backdrop[hidden]{display:none}.modal-open{overflow:hidden}.media-browser-dialog{width:min(1180px,96vw);max-height:88vh;background:#fff;border-radius:16px;box-shadow:0 30px 90px rgba(15,23,42,.28);display:grid;grid-template-rows:auto minmax(0,1fr) auto;overflow:hidden}.media-browser-head,.media-browser-foot{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:16px 18px;border-bottom:1px solid #e8eef5}.media-browser-head>div{display:flex;flex-direction:column;gap:4px}.media-browser-head small{color:#64748b}.media-browser-foot{justify-content:flex-end;border-top:1px solid #e8eef5;border-bottom:0}.media-browser-body{display:grid;grid-template-columns:300px minmax(0,1fr);min-height:500px;overflow:hidden}.media-folders{border-right:1px solid #e8eef5;overflow:auto}.folder-list{padding:8px}.folder-entry{width:100%;border:0;background:transparent;padding:10px;border-radius:8px;text-align:left;color:#334155}.folder-entry.active,.folder-entry:hover{background:#eff6ff;color:#1d4ed8}.media-files{min-width:0;overflow:auto}.media-file-toolbar{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:14px;align-items:center;padding:12px 14px;border-bottom:1px solid #e8eef5}.media-file-toolbar span{font-size:12px;color:#64748b}.media-file-list{min-height:430px}
@media(max-width:1050px){.playlist-layout{grid-template-columns:260px minmax(0,1fr)}.track-row{grid-template-columns:20px 22px 34px minmax(220px,1fr) 70px 38px}.track-meta{display:none}}
@media(max-width:760px){.playlist-layout{grid-template-columns:1fr;min-height:0}.playlist-sidebar{max-height:320px}.playlist-toolbar{grid-template-columns:1fr}.select-all{display:none}.track-row{grid-template-columns:18px 22px 34px minmax(0,1fr) 38px}.track-duration,.track-meta{display:none}.media-browser-backdrop{padding:0}.media-browser-dialog{width:100vw;height:100vh;max-height:100vh;border-radius:0}.media-browser-body{grid-template-columns:1fr;overflow:auto}.media-folders{border-right:0;border-bottom:1px solid #e8eef5;max-height:260px}.media-file-list{min-height:300px}}
/* Stream list live-core refinements */
.channel-engine>div:last-child{display:flex;flex-direction:column;gap:3px;min-width:0}
.channel-engine small{display:block;color:var(--muted,#718096);font-size:12px;font-weight:600;white-space:nowrap}
.channel-access a{display:flex;flex-direction:column;gap:3px;color:inherit;text-decoration:none}
.channel-access a:hover strong{color:var(--primary,#2563eb)}
.round-action.disabled{opacity:.4;cursor:not-allowed;pointer-events:none}
.status-pill.online{background:#e8f7ef;color:#137a47}
.switch-pill.on{background:#2563eb}
.switch-pill.on span{transform:translateX(16px);background:#fff}

/* 320 FM Stream — grouped accordion navigation */
.sidebar{overflow:hidden}.nav{overflow-y:auto;overflow-x:hidden;padding:0 2px 8px;scrollbar-width:thin;scrollbar-color:rgba(148,163,184,.28) transparent}
.nav-accordion{display:flex;flex-direction:column;gap:5px}
.nav-section{border:0;margin:0;border-radius:10px;overflow:hidden}
.nav-section summary{list-style:none;display:grid;grid-template-columns:22px minmax(0,1fr) 18px;align-items:center;gap:10px;padding:11px 10px;color:#8fa9c8;font-size:12px;font-weight:700;letter-spacing:.035em;cursor:pointer;user-select:none;border-radius:9px;transition:background-color .16s ease,color .16s ease}
.nav-section summary::-webkit-details-marker{display:none}
.nav-section summary:hover{background:rgba(255,255,255,.045);color:#dbeafe}
.nav-section[open] summary{color:#fff;background:rgba(255,255,255,.055)}
.nav-section-icon{width:22px;text-align:center;opacity:.82;font-size:14px}.nav-chevron{text-align:center;font-size:15px;line-height:1;transition:transform .16s ease;color:#7898bb}
.nav-section[open] .nav-chevron{transform:rotate(180deg);color:#bfdbfe}
.nav-section-body{padding:4px 0 8px 12px;margin-left:10px;border-left:1px solid rgba(148,163,184,.14)}
.nav-section-body .navgroup{display:none}
.nav-section-body a{min-height:38px;padding:9px 10px;margin:2px 0 2px 5px;font-size:13px;color:#bfd0e3;border-radius:8px}
.nav-section-body a .ico{width:18px;font-size:13px;color:#91afd0}
.nav-section-body a:hover{background:rgba(255,255,255,.055)}
.nav-section-body a.active{background:rgba(59,130,246,.22);color:#fff;font-weight:650}
.nav-section-body a.active .ico{color:#bfdbfe}
.sidebarfoot{margin-top:10px;flex:0 0 auto}
@media(max-width:960px){.sidebar{overflow-y:auto}.nav{overflow:visible}}


/* 320 FM Stream — Piwik-inspired dashboard */
.dash-head{display:flex;justify-content:space-between;align-items:flex-start;gap:24px;margin:0 0 22px}.dash-head h1{margin:4px 0 8px;font-size:34px;letter-spacing:-.045em}.dash-head p{margin:0;color:#64748b}.dash-head-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.live-chip{display:inline-flex;align-items:center;gap:8px;border:1px solid #d9e6df;background:#f3fbf6;color:#267a4b;border-radius:999px;padding:9px 12px;font-size:12px;font-weight:750}.live-chip i{width:7px;height:7px;border-radius:50%;background:#29a864;box-shadow:0 0 0 4px rgba(41,168,100,.10)}
.dash-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-bottom:16px}.dash-kpi{background:#fff;border:1px solid #e4e9f0;border-radius:12px;padding:17px 18px;box-shadow:0 2px 10px rgba(15,23,42,.025)}.dash-kpi span{display:block;color:#667085;font-size:12px;font-weight:700}.dash-kpi strong{display:block;margin:8px 0 5px;font-size:27px;letter-spacing:-.035em;color:#101828}.dash-kpi small{color:#98a2b3;font-size:11px}
.dash-main-grid{display:grid;grid-template-columns:minmax(0,2fr) minmax(320px,.85fr);gap:16px;align-items:stretch}.dash-card{background:#fff;border:1px solid #e4e9f0;border-radius:12px;box-shadow:0 2px 12px rgba(15,23,42,.025);overflow:hidden}.dash-card-head{min-height:68px;padding:17px 20px;border-bottom:1px solid #edf0f4;display:flex;justify-content:space-between;align-items:center;gap:16px}.dash-card-head h2{font-size:16px;letter-spacing:-.02em;margin:3px 0 0;color:#172033}.dash-overline{font-size:10px;font-weight:800;letter-spacing:.11em;color:#98a2b3}.dash-summary{display:flex;gap:18px;color:#98a2b3;font-size:11px}.dash-summary b{color:#344054}.listener-chart{position:relative;height:335px;margin:15px 18px 0 12px;padding:18px 12px 36px 42px}.chart-y{position:absolute;left:0;top:20px;bottom:38px;width:34px;display:flex;flex-direction:column;justify-content:space-between;text-align:right;color:#98a2b3;font-size:10px}.chart-gridlines{position:absolute;left:42px;right:12px;top:20px;bottom:38px;display:flex;flex-direction:column;justify-content:space-between;pointer-events:none}.chart-gridlines i{border-top:1px solid #edf0f4}.chart-bars{position:absolute;left:45px;right:12px;top:20px;bottom:38px;display:grid;grid-template-columns:repeat(24,1fr);gap:5px;align-items:end}.chart-col{height:100%;position:relative;display:flex;align-items:flex-end;justify-content:center}.chart-bar{width:100%;max-width:24px;min-height:2px;background:linear-gradient(180deg,#5a82b2,#7999bd);border-radius:3px 3px 1px 1px;opacity:.9;transition:.15s ease}.chart-col:hover .chart-bar{background:#285c93;opacity:1}.chart-col span{position:absolute;bottom:-24px;left:50%;transform:translateX(-50%) rotate(-28deg);transform-origin:center;color:#98a2b3;font-size:9px;white-space:nowrap}.chart-foot{display:flex;justify-content:space-between;padding:10px 20px 16px;color:#98a2b3;font-size:10px;border-top:1px solid #f3f5f7}
.recent-panel{min-height:445px}.recent-head a{font-size:11px;color:#3469a3;font-weight:700}.recent-list{max-height:395px;overflow:auto;padding:2px 0}.recent-item{display:grid;grid-template-columns:28px 1fr;min-height:72px;padding:11px 16px 11px 12px}.recent-item+.recent-item{border-top:1px solid #f3f5f7}.recent-timeline{display:flex;justify-content:center;position:relative}.recent-timeline:after{content:"";position:absolute;width:1px;background:#dce4ed;top:17px;bottom:-23px}.recent-item:last-child .recent-timeline:after{display:none}.recent-timeline span{width:8px;height:8px;border-radius:50%;background:#6c91b9;margin-top:5px;position:relative;z-index:1;box-shadow:0 0 0 4px #f4f7fa}.recent-body{min-width:0}.recent-time{color:#3469a3;font-weight:750;font-size:10px;display:flex;justify-content:space-between;gap:8px}.recent-time small{font-weight:500;color:#98a2b3}.recent-body strong{display:block;color:#344054;font-size:11px;line-height:1.4;margin:5px 0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.recent-meta{display:flex;gap:10px;color:#98a2b3;font-size:9px}.dash-empty{padding:36px 20px;text-align:center;color:#98a2b3;font-size:12px}
.stream-panel{margin-top:16px}.stream-table-head,.stream-row{display:grid;grid-template-columns:minmax(210px,1.1fr) 110px 120px 150px minmax(280px,1.3fr) 44px;gap:14px;align-items:center}.stream-table-head{padding:9px 18px;background:#f9fafb;border-bottom:1px solid #edf0f4;color:#98a2b3;font-size:9px;text-transform:uppercase;letter-spacing:.08em;font-weight:800}.stream-row{padding:12px 18px;border-bottom:1px solid #edf0f4;font-size:11px}.stream-row:last-child{border-bottom:0}.stream-row:hover{background:#fbfcfd}.stream-name{display:flex;align-items:center;gap:11px}.stream-name b,.stream-row b{display:block;color:#344054}.stream-name small,.stream-row small{display:block;margin-top:3px;color:#98a2b3}.stream-dot{width:10px;height:10px;border-radius:50%;background:#cbd5df}.stream-dot.ok{background:#35b36f;box-shadow:0 0 0 4px rgba(53,179,111,.10)}.stream-endpoint code{font-size:10px;color:#667085;background:#f5f7fa;border-radius:5px;padding:5px 7px}.stream-play{width:30px;height:30px;border:1px solid #dce4ed;border-radius:8px;display:grid;place-items:center;color:#3469a3;background:#fff}.stream-play:hover{background:#f4f8fc}.stream-panel .status-pill{font-size:9px;padding:4px 9px}
.dash-bottom-grid{display:grid;grid-template-columns:1.1fr .9fr;gap:16px;margin-top:16px}.now-track{display:flex;align-items:center;gap:16px;padding:22px}.now-symbol{width:48px;height:48px;border-radius:10px;display:grid;place-items:center;background:#eef4fa;color:#315f8f;font-size:20px}.now-track div:last-child{min-width:0}.now-track small,.now-track strong,.now-track span{display:block}.now-track small{color:#98a2b3;font-size:10px;text-transform:uppercase;letter-spacing:.06em}.now-track strong{margin:5px 0;color:#344054;font-size:15px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.now-track span{color:#667085;font-size:10px}.ops-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));padding:8px 20px 20px}.ops-grid div{padding:13px 0;border-bottom:1px solid #f0f2f5}.ops-grid div:nth-last-child(-n+2){border-bottom:0}.ops-grid span,.ops-grid b{display:block}.ops-grid span{color:#98a2b3;font-size:10px}.ops-grid b{margin-top:4px;color:#344054;font-size:12px}
@media(max-width:1350px){.dash-main-grid{grid-template-columns:1fr}.recent-list{max-height:320px}.dash-kpis{grid-template-columns:repeat(2,1fr)}.stream-table-head,.stream-row{grid-template-columns:minmax(190px,1fr) 100px 110px 130px minmax(220px,1fr) 40px}}
@media(max-width:900px){.dash-head{display:block}.dash-head-actions{margin-top:14px}.dash-kpis{grid-template-columns:1fr 1fr}.listener-chart{height:280px}.stream-table-head{display:none}.stream-row{grid-template-columns:1fr 90px 42px;gap:10px}.stream-row>div:nth-child(3),.stream-row>div:nth-child(4),.stream-row>div:nth-child(5){display:none}.dash-bottom-grid{grid-template-columns:1fr}}
@media(max-width:560px){.dash-kpis{grid-template-columns:1fr}.chart-bars{gap:2px}.chart-col span{display:none}.dash-summary{display:none}.ops-grid{grid-template-columns:1fr}.ops-grid div{border-bottom:1px solid #f0f2f5!important}}


/* Dashboard listener chart — interactive ranges + hover details */
.chart-card-head{align-items:flex-start}.chart-head-right{display:flex;align-items:flex-end;gap:18px;flex-wrap:wrap;justify-content:flex-end}.chart-range-tabs{display:inline-flex;align-items:center;padding:3px;border:1px solid #dfe5ec;border-radius:8px;background:#f7f9fb}.chart-range-tabs button{appearance:none;border:0;background:transparent;color:#667085;padding:6px 10px;border-radius:6px;font-size:10px;font-weight:750;cursor:pointer;transition:background-color .14s ease,color .14s ease,box-shadow .14s ease}.chart-range-tabs button:hover{color:#344054;background:#fff}.chart-range-tabs button.active{background:#fff;color:#245b91;box-shadow:0 1px 4px rgba(15,23,42,.10)}
.listener-chart{overflow:visible}.chart-bars{z-index:2}.chart-gridlines{z-index:1}.chart-col{z-index:2;outline:none;cursor:default}.chart-col:focus-visible .chart-bar{box-shadow:0 0 0 3px rgba(37,99,235,.17)}.chart-label-hidden{visibility:hidden}.chart-tooltip{position:absolute;z-index:12;min-width:154px;transform:translate(-50%,-100%);padding:10px 11px;border:1px solid #dbe3ec;border-radius:9px;background:rgba(255,255,255,.98);box-shadow:0 12px 28px rgba(15,23,42,.14);pointer-events:none;color:#344054}.chart-tooltip[hidden]{display:none}.chart-tooltip:after{content:"";position:absolute;left:50%;bottom:-5px;width:9px;height:9px;background:#fff;border-right:1px solid #dbe3ec;border-bottom:1px solid #dbe3ec;transform:translateX(-50%) rotate(45deg)}.chart-tooltip strong{display:block;margin-bottom:7px;padding-bottom:7px;border-bottom:1px solid #eef2f6;font-size:10px;color:#475467;white-space:nowrap}.chart-tooltip div{display:flex;align-items:center;justify-content:space-between;gap:18px;font-size:10px;line-height:1.7}.chart-tooltip span{color:#98a2b3}.chart-tooltip b{font-size:11px;color:#1d2939}.chart-bar{position:relative}.chart-bar:after{content:"";position:absolute;inset:0;border-radius:inherit;background:linear-gradient(180deg,rgba(255,255,255,.14),transparent);pointer-events:none}
@media(max-width:900px){.chart-card-head{align-items:stretch;flex-direction:column}.chart-head-right{justify-content:space-between;align-items:center;width:100%}.chart-range-tabs{margin-left:auto}}
@media(max-width:560px){.chart-head-right{display:block}.chart-range-tabs{display:flex;margin-top:10px;width:100%}.chart-range-tabs button{flex:1}.chart-tooltip{min-width:142px}.listener-chart{margin-left:7px;margin-right:8px;padding-left:36px}.chart-y{width:29px}.chart-gridlines{left:36px}.chart-bars{left:39px}}


/* 320 FM Stream — media explorer v2 */
.media-page-head{align-items:center}.media-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:16px}.media-kpis>div{background:#fff;border:1px solid #e4e9f0;border-radius:12px;padding:15px 17px;box-shadow:0 2px 10px rgba(15,23,42,.025)}.media-kpis span,.media-kpis strong{display:block}.media-kpis span{font-size:10px;text-transform:uppercase;letter-spacing:.08em;color:#98a2b3;font-weight:800}.media-kpis strong{margin-top:6px;color:#1f2937;font-size:18px;letter-spacing:-.02em}
.media-explorer{padding:0;display:grid;grid-template-columns:310px minmax(0,1fr);min-height:650px;overflow:hidden}.media-folders-pane{border-right:1px solid #e7ecf2;background:#fbfcfe;min-width:0}.media-pane-head,.media-files-head{min-height:76px;padding:16px 18px;border-bottom:1px solid #e7ecf2;display:flex;justify-content:space-between;align-items:center;gap:12px}.media-pane-head h2,.media-files-head h2{margin:3px 0 0;font-size:16px;letter-spacing:-.02em}.media-files-head p{margin:4px 0 0;color:#98a2b3;font-size:11px}
.media-files-pane{min-width:0;display:flex;flex-direction:column}.media-search-wrap{display:flex;align-items:center;gap:8px;width:min(430px,50%);border:1px solid #dce3eb;background:#fff;border-radius:9px;padding:0 10px}.media-search-wrap span{color:#98a2b3}.media-search-wrap input{width:100%;height:38px;border:0;outline:0;background:transparent;font-size:12px;color:#344054}.media-actionbar{display:flex;align-items:center;gap:12px;padding:10px 16px;background:#fafbfc;border-bottom:1px solid #edf0f4;font-size:11px}.media-select-all{display:flex;gap:7px;align-items:center;color:#667085}.media-selection{color:#98a2b3}.media-actionbar-spacer{flex:1}.btn.compact{min-height:32px;padding:6px 10px;font-size:11px}.media-file-head,.media-file-row{display:grid;grid-template-columns:28px minmax(320px,1.45fr) minmax(150px,.65fr) 90px 95px 38px;gap:12px;align-items:center}.media-file-head{padding:9px 16px;background:#f7f9fb;border-bottom:1px solid #e8edf3;color:#8a98a9;font-size:9px;font-weight:800;text-transform:uppercase;letter-spacing:.07em}.media-file-table{position:relative;max-height:575px;overflow:auto}.media-file-row{min-height:58px;padding:9px 16px;border-bottom:1px solid #edf0f4;background:#fff;font-size:12px}.media-file-row:hover{background:#f9fbfd}.media-file-row[hidden]{display:none!important}.media-file-primary{display:grid;grid-template-columns:34px minmax(0,1fr);gap:10px;align-items:center;min-width:0}.media-file-primary strong,.media-file-primary small{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.media-file-primary strong{color:#253142;font-size:12px}.media-file-primary small{margin-top:3px;color:#98a2b3;font-size:10px}.media-preview-btn{width:32px;height:32px;border:1px solid #d8e1eb;border-radius:8px;background:#fff;color:#315f91;display:grid;place-items:center;cursor:pointer;font-size:11px}.media-preview-btn:hover{background:#edf5fc;border-color:#bdd2e7}.media-file-artist{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:#667085}.media-file-duration,.media-file-size{color:#667085;font-variant-numeric:tabular-nums}.media-file-actions{text-align:right}.media-no-results{padding:50px 20px;text-align:center;color:#98a2b3}.media-no-results strong,.media-no-results span{display:block}.media-no-results span{margin-top:5px;font-size:11px}.media-player{display:grid;grid-template-columns:minmax(180px,.8fr) minmax(300px,1.2fr) 28px;gap:14px;align-items:center;padding:12px 16px;border-top:1px solid #dce5ef;background:#f8fbfe;box-shadow:0 -8px 20px rgba(15,23,42,.035)}.media-player[hidden]{display:none}.media-player-info{min-width:0}.media-player-info strong,.media-player-info small{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.media-player-info strong{margin-top:3px;color:#253142;font-size:12px}.media-player-info small{margin-top:2px;color:#98a2b3;font-size:9px}.media-player audio{width:100%;height:34px}.media-player-close{border:0;background:transparent;color:#667085;font-size:20px;cursor:pointer}.media-contract{margin-top:16px}
@media(max-width:1200px){.media-explorer{grid-template-columns:260px minmax(0,1fr)}.media-file-head,.media-file-row{grid-template-columns:28px minmax(240px,1.2fr) minmax(120px,.6fr) 80px 38px}.media-file-head>span:nth-child(5),.media-file-row>.media-file-size{display:none}.media-kpis{grid-template-columns:repeat(2,1fr)}}
@media(max-width:850px){.media-explorer{grid-template-columns:1fr}.media-folders-pane{border-right:0;border-bottom:1px solid #e7ecf2}.media-files-head{align-items:stretch;flex-direction:column}.media-search-wrap{width:100%}.media-file-head{display:none}.media-file-row{grid-template-columns:28px minmax(0,1fr) 70px 38px}.media-file-row>.media-file-artist,.media-file-row>.media-file-size{display:none}.media-player{grid-template-columns:1fr 28px}.media-player audio{grid-column:1/-1;grid-row:2}.media-kpis{grid-template-columns:1fr 1fr}}
@media(max-width:560px){.media-kpis{grid-template-columns:1fr}.media-file-row{padding:9px 11px}.media-actionbar{flex-wrap:wrap}.media-actionbar-spacer{display:none}.media-selection{margin-left:auto}}


/* 320 FM Stream · Material flat sidebar reference 2026-09-13 */
.app{grid-template-columns:300px minmax(0,1fr)}
.material-sidebar{
  width:300px;
  padding:22px 18px 18px;
  background:
    radial-gradient(circle at 90% 88%,rgba(37,99,235,.16),transparent 28%),
    linear-gradient(180deg,#082544 0%,#0a3158 48%,#08233f 100%);
  border-right:1px solid rgba(147,197,253,.10);
  box-shadow:16px 0 42px rgba(4,20,38,.08);
  color:#d8e5f4;
  overflow-y:auto;
  scrollbar-width:thin;
  scrollbar-color:rgba(148,163,184,.26) transparent;
}
.material-brand{
  min-height:78px;
  display:flex;
  align-items:center;
  gap:14px;
  margin:0 6px 18px;
  padding:0 6px 20px;
  border-bottom:1px solid rgba(148,197,255,.20);
}
.material-brand .brandmark{width:52px;height:52px;border-radius:15px;font-size:18px;box-shadow:0 10px 28px rgba(0,91,255,.38)}
.material-brand strong{font-size:19px;letter-spacing:-.02em}.material-brand small{font-size:12px;color:#9bb5d2;margin-top:3px}
.material-nav{display:grid;gap:2px;min-height:0}
.material-nav a,.material-nav .nav-main{
  position:relative;
  width:100%;
  min-height:44px;
  display:grid;
  grid-template-columns:28px minmax(0,1fr);
  align-items:center;
  gap:12px;
  margin:0;
  padding:9px 12px;
  border-radius:9px;
  color:#d2deec;
  font-size:14px;
  font-weight:520;
  line-height:1.2;
  transition:background-color .14s ease,color .14s ease;
}
.material-nav .nav-main{margin-top:5px;color:#e6eef8;font-weight:590}
.material-nav .nav-main.nav-label{cursor:default}
.material-nav a:hover{background:rgba(255,255,255,.055);color:#fff;transform:none}
.material-nav a.active{
  background:linear-gradient(90deg,rgba(41,111,213,.42),rgba(43,104,184,.23));
  color:#fff;
  font-weight:700;
  box-shadow:none;
}
.material-nav a.active::before{
  content:""!important;
  display:block!important;
  position:absolute;
  left:0;top:6px;bottom:6px;
  width:4px;
  border-radius:0 4px 4px 0;
  background:#1882ff;
  box-shadow:0 0 12px rgba(24,130,255,.42);
}
.nav-svg{width:24px;height:24px;display:grid;place-items:center;color:#d5e5f7}
.nav-svg svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.85;stroke-linecap:round;stroke-linejoin:round;overflow:visible}
.material-nav a.active .nav-svg{color:#fff}
.nav-children{
  position:relative;
  display:grid;
  gap:1px;
  margin:0 0 4px 20px;
  padding:0 0 1px 18px;
}
.nav-children::before{
  content:"";
  position:absolute;
  left:2px;top:3px;bottom:5px;
  width:1px;
  background:linear-gradient(180deg,rgba(72,160,255,.08),rgba(72,160,255,.65),rgba(72,160,255,.10));
}
.nav-children a{
  min-height:39px;
  padding:7px 10px;
  border-radius:8px;
  font-size:13.5px;
  color:#bed0e4;
}
.nav-children .nav-svg{width:22px;height:22px}.nav-children .nav-svg svg{width:20px;height:20px}
.nav-children-compact{margin-bottom:7px}
.nav-children-single{margin-top:-2px}
.sidebar-account{
  margin-top:auto;
  padding:16px 8px 0;
  border-top:1px solid rgba(148,197,255,.20);
}
.sidebar-user{display:grid;grid-template-columns:36px minmax(0,1fr);gap:10px;align-items:center;padding:0 4px 12px}
.sidebar-avatar{width:36px;height:36px;border-radius:50%;display:grid;place-items:center;background:rgba(255,255,255,.09);border:1px solid rgba(191,219,254,.18);color:#fff;font-weight:800}
.sidebar-user strong,.sidebar-user small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.sidebar-user strong{font-size:12.5px;color:#fff}.sidebar-user small{font-size:10.5px;color:#8fa9c4;margin-top:2px}
.sidebar-logout{min-height:42px!important;padding:8px 10px!important;color:#cbd9e8!important;border-radius:8px!important}
.sidebar-logout:hover{background:rgba(255,255,255,.055)!important;color:#fff!important}
@media(max-width:1279px){.app{grid-template-columns:280px minmax(0,1fr)}.material-sidebar{width:280px}.material-nav a,.material-nav .nav-main{font-size:13.5px}}
@media(max-width:960px){.app{display:block}.material-sidebar{width:min(310px,88vw);padding-top:18px}.material-brand{margin-bottom:12px}}


/* 320 FM Stream — single selected area navigation */
.material-nav{display:flex;flex-direction:column;gap:2px}
.material-nav .nav-label{cursor:pointer!important;user-select:none}
.material-nav .nav-label:hover{background:rgba(255,255,255,.045);color:#fff}
.material-nav .nav-label.group-open{color:#fff}
.material-nav .nav-children{display:none!important}
.material-nav .nav-children.is-open{display:grid!important}
.material-nav .nav-children{position:relative;gap:1px;margin:0 0 5px 20px;padding:1px 0 2px 18px}
.material-nav .nav-children::before{content:"";position:absolute;left:2px;top:3px;bottom:5px;width:1px;background:linear-gradient(180deg,rgba(72,160,255,.08),rgba(72,160,255,.62),rgba(72,160,255,.10))}
.material-nav .nav-children a{min-height:39px;padding:7px 10px;border-radius:8px;font-size:13px;color:#b8c9dc}
.material-nav .nav-children a:hover{background:rgba(255,255,255,.045);color:#fff}
.material-nav .nav-children a.active{background:linear-gradient(90deg,rgba(41,111,213,.42),rgba(43,104,184,.23));color:#fff;font-weight:700;box-shadow:none}
.material-nav .nav-children a.active::before{content:""!important;display:block!important;position:absolute;left:0;top:5px;bottom:5px;width:4px;border-radius:0 4px 4px 0;background:#1882ff;box-shadow:0 0 12px rgba(24,130,255,.42)}

/* Nested Syndicast navigation */
.material-nav .nav-children .nav-subgroup{display:grid;gap:1px;margin:1px 0 2px}
.material-nav .nav-children .nav-subgroup-parent{font-weight:650;color:#d7e5f5}
.material-nav .nav-children .nav-subgroup.is-current>.nav-subgroup-parent{color:#fff}
.material-nav .nav-children .nav-subchildren{display:grid;gap:1px;position:relative;margin:0 0 2px 18px;padding:1px 0 1px 13px}
.material-nav .nav-children .nav-subchildren::before{content:"";position:absolute;left:1px;top:3px;bottom:4px;width:1px;background:rgba(111,163,218,.28)}
.material-nav .nav-children .nav-subchildren a{min-height:34px;padding:6px 9px 6px 8px;font-size:12px;color:#9fb5cc;border-radius:7px;position:relative}
.material-nav .nav-children .nav-subchildren a:hover{color:#fff;background:rgba(255,255,255,.04)}
.material-nav .nav-children .nav-subchildren a.active{color:#fff;background:linear-gradient(90deg,rgba(41,111,213,.34),rgba(43,104,184,.15));font-weight:700}
.material-nav .nav-children .nav-subchildren a.active::before{display:none!important}
.nav-subdot{width:5px;height:5px;border-radius:50%;background:#6683a2;flex:0 0 auto;margin-left:4px}
.material-nav .nav-children .nav-subchildren a.active .nav-subdot{background:#48a0ff;box-shadow:0 0 0 3px rgba(72,160,255,.12)}

.material-nav .nav-children .nav-subgroup-parent{width:100%;border:0;background:transparent;display:flex;align-items:center;gap:12px;min-height:39px;padding:7px 10px;border-radius:8px;font:inherit;text-align:left;cursor:pointer}
.material-nav .nav-children .nav-subgroup-parent:hover{background:rgba(255,255,255,.045);color:#fff}
.material-nav .nav-children .nav-subgroup-parent .nav-subchev{margin-left:auto;color:#7f97b0;font-size:18px;line-height:1;transition:transform .16s ease}
.material-nav .nav-children .nav-subgroup.is-open>.nav-subgroup-parent .nav-subchev{transform:rotate(90deg);color:#b9cde1}
.material-nav .nav-children .nav-subchildren[hidden]{display:none!important}
.material-nav .nav-children .nav-subchildren .nav-sub-overview{font-weight:650;color:#b8c9dc}
