/* Shared touch layouts; desktop interfaces retain their existing layout. */
@media(max-width:700px){html{overflow-x:hidden;scroll-padding-top:52px}body{max-width:100%;-webkit-text-size-adjust:100%}main,.wrap{width:100%;padding:12px!important}h1{font-size:23px;margin:12px 0 6px}h2{font-size:18px}button,input,select,textarea{font-size:16px}button{min-height:42px;padding:10px 12px}input,select,textarea{max-width:100%;min-width:0}input[type=checkbox],input[type=radio]{min-height:auto}.site-nav{height:auto;min-height:44px;padding:6px 10px;gap:6px}.site-nav .brand{font-size:13px;min-width:0;overflow:hidden;text-overflow:ellipsis}.site-nav .nav-links{flex-shrink:0}.site-nav a.nav{font-size:12px;padding:6px}.top-navigation{gap:5px;padding:5px 7px}.top-navigation button{font-size:13px;min-height:40px;padding:7px 9px}.admin-tabs{gap:5px}.heading{gap:8px}.heading>.bar{width:100%;display:flex;gap:6px}.heading>.bar button{flex:1;min-width:0;padding:8px!important}.heading h1{font-size:18px!important;overflow-wrap:anywhere}.job{padding:12px!important;flex-direction:column;gap:10px;align-items:stretch!important}.job-main{width:100%}.job .actions{width:100%;display:flex;flex-wrap:wrap}.job .actions button{flex:1}.job-title-row h2{font-size:17px!important;white-space:normal!important}.chips{gap:5px}.chip{font-size:11px;padding:3px 7px}.subtabs{display:grid!important;grid-template-columns:repeat(4,minmax(0,1fr));gap:4px!important;margin:5px 0!important}.subtabs button{font-size:12px!important;padding:7px 3px!important;min-width:0;min-height:40px}#workInfo{font-size:11px!important;line-height:1.4;margin:3px 0!important}.create-form{min-width:0!important;width:100%}dialog{max-width:calc(100vw - 16px)!important;max-height:90dvh!important;padding:12px}dialog input:not([type=checkbox]):not([type=radio]),dialog select{width:100%}.panel{padding:12px!important}.options{gap:9px;margin:12px 0}.category-tabs{display:flex;overflow-x:auto;flex-wrap:nowrap!important;gap:5px}.category-tabs button{white-space:nowrap;flex:0 0 auto;font-size:13px;padding:8px 10px}.card{min-width:0}.card .pages{max-width:100%;overflow-x:auto;scroll-snap-type:x proximity}.card .page{flex:0 0 min(76vw,330px)!important;scroll-snap-align:start}.card .page img{max-width:100%;height:auto!important;object-fit:contain}.card>.body{min-width:0!important}.submission-summary{grid-template-columns:1fr!important}.save-bar,#saveBar{padding:8px 10px max(8px,env(safe-area-inset-bottom))!important;gap:6px;flex-wrap:wrap}.save-bar button,#saveBar button{min-height:40px}.student-main .welcome{gap:10px}.student-main .welcome h1{font-size:23px;line-height:1.3}.student-main .welcome p{font-size:13px}.student-main .student-entry{max-width:none}.student-main .entry-controls{gap:8px}.student-main .homework-card{padding:13px}.student-main .section-heading{gap:8px;align-items:flex-start}.student-main .library-filters{display:grid;grid-template-columns:1fr 1fr;gap:8px}.student-main .library-filters label{display:grid;gap:4px;min-width:0}.student-main .library-filters select{width:100%;font-size:16px}.student-main .question-actions{gap:8px}.student-main .excellent-gallery{grid-template-columns:1fr}.student-main .excellent-set .paper-pages{grid-template-columns:1fr!important}.student-main .paper-page img{max-height:none!important;aspect-ratio:auto!important}.upload-bar>.bar{gap:6px}.upload-bar input[type=file]{width:100%;max-width:none}.upload-bar>.bar>.formats{display:none}.question-heading button{min-height:40px}.editor-controls .bar{gap:5px}#workspace.editing .question-heading{align-items:flex-start}#workspace.editing .question-heading button{font-size:12px;padding:7px}.editor-footer{padding-bottom:max(8px,env(safe-area-inset-bottom))}.region-toolbar{gap:4px}.region-toolbar select{font-size:16px}#linkPanel select{width:100%;max-width:none}.muted{overflow-wrap:anywhere}}
/* In scan focus, ancestor frames hide their navigation so the camera gets the
   whole viewport, including on iPhone where element fullscreen is unavailable. */
body.scan-child-focus>.top-navigation,body.scan-child-focus #workspace>.heading,body.scan-child-focus #workspace>.subtabs,body.scan-child-focus #linkPanel{display:none!important}body.scan-child-focus main{padding:0!important}body.scan-child-focus #status{display:none}body.scan-child-focus iframe{border-radius:0}
body.scan-focus{height:100dvh;overflow:hidden;background:#13231f}body.scan-focus>.site-nav,body.scan-focus .scan-top-brand{display:none!important}body.scan-focus main{max-width:none;width:100%;height:100dvh;padding:0!important;margin:0;overflow:hidden}body.scan-focus #screen-scan{height:100%;display:flex;flex-direction:column;min-height:0;padding:max(4px,env(safe-area-inset-top)) max(6px,env(safe-area-inset-right)) max(6px,env(safe-area-inset-bottom)) max(6px,env(safe-area-inset-left));gap:4px;position:relative}body.scan-focus .scan-top{margin:0;gap:8px;flex-shrink:0;min-height:34px}body.scan-focus .scan-top .link{color:#d3e8dd;font-size:13px;padding:5px}body.scan-focus #scanBatchLabel{color:#d3e8dd;flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:55vw;font-size:11px}body.scan-focus #setProgress{font-size:14px!important;color:#f3fbf6!important;margin:0;flex-shrink:0;line-height:1.4}body.scan-focus .camera{flex:1;min-height:120px;aspect-ratio:auto!important;width:100%;margin:0;border-radius:9px}body.scan-focus .camera video{position:absolute;inset:0;width:100%;height:100%;object-fit:contain}body.scan-focus .camera>span{bottom:7px;left:7px;right:7px;padding:7px;font-size:12px;pointer-events:none}body.scan-focus .scan-controls{flex-shrink:0;gap:7px}body.scan-focus .scan-controls button{padding:11px 8px;min-height:46px;font-size:14px}body.scan-focus .scan-stats{flex-shrink:0;display:flex;justify-content:space-between;margin:1px 5px;font-size:10px;color:#a6bdb1}body.scan-focus .scan-stats strong{display:inline;font-size:13px;color:#eff9f2;margin:0 4px 0 0}body.scan-focus #message{color:#e2efe6;font-size:11px;line-height:1.4;margin:0;max-height:32px;overflow:auto}body.scan-focus #scanSettings{color:#d3e8dd;font-size:13px;flex:0 0 auto}#scanSettings summary{cursor:pointer;list-style:none;min-height:34px;display:flex;align-items:center;padding:6px 10px;border-radius:8px;background:#e1e9e2;color:#265d50}#scanSettings[open] summary{position:relative;z-index:52}#scanSettings[open] .scan-settings-panel{display:block;position:absolute;right:8px;top:42px;z-index:51;width:min(440px,calc(100vw - 24px));max-height:70dvh;overflow:auto;background:#fff;border:1px solid #ced8cf;border-radius:12px;box-shadow:0 8px 30px #0004;padding:14px;color:#172e2c}#scanSettings:not([open]) .scan-settings-panel{display:none}.scan-settings-panel .options{margin:10px 0;gap:10px}.scan-settings-panel .muted{font-size:12px}.scan-settings-panel input[type=number]{font-size:16px;max-width:80px}.scan-settings-panel label{font-size:14px}.scan-settings-panel button{padding:8px;font-size:13px;min-height:40px}.scan-tools{display:flex;gap:6px;align-items:center}.scan-tools button{flex:0 0 auto;font-size:12px;padding:6px 9px;min-height:34px}#cameraZoomRow{display:flex;align-items:center;gap:10px;font-size:13px}#cameraZoom{flex:1;min-width:0}#cameraZoomRow[hidden]{display:none!important}.scan-settings-panel .resume-options{display:flex;flex-wrap:wrap}body.scan-focus .freeze{padding:max(8px,env(safe-area-inset-top)) 8px max(8px,env(safe-area-inset-bottom));gap:7px}body.scan-focus .freeze img{max-height:calc(100dvh - 130px);max-width:98vw;object-fit:contain}body.scan-focus .freeze-bar{gap:6px;width:100%}body.scan-focus .freeze-bar .actions{width:100%;max-width:550px}body.scan-focus .freeze-bar button{font-size:13px;min-height:42px;padding:10px 8px}body.scan-focus .freeze-bar .muted{font-size:12px;color:#deeee3;margin:0;text-align:center}
@media(orientation:landscape) and (max-height:550px){body.scan-focus #screen-scan{display:grid;grid-template-columns:minmax(0,1fr) 116px;grid-template-rows:32px minmax(0,1fr) 23px;gap:4px}body.scan-focus .scan-top{grid-column:1;grid-row:1;min-height:0}body.scan-focus #setProgress{grid-column:2;grid-row:1/3;font-size:12px!important;align-self:start;padding:4px;pointer-events:none}body.scan-focus .camera{grid-column:1;grid-row:2/4;min-height:0}body.scan-focus .scan-controls{grid-column:2;grid-row:2;align-self:end;display:flex;flex-direction:column;gap:6px;padding-top:35px}body.scan-focus .scan-controls button{min-height:42px;padding:7px;font-size:13px}body.scan-focus .scan-stats{grid-column:2;grid-row:3;font-size:9px;margin:0;gap:3px}body.scan-focus .scan-stats>div:last-child{display:none}body.scan-focus #message{display:none}body.scan-focus .camera>span{padding:5px;font-size:11px;left:20%;right:20%}body.scan-focus .freeze{display:grid;grid-template-columns:minmax(0,1fr) 190px;gap:8px}body.scan-focus .freeze img{max-width:100%;max-height:96dvh;margin:auto;min-height:0}body.scan-focus .freeze-bar .actions{flex-direction:column}body.scan-focus .freeze-bar{min-width:0}body.scan-focus #scanBatchLabel{max-width:45vw}}

#screen-scan{position:relative}.scan-focus .rec-result{max-height:70px;overflow:auto}
@media(max-width:600px){input:not([type=checkbox]):not([type=radio]),select,textarea{font-size:16px!important}#workspace.editing{position:relative}#workspace.editing>#answerEditor{position:absolute;inset:0;z-index:25;border-radius:8px;background:#fff}#workspace.editing>#questionList{grid-column:1/-1}.editor-controls{padding:7px 9px}.editor-footer button{flex:1}.editor-footer #editorSaveStatus{flex-basis:100%}.question-image canvas,.answer-preview canvas,.answer-preview img{width:100%}.site-nav .brand{max-width:66vw}.student-main .section-heading h2{font-size:18px}}
[hidden]{display:none!important}body.scan-child-focus>.site-nav{display:none!important}
@media(orientation:landscape) and (max-height:550px){body.scan-focus .scan-stats>div{font-size:0;white-space:nowrap}body.scan-focus .scan-stats strong{font-size:11px;margin:0}body.scan-focus #saved::after{content:'套'}body.scan-focus #pending::after{content:'待传'}}
@media(max-width:700px){#gridBox .page img{aspect-ratio:auto!important;height:auto!important;max-height:none!important}.category-tabs{max-width:100%;min-width:0}.review-heading{min-width:0}.meta{min-width:0}}
@media(max-width:700px){.student-main #libraryDates{grid-column:1/-1;display:flex;align-items:center;gap:6px;flex-wrap:wrap}.student-main #libraryDates input{width:calc(50% - 16px)}.student-main .library-filters>button{grid-column:1/-1}.student-main .library-filters>label{min-width:0}.student-main .library-filters>label select{max-width:100%}}
