/* ============================================================
   ZTM CONTROL CENTRE - COMPLETE STYLESHEET (V29)
   ============================================================ */

/* 1. THEMA VARIABELEN (WHITE & DARK MODE) */
:root {
    --bg-body: #f0f2f5;
    --bg-card: #ffffff;
    --bg-header: #ffffff;
    --text-main: #333333;
    --text-dim: #888888;
    --border-color: #dddddd;
    --box-bg: #f8f9fa;
    --log-bg: #1a1a1a;
    --log-text: #00ff41;
    --accent-blue: #2196F3;
    --accent-red: #f44336;
}

body.dark-mode {
    --bg-body: #050505;
    --bg-card: #0a0a0a;
    --bg-header: #0f0f0f;
    --text-main: #e0e0e0;
    --text-dim: #666666;
    --border-color: #222222;
    --box-bg: #111111;
    --log-bg: #020202;
    --log-text: #00ff41;
}

/* 2. ALGEMENE LAYOUT */
body { 
    margin: 0; 
    background: var(--bg-body); 
    color: var(--text-main); 
    font-family: 'Segoe UI', Roboto, sans-serif; 
    transition: background 0.3s, color 0.3s;
    letter-spacing: 0.5px;
}

.container { 
    max-width: 1200px; 
    margin: 0 auto; 
    padding: 20px; 
}

/* 3. HEADER & TOP NAVIGATIE */
.header-ui { 
    display: flex; 
    justify-content: space-between; 
    align-items: center; 
    background: var(--bg-header); 
    padding: 10px 20px; 
    border-radius: 8px; 
    border: 1px solid var(--border-color); 
    margin-bottom: 20px; 
    box-shadow: 0 4px 15px rgba(0,0,0,0.1); 
}

h1 { font-size: 18px; margin: 0; color: var(--accent-blue); font-weight: 800; text-transform: uppercase; }

.user-info { display: flex; align-items: center; gap: 10px; }

/* Knoppen bovenin */
.btn-top { 
    border: 1px solid rgba(255,255,255,0.1); 
    color: white; 
    padding: 8px 12px; 
    border-radius: 4px; 
    font-weight: bold; 
    cursor: pointer; 
    text-decoration: none; 
    font-size: 10px; 
    text-transform: uppercase; 
    transition: 0.2s; 
}

