/* Extend the approved warm reading workspace; no landing redesign. */
[hidden],.hidden{display:none!important}
.attachments{display:grid;gap:8px;margin:12px 0}
.attachment-item{display:flex;align-items:center;gap:12px;font-size:13px;min-width:0}
.attachment-item img{width:48px;height:60px;object-fit:cover;border-radius:5px}
.attachment-item span{overflow-wrap:anywhere;flex:1}
.confirmation{margin:0 0 32px;padding:20px 0;border-bottom:1px solid var(--line)}
.confirmation .problem-statement{margin:14px 0;line-height:1.8;overflow-wrap:anywhere}
.confirmation-fields{display:grid;grid-template-columns:auto minmax(90px,1fr) auto minmax(90px,1fr);gap:12px;align-items:center;margin:20px 0;font-size:13px}
.confirmation select,.confirmation textarea{border:1px solid var(--line);border-radius:7px;background:var(--paper);color:var(--ink);padding:10px;min-height:44px}
.confirmation textarea{width:100%;min-height:100px}
.conversation-turn{margin:0 0 35px}
.student-message{margin:0 0 18px auto;padding:16px 20px;max-width:90%;border-radius:12px;background:var(--paper-2);white-space:pre-wrap;overflow-wrap:anywhere}
.photo-gallery{display:flex;flex-wrap:wrap;gap:12px;margin-top:12px}
.photo-button{display:grid;gap:6px;border:0;background:transparent;padding:0;color:var(--ink-soft);font-size:12px;text-align:left}
.photo-button img{width:104px;height:136px;object-fit:cover;border-radius:6px}
.photo-modal{border:0;border-radius:10px;background:var(--paper);padding:20px;max-width:95vw;max-height:92vh}
.photo-modal::backdrop{background:rgba(18,18,23,.65)}
.photo-modal img{display:block;max-width:100%;max-height:62vh;width:auto;height:auto;object-fit:contain;margin:0}
.photo-modal img{background:white}
.photo-modal img.condition-image{width:min(640px,74vw);height:auto}
.photo-title{font:600 18px/1.4 var(--sans);color:var(--ink);margin:16px 0 8px}
.photo-note{font:14px/1.5 var(--sans);color:var(--ink);max-width:60ch;margin:0 0 12px}
.photo-canvas{position:relative;width:fit-content;max-width:100%;margin:0 auto}
.error-photo-frame{position:absolute;pointer-events:none;box-sizing:border-box;border:2px solid #9b3b20;background:rgba(216,113,53,.12)}
.photo-quote{max-width:70ch;overflow-x:auto;color:var(--ink);font-size:16px;margin:16px 0 0}
.photo-quote:empty{display:none}
.photo-quote-label{display:block;font:14px/1.5 var(--sans);margin-bottom:8px}
.photo-modal .small-button{min-height:44px}
.condition-figures{display:flex;flex-wrap:wrap;gap:16px;margin:16px 0}
.condition-figure{display:grid;gap:8px;padding:0;border:0;background:transparent;text-align:left;max-width:100%;cursor:zoom-in;color:var(--ink-soft);font:13px/1.4 var(--sans)}
.condition-figure img{display:block;max-width:100%;height:auto;background:white;padding:8px;box-sizing:border-box;border-radius:6px}
.condition-figure:focus-visible{outline:2px solid var(--ink);outline-offset:4px}
.condition-figure-caption{min-height:24px}
.processing-message{padding:22px 0;margin:0 0 20px;color:var(--ink)}
.processing-message p,.message-receipt{font-size:13px;color:var(--ink-soft)}
.error-formula{margin:18px 0;padding:14px 0;overflow:auto;max-width:100%;font-size:17px}
.inline-formula{display:inline-block;max-width:100%;overflow-x:auto;vertical-align:middle}
.feedback-message,.hint-strip{white-space:pre-wrap;line-height:1.75}
.hint-strip{border:0;padding:18px 0;background:transparent;border-top:1px solid var(--line);border-radius:0;color:var(--ink);font-size:16px}
.agent-block .hint-heading{font:600 18px/1.4 var(--sans);letter-spacing:normal;color:var(--ink);margin:0 0 12px}
.hint-body .katex{display:inline-block;max-width:100%;overflow-x:auto;vertical-align:middle}
.hint-body .katex-display{max-width:100%;overflow-x:auto}
.history-result{font-size:24px;line-height:1.2;font-variant-numeric:tabular-nums}
.history-result.is-unscored{font-size:13px;line-height:1.4;max-width:150px}
.auth-modal{max-height:90dvh;overflow-y:auto}
.auth-modal #invite-code{font-family:var(--sans);letter-spacing:.04em;text-transform:uppercase}
.auth-modal .auth-message{color:var(--ink);min-height:24px;line-height:1.6}
.code-form{display:grid;grid-template-columns:140px minmax(0,1fr) auto;gap:20px;align-items:end}
.code-form .form-label{display:block;margin-bottom:8px}
.code-form .form-control{width:100%;margin:0;min-height:44px;color:var(--ink);background:var(--paper)}
.access-page h3{font:600 20px/1.4 var(--sans);margin:24px 0 12px}
.access-page p{color:var(--ink-soft)}
.access-page #code-status{color:var(--ink);min-height:24px}
#issued-section{padding:8px 0 28px;border-bottom:1px solid var(--line)}
#issued-codes{width:100%;resize:vertical;min-height:150px;padding:16px;border:1px solid var(--line);border-radius:7px;background:var(--paper);color:var(--ink);font:15px/1.8 var(--sans)}
.code-list-heading{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-top:24px}
.code-row{display:grid;grid-template-columns:minmax(0,1fr) 160px auto;gap:20px;align-items:center;padding:20px 0;border-bottom:1px solid var(--line);font-size:14px}
.code-row small{display:block;color:var(--ink-soft);margin-top:4px;overflow-wrap:anywhere}
.access-page .small-button,#logout{min-height:44px}
.mobile-bottom-nav{grid-template-columns:repeat(4,minmax(0,1fr))}
.mobile-bottom-nav.admin-navigation{grid-template-columns:repeat(5,minmax(0,1fr))}
.sidebar-nav .learning-nav-link{display:flex;align-items:center;min-height:44px;padding:14px 12px;border-radius:7px;color:var(--ink-soft);font:15px/1.4 var(--sans);text-decoration:none}
.learning-nav-link:focus-visible{outline:2px solid var(--ink);outline-offset:2px}
.sidebar-nav .learning-nav-link:hover{background:var(--paper);color:var(--ink)}
.mobile-bottom-nav .learning-nav-link{display:flex;align-items:center;justify-content:center;min-height:44px;color:var(--ink);font:12px/1.3 var(--sans);text-decoration:none}
.mobile-bottom-nav:has(.learning-nav-link:not([hidden])){grid-template-columns:repeat(6,minmax(0,1fr))}
.mobile-bottom-nav.admin-navigation:has(.learning-nav-link:not([hidden])){grid-template-columns:repeat(7,minmax(0,1fr))}
@media(max-width:700px){.code-form{grid-template-columns:1fr;gap:16px}.code-row{grid-template-columns:minmax(0,1fr) auto;gap:12px}.code-row>span{grid-column:1;font-size:13px}.code-row>button{grid-row:1 / span 2;grid-column:2}}
.criterion-detail{margin-top:22px;padding-top:18px;border-top:1px solid var(--line)}
.criterion-detail h3{font-size:16px;margin:0 0 9px}
.criterion-detail p{font-size:13px;color:var(--ink-soft);line-height:1.65}
.numeric-score{font-size:40px;font-variant-numeric:tabular-nums;margin:18px 0}
#progress-view{--ink-soft:#606b7c}
.metric-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
.skill-grid{display:block}
.progress-toolbar{display:flex;flex-wrap:wrap;align-items:end;gap:20px;margin-bottom:20px}
.progress-tabs{display:flex;gap:8px;flex:1;margin:0}
.progress-tabs button{min-height:44px}
.progress-field{display:grid;gap:6px}
.progress-field label{font-size:13px;color:var(--ink-soft)}
.progress-field select{max-width:100%;min-height:44px;padding:8px 12px;border:1px solid var(--line);border-radius:7px;color:var(--ink);background:var(--paper)}
.progress-explanation,.progress-help{font-size:14px;color:var(--ink-soft);line-height:1.6}
.progress-help{margin-top:28px}
.progress-help summary{cursor:pointer;min-height:44px;padding:10px 0;color:var(--ink)}
.progress-toolbar :focus-visible,.statistics-group>summary:focus-visible,.progress-help>summary:focus-visible{outline:2px solid var(--ink);outline-offset:4px}
.statistics-group{padding:16px 0;border-bottom:1px solid var(--line)}
.statistics-group>summary{cursor:pointer;font-size:18px;font-weight:600;padding:10px 0}
.task-statistic-summary{display:block;font-size:14px;font-weight:400;color:var(--ink-soft);margin:6px 0 0 20px}
.statistic-list{list-style:none;margin:0;padding:0}
.statistic-row{display:grid;grid-template-columns:minmax(0,1fr) 150px;gap:24px;padding:20px 0;align-items:center;border-top:1px solid var(--line)}
.statistic-title{font-size:16px;font-weight:600}
.statistic-detail{min-width:0;overflow-wrap:anywhere}
.statistic-fact{margin:6px 0 0;font-size:14px;font-variant-numeric:tabular-nums}
.statistic-note{margin:8px 0 0;font-size:13px;color:var(--ink-soft)}
.statistic-scale{display:grid;gap:4px;font-variant-numeric:tabular-nums}
.statistic-scale strong{font-size:25px;font-weight:600;white-space:nowrap}
.statistic-scale small{font-size:13px;color:var(--ink-soft)}
.statistic-scale meter{width:100%;height:12px;accent-color:var(--ink)}
.statistic-scale meter::-webkit-meter-bar{background:var(--line);border:0;border-radius:2px}
.statistic-scale meter::-webkit-meter-optimum-value{background:var(--ink);border-radius:2px}
.statistic-scale meter::-moz-meter-bar{background:var(--ink)}
.statistic-unobserved{font-size:14px;color:var(--ink-soft)}
@media(max-width:700px){
  .confirmation-fields{grid-template-columns:1fr 1fr}
  .confirmation-fields label:nth-of-type(2){grid-column:1}
  .student-message{max-width:100%}
  .topbar-actions{gap:5px}.topbar-actions #new-task{padding:8px;font-size:11px;min-height:44px}
  .progress-toolbar{gap:16px}
  .progress-tabs{flex-basis:100%}
  .progress-field{flex:1;min-width:0}
  .progress-field select{width:100%;font-size:13px}
  .statistic-row{grid-template-columns:minmax(0,1fr) 108px;gap:16px}
  .statistic-scale strong{font-size:21px}
  .statistic-fact,.statistic-note,.statistic-scale small{font-size:12px}
}

/* Worksheet surfaces reuse the reading workspace, not the marketing landing. */
:root{--worksheet-muted:#606b7c}
.worksheets-page,.worksheet-panel,.worksheet-dialog{--ink-soft:var(--worksheet-muted)}
.worksheets-page{max-width:1100px;margin:0 auto}
.worksheet-form{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;padding:24px 0;border-block:1px solid var(--line)}
.worksheet-field{display:grid;align-content:start;gap:8px;min-width:0}
.worksheet-field label,.worksheet-scope legend{font-size:14px;font-weight:600}
.worksheet-field select{min-height:44px;width:100%;padding:10px 12px;border:1px solid var(--line);border-radius:7px;color:var(--ink);background:var(--paper)}
.worksheet-scope{grid-column:1/-1;display:flex;flex-wrap:wrap;gap:8px;border:0;padding:0;margin:0;min-width:0}
.worksheet-scope legend{margin-bottom:12px}
.worksheet-scope label{display:flex;align-items:center;gap:8px;min-height:44px;padding:0 12px;background:var(--paper-2);border-radius:5px;font-size:14px}
.worksheet-scope label:has(input:disabled){color:var(--ink-soft);background:transparent}
.worksheet-scope input{accent-color:var(--ink)}
.worksheet-note{color:var(--ink-soft);font-size:14px;line-height:1.6;margin:8px 0}
.worksheet-form>.worksheet-note,.worksheet-message{grid-column:1/-1}
.worksheet-form>button{justify-self:start;min-height:44px}
.worksheet-message{color:var(--ink);margin:0;min-height:24px;font-size:14px;line-height:1.6}
.worksheet-toolbar{display:flex;flex-wrap:wrap;gap:8px;margin:24px 0}
.worksheet-toolbar button,.worksheet-sheet button{min-height:44px}
.worksheet-toolbar button:last-child{margin-left:auto}
.worksheet-list,.worksheet-task-list,.worksheet-panel-list{list-style:none;padding:0;margin:0}
.worksheet-list-link{width:100%;display:flex;justify-content:space-between;align-items:center;gap:24px;padding:24px 0;border:0;border-bottom:1px solid var(--line);background:transparent;color:var(--ink);text-align:left;font:16px/1.5 var(--sans)}
.worksheet-list-link small{display:block;color:var(--ink-soft);font-size:14px;margin-top:4px}
.worksheet-list-link>span:last-child{font-size:14px;white-space:nowrap;font-variant-numeric:tabular-nums}
.worksheet-list-link:hover,.worksheet-panel-link:hover{background:var(--paper-2)}
.worksheet-sheet-heading,.worksheet-task-heading,.worksheet-task-actions{display:flex;justify-content:space-between;align-items:center;gap:16px}
.worksheet-sheet-heading{margin:24px 0 16px}
.worksheet-sheet h3{font:600 24px/1.4 var(--sans);margin:0}
.worksheet-task{padding:32px 0;border-top:1px solid var(--line)}
.worksheet-task-heading{justify-content:flex-start;margin-bottom:20px}
.worksheet-position{font:400 32px/1 var(--display);font-variant-numeric:tabular-nums}
.worksheet-task-caption,.worksheet-outcome{font-size:14px;color:var(--ink-soft);line-height:1.6}
.worksheet-statement{font:18px/1.8 Georgia,serif;white-space:pre-wrap;overflow-wrap:anywhere;margin:0 0 24px}
.worksheet-statement .katex-display{max-width:100%;overflow-x:auto;overflow-y:hidden}
.worksheet-statement .katex{max-width:100%}
.worksheet-chat-note{padding:0 0 24px;color:var(--ink-soft);font-size:14px;line-height:1.6}
.worksheet-panel{padding:32px 24px;border-left:1px solid var(--line);background:var(--paper-2);min-width:0}
.worksheet-panel h2,.worksheet-dialog h2{font:600 20px/1.4 var(--sans);margin:0 0 12px}
.worksheet-panel-link{display:grid;gap:8px;width:100%;padding:16px 0;border:0;border-bottom:1px solid var(--line);background:transparent;color:var(--ink);text-align:left;font:14px/1.5 var(--sans)}
.worksheet-panel-link span{color:var(--ink-soft);font-size:13px}
.worksheet-panel-link[aria-current]{font-weight:600;text-decoration:underline;text-underline-offset:4px}
.worksheet-panel>button,.worksheet-dialog button{min-height:44px;margin-top:16px}
.worksheet-dialog{max-width:min(90vw,480px);width:100%;max-height:85dvh;overflow:auto;border:1px solid var(--line);border-radius:12px;padding:24px;background:var(--paper);color:var(--ink)}
.worksheet-dialog::backdrop{background:rgba(18,18,23,.6)}
.worksheet-dialog>button{margin:0 0 24px}
#worksheet-panel-trigger{margin-bottom:24px;min-height:44px}
.worksheets-page :focus-visible,.worksheet-panel :focus-visible,.worksheet-dialog :focus-visible{outline:2px solid var(--ink);outline-offset:4px}
.worksheet-form button:disabled,.worksheet-field select:disabled{cursor:not-allowed;color:var(--ink-soft);background:var(--paper-2)}
@media(min-width:1200px){
  .chat-layout.has-worksheet:not(.inspector-open){grid-template-columns:minmax(0,1fr) 280px}
  .chat-layout.has-worksheet:not(.inspector-open) #worksheet-panel-trigger{display:none}
}
@media(max-width:1199px){.worksheet-panel{display:none}}
.chat-layout.inspector-open .worksheet-panel{display:none}
@media(max-width:700px){
  .worksheet-form{grid-template-columns:1fr;gap:16px}
  .worksheet-task{padding:24px 0}
  .worksheet-task-actions,.worksheet-sheet-heading{align-items:flex-start;flex-wrap:wrap}
  .worksheet-statement{font-size:17px}
  .worksheet-scope{gap:4px}
  .worksheet-scope label{padding:0 8px}
  .worksheet-list-link{gap:12px;font-size:15px}
  .worksheet-list-link>span:last-child{white-space:normal;max-width:100px;text-align:right}
}
