/* 手机实训界面：触控尺寸、卡片列表、抽屉导航和安全区域适配。 */
.phone-nav,.phone-shade,.phone-brand,.table-scroll-tip{display:none}
@media(max-width:760px){
 html{overflow-x:hidden;scroll-padding-top:120px}body{overflow-wrap:anywhere;-webkit-text-size-adjust:100%}*{box-sizing:border-box}
 .phone-brand{display:block;font-size:12px;color:#52776f;letter-spacing:.5px}body.student-view aside{visibility:hidden}body.student-view.menu aside{visibility:visible}
 input,select,textarea{font-size:16px;min-height:44px}input[type=checkbox]{min-height:24px;width:24px}button{min-height:44px;touch-action:manipulation}button.small{min-height:40px;font-size:13px;padding:8px 12px}
 .login{min-height:auto}.loginhero{padding:28px 22px}.loginhero h1{font-size:26px}.loginhero .row{margin:12px 0!important}.loginhero p:last-child{display:none}.loginbox{padding:24px 20px}.loginbox h2{font-size:23px}.login .school-banner{font-size:16px;margin-bottom:8px}.login .tabs{position:static}.login form>button{min-height:48px}
 body.student-view header{padding:10px 14px;gap:7px;align-items:stretch;flex-direction:column;backdrop-filter:blur(12px)}body.student-view header>.row{gap:7px}body.student-view header>div:last-child{display:flex;align-items:center;gap:7px;flex-wrap:wrap}body.student-view header>div:last-child>span{flex:1;min-width:100px}body.student-view header b{font-size:14px}body.student-view #syncStatus{font-size:11px;max-width:180px;white-space:normal}body.student-view #exportBtn{display:none}body.student-view #menuBtn{min-width:44px;font-size:18px}body.student-view #logoutBtn,body.student-view #syncProblemBtn{font-size:12px;padding:6px 9px;min-height:36px}
 body.student-view main{padding:16px 12px calc(90px + env(safe-area-inset-bottom));width:100%;min-width:0}h1{font-size:23px;line-height:1.4}h2{font-size:19px}h3{font-size:16px}.card{padding:16px;border-radius:12px;margin-bottom:14px;min-width:0}.grid,.statgrid{grid-template-columns:1fr;gap:12px}.cards{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.cards .card{padding:13px}.metric{font-size:25px}.label{font-size:12px}.titleline{display:block;margin-bottom:16px}.titleline>.row{margin-top:12px;gap:8px}.titleline p{font-size:13px}.notice{padding:12px;line-height:1.7}.badge{max-width:100%;white-space:normal}.row{gap:8px}.row>input,.row>select{max-width:100%}.formgrid{grid-template-columns:minmax(0,1fr)}.field{min-width:0}.field input,.field select,.field textarea{width:100%}.kpirow{grid-template-columns:minmax(0,1.5fr) minmax(55px,.7fr) minmax(55px,.7fr);gap:6px}.kpirow input{width:100%;min-width:0;padding:8px 4px}.chartrow{grid-template-columns:58px minmax(0,1fr) 54px;gap:8px}.evidence,.workstep,.taskmeta,p{overflow-wrap:anywhere}
 body.student-view aside{display:block;width:min(300px,84vw);z-index:41;top:0;bottom:0;padding:22px 12px calc(90px + env(safe-area-inset-bottom));transform:translateX(-110%);transition:transform .2s;box-shadow:10px 0 60px #142d3826}body.student-view.menu aside{transform:translateX(0)}body.student-view.menu .phone-shade{display:block;position:fixed;inset:0;background:#10273188;z-index:40;border:0;border-radius:0;width:100%;height:100dvh}body.student-view nav button{min-height:48px;margin:4px 0}.navfoot{font-size:12px}
 body.student-view .phone-nav{display:grid;grid-template-columns:repeat(4,1fr);position:fixed;bottom:0;left:0;right:0;z-index:30;background:#fffffff5;backdrop-filter:blur(12px);border-top:1px solid #dce6e9;padding:7px 8px calc(7px + env(safe-area-inset-bottom));gap:4px;box-shadow:0 -4px 20px #183b4508}.phone-nav button{background:transparent;color:#647b86;padding:5px 2px;font-size:12px;min-height:50px;display:flex;flex-direction:column;gap:1px;align-items:center;justify-content:center}.phone-nav button span{font-size:19px;line-height:23px}.phone-nav button.active{background:#e8f4f0;color:#12796c;font-weight:bold}
 body.student-view .mobile-records{overflow:visible}body.student-view .mobile-records table{white-space:normal;font-size:14px;table-layout:fixed}body.student-view .mobile-records thead{display:none}body.student-view .mobile-records tbody{display:block}body.student-view .mobile-records tr{display:block;border:1px solid #dfe8eb;border-radius:10px;margin:0 0 12px;background:white;padding:7px 12px}body.student-view .mobile-records td{display:grid;grid-template-columns:88px minmax(0,1fr);gap:8px;padding:9px 0;white-space:normal;overflow-wrap:anywhere;align-items:start}body.student-view .mobile-records td::before{content:attr(data-label);color:#72838b;font-size:12px}body.student-view .mobile-records td:last-child{border-bottom:0}body.student-view .mobile-records td[colspan]{display:block}body.student-view .mobile-records td[colspan]::before{display:none}body.student-view .mobile-records .row{align-items:flex-start}body.student-view .mobile-records .log{min-width:0}
 .table-scroll-tip{display:block;color:#647b86;font-size:12px;padding:8px 2px}.tablewrap.mobile-roster{overflow-x:auto;-webkit-overflow-scrolling:touch;overscroll-behavior-x:contain;max-width:100%;border:1px solid #e0e8eb;border-radius:8px}.mobile-roster table{min-width:870px}.mobile-roster td:first-child,.mobile-roster th:first-child{position:sticky;left:0;background:#f6faf9;z-index:1;min-width:100px;max-width:125px;white-space:normal;box-shadow:3px 0 6px #142d3809}.mobile-roster select.shift{width:84px;min-height:44px;padding:7px;font-size:15px}
 dialog{width:100%;max-width:100%;max-height:94dvh;margin:auto 0 0;border-radius:18px 18px 0 0}dialog .dialogbody{padding:20px 16px calc(20px + env(safe-area-inset-bottom));max-height:90dvh;overflow-y:auto;overscroll-behavior:contain}dialog .dialoghead{position:sticky;top:-20px;background:white;padding:10px 0;z-index:2;gap:10px}dialog h2{font-size:19px}dialog form>.row:last-child{position:sticky;bottom:-20px;background:white;padding:12px 0;z-index:2}dialog form>.row:last-child button{flex:1}.dialogbody .tablewrap{max-width:100%;overflow:auto}.dialogbody .tablewrap table{font-size:13px}.dialogbody .tablewrap .row{flex-wrap:nowrap}textarea{min-height:120px}#toast{left:12px;right:12px;bottom:calc(85px + env(safe-area-inset-bottom));max-width:none;font-size:14px;padding:12px 16px}.teaching-footer{font-size:11px;line-height:1.8}
}
@media(max-width:360px){.cards{gap:7px}.cards .card{padding:10px}.metric{font-size:23px}body.student-view .mobile-records td{grid-template-columns:72px minmax(0,1fr)}}
@media(prefers-reduced-motion:reduce){body.student-view aside{transition:none}}
