/* V180: mobile scroll + fit hardening. Scope is mobile only; desktop and assessment logic unchanged. */

@media (max-width: 980px){
  html.mobile-scroll-fit-v180,
  body.mobile-scroll-fit-v180{
    width:100%!important;
    min-width:0!important;
    max-width:100%!important;
    height:auto!important;
    min-height:100%!important;
    overflow-x:clip!important;
    overflow-y:auto!important;
    -webkit-overflow-scrolling:touch!important;
    overscroll-behavior-x:none!important;
    overscroll-behavior-y:auto!important;
    touch-action:pan-y!important;
    scroll-behavior:auto!important;
  }

  body.mobile-scroll-fit-v180,
  body.mobile-scroll-fit-v180 *{
    box-sizing:border-box!important;
  }

  body.mobile-scroll-fit-v180 img,
  body.mobile-scroll-fit-v180 video,
  body.mobile-scroll-fit-v180 canvas,
  body.mobile-scroll-fit-v180 svg{
    max-width:100%!important;
  }

  /* Stop older CSS stacks from creating sideways pages on phones. */
  body.mobile-scroll-fit-v180 #loginView,
  body.mobile-scroll-fit-v180 .login-shell,
  body.mobile-scroll-fit-v180 #appView,
  body.mobile-scroll-fit-v180 .app-shell,
  body.mobile-scroll-fit-v180 .workspace,
  body.mobile-scroll-fit-v180 .app-section,
  body.mobile-scroll-fit-v180 .section-card,
  body.mobile-scroll-fit-v180 .hero,
  body.mobile-scroll-fit-v180 .topbar,
  body.mobile-scroll-fit-v180 .final-quiz-card,
  body.mobile-scroll-fit-v180 .final-quiz-root,
  body.mobile-scroll-fit-v180 .final-quiz-panel,
  body.mobile-scroll-fit-v180 .final-quiz-reading-card,
  body.mobile-scroll-fit-v180 .final-quiz-reading-work,
  body.mobile-scroll-fit-v180 .final-quiz-work,
  body.mobile-scroll-fit-v180 .final-quiz-question-card,
  body.mobile-scroll-fit-v180 .rules-gate-card-v147,
  body.mobile-scroll-fit-v180 .client-review-card-v169,
  body.mobile-scroll-fit-v180 .client-file-review-root-v169,
  body.mobile-scroll-fit-v180 .evidence-lab-root-v158{
    width:100%!important;
    max-width:100%!important;
    min-width:0!important;
    margin-left:0!important;
    margin-right:0!important;
    overflow-x:clip!important;
  }

  body.mobile-scroll-fit-v180 .login-shell{
    display:grid!important;
    grid-template-columns:1fr!important;
    gap:12px!important;
    align-items:start!important;
    justify-items:stretch!important;
    min-height:auto!important;
    padding:10px max(10px,env(safe-area-inset-left)) calc(120px + env(safe-area-inset-bottom)) max(10px,env(safe-area-inset-right))!important;
  }

  body.mobile-scroll-fit-v180 .login-card,
  body.mobile-scroll-fit-v180 .login-rules-card{
    min-height:0!important;
    height:auto!important;
    max-height:none!important;
    padding:15px!important;
    border-radius:22px!important;
  }

  body.mobile-scroll-fit-v180 .login-rules-card .rules-scroll,
  body.mobile-scroll-fit-v180 .rules-scroll{
    height:auto!important;
    max-height:none!important;
    min-height:0!important;
    overflow:visible!important;
    padding-right:0!important;
  }

  body.mobile-scroll-fit-v180 .app-shell{
    display:block!important;
    min-height:auto!important;
    height:auto!important;
    overflow:visible!important;
    padding:0!important;
  }

  /* Top navigation becomes normal page content on mobile so it cannot trap scrolling. */
  body.mobile-scroll-fit-v180 .sidebar{
    position:relative!important;
    top:auto!important;
    left:auto!important;
    right:auto!important;
    height:auto!important;
    min-height:0!important;
    max-height:none!important;
    width:100%!important;
    max-width:100%!important;
    margin:0!important;
    padding:9px max(9px,env(safe-area-inset-left)) 9px max(9px,env(safe-area-inset-right))!important;
    border-radius:0 0 20px 20px!important;
    overflow-x:auto!important;
    overflow-y:hidden!important;
    -webkit-overflow-scrolling:touch!important;
    display:flex!important;
    align-items:center!important;
    gap:8px!important;
    flex-wrap:nowrap!important;
  }

  body.mobile-scroll-fit-v180 .portal-brand{
    flex:0 0 auto!important;
    min-width:0!important;
    max-width:138px!important;
    padding:0!important;
  }
  body.mobile-scroll-fit-v180 .portal-brand div,
  body.mobile-scroll-fit-v180 .portal-brand small{
    display:none!important;
  }
  body.mobile-scroll-fit-v180 .mini-brand-lockup-v148{
    min-width:64px!important;
    max-width:86px!important;
  }

  body.mobile-scroll-fit-v180 .nav-list{
    display:flex!important;
    gap:8px!important;
    flex:1 1 auto!important;
    min-width:max-content!important;
    width:auto!important;
    overflow:visible!important;
  }
  body.mobile-scroll-fit-v180 .nav-item{
    flex:0 0 auto!important;
    width:auto!important;
    min-height:38px!important;
    padding:8px 10px!important;
    white-space:nowrap!important;
    font-size:12px!important;
    border-radius:13px!important;
  }
  body.mobile-scroll-fit-v180 .logout-btn{
    flex:0 0 auto!important;
    width:auto!important;
    min-height:38px!important;
    padding:8px 10px!important;
    font-size:12px!important;
    border-radius:13px!important;
  }

  body.mobile-scroll-fit-v180 .workspace{
    display:grid!important;
    gap:12px!important;
    padding:10px max(10px,env(safe-area-inset-left)) calc(150px + env(safe-area-inset-bottom)) max(10px,env(safe-area-inset-right))!important;
    height:auto!important;
    min-height:0!important;
    max-height:none!important;
    overflow:visible!important;
  }

  body.mobile-scroll-fit-v180 .topbar{
    display:grid!important;
    grid-template-columns:1fr!important;
    align-items:start!important;
    gap:10px!important;
    padding:12px!important;
    border-radius:20px!important;
  }
  body.mobile-scroll-fit-v180 .topbar h2{
    font-size:20px!important;
    line-height:1.12!important;
  }
  body.mobile-scroll-fit-v180 .profile-chip{
    width:100%!important;
    min-width:0!important;
    max-width:100%!important;
  }

  body.mobile-scroll-fit-v180 .hero{
    display:grid!important;
    grid-template-columns:1fr!important;
    gap:12px!important;
    padding:14px!important;
    border-radius:22px!important;
    min-height:0!important;
  }
  body.mobile-scroll-fit-v180 .hero-brand-v148{
    justify-content:flex-start!important;
    transform:none!important;
    max-width:138px!important;
  }
  body.mobile-scroll-fit-v180 .hero h1{
    font-size:clamp(24px,7vw,32px)!important;
    line-height:1.04!important;
  }
  body.mobile-scroll-fit-v180 .hero-panel{
    display:grid!important;
    grid-template-columns:1fr!important;
    gap:8px!important;
  }

  body.mobile-scroll-fit-v180 .section-card,
  body.mobile-scroll-fit-v180 .final-quiz-card,
  body.mobile-scroll-fit-v180 .rules-gate-card-v147,
  body.mobile-scroll-fit-v180 .client-review-card-v169{
    padding:14px!important;
    border-radius:22px!important;
    height:auto!important;
    min-height:0!important;
    max-height:none!important;
    overflow:visible!important;
  }

  body.mobile-scroll-fit-v180 .section-head,
  body.mobile-scroll-fit-v180 .final-quiz-head,
  body.mobile-scroll-fit-v180 .rules-gate-top-v147,
  body.mobile-scroll-fit-v180 .client-review-top-v169,
  body.mobile-scroll-fit-v180 .ai-lab-top-v158{
    display:grid!important;
    grid-template-columns:1fr!important;
    align-items:start!important;
    gap:10px!important;
    width:100%!important;
  }

  /* Quiz reading/question layouts must flow naturally on phones. */
  body.mobile-scroll-fit-v180 .final-quiz-root,
  body.mobile-scroll-fit-v180 .final-quiz-panel,
  body.mobile-scroll-fit-v180 .final-quiz-reading-card,
  body.mobile-scroll-fit-v180 .final-quiz-reading-work,
  body.mobile-scroll-fit-v180 .final-quiz-work,
  body.mobile-scroll-fit-v180 .final-quiz-question-card,
  body.mobile-scroll-fit-v180 .final-quiz-case-body,
  body.mobile-scroll-fit-v180 .final-quiz-case,
  body.mobile-scroll-fit-v180 .final-quiz-options,
  body.mobile-scroll-fit-v180 .quiz-options-one,
  body.mobile-scroll-fit-v180 .split-question-card,
  body.mobile-scroll-fit-v180 .test-quiz-split,
  body.mobile-scroll-fit-v180 .quiz-two-panel,
  body.mobile-scroll-fit-v180 .quiz-work-panel{
    height:auto!important;
    min-height:0!important;
    max-height:none!important;
    overflow:visible!important;
  }

  body.mobile-scroll-fit-v180 .final-quiz-panel,
  body.mobile-scroll-fit-v180 .quiz-two-panel{
    display:grid!important;
    grid-template-columns:1fr!important;
    gap:12px!important;
  }

  body.mobile-scroll-fit-v180 .final-quiz-reading-card,
  body.mobile-scroll-fit-v180 .final-quiz-question-card,
  body.mobile-scroll-fit-v180 .split-question-card{
    padding:14px!important;
    border-radius:20px!important;
    min-height:0!important;
  }

  body.mobile-scroll-fit-v180 .final-quiz-question,
  body.mobile-scroll-fit-v180 .final-quiz-case,
  body.mobile-scroll-fit-v180 .final-quiz-case-body,
  body.mobile-scroll-fit-v180 .final-quiz-options label,
  body.mobile-scroll-fit-v180 .quiz-options-one label,
  body.mobile-scroll-fit-v180 .split-question-card h4{
    overflow-wrap:anywhere!important;
    word-break:normal!important;
    white-space:normal!important;
  }

  body.mobile-scroll-fit-v180 .final-quiz-options,
  body.mobile-scroll-fit-v180 .quiz-options-one{
    display:grid!important;
    grid-template-columns:1fr!important;
    gap:9px!important;
  }
  body.mobile-scroll-fit-v180 .final-quiz-options label,
  body.mobile-scroll-fit-v180 .quiz-options-one label{
    width:100%!important;
    min-width:0!important;
    padding:12px!important;
    line-height:1.45!important;
  }

  /* Sticky actions + browser toolbars were the main mobile freeze/cover culprit. */
  body.mobile-scroll-fit-v180 .final-quiz-actions,
  body.mobile-scroll-fit-v180 .split-quiz-actions,
  body.mobile-scroll-fit-v180 .rules-gate-actions-v147,
  body.mobile-scroll-fit-v180 .client-review-actions-v169{
    position:relative!important;
    bottom:auto!important;
    top:auto!important;
    display:grid!important;
    grid-template-columns:1fr!important;
    gap:9px!important;
    width:100%!important;
    padding:10px 0 0!important;
    margin-top:10px!important;
    background:transparent!important;
  }
  body.mobile-scroll-fit-v180 .final-quiz-actions button,
  body.mobile-scroll-fit-v180 .split-quiz-actions button,
  body.mobile-scroll-fit-v180 .rules-gate-actions-v147 button,
  body.mobile-scroll-fit-v180 .client-review-actions-v169 button{
    width:100%!important;
    min-height:46px!important;
  }

  /* Keep secure camera visible but not layout-breaking. */
  body.mobile-scroll-fit-v180 #secureSessionWidgetV81.secure-session-widget-v81,
  body.mobile-scroll-fit-v180 #secureSessionWidgetV81,
  body.mobile-scroll-fit-v180 .secure-session-widget-v81{
    position:fixed!important;
    left:10px!important;
    right:10px!important;
    bottom:calc(10px + env(safe-area-inset-bottom))!important;
    width:auto!important;
    max-width:calc(100vw - 20px)!important;
    min-width:0!important;
    max-height:112px!important;
    overflow:hidden!important;
    display:grid!important;
    grid-template-columns:54px minmax(0,1fr)!important;
    gap:8px!important;
    padding:8px!important;
    border-radius:18px!important;
    z-index:90!important;
    transform:none!important;
    contain:layout paint!important;
  }
  body.mobile-scroll-fit-v180 #secureSessionWidgetV81 .secure-preview{
    width:50px!important;
    height:38px!important;
    border-radius:13px!important;
  }
  body.mobile-scroll-fit-v180 #secureSessionWidgetV81 .secure-copy strong{
    font-size:13px!important;
  }
  body.mobile-scroll-fit-v180 #secureSessionWidgetV81 .secure-copy span{
    font-size:11px!important;
    -webkit-line-clamp:2!important;
  }
  body.mobile-scroll-fit-v180 #secureSessionWidgetV81 button{
    grid-column:1/-1!important;
    width:100%!important;
    min-height:32px!important;
    padding:0 10px!important;
    font-size:12px!important;
  }

  /* Inputs/textareas should not trigger mobile reflow traps. */
  body.mobile-scroll-fit-v180 input,
  body.mobile-scroll-fit-v180 textarea,
  body.mobile-scroll-fit-v180 select,
  body.mobile-scroll-fit-v180 button{
    font-size:16px!important;
  }

  body.mobile-scroll-fit-v180 textarea{
    max-width:100%!important;
    resize:vertical!important;
    min-height:160px!important;
  }

  body.mobile-scroll-fit-v180 .hidden{
    display:none!important;
  }
}

@media (max-width: 430px){
  body.mobile-scroll-fit-v180 .workspace{
    padding-left:8px!important;
    padding-right:8px!important;
  }
  body.mobile-scroll-fit-v180 .section-card,
  body.mobile-scroll-fit-v180 .final-quiz-card,
  body.mobile-scroll-fit-v180 .hero,
  body.mobile-scroll-fit-v180 .topbar{
    border-radius:19px!important;
  }
  body.mobile-scroll-fit-v180 .section-card,
  body.mobile-scroll-fit-v180 .final-quiz-card,
  body.mobile-scroll-fit-v180 .rules-gate-card-v147{
    padding:12px!important;
  }
  body.mobile-scroll-fit-v180 .nav-item{
    padding:7px 9px!important;
  }
}
