.topbar{position:sticky;top:0;z-index:50;display:flex;gap:8px;align-items:center;padding:8px 12px;background:rgba(255,255,255,.92);backdrop-filter:blur(6px);border-bottom:1px solid #e5e5e5}
.topbar .hint{font-size:12px;color:#666}
button{cursor:pointer;padding:8px 12px;border:1px solid #cfcfcf;background:#f7f7f7;border-radius:6px;font-size:14px}
button:hover{background:#eee}
button:active{transform:translateY(1px)}
.frame-wrapper{width:100%;background:#fff;position:relative;aspect-ratio:592/507}
.frame-wrapper iframe{width:100%;height:100%;border:0;display:block;background:#fff}
.frame-wrapper.is-pseudo-fullscreen{position:fixed;inset:0;width:100vw;height:100vh;z-index:9999;background:#fff}
body.no-scroll{overflow:hidden;touch-action:none}
.overlay-controls{display:none;position:absolute;top:10px;right:10px;gap:8px;z-index:10000}
.frame-wrapper.is-pseudo-fullscreen .overlay-controls{display:flex}
.overlay-controls button{background:rgba(0,0,0,.65);color:#fff;border:1px solid rgba(255,255,255,.25)}
.overlay-controls button:hover{background:rgba(0,0,0,.85)}
.toast{position:fixed;left:50%;bottom:16px;transform:translateX(-50%);padding:10px 12px;border-radius:8px;background:rgba(0,0,0,.75);color:#fff;font-size:13px;z-index:20000;display:none;max-width:min(92vw, 560px);line-height:1.4}
.toast.show{display:block}
