*{box-sizing:border-box}body{margin:0;background:#0d202a;color:#dfebed;font:15px system-ui}header{padding:14px 20px;display:flex;justify-content:space-between;border-bottom:1px solid #31505c}header span{color:#8ddbd0}main{display:grid;grid-template-columns:minmax(0,1fr) 330px;height:calc(100vh - 50px)}section{position:relative;min-width:0}canvas{width:100%;height:100%;display:block;touch-action:none}.hud{position:absolute;top:18px;left:18px;background:#102933dd;padding:10px;max-width:80%;pointer-events:none}aside{overflow:auto;padding:20px;background:#112b35}h1{margin:0;font-size:26px}h2{font-size:17px;margin-bottom:8px}p{line-height:1.5;font-size:13px;color:#bcd0d6}label{display:block;font-weight:600;margin:15px 0}select,input{display:block;width:100%;margin-top:7px}select,button{border:1px solid #4d7681;background:#1d414d;color:#eef8f8;border-radius:7px;padding:10px;font:inherit}button{cursor:pointer;touch-action:none}button:active{background:#367878}.buttons{display:grid;grid-template-columns:1fr 1fr;gap:8px}.touch{display:flex;flex-wrap:wrap;gap:7px;position:absolute;bottom:16px;left:16px;right:16px}.touch button{background:#143641e8;min-height:44px;font-size:13px}#error{color:#ffbaab}@media(max-width:850px){main{display:block;height:auto}main>section{height:65vh;min-height:400px}aside{height:auto}.hud{font-size:12px}.touch{gap:5px}.touch button{padding:7px}header{font-size:11px}}

.dock-nav{display:flex;flex-wrap:wrap;gap:6px;padding:6px 14px;background:#102630;border-bottom:1px solid #31505c}.dock-nav a{display:inline-flex;align-items:center;min-height:44px;padding:8px 12px;color:#91e5d9;font:14px system-ui;text-decoration:none;border:1px solid #365963;border-radius:5px}.dock-nav a:focus-visible{outline:3px solid #ffca6e}select,input{font-size:16px!important}button,summary{min-height:44px}
@media(min-width:851px){body{display:flex;flex-direction:column;height:100dvh;overflow:hidden}header,.dock-nav,footer{flex-shrink:0}main{flex:1;min-height:0;height:auto}main>.viewport,main>.stage,main>section{min-height:0;height:auto}aside{min-height:0;height:auto;max-height:none;overflow:auto}}
