/* Shared public-page mobile layer. No content, permissions or workflows hidden. */
html{scroll-padding-top:100px}
main,section,article,form,fieldset,.container>*,.portal-main>*,.hero-grid>*,.footer-grid>*{min-width:0}
h1,h2,h3,p,li,dd,a{overflow-wrap:break-word}
img,video,iframe{max-width:100%}
input,select,textarea{max-width:100%}
.btn{max-width:100%;white-space:normal;text-align:center;line-height:1.35;padding-block:12px}
.site-header .brand img{width:auto;object-fit:contain}
.testing-page input,.testing-page select,.testing-page textarea{font-size:16px!important}
.testing-page .test-composer{min-width:0}
.testing-page .test-composer input{min-width:0;flex:1}
.bb-stat-cards>*,.bb-journey-detail>*,.booking-paths>*,.portal-options>*{min-width:0}
.bb-freshness,.bb-chart-detail,.portal-notice,.booking-path a{overflow-wrap:anywhere}
@media(max-width:1000px){
 .mobile-nav{background:#fffaf1;border-color:var(--line);max-height:calc(100dvh - 82px);overflow-y:auto;overscroll-behavior:contain}
 .mobile-nav .nav-link{min-height:48px;color:#3f4b55}
 .mobile-nav .mobile-nav-cta{color:white}
 .portal-header a,.portal-footer a,.nav-links a{min-height:44px;display:inline-flex;align-items:center}
}
@media(max-width:900px),(pointer:coarse){
 input:not([type=checkbox]):not([type=radio]),textarea,select{font-size:16px!important}
 button,.btn,summary{min-height:44px}
 .site-footer a{display:flex;align-items:center;min-height:44px}
 .bb-switch button,.volume-presets button{min-height:44px}
}
@media(max-width:700px){
 html{scroll-padding-top:84px}
 .site-header{height:68px}
 .header-inner{justify-content:space-between;gap:12px}
 .site-header .brand img{height:40px;max-width:148px}
 .mobile-nav{max-height:calc(100dvh - 68px)}
 .display,.page-title,.lab-hero h1{font-size:clamp(34px,10.5vw,50px);line-height:1.08}
 .portal-main h1{font-size:clamp(32px,10vw,48px)}
 .portal-header{gap:12px}.portal-header nav{width:100%;justify-content:space-between;gap:8px}
 .portal-form,.portal-notice,.booking-path,.bb-journey-detail{padding:20px}
 .portal-form .btn,.portal-options .btn,.booking-path .btn{width:100%}
 .portal-options article{padding:20px}
 .portal-footer{column-gap:20px;row-gap:4px}
 .portal-footer a{overflow-wrap:anywhere}
 .lab-hero-actions,.hero-actions,.page-hero-actions{gap:12px}
 .site-head .nav{height:auto;min-height:68px;flex-wrap:wrap;padding-block:12px;gap:8px}
 .site-head .nav-links{flex-wrap:wrap;gap:2px}
 .private-card-head,.config-row{flex-wrap:wrap;gap:8px}
 .config-row strong{text-align:left}
 .test-composer{flex-wrap:nowrap}
 .compare-wrap{max-width:100%;overflow-x:auto;overscroll-behavior-inline:contain}
 .bb-chart{overflow-x:auto;grid-auto-columns:minmax(40px,1fr);padding-bottom:16px;overscroll-behavior-inline:contain}
 .bb-chart>p{overflow-wrap:anywhere}
}
@media(max-width:360px){
 .portal-main{padding-inline:14px}.portal-form{padding:16px}
 .window-bar{gap:5px;padding-inline:10px}.window-title{white-space:normal;font-size:10px}
 .window-live{font-size:9px;white-space:normal}
 .metric-card{padding:14px}
 .site-head .nav-links{width:100%;justify-content:space-between;margin:0}
}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
