/* Preserve the full research workbench while fitting the host viewport. */
.studio-nav{height:44px;display:flex;align-items:center;gap:20px;padding:5px 16px;font:12px system-ui;background:var(--bg2);border-bottom:1px solid var(--border);overflow:auto;white-space:nowrap}.studio-nav a{color:var(--cyan)}.studio-nav button{background:var(--bg4);color:var(--txt);border:1px solid var(--border);border-radius:7px;min-height:32px;padding:5px 12px}.app{height:calc(100dvh - 44px)!important;grid-template-columns:minmax(250px,300px) minmax(0,1fr) minmax(250px,310px)}.app>*{min-width:0}.board-col,.board-wrap{width:100%;max-width:620px}.board{width:100%;height:auto;aspect-ratio:1;max-width:620px;max-height:none}.header{padding:6px 12px;gap:9px}.header .stats{font-size:10px}.header .puzzle-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.export-row{flex-wrap:wrap}.export-btn{min-width:44px;min-height:32px}.numpad{max-width:620px;width:100%}.numpad button,.numpad-btn{min-width:0!important}.cell .given,.cell .placed{font-size:clamp(20px,2.2vw,33px)}button:focus-visible,a:focus-visible,select:focus-visible{outline:3px solid var(--gold);outline-offset:2px}
@media(min-width:801px) and (max-width:1100px){.app{grid-template-columns:260px minmax(0,1fr)!important}.board-area{padding:12px}.inspector-col{display:block;grid-column:1/-1;max-height:360px}.app{overflow:auto;grid-template-rows:48px minmax(650px,1fr) auto}}
@media(max-width:800px){.studio-nav{gap:12px;padding:5px 8px;font-size:11px}.app{padding-bottom:56px}.header{min-height:44px}.header .sep,.header .stats{display:none}.analysis-col,.inspector-col{top:88px}.board{width:100%!important;height:auto!important;max-width:620px!important;max-height:none!important}.board-area{padding:8px}.cell .given,.cell .placed{font-size:clamp(20px,5.2vw,30px)}.cell .notes .note{font-size:clamp(7px,1.7vw,12px)}.mobile-tabs button{min-height:50px}.history-panel{display:block}.numpad{grid-template-columns:repeat(7,minmax(0,1fr))!important;max-width:620px!important}.numpad button{min-height:42px!important;padding:4px!important}.analysis-col .btn,.analysis-col select,.newgame-btn{min-height:36px}.header .puzzle-name{font-size:11px}.board-col{max-width:620px}.inspector-col.mob-active{display:block!important}}
