/* Desktop rules remain in style.css and upgrade.css. */
button,a,label.button,[role=button]{-webkit-tap-highlight-color:#50cdeb33}
.mobile-menu-toggle{display:none}
.hanzi-square{touch-action:none;overscroll-behavior:contain;user-select:none;-webkit-user-select:none}
.environment-note{font-size:14px}
.download-status{position:fixed;bottom:20px;left:12px;right:12px;z-index:100;padding:18px;background:#14283c;border:1px solid #5cceee;border-radius:12px;max-height:70dvh;overflow:auto}
.download-status .actions{margin-bottom:0}
@media(max-width:800px){
 html{-webkit-text-size-adjust:100%;text-size-adjust:100%}
 body{padding-left:env(safe-area-inset-left);padding-right:env(safe-area-inset-right)}
 header{padding:12px;gap:10px;align-items:center}
 .brand span{font-size:26px}.brand small{font-size:11px;letter-spacing:0}
 header label{max-width:44%;min-width:0}header select{width:100%;font-size:16px;padding:8px}
 #master-tabs{position:relative;padding:0 10px;margin:12px auto;gap:6px}
 .master-tab{min-height:56px;font-size:12px;line-height:1.4;padding:10px 5px;overflow-wrap:anywhere;text-align:center}
 .master-tab>span{display:none}
 body[data-section] .layout{display:block;width:100%;min-width:0}
 .mobile-menu-toggle{display:block;margin:10px 12px;width:calc(100% - 24px);text-align:left;min-height:48px}
 .layout>nav{display:none;position:static;height:auto;max-height:55dvh;max-height:55vh;overflow:auto;flex-direction:column;padding:10px 12px;margin:0 12px;border:1px solid #315371;border-radius:12px}
 body.mobile-menu-open .layout>nav:not([hidden]){display:flex}
 .layout>nav a{white-space:normal;min-height:44px;padding:10px 12px}
 body[data-section] main{padding:16px 12px 95px}
 main,section,article,.card,.grid>*,.parts>*{min-width:0}
 h1{font-size:27px;letter-spacing:0;overflow-wrap:anywhere}h2{font-size:21px}
 .card{padding:16px}.hero{padding:20px}.bi-shell{padding:12px}
 .bi-kpis{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
 .bi-kpi{padding:12px}.bi-kpi strong{font-size:30px}.bi-kpi span{font-size:13px}
 .bi-shell>.grid,.grid,.study-home-grid,.comparison,.score-comparison,.course-index{grid-template-columns:1fr}
 .bi-calendar{grid-template-columns:repeat(7,minmax(0,1fr))}
 .study-home-card{min-height:110px;gap:12px}
 .study-tools{padding:12px;gap:8px}.study-tools label{flex-wrap:wrap}
 .study-tools #voice-status{overflow-wrap:anywhere}
 .actions{gap:8px}.actions>*{max-width:100%}
 button,.button,[role=button]{min-height:44px}
 input,select,textarea{font-size:16px;min-width:0;max-width:100%}
 input[type=checkbox]{min-height:24px;min-width:24px}
 .zh{font-size:34px;line-height:1.7;overflow-wrap:anywhere}.py{font-size:17px;line-height:1.6}
 .parts .card{min-width:0;flex-basis:110px}.parts button{min-width:0;overflow-wrap:anywhere}
 .parts .zh{font-size:30px}.parts .py{font-size:16px}
 .phone-boxes{gap:6px}.phone-box-wrap{flex:0 0 44px}.phone-box{width:44px;min-height:54px;font-size:26px}
 .phone-number{font-size:22px;letter-spacing:2px;overflow-wrap:anywhere}
 .stroke-boards{gap:12px}.stroke-card{width:min(100%,300px);padding:12px;max-width:100%}
 .hanzi-square{max-width:100%}.writing{max-width:100%}.ghost{font-size:clamp(140px,58vw,220px)}
 .tone-grid{grid-template-columns:1fr}.phonetic-grid{grid-template-columns:repeat(auto-fit,minmax(62px,1fr))}
 img,audio,video{max-width:100%;height:auto}audio{min-height:44px}
 .table-scroll{max-width:100%;overscroll-behavior-x:contain}
 .table-scroll table{min-width:0}th,td{padding:7px;overflow-wrap:anywhere;font-size:14px}
 .bi-table{min-width:0}.reader label{display:block;margin:0 0 10px;max-width:100%}
 .reader label select{display:block;width:100%;max-width:100%}
 .floating-navigation{right:12px;bottom:max(12px,env(safe-area-inset-bottom))}
 #score-toast{right:12px;left:12px;bottom:80px;overflow-wrap:anywhere}
 footer{padding-bottom:calc(20px + env(safe-area-inset-bottom))}
}
