:root{--bg:#07111d;--panel:#101d2b;--panel2:#152638;--line:#294057;--text:#f4f7fb;--muted:#98aabd;--accent:#df1f2d;--green:#23c26b;--amber:#ffb020}*{box-sizing:border-box}html,body{margin:0;min-height:100%;background:radial-gradient(circle at top,#17304a 0,#07111d 52%,#03080d 100%);color:var(--text);font-family:Arial,Helvetica,sans-serif}body{padding:env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left)}.app-shell{width:min(1500px,100%);margin:auto;padding:16px}.brand-header{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:14px 18px;margin-bottom:12px;background:rgba(8,18,29,.9);border:1px solid var(--line);border-radius:16px}.brand-block{display:flex;align-items:center;gap:14px}.brand-logo{width:86px;max-height:58px;object-fit:contain}.brand-header h1{font-size:clamp(18px,2vw,28px);margin:0;font-weight:900;letter-spacing:.06em}.brand-header p{margin:2px 0 0;color:var(--muted)}.header-state{display:flex;align-items:center;gap:9px;color:var(--muted);font-size:14px}.state-dot,.status-led{width:11px;height:11px;border-radius:50%;background:#687786;box-shadow:0 0 0 3px rgba(104,119,134,.14)}.status-led.ok,.state-dot.ok{background:var(--green);box-shadow:0 0 12px rgba(35,194,107,.8)}.status-led.warn,.state-dot.warn{background:var(--amber)}.status-led.live,.state-dot.live{background:var(--accent);box-shadow:0 0 12px rgba(223,31,45,.85)}.status-strip{display:grid;grid-template-columns:repeat(5,1fr);gap:8px;margin-bottom:12px}.status-item{display:flex;align-items:center;gap:10px;padding:10px 12px;background:rgba(16,29,43,.92);border:1px solid var(--line);border-radius:12px}.status-item strong,.status-item small{display:block}.status-item strong{font-size:13px}.status-item small{color:var(--muted);font-size:11px}.studio-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.panel{background:linear-gradient(180deg,rgba(20,37,54,.98),rgba(10,22,34,.98));border:1px solid var(--line);border-radius:16px;padding:14px;box-shadow:0 18px 50px rgba(0,0,0,.25)}.panel-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:10px}.eyebrow{display:block;color:#70a7d8;font-size:10px;font-weight:800;letter-spacing:.18em}.panel h2{font-size:clamp(16px,1.7vw,22px);margin:2px 0 0;font-weight:850}.video-stage{position:relative;width:100%;aspect-ratio:16/9;background:#000;border-radius:12px;overflow:hidden;border:1px solid #314b63}.video-stage video{width:100%;height:100%;object-fit:contain;background:#000}.video-placeholder{position:absolute;inset:0;display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center;background:#020507;color:var(--muted);padding:20px}.video-placeholder img{width:min(180px,45%);margin-bottom:12px}.hidden{display:none!important}.floating-controls{position:absolute;right:10px;bottom:10px;display:flex;gap:7px}.floating-controls button{width:42px;height:42px;border:1px solid rgba(255,255,255,.22);background:rgba(0,0,0,.68);color:white;border-radius:9px;font-size:20px}.live-badge,.warn-badge{padding:6px 10px;border-radius:999px;font-size:11px;font-weight:900;letter-spacing:.08em}.live-badge{background:var(--accent);color:white}.warn-badge{background:var(--amber);color:#111}.return-controls-row{display:flex;gap:10px;margin-top:12px;align-items:end}.field{min-width:0}.grow{flex:1}.field label{font-size:12px;font-weight:800;color:#c9d8e6;margin-bottom:5px}.form-control{background:#07131f!important;color:#fff!important;border:1px solid #39536b!important;border-radius:9px!important}.form-control:focus{box-shadow:0 0 0 3px rgba(65,145,210,.22)!important}.inline-input{display:flex;gap:7px}.mini-btn,.action-btn{border:1px solid #41617d;background:#172b3d;color:white;border-radius:9px;padding:10px 13px;font-weight:700}.help-text,.ndi-note{color:var(--muted);font-size:12px;margin:9px 0 0}.return-diagnostic{display:none}.control-panel{margin-top:12px}.format-pill{padding:7px 10px;border-radius:999px;background:#08131e;border:1px solid #37516a;color:#abc1d5;font-size:11px;font-weight:800}.controls-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.field-wide{grid-column:span 1}.action-row{display:grid;grid-template-columns:repeat(4,minmax(0,1fr)) minmax(220px,1.4fr);gap:9px;margin-top:14px}.action-btn{min-height:52px}.publish-btn{border:0;background:linear-gradient(180deg,#f12c3b,#b60d1c);color:#fff;border-radius:10px;font-size:16px;font-weight:900;letter-spacing:.04em;min-height:52px;box-shadow:0 8px 24px rgba(223,31,45,.3)}.publish-btn:disabled{opacity:.55}.technical-hidden{position:absolute!important;width:1px!important;height:1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important}.alert.invisible{display:none}.alert{margin-bottom:12px}.ndi-note{text-align:center}.preview-note{display:none}@media(max-width:1000px){.status-strip{grid-template-columns:repeat(3,1fr)}.studio-grid{grid-template-columns:1fr}.action-row{grid-template-columns:repeat(2,1fr)}.publish-btn{grid-column:1/-1}}@media(max-width:620px){.app-shell{padding:8px}.brand-header{padding:10px}.brand-logo{width:64px}.header-state{display:none}.status-strip{grid-template-columns:repeat(2,1fr)}.status-item:last-child{grid-column:1/-1}.panel{padding:10px;border-radius:12px}.return-controls-row{flex-direction:column;align-items:stretch}.controls-grid{grid-template-columns:1fr}.action-row{grid-template-columns:1fr 1fr}.action-btn{font-size:12px;padding:8px}.format-pill{display:none}}@media(max-width:410px){.action-row{grid-template-columns:1fr}.publish-btn{grid-column:auto}.brand-header h1{font-size:16px}}

/* Diseño tipo vMix Call: retorno grande y cámara propia pequeña */
.studio-grid{grid-template-columns:minmax(0,2.25fr) minmax(260px,.75fr);align-items:start}
.reporter-panel .video-stage{aspect-ratio:16/9;max-height:330px}
.return-panel .video-stage{aspect-ratio:16/9}
@media(max-width:900px){.studio-grid{grid-template-columns:1fr}.return-panel{order:1}.reporter-panel{order:2}.reporter-panel .video-stage{max-height:260px}}


/* Medidores de audio VU — añadidos sin alterar el flujo WebRTC */
.audio-meter-card{margin-top:10px;padding:10px 12px;background:#07131f;border:1px solid #314b63;border-radius:11px}
.audio-meter-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:7px}
.audio-meter-head strong{display:block;font-size:11px;letter-spacing:.08em;color:#dce9f5}
.audio-meter-head small{display:block;margin-top:2px;color:var(--muted);font-size:10px}
.audio-db{font-family:Consolas,monospace;font-size:12px;font-weight:800;color:#cfe0ef;white-space:nowrap}
.audio-meter-track{position:relative;height:28px;overflow:hidden;border-radius:7px;background:repeating-linear-gradient(90deg,#101e2b 0,#101e2b calc(5% - 2px),#07111b calc(5% - 2px),#07111b 5%);border:1px solid #294057}
.audio-meter-fill{position:absolute;inset:0 auto 0 0;width:0%;border-radius:6px;background:linear-gradient(90deg,#19c36a 0%,#49d75f 58%,#ffd43b 78%,#ff9f1c 90%,#ef3340 100%);box-shadow:0 0 12px rgba(35,194,107,.32);transition:width 70ms linear}
.audio-meter-scale{position:absolute;inset:0 6px;display:flex;align-items:flex-end;justify-content:space-between;padding-bottom:2px;pointer-events:none;color:rgba(255,255,255,.78);font:9px/1 Consolas,monospace;text-shadow:0 1px 2px #000}
.audio-meter-card.signal-hot .audio-db{color:#ffb020}.audio-meter-card.signal-clip .audio-db{color:#ff5964}
@media(max-width:620px){.audio-meter-card{padding:8px 9px}.audio-meter-track{height:25px}.audio-meter-head strong{font-size:10px}}
