/* Mobile reachability fixes and the web reconstruction of the native SwiftUI dictation flow. */
.ios-entry-row>form[hidden]{display:none}
.class-switch-list{display:grid;gap:9px;margin-top:14px}.class-switch-list .btn{min-height:48px;padding:13px;font-size:15px}
.class-admin-section,.backup-history{margin-top:18px}.class-admin-list,.backup-download-list{display:grid;gap:9px;margin-top:14px}.class-admin-list>button,.backup-download-row{display:flex;align-items:center;justify-content:space-between;gap:14px;width:100%;min-height:62px;padding:12px 14px;border:1px solid var(--line);border-radius:16px;background:var(--card);color:var(--ink);text-align:left;cursor:pointer}.class-admin-list span,.backup-download-row span{display:grid;gap:4px}.class-admin-list small,.backup-download-row small{color:var(--muted)}.class-admin-list i,.backup-download-row i{color:var(--p);font-style:normal;font-weight:750}
.account-login-modal{background:radial-gradient(circle at 50% 18%,rgba(117,151,112,.2),transparent 40%),rgba(245,247,242,.96)}.account-login{display:grid;justify-items:center;width:min(410px,100%);padding:34px;border:1px solid rgba(255,255,255,.9);text-align:center}.account-login-mark{display:grid;place-items:center;width:68px;height:68px;border-radius:22px;background:linear-gradient(145deg,#799c68,#4f7741);color:#fff;font-size:28px;font-weight:800;box-shadow:0 16px 34px rgba(75,113,63,.24)}.account-login-heading{margin:20px 0 24px}.account-login-heading small{color:#66805d;font-size:11px;font-weight:800;letter-spacing:.14em}.account-login-heading h2{margin:7px 0!important;font-size:27px}.account-login-heading p,.account-login-foot{margin:0;color:var(--muted)}.account-login-form{display:grid;gap:14px;width:100%;text-align:left}.account-login-form label{display:grid;gap:7px;font-weight:700}.account-login-form input{width:100%;min-height:52px;border-radius:14px;padding-inline:15px;font-size:16px}.account-login-submit{width:100%;min-height:52px;margin-top:4px;font-weight:800}.account-login-foot{margin-top:19px;font-size:11px}.login-message{margin:0;color:#b42318;text-align:center}
@keyframes accountLoginIn{from{opacity:0;transform:translateY(8px) scale(.98)}to{opacity:1;transform:none}}
.ios-dictation-list{max-width:900px;margin:auto}.ios-list-header{display:flex;align-items:flex-end;justify-content:space-between;gap:18px;padding:26px 0 18px}.ios-list-header h2{margin:5px 0;font-size:30px}.ios-list-header p{margin:0;color:var(--muted)}.ios-list-tools{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:14px}.ios-session-list{display:grid;gap:10px}.ios-session-row{display:grid;grid-template-columns:auto minmax(0,1fr) auto auto;align-items:center;gap:13px;width:100%;min-height:78px;padding:13px 15px;border:1px solid var(--line);border-radius:20px;background:var(--card);color:var(--ink);text-align:left;box-shadow:var(--shadow);cursor:pointer}.ios-session-symbol{display:grid;place-items:center;width:48px;height:48px;border-radius:16px;background:#e8f0e4;color:#527741;font-weight:850}.ios-session-row>span:nth-child(2),.ios-session-row>strong{display:grid;gap:4px}.ios-session-row small{color:var(--muted);font-size:11px;font-weight:500}.ios-session-row>strong{text-align:right;font-size:20px}.ios-session-row>i{color:var(--muted);font-size:24px;font-style:normal}
.ios-entry-row{display:grid;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:10px;min-height:66px;padding:10px 14px;border-top:1px solid var(--line)}.ios-entry-row:first-child{border-top:0}.ios-entry-row>span{display:grid;gap:4px;min-width:0}.ios-entry-row small{color:var(--muted)}.ios-score-chip{min-width:58px;min-height:44px;padding:8px 11px;border:0;border-radius:14px;background:#edf0ff;color:#4b5dc4;font-size:17px;font-weight:850}.ios-score-edit{min-height:44px;padding:0 2px;border:0;background:transparent;color:var(--muted)}.ios-entry-row>form{grid-column:1/-1;display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:8px;padding:4px 0 3px;animation:accountLoginIn .18s ease-out}.ios-entry-row>form input{min-width:0;min-height:48px;font-size:18px;font-weight:800;text-align:center}.ios-entry-row>form button{min-width:56px;min-height:48px;border:1px solid var(--line);border-radius:13px;background:var(--card);color:var(--ink);font-weight:750}.ios-entry-row>form button.primary{border-color:#5c8949;background:#5c8949;color:#fff}.ios-entry-row.is-editing>.ios-score-chip,.ios-entry-row.is-editing>.ios-score-edit{display:none}
.ios-manual-entry-card{display:grid;gap:18px;padding:20px;border:1px solid var(--line);border-radius:24px;background:var(--card);box-shadow:0 10px 30px rgba(42,58,48,.07)}.ios-manual-entry-card>label{display:grid;grid-template-columns:36px minmax(0,1fr);align-items:center;gap:6px 10px}.ios-manual-entry-card>label>span{grid-row:1/3;display:grid;place-items:center;width:34px;height:34px;border-radius:12px;background:#e8f0e4;color:#527741;font-weight:850}.ios-manual-entry-card>label>b{font-size:15px}.ios-manual-entry-card>label>input,.ios-manual-score{grid-column:2}.ios-manual-entry-card input{width:100%;min-width:0;min-height:52px;font-size:18px}.ios-manual-matches{display:grid;grid-template-columns:repeat(3,1fr);gap:7px;margin:-8px 0 0 46px}.ios-manual-matches:empty{display:none}.ios-manual-matches button{display:grid;gap:2px;min-width:0;min-height:48px;padding:7px;border:1px solid var(--line);border-radius:13px;background:var(--panel-soft,#f3f6f0);color:var(--ink);font-weight:750}.ios-manual-matches small{color:var(--muted);font-size:10px}.ios-manual-score{display:grid;grid-template-columns:minmax(0,1fr) 54px;gap:8px}.ios-manual-score button{border:0;border-radius:13px;background:#fff0f2;color:#c23b54;font-size:22px;font-weight:900}.ios-manual-save{width:100%;min-height:52px;border-radius:16px}.ios-manual-entry-card button:active,.ios-score-chip:active,.ios-score-edit:active{transform:scale(.97)}
.ios-dictation-flow{display:grid;gap:16px;min-width:0}.ios-flow-nav{display:grid;grid-template-columns:minmax(64px,1fr) minmax(0,2fr) minmax(64px,1fr);align-items:center;gap:8px}.ios-flow-nav h2{overflow:hidden;margin:0!important;font-size:18px;text-align:center;text-overflow:ellipsis;white-space:nowrap}.ios-flow-nav button{min-height:42px;padding:0;border:0;background:transparent;color:var(--ink);text-align:left;cursor:pointer}.ios-flow-nav button:last-child{text-align:right}.ios-flow-nav .primary-text{color:#557e44;font-weight:800}.ios-session-status{display:flex;align-items:center;justify-content:space-between;color:var(--muted)}.ios-primary-actions{display:grid;grid-template-columns:repeat(3,1fr);gap:9px}.ios-primary-actions button{display:grid;justify-items:center;gap:7px;min-height:92px;padding:13px 8px;border:1px solid var(--line);border-radius:18px;background:var(--card);color:var(--ink);font-weight:750}.ios-primary-actions button.primary{border-color:transparent;background:#5c8949;color:#fff}.ios-primary-actions button:disabled{opacity:.4}.ios-primary-actions b{font-size:24px}.ios-stats-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}.ios-stats-grid button{display:grid;gap:5px;min-height:76px;padding:11px;border:0;border-radius:16px;background:var(--panel-soft,#f3f6f0);color:var(--ink);text-align:left}.ios-stats-grid small{color:var(--muted)}.ios-stats-grid b{font-size:24px;color:#4f7741}.ios-flow-section{overflow:hidden;border:1px solid var(--line);border-radius:20px;background:var(--card)}.ios-section-link{display:flex;align-items:center;justify-content:space-between;gap:12px;width:100%;min-height:65px;padding:13px 15px;border:0;border-top:1px solid var(--line);background:transparent;color:var(--ink);text-align:left}.ios-section-link:first-child{border-top:0}.ios-section-link span{display:grid;gap:4px}.ios-section-link small{color:var(--muted)}.ios-section-link i{color:var(--muted);font-size:20px;font-style:normal}.ios-section-title{display:flex;align-items:center;justify-content:space-between;padding:14px 15px;border-bottom:1px solid var(--line)}.ios-section-title h3{margin:0}.ios-section-title span{color:var(--muted)}.ios-entry-list>button{display:grid;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:12px;width:100%;min-height:62px;padding:11px 15px;border:0;border-top:1px solid var(--line);background:transparent;color:var(--ink);text-align:left}.ios-entry-list>button:first-child{border-top:0}.ios-entry-list span{display:grid;gap:4px}.ios-entry-list small{color:var(--muted)}.ios-entry-list strong{min-width:44px;padding:8px;border-radius:12px;background:#edf0ff;color:#4b5dc4;text-align:center}.ios-entry-list i{color:var(--muted);font-style:normal}.ios-completion-action{position:sticky;bottom:-22px;margin:0 -22px -22px;padding:12px 22px max(16px,env(safe-area-inset-bottom));border-top:1px solid var(--line);background:rgba(255,255,255,.94);backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px)}.ios-completion-action .btn{width:100%;min-height:52px;border-radius:16px;font-weight:800}.ios-form-section{overflow:hidden;border:1px solid var(--line);border-radius:18px}.ios-form-section label{display:grid;grid-template-columns:110px minmax(0,1fr);align-items:center;gap:12px;min-height:62px;padding:10px 14px;border-top:1px solid var(--line)}.ios-form-section label:first-child{border-top:0}.ios-form-section input,.ios-form-section select{width:100%;min-width:0;border:0;background:transparent;text-align:right}.ios-form-note{margin:0;color:var(--muted);font-size:12px}.ios-score-editor{display:grid;justify-items:center;gap:12px;padding:24px 0}.ios-student-avatar{display:grid;place-items:center;width:72px;height:72px;border-radius:50%;background:#e8f0e4;color:#527741;font-size:26px;font-weight:850}.ios-score-editor h3{margin:0;font-size:25px}.ios-score-editor p{margin:0;color:var(--muted)}.ios-score-editor>input{width:min(260px,100%);min-height:56px;text-align:center;font-size:25px;font-weight:800}.ios-score-buttons{display:grid;grid-template-columns:repeat(6,1fr);gap:7px;width:100%;margin:8px 0}.ios-score-buttons button{min-width:0;min-height:48px;padding:0;border:1px solid var(--line);border-radius:13px;background:var(--card);color:var(--ink);font-weight:800}.ios-score-buttons button.selected{border-color:#5c8949;background:#5c8949;color:#fff}.ios-score-buttons button.fail.selected{border-color:#c8433d;background:#c8433d}.ios-settlement-hero{display:grid;justify-items:center;gap:8px;padding:18px;text-align:center}.ios-settlement-hero>span{display:grid;place-items:center;width:62px;height:62px;border-radius:50%;background:#e6f4df;color:#4f7b3e;font-size:31px;font-weight:900}.ios-settlement-hero h3,.ios-settlement-hero p{margin:0}.ios-settlement-hero p{color:var(--muted)}.ios-settlement-list label{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:12px;min-height:66px;padding:10px 14px;border-top:1px solid var(--line)}.ios-settlement-list label:first-child{border-top:0}.ios-settlement-list label>span{display:grid;gap:4px}.ios-settlement-list small{color:var(--muted)}.ios-danger-row{width:100%;min-height:52px;border:1px solid #ffd5d2;border-radius:16px;background:#fff7f6;color:#b42318;font-weight:800}.ios-card-summary{display:grid;grid-template-columns:1fr 1fr;gap:10px}.ios-card-summary>div{display:grid;gap:7px;padding:17px;border-radius:18px;background:var(--panel-soft,#f3f6f0)}.ios-card-summary small{color:var(--muted)}.ios-card-summary b{font-size:28px;color:#527741}.ios-card-search{width:100%;min-height:50px}.ios-card-roster{display:grid;gap:8px;min-height:0;overflow:auto}.ios-card-roster article{display:grid;grid-template-columns:30px minmax(0,1fr) auto;align-items:center;gap:10px;padding:11px;border:1px solid var(--line);border-radius:16px}.ios-card-roster article>span:nth-child(2){display:grid;gap:3px}.ios-card-roster small{color:var(--muted)}.ios-card-roster article>strong{padding:7px 10px;border-radius:99px;background:var(--panel-soft,#f3f6f0)}.ios-card-roster article>div{grid-column:2/-1;display:grid;grid-template-columns:1fr 44px 44px;gap:7px}.ios-card-roster article>div button{min-height:42px;border:1px solid var(--line);border-radius:12px;background:var(--card);color:var(--ink)}.ios-card-roster article>div .primary{border-color:#5c8949;background:#5c8949;color:#fff}.ios-card-rank{display:grid;place-items:center;width:28px;height:28px;border-radius:10px;background:var(--panel-soft,#f3f6f0);color:var(--muted);font-weight:800}

@media(max-width:820px){
  html,body{max-width:100%;overflow-x:hidden}.app{display:block;min-height:100dvh;padding-bottom:0!important}body:has(.account-login-modal) .app{display:none!important}.side{display:none!important}main{display:block!important;width:100%;margin:0!important}.content{padding-bottom:max(28px,env(safe-area-inset-bottom))!important}.top{min-height:68px;height:auto;padding-right:14px!important}.top>[onclick="openNewClass()"]{display:none!important}.top-tools{min-width:0}.mobile-menu-button{display:grid!important;place-items:center;width:44px;height:44px;padding:0;border:1px solid rgba(255,255,255,.75);border-radius:14px;background:rgba(255,255,255,.74);color:var(--ink);font-size:22px;box-shadow:0 8px 24px rgba(50,69,48,.1);backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px)}html.standard-user-workbench .mobile-menu-button{display:none!important}
  .account-login-modal{display:grid!important;place-items:center!important;align-items:center!important;min-height:100dvh;padding:max(18px,env(safe-area-inset-top)) max(16px,env(safe-area-inset-right)) max(18px,env(safe-area-inset-bottom)) max(16px,env(safe-area-inset-left))!important}.account-login-modal .account-login{position:relative;width:min(100%,390px)!important;max-height:calc(100dvh - 36px)!important;margin:auto!important;padding:28px 22px!important;border-radius:28px!important;overflow:auto;animation:accountLoginIn .24s ease-out both!important}.account-login-modal .account-login::before{display:none!important}
  .toolbar{align-items:stretch}.toolbar>input,.toolbar>select,.toolbar>.btn{width:100%;max-width:none!important;min-width:0!important}.head{align-items:flex-start}.head>.actions{width:100%}.table{min-width:620px}.card:has(>.table){overflow-x:auto;-webkit-overflow-scrolling:touch}
  .homework-demo-shell{position:relative!important;width:100%!important;height:calc(100dvh - 68px)!important;min-height:560px!important;margin:-14px -14px max(-28px,calc(-1 * env(safe-area-inset-bottom)))!important}.homework-demo-shell iframe{display:block!important;width:100%!important;height:100%!important;min-height:560px!important;background:#f6f8f4!important}
  html.dictation-flow-active,html.dictation-flow-active body{overflow:hidden}.ios-dictation-dialog{position:fixed!important;inset:0!important;width:100%!important;height:var(--visual-viewport-height,100dvh)!important;max-width:none!important;max-height:none!important;margin:0!important;padding:max(14px,env(safe-area-inset-top)) max(14px,env(safe-area-inset-right)) max(14px,env(safe-area-inset-bottom)) max(14px,env(safe-area-inset-left))!important;border-radius:0!important;overflow-y:auto!important;overscroll-behavior:contain;scroll-padding-bottom:24px}.ios-dictation-dialog::before{display:none!important}.ios-dictation-flow{min-height:calc(var(--visual-viewport-height,100dvh) - 28px - env(safe-area-inset-top) - env(safe-area-inset-bottom));align-content:start}.ios-dictation-cards{height:calc(var(--visual-viewport-height,100dvh) - 28px - env(safe-area-inset-top) - env(safe-area-inset-bottom));grid-template-rows:auto auto auto minmax(0,1fr)}.ios-card-roster{padding-bottom:8px}.ios-list-header{align-items:stretch;flex-direction:column}.ios-list-header .btn{width:100%;min-height:50px}.ios-list-tools{display:grid;grid-template-columns:repeat(3,1fr)}.ios-list-tools .btn{min-width:0;padding-inline:5px}.ios-stats-grid{gap:6px}.ios-stats-grid button{min-width:0;padding:9px}.ios-score-buttons{grid-template-columns:repeat(3,1fr)}.ios-completion-action{bottom:calc(-14px - env(safe-area-inset-bottom));margin:auto -14px calc(-14px - env(safe-area-inset-bottom));padding-inline:14px}.ios-manual-entry-card{padding:17px 14px;border-radius:22px}.ios-manual-matches{grid-template-columns:repeat(2,1fr);margin-left:44px}
  .class-admin-section .head,.backup-history .head{gap:12px}.class-admin-section .head .btn{width:100%}
}
@media(max-width:370px){.ios-primary-actions{grid-template-columns:1fr}.ios-primary-actions button{grid-template-columns:auto 1fr;justify-items:start;align-items:center;min-height:58px}.ios-stats-grid{grid-template-columns:1fr 1fr}.ios-form-section label{grid-template-columns:90px minmax(0,1fr)}.account-login{padding-inline:18px!important}.ios-entry-row{grid-template-columns:minmax(0,1fr) auto}.ios-score-edit{display:none}.ios-entry-row>form{grid-template-columns:1fr 1fr}.ios-entry-row>form input{grid-column:1/-1}.ios-manual-matches{grid-template-columns:1fr}}
@media(prefers-reduced-motion:reduce){.account-login-modal .account-login,.ios-dictation-flow *{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important}}

.ios-settlement-list label>.btn{grid-column:1/-1;min-height:44px}.ios-settlement-list select{min-width:0;max-width:100%}

/* Multipart dictation uses the existing form and scanner surfaces. */
.ios-form-section textarea{width:100%;min-width:0;resize:vertical;font:inherit;color:var(--ink);background:var(--card);border:1px solid var(--line);border-radius:12px;padding:10px;box-sizing:border-box}
.dictation-parts .ios-form-section{display:grid;gap:14px;padding:16px;min-width:0}
.dictation-parts h3{margin:0;overflow-wrap:anywhere}.dictation-parts .ios-form-note{font-size:14px;line-height:1.6}
.dictation-parts .btn{min-height:48px;white-space:normal}.dictation-parts .ios-flow-nav button{min-height:44px}
.dictation-parts .ios-form-section label{padding:8px 0;grid-template-columns:minmax(0,1fr);gap:8px}
.dictation-parts #dictationPartScore{min-height:48px;border:1px solid var(--line);border-radius:12px;text-align:center;font-size:24px}
