.dev-preview-button{display:flex;align-items:center;gap:var(--space-1);min-height:44px;padding:var(--space-2) var(--space-3);border:1px solid var(--color-line);border-radius:8px;background:var(--color-field);color:var(--text-primary);font:700 14px/1.2 var(--font-ui);cursor:pointer}
.dev-preview-button small{font:600 10px/1 var(--font-money);color:var(--text-muted)}
.dev-preview-button:hover{background:var(--color-panel-2)}
.dev-preview-button:disabled{opacity:.45;cursor:wait}
.camera-height-panel{position:absolute;z-index:35;top:calc(64px + env(safe-area-inset-top,0px));right:max(12px,env(safe-area-inset-right));width:min(280px,calc(100% - 24px));padding:var(--space-3);border:1px solid var(--color-line);border-radius:12px;background:var(--color-panel);color:var(--text-primary);box-shadow:var(--shadow-2);cursor:default;pointer-events:auto}
.camera-height-panel[hidden]{display:none}
.camera-height-heading,.camera-height-footer{display:flex;align-items:center;justify-content:space-between;gap:var(--space-2)}
.camera-height-heading label{font:700 14px/1.4 var(--font-ui)}
.camera-height-heading output{margin-left:var(--space-2);font:700 18px/1.2 var(--font-money);font-variant-numeric:tabular-nums}
.camera-height-panel button{min-width:44px;min-height:44px;padding:var(--space-2);border:1px solid var(--color-line);border-radius:8px;background:var(--color-field);color:var(--text-primary);font:600 12px/1.2 var(--font-ui);cursor:pointer}
.camera-height-heading button{font-size:20px}
.camera-height-panel input{display:block;width:100%;height:44px;margin:0;accent-color:var(--color-green);cursor:ew-resize;touch-action:pan-x}
.camera-height-footer span{font:500 11px/1.4 var(--font-ui);color:var(--text-muted)}
.dev-preview-dialog{width:100%;max-width:none;height:100%;height:100dvh;max-height:none;margin:0;padding:0;border:0;background:var(--color-bg);color:var(--text-primary);overflow:hidden;cursor:default}
.dev-preview-dialog[open]{display:flex;flex-direction:column}
.dev-preview-dialog::backdrop{background:var(--color-bg)}
.dev-preview-heading{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);flex:none;padding:calc(var(--space-2) + env(safe-area-inset-top,0px)) max(var(--space-4),env(safe-area-inset-right,0px)) var(--space-2) max(var(--space-4),env(safe-area-inset-left,0px));border-bottom:1px solid var(--color-line-soft);background:var(--color-panel)}
.dev-preview-heading h2{margin:0;font:700 16px/1.3 var(--font-ui)}
.dev-preview-heading p{margin:var(--space-1) 0 0;color:var(--text-muted);font:500 12px/1.4 var(--font-ui)}
.dev-preview-heading button{flex:none;min-width:64px;min-height:44px;border:1px solid var(--color-line);border-radius:8px;padding:var(--space-2) var(--space-3);background:var(--color-field);color:var(--text-primary);font:700 14px/1.2 var(--font-ui);cursor:pointer}
.dev-preview-dialog[data-focused="true"] .dev-preview-heading{position:absolute;z-index:30;right:8px;top:8px;padding:0;border:0;background:transparent}
.dev-preview-dialog[data-focused="true"] .dev-preview-heading>div{display:none}
.dev-preview-dialog[data-focused="true"] .dev-preview-heading button{min-width:44px;width:44px;padding:0;font-size:0}
.dev-preview-dialog[data-focused="true"] .dev-preview-heading button::after{content:'×';font-size:24px}
.dev-preview-frame-host{position:relative;flex:1;min-height:0}
.dev-preview-frame-host iframe{position:absolute;inset:0;width:100%;height:100%;border:0;display:block;background:var(--color-bg)}
#devPreviewStatus{position:absolute;z-index:1;inset:40% var(--space-4) auto;margin:0;text-align:center;pointer-events:none;color:var(--text-primary);font:600 14px/1.5 var(--font-ui)}
@media(max-width:600px){.dev-preview-button{position:absolute;right:0;top:52px;width:94px;justify-content:center}.game-tools.is-open .dev-preview-button{visibility:hidden}.dev-preview-heading{padding-left:var(--space-3);padding-right:var(--space-3)}.dev-preview-heading p{font-size:11px}}
