:root{color-scheme:dark;font-family:Inter,Segoe UI,Arial,sans-serif;color:#e8edf1;background:#0b1014;--line:#263039;--muted:#8f9ba7;--accent:#b8f36d}*{box-sizing:border-box}body{margin:0}button,input,select{font:inherit}button,a,input,select{-webkit-tap-highlight-color:transparent}button{border:1px solid #35414a;background:#202a32;color:#e8edf1;border-radius:9px;padding:12px 17px;cursor:pointer;transition:background .15s,transform .1s}button:hover{background:#303e48}button:active{transform:scale(.97)}button:disabled{opacity:.35;cursor:default}button:focus-visible,input:focus-visible,select:focus-visible,a:focus-visible{outline:2px solid var(--accent);outline-offset:4px}.primary{background:var(--accent);border-color:var(--accent);color:#142008;font-weight:650}.primary:hover{background:#cdfb94}.subtle{background:transparent}.brand{color:#f4f8fa;text-decoration:none;letter-spacing:2px;font-weight:700;font-size:14px;display:flex;align-items:center;gap:12px}.brand-icon{color:var(--accent);font-size:30px}header{height:87px;border-bottom:1px solid var(--line);padding:0 4vw;display:flex;justify-content:space-between;align-items:center}.header-right{display:flex;align-items:center;gap:20px;font-size:13px}.badge{color:var(--muted);font-size:11px;letter-spacing:1.5px}main{max-width:1550px;margin:0 auto;padding:50px 4vw 70px}h1{font-size:clamp(32px,4vw,48px);font-weight:550;letter-spacing:-1.8px;margin:14px 0}h2{font-weight:550;font-size:21px;margin:10px 0 15px;overflow-wrap:anywhere}.eyebrow,.section-label{font-size:11px;letter-spacing:1.8px;font-weight:650;color:var(--muted)}.eyebrow{color:var(--accent)}p{line-height:1.6}.muted{color:var(--muted);font-size:14px}.auth-card{max-width:460px;margin:5vh auto 7vh;border:1px solid var(--line);background:#11191f;padding:38px;border-radius:18px}.auth-card h1{margin-top:23px}.auth-card form{display:grid;gap:22px;margin-top:28px}label{display:grid;gap:9px;font-size:13px;color:#bcc7cf}input:not([type=range]),select{width:100%;background:#0b1218;border:1px solid #34414c;border-radius:8px;color:#e8edf1;padding:13px}input[type=range]{accent-color:var(--accent);min-width:0;flex:1}#auth-submit{margin-top:5px}.error{color:#ffaaa3;font-size:14px}.room-heading{display:flex;align-items:center;justify-content:space-between;gap:25px;margin-bottom:40px}.control-status{display:flex;align-items:center;gap:14px;flex-wrap:wrap}#lease-status{font-size:13px;color:var(--muted)}.workspace{display:grid;grid-template-columns:minmax(0,1fr) 310px;gap:30px}.section-label{display:flex;justify-content:space-between;margin-bottom:18px}.camera-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:16px}.camera-card{padding:0;text-align:left;overflow:hidden;border:1px solid var(--line);background:#121b22;border-radius:12px}.camera-card.selected{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent)}.frame{position:relative;aspect-ratio:16/9;background:#05090c;display:flex;align-items:center;justify-content:center}.frame img{width:100%;height:100%;object-fit:contain;position:absolute;inset:0}.frame .frame-status{color:var(--muted);font-size:12px;padding:25px;text-align:center}.camera-info{padding:17px 16px;display:flex;align-items:center;gap:12px}.camera-number{font-family:monospace;color:var(--accent);font-size:20px}.camera-name{font-size:13px;overflow-wrap:anywhere;line-height:1.5}.preview-note{margin-top:20px;display:flex;align-items:center;gap:9px;color:var(--muted);font-size:12px;line-height:1.7}.pulse{height:6px;width:6px;border-radius:50%;background:var(--accent);flex-shrink:0}.controls{border:1px solid var(--line);border-radius:13px;background:#11191f;padding:25px}.controls h2{font-size:16px;line-height:1.5}.controls p{font-size:12px}fieldset{border:0;margin:0;padding:0;min-width:0}.direction-pad{display:grid;grid-template:repeat(3,52px)/repeat(3,52px);gap:8px;justify-content:center;margin:26px 0}.direction-pad button{font-size:24px;padding:0;touch-action:none;user-select:none}.up{grid-area:1/2}.left{grid-area:2/1}.stop{grid-area:2/2;color:var(--accent)}.right{grid-area:2/3}.down{grid-area:3/2}.speed{margin:20px 0}.speed>span{display:flex;gap:10px;align-items:center}.speed output{width:35px;text-align:right;color:var(--accent);font-size:12px}.zoom{display:grid;grid-template-columns:1fr 1fr;gap:8px}.zoom button{font-size:12px;padding:12px 5px;touch-action:none;user-select:none}.presets-label{margin:26px 0 12px}.presets{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.control-note{border-top:1px solid var(--line);margin-top:25px;padding-top:18px}.owner-panel{border-top:1px solid var(--line);margin-top:50px;padding-top:30px;display:grid;grid-template-columns:1fr 1fr;gap:25px}.owner-panel h2{margin-bottom:6px}.invite-controls{display:flex;gap:12px;align-items:end;justify-content:end}.invite-controls label{min-width:170px}#invite-result,#users{grid-column:1/-1}#invite-result input{font-family:monospace;font-size:12px}.user-row{border-top:1px solid var(--line);display:flex;gap:20px;align-items:center;padding:14px 0;font-size:13px}.user-row span:first-child{flex:1}.user-row .muted{font-size:12px}.user-row button{padding:7px 12px;font-size:12px}#notice:not(:empty){padding:12px 18px;background:#2b2414;border:1px solid #5a4927;border-radius:8px;margin-bottom:20px;color:#f6d99a;font-size:13px}.empty{padding:40px;border:1px dashed var(--line);border-radius:12px;color:var(--muted)}footer{border-top:1px solid var(--line);padding:25px 4vw;color:#77838d;display:flex;justify-content:space-between;font-size:10px;letter-spacing:1.5px}footer span{letter-spacing:0;font-size:12px}.sr-only{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip:rect(0,0,0,0)}[hidden]{display:none!important}@media(min-width:1200px){.camera-grid:has(.camera-card:only-child){grid-template-columns:1fr}.camera-card:only-child .frame{min-height:320px}}@media(max-width:900px){.workspace{grid-template-columns:1fr}.controls{max-width:none}.direction-pad{margin-top:15px}.room-heading{align-items:start;flex-direction:column}.owner-panel{grid-template-columns:1fr}.invite-controls{justify-content:start}.header-right{gap:10px}.badge{display:none}}@media(max-width:500px){header{height:70px}.brand{font-size:11px;letter-spacing:1px}main{padding-top:25px}.auth-card{padding:27px 23px}.camera-grid{grid-template-columns:1fr}.room-heading{margin-bottom:25px}.invite-controls{flex-direction:column;align-items:stretch}.control-status{gap:10px}footer span{display:none}}
:root{--programme-border:#293842}.program-monitor{position:relative;aspect-ratio:16/9;background:#030608;border:1px solid var(--programme-border);border-radius:12px;overflow:hidden}.program-monitor img{display:block;width:100%;height:100%;object-fit:contain}.program-monitor #program-message{position:absolute;inset:0;background:#05090c;display:flex;align-items:center;justify-content:center;color:var(--muted);font-size:14px}.program-caption{font-size:12px;margin:10px 0 28px}
:root{--camera-card-width:280px}.camera-grid:has(.camera-card:only-child){grid-template-columns:minmax(0,var(--camera-card-width))}.camera-card:only-child .frame{min-height:0}@media(max-width:500px){.camera-grid:has(.camera-card:only-child){grid-template-columns:1fr}}
.axis-locks{display:flex;gap:10px;flex-wrap:wrap;margin-top:20px}.axis-locks label{display:flex;align-items:center;gap:8px;border:1px solid var(--line);border-radius:8px;padding:10px;font-size:12px;cursor:pointer}.axis-locks input[type=checkbox]{width:16px;height:16px;margin:0;padding:0;accent-color:var(--accent)}.axis-locks label:has(input:checked){border-color:var(--accent);color:var(--accent)}
.presets button{font-size:12px;min-height:56px;padding:10px 5px;overflow-wrap:anywhere;touch-action:none;user-select:none}.preset-editor{display:grid;gap:12px;margin-top:20px;padding-top:18px;border-top:1px solid var(--line)}.preset-editor p{margin:0}.preset-editor button{font-size:12px}
