.camcorder-page { width:min(1420px,94%); min-height:calc(100vh - 170px); margin:0 auto; padding:22px 0 70px; color:#22342f; }
.camcorder-page .broadcast-heading { align-items:center; margin-bottom:18px; }
.camcorder-page .broadcast-heading h1 { font-size:28px; }
.camcorder-status { display:flex; align-items:center; gap:8px; color:#75827b; font:600 10px 'Fira Code','Consolas',monospace; }
.camcorder-status i { width:8px; height:8px; border-radius:50%; background:#aab5ae; }
.camcorder-status.is-ready { color:#28735d; }
.camcorder-status.is-ready i { background:#4f9a70; }
.camcorder-status.is-recording { color:#b44643; }
.camcorder-status.is-recording i { background:#d34b47; animation:camcorderPulse 1.1s ease-in-out infinite; }
.camcorder-layout { display:grid; grid-template-columns:minmax(0,1.75fr) minmax(280px,.65fr); align-items:stretch; gap:16px; height:clamp(600px,calc(100vh - 245px),860px); }
.camcorder-stage,.camcorder-console { min-width:0; min-height:0; border:1px solid #e1e9e4; background:#fff; }
.camcorder-stage { position:relative; display:grid; overflow:hidden; place-items:center; background:#111916; }
.camcorder-stage video { display:none; width:100%; height:100%; object-fit:contain; }
.camcorder-stage.is-active video { display:block; }
.camcorder-no-signal { display:grid; position:absolute; inset:0; align-content:center; justify-items:center; gap:14px; color:#aab6ad; font:600 10px 'Fira Code','Consolas',monospace; }
.camcorder-stage.is-active .camcorder-no-signal { display:none; }
.camcorder-no-signal svg { width:46px; height:46px; fill:none; stroke:#789080; stroke-linecap:round; stroke-linejoin:round; stroke-width:1.4; }
.camcorder-stage-meta { position:absolute; right:0; bottom:0; left:0; display:flex; justify-content:space-between; padding:10px 14px; color:#e3ebe5; background:linear-gradient(transparent,rgba(10,18,13,.8)); font:10px 'Fira Code','Consolas',monospace; }
.camcorder-console { display:flex; flex-direction:column; padding:22px; }
.camcorder-console-heading { padding-bottom:18px; border-bottom:1px solid #e4ebe6; }
.camcorder-console-heading .broadcast-kicker { margin-bottom:5px; }
.camcorder-console-heading h2 { font-size:18px; font-weight:650; }
.camcorder-select-label { margin:20px 0 7px; color:#596b60; font-size:11px; font-weight:600; }
.camcorder-console select { width:100%; min-height:40px; padding:0 10px; border:1px solid #dbe5de; color:#33483b; background:#fff; font:inherit; font-size:12px; }
.camcorder-control-group { display:grid; grid-template-columns:1fr 1fr; gap:8px; margin-top:10px; }
.camcorder-control-group button { min-height:40px; padding:0 10px; border:1px solid #d9e4dc; color:#43594b; background:#fff; cursor:pointer; font-size:11px; font-weight:600; }
.camcorder-control-group button:hover:not(:disabled) { border-color:#91b39d; background:#f0f6f1; }
.camcorder-control-group button:disabled { color:#a4afa8; background:#f6f8f6; cursor:not-allowed; }
.camcorder-control-group .camcorder-primary { border-color:#28735d; color:#fff; background:#28735d; }
.camcorder-control-group .camcorder-primary:hover:not(:disabled) { background:#1f624e; }
.camcorder-record-status { display:flex; justify-content:space-between; margin-top:26px; padding:12px 0; border-top:1px solid #e4ebe6; border-bottom:1px solid #e4ebe6; color:#738077; font-size:11px; }
.camcorder-record-status strong { color:#40564a; font:600 10px 'Fira Code','Consolas',monospace; }
.camcorder-record-controls { margin-top:12px; }
.camcorder-download { display:block; margin-top:12px; padding:11px 12px; color:#216149; background:#eff6f1; font-size:11px; font-weight:650; text-align:center; }
.camcorder-notice { margin-top:auto; padding-top:18px; color:#7b8980; font-size:11px; line-height:1.6; }
.camcorder-notice.is-error { color:#a44845; }
@keyframes camcorderPulse { 50% { opacity:.4; } }
@media (max-width:760px) {
  .camcorder-page { width:92%; padding:20px 0 46px; }
  .camcorder-layout { height:auto; grid-template-columns:1fr; }
  .camcorder-stage { min-height:0; aspect-ratio:16/9; }
  .camcorder-console { min-height:400px; padding:18px; }
}