/* AXDIA V8 — hardening without extra chrome */
.v8-app .topbar,.v8-app .canvas-toolbar{contain:layout paint}
.v8-modal-open{overflow:hidden}
.v8-modal-open .v6-assistant,.v8-modal-open .v4-guide{visibility:hidden!important;pointer-events:none!important}
.v8-app button:disabled{opacity:.55;cursor:wait}
.v8-app .modal-backdrop{padding:max(10px,env(safe-area-inset-top)) max(10px,env(safe-area-inset-right)) max(10px,env(safe-area-inset-bottom)) max(10px,env(safe-area-inset-left))}
.v8-app .modal{max-width:min(880px,calc(100vw - 20px));max-height:min(90vh,calc(100dvh - 20px));overscroll-behavior:contain}
.v8-app .modal-head,.v8-app .modal-foot{position:sticky;background:#1b1815;z-index:2}.v8-app .modal-head{top:0}.v8-app .modal-foot{bottom:0}
.v8-app .modal-body{overflow-wrap:anywhere}
.v8-app .topbar button,.v8-app .canvas-toolbar button{white-space:nowrap}
.v8-app .side-tabs button{min-width:0}
@media(max-width:760px){.v8-app .modal-backdrop{padding:6px}.v8-app .modal{border-radius:14px;max-width:calc(100vw - 12px);max-height:calc(100dvh - 12px)}.v8-app .modal-body{padding:13px}.v8-app .modal-foot{padding:10px 12px}.v8-app .modal-foot .btn{min-height:38px}}
@media(prefers-reduced-motion:reduce){.v8-app *{scroll-behavior:auto!important}}
/* Never center an oversized canvas into negative scroll space: keep its left edge reachable. */
.v8-app .canvas-scroll{justify-content:flex-start}
.v8-app .canvas-stage{margin-inline:auto}
/* V8 fixes found by recursive visual audit */
.v8-app .canvas{grid-template-rows:auto minmax(0,1fr)}
.v8-app .side-tabs.beginner{grid-template-columns:repeat(4,minmax(0,1fr));min-width:0}
