*{box-sizing:border-box}body{margin:0;font-family:Arial,Helvetica,sans-serif;background:#111318;color:#f4f4f4}a{color:#f2c94c;text-decoration:none}button,input,select{font:inherit}button{border:0;border-radius:10px;padding:10px 14px;background:#f2c94c;color:#111318;font-weight:700;cursor:pointer}button:hover{filter:brightness(1.08)}button.danger{background:#ff4d4d;color:#fff}button.selected{box-shadow:0 0 0 3px rgba(242,201,76,.35);background:#fff1a8}input,select{width:100%;margin:6px 0 14px 0;padding:10px;border-radius:10px;border:1px solid #333946;background:#191d25;color:#fff}label{display:block;color:#cdd3df;font-size:14px}.muted{color:#9ca7b8}.tiny-note{font-size:12px;color:#9ca7b8}.login-shell{min-height:100vh;display:grid;place-items:center;padding:24px}.login-card{width:100%;max-width:420px;background:#191d25;border:1px solid #2c3240;border-radius:24px;padding:32px;box-shadow:0 20px 80px rgba(0,0,0,.35)}.brand-mark{width:72px;height:72px;display:grid;place-items:center;border-radius:22px;background:#f2c94c;color:#111318;font-weight:900;margin-bottom:20px}.error-box{background:#3a1717;border:1px solid #7a2c2c;color:#ffd5d5;border-radius:12px;padding:10px 12px;margin-bottom:16px}.topbar{min-height:64px;padding:0 24px;display:flex;gap:16px;align-items:center;justify-content:space-between;background:#191d25;border-bottom:1px solid #2c3240}.topbar nav{display:flex;flex-wrap:wrap;gap:16px}.studio-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;padding:18px}.panel{background:#191d25;border:1px solid #2c3240;border-radius:18px;padding:18px;min-width:0}.wide-panel{grid-column:1/-1}.video-card{--stream-aspect-ratio:16/9;position:relative;width:100%;aspect-ratio:var(--stream-aspect-ratio);border-radius:16px;overflow:hidden;background:#050607;border:1px solid #303746;display:flex;align-items:center;justify-content:center}.video-mount{width:100%;height:100%;display:grid;place-items:center}video{display:block;width:100%;height:100%;background:#050607;border-radius:16px;object-fit:contain}.video-label{position:absolute;left:12px;bottom:12px;padding:6px 10px;border-radius:999px;background:rgba(0,0,0,.65);z-index:2}.button-row{display:flex;flex-wrap:wrap;gap:10px;margin:14px 0}.status-line{color:#9ca7b8;font-size:14px}.stream-picker{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-bottom:18px}.stream-choice{text-align:left}.monitor-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.monitor-tile{position:relative;aspect-ratio:16/9;border-radius:14px;overflow:hidden;background:#050607;border:1px solid #303746}.monitor-tile span{position:absolute;left:10px;bottom:10px;padding:5px 8px;border-radius:999px;background:rgba(0,0,0,.65);font-size:12px}.obs-body{background:#000;overflow:hidden;width:100vw;height:100vh}.obs-canvas{position:relative;width:100vw;height:100vh;overflow:hidden;background:radial-gradient(circle at top left,rgba(242,201,76,.22),transparent 28%),linear-gradient(135deg,#10131a 0%,#050608 100%)}.obs-brand{position:absolute;left:2.75%;top:3.25%;z-index:5;pointer-events:none}.show-title{font-size:clamp(34px,3.55vw,68px);font-weight:900;letter-spacing:-.08em;line-height:.95}.show-subtitle{margin-top:.35em;font-size:clamp(14px,1.25vw,24px);color:#cdd3df}.obs-layout{position:absolute;left:2.75%;top:15.75%;right:2.75%;bottom:4.65%;display:grid;gap:1.45vw}.obs-layout.one-up{grid-template-columns:1fr}.obs-layout.two-up{grid-template-columns:repeat(2,minmax(0,1fr))}.obs-layout.grid-up{grid-template-columns:repeat(2,minmax(0,1fr))}.obs-layout.focus-rail{grid-template-columns:minmax(0,1fr) minmax(230px,22%);grid-template-rows:repeat(4,minmax(0,1fr))}.stream-tile{position:relative;min-width:0;min-height:0;display:grid;place-items:center;overflow:hidden;border-radius:clamp(18px,2vw,38px);background:linear-gradient(145deg,rgba(37,43,53,.92),rgba(12,14,18,.92));border:clamp(1px,.16vw,3px) solid rgba(255,255,255,.08);box-shadow:0 2.2vh 8.3vh rgba(0,0,0,.35)}.stream-tile.focused{grid-column:1;grid-row:1/-1}.stream-tile.rail{grid-column:2;grid-row:auto;border-radius:clamp(14px,1.2vw,24px)}.stream-tile.active{border-color:#f2c94c;box-shadow:0 0 0 clamp(3px,.42vw,8px) rgba(242,201,76,.18),0 2.2vh 8.3vh rgba(0,0,0,.45)}.stream-tile video{width:100%;height:100%;object-fit:contain}.stream-placeholder{display:grid;place-items:center;text-align:center;color:#cdd3df;font-size:clamp(18px,1.8vw,34px);font-weight:800;padding:24px}.stream-label{position:absolute;left:18px;bottom:18px;z-index:3;padding:7px 12px;border-radius:999px;background:rgba(0,0,0,.68);color:#fff;font-size:clamp(12px,1vw,18px)}.output-status{position:absolute;right:22px;bottom:16px;color:#9ca7b8;font-size:13px;z-index:6}.cut-overlay{position:absolute;inset:0;display:none;place-items:center;background:#050506;z-index:20}.cut-overlay.visible{display:grid}.cut-overlay div{display:grid;gap:16px;text-align:center}.cut-overlay strong{font-size:clamp(46px,5vw,96px);color:#ff4d4d}.cut-overlay span{font-size:clamp(18px,1.67vw,32px);color:#cdd3df}@media(max-width:1200px){.studio-grid{grid-template-columns:1fr}.monitor-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:800px){.stream-picker{grid-template-columns:1fr}.monitor-grid{grid-template-columns:1fr}}
.app-version{position:fixed;left:10px;bottom:8px;z-index:1000;padding:4px 7px;border-radius:6px;background:rgba(0,0,0,.62);color:#9ca7b8;font-size:11px;line-height:1;letter-spacing:.04em;pointer-events:none;user-select:none}.access-denied-page{min-height:100vh;display:grid;place-items:center;padding:24px;background:#111318}.access-denied-card{max-width:520px;padding:32px;border:1px solid #2c3240;border-radius:20px;background:#191d25;text-align:center}.access-denied-card h1{margin-top:0}.access-denied-card p{margin-bottom:0;color:#9ca7b8}
.button-link{display:inline-flex;align-items:center;justify-content:center;border-radius:10px;padding:10px 14px;background:#f2c94c;color:#111318;font-weight:700}.warning-box,.success-box{border-radius:12px;padding:12px 14px;margin:16px 0}.warning-box{background:#392f13;border:1px solid #8a7020;color:#ffe8a3}.success-box{background:#123522;border:1px solid #28704a;color:#c9ffe0}.quicklinks-shell{max-width:1180px}.quicklinks-grid,.approval-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.quicklink-card h2,.approval-card h2{margin-top:0}.quicklink-value{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace}.health-list{display:grid;gap:10px}.health-row{display:grid;gap:4px;padding:14px;border-radius:12px;background:#191d25;border:1px solid #2c3240}.health-row span{color:#9ca7b8;overflow-wrap:anywhere}.health-ok strong{color:#62dc91}.health-fail{border-color:#8b3535}.health-fail strong{color:#ff7b7b}.approval-card img{width:100%;aspect-ratio:16/9;object-fit:contain;border-radius:12px;background:#050607;border:1px solid #303746}@media(max-width:900px){.quicklinks-grid,.approval-grid{grid-template-columns:1fr}.topbar{height:auto;align-items:flex-start;padding:16px}.topbar nav{justify-content:flex-end}}
.source-control,.mocap-panel{margin-top:14px;padding-top:14px;border-top:1px solid #333946}.mocap-panel h3{margin:0 0 8px}.mocap-panel form{display:flex;flex-wrap:wrap;align-items:center;gap:10px}.mocap-panel form input{width:min(100%,440px);margin:6px 0}.mocap-canvas{display:block;width:100%;height:100%;object-fit:contain;background:#080a0f}.broadcast-control{display:grid;gap:14px}.broadcast-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}.broadcast-heading h2{margin:0 0 4px}.broadcast-heading p{margin:0}.broadcast-badge{display:inline-flex;align-items:center;justify-content:center;min-width:94px;padding:8px 12px;border-radius:999px;font-size:13px;font-weight:900;letter-spacing:.06em}.broadcast-badge.offline{background:#343944;color:#d7dbe3}.broadcast-badge.live{background:#d92727;color:#fff;box-shadow:0 0 0 4px rgba(217,39,39,.16)}.platform-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px}.platform-choice{display:flex;align-items:center;gap:8px;padding:11px;border:1px solid #3a4251;border-radius:12px;background:#222733;color:#fff;font-weight:700;cursor:pointer}.platform-choice input,.inline-check input{width:auto;margin:0}.platform-choice.not-configured,.platform-choice.is-loading{opacity:.42;filter:grayscale(1);cursor:not-allowed}.broadcast-toggle{min-height:58px;font-size:20px;letter-spacing:.05em;background:#39ca78}.broadcast-toggle.danger{background:#e33434}.broadcast-toggle:disabled,button:disabled{cursor:not-allowed;opacity:.48}.streaming-settings{border:1px solid #333946;border-radius:14px;padding:12px}.streaming-settings summary{cursor:pointer;font-weight:800;color:#f2c94c}.destination-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:14px 0}.destination-card{min-width:0;border:1px solid #333946;border-radius:12px;padding:12px}.destination-card legend{padding:0 6px;font-weight:800}.inline-check{display:flex;align-items:center;gap:8px}.section-divider{height:1px;margin:22px 0;background:#333946}.public-live-body .cut-overlay strong{color:#f2c94c}.docs-shell{max-width:1100px;margin:0 auto;padding:28px}.audio-enable{display:none;position:absolute;right:22px;top:22px;z-index:30}.audio-enable.visible{display:block}@media(max-width:1000px){.platform-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:700px){.destination-grid,.platform-grid{grid-template-columns:1fr}.broadcast-heading{align-items:center}}
.broadcast-diagnostics{border:1px solid #3a4251;border-radius:14px;padding:12px;background:#10141b}.broadcast-diagnostics summary{cursor:pointer;font-weight:800;color:#8ed0ff}.broadcast-diagnostics-actions{display:flex;flex-wrap:wrap;gap:8px;margin:12px 0 8px}.broadcast-diagnostics-actions button{width:auto;padding:7px 11px}.broadcast-diagnostics-log{box-sizing:border-box;width:100%;min-height:150px;max-height:320px;overflow:auto;margin:0;padding:12px;border:1px solid #2d3745;border-radius:10px;background:#05080c;color:#b9e7c7;font:12px/1.5 ui-monospace,SFMono-Regular,Consolas,monospace;white-space:pre-wrap;overflow-wrap:anywhere}.broadcast-diagnostics.has-error{border-color:#d94747}.broadcast-diagnostics.has-error summary{color:#ff8c8c}
