.recorder{min-height:calc(100vh - 117px);display:grid;grid-template-columns:minmax(0,1fr) 330px}
.rec-main{min-width:0;padding:14px;display:grid;grid-template-rows:minmax(0,1fr) auto auto;gap:12px}
.rec-monitor{position:relative;min-height:460px;display:grid;place-items:center;background:radial-gradient(circle at 50% 25%,#212424,#0a0b0b 68%);border:1px solid var(--line);overflow:hidden}
.rec-monitor video{width:100%;height:100%;max-height:calc(100vh - 260px);display:block;object-fit:contain;background:#050606}
.rec-placeholder{padding:0 24px;text-align:center;color:var(--muted);font:500 10px/1.7 var(--mono);letter-spacing:.09em;text-transform:uppercase}
.rec-badge{position:absolute;top:12px;left:12px;display:flex;align-items:center;gap:8px;padding:8px 11px;background:rgba(8,9,9,.82);border:1px solid var(--line);color:var(--muted);font:600 9px var(--mono);letter-spacing:.12em;text-transform:uppercase}
.rec-badge:before{content:"";width:8px;height:8px;border-radius:50%;background:#63655f}
.rec-badge.live{background:var(--red);border-color:var(--red);color:var(--paper)}
.rec-badge.live:before{background:var(--paper);animation:pulse 1.3s ease-in-out infinite}
.rec-badge.paused{color:var(--paper);border-color:rgba(244,246,244,.42)}
.rec-badge.paused:before{background:#30B2B9}
.rec-clock{position:absolute;top:12px;right:12px;padding:8px 11px;background:rgba(8,9,9,.82);border:1px solid var(--line);font:600 13px var(--mono);letter-spacing:.06em}
.rec-dock{display:flex;align-items:center;gap:14px;padding:10px;border:1px solid var(--line);background:var(--panel);flex-wrap:wrap}
.rec-dock-group{display:flex;align-items:center;gap:8px}
.rec-dock .primary,.rec-dock .danger{min-height:42px}
.rec-meter{position:relative;flex:1;min-width:120px;height:10px;background:#090a0a;border:1px solid var(--line);overflow:hidden}
.rec-meter span{display:block;width:0;height:100%;background:linear-gradient(90deg,#30B2B9,#0C8CE7 74%,var(--red));transition:width .07s linear}
.rec-meter span.hot{background:var(--red)}
.rec-size{color:var(--muted);font:600 10px var(--mono);letter-spacing:.08em;text-transform:uppercase}
.rec-side{border-left:1px solid var(--line);background:var(--panel);overflow:auto}
.rec-sources{display:grid;gap:8px}
.rec-source{min-height:52px;display:grid;grid-template-columns:1fr;align-content:center;gap:3px;padding:8px 12px;border:1px solid var(--line);background:var(--panel-2);color:var(--paper);text-align:left}
.rec-source:hover{border-color:rgba(244,246,244,.45)}
.rec-source.active{background:var(--red);border-color:var(--red)}
.rec-source b{font:600 10px var(--mono);letter-spacing:.09em;text-transform:uppercase}
.rec-source span{color:var(--muted);font-size:11px;line-height:1.4}
.rec-source.active span{color:rgba(244,246,244,.82)}
.rec-take{display:none;padding:13px;border:1px solid var(--line);background:#090a0a}
.rec-take.show{display:block}
.rec-take-name{font:600 10px var(--mono);letter-spacing:.06em;word-break:break-all}
.rec-take-meta{margin-top:6px;color:var(--muted);font:500 9px var(--mono);letter-spacing:.08em;text-transform:uppercase}
.rec-take-actions{display:flex;gap:8px;margin-top:12px}
.rec-take-actions .primary,.rec-take-actions .secondary{flex:1;display:grid;place-items:center;text-decoration:none}
@media(max-width:980px){.recorder{grid-template-columns:1fr}.rec-side{border-left:0;border-top:1px solid var(--line)}.rec-monitor{min-height:52vh}.rec-monitor video{max-height:60vh}}
@media(max-width:700px){.rec-main{padding:8px}.rec-dock{align-items:stretch;flex-direction:column}.rec-dock-group{display:grid;grid-template-columns:1fr 1fr 1fr}.rec-meter{width:100%}}
/* Composited room tiles must stay rendered to keep feeding the canvas, so they are moved out of
   view rather than hidden with display:none. */
.rec-offstage{position:fixed;left:-12000px;top:0;width:640px;height:360px;opacity:.01;pointer-events:none;z-index:-1}
.rec-offstage video{width:320px;height:180px}
.locked .link{margin-left:4px;padding:0;border:0;background:none;color:var(--paper);text-decoration:underline}
