.cap-sg{display:flex;flex-direction:column;align-items:flex-start;gap:12px;height:100%;overflow:auto;padding:4px 0}
.cap-sg-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;width:100%;position:sticky;top:0;z-index:2;background:var(--paper);padding:3px 0}
.cap-sg-console-open{position:fixed;inset:0;z-index:10000;height:100dvh;width:100vw;box-sizing:border-box;background:var(--paper);padding:16px max(16px,env(safe-area-inset-right)) 24px max(16px,env(safe-area-inset-left));overflow:auto;align-items:stretch}
.cap-sg-console-open .cap-sg-preview{max-height:none}
.cap-sg-console-open .cap-sg-controls{display:grid;grid-template-columns:180px minmax(0,1fr);gap:12px 20px;align-items:center}
.cap-sg-console-open .cap-sg-camera-state,.cap-sg-console-open .cap-sg-policy{grid-column:1/-1}
.cap-sg-console-open .cap-sg-camera-actions{align-content:start}
@media(max-width:650px){.cap-sg-console-open .cap-sg-controls{grid-template-columns:1fr}}
.cap-sg-status,.cap-sg-hint,.cap-sg-camera-state{margin:0;color:var(--ink-2);font-size:max(var(--touch-text-floor,0rem),.8125rem);line-height:1.5}
.cap-sg-actions,.cap-sg-camera-actions{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.cap-sg-controls{display:flex;flex-direction:column;align-items:flex-start;gap:12px;width:100%}
.cap-sg [hidden]{display:none!important}
.cap-sg button{padding:9px 16px;border:var(--rule) solid var(--hairline);border-radius:var(--r-pill);background:var(--ink);color:var(--paper);font:inherit;font-size:max(var(--touch-text-floor,0rem),.8125rem);cursor:pointer}
.cap-sg button:hover{opacity:.88}
.cap-sg button:disabled{opacity:.45;cursor:not-allowed}
.cap-sg select{max-width:100%;padding:8px;border:var(--rule) solid var(--hairline);border-radius:var(--r-pill);background:var(--paper);color:var(--ink);font:inherit}
.cap-sg-policy{font-size:max(var(--touch-text-floor,0rem),.8125rem);color:var(--ink-2)}
.cap-sg-preview{position:relative;flex:none;width:100%;min-height:0;max-height:none;background:#101014;border:var(--rule) solid var(--hairline);border-radius:12px;overflow:hidden;display:flex;align-items:center;justify-content:center}
.cap-sg-preview-portrait{width:min(100%,300px)}
.cap-sg-preview canvas{display:block;width:100%;height:100%;object-fit:contain;cursor:crosshair}
.cap-sg-preview span{position:absolute;left:10px;right:10px;bottom:10px;padding:5px 8px;border-radius:6px;background:#000a;color:#fff;font-size:max(var(--touch-text-floor,0rem),.75rem);line-height:1.4}
.cap-sg-joystick{position:relative;width:160px;height:160px;flex:none;border-radius:50%;border:2px solid var(--hairline);background:radial-gradient(circle at center,var(--paper) 0 32%,var(--ink-2) 33%,var(--paper) 34%);box-shadow:inset 0 2px 10px #0002;touch-action:none;user-select:none;cursor:grab}
.cap-sg-joystick:active{cursor:grabbing}
.cap-sg-joystick:focus-visible{outline:3px solid var(--ink)}
.cap-sg-joystick-knob{position:absolute;left:50%;top:50%;width:56px;height:56px;margin:-28px 0 0 -28px;border-radius:50%;background:var(--ink);box-shadow:0 2px 8px #0006;pointer-events:none}
.cap-sg-preview video{position:absolute;left:50%;top:50%;display:block;max-width:none;transform-origin:center;cursor:crosshair;background:#000}
.cap-sg-paired{display:flex;flex-direction:column;gap:6px;width:100%}
.cap-sg-paired-row{display:flex;align-items:center;justify-content:space-between;gap:12px;font-size:max(var(--touch-text-floor,0rem),.8125rem);color:var(--ink)}
