/* Shared device layout: controls, forms and overlays. Game boards keep local sizing. */
html{scroll-padding-top:80px}
/* The shared language row already reserves space for the menu trigger. */
body.kt-with-panels:has(>nav.site-language-bar){padding-top:0!important}
.site-index:has(>nav.site-language-bar) .app:has(>aside.kt-panel-navigation){padding-top:0!important}
body > nav.site-language-bar{padding-left:max(64px,env(safe-area-inset-left));padding-top:max(7px,env(safe-area-inset-top))}
body > main,.app > main,main > section,main > article,form,fieldset{min-width:0}
fieldset{max-width:100%}
main h1,main h2,main h3,main p,main label,.membership-details dd,.email-destination{overflow-wrap:anywhere}
main img,main video{max-width:100%}
input,select,textarea{min-width:0;max-width:100%}
.site-index .overlay{z-index:10020;overflow-y:auto;overscroll-behavior:contain;padding:18px; padding-top:max(18px,env(safe-area-inset-top));padding-bottom:max(18px,env(safe-area-inset-bottom))}
.site-index .overlay .modal{min-width:0;max-width:100%;max-height:calc(100dvh - 36px - env(safe-area-inset-top) - env(safe-area-inset-bottom));overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch}
.site-index .modal-head{gap:12px;align-items:flex-start}
.site-index .modal-head h2{min-width:0;overflow-wrap:anywhere}
.site-index .modal-head > .close{flex-shrink:0}
.kt-table-scroll{max-width:100%;overflow-x:auto;overscroll-behavior-x:contain;-webkit-overflow-scrolling:touch}
.kt-table-scroll:focus-visible{outline:3px solid #287eb6;outline-offset:3px}
.kt-table-scroll table{max-width:none}
body > .kt-panel-navigation,.site-index .app>aside.kt-panel-navigation{padding-top:max(16px,env(safe-area-inset-top))!important;padding-bottom:max(16px,env(safe-area-inset-bottom))!important}
body > .kt-panel-toggle{top:max(10px,env(safe-area-inset-top));left:max(12px,env(safe-area-inset-left))}
@media(max-width:600px){
 html{scroll-padding-top:72px}
 .site-index .top{flex-wrap:wrap;gap:12px;align-items:flex-start}
 .site-index .top-actions{width:100%;min-width:0;justify-content:flex-start}
 .site-index .top-actions .profile{max-width:100%;overflow-wrap:anywhere}
 .site-index .room,.site-index .project-title{flex-wrap:wrap;gap:12px}
 .site-index .room .join{margin-left:0}
 .site-document>main{width:calc(100% - 28px)}
 main input,main select,main textarea,.site-index .modal input,.site-index .modal select,.site-index .modal textarea{font-size:16px}
 .site-stage .scene-list li{flex-wrap:wrap}
 .site-stage .scene-list span{flex-basis:100%;min-width:0}
 .site-science .science-steps{gap:6px}
 .site-science .science-steps button{padding:10px 6px;font-size:14px;min-width:0}
 .site-document .membership-toggle button{flex:1 1 120px}
}
@media(max-height:520px){
 .site-index .overlay{place-items:start center}
 .site-index .overlay .modal{margin:0 auto}
}
@media(pointer:coarse){
 body > nav.site-language-bar > button,body.site-document > nav.site-language-bar > button:not(:disabled){min-height:44px;height:44px}
 main form button,main form select,main form input:not([type=checkbox]):not([type=radio]),.site-index .modal button,.site-index .top-actions button,.stage-header a,.workshop-tabs button,.kt-panel-close{min-height:44px}
 .site-index .modal .close{min-width:44px}
 .site-index .close,.site-index .switch{touch-action:manipulation}
}
@media print{.site-index .overlay{display:none!important}.kt-table-scroll{overflow:visible;max-width:none}}

/* Text controls grow vertically and share wrapping rows on narrow screens. */
main button,main .button{max-width:100%;overflow-wrap:anywhere}
.controls,.toolbar,.dev-choices,.activity-actions,.board-controls{min-width:0;flex-wrap:wrap;gap:10px}
.controls label,.form-columns>div,.dev-card,.journey-card,.quiz-options button{min-width:0}
.controls button,.dev-choices button,.activity-actions button,.board-controls button,.choose-plan{white-space:normal;height:auto;min-height:44px;line-height:1.4}
.symbol-legend{align-items:stretch;min-width:0}
@media(max-width:480px){.controls label{max-width:100%}.controls select{max-width:100%;font-size:16px}.controls{gap:12px}}

[data-discovery-gifts]{background:white;border:1px solid #cee5e6;border-radius:18px;padding:22px;margin:20px 0}[data-discovery-gifts] .gift-options{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}[data-discovery-gifts] .card{padding:16px;border:1px solid #cde3e5;border-radius:14px}[data-discovery-gifts] button{border:0;border-radius:10px;padding:11px 15px;background:#087b88;color:white;font:inherit;cursor:pointer}[data-discovery-gifts] button:disabled{opacity:.55;cursor:default}[data-discovery-gifts] details{margin:15px 0;padding:14px;border:1px solid #cde3e5;border-radius:12px}[data-discovery-gifts] li{margin:9px 0}@media(max-width:760px){[data-discovery-gifts] .gift-options{grid-template-columns:1fr}}
