/* JLJAM 7.13.2 | iPhone, iPad and desktop usability pass.
   Progressive overrides only; no auth, data or routing changes. */
html{ -webkit-text-size-adjust:100%; }
#app,#app .shell,#app #view{min-width:0;max-width:100%;}
#app button,#app select,#app input,#app textarea{touch-action:manipulation;}
#app input,#app textarea,#app [contenteditable="true"]{touch-action:auto;-webkit-user-select:text;user-select:text;}
#app :is(button,a,input,select,textarea):focus-visible{outline:3px solid #d8b5ff;outline-offset:2px;}
/* The homepage priority is a decision, not a billboard. */
#app .cin-hq-harmony .cin-harmony-focus{padding:clamp(15px,1.8vw,23px)!important;margin-bottom:13px!important;border-radius:20px!important;}
#app .cin-hq-harmony .cin-harmony-focus h1{font-size:clamp(24px,2.55vw,32px)!important;line-height:1.17!important;}
#app .cin-hq-harmony .cin-harmony-focus p{margin:5px 0 10px!important;}
#app .cin-hq-harmony .cin-harmony-shortcuts{margin-top:11px!important;padding-top:10px!important;}
#app .cin-hq-harmony .cin-artist-gallery{display:grid!important;grid-template-columns:repeat(4,minmax(0,1fr))!important;gap:12px!important;}
#app .cin-hq-harmony .cin-artist-gallery > *{min-width:0!important;width:100%!important;max-width:none!important;}
#app .cin-hq-harmony .cin-artist-gallery .cin-face-photo-frame{aspect-ratio:4/5!important;overflow:hidden!important;}
#app .cin-hq-harmony .cin-artist-gallery img{object-fit:cover;}
@media(min-width:701px) and (max-width:1180px){
 #app .cin-hq-harmony .cin-artist-gallery{grid-template-columns:repeat(2,minmax(0,1fr))!important;}
 #app .cin-hq-harmony{width:min(100%,1000px)!important;}
 #app .cin-hq-harmony .cin-harmony-shortcuts button{min-height:48px!important;}
 #app .shell{padding-left:max(16px,env(safe-area-inset-left))!important;padding-right:max(16px,env(safe-area-inset-right))!important;}
}
@media(max-width:700px){
 html,body{max-width:100%;overflow-x:clip;}
 #app .shell{width:100%!important;max-width:100%!important;padding-inline:12px!important;padding-bottom:calc(112px + env(safe-area-inset-bottom))!important;}
 #app .cin-hq-harmony .cin-harmony-focus{padding:15px!important;}
 #app .cin-hq-harmony .cin-harmony-focus h1{font-size:clamp(24px,6.3vw,29px)!important;overflow-wrap:anywhere;}
 #app .cin-hq-harmony .cin-harmony-shortcuts{grid-template-columns:repeat(2,minmax(0,1fr))!important;}
 #app .cin-hq-harmony .cin-harmony-shortcuts button{font-size:14px!important;min-height:48px!important;}
 #app .cin-hq-harmony .cin-artist-gallery{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:9px!important;}
 #app .cin-hq-harmony .cin-artist-gallery .cin-face-photo-frame{aspect-ratio:4/5!important;}
 #app .mobile-dock{box-sizing:border-box!important;padding-bottom:max(6px,env(safe-area-inset-bottom))!important;}
 #app .mobile-dock button{min-width:0!important;min-height:48px!important;}
 /* Capture should never mask search, artist cards, or the dock. */
 #app .context-dock-action{right:12px!important;bottom:calc(86px + env(safe-area-inset-bottom))!important;max-width:138px!important;min-height:46px!important;}
 #app .search-panel{max-width:calc(100vw - 16px)!important;min-width:0!important;}
 #app .search-panel input{min-width:0!important;}
 #app :is(input,textarea,select){font-size:max(16px,1em)!important;}
}
@media(max-width:360px){#app .cin-hq-harmony .cin-harmony-shortcuts button:last-child{grid-column:auto!important;}}
/* iPad split-screen width follows actual viewport, not device user agent. */
@media(min-width:701px) and (max-width:1024px){
 #app .context-dock-action{right:18px!important;bottom:calc(20px + env(safe-area-inset-bottom))!important;}
 #app .cin-hq-harmony .cin-harmony-focus{padding:19px!important;}
}
/* React OS gets identical touch reachability and safe-area handling. */
#os8Host .os8-viewport{scroll-padding-top:85px;overscroll-behavior-x:none;}
#os8Host .os8-body{min-width:0;}
@media(max-width:1024px){
 #os8Host .os8-body{padding-inline:clamp(12px,2.5vw,24px)!important;padding-bottom:calc(35px + env(safe-area-inset-bottom))!important;}
 #os8Host .os8-top{padding-inline:clamp(12px,2.5vw,24px)!important;}
 #os8Host .os8-tabs{flex-wrap:nowrap!important;overflow-x:auto!important;scrollbar-width:thin;-webkit-overflow-scrolling:touch;}
 #os8Host .os8-tabs button{flex:0 0 auto!important;min-height:48px;}
}
@media(max-width:700px){
 #os8Host .os8-top{min-height:66px!important;}
 #os8Host .os8-logo b{font-size:20px!important;}
 #os8Host .os8-headline h1{font-size:clamp(29px,8vw,38px)!important;}
 #os8Host .os8-hero{grid-template-columns:minmax(0,1fr)!important;min-height:0!important;}
 #os8Host :is(input,textarea,select){font-size:16px!important;}
}
@media(prefers-reduced-motion:reduce){
 #app *,#os8Host *{scroll-behavior:auto!important;animation-duration:.01ms!important;transition-duration:.01ms!important;}
}
