/* V3.7.9 — mobile layout hard reset
   Loaded after every legacy theme layer so desktop sidebar offsets and fixed widths
   cannot leak into WeChat/phone layouts. */
html{
  width:100%;
  max-width:100%;
  -webkit-text-size-adjust:100%;
  text-size-adjust:100%;
}
html,body{
  overflow-x:hidden!important;
}
*,*::before,*::after{box-sizing:border-box}
img,svg,video,canvas{max-width:100%;height:auto}
input,select,textarea,button{font:inherit;max-width:100%}

@media (max-width:900px){
  html,body{
    width:100%!important;
    min-width:0!important;
    max-width:100%!important;
    margin:0!important;
    background:#fff!important;
  }
  body{padding:0!important}
  .app-layout{
    display:block!important;
    width:100%!important;
    min-width:0!important;
    max-width:100%!important;
    min-height:100dvh!important;
  }
  .sidebar{display:none!important}
  .main{
    display:block!important;
    width:100%!important;
    min-width:0!important;
    max-width:100%!important;
    margin:0!important;
    margin-left:0!important;
    padding:0 14px calc(92px + env(safe-area-inset-bottom))!important;
    overflow:visible!important;
    background:#fff!important;
  }
  .main>*{min-width:0!important;max-width:100%!important}
  .topbar{
    position:relative!important;
    inset:auto!important;
    display:flex!important;
    align-items:flex-start!important;
    justify-content:space-between!important;
    gap:10px!important;
    width:auto!important;
    min-width:0!important;
    max-width:none!important;
    min-height:auto!important;
    margin:0 -14px 14px!important;
    padding:12px 14px!important;
    background:#fff!important;
    border-bottom:1px solid #e5ebf4!important;
    box-shadow:0 4px 14px rgba(36,55,84,.045)!important;
    backdrop-filter:none!important;
  }
  .topbar-title{min-width:0!important;flex:1 1 auto!important}
  .topbar-title h1{
    margin:2px 0 3px!important;
    font-size:22px!important;
    line-height:1.25!important;
    letter-spacing:-.02em!important;
    overflow-wrap:anywhere!important;
  }
  .topbar-title p{
    margin:0!important;
    font-size:12px!important;
    line-height:1.45!important;
    overflow-wrap:anywhere!important;
  }
  .topbar-eyebrow{font-size:10px!important;margin-bottom:2px!important}
  .topbar-actions{flex:0 0 auto!important;gap:7px!important}
  .topbar-profile{display:none!important}
  .topbar-icon-button{width:40px!important;height:40px!important;border-radius:13px!important}

  .shell,.page-shell,.compact-shell,.public-form,.mobile-workbench,
  .credential-mobile-shell,.identity-clean-page{
    width:100%!important;
    min-width:0!important;
    max-width:100%!important;
    margin-left:0!important;
    margin-right:0!important;
  }
  .page-shell,.compact-shell{padding-left:0!important;padding-right:0!important}
  .card,.panel,.form-section,.mobile-section,.mobile-form-card,.mobile-search-card,
  .approval-head-card,.login-card,.home-card,.kpi,.quality-kpi{
    width:100%!important;
    min-width:0!important;
    max-width:100%!important;
  }
  .grid,.form-grid,.grid.two,.grid.three,.grid.four,
  .password-form,.password-page,.password-card{
    min-width:0!important;
    max-width:100%!important;
  }
  .form-grid,.grid.two,.grid.three,.grid.four{grid-template-columns:minmax(0,1fr)!important}
  .field,.field input,.field select,.field textarea{
    width:100%!important;
    min-width:0!important;
    max-width:100%!important;
  }
  .field input,.field select,.field textarea{
    font-size:16px!important;
  }
  .table-wrap{width:100%!important;max-width:100%!important;overflow-x:auto!important;-webkit-overflow-scrolling:touch}

  /* Password page: one full-width column, no desktop sidebar column or fixed card width. */
  .password-page{
    display:block!important;
    width:100%!important;
    min-width:0!important;
    max-width:100%!important;
    margin:0!important;
    padding:0 0 26px!important;
  }
  .password-intro{
    display:grid!important;
    grid-template-columns:minmax(0,1fr) 44px!important;
    align-items:start!important;
    gap:12px!important;
    width:100%!important;
    min-width:0!important;
    padding:6px 2px 15px!important;
  }
  .password-intro-copy{min-width:0!important}
  .password-intro .eyebrow{display:inline-flex!important;margin:0 0 9px!important}
  .password-intro h2{
    margin:0 0 8px!important;
    font-size:26px!important;
    line-height:1.28!important;
    letter-spacing:-.035em!important;
    word-break:normal!important;
    overflow-wrap:anywhere!important;
  }
  .password-intro p{
    margin:0!important;
    font-size:15px!important;
    line-height:1.75!important;
    word-break:normal!important;
  }
  .password-intro-icon{
    width:44px!important;
    height:44px!important;
    border-radius:14px!important;
    font-size:18px!important;
  }
  .password-card{
    width:100%!important;
    max-width:100%!important;
    min-width:0!important;
    margin:0!important;
    padding:18px!important;
    border-radius:20px!important;
  }
  .password-form{
    display:grid!important;
    grid-template-columns:minmax(0,1fr)!important;
    gap:14px!important;
    width:100%!important;
    max-width:100%!important;
    min-width:0!important;
  }
  .password-form .field{margin:0!important;min-width:0!important}
  .password-form label{font-size:15px!important;margin-bottom:7px!important}
  .password-form input{
    display:block!important;
    width:100%!important;
    min-width:0!important;
    max-width:100%!important;
    height:50px!important;
    padding:0 14px!important;
    border-radius:15px!important;
    font-size:16px!important;
  }
  .password-hint{
    width:100%!important;
    min-width:0!important;
    padding:12px!important;
    font-size:13px!important;
    line-height:1.65!important;
  }
  .password-actions{display:block!important;width:100%!important;margin-top:0!important}
  .password-actions .btn{
    width:100%!important;
    min-width:0!important;
    max-width:100%!important;
    min-height:50px!important;
    padding:12px 16px!important;
    border-radius:15px!important;
    font-size:16px!important;
  }

  /* Standalone WeChat result pages. */
  .permission-page,.worker-unbind-page{
    display:flex!important;
    align-items:center!important;
    justify-content:center!important;
    width:100%!important;
    min-width:0!important;
    min-height:100dvh!important;
    padding:18px 14px calc(18px + env(safe-area-inset-bottom))!important;
    overflow-x:hidden!important;
  }
  .permission-modal,.worker-unbind-card{
    width:100%!important;
    min-width:0!important;
    max-width:520px!important;
    padding:20px!important;
    border-radius:24px!important;
  }
  .permission-modal h1,.worker-unbind-card h1{font-size:27px!important;line-height:1.3!important}
  .permission-modal p,.worker-unbind-card p{font-size:16px!important;line-height:1.8!important;overflow-wrap:anywhere!important}
  .permission-actions,.worker-unbind-actions{width:100%!important}
  .permission-actions .btn,.worker-unbind-actions .btn{width:100%!important;min-width:0!important}

  .mobile-bottom-nav,.app-fixed-bottom-nav{
    left:10px!important;
    right:10px!important;
    bottom:calc(10px + env(safe-area-inset-bottom))!important;
    width:auto!important;
  }
}

@media (max-width:480px){
  .main{padding-left:12px!important;padding-right:12px!important}
  .topbar{margin-left:-12px!important;margin-right:-12px!important;padding-left:12px!important;padding-right:12px!important}
  .topbar-title h1{font-size:21px!important}
  .password-intro{grid-template-columns:minmax(0,1fr) 42px!important}
  .password-intro h2{font-size:24px!important}
  .password-card{padding:16px!important}
  .permission-modal,.worker-unbind-card{padding:18px!important}
}
