.dj-cam-v2 { min-height: 100vh; background: #0b1017; }
.dj-cam-v2 .dj-cam-grid { display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(300px, .8fr); gap: 16px; max-width: 1080px; }
.dj-cam-v2 .dj-cam-preview { display: grid; place-items: center; align-content: center; gap: 7px; min-height: 220px; border: 1px solid #386273; border-radius: 7px; background: radial-gradient(circle at 50% 42%, #204454 0, #12222d 32%, #0d141c 72%); color: #edf4f8; text-align: center; }
.dj-cam-v2 .dj-cam-preview-mark { color: #59d8e8; font-size: 11px; font-weight: 700; letter-spacing: .15em; }
.dj-cam-v2 .dj-cam-preview strong { color: #f2c94c; font-size: 20px; }
.dj-cam-v2 .dj-cam-preview small { color: #8fa3b2; }
.dj-cam-v2 .dj-cam-preview { position: relative; overflow: hidden; }
.dj-cam-v2 .dj-cam-preview video { display: none; width: 100%; height: 100%; min-height: 220px; object-fit: cover; background: #0d141c; }
.dj-cam-v2 .dj-cam-preview video.is-live { display: block; }
.dj-cam-v2 .dj-cam-preview-placeholder { display: grid; place-items: center; align-content: center; gap: 7px; position: absolute; inset: 0; }
.dj-cam-v2 .dj-cam-preview video.is-live + .dj-cam-preview-placeholder { display: none; }
.dj-cam-v2 .dj-cam-controls { display: flex; flex-wrap: wrap; align-items: center; gap: 9px; margin-top: 16px; }
.dj-cam-v2 .dj-cam-controls form { margin: 0; }
.dj-cam-v2 .dj-cam-live-status, .dj-cam-v2 .dj-cam-context-note { color: #8fa3b2; font-size: 12px; }
.dj-cam-v2 .dj-cam-live-status strong { color: #f2c94c; }
.dj-cam-v2 .dj-cam-error { margin-top: 12px; padding: 10px 12px; border: 1px solid #704346; border-radius: 5px; background: #351e22; color: #ffc4c4; }
.dj-cam-v2 .dj-cam-message { max-width: 1080px; padding: 13px 15px; border: 1px solid #376c51; border-radius: 6px; background: #183226; color: #9ee4b7; }
.dj-cam-v2 .v2-field select { width: 100%; padding: 10px; border: 1px solid #263546; border-radius: 5px; background: #0d141c; color: #edf4f8; font: inherit; }
@media (max-width: 760px) { .dj-cam-v2 .dj-cam-grid { grid-template-columns: 1fr; } }
.dj-cam-v2 .dj-cam-stage-toolbar { display: flex; flex-wrap: wrap; align-items: center; gap: 12px; margin-bottom: 14px; color: #8fa3b2; }
.dj-cam-v2 .dj-cam-stage-toolbar strong { color: #62d394; }
.dj-cam-v2 .dj-cam-stage { position: relative; min-height: 620px; overflow: hidden; border: 1px solid #2a3a4b; border-radius: 8px; background: linear-gradient(135deg, #111b25 0%, #0b1017 100%); }
.dj-cam-v2 .dj-cam-stage::before { position: absolute; inset: 0; background-image: linear-gradient(rgba(89,216,232,.045) 1px, transparent 1px), linear-gradient(90deg, rgba(89,216,232,.045) 1px, transparent 1px); background-size: 32px 32px; content: ""; pointer-events: none; }
.dj-cam-v2 .dj-cam-widget { position: absolute; top: var(--widget-y); left: var(--widget-x); min-width: 240px; min-height: 135px; border: 1px solid #386273; border-radius: 7px; background: #121a24; box-shadow: 0 16px 34px rgba(0,0,0,.28); }
.dj-cam-v2 .dj-cam-widget[data-visible="0"] { display: none; }
.dj-cam-v2 .dj-cam-widget-handle { padding: 7px 10px; border-bottom: 1px solid #263546; color: #59d8e8; cursor: move; font-size: 11px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; user-select: none; }
.dj-cam-v2 .dj-cam-widget .dj-cam-preview { min-height: 0; height: calc(100% - 78px); border: 0; border-radius: 0; }
.dj-cam-v2 .dj-cam-widget .dj-cam-preview video { min-height: 0; }
.dj-cam-v2 .dj-cam-widget-controls { display: flex; flex-wrap: wrap; align-items: center; gap: 7px; min-height: 50px; padding: 7px 9px; border-top: 1px solid #263546; color: #8fa3b2; font-size: 11px; }
.dj-cam-v2 .dj-cam-widget-controls .v2-button { min-height: 28px; padding: 5px 8px; font-size: 11px; }
.dj-cam-v2 .dj-cam-resize-handle { position: absolute; right: 3px; bottom: 3px; width: 15px; height: 15px; border-right: 2px solid #59d8e8; border-bottom: 2px solid #59d8e8; cursor: nwse-resize; }
.dj-cam-v2 .dj-cam-context-note { margin-top: 10px; }
@media (max-width: 760px) { .dj-cam-v2 .dj-cam-stage { min-height: 480px; } .dj-cam-v2 .dj-cam-widget { max-width: calc(100% - 24px); } }