.theme-btn { background: var(--accent-blue); }
.btn-reset-top { background: #ff9800; }
.pink { background: #E91E63; }
.purple { background: #673AB7; }

.username { font-size: 12px; color: var(--accent-blue); font-weight: bold; margin-left: 10px; }
.logout-link { color: var(--text-dim); font-size: 10px; text-decoration: none; margin-left: 5px; }

/* 4. MATRIX / PIP GRID */
.module-box { 
    background: var(--bg-card); 
    padding: 20px; 
    border-radius: 10px; 
    border: 1px solid var(--border-color); 
    margin-bottom: 20px; 
    box-shadow: inset 0 0 10px rgba(0,0,0,0.02);
}

.pip-grid { 
    display: grid; 
    grid-template-columns: repeat(4, 1fr); 
    grid-template-rows: repeat(4, 105px); 
    gap: 12px; 
}

.small-box { 
    background: var(--box-bg); 
    border: 1px solid var(--border-color); 
    display: flex; 
    flex-direction: column; 
    align-items: center; 
    justify-content: center; 
    cursor: pointer; 
    border-radius: 6px; 
    transition: 0.1s; 
    text-align: center;
}

.small-box:hover { border-color: var(--accent-blue); background: rgba(33, 150, 243, 0.05); }

.box-nr { font-size: 18px; font-weight: 800; color: var(--text-dim); }
.box-txt { font-size: 12px; font-weight: bold; }

/* EXCLUSIEVE SELECTIE (BLAUWE CIRKEL/RAND) */
.box-selected { 
    border: 2px solid var(--accent-blue) !important; 
    background: rgba(33, 150, 243, 0.15) !important; 
    box-shadow: 0 0 20px rgba(33, 150, 243, 0.5), inset 0 0 10px rgba(33, 150, 243, 0.2) !important; 
    z-index: 10;
}

.clicked-blue { background: var(--accent-blue) !important; color: white !important; }

/* 5. MIDDENVAK (UITGANG 13) */
.main-box { 
    grid-column: 2 / 4; 
    grid-row: 2 / 4; 
    background: #000000; 
    border: 2px solid var(--accent-blue); 
    display: flex; 
    flex-direction: column; 
    align-items: center; 
    justify-content: center; 
    border-radius: 8px; 
}

.main-label { color: var(--text-dim); font-size: 10px; text-transform: uppercase; margin-bottom: 5px; }
.current-info { font-size: 20px; color: var(--accent-blue); font-weight: 900; text-shadow: 0 0 10px rgba(33, 150, 243, 0.5); }

/* 6. ADMIN LOCK STATUS */
.system-locked .small-box { 
    border-color: var(--accent-red) !important; 
    background: rgba(244, 67, 54, 0.05); 
    cursor: not-allowed; 
    opacity: 0.6; 
}

.main-box.lock-active { 
    background: #001f3f !important; 
    border: 3px solid var(--accent-blue) !important; 
    box-shadow: 0 0 30px rgba(33, 150, 243, 0.4); 
}

.lock-text { color: var(--accent-blue); font-size: 26px; font-weight: 900; letter-spacing: 4px; }
.lock-label { background: var(--box-bg); padding: 5px 12px; border-radius: 20px; color: #ff9800; font-size: 10px; border: 1px solid var(--border-color); font-weight: bold; }

/* 7. GROOT SCHAKELEN GRID */
.groot-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 10px; }

.btn-groot { 
    background: var(--box-bg); 
    border: 1px solid var(--border-color); 
    color: var(--text-main); 
    padding: 15px; 
    cursor: pointer; 
    font-weight: 800; 
    font-size: 11px; 
    border-radius: 6px; 
    transition: 0.2s;
}

.btn-groot:hover { border-color: var(--accent-red); }

.btn-groot.active { 
    background: var(--accent-red) !important; 
    border-color: #ffffff !important; 
    color: #ffffff !important; 
    box-shadow: 0 0 15px rgba(244, 67, 54, 0.6); 
}

/* 8. LOG CONSOLE */
.log-console { 
    background: var(--log-bg); 
    height: 180px; 
    overflow-y: auto; 
    padding: 15px; 
    font-family: 'Courier New', monospace; 
    color: var(--log-text); 
    border-radius: 8px; 
    border: 1px solid var(--border-color); 
}

.log-entry { margin-bottom: 6px; border-bottom: 1px solid rgba(255,255,255,0.05); font-size: 13px; text-align: left; }
.log-time { color: #666666; margin-right: 12px; font-size: 11px; }
.log-entry strong { color: #008f11; text-transform: uppercase; }

/* 9. ADMIN SECTIES (USERS / ZANDAR / LBAND) */
.admin-mode { background: var(--box-bg); padding: 5px 12px; border-radius: 20px; font-size: 10px; cursor: pointer; border: 1px solid var(--accent-blue); color: var(--accent-blue); font-weight: bold; }

.admin-section { border-left: 5px solid var(--accent-blue); }

.admin-input { 
    background: var(--bg-body); 
    border: 1px solid var(--border-color); 
    color: var(--text-main); 
    padding: 12px; 
    border-radius: 6px; 
    width: 100%; 
    box-sizing: border-box;
}

.users-table { width: 100%; border-collapse: collapse; }
.users-table td { padding: 12px; border-bottom: 1px solid var(--border-color); color: var(--text-main); font-weight: bold; }

.del-link { color: var(--accent-red); text-decoration: none; font-weight: bold; border: 1px solid var(--accent-red); padding: 4px 10px; border-radius: 4px; font-size: 10px; }
.del-link:hover { background: var(--accent-red); color: white; }

/* 10. FOOTER */
.main-footer { 
    text-align: center; 
    margin-top: 40px; 
    padding: 20px; 
    font-size: 11px; 
    color: var(--text-dim); 
    border-top: 1px solid var(--border-color); 
    letter-spacing: 3px; 
    text-transform: uppercase; 
    font-weight: bold;
}

body.dark-mode .main-footer { color: #444444; }

/* CUSTOM SCROLLBAR VOOR LOGS */
::-webkit-scrollbar { width: 8px; }
::-webkit-scrollbar-track { background: var(--bg-body); }
::-webkit-scrollbar-thumb { background: var(--border-color); border-radius: 10px; }
::-webkit-scrollbar-thumb:hover { background: var(--accent-blue); }

/* ==========================
   RECEIVER SELECT (rx-*)
   Scoped styling: geen impact op andere pagina?s
   ========================== */

.rx-header{
  display:flex;
  justify-content:space-between;
  align-items:center;
  margin-bottom:10px;
}

.rx-grid{
  display:grid;
  grid-template-columns:repeat(4, 1fr);
  gap:10px;
}

/* ?Screenshot vibe?: groene select tiles */
.rx-tile{
  background: linear-gradient(#1f7a1f, #196619);
  border: 1px solid rgba(255,255,255,0.08);
  border-radius: 6px;
  padding: 10px;
  box-shadow: inset 0 0 0 1px rgba(0,0,0,0.25);
}

.rx-line1{
  display:flex;
  justify-content:space-between;
  align-items:baseline;
  gap:10px;
  color:#eaffea;
}

.rx-nr{
  font-weight:900;
  font-size:14px;
  opacity:0.95;
}

.rx-name{
  font-weight:900;
  font-size:13px;
  text-align:right;
  flex:1;
}

.rx-indicators{
  display:flex;
  gap:8px;
  margin-top:8px;
}

.rx-ind{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:34px;
  height:18px;
  border-radius: 10px;
  font-size:11px;
  font-weight:900;
  color:#fff;
  box-shadow: inset 0 0 0 1px rgba(0,0,0,0.25);
}

.rx-on{ background:#f44336; }   /* muted */
.rx-off{ background:#4CAF50; }  /* audio door */
.rx-unk{ background:#777; }     /* onbekend */

.rx-actions{
  display:flex;
  gap:8px;
  margin-top:10px;
}

.rx-btn{
  flex:1;
  padding:8px;
  border:none;
  border-radius:6px;
  cursor:pointer;
  font-weight:900;
  background: rgba(0,0,0,0.25);
  color: #fff;
}

.rx-btn:hover{
  background: rgba(0,0,0,0.35);
}

.rx-hint{
  margin-top:10px;
  font-size:12px;
  color: var(--text-dim);
}
.groot-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 10px;
}

.btn-groot {
    width: 100%;
    padding: 12px;
    background: var(--box-bg);
    border: 1px solid var(--border-color);
    color: var(--text-main);
    border-radius: 6px;
    font-weight: bold;
    cursor: pointer;
    text-transform: uppercase;
    font-size: 10px;
    transition: 0.2s;
}

.btn-groot:hover {
    background: var(--bg-body);
    border-color: var(--accent-blue);
}

.btn-groot.active {
    background: var(--accent-blue) !important;
    color: white !important;
}

.log-console {
    background: #000;
    color: #00ff41;
    font-family: monospace;
    padding: 10px;
    height: 150px;
    overflow-y: auto;
    font-size: 11px;
    border-radius: 4px;
}
.rx-power-btn{
  width:100%;
  min-height:42px;
  padding:10px;
  border:2px solid rgba(255,255,255,0.35);
  border-radius:7px;
  cursor:pointer;
  font-size:14px;
  font-weight:900;
  color:#fff;
  letter-spacing:1px;
  transition:filter .15s, transform .05s;
}
.rx-power-btn:hover{ filter:brightness(1.12); }
.rx-power-btn:active{ transform:translateY(1px); }
.rx-power-btn:disabled{ cursor:wait; opacity:.75; }
.rx-power-on{ background:#2e9d46; }
.rx-power-off{ background:#c73333; }
.rx-power-mixed{ background:#777; }
.rx-power-busy{ background:#b27a16; }


/* PI6HLM server-side DTMF knop in de bestaande HLM-tegel */
.hlm-audio-btn {
    margin-top: 7px;
    padding: 5px 9px;
    border: 0;
    border-radius: 5px;
    font-size: 10px;
    font-weight: 800;
    letter-spacing: .3px;
    color: #fff;
    cursor: pointer;
    box-shadow: 0 1px 4px rgba(0,0,0,.25);
}
.hlm-audio-btn:hover { filter: brightness(1.12); }
.hlm-audio-btn:disabled { cursor: wait; opacity: .7; }
.hlm-audio-on { background: #2e9d46; }
.hlm-audio-off { background: #c73333; }
.hlm-audio-unknown { background: #6f7780; }

.hlm-reset-btn {
    margin-top: 5px;
    padding: 4px 8px;
    border: 0;
    border-radius: 5px;
    font-size: 9px;
    font-weight: 800;
    letter-spacing: .3px;
    color: #fff;
    background: #9b5b17;
    cursor: pointer;
    box-shadow: 0 1px 4px rgba(0,0,0,.25);
}
.hlm-reset-btn:hover { filter: brightness(1.12); }
.hlm-reset-btn:disabled { cursor: wait; opacity: .7; }


/* TEF / XDR-GTK tuner dashboard */
.tef-top{background:#00695c!important;}
.tef-info{display:flex;gap:12px;align-items:center;flex-wrap:wrap;font-size:12px;color:var(--text-dim);}
.tef-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-top:18px;}
.tef-card{background:var(--box-bg);border:1px solid var(--border-color);border-radius:8px;padding:14px;min-width:0;box-shadow:0 2px 10px rgba(0,0,0,.12);}
.tef-card-head{display:flex;justify-content:space-between;gap:10px;align-items:flex-start;}
.tef-title{font-size:19px;font-weight:900;color:var(--text-main);}
.tef-port{font-family:monospace;font-size:11px;color:var(--text-dim);margin-top:2px;}
.tef-badge{padding:5px 8px;border-radius:12px;font-size:10px;font-weight:900;color:#fff;white-space:nowrap;}
.tef-online{background:#2e9d46}.tef-offline{background:#c73333}
.tef-signal-line{margin-top:14px;display:flex;align-items:baseline}.tef-signal{font-size:32px;font-weight:900}.tef-unit{font-size:12px;color:var(--text-dim)}.tef-stereo{margin-left:auto;font-weight:900;color:#ef5350}
.tef-meter{height:8px;background:rgba(127,127,127,.25);border-radius:5px;overflow:hidden;margin:8px 0 13px}.tef-meter-fill{height:100%;width:0;background:#2e9d46;transition:width .25s}
.tef-stats{display:grid;grid-template-columns:repeat(2,1fr);gap:7px}.tef-stats div{background:rgba(127,127,127,.08);padding:7px;border-radius:5px;display:flex;justify-content:space-between;gap:8px;font-size:11px}.tef-stats span{color:var(--text-dim)}
.tef-actions{display:flex;gap:8px;margin-top:12px}.tef-actions button,.tef-tune button{border:0;border-radius:5px;padding:9px 11px;font-weight:900;color:#fff;cursor:pointer}.tef-audio-btn{background:#687078;flex:1}.tef-audible{background:#2e9d46}.tef-muted{background:#c73333}.tef-reconnect-btn{background:#455a64}.tef-actions button:disabled{opacity:.55;cursor:wait}
.tef-error{min-height:28px;margin-top:8px;font-size:10px;color:#ef5350;overflow-wrap:anywhere}.tef-tune{display:flex;gap:6px;margin-top:7px}.tef-tune input{flex:1;min-width:0;padding:8px;border:1px solid var(--border-color);border-radius:5px;background:var(--bg-body);color:var(--text-main)}.tef-tune button{background:#1565c0}
@media(max-width:950px){.tef-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:620px){.tef-grid{grid-template-columns:1fr}}
.tef-rds{margin-top:11px;padding:9px 10px;border:1px solid var(--border-color);border-radius:6px;background:rgba(127,127,127,.06)}
.tef-rds-head{font-size:10px;font-weight:900;letter-spacing:.08em;color:var(--text-dim);margin-bottom:5px}
.tef-rds-row{display:flex;gap:10px;align-items:flex-start;font-size:11px;line-height:1.35;margin:3px 0}.tef-rds-row span{width:28px;flex:0 0 28px;color:var(--text-dim);font-weight:700}.tef-rds-row strong{min-width:0;overflow-wrap:anywhere}.tef-rds-rt-row strong{font-weight:600}

/* TEF cards embedded directly below Receiver Select */
.tef-grid-main { margin-top: 14px; }
.tef-tune-main { margin-top: 10px; }


/* Server-side low-latency live audio */
.live-audio-box{border-left:4px solid #1b86c8}
.live-audio-sub{font-size:10px;color:var(--text-dim);margin-top:3px}
.live-audio-row{display:flex;align-items:center;justify-content:space-between;gap:16px}
.live-audio-state{display:flex;align-items:center;gap:10px;min-width:0}
.live-audio-state strong{display:block;font-size:15px}
.live-audio-state span:not(.live-audio-led){display:block;font-size:10px;color:var(--text-dim);margin-top:2px}
.live-audio-led{width:12px;height:12px;border-radius:50%;background:#777;box-shadow:0 0 0 3px rgba(127,127,127,.12)}
.live-audio-led.is-live{background:#2e9d46;box-shadow:0 0 0 3px rgba(46,157,70,.15)}
.live-audio-led.is-wait{background:#b27a16;box-shadow:0 0 0 3px rgba(178,122,22,.14)}
.live-audio-led.is-error{background:#c73333;box-shadow:0 0 0 3px rgba(199,51,51,.14)}
.live-audio-btn{border:0;border-radius:6px;padding:11px 18px;color:white;font-weight:900;min-width:125px;cursor:pointer}
.live-audio-on{background:#2e9d46}
.live-audio-off{background:#4d5962}
.live-audio-btn:disabled{opacity:.6;cursor:wait}
@media(max-width:620px){.live-audio-row{align-items:stretch;flex-direction:column}.live-audio-btn{width:100%}}


.live-audio-actions{display:flex;gap:8px;align-items:center}
.comrex-opal-btn{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    text-decoration:none;
    background:#275f88;
}
.comrex-opal-btn:hover{filter:brightness(1.10)}
@media(max-width:620px){
    .live-audio-actions{width:100%;display:grid;grid-template-columns:1fr 1fr}
    .comrex-opal-btn{width:100%}
}


/* Public read-only status dashboard */
.public-wrap{max-width:1450px;margin:0 auto;padding:16px}
.public-head{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:14px}
.public-head h1{margin:0;font-size:22px;letter-spacing:.04em}
.public-head p{margin:4px 0 0;color:var(--text-dim);font-size:11px}
.public-login{background:#255f88;color:#fff;text-decoration:none;padding:8px 12px;border-radius:6px;font-size:10px;font-weight:900}
.public-status-strip{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-bottom:14px}
.public-chip{border:1px solid var(--border-color);background:var(--box-bg);border-radius:7px;padding:9px 11px;font-size:10px;color:var(--text-dim)}
.public-chip strong{display:block;color:var(--text-main);font-size:13px;margin-top:3px}
.public-module{margin-top:12px!important}
.public-readonly{font-size:9px;font-weight:900;letter-spacing:.08em;color:var(--text-dim)}
.public-pip-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:8px}
.public-pip-source{border:1px solid var(--border-color);background:var(--box-bg);border-radius:7px;padding:10px;min-height:72px}
.public-pip-source.is-live{border-color:#2e9d46;box-shadow:inset 0 0 0 1px rgba(46,157,70,.24)}
.public-pip-source .pub-index{display:block;color:var(--text-dim);font-size:9px}
.public-pip-source strong{display:block;font-size:12px;margin-top:5px}
.public-pip-source small{display:block;font-size:8px;color:var(--text-dim);margin-top:5px}
.public-pip-source.is-live small{color:#2e9d46;font-weight:900}
.public-rx-grid .public-rx-tile{cursor:default}
.public-rx-state{min-width:62px;text-align:center;border-radius:5px;padding:7px 8px;color:#fff;font-size:9px;font-weight:900}
.public-rx-state.state-on{background:#2e9d46}.public-rx-state.state-off{background:#c73333}.public-rx-state.state-mixed{background:#8a712c}
.public-tef-freq{font-size:15px;font-weight:900;margin:4px 0 8px}
.public-rds{min-height:0}
.pub-rds-ps{font-weight:900;font-size:14px}
.pub-rds-meta{display:flex;gap:8px;font-size:9px;color:var(--text-dim);margin-top:3px}
.pub-rds-rt{font-size:10px;margin-top:5px;overflow-wrap:anywhere}
@media(max-width:950px){.public-pip-grid{grid-template-columns:repeat(3,1fr)}.public-status-strip{grid-template-columns:repeat(2,1fr)}}
@media(max-width:620px){.public-wrap{padding:8px}.public-head{align-items:flex-start}.public-head h1{font-size:18px}.public-pip-grid{grid-template-columns:repeat(2,1fr)}.public-status-strip{grid-template-columns:1fr 1fr}}


/* Public page is intentionally non-interactive except the audio listener button. */
.public-readonly-page .public-pip-source,
.public-readonly-page .public-rx-tile,
.public-readonly-page .public-static-card,
.public-readonly-page .public-chip {
    cursor: default;
    user-select: text;
}
.public-head-static{pointer-events:none}
.public-view-badge{
    border:1px solid var(--border-color);
    border-radius:999px;
    padding:6px 9px;
    font-size:9px;
    font-weight:900;
    letter-spacing:.08em;
    color:var(--text-dim);
}
.public-audio-module{border-left:4px solid #1b86c8}


/* Public status page: always black, same PIP layout as the v5.2 control page. */
.public-black-body,
.public-black-body *{
    color-scheme:dark;
}
.public-black-body{
    --bg-body:#050505;
    --bg-card:#0a0a0a;
    --bg-header:#080808;
    --text-main:#f2f2f2;
    --text-dim:#777;
    --border-color:#242424;
    --box-bg:#0d0d0d;
    --log-bg:#050505;
    background:#050505!important;
    color:#f2f2f2!important;
}
.public-black-page{max-width:1400px}
.public-black-header{
    display:flex;
    justify-content:space-between;
    align-items:center;
    margin-bottom:12px;
    padding:4px 2px 10px;
    border-bottom:1px solid #202020;
}
.public-black-header h1{
    margin:0;
    font-size:19px;
    letter-spacing:.06em;
}
.public-login-btn{
    text-decoration:none;
    border:1px solid #444;
    background:#101010;
    color:#fff;
    border-radius:6px;
    padding:8px 13px;
    font-size:10px;
    font-weight:900;
}
.public-login-btn:hover{border-color:#2196F3;color:#6dbbff}
.public-black-page .module-box{
    background:#090909!important;
    border-color:#222!important;
}
.public-black-page .small-box,
.public-black-page .main-box,
.public-black-page .rx-tile,
.public-black-page .tef-card{
    background:#0b0b0b!important;
    border-color:#292929!important;
}
.public-black-page .small-box{
    cursor:default!important;
}
.public-black-page .small-box:hover{
    transform:none!important;
    box-shadow:none!important;
}
.public-black-page .box-selected{
    border-color:#2e9d46!important;
}
.public-black-page .public-rx-state{
    display:inline-block;
    min-width:62px;
    text-align:center;
    border-radius:5px;
    padding:7px 8px;
    color:#fff!important;
    font-size:9px;
    font-weight:900;
}
.public-black-page .state-on{background:#2e9d46}
.public-black-page .state-off{background:#c73333}
.public-black-page .state-mixed{background:#8a712c}
.public-black-page .public-tef-freq{font-size:15px;font-weight:900;margin:4px 0 8px}
.public-black-page .pub-rds-ps{font-size:14px;font-weight:900}
.public-black-page .pub-rds-meta{display:flex;gap:8px;font-size:9px;color:#777;margin-top:3px}
.public-black-page .pub-rds-rt{font-size:10px;margin-top:5px}


/* Public page v5.2: softer anthracite instead of near-black. */
.public-black-body{
    --bg-body:#171a1d!important;
    --bg-card:#202429!important;
    --bg-header:#1c2024!important;
    --text-main:#f3f5f6!important;
    --text-dim:#a1a8ad!important;
    --border-color:#3a4147!important;
    --box-bg:#252a2f!important;
    background:#171a1d!important;
}
.public-black-page .module-box{
    background:#1e2226!important;
    border-color:#3b4248!important;
}
.public-black-page .small-box,
.public-black-page .main-box,
.public-black-page .rx-tile,
.public-black-page .tef-card{
    background:#262b30!important;
    border-color:#444c53!important;
}
.public-black-header{
    border-bottom-color:#3a4147!important;
}
.public-login-btn{
    background:#292f34!important;
    border-color:#5b656d!important;
}
.public-black-page .tef-meter{
    background:#3a4045!important;
}

/* Professional server-side stereo dBFS meter. -12 dBFS is the exact green/yellow boundary. */
.broadcast-meter{margin-top:14px;padding:12px 12px 8px;border:1px solid var(--border-color);border-radius:7px;background:rgba(0,0,0,.18)}
.vu-row{display:grid;grid-template-columns:18px 1fr 92px;align-items:center;gap:8px;margin:6px 0}
.vu-channel{font-size:11px;font-weight:900;color:var(--text-main)}
.vu-track{height:14px;position:relative;border-radius:3px;overflow:hidden;background:#111}
.vu-zones{position:absolute;inset:0;display:flex}
.vu-zones i:nth-child(1){width:80%;background:#236f36}.vu-zones i:nth-child(2){width:15%;background:#b28a20}.vu-zones i:nth-child(3){width:5%;background:#a92e2e}
.vu-zones{opacity:.22}
.vu-level{position:absolute;inset:0;width:100%;background:linear-gradient(90deg,#35a34c 0%,#35a34c 80%,#e0b92e 80%,#e0b92e 95%,#d43b3b 95%,#d43b3b 100%);clip-path:inset(0 100% 0 0);transition:clip-path 70ms linear}
.vu-peak{position:absolute;top:0;bottom:0;width:2px;left:0;background:#fff;box-shadow:0 0 4px rgba(255,255,255,.65);transition:left 60ms linear}
.vu-reading{display:grid;grid-template-columns:42px 1fr;align-items:center;gap:4px;min-width:0}.vu-value{font-variant-numeric:tabular-nums;text-align:right;font-size:10px;font-weight:800;color:var(--text-main)}.vu-alarm{font-size:7px;font-weight:950;letter-spacing:.035em;color:transparent;white-space:nowrap}.vu-alarm.is-overload{color:#ef9b35}.vu-alarm.is-clip{color:#ef4646}
.vu-scale{position:relative;margin-left:26px;margin-right:66px;height:22px;font-size:8px;color:var(--text-dim)}
.vu-scale span{position:absolute;bottom:0;transform:translateX(-50%);white-space:nowrap;line-height:1}
.vu-scale span.edge-left{transform:none;text-align:left}
.vu-scale span.edge-right{transform:translateX(-100%);text-align:right}
.vu-scale span:before{content:"";position:absolute;left:50%;transform:translateX(-50%);bottom:11px;width:1px;height:4px;background:currentColor}
.vu-scale span.edge-left:before{left:0;transform:none}
.vu-scale span.edge-right:before{left:100%;transform:translateX(-100%)}
.vu-scale .vu-yellow-mark{color:#d3a72b;font-weight:900}.vu-scale .vu-red-mark{color:#d43b3b;font-weight:900}
.vu-scale b{position:absolute;right:-53px;bottom:0;font-size:8px;color:var(--text-dim)}
@media(max-width:620px){.broadcast-meter{padding-left:8px;padding-right:8px}.vu-row{grid-template-columns:16px 1fr 76px;gap:5px}.vu-reading{grid-template-columns:36px 1fr}.vu-alarm{font-size:6px}.vu-scale{margin-left:21px;margin-right:81px;font-size:7px;height:20px}}

/* Audio transport selector: user can override auto device detection. */
.audio-mode-switch{display:flex;gap:2px;padding:2px;border:1px solid var(--border-color);border-radius:6px;background:rgba(127,127,127,.07)}
.audio-mode-switch button{border:0;background:transparent;color:var(--text-dim);padding:7px 9px;border-radius:4px;font-size:9px;font-weight:900;cursor:pointer}
.audio-mode-switch button:hover{color:var(--text-main)}
.audio-mode-switch button.active{background:#275f88;color:#fff}
@media(max-width:760px){.live-audio-actions{flex-wrap:wrap;justify-content:flex-end}.audio-mode-switch{order:-1;width:100%;justify-content:stretch}.audio-mode-switch button{flex:1}}



/* =========================================================
   ADMIN SETTINGS
   Same visual language as the ZTM Control Centre dashboard.
   ========================================================= */
.settings-page{
    max-width:1480px;
    padding-bottom:100px;
}
.settings-head{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:16px;
    margin-bottom:16px;
    padding:14px 16px;
    border:1px solid var(--border-color);
    border-radius:10px;
    background:var(--header-bg);
}
.settings-head h1{
    margin:0;
    font-size:20px;
    line-height:1;
    color:var(--text-main);
    letter-spacing:.05em;
}
.settings-head p{
    margin:7px 0 0;
    font-size:11px;
    color:var(--text-dim);
}
.settings-page .module-box{
    margin-top:14px;
    padding:16px;
}
.settings-page .module-box>h3{
    margin:0 0 14px;
    color:var(--text-main);
    font-size:14px;
    letter-spacing:.035em;
}
.settings-tef-grid{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:12px;
}
.settings-grid{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:12px;
}
.settings-grid.names-grid{
    grid-template-columns:repeat(3,minmax(0,1fr));
}
.settings-card{
    min-width:0;
    padding:14px;
    border:1px solid var(--border-color);
    border-radius:9px;
    background:var(--box-bg);
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:10px 12px;
}
.settings-card>strong{
    grid-column:1/-1;
    color:var(--text-main);
    font-size:12px;
    text-transform:uppercase;
    letter-spacing:.06em;
}
.settings-card-head{
    grid-column:1/-1;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:10px;
    padding-bottom:10px;
    margin-bottom:2px;
    border-bottom:1px solid var(--border-color);
}
.settings-card-head>div{
    min-width:0;
}
.settings-card-head strong{
    display:block;
    margin-top:3px;
    color:var(--text-main);
    font-size:15px;
    overflow:hidden;
    text-overflow:ellipsis;
}
.settings-kicker{
    display:block;
    color:var(--text-dim);
    font-size:8px;
    font-weight:900;
    letter-spacing:.11em;
}
.settings-status{
    flex:0 0 auto;
    padding:5px 8px;
    border-radius:999px;
    border:1px solid var(--border-color);
    font-size:8px;
    font-weight:900;
    letter-spacing:.07em;
}
.settings-status.online{
    color:#54d66e;
    border-color:rgba(84,214,110,.36);
    background:rgba(84,214,110,.08);
}
.settings-status.offline{
    color:#ed6464;
    border-color:rgba(237,100,100,.35);
    background:rgba(237,100,100,.08);
}
.settings-card label{
    min-width:0;
    display:flex;
    flex-direction:column;
    gap:5px;
    color:var(--text-dim);
    font-size:9px;
    font-weight:750;
    letter-spacing:.015em;
}
.settings-card input,
.settings-card select{
    width:100%;
    min-width:0;
    height:34px;
    padding:7px 9px;
    border:1px solid var(--border-color);
    border-radius:6px;
    outline:none;
    background:var(--input-bg, #090909);
    color:var(--text-main);
    font-size:11px;
}
.settings-card input:focus,
.settings-card select:focus{
    border-color:#2196F3;
    box-shadow:0 0 0 2px rgba(33,150,243,.12);
}
.settings-card input[type="number"]{
    font-variant-numeric:tabular-nums;
}
.cal-readout{
    grid-column:1/-1;
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:7px;
    margin-top:1px;
}
.cal-readout>div{
    padding:9px 10px;
    border:1px solid var(--border-color);
    border-radius:6px;
    background:rgba(127,127,127,.045);
}
.cal-readout span{
    display:block;
    color:var(--text-dim);
    font-size:8px;
    font-weight:850;
    letter-spacing:.06em;
}
.cal-readout strong{
    display:block;
    margin-top:3px;
    color:var(--text-main);
    font-size:12px;
    font-variant-numeric:tabular-nums;
}
.cal-row{
    grid-column:1/-1;
    display:grid;
    grid-template-columns:minmax(100px,160px) 1fr;
    gap:7px;
}
.cal-row input{
    height:36px;
}
.cal-row button,
.settings-savebar button{
    border:0;
    border-radius:6px;
    background:#1976d2;
    color:#fff;
    font-size:9px;
    font-weight:900;
    letter-spacing:.03em;
    cursor:pointer;
}
.cal-row button:hover,
.settings-savebar button:hover{
    filter:brightness(1.08);
}
.settings-savebar{
    position:sticky;
    z-index:25;
    bottom:10px;
    margin-top:16px;
    min-height:58px;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:14px;
    padding:10px 12px;
    border:1px solid var(--border-color);
    border-radius:9px;
    background:rgba(15,15,15,.94);
    backdrop-filter:blur(12px);
    box-shadow:0 8px 28px rgba(0,0,0,.28);
}
body.light-mode .settings-savebar{
    background:rgba(245,247,249,.95);
}
#settingsMsg{
    min-width:0;
    color:var(--text-dim);
    font-size:10px;
    overflow-wrap:anywhere;
}
.settings-savebar button{
    flex:0 0 auto;
    padding:11px 18px;
}
.settings-page .main-footer{
    margin-top:26px;
}
@media(max-width:1000px){
    .settings-tef-grid,
    .settings-grid{
        grid-template-columns:1fr;
    }
    .settings-grid.names-grid{
        grid-template-columns:1fr;
    }
}
@media(max-width:650px){
    .settings-page{
        padding-left:8px;
        padding-right:8px;
    }
    .settings-head{
        align-items:flex-start;
    }
    .settings-card{
        grid-template-columns:1fr;
        padding:11px;
    }
    .settings-card-head,
    .cal-readout,
    .cal-row,
    .settings-card>strong{
        grid-column:1;
    }
    .cal-readout{
        grid-template-columns:1fr 1fr;
    }
    .cal-row{
        grid-template-columns:1fr;
    }
    .cal-row button{
        min-height:38px;
    }
    .settings-savebar{
        bottom:5px;
        align-items:stretch;
        flex-direction:column;
    }
    .settings-savebar button{
        width:100%;
    }
}


/* Settings readability fix: settings follow the active theme instead of keeping black fields. */
.settings-page{
    --settings-field-bg:#111518;
    --settings-field-text:#f3f5f6;
    --settings-field-border:#394149;
    --settings-card-bg:#171b1f;
}
.settings-page .settings-card{
    background:var(--settings-card-bg)!important;
}
.settings-page .settings-card input,
.settings-page .settings-card select{
    background:var(--settings-field-bg)!important;
    color:var(--settings-field-text)!important;
    border-color:var(--settings-field-border)!important;
    -webkit-text-fill-color:var(--settings-field-text);
    opacity:1;
}
.settings-page .settings-card input::placeholder{
    color:#778087!important;
    opacity:1;
}
.settings-page .settings-card select option{
    background:#111518;
    color:#f3f5f6;
}
body.light-mode .settings-page{
    --settings-field-bg:#ffffff;
    --settings-field-text:#202428;
    --settings-field-border:#c6ccd1;
    --settings-card-bg:#f7f8f9;
}
body.light-mode .settings-page .settings-card{
    background:#f7f8f9!important;
    border-color:#d0d5d9!important;
}
body.light-mode .settings-page .settings-card input,
body.light-mode .settings-page .settings-card select{
    background:#ffffff!important;
    color:#202428!important;
    -webkit-text-fill-color:#202428!important;
    border-color:#bfc6cb!important;
}
body.light-mode .settings-page .settings-card select option{
    background:#ffffff;
    color:#202428;
}
body.light-mode .settings-page .cal-readout>div{
    background:#eef1f3!important;
    border-color:#d0d5d9!important;
}
body.light-mode .settings-page .cal-readout span,
body.light-mode .settings-page label,
body.light-mode .settings-page .settings-kicker{
    color:#626a70!important;
}
body.light-mode .settings-page .cal-readout strong,
body.light-mode .settings-page .settings-card-head strong,
body.light-mode .settings-page .settings-card>strong{
    color:#252a2e!important;
}
body.light-mode .settings-page .settings-savebar{
    background:rgba(247,248,249,.97)!important;
    border-color:#cbd1d5!important;
}


/* Nexia stereo Peak Meter integration */
.nexia-mini-meter,.nexia-tef-audio-meter{
    margin-top:8px;
    padding-top:7px;
    border-top:1px solid var(--border-color);
}
.nexia-tef-audio-meter{margin-bottom:8px}
.nexia-mini-row{
    display:grid;
    grid-template-columns:11px 1fr 38px;
    align-items:center;
    gap:5px;
    height:13px;
    margin:2px 0;
}
.nexia-mini-row>span{
    font-size:8px;
    font-weight:900;
    color:var(--text-dim);
}
.nexia-mini-row>b{
    font-size:8px;
    font-weight:800;
    text-align:right;
    color:var(--text-dim);
    font-variant-numeric:tabular-nums;
}
.nexia-mini-track{
    position:relative;
    height:6px;
    overflow:hidden;
    border-radius:2px;
    background:rgba(127,127,127,.16);
}
.nexia-mini-track:after{
    content:"";
    position:absolute;
    left:80%;
    top:0;
    bottom:0;
    width:1px;
    background:rgba(255,196,0,.75);
}
.nexia-mini-track i{
    display:block;
    width:0;
    height:100%;
    background:linear-gradient(90deg,#2fa64a 0%,#2fa64a 80%,#d3a72b 80%,#d3a72b 95%,#d43b3b 95%,#d43b3b 100%);
}
.nexia-mini-meter.nexia-offline .nexia-mini-track i,
.nexia-tef-audio-meter.nexia-offline .nexia-mini-track i{width:0!important}
.nexia-mini-meter.nexia-offline b,
.nexia-tef-audio-meter.nexia-offline b{opacity:.45}
.rx-tile .nexia-mini-meter{grid-column:1/-1}

.settings-nexia-map{margin-top:12px}
.settings-nexia-receiver-grid{
    grid-column:1/-1;
    display:grid;
    grid-template-columns:repeat(4,minmax(0,1fr));
    gap:9px;
}
.settings-note{
    grid-column:1/-1;
    margin-top:3px;
    padding:9px 10px;
    border:1px solid var(--border-color);
    border-radius:6px;
    color:var(--text-dim);
    font-size:9px;
    line-height:1.45;
}
@media(max-width:900px){.settings-nexia-receiver-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:520px){.settings-nexia-receiver-grid{grid-template-columns:1fr}}

.stream-log-page{max-width:1450px}
.stream-log-summary{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin:14px 0}
.stream-log-summary>div{padding:14px 16px;border:1px solid var(--border-color);border-radius:9px;background:var(--box-bg)}
.stream-log-summary span{display:block;font-size:8px;font-weight:900;color:var(--text-dim);letter-spacing:.08em}
.stream-log-summary strong{display:block;margin-top:4px;font-size:22px;color:var(--text-main)}
.stream-log-table-wrap{overflow:auto;margin-top:12px}
.stream-log-table{width:100%;border-collapse:collapse;min-width:850px}
.stream-log-table th,.stream-log-table td{padding:11px 10px;text-align:left;border-bottom:1px solid var(--border-color);font-size:10px;color:var(--text-main)}
.stream-log-table th{font-size:8px;color:var(--text-dim);letter-spacing:.06em;text-transform:uppercase}
.stream-ip{font-family:monospace}
.stream-transport{display:inline-block;padding:4px 7px;border-radius:999px;font-size:8px;font-weight:900}
.stream-transport.rtc{background:rgba(33,150,243,.13);color:#55aef5;border:1px solid rgba(33,150,243,.25)}
.stream-transport.mp3{background:rgba(255,152,0,.12);color:#ffae3d;border:1px solid rgba(255,152,0,.25)}
.stream-log-empty{padding:30px;text-align:center;color:var(--text-dim);font-size:11px}
@media(max-width:650px){.stream-log-summary{grid-template-columns:1fr 1fr 1fr}.stream-log-summary>div{padding:10px}.stream-log-summary strong{font-size:18px}}

.user-role{display:inline-block;padding:4px 7px;border-radius:999px;font-size:8px;font-weight:900;text-transform:uppercase;border:1px solid var(--border-color)}
.user-role.admin{color:#ffb74d;border-color:rgba(255,183,77,.32);background:rgba(255,183,77,.09)}
.user-role.user{color:#66b7ff;border-color:rgba(102,183,255,.28);background:rgba(102,183,255,.08)}
.stream-path{font-family:monospace;color:var(--text-dim)!important;max-width:280px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
@media(max-width:650px){.stream-log-summary{grid-template-columns:repeat(2,1fr)}}

.admin-hub-btn{background:#536dfe!important;font-weight:900;letter-spacing:.04em}
.admin-hub{
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:11px;
    margin:14px 0 18px;
}
.admin-hub-card{
    min-width:0;
    display:grid;
    grid-template-columns:48px 1fr auto;
    align-items:center;
    gap:11px;
    min-height:76px;
    padding:12px;
    border:1px solid var(--border-color);
    border-radius:10px;
    background:var(--box-bg);
    color:var(--text-main);
    text-decoration:none;
    transition:transform .12s ease,border-color .12s ease,background .12s ease;
}
.admin-hub-card:hover{transform:translateY(-1px);border-color:#59646d;background:rgba(127,127,127,.07)}
.admin-hub-icon{
    display:flex;align-items:center;justify-content:center;
    width:46px;height:46px;border-radius:9px;
    background:rgba(83,109,254,.12);border:1px solid rgba(83,109,254,.25);
    color:#8093ff;font-size:11px;font-weight:950;letter-spacing:.02em
}
.admin-hub-card strong{display:block;font-size:12px}
.admin-hub-card small{display:block;margin-top:4px;color:var(--text-dim);font-size:9px;line-height:1.3}
.admin-hub-card>b{font-size:8px;color:var(--text-dim);white-space:nowrap;text-align:right}
.admin-hub-card>b.ok{color:#50d26b}.admin-hub-card>b.warn{color:#ffb347}
.guest-user{color:#ffb347}
@media(max-width:1050px){.admin-hub{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:620px){.admin-hub{grid-template-columns:1fr}.admin-hub-card{grid-template-columns:42px 1fr auto}.admin-hub-icon{width:40px;height:40px}}
.stream-log-summary{grid-template-columns:repeat(5,1fr)}
@media(max-width:800px){.stream-log-summary{grid-template-columns:repeat(3,1fr)}}
@media(max-width:520px){.stream-log-summary{grid-template-columns:repeat(2,1fr)}}

/* ==========================================================
   ZTM VISUAL NORMALIZATION — broadcast / engineering style
   One consistent semantic color system:
   green = online/active, red = offline/error,
   amber = warning/mixed, blue = action/selection.
   ========================================================== */
:root{
    --ztm-ok:#3fc56b;
    --ztm-ok-dim:rgba(63,197,107,.12);
    --ztm-warn:#d6aa3f;
    --ztm-warn-dim:rgba(214,170,63,.11);
    --ztm-error:#e25b5b;
    --ztm-error-dim:rgba(226,91,91,.11);
    --ztm-action:#4d8fd8;
    --ztm-action-dim:rgba(77,143,216,.12);
    --ztm-panel:#141719;
    --ztm-panel-2:#191d20;
    --ztm-line:#30363b;
}

/* flatter, more technical panels */
.module-box,
.settings-card,
.tef-card,
.rx-tile,
.admin-hub-card,
.live-audio-box,
.stream-log-summary>div{
    border-radius:5px!important;
    box-shadow:none!important;
    background:var(--ztm-panel)!important;
    border-color:var(--ztm-line)!important;
}

/* remove decorative gradients / glossy effects */
.btn-top,
.live-audio-btn,
.tef-audio-btn,
.rx-power-btn,
.btn-groot,
.settings-savebar button,
.cal-row button{
    background-image:none!important;
    box-shadow:none!important;
    border-radius:4px!important;
    text-transform:uppercase;
    letter-spacing:.035em;
}

/* unified top buttons */
.btn-top{
    background:#272d31!important;
    border:1px solid #3a4248!important;
    color:#e7ebed!important;
}
.btn-top:hover{
    background:#31383d!important;
    border-color:#505a62!important;
}
.admin-hub-btn{
    background:#2c567d!important;
    border-color:#3f75a7!important;
}

/* status labels: technical rectangular labels, not pills */
.lock-label,
.tef-badge,
.settings-status,
.stream-transport,
.user-role,
.public-rx-state{
    border-radius:3px!important;
    font-weight:850!important;
    letter-spacing:.055em!important;
}

/* online/active always green */
.tef-online,
.settings-status.online,
.state-on,
.public-rx-state.state-on,
.rx-power-on,
.tef-audible{
    color:var(--ztm-ok)!important;
    border-color:rgba(63,197,107,.34)!important;
    background:var(--ztm-ok-dim)!important;
}

/* offline/error always red */
.tef-offline,
.settings-status.offline,
.state-off,
.public-rx-state.state-off,
.rx-power-off{
    color:var(--ztm-error)!important;
    border-color:rgba(226,91,91,.34)!important;
    background:var(--ztm-error-dim)!important;
}

/* mixed / warning only amber */
.state-mixed,
.public-rx-state.state-mixed,
.rx-power-mixed{
    color:var(--ztm-warn)!important;
    border-color:rgba(214,170,63,.34)!important;
    background:var(--ztm-warn-dim)!important;
}

/* action / selection always blue */
.btn-groot.active,
.audio-mode-switch button.active,
.tef-audio-btn:not(.tef-muted):not(.tef-audible),
.comrex-opal-btn,
.settings-savebar button,
.cal-row button{
    background:#2d5f8d!important;
    border-color:#467fac!important;
    color:#fff!important;
}

/* receiver remote state: online should never be orange */
#rxConn,
#pubReceiverState{
    color:var(--ztm-ok)!important;
    border-color:rgba(63,197,107,.30)!important;
    background:var(--ztm-ok-dim)!important;
}

/* Live Audio server/input state */
#liveAudioServer,
#publicLiveServer{
    color:var(--ztm-ok)!important;
    border-color:rgba(63,197,107,.30)!important;
    background:var(--ztm-ok-dim)!important;
}

/* muted = neutral dark, not random color */
.tef-muted{
    background:#252a2e!important;
    color:#aab1b6!important;
    border-color:#3a4146!important;
}

/* cleaner headers and typography */
.rx-header h3,
.module-box>h3,
.settings-page .module-box>h3{
    color:#dce2e5!important;
    text-transform:uppercase;
    font-size:11px!important;
    letter-spacing:.075em!important;
    font-weight:850!important;
}
.tef-title,
.rx-name{
    color:#e5e9eb!important;
    font-weight:750!important;
}
.tef-port,
.settings-kicker,
.live-audio-sub{
    color:#899198!important;
}

/* Admin hub less app-like, more rack/engineering */
.admin-hub{
    gap:8px!important;
}
.admin-hub-card{
    min-height:68px!important;
    padding:10px!important;
    grid-template-columns:42px 1fr auto!important;
}
.admin-hub-icon{
    width:38px!important;
    height:38px!important;
    border-radius:3px!important;
    background:#20262a!important;
    border-color:#384147!important;
    color:#aab2b8!important;
}
.admin-hub-card:hover{
    transform:none!important;
    background:#1d2225!important;
    border-color:#4a545b!important;
}
.admin-hub-card>b.ok{color:var(--ztm-ok)!important}
.admin-hub-card>b.warn{color:var(--ztm-warn)!important}

/* Tables flatter/technical */
.stream-log-table th{
    background:#1c2023!important;
    color:#90999f!important;
}
.stream-log-table td{
    background:transparent!important;
}

/* VU tracks: retain semantic thresholds, remove glossy look */
.nexia-mini-track,
.vu-track,
.tef-meter{
    border-radius:2px!important;
    box-shadow:none!important;
}

/* Inputs uniform */
.settings-card input,
.settings-card select{
    border-radius:3px!important;
}

/* Public / dashboard status */
.public-rx-state{
    padding:4px 7px!important;
    font-size:8px!important;
}

/* Reduce excessive rounded cards and chips globally */
.audio-mode-switch{
    border-radius:4px!important;
}
.audio-mode-switch button{
    border-radius:2px!important;
}

/* Light mode still semantic */
body.light-mode .module-box,
body.light-mode .settings-card,
body.light-mode .tef-card,
body.light-mode .rx-tile,
body.light-mode .admin-hub-card{
    background:#f4f6f7!important;
    border-color:#cdd3d7!important;
}
body.light-mode .rx-header h3,
body.light-mode .module-box>h3,
body.light-mode .settings-page .module-box>h3,
body.light-mode .tef-title,
body.light-mode .rx-name{
    color:#23282c!important;
}

/* ==========================================================
   READABILITY + LIGHT THEME REWORK
   ========================================================== */

/* Settings: better alignment, larger labels and calmer widths */
.settings-page{
    max-width:1360px!important;
    padding-left:24px!important;
    padding-right:24px!important;
}
.settings-page .module-box{
    padding:20px!important;
    margin-top:16px!important;
}
.settings-page .module-box>h3{
    margin-bottom:18px!important;
    font-size:13px!important;
    line-height:1.3!important;
}
.settings-tef-grid,
.settings-grid{
    gap:14px!important;
    align-items:stretch!important;
}
.settings-grid.names-grid{
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
}
.settings-card{
    padding:16px!important;
    gap:13px 14px!important;
    align-content:start!important;
}
.settings-card label{
    gap:7px!important;
    color:#aeb6bb!important;
    font-size:10px!important;
    font-weight:650!important;
    line-height:1.35!important;
    letter-spacing:.01em!important;
}
.settings-card input,
.settings-card select{
    height:38px!important;
    padding:8px 10px!important;
    font-size:12px!important;
    line-height:20px!important;
}
.settings-card-head{
    min-height:40px;
    padding-bottom:12px!important;
    margin-bottom:3px!important;
}
.settings-card-head strong{
    font-size:14px!important;
    line-height:1.3!important;
}
.settings-kicker{
    color:#929ca2!important;
    font-size:9px!important;
    letter-spacing:.07em!important;
}
.settings-note{
    color:#aeb6bb!important;
    font-size:10px!important;
    line-height:1.55!important;
}
.cal-readout span{
    color:#9da6ac!important;
    font-size:9px!important;
}
.cal-readout strong{
    font-size:12px!important;
}
#settingsMsg{
    color:#aeb6bb!important;
    font-size:10px!important;
}
.settings-nexia-receiver-grid{
    grid-template-columns:repeat(3,minmax(0,1fr))!important;
    gap:11px!important;
}

/* Admin overview alignment */
.admin-hub{
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
    gap:10px!important;
}
.admin-hub-card{
    min-height:72px!important;
    grid-template-columns:42px minmax(0,1fr) 90px!important;
}
.admin-hub-card>div{min-width:0}
.admin-hub-card strong{font-size:12px!important;line-height:1.25}
.admin-hub-card small{font-size:9.5px!important;line-height:1.4!important;color:#9da6ac!important}
.admin-hub-card>b{width:90px;text-align:right!important}

/* ---------- Proper light theme ---------- */
body.light-mode{
    --bg-body:#e9edf0!important;
    --bg-card:#ffffff!important;
    --bg-header:#ffffff!important;
    --text-main:#20262a!important;
    --text-dim:#5f6970!important;
    --border-color:#cbd2d7!important;
    --box-bg:#f7f9fa!important;
    --ztm-panel:#ffffff!important;
    --ztm-panel-2:#f5f7f8!important;
    --ztm-line:#cbd2d7!important;
    background:#e9edf0!important;
    color:#20262a!important;
}
body.light-mode .header-ui,
body.light-mode .settings-head{
    background:#ffffff!important;
    border-color:#c8d0d5!important;
    box-shadow:0 1px 3px rgba(0,0,0,.06)!important;
}
body.light-mode .module-box,
body.light-mode .settings-card,
body.light-mode .tef-card,
body.light-mode .rx-tile,
body.light-mode .admin-hub-card,
body.light-mode .live-audio-box,
body.light-mode .stream-log-summary>div{
    background:#ffffff!important;
    border-color:#cbd2d7!important;
    color:#20262a!important;
}
body.light-mode .small-box{
    background:#f7f9fa!important;
    border-color:#cbd2d7!important;
    color:#20262a!important;
}
body.light-mode .small-box:hover{
    background:#edf4fa!important;
    border-color:#7fa7c8!important;
}
body.light-mode .box-selected{
    background:#e6f0f8!important;
    border-color:#4d8fd8!important;
    box-shadow:none!important;
}
body.light-mode .box-nr,
body.light-mode .main-label,
body.light-mode .tef-port,
body.light-mode .live-audio-sub,
body.light-mode .logout-link{
    color:#68737a!important;
}
body.light-mode .box-txt,
body.light-mode .tef-title,
body.light-mode .rx-name,
body.light-mode .module-box>h3,
body.light-mode .rx-header h3{
    color:#20262a!important;
}
body.light-mode .btn-top{
    background:#f3f5f6!important;
    border-color:#bdc6cc!important;
    color:#273036!important;
}
body.light-mode .btn-top:hover{
    background:#e7ebee!important;
    border-color:#9faab1!important;
}
body.light-mode .admin-hub-btn{
    background:#315f88!important;
    border-color:#315f88!important;
    color:#fff!important;
}
body.light-mode .admin-hub-icon{
    background:#eef2f4!important;
    border-color:#cbd2d7!important;
    color:#4d5960!important;
}
body.light-mode .admin-hub-card:hover{
    background:#f7f9fa!important;
    border-color:#aeb9c0!important;
}
body.light-mode .admin-hub-card small,
body.light-mode .settings-note,
body.light-mode #settingsMsg{
    color:#58636a!important;
}

/* Light settings: strong contrast for every form element */
body.light-mode .settings-page{
    --settings-field-bg:#ffffff!important;
    --settings-field-text:#182025!important;
    --settings-field-border:#aeb8bf!important;
    --settings-card-bg:#ffffff!important;
}
body.light-mode .settings-page .settings-card{
    background:#ffffff!important;
    border-color:#c6ced3!important;
}
body.light-mode .settings-page .settings-card label{
    color:#3f494f!important;
}
body.light-mode .settings-page .settings-kicker{
    color:#58636a!important;
}
body.light-mode .settings-page .settings-card input,
body.light-mode .settings-page .settings-card select{
    background:#ffffff!important;
    color:#182025!important;
    -webkit-text-fill-color:#182025!important;
    border-color:#aeb8bf!important;
    box-shadow:inset 0 0 0 1px rgba(0,0,0,.015)!important;
}
body.light-mode .settings-page .settings-card input:focus,
body.light-mode .settings-page .settings-card select:focus{
    border-color:#4d8fd8!important;
    box-shadow:0 0 0 2px rgba(77,143,216,.14)!important;
}
body.light-mode .settings-page .settings-card input::placeholder{
    color:#7b858c!important;
}
body.light-mode .settings-page .cal-readout>div{
    background:#f3f5f6!important;
    border-color:#c6ced3!important;
}
body.light-mode .settings-page .cal-readout span{
    color:#566168!important;
}
body.light-mode .settings-page .cal-readout strong,
body.light-mode .settings-page .settings-card-head strong,
body.light-mode .settings-page .settings-card>strong{
    color:#1d252a!important;
}
body.light-mode .settings-page .settings-savebar{
    background:rgba(255,255,255,.97)!important;
    border-color:#bfc8ce!important;
    box-shadow:0 2px 8px rgba(0,0,0,.08)!important;
}

/* Tables in light mode */
body.light-mode .stream-log-table th{
    background:#eef2f4!important;
    color:#465159!important;
    border-color:#cbd2d7!important;
}
body.light-mode .stream-log-table td{
    color:#20262a!important;
    border-color:#d7dde1!important;
}
body.light-mode .stream-path{color:#536068!important}

/* Audio / receiver neutral controls in light mode */
body.light-mode .tef-muted{
    background:#eef1f3!important;
    color:#4f5a61!important;
    border-color:#c3cbd0!important;
}
body.light-mode .audio-mode-switch{
    background:#eef1f3!important;
    border-color:#c5cdd2!important;
}
body.light-mode .audio-mode-switch button{
    color:#4b565d!important;
}
body.light-mode .audio-mode-switch button.active{
    color:#fff!important;
    background:#315f88!important;
}

/* Keep center PIP confidence monitor black in both themes */
body.light-mode .main-box{
    background:#0a0c0d!important;
    color:#e7ebed!important;
}
body.light-mode .main-box .current-info{color:#70a8d8!important}
body.light-mode .main-box .main-label{color:#8c989f!important}

/* Mobile/tablet settings alignment */
@media(max-width:1000px){
    .settings-page{padding-left:14px!important;padding-right:14px!important}
    .settings-grid.names-grid{grid-template-columns:1fr!important}
    .settings-nexia-receiver-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}
}
@media(max-width:720px){
    .settings-page{padding-left:8px!important;padding-right:8px!important}
    .settings-page .module-box{padding:13px!important}
    .settings-card{grid-template-columns:1fr!important;padding:13px!important}
    .settings-card-head,.cal-readout,.cal-row,.settings-card>strong{grid-column:1!important}
    .admin-hub{grid-template-columns:1fr!important}
    .admin-hub-card{grid-template-columns:40px minmax(0,1fr) 76px!important}
    .admin-hub-card>b{width:76px}
    .settings-nexia-receiver-grid{grid-template-columns:1fr!important}
}

/* ==========================================================
   PROFESSIONAL ADMIN SHELL + TRUE LIGHT MODE
   The application uses "body.dark-mode"; light mode is the
   default body state, so all light rules target body:not(.dark-mode).
   ========================================================== */

/* Shared admin geometry */
.admin-page,
.settings-page,
.stream-log-page{
    width:min(1380px, calc(100% - 36px))!important;
    max-width:1380px!important;
    margin:0 auto!important;
    padding:18px 0 80px!important;
}
.admin-page-wide{width:min(1680px, calc(100% - 36px))!important;max-width:1680px!important}

.admin-page-head{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:20px;
    min-height:70px;
    padding:14px 16px;
    margin-bottom:16px;
    border:1px solid var(--border-color);
    border-radius:5px;
    background:var(--bg-header);
}
.admin-page-title{min-width:0}
.admin-page-title h1{
    margin:0!important;
    color:var(--text-main)!important;
    font-size:17px!important;
    font-weight:850!important;
    letter-spacing:.055em!important;
    text-transform:uppercase!important;
}
.admin-page-title p{
    margin:6px 0 0;
    color:var(--text-dim);
    font-size:10px;
    letter-spacing:.02em;
}
.admin-page-actions{
    display:flex;
    align-items:center;
    justify-content:flex-end;
    gap:8px;
    flex-wrap:wrap;
}
.admin-panel{padding:18px!important}
.admin-panel-narrow{max-width:760px}
.admin-help{margin:0 0 4px;color:var(--text-dim);font-size:11px;line-height:1.55}
.admin-form-stack{
    display:flex;
    flex-direction:column;
    gap:13px;
    width:100%;
    max-width:680px;
}
.admin-form-grid{display:grid;grid-template-columns:1fr;gap:16px}
.admin-form-column{
    display:flex;
    flex-direction:column;
    gap:10px;
    max-width:820px;
}
.admin-form-column>label{
    color:var(--text-main);
    font-size:10px;
    font-weight:700;
    margin-top:4px;
}
.admin-input-action{
    display:grid;
    grid-template-columns:minmax(0,1fr) 130px;
    gap:8px;
    margin-bottom:6px;
}
.admin-dual-actions{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:8px;
    margin-top:8px;
}
.admin-control,
.admin-input{
    width:100%;
    min-width:0;
    min-height:40px;
    box-sizing:border-box;
    padding:9px 11px;
    border:1px solid var(--border-color);
    border-radius:3px;
    background:var(--box-bg);
    color:var(--text-main);
    font-size:12px;
    outline:none;
}
.admin-select-lg{margin-bottom:18px;font-size:12px}
.admin-control:focus,
.admin-input:focus{
    border-color:#4d8fd8!important;
    box-shadow:0 0 0 2px rgba(77,143,216,.12);
}
.btn-admin-action,
.admin-primary-btn,
.admin-state-btn{
    min-height:40px;
    padding:9px 14px;
    border:1px solid transparent;
    border-radius:3px;
    font-size:10px;
    font-weight:850;
    letter-spacing:.04em;
    text-transform:uppercase;
    cursor:pointer;
}
.btn-admin-action,.admin-primary-btn{background:#315f88;color:#fff;border-color:#3f75a7}
.admin-primary-btn{min-height:44px}
.admin-state-btn.is-on{background:rgba(63,197,107,.14);color:#3fc56b;border-color:rgba(63,197,107,.35)}
.admin-state-btn.is-off{background:rgba(226,91,91,.12);color:#e25b5b;border-color:rgba(226,91,91,.35)}

/* Users */
.users-table{
    width:100%;
    border-collapse:collapse;
    table-layout:fixed;
}
.users-table th,
.users-table td{
    padding:11px 12px;
    border-bottom:1px solid var(--border-color);
    text-align:left;
    color:var(--text-main);
    font-size:11px;
}
.users-table th{
    color:var(--text-dim);
    font-size:9px;
    letter-spacing:.05em;
    text-transform:uppercase;
}
.horizontal-form{
    display:grid!important;
    grid-template-columns:1.2fr 1.2fr .8fr 140px;
    gap:9px!important;
    max-width:none!important;
    align-items:end;
}
.del-link{color:#e25b5b!important;text-decoration:none;font-weight:800;font-size:9px}

/* Matrix Pro — theme aware, no hardcoded dark table */
.pro-container{overflow:auto;margin-top:0!important;padding:0!important}
.pro-table{
    width:100%;
    min-width:1180px;
    border-collapse:collapse;
    background:var(--bg-card);
    color:var(--text-main);
    font-size:10px;
}
.pro-table th,.pro-table td{
    border:1px solid var(--border-color);
    padding:6px;
    text-align:center;
}
.pro-table th{
    background:var(--box-bg);
    color:var(--text-main);
    position:sticky;
    top:0;
    z-index:10;
    font-size:9px;
}
.pro-table th small{color:var(--text-dim)!important}
.in-label{
    text-align:left!important;
    background:var(--box-bg)!important;
    color:var(--text-main)!important;
    font-weight:750;
    width:160px;
    position:sticky;
    left:0;
    z-index:5;
}
.btn-set{
    width:100%;
    min-width:42px;
    padding:6px 4px;
    border:1px solid var(--border-color);
    border-radius:2px;
    background:transparent;
    color:var(--text-dim);
    cursor:pointer;
    font-size:9px;
    font-weight:800;
}
.btn-set:hover{background:#315f88;color:#fff;border-color:#3f75a7}
.btn-set.active-cell{background:#2c7b47;color:#fff;border-color:#379757}

/* Settings alignment — consistent field rows */
.settings-page .settings-tef-grid,
.settings-page .settings-grid{
    align-items:stretch!important;
}
.settings-page .settings-card{
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
    gap:12px!important;
}
.settings-page .settings-card label{
    justify-content:flex-start;
}
.settings-page .settings-card input,
.settings-page .settings-card select{
    width:100%!important;
    box-sizing:border-box!important;
}
.settings-page .cal-readout,
.settings-page .cal-row{
    align-self:end;
}
.settings-savebar{left:auto;right:auto}

/* ----------------------------------------------------------
   TRUE DEFAULT LIGHT MODE: body has NO light-mode class.
   ---------------------------------------------------------- */
body:not(.dark-mode){
    --bg-body:#e9edf0;
    --bg-card:#ffffff;
    --bg-header:#ffffff;
    --text-main:#20262a;
    --text-dim:#606b72;
    --border-color:#cbd3d8;
    --box-bg:#f5f7f8;
    --log-bg:#f4f6f7;
    --log-text:#20262a;
    --ztm-panel:#ffffff;
    --ztm-panel-2:#f5f7f8;
    --ztm-line:#cbd3d8;
    background:#e9edf0!important;
    color:#20262a!important;
}
body:not(.dark-mode) .header-ui,
body:not(.dark-mode) .admin-page-head,
body:not(.dark-mode) .settings-head{
    background:#fff!important;
    border-color:#c8d0d5!important;
    box-shadow:0 1px 4px rgba(24,35,43,.06)!important;
}
body:not(.dark-mode) .module-box,
body:not(.dark-mode) .settings-card,
body:not(.dark-mode) .tef-card,
body:not(.dark-mode) .rx-tile,
body:not(.dark-mode) .admin-hub-card,
body:not(.dark-mode) .live-audio-box,
body:not(.dark-mode) .stream-log-summary>div{
    background:#fff!important;
    color:#20262a!important;
    border-color:#cbd3d8!important;
}
body:not(.dark-mode) .module-box>h3,
body:not(.dark-mode) .rx-header h3,
body:not(.dark-mode) .tef-title,
body:not(.dark-mode) .rx-name,
body:not(.dark-mode) .settings-card-head strong,
body:not(.dark-mode) .settings-card>strong{
    color:#20262a!important;
}
body:not(.dark-mode) .small-box{
    background:#f7f9fa!important;
    color:#20262a!important;
    border-color:#c9d1d6!important;
}
body:not(.dark-mode) .small-box:hover{
    background:#edf4fa!important;
    border-color:#7fa7c8!important;
}
body:not(.dark-mode) .box-selected{
    background:#e7f1f8!important;
    border-color:#3186c4!important;
    box-shadow:inset 0 0 0 1px rgba(49,134,196,.12)!important;
}
body:not(.dark-mode) .box-nr{color:#68747b!important}
body:not(.dark-mode) .box-txt{color:#20262a!important}
body:not(.dark-mode) .main-box{
    background:#080a0b!important;
    border-color:#3186c4!important;
    color:#e9eef1!important;
}
body:not(.dark-mode) .main-label{color:#89969d!important}
body:not(.dark-mode) .current-info{color:#61a9df!important;text-shadow:none!important}

/* These sections were staying black in the previous build */
body:not(.dark-mode) .direct-switches,
body:not(.dark-mode) .big-switch-module,
body:not(.dark-mode) .receiver-module,
body:not(.dark-mode) .tef-module{
    background:#fff!important;
    color:#20262a!important;
    border-color:#cbd3d8!important;
}
body:not(.dark-mode) .btn-direct,
body:not(.dark-mode) .btn-groot{
    background:#f5f7f8!important;
    color:#273036!important;
    border-color:#c5cdd2!important;
}
body:not(.dark-mode) .btn-direct:hover,
body:not(.dark-mode) .btn-groot:hover{
    background:#eaf1f6!important;
    border-color:#90adbf!important;
}

/* TEF complete light treatment */
body:not(.dark-mode) .tef-card{
    background:#fff!important;
}
body:not(.dark-mode) .tef-detail{
    background:#f4f6f7!important;
    color:#4d585f!important;
    border-color:#d4dade!important;
}
body:not(.dark-mode) .tef-detail strong{color:#20262a!important}
body:not(.dark-mode) .tef-meter{
    background:#dce2e5!important;
}
body:not(.dark-mode) .nexia-mini-track{
    background:#dce2e5!important;
}
body:not(.dark-mode) .nexia-mini-row>span,
body:not(.dark-mode) .nexia-mini-row>b{
    color:#566168!important;
}
body:not(.dark-mode) .tef-tune-input{
    background:#fff!important;
    color:#20262a!important;
    border-color:#aeb8bf!important;
}
body:not(.dark-mode) .tef-reconnect{
    background:#e9eef1!important;
    color:#344149!important;
    border-color:#b8c3ca!important;
}

/* Receiver light */
body:not(.dark-mode) .rx-tile{
    background:#fff!important;
}
body:not(.dark-mode) .rx-meta,
body:not(.dark-mode) .rx-sub,
body:not(.dark-mode) .tef-port{
    color:#657179!important;
}

/* Admin cards and forms */
body:not(.dark-mode) .admin-hub-card{
    background:#fff!important;
}
body:not(.dark-mode) .admin-hub-card:hover{background:#f7f9fa!important}
body:not(.dark-mode) .admin-hub-icon{
    background:#eef2f4!important;
    border-color:#cad2d7!important;
    color:#4f5b62!important;
}
body:not(.dark-mode) .admin-hub-card small{color:#59656c!important}
body:not(.dark-mode) .admin-control,
body:not(.dark-mode) .admin-input,
body:not(.dark-mode) .settings-card input,
body:not(.dark-mode) .settings-card select{
    background:#fff!important;
    color:#172026!important;
    -webkit-text-fill-color:#172026!important;
    border-color:#aeb8bf!important;
}
body:not(.dark-mode) .settings-card label,
body:not(.dark-mode) .admin-form-column>label{
    color:#3d484e!important;
}
body:not(.dark-mode) .settings-kicker,
body:not(.dark-mode) .settings-note,
body:not(.dark-mode) .admin-help{
    color:#566168!important;
}
body:not(.dark-mode) .cal-readout>div{
    background:#f2f5f6!important;
    border-color:#c8d0d5!important;
}
body:not(.dark-mode) .cal-readout span{color:#566168!important}
body:not(.dark-mode) .cal-readout strong{color:#20262a!important}
body:not(.dark-mode) .settings-savebar{
    background:rgba(255,255,255,.98)!important;
    border-color:#bdc6cc!important;
    box-shadow:0 2px 10px rgba(0,0,0,.07)!important;
}

/* Tables light */
body:not(.dark-mode) .users-table th,
body:not(.dark-mode) .stream-log-table th{
    background:#eef2f4!important;
    color:#465159!important;
    border-color:#cbd3d8!important;
}
body:not(.dark-mode) .users-table td,
body:not(.dark-mode) .stream-log-table td{
    background:#fff!important;
    color:#20262a!important;
    border-color:#d7dde1!important;
}
body:not(.dark-mode) .pro-table{background:#fff!important;color:#20262a!important}
body:not(.dark-mode) .pro-table th,
body:not(.dark-mode) .in-label{background:#eef2f4!important;color:#20262a!important}
body:not(.dark-mode) .btn-set{color:#536068!important}

/* Buttons */
body:not(.dark-mode) .btn-top{
    background:#f3f5f6!important;
    color:#273036!important;
    border-color:#bdc6cc!important;
}
body:not(.dark-mode) .btn-top:hover{
    background:#e7ebee!important;
    border-color:#9faab1!important;
}
body:not(.dark-mode) .admin-hub-btn{
    background:#315f88!important;
    color:#fff!important;
    border-color:#315f88!important;
}
body:not(.dark-mode) .theme-btn{
    background:#315f88!important;
    color:#fff!important;
}

/* Dark admin form contrast improvement */
body.dark-mode .admin-control,
body.dark-mode .admin-input{
    background:#111518!important;
    color:#eef2f4!important;
    border-color:#3a4248!important;
}
body.dark-mode .admin-page-head{
    background:#0f1214!important;
    border-color:#2d3439!important;
}
body.dark-mode .admin-form-column>label{color:#b2bac0!important}
body.dark-mode .users-table th,
body.dark-mode .users-table td{border-color:#2d3439!important}

/* Responsive */
@media(max-width:980px){
    .admin-page,.settings-page,.stream-log-page{
        width:min(100% - 20px, 1380px)!important;
    }
    .horizontal-form{grid-template-columns:1fr 1fr}
    .admin-page-head{align-items:flex-start}
}
@media(max-width:680px){
    .admin-page,.settings-page,.stream-log-page{width:calc(100% - 12px)!important;padding-top:8px!important}
    .admin-page-head{flex-direction:column;align-items:stretch;padding:12px}
    .admin-page-actions{justify-content:flex-start}
    .horizontal-form{grid-template-columns:1fr}
    .admin-input-action{grid-template-columns:1fr}
    .admin-dual-actions{grid-template-columns:1fr}
    .settings-page .settings-card{grid-template-columns:1fr!important}
}

/* ==========================================================
   L-BAND / ZANDAR REWORK
   ========================================================== */
.admin-section-head{
    display:flex;
    align-items:flex-start;
    justify-content:space-between;
    gap:20px;
    padding-bottom:15px;
    margin-bottom:16px;
    border-bottom:1px solid var(--border-color);
}
.admin-section-head h3{
    margin:4px 0 5px!important;
    font-size:15px!important;
    color:var(--text-main)!important;
    letter-spacing:.035em!important;
}
.admin-section-head p{
    margin:0;
    color:var(--text-dim);
    font-size:10px;
    line-height:1.5;
}
.admin-kicker{
    display:block;
    color:var(--text-dim);
    font-size:8px;
    font-weight:900;
    letter-spacing:.1em;
}
.admin-section-status{
    flex:0 0 auto;
    display:flex;
    align-items:center;
    gap:7px;
    min-height:27px;
    padding:0 9px;
    border:1px solid var(--border-color);
    border-radius:3px;
    color:var(--text-dim);
    font-size:8px;
    font-weight:850;
    letter-spacing:.06em;
}
.admin-status-dot{
    width:7px;height:7px;border-radius:50%;
    background:#3fc56b;
    box-shadow:0 0 0 3px rgba(63,197,107,.10);
}
.admin-field-label{
    display:block;
    margin-bottom:7px;
    color:var(--text-main);
    font-size:10px;
    font-weight:750;
}
.admin-field-help{
    display:block;
    margin-top:7px;
    color:var(--text-dim);
    font-size:9px;
    line-height:1.45;
}
.admin-control-block{
    padding:13px;
    border:1px solid var(--border-color);
    border-radius:4px;
    background:var(--box-bg);
}
.admin-control-title{
    display:flex;
    justify-content:space-between;
    align-items:flex-end;
    gap:16px;
    margin-bottom:10px;
}
.admin-control-title strong{
    display:block;
    margin-top:3px;
    color:var(--text-main);
    font-size:12px;
}
.admin-control-title>small{
    color:var(--text-dim);
    font-size:8px;
    text-align:right;
}

/* L-Band */
.lband-layout{
    display:grid;
    grid-template-columns:minmax(280px,.72fr) minmax(420px,1.28fr);
    gap:14px;
}
.lband-device-card,
.lband-control-card{
    min-width:0;
}
.lband-device-card{
    padding:14px;
    border:1px solid var(--border-color);
    border-radius:4px;
    background:var(--box-bg);
}
.lband-info-grid{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:8px;
    margin-top:12px;
}
.lband-info-grid>div{
    padding:12px;
    border:1px solid var(--border-color);
    border-radius:3px;
    background:var(--bg-card);
}
.lband-info-grid span,
.lband-info-grid small{
    display:block;
    color:var(--text-dim);
    font-size:8px;
    font-weight:800;
    letter-spacing:.07em;
}
.lband-info-grid strong{
    display:block;
    margin:5px 0 4px;
    color:var(--text-main);
    font-size:13px;
}
.lband-control-card{
    display:grid;
    gap:10px;
}
.lband-power-block{
    padding:13px;
    border:1px solid var(--border-color);
    border-radius:4px;
    background:var(--box-bg);
}

/* Zandar */
.zandar-panel{max-width:none!important}
.zandar-layout{
    display:grid;
    grid-template-columns:minmax(280px,.8fr) minmax(420px,1.2fr);
    gap:14px;
}
.zandar-preview-card{
    padding:14px;
    border:1px solid var(--border-color);
    border-radius:4px;
    background:var(--box-bg);
}
.zandar-preview-card>strong{
    display:block;
    margin-top:5px;
    color:var(--text-main);
    font-size:13px;
}
.zandar-preview-card>p{
    margin:6px 0 14px;
    color:var(--text-dim);
    font-size:9px;
    line-height:1.5;
}
.zandar-preview-screen{
    aspect-ratio:16/9;
    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:center;
    border:1px solid #273138;
    border-radius:3px;
    background:#050708;
    color:#eef3f6;
    text-align:center;
}
.zandar-preview-screen span{
    margin-bottom:8px;
    color:#7d8991;
    font-size:9px;
    font-weight:800;
    letter-spacing:.12em;
}
.zandar-preview-screen strong{
    max-width:90%;
    overflow:hidden;
    text-overflow:ellipsis;
    font-size:19px;
    letter-spacing:.035em;
}
.zandar-form{
    display:flex;
    flex-direction:column;
    gap:10px;
}
.zandar-submit{margin-top:auto}

/* Public theme button */
.public-theme-btn{
    min-width:92px;
}

/* True light mode for new panels */
body:not(.dark-mode) .admin-control-block,
body:not(.dark-mode) .lband-device-card,
body:not(.dark-mode) .lband-power-block,
body:not(.dark-mode) .zandar-preview-card{
    background:#f6f8f9!important;
    border-color:#cbd3d8!important;
}
body:not(.dark-mode) .lband-info-grid>div{
    background:#fff!important;
    border-color:#cbd3d8!important;
}
body:not(.dark-mode) .admin-section-status{
    color:#4e5a61!important;
    border-color:#c4ccd1!important;
    background:#f7f9fa!important;
}

/* Responsive */
@media(max-width:900px){
    .lband-layout,.zandar-layout{grid-template-columns:1fr}
}
@media(max-width:620px){
    .admin-section-head{flex-direction:column}
    .admin-section-status{align-self:flex-start}
    .lband-info-grid{grid-template-columns:1fr}
    .admin-control-title{align-items:flex-start;flex-direction:column;gap:5px}
    .admin-control-title>small{text-align:left}
}

/* Public status header alignment */
.public-header,
.status-header{
    display:flex!important;
    align-items:center!important;
    justify-content:space-between!important;
    gap:16px!important;
}
.public-header>h1,
.status-header>h1{
    margin-right:auto!important;
}
.public-header-actions{
    margin-left:auto;
    display:flex;
    align-items:center;
    justify-content:flex-end;
    gap:8px;
    flex-wrap:nowrap;
}
.public-header-actions .btn-top{
    margin:0!important;
    white-space:nowrap;
}
.public-login-btn{
    min-width:66px;
    text-align:center;
}
.public-theme-btn{
    min-width:100px;
}
@media(max-width:620px){
    .public-header,
    .status-header{
        align-items:flex-start!important;
    }
    .public-header-actions{
        gap:5px;
    }
    .public-header-actions .btn-top{
        padding:7px 9px!important;
        font-size:9px!important;
    }
}

/* Exact public /status header */
.public-black-header{
    display:flex!important;
    align-items:center!important;
    justify-content:space-between!important;
    gap:16px!important;
    width:100%!important;
}
.public-black-header>h1{
    margin:0 auto 0 0!important;
    flex:0 0 auto!important;
}
.public-black-header>.public-header-actions{
    margin-left:auto!important;
    display:flex!important;
    align-items:center!important;
    justify-content:flex-end!important;
    gap:8px!important;
    flex:0 0 auto!important;
}
.public-black-header .public-theme-btn{order:1!important}
.public-black-header .public-login-btn{order:2!important}
@media(max-width:600px){
    .public-black-header{gap:8px!important}
    .public-black-header>.public-header-actions{gap:5px!important}
}

/* Main Out stream monitor — deliberately hidden behind the Live Audio title */
.live-audio-monitor-trigger{
    margin:0!important;display:inline-flex;align-items:center;gap:7px;
    cursor:pointer;user-select:none;color:var(--text-main);
}
.live-audio-monitor-trigger span{font-size:11px;color:var(--text-dim);font-weight:600}
.live-audio-monitor-trigger:hover span{color:#4d9ddd}
.stream-monitor-modal[hidden]{display:none!important}
.stream-monitor-modal{
    position:fixed;inset:0;z-index:10000;display:grid;place-items:center;
    padding:18px;background:rgba(0,0,0,.72);backdrop-filter:blur(3px);
}
.stream-monitor-dialog{
    width:min(820px,96vw);max-height:94vh;overflow:auto;padding:16px;
    border:1px solid #384249;border-radius:5px;background:#0d1113;color:#e8edef;
    box-shadow:0 20px 70px rgba(0,0,0,.5);
}
.stream-monitor-head{display:flex;align-items:center;justify-content:space-between;padding-bottom:12px;margin-bottom:12px;border-bottom:1px solid #30383d}
.stream-monitor-head h3{margin:3px 0 0;font-size:15px;letter-spacing:.04em;text-transform:uppercase}
.stream-monitor-kicker{font-size:8px;font-weight:900;letter-spacing:.12em;color:#7f8a91}
.stream-monitor-close{width:34px;height:34px;border:1px solid #394249;border-radius:3px;background:#171c1f;color:#cbd2d6;font-size:22px;cursor:pointer}
.stream-monitor-grid{display:grid;grid-template-columns:minmax(0,1fr) 150px;gap:13px}
.scope-panel{position:relative;min-width:0;border:1px solid #30383d;border-radius:3px;background:#050708;aspect-ratio:1}
.stream-scope{display:block;width:100%;height:100%}
.scope-labels span{position:absolute;z-index:2;color:#77838a;font-size:9px;font-weight:700}
.scope-lp{left:20%;top:20%}.scope-rp{right:20%;top:20%}.scope-rm{left:20%;bottom:20%}.scope-lm{right:20%;bottom:20%}
.stream-monitor-side{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.stream-monitor-meter{display:flex;flex-direction:column;min-width:0;padding:9px;border:1px solid #30383d;border-radius:3px;background:#111619}
.sm-meter-head{text-align:center}.sm-meter-head span{display:block;font-size:10px;font-weight:900}.sm-meter-head strong{display:block;margin-top:3px;font-size:13px}.sm-meter-head small{color:#77838a;font-size:7px}.sm-alarm{display:block;min-height:12px;margin-top:3px;font-size:7px;font-style:normal;font-weight:950;letter-spacing:.05em;color:transparent}.sm-alarm.is-overload{color:#ef9b35}.sm-alarm.is-clip{color:#ef4646}
.sm-vertical{position:relative;flex:1;min-height:330px;margin:9px auto 0;width:28px;background:linear-gradient(to top,#26302c 0 80%,#4a4320 80% 95%,#4c2424 95% 100%);border:1px solid #394249;overflow:hidden}
.sm-vertical i{position:absolute;inset:0;height:100%;background:linear-gradient(to top,#3fc56b 0%,#3fc56b 80%,#e0b92e 80%,#e0b92e 95%,#d43b3b 95%,#d43b3b 100%);clip-path:inset(100% 0 0 0);transition:clip-path 55ms linear}
.sm-vertical b{position:absolute;left:0;right:0;height:2px;background:#f3e6a0}
.correlation-panel{margin-top:12px;padding:11px;border:1px solid #30383d;border-radius:3px;background:#111619}
.correlation-head{display:grid;grid-template-columns:1fr auto auto;gap:12px;align-items:center;font-size:9px;color:#8a959b}
.correlation-head strong{font-size:13px;color:#e8edef}.correlation-head b{font-size:9px;color:#3fc56b}.correlation-head b.phase-warning{color:#ef6666}
.correlation-track{position:relative;height:8px;margin-top:9px;background:linear-gradient(to right,#693131 0 50%,#38442d 50% 75%,#235238 75% 100%);border:1px solid #394249}
.correlation-track>i{position:absolute;left:50%;top:-3px;bottom:-3px;width:1px;background:#879197}
.correlation-track>span{position:absolute;top:-5px;width:2px;height:16px;background:#fff}
.correlation-scale{display:flex;justify-content:space-between;margin-top:5px;color:#707c83;font-size:8px}
.stream-monitor-foot{margin-top:10px;text-align:right;color:#69757c;font-size:8px;letter-spacing:.06em;text-transform:uppercase}
body.stream-monitor-open{overflow:hidden}
@media(max-width:680px){
 .stream-monitor-grid{grid-template-columns:1fr}
 .stream-monitor-side{grid-template-columns:1fr 1fr}
 .sm-vertical{min-height:130px}
}

.scope-ref{
    left:50%;bottom:7px;transform:translateX(-50%);
    color:#69757c!important;font-size:7px!important;letter-spacing:.08em;
    white-space:nowrap;
}

/* Realtime Nexia monitor in Settings */
.settings-nexia-live-grid{
    grid-template-columns:repeat(4,minmax(0,1fr))!important;
    gap:9px!important;
}
.settings-nexia-live-item{
    min-width:0;
    padding:11px;
    border:1px solid var(--border-color);
    border-radius:4px;
    background:var(--box-bg);
}
.settings-nexia-live-head{
    display:flex;
    align-items:flex-start;
    justify-content:space-between;
    gap:8px;
    margin-bottom:9px;
}
.settings-nexia-live-head span{
    display:block;
    color:var(--text-dim);
    font-size:8px;
    font-weight:850;
    letter-spacing:.06em;
}
.settings-nexia-live-head strong{
    display:block;
    margin-top:3px;
    color:var(--text-main);
    font-size:10px;
    white-space:nowrap;
    overflow:hidden;
    text-overflow:ellipsis;
}
.settings-nexia-live-head>b{
    padding:3px 5px;
    border:1px solid var(--border-color);
    border-radius:2px;
    color:var(--text-dim);
    font-size:7px;
    letter-spacing:.05em;
}
.settings-nexia-live-head>b.is-online{
    color:#3fc56b;
    border-color:rgba(63,197,107,.30);
    background:rgba(63,197,107,.08);
}
.settings-nexia-live-head>b.is-offline{
    color:#e25b5b;
    border-color:rgba(226,91,91,.28);
    background:rgba(226,91,91,.07);
}
.settings-nexia-live-item>label{
    display:block!important;
    color:var(--text-dim)!important;
    font-size:8px!important;
}
.settings-nexia-live-item>label input{
    margin-top:5px;
}
.settings-live-vu{
    display:grid;
    gap:5px;
    margin-top:9px;
    padding-top:8px;
    border-top:1px solid var(--border-color);
}
.settings-live-vu>div{
    display:grid;
    grid-template-columns:10px minmax(0,1fr) 34px;
    gap:6px;
    align-items:center;
}
.settings-live-vu span,
.settings-live-vu b{
    color:var(--text-dim);
    font-size:8px;
    font-weight:750;
}
.settings-live-vu b{text-align:right}
.settings-live-vu-track{
    position:relative;
    height:6px;
    overflow:hidden;
    border-radius:1px;
    background:#242a2e;
}
.settings-live-vu-track i{
    display:block;
    width:0;
    height:100%;
    background:#3fc56b;
    will-change:width;
}
body:not(.dark-mode) .settings-nexia-live-item{
    background:#f6f8f9;
}
body:not(.dark-mode) .settings-live-vu-track{
    background:#dde3e6;
}
@media(max-width:1200px){
    .settings-nexia-live-grid{grid-template-columns:repeat(3,minmax(0,1fr))!important}
}
@media(max-width:850px){
    .settings-nexia-live-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}
}
@media(max-width:520px){
    .settings-nexia-live-grid{grid-template-columns:1fr!important}
}


/* External local monitor remote control (v5.3) */
.external-display-head{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-bottom:12px}
.external-display-head h3{margin:0;color:var(--text-main);font-size:14px;text-transform:uppercase}
.external-display-head>b,.external-display-active{display:inline-flex;align-items:center;justify-content:center;min-height:24px;padding:0 11px;border:1px solid #275e39;border-radius:5px;background:#0f2418;color:#79ea9a;font-size:9px;font-weight:900;letter-spacing:.08em;white-space:nowrap;box-shadow:inset 0 0 0 1px rgba(75,210,110,.06)}
.external-display-buttons{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:8px}
.external-display-buttons-compact{grid-template-columns:repeat(3,minmax(0,1fr));max-width:1080px}
.external-display-buttons button{min-height:40px;border:1px solid var(--border-color);border-left:3px solid #4d8fd8;border-radius:3px;background:var(--box-bg);color:var(--text-main);font-size:8.5px;font-weight:850;letter-spacing:.055em;cursor:pointer}
.external-display-buttons button:hover{filter:brightness(1.08)}
.external-display-buttons button.active{border-color:#4d8fd8;background:rgba(77,143,216,.13);box-shadow:inset 0 0 0 1px rgba(77,143,216,.16)}
.external-display-buttons button:disabled{opacity:.5;cursor:wait}
@media(max-width:850px){.external-display-buttons,.external-display-buttons-compact{grid-template-columns:repeat(3,1fr)}}
@media(max-width:520px){.external-display-buttons,.external-display-buttons-compact{grid-template-columns:repeat(2,1fr)}.external-display-head{align-items:flex-start;flex-direction:column}}

.display-calibration-row{display:flex;align-items:end;gap:10px;flex-wrap:wrap;margin-top:12px}
.display-cal-field{display:flex;flex-direction:column;gap:5px;min-width:150px}
.display-cal-field label{color:var(--text-dim);font-size:8px;letter-spacing:.05em;text-transform:uppercase}
.display-cal-field input{height:34px;padding:0 10px;border:1px solid var(--border-color);border-radius:3px;background:var(--input-bg);color:var(--text-main);font-size:10px;font-weight:700}
.display-cal-buttons{display:flex;gap:8px;align-items:end}
.display-cal-buttons .btn-small{min-width:96px;height:34px}
@media(max-width:680px){.display-calibration-row{align-items:stretch}.display-cal-buttons{width:100%}.display-cal-buttons .btn-small{flex:1}}

.audio-meter-settings-grid{grid-template-columns:minmax(280px,1fr) minmax(320px,1fr)}
.audio-meter-admin-live{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:12px 0}
.audio-meter-admin-live>div{display:grid;grid-template-columns:auto 1fr auto;align-items:baseline;gap:8px;padding:10px;border:1px solid var(--border-color);border-radius:5px;background:rgba(127,127,127,.06)}
.audio-meter-admin-live span{font-weight:900}.audio-meter-admin-live strong{font-size:24px;text-align:right;font-variant-numeric:tabular-nums}.audio-meter-admin-live small{color:var(--text-dim);font-size:9px}
.audio-meter-cal-buttons{margin-top:10px}.audio-meter-cal-buttons button,.audio-meter-target-btn{border:0;border-radius:5px;padding:10px 12px;background:#2d6f9f;color:#fff;font-weight:900;cursor:pointer}.audio-meter-cal-buttons button:last-child{background:#5b646a}.audio-meter-target-btn{width:100%;margin-top:9px;background:#3b7250}
.audio-meter-zones{display:grid;gap:7px;margin-top:14px}.audio-meter-zones>div:not(.audio-meter-alerts){display:grid;grid-template-columns:14px 74px 1fr;gap:8px;align-items:center;font-size:10px}.audio-meter-zones i{width:12px;height:12px;border-radius:2px}.zone-green{background:#35a34c}.zone-yellow{background:#e0b92e}.zone-red{background:#d43b3b}.audio-meter-zones span{font-weight:900}.audio-meter-zones b{font-size:9px;color:var(--text-dim)}.audio-meter-alerts{display:flex;gap:8px;flex-wrap:wrap;margin-top:4px}.audio-meter-alerts b{padding:5px 8px;border:1px solid var(--border-color);border-radius:3px;color:var(--text-main)}
@media(max-width:760px){.audio-meter-settings-grid{grid-template-columns:1fr}}

.scope-ref.scope-over{
  color:#ff5a5a!important;
  font-weight:900!important;
  text-shadow:0 0 4px rgba(255,40,40,.45);
}

.scope-ref.scope-green{color:#7dff7d!important}.scope-ref.scope-yellow{color:#ffe94a!important}.scope-ref.scope-red,.scope-ref.scope-over{color:#ff5a5a!important;font-weight:900!important;text-shadow:0 0 4px rgba(255,40,40,.45)}

.spectrum-settings-grid{grid-template-columns:repeat(3,minmax(260px,1fr))}
.nwt-admin-status{display:grid;grid-template-columns:repeat(3,1fr);gap:7px;margin:12px 0}.nwt-admin-status>div{padding:8px;border:1px solid var(--border-color);border-radius:4px;background:rgba(127,127,127,.06);min-width:0}.nwt-admin-status span{display:block;color:var(--text-dim);font-size:8px;text-transform:uppercase;letter-spacing:.05em}.nwt-admin-status strong{display:block;margin-top:4px;font-size:10px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.settings-status.online{background:#2e9d46!important;color:#fff}.settings-status.offline{background:#8b3c3c!important;color:#fff}@media(max-width:1050px){.spectrum-settings-grid{grid-template-columns:1fr 1fr}}@media(max-width:720px){.spectrum-settings-grid{grid-template-columns:1fr}.nwt-admin-status{grid-template-columns:1fr}}

.settings-inline-note{margin:10px 0 0;color:var(--text-dim);font-size:11px;line-height:1.45}

/* v5.4.2 multisite portal redesign */
.multisite-body{
    margin:0!important; min-height:100vh!important; color:#edf4fa!important;
    background:
      radial-gradient(circle at 15% -10%,rgba(32,150,243,.17),transparent 32%),
      radial-gradient(circle at 90% 0%,rgba(41,98,255,.10),transparent 28%),
      linear-gradient(180deg,#071016 0%,#0a1117 55%,#080d12 100%)!important;
    font-family:'Segoe UI',Arial,Helvetica,sans-serif!important;
}
.multisite-body *{box-sizing:border-box}
.multisite-wrap{max-width:1240px;margin:0 auto;padding:42px 34px 72px}
.portal-head{display:flex;align-items:flex-start;justify-content:space-between;gap:28px;margin:0 0 34px;padding:0 0 26px;border-bottom:1px solid rgba(162,185,201,.22)}
.portal-brand{min-width:0}.portal-eyebrow{display:block;color:#6f8595!important;font-size:11px!important;font-weight:800!important;letter-spacing:.22em!important;text-transform:uppercase}
.multisite-body .portal-head h1{margin:7px 0 5px!important;color:#f3f8fb!important;font-size:35px!important;line-height:1.05!important;letter-spacing:-.025em!important;text-transform:none!important;font-weight:750!important}
.portal-brand p{margin:0;color:#8093a1;font-size:13px}.portal-brand p strong{color:#c9d8e2;font-weight:700}
.portal-nav{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}
.multisite-body .portal-nav .btn-top{display:inline-flex;align-items:center;justify-content:center;min-height:36px;padding:0 13px;border:1px solid #334653!important;border-radius:7px!important;background:#111c24!important;color:#cbd8e0!important;font-size:10px!important;letter-spacing:.055em;text-decoration:none;box-shadow:none;transition:.14s ease}
.multisite-body .portal-nav .btn-top:hover{border-color:#4b7693!important;background:#152632!important;color:#fff!important;transform:translateY(-1px)}
.multisite-body .portal-nav .portal-logout{color:#e6b5b5!important;border-color:#55383d!important;background:#1d1418!important}
.portal-intro{display:flex;justify-content:space-between;align-items:flex-end;gap:32px;margin:0 0 18px}
.portal-intro>div>span{display:block;color:#4caaf2;font-size:10px;font-weight:850;letter-spacing:.18em}
.multisite-body .portal-intro h2{margin:5px 0 0!important;color:#eef6fa!important;font-size:19px!important;line-height:1.25!important;font-weight:650!important}
.portal-intro p{margin:0 0 1px;color:#718693;font-size:12px;max-width:390px;text-align:right}
.repeater-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}
.repeater-card{min-width:0;overflow:hidden;border:1px solid #263743;border-radius:12px;background:linear-gradient(180deg,#111b22,#0d151b);box-shadow:0 20px 45px rgba(0,0,0,.30);transition:transform .16s ease,border-color .16s ease,box-shadow .16s ease}
.repeater-card:hover{transform:translateY(-2px);border-color:#3a5668;box-shadow:0 24px 52px rgba(0,0,0,.38)}
.repeater-visual{position:relative;height:180px;overflow:hidden;background:#050708;border-bottom:1px solid #263640}
.repeater-visual img{display:block;width:100%;height:100%;object-fit:cover;filter:saturate(.92) contrast(1.03)}
.repeater-visual .visual-shade{position:absolute;inset:0;background:linear-gradient(180deg,rgba(5,10,14,.04) 25%,rgba(5,10,14,.68) 100%);pointer-events:none}
.location-badge,.role-badge{position:absolute;top:13px;display:inline-flex;align-items:center;min-height:25px;padding:0 9px;border:1px solid rgba(255,255,255,.28);border-radius:999px;background:rgba(4,10,14,.76);backdrop-filter:blur(5px);color:#f3f7fa;font-size:10px;font-weight:850;letter-spacing:.10em}
.location-badge{left:13px}.role-badge{right:13px;color:#aedaFB;border-color:rgba(73,168,238,.48);background:rgba(7,31,48,.82)}
.repeater-content{padding:20px 21px 21px}
.repeater-title-row{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}
.repeater-type{display:block;margin-bottom:2px;color:#607887;font-size:9px;font-weight:850;letter-spacing:.16em}
.multisite-body .repeater-card h3{margin:0!important;color:#f6fafc!important;font-size:34px!important;line-height:1!important;letter-spacing:-.025em!important;font-weight:760!important}
.repeater-status{display:inline-flex;align-items:center;gap:7px;white-space:nowrap;margin-top:4px;padding:6px 9px;border:1px solid #374a55;border-radius:999px;background:#111c22;color:#9babb5;font-size:9px;font-weight:850;letter-spacing:.08em}
.repeater-status i{display:block;width:7px;height:7px;border-radius:50%;background:#778994;box-shadow:0 0 0 3px rgba(119,137,148,.08)}
.repeater-status.available{color:#9be2ad;border-color:#275e39;background:#0e2116}.repeater-status.available i{background:#4bd26e;box-shadow:0 0 0 3px rgba(75,210,110,.12),0 0 9px rgba(75,210,110,.35)}
.repeater-status.unavailable{color:#e5a7a7;border-color:#63373a;background:#231316}.repeater-status.unavailable i{background:#e05757;box-shadow:0 0 0 3px rgba(224,87,87,.11)}
.repeater-content>p{min-height:42px;margin:14px 0 0;color:#8fa2af;font-size:13px;line-height:1.55}
.repeater-actions{display:flex;align-items:center;gap:9px;margin-top:19px;padding-top:17px;border-top:1px solid rgba(130,157,174,.14)}
.repeater-actions a{display:inline-flex;align-items:center;justify-content:center;gap:12px;min-height:41px;padding:0 15px;border-radius:7px;text-decoration:none;font-size:10px;font-weight:850;letter-spacing:.055em;transition:.14s ease}
.repeater-actions .site-primary{flex:1;background:#218fe0;color:#fff;border:1px solid #2b9bea;box-shadow:0 5px 15px rgba(33,143,224,.16)}
.repeater-actions .site-primary:hover{background:#2d9cea;transform:translateY(-1px)}.repeater-actions .site-primary b{font-size:18px;line-height:0;font-weight:400}
.repeater-actions .site-secondary{background:#121d24;color:#c8d5dd;border:1px solid #344854}.repeater-actions .site-secondary:hover{border-color:#557185;color:#fff}
.rdi-offline .repeater-visual img{filter:saturate(.92) contrast(1.03)}
.no-access-card{grid-column:1/-1}.no-access-card .repeater-content{padding:32px}.no-access-card h3{margin-top:5px!important}
.repeater-facts{margin:14px 0 0}.repeater-facts>div{display:flex;justify-content:space-between;gap:20px;padding:8px 0;border-bottom:1px solid rgba(130,157,174,.12)}.repeater-facts dt{color:#748b99;font-size:11px}.repeater-facts dd{margin:0;color:#d7e3ea;font-size:11px;font-weight:750;text-align:right}
.site-detail{border:1px solid #263743;border-radius:12px;background:#101a21;padding:24px;box-shadow:0 20px 45px rgba(0,0,0,.28)}
.detail-status{display:flex;flex-direction:column;gap:6px;padding:17px 18px;border:1px solid #5f3438;border-left:4px solid #dc5757;border-radius:7px;background:#211316}.detail-status.online{border-color:#275c39;border-left-color:#51d375;background:#0d2115}.detail-status b{color:#f1f6f8;font-size:20px}.detail-status span{color:#8fa3af;font-size:12px}.site-detail p{color:#8fa3af;line-height:1.6}
@media(max-width:850px){.repeater-grid{grid-template-columns:1fr}.portal-intro{align-items:flex-start;flex-direction:column;gap:8px}.portal-intro p{text-align:left}.repeater-visual{height:200px}}
@media(max-width:650px){.multisite-wrap{padding:25px 16px 48px}.portal-head{flex-direction:column;gap:18px}.portal-nav{justify-content:flex-start}.multisite-body .portal-head h1{font-size:29px!important}.repeater-visual{height:170px}.repeater-content{padding:17px}.multisite-body .repeater-card h3{font-size:30px!important}.repeater-title-row{gap:10px}.repeater-status{font-size:8px}.repeater-actions{flex-direction:column;align-items:stretch}.repeater-actions .site-primary,.repeater-actions .site-secondary{width:100%}}


/* v5.4.3: login is deliberately dark by default */
.multisite-login-body{margin:0;min-height:100vh;display:flex;align-items:center;justify-content:center;padding:24px;box-sizing:border-box;background:radial-gradient(circle at 50% 18%,#18232b 0,#0d1216 34%,#080b0e 72%,#050607 100%)!important;color:#eef3f6;font-family:Arial,Helvetica,sans-serif}
.multisite-login-card{width:min(390px,100%);box-sizing:border-box;padding:42px 38px 34px;background:#11171b;border:1px solid #303941;box-shadow:0 22px 60px rgba(0,0,0,.5)}
.multisite-login-eyebrow{display:block;color:#8696a1;font-size:11px;font-weight:900;letter-spacing:.2em;margin-bottom:13px}
.multisite-login-card h1{margin:0;color:#2d9df0;font-size:34px;line-height:1;font-weight:900;letter-spacing:.04em}
.multisite-login-card>p{margin:10px 0 28px;color:#9aa8b1;font-size:14px}
.multisite-login-card form{display:grid;gap:16px}
.multisite-login-card label{display:grid;gap:7px;color:#aeb9c0;font-size:10px;font-weight:900;letter-spacing:.14em}
.multisite-login-card input{width:100%;box-sizing:border-box;padding:13px 14px;background:#080b0d!important;border:1px solid #39434a!important;color:#f5f7f8!important;font:700 14px Arial,Helvetica,sans-serif;outline:none}
.multisite-login-card input:focus{border-color:#2d9df0!important;box-shadow:0 0 0 2px rgba(45,157,240,.13)}
.multisite-login-card button{margin-top:5px;padding:14px;border:0;background:#2d9df0;color:white;font-size:13px;font-weight:900;letter-spacing:.1em;cursor:pointer}
.multisite-login-card button:hover{background:#49aaf2}
.multisite-login-public{display:block;margin-top:22px;color:#8696a1;text-align:center;text-decoration:none;font-size:11px;font-weight:900;letter-spacing:.09em}
.multisite-login-public:hover{color:#dce6ec}


/* v5.4.4: central multisite pages are always dark. This selector deliberately
   outranks the legacy body:not(.dark-mode) light-mode rule. */
body.dark-mode.multisite-body,
body.multisite-body.dark-mode{
  --bg-body:#070d12;--bg-card:#0f171d;--bg-header:#0e171d;--text-main:#e9f1f5;--text-dim:#81939f;
  --border-color:#293944;--box-bg:#111b22;
  background:radial-gradient(circle at 15% -10%,rgba(32,150,243,.17),transparent 32%),radial-gradient(circle at 90% 0%,rgba(41,98,255,.10),transparent 28%),linear-gradient(180deg,#071016 0%,#0a1117 55%,#080d12 100%)!important;
  color:#edf4fa!important;
  color-scheme:dark;
}
.central-users-wrap{max-width:1420px}
.central-users-panel{margin-bottom:22px;padding:22px;border:1px solid #263743;border-radius:12px;background:linear-gradient(180deg,#101a21,#0c141a);box-shadow:0 20px 45px rgba(0,0,0,.28)}
.central-section-head{display:flex;justify-content:space-between;align-items:flex-end;gap:28px;margin-bottom:17px}
.central-section-head span{display:block;color:#4caaf2;font-size:9px;font-weight:850;letter-spacing:.18em}
.central-section-head h2{margin:5px 0 0;color:#f0f6fa;font-size:20px;font-weight:750}
.central-section-head p{margin:0;max-width:480px;color:#728795;font-size:11px;text-align:right}
.central-users-table-wrap{overflow:auto;border:1px solid #22323c;border-radius:9px}
.central-users-table{width:100%;min-width:1040px;border-collapse:collapse;background:#0d161c}
.central-users-table th{padding:11px 13px;background:#111d24;border-bottom:1px solid #2b3c47;color:#718896;font-size:9px;letter-spacing:.12em;text-align:left;text-transform:uppercase}
.central-users-table td{padding:12px 13px;border-bottom:1px solid #1f2e37;color:#dbe5ea;font-size:12px;vertical-align:middle}
.central-users-table tbody tr:last-child td{border-bottom:0}
.central-users-table tbody tr:hover{background:rgba(44,119,166,.055)}
.central-users-table td>strong{display:block;color:#f0f6f9;font-size:13px}.central-users-table td>small{display:block;margin-top:4px;color:#5f91af;font-size:8px;font-weight:800;letter-spacing:.1em}
.central-role{display:inline-flex;padding:5px 8px;border:1px solid #344650;border-radius:999px;background:#121e25;color:#9cafba;font-size:9px;font-weight:850;letter-spacing:.08em}.central-role.admin{border-color:#335f7b;background:#102536;color:#8dcef5}
.location-access-form{display:grid;grid-template-columns:minmax(130px,1fr) minmax(130px,1fr) auto;gap:8px;align-items:center}
.central-select,.new-user-grid input,.new-user-grid select,.password-modal-card input{min-height:38px;padding:0 11px;border:1px solid #344650;border-radius:6px;background:#091116!important;color:#eaf1f5!important;font:700 11px 'Segoe UI',Arial,sans-serif;outline:none}
.central-select:focus,.new-user-grid input:focus,.new-user-grid select:focus,.password-modal-card input:focus{border-color:#2d9df0;box-shadow:0 0 0 2px rgba(45,157,240,.12)}
.central-btn{display:inline-flex;align-items:center;justify-content:center;min-height:38px;padding:0 11px;border:1px solid #344650;border-radius:6px;background:#121d24;color:#c9d6de;font:850 9px 'Segoe UI',Arial,sans-serif;letter-spacing:.06em;cursor:pointer;text-decoration:none;white-space:nowrap}
.central-btn:hover{border-color:#527184;color:#fff}.central-save{background:#14242e}.central-primary{border-color:#2797e8;background:#218fe0;color:#fff}.central-primary:hover{background:#2d9cea}.central-danger{border-color:#5d3538;background:#211417;color:#e1aaaa}.central-danger:hover{border-color:#a2474e;background:#32181c;color:#fff}
.account-actions{display:flex;gap:7px;align-items:center}.account-actions form{margin:0}
.new-user-grid{display:grid;grid-template-columns:repeat(3,minmax(180px,1fr));gap:12px}.new-user-grid label,.password-modal-card label{display:grid;gap:7px;color:#79909e;font-size:9px;font-weight:850;letter-spacing:.11em}.new-user-grid .central-primary{align-self:end}
.password-modal{position:fixed;inset:0;z-index:9999;display:none;align-items:center;justify-content:center;padding:20px}.password-modal.open{display:flex}.password-modal-backdrop{position:absolute;inset:0;background:rgba(0,0,0,.74);backdrop-filter:blur(3px)}
.password-modal-card{position:relative;z-index:1;width:min(430px,100%);padding:28px;border:1px solid #344752;border-radius:11px;background:#0f181e;box-shadow:0 28px 70px rgba(0,0,0,.65)}
.password-modal-card h2{margin:7px 0 8px;color:#f3f8fb;font-size:24px}.password-modal-card>p{margin:0 0 21px;color:#8599a6;font-size:12px}.password-modal-card>p strong{color:#dce7ed}.password-modal-card form{display:grid;gap:13px}.password-modal-x{position:absolute;right:12px;top:9px;border:0;background:transparent;color:#738894;font-size:26px;cursor:pointer}.password-modal-x:hover{color:#fff}.password-modal-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:6px}
@media(max-width:920px){.central-section-head{align-items:flex-start;flex-direction:column;gap:7px}.central-section-head p{text-align:left}.new-user-grid{grid-template-columns:1fr 1fr}}
@media(max-width:600px){.new-user-grid{grid-template-columns:1fr}.password-modal-actions{flex-direction:column}.password-modal-actions .central-btn{width:100%}}


/* v5.4.7: multisite polish */
.portal-intro-compact{margin-bottom:16px!important}
.portal-intro-compact p{display:none!important}
.portal-page .repeater-grid{align-items:stretch}
.repeater-card{display:flex;flex-direction:column;height:100%}
.repeater-content{display:flex;flex-direction:column;min-height:226px}
.repeater-content>p{min-height:26px;margin:12px 0 0;color:#91a4b0;font-size:13px;line-height:1.45;font-weight:600}
.repeater-facts{margin:14px 0 0;min-height:102px}
.repeater-actions{margin-top:auto;display:flex;align-items:stretch;gap:10px}
.repeater-actions a{min-height:44px;padding:0 18px;border-radius:8px;font-size:10px;font-weight:900;letter-spacing:.08em;text-transform:uppercase}
.repeater-actions .site-primary{flex:1 1 auto}
.repeater-actions .site-secondary{flex:0 0 124px}
.multisite-body .portal-nav .btn-top{min-width:128px;padding:0 16px;font-weight:900;text-transform:uppercase}
.multisite-body .portal-nav .portal-logout{min-width:110px}
.location-badge,.role-badge{min-width:88px;justify-content:center;text-align:center}
.role-badge{min-width:74px}
.repeater-title-row{min-height:52px;align-items:flex-start}
.repeater-status{min-height:31px;padding:6px 10px}
.site-detail{max-width:920px}
.site-detail .btn-top{display:inline-flex;align-items:center;justify-content:center;min-height:36px;padding:0 14px;border-radius:7px;text-decoration:none}
@media(max-width:650px){.multisite-body .portal-nav .btn-top{min-width:0;width:auto}.repeater-content{min-height:0}.repeater-actions .site-secondary{flex:1 1 auto}}


/* v5.4.8 exact multisite card symmetry */
.repeater-grid>.repeater-card{height:100%}
.repeater-visual{height:184px}
.repeater-visual img{object-position:center center}
.repeater-content{padding:20px 22px 22px;min-height:236px}
.repeater-title-row{height:58px;min-height:58px;align-items:flex-start}
.multisite-body .repeater-card h3{font-size:34px!important}
.repeater-content>p{height:28px;min-height:28px;margin:10px 0 0}
.repeater-actions{height:62px;min-height:62px;padding-top:17px;margin-top:auto}
.repeater-actions a{height:44px;min-height:44px}
.location-badge{left:14px;top:13px;min-width:106px;height:27px}
.role-badge{right:14px;top:13px;min-width:82px;height:27px}
.repeater-status{height:31px;min-width:92px;justify-content:center;margin-top:3px}
.status-grid .repeater-card .repeater-content{min-height:264px}
@media(max-width:650px){.repeater-visual{height:174px}.repeater-content{min-height:0}.repeater-title-row{height:auto;min-height:52px}.repeater-actions{height:auto;min-height:0}}


/* v5.4.9: public pages default hard-dark */
body.dark-mode.force-dark-public{color-scheme:dark!important}
body.dark-mode.force-dark-public.public-black-body,
body.dark-mode.force-dark-public.public-black-body *{color-scheme:dark!important}
body.dark-mode.force-dark-public.public-black-body{
  --bg-body:#171a1d!important;
  --bg-card:#202429!important;
  --bg-header:#1c2024!important;
  --text-main:#f3f5f6!important;
  --text-dim:#a1a8ad!important;
  --border-color:#3a4147!important;
  --box-bg:#252a2f!important;
  background:#171a1d!important;
  color:#f3f5f6!important;
}
body.dark-mode.force-dark-public.multisite-body{
  --bg-body:#070d12!important;
  --bg-card:#0f171d!important;
  --bg-header:#0e171d!important;
  --text-main:#e9f1f5!important;
  --text-dim:#81939f!important;
  --border-color:#293944!important;
  --box-bg:#111b22!important;
  background:radial-gradient(circle at 15% -10%,rgba(32,150,243,.17),transparent 32%),radial-gradient(circle at 90% 0%,rgba(41,98,255,.10),transparent 28%),linear-gradient(180deg,#071016 0%,#0a1117 55%,#080d12 100%)!important;
  color:#edf4fa!important;
}


/* v5.4.12 public TEF signal meter */
.public-black-page .tef-meter{height:10px!important;background:#30383d!important;border:1px solid #414a50!important;overflow:hidden!important}
.public-black-page .tef-meter-fill{height:100%!important;min-width:0;background:#36ad55!important;transition:width .22s linear!important}
.public-black-page .tef-meter-fill[data-level="medium"]{background:#36ad55!important}
.public-black-page .tef-meter-fill[data-level="strong"]{background:#36ad55!important}


/* v5.4.13: public page full light mode, dark remains default */
body.public-black-body.light-mode{
  --bg-body:#e9edf0!important;
  --bg-card:#ffffff!important;
  --bg-header:#ffffff!important;
  --text-main:#20262a!important;
  --text-dim:#5f6970!important;
  --border-color:#cbd2d7!important;
  --box-bg:#f7f9fa!important;
  background:#e9edf0!important;
  color:#20262a!important;
  color-scheme:light!important;
}
body.public-black-body.light-mode .public-black-page .module-box{
  background:#ffffff!important;
  border-color:#cbd2d7!important;
  color:#20262a!important;
}
body.public-black-body.light-mode .public-black-page .small-box,
body.public-black-body.light-mode .public-black-page .rx-tile,
body.public-black-body.light-mode .public-black-page .tef-card{
  background:#f7f9fa!important;
  border-color:#cbd2d7!important;
  color:#20262a!important;
}
body.public-black-body.light-mode .public-black-header{border-bottom-color:#cbd2d7!important}
body.public-black-body.light-mode .public-black-header h1,
body.public-black-body.light-mode .public-black-page .box-txt,
body.public-black-body.light-mode .public-black-page .rx-name,
body.public-black-body.light-mode .public-black-page .tef-title,
body.public-black-body.light-mode .public-black-page .module-box h3{color:#20262a!important}
body.public-black-body.light-mode .public-black-page .box-nr,
body.public-black-body.light-mode .public-black-page .tef-port,
body.public-black-body.light-mode .public-black-page .pub-rds-meta,
body.public-black-body.light-mode .public-black-page .live-audio-sub{color:#68737a!important}
body.public-black-body.light-mode .public-header-actions .btn-top,
body.public-black-body.light-mode .public-login-btn{
  background:#f3f5f6!important;
  border-color:#bdc6cc!important;
  color:#273036!important;
}
body.public-black-body.light-mode .public-header-actions .btn-top:hover,
body.public-black-body.light-mode .public-login-btn:hover{
  background:#e7ebee!important;
  border-color:#9faab1!important;
  color:#20262a!important;
}
body.public-black-body.light-mode .public-black-page .tef-meter{background:#e1e5e8!important;border-color:#c2cbd1!important}
body.public-black-body.light-mode .public-black-page .tef-meter-fill,
body.public-black-body.light-mode .public-black-page .tef-meter-fill[data-level="medium"],
body.public-black-body.light-mode .public-black-page .tef-meter-fill[data-level="strong"]{background:#36ad55!important}


/* v5.4.15 unified PIP/FULL source selector */
.source-switch-panel{padding:20px!important}
.source-switch-titlebar{display:flex;align-items:flex-end;justify-content:space-between;margin-bottom:14px}
.source-switch-titlebar h3{margin:0;color:var(--text-main);font-size:14px;letter-spacing:.03em;text-transform:uppercase}
.source-switch-titlebar span{display:block;margin-top:4px;color:var(--text-dim);font-size:9px;font-weight:700;letter-spacing:.05em}
.source-matrix-grid{grid-template-rows:repeat(4,132px)!important;gap:12px}
.source-card{cursor:default!important;justify-content:space-between!important;padding:10px!important;align-items:stretch!important;text-align:left!important;overflow:hidden}
.source-card:hover{background:var(--box-bg)!important;border-color:var(--border-color)!important}
.source-card-head{display:flex;align-items:flex-start;justify-content:space-between;gap:8px;min-height:30px}
.source-card .box-nr{font-size:15px;line-height:1;color:var(--text-dim)}
.source-card .box-txt{font-size:11px;line-height:1.15;text-align:right;color:var(--text-main)}
.source-card-tools{display:flex;align-items:center;gap:5px;min-height:25px}
.source-tool-btn{min-height:23px!important;padding:0 8px!important;font-size:8px!important;border-radius:5px!important}
.source-route-actions{display:grid;grid-template-columns:1fr 1fr;gap:6px;margin-top:auto}
.source-route-btn{min-height:31px;border:1px solid var(--border-color);border-radius:5px;background:var(--bg-card);color:var(--text-main);font-size:9px;font-weight:900;letter-spacing:.08em;cursor:pointer;transition:.12s ease}
.source-route-btn:hover{border-color:#4d8fd8;background:rgba(77,143,216,.08)}
.source-route-btn:disabled{opacity:.5;cursor:wait}
.source-pip-btn.active{border-color:#2d9df0!important;background:#183b56!important;color:#9fd5ff!important;box-shadow:inset 0 0 0 1px rgba(45,157,240,.25)}
.source-full-btn.active{border-color:#4cc97a!important;background:#153523!important;color:#9bedb7!important;box-shadow:inset 0 0 0 1px rgba(76,201,122,.22)}
.source-card.pip-selected{border-color:rgba(45,157,240,.58)!important}
.source-card.full-selected{box-shadow:inset 0 0 0 1px rgba(76,201,122,.28)}
.output-status-box{padding:18px!important}
.output-status-grid{width:100%;display:grid;gap:14px}
.output-status-line{display:grid;gap:5px;text-align:center}
.output-status-line+ .output-status-line{padding-top:14px;border-top:1px solid #1f3440}
.output-status-line span{color:#6f818c;font-size:9px;font-weight:900;letter-spacing:.08em;text-transform:uppercase}
.output-status-line strong{font-size:18px;line-height:1.15;font-weight:900;letter-spacing:.02em}
.output-status-line.pip-line strong{color:#3fa9f5;text-shadow:0 0 10px rgba(45,157,240,.25)}
.output-status-line.full-line strong{color:#69dc91;text-shadow:0 0 10px rgba(76,201,122,.18)}
.source-extra-wrap{margin-top:16px;padding-top:16px;border-top:1px solid var(--border-color)}
.source-extra-title{margin-bottom:9px;color:var(--text-dim);font-size:9px;font-weight:900;letter-spacing:.1em}
.source-extra-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.source-extra-card{display:flex;flex-direction:column;gap:11px;min-width:0;padding:12px;border:1px solid var(--border-color);border-radius:7px;background:var(--box-bg);transition:.12s ease}
.source-extra-card.pip-selected{border-color:rgba(45,157,240,.62)}
.source-extra-card.full-selected{box-shadow:inset 0 0 0 1px rgba(76,201,122,.28)}
.source-extra-head{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;min-height:28px}
.source-extra-head span{color:#71818b;font-size:8px;font-weight:900;letter-spacing:.08em}
.source-extra-head strong{color:var(--text-main);font-size:10px;font-weight:900;text-align:right;letter-spacing:.03em}
.monitor-source-card{border-left:3px solid #4d8fd8}
.system-locked .source-route-btn,.system-locked .source-tool-btn{pointer-events:none;opacity:.45}
@media(max-width:900px){.source-matrix-grid{grid-template-rows:repeat(4,140px)!important}.source-extra-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:620px){.source-matrix-grid{grid-template-columns:repeat(2,1fr)!important;grid-template-rows:none!important}.source-matrix-grid .main-box{grid-column:1/-1!important;grid-row:auto!important;min-height:180px}.source-extra-grid{grid-template-columns:1fr}.source-card{min-height:126px}.source-switch-titlebar{align-items:flex-start;flex-direction:column;gap:6px}}

/* v5.4.17 compact source selector */
.source-switch-titlebar{align-items:center!important;margin-bottom:14px!important}
.source-extra-wrap{margin-top:14px!important;padding-top:14px!important}


/* v5.4.18 source extra regrouping */
.source-extra-wrap{display:grid;gap:12px}
.source-subsection-title{color:var(--text-dim);font-size:9px;font-weight:900;letter-spacing:.12em;text-transform:uppercase}
.source-subsection-monitor{margin-top:2px}
.source-extra-grid-basic{grid-template-columns:repeat(2,minmax(0,1fr))}
.source-extra-grid-monitor{grid-template-columns:repeat(3,minmax(0,1fr))}
.source-extra-grid-basic .source-extra-card,.source-extra-grid-monitor .source-extra-card{min-height:96px}
.source-extra-grid-basic .source-extra-head strong,.source-extra-grid-monitor .source-extra-head strong{font-size:11px}
@media(max-width:900px){.source-extra-grid-basic,.source-extra-grid-monitor{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:620px){.source-extra-wrap{gap:10px}.source-extra-grid-basic,.source-extra-grid-monitor{grid-template-columns:1fr}}


/* v5.4.19 admin-lock role awareness */
.source-switch-panel.system-locked{border-color:#5a363a!important}
.source-switch-panel.system-locked .source-card,.source-switch-panel.system-locked .source-extra-card{opacity:.78}
.source-switch-panel.system-locked .output-status-box{opacity:1}


/* v5.4.20 global operator lock */
body.operator-locked #colorbarBtn,
body.operator-locked #defaultPipBtn,
body.operator-locked .source-route-btn,
body.operator-locked .source-tool-btn,
body.operator-locked .rx-power-btn,
body.operator-locked .tef-audio-btn{opacity:.46!important;cursor:not-allowed!important;filter:saturate(.55)}
body.operator-locked .rx-tile,
body.operator-locked .tef-card{border-color:rgba(117,76,80,.38)}


/* v5.4.21 logo/source-selection tidy */
.monitor-source-card .source-extra-head{align-items:center;min-height:22px}
.monitor-source-card .source-extra-head strong{text-align:left;font-size:11px;letter-spacing:.04em}
.source-switch-titlebar h3{letter-spacing:.02em}

/* v5.4.42 - Zandar beheer volgorde */
.admin-section-order-note{margin:0 0 18px;padding:12px 16px;border:1px solid rgba(128,128,128,.24);border-radius:10px;background:rgba(128,128,128,.06)}
.admin-section-order-note p{margin:4px 0 0;opacity:.78;font-size:.92rem}

/* Passive receiver measurements alongside the existing mute control. */
.rx-readings{margin:8px 0;font-size:11px;font-variant-numeric:tabular-nums}
.rx-readings>div:not(.rx-read-track){display:flex;justify-content:space-between;gap:5px;margin:3px 0}
.rx-readings meter{width:100%;height:10px;accent-color:#249853}
.rx-read-track{position:relative;height:10px;background:#204db0;border-radius:2px;overflow:hidden}
.rx-read-track:before{content:'';position:absolute;left:50%;width:1px;height:100%;background:#fff}
.rx-read-track i{position:absolute;top:1px;bottom:1px;width:3px;transform:translateX(-50%);background:#ffda55}
.rx-read-track.centered{background:#218648}.rx-read-track.unknown{background:#65717c}


/* v5.4.51 unified ATV receiver cards and green RF signal meters. */
.receiver-signal-meter{position:relative;display:block;width:100%;height:8px;overflow:hidden;border-radius:2px;background:rgba(53,163,76,.22)}
.receiver-signal-level{position:absolute;inset:0;display:block;background:#35a34c;transition:clip-path .2s linear}
.receiver-signal-meter.unknown .receiver-signal-level{clip-path:inset(0 100% 0 0)!important}
.rx-user-tune{margin-top:9px;padding-top:8px;border-top:1px solid var(--border-color)}
.rx-user-tune>label{display:block;margin-bottom:4px;color:var(--text-dim);font-size:8px;font-weight:900;letter-spacing:.06em;text-transform:uppercase}
.rx-user-tune>div{display:grid;grid-template-columns:1fr 58px;gap:6px}
.rx-user-frequency{min-width:0;height:31px;padding:5px 7px!important;border:1px solid var(--border-color)!important;border-radius:5px!important;background:var(--bg-body)!important;color:var(--text-main)!important;font-size:12px!important;font-weight:850!important}
.rx-tune-btn{min-height:31px;border:0;border-radius:5px;background:#1565c0;color:#fff;font-size:9px;font-weight:900;cursor:pointer}
.rx-user-tune small{display:block;min-height:12px;margin-top:3px;color:var(--text-dim);font-size:8px}
.rx-tile{box-shadow:0 2px 10px rgba(0,0,0,.12)}
.rx-line1{align-items:flex-start}.rx-name{font-size:14px!important}.rx-nr{font-family:monospace}
.public-rx-readings{margin-top:10px;padding-top:7px;border-top:1px solid var(--border-color)}
body.operator-locked .rx-tune-btn,body.operator-locked .rx-user-frequency{opacity:.46!important;cursor:not-allowed!important;filter:saturate(.55)}
