:root{font:16px/1.5 system-ui,-apple-system,"PingFang SC",sans-serif;color:#19362e;background:#f4f8f5;color-scheme:light}
*{box-sizing:border-box}
body{margin:0}
[hidden]{display:none!important}
#studyHold{touch-action:none;user-select:none;-webkit-user-select:none}
#studyHelp .question-list p{white-space:pre-wrap}
a{color:#176443;text-decoration:none}
button,input,select,textarea{font:inherit}
button{min-height:44px;cursor:pointer;background:#176443;color:white;border:1px solid #176443;border-radius:10px;padding:.55rem .95rem;font-weight:650}
button:disabled{opacity:.52;cursor:default}
button.outline{background:white;color:#176443;border-color:#b9d1c4}
:focus-visible{outline:3px solid #368e64;outline-offset:2px}
.shell{max-width:1060px;margin:auto;padding-inline:clamp(16px,4vw,40px)}
.bar,.account,.list-head{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap}
.bar{padding-top:20px;padding-bottom:20px;border-bottom:1px solid #dbe8df}
.brand{display:flex;align-items:center;gap:8px;font-weight:750}
.brand span{background:#e0eee4;border-radius:10px;padding:.25rem .55rem}
nav{display:flex;gap:8px}
nav a{padding:.5rem .7rem;border-radius:10px}
nav a[aria-current]{background:#e0eee4;font-weight:700}
.intro{padding:32px 0 20px}
h1,h2,p{margin:0}
h1{font-size:clamp(2rem,5vw,3.2rem);line-height:1.2;letter-spacing:-.04em;margin:6px 0 10px}
h2{font-size:1.3rem;margin-bottom:6px}
.eyebrow{color:#397055;font-size:.85rem;font-weight:720}
#subtitle,#progress,.meta{color:#526c61}
.card{padding:clamp(17px,4vw,28px);background:#fff;border:1px solid #dbe8df;border-radius:18px;min-width:0}
.login{max-width:450px;margin-bottom:30px}
.account{margin-bottom:10px;color:#526c61;font-size:.9rem}
#account{min-width:0;overflow-wrap:anywhere}
#workspace{max-width:760px;margin-inline:auto;padding-top:10px}
.grid{display:grid;grid-template-columns:minmax(0,1fr);gap:16px;align-items:start;padding-bottom:30px}
.parent-actions{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:10px;margin-bottom:12px}
.parent-actions label{font-size:.9rem}
.parent-actions select{font-size:1rem;text-overflow:ellipsis}
.workspace-nav{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.3fr) repeat(3,minmax(0,1fr));gap:6px;margin-bottom:12px}
.student .workspace-nav{grid-template-columns:repeat(3,minmax(0,1fr))}
.student .workspace-nav{margin-top:0}
.student-today{margin:4px 0 12px}
.student-today-head{margin-bottom:12px}
.student-today-head h1{margin:0 0 4px;font-size:clamp(1.75rem,6vw,2.5rem);line-height:1.16;color:#163e34}
.student-today-head p:not(:empty){color:#426559}
.student-next-card{padding:clamp(16px,4vw,24px);border:1px solid #a6cfb7;border-radius:18px;background:#dff1e5}
.student-next-label{margin:0 0 6px;color:#215d43;font-weight:750}
.student-next-card h2{margin:0 0 4px;font-size:clamp(1.25rem,5vw,1.6rem);overflow-wrap:anywhere}
.student-next-meta{margin:0 0 6px;color:#345b4c;font-size:.9rem}
.student-task-action-block{margin-top:10px}
.student-task-actions{display:flex;flex-wrap:wrap;gap:8px}
.student-task-actions button{min-height:46px}
.student-next-card .student-task-actions button:first-child{flex:1;font-size:1rem}
.student-task-upload:not([open]),.student-task-upload>summary{display:none}
.student-task-upload[open]{margin-top:12px;padding:10px;border:1px solid #b6d5c3;border-radius:12px;background:#fff;scroll-margin-bottom:86px}
.student-task-row{padding-block:12px}
.list-actions{display:flex;align-items:center;flex-wrap:wrap;gap:6px}
.reading-photo{display:block;max-width:100%;height:auto;max-height:60vh;object-fit:contain;margin-top:8px}
.week-draft .draft-row{display:grid;gap:8px}
.week-draft .draft-row .curriculum-actions{align-items:end}
.week-questions{padding-left:1.4rem}
.weekly-review-block{margin-top:16px}
.weekly-review-block h3,.weekly-review-subject h4{margin:0 0 5px}
.weekly-review-subject,.weekly-review-topic{padding:10px 0;border-top:1px solid #dbe8df}
.weekly-review-topic,.weekly-review-tasks li{display:flex;justify-content:space-between;align-items:center;gap:10px}
.weekly-review-topic>div,.weekly-review-tasks li>span:first-child{min-width:0;overflow-wrap:anywhere}
.weekly-review-tasks{margin:6px 0 0}
.weekly-review-tasks li{padding:5px 0}
.weekly-review-tasks li>span:last-child{white-space:nowrap}
.mastery-row{align-items:flex-start}
.mastery-action{flex-shrink:0;text-align:right}
.mastery-action p{margin:0 0 4px}
.mastery-foundations{display:flex;flex-wrap:wrap;align-items:center;gap:6px}
.assignment-choices{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;margin:8px 0}
#assignmentSubjects{grid-template-columns:repeat(5,minmax(0,1fr))}
.assignment-choices button{padding-inline:4px;white-space:nowrap}
.assignment-choices button[aria-pressed=true]{background:#e0eee4;border-color:#3e8967}
.paper-assignment-options{display:flex;flex-wrap:wrap;align-items:center;gap:8px 16px}
.assignment-duration{display:inline-flex;align-items:center;gap:8px}
.assignment-duration input{width:5.2rem;padding-inline:.5rem}
.generated-release{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:8px}
#parentTools:not(.planning-week) .generate-for-week,#parentTools.planning-week .generate-for-today{display:none}
@media screen and (max-width:380px){
  body:not(.student) #queueView:has(.nav-count:not([hidden])){flex-direction:column;gap:0;line-height:1.1;padding-block:4px}
}
.student #studentQueueSlot button[aria-pressed=true]{background:#e0eee4;border-color:#3e8967}
#studentWrongCount{margin-left:2px}
#studyHome{scroll-margin-top:10px}
@media screen and (max-width:670px){
  .student #workspace{padding-bottom:calc(72px + env(safe-area-inset-bottom))}
  .student .workspace-nav{position:fixed;z-index:10;bottom:0;left:0;right:0;margin:0;
    padding:8px max(10px,env(safe-area-inset-right)) calc(8px + env(safe-area-inset-bottom)) max(10px,env(safe-area-inset-left));
    border-top:1px solid #c7ddd1;background:#f8fcf9}
  .student .workspace-nav button{min-height:45px}
}
.workspace-nav button{display:flex;align-items:center;justify-content:center;gap:4px;padding-inline:4px;white-space:nowrap;font-size:.875rem}
.workspace-nav button[aria-pressed=true]{background:#e0eee4;border-color:#3e8967;color:#10462d}
.nav-count{padding:1px 5px;border-radius:999px;background:#176443;color:white;font-size:.73rem}
#studyHelp{margin:0 0 12px;padding:0;border:1px solid #b8d7c5;border-radius:14px;background:#fff;overflow:hidden}
#studyHelp[open]{padding-bottom:12px}
#studyHelp .study-entry{display:flex;justify-content:space-between;align-items:center;gap:8px;min-height:64px;padding:10px 14px;background:#e0f2e7;list-style:none}
#studyHelp .study-entry::-webkit-details-marker{display:none}
.study-entry strong{display:block;font-size:1.22rem}
.study-entry-description{display:block;color:#416454;font-size:.82rem;font-weight:500}
.study-entry-action{flex:none;padding:6px 10px;border-radius:9px;background:#176443;color:white;font-size:.84rem}
#studyHelp:not([open]) .study-entry-action span:last-child,#studyHelp[open] .study-entry-action span:first-child{display:none}
#studyHelp > :not(summary){margin-inline:14px}
#studyHelp > .meta:not(:empty),#studyRealtime,#studyClear{margin-top:10px}
#studyHelp .study-entry:focus-visible{outline-offset:-4px}
form,label{display:grid;gap:6px}
form{gap:12px;margin-top:14px}
label{font-weight:550}
input,select,textarea{width:100%;min-height:44px;border:1px solid #bacfc3;border-radius:9px;background:white;color:inherit;padding:.5rem .65rem}
.pair{display:grid;grid-template-columns:1fr 1fr;gap:10px}
details{border-top:1px solid #dbe8df;margin-top:18px;padding-top:14px}
summary{cursor:pointer;color:#176443;font-weight:650}
ul{padding:0;list-style:none;margin:14px 0 0}
li{border-top:1px solid #e3eee7;padding:13px 0;overflow-wrap:anywhere}
li .meta{font-size:.9rem;margin-top:3px}
li button,.badge{flex-shrink:0}
.badge{background:#edf3ef;border-radius:20px;padding:.2rem .65rem;font-size:.85rem}
.badge.done{background:#e1f3e8;color:#0c6037}
.notice{border-radius:10px;padding:.65rem .85rem;background:#e1f3e8;margin-bottom:14px;overflow-wrap:anywhere}
.notice.error{background:#fff0e8;color:#843915}
@media(max-width:670px){.intro{padding-top:22px}.bar{padding-top:10px;padding-bottom:10px;gap:6px}.bar nav{gap:2px}.bar nav a{padding:.45rem .5rem;font-size:.88rem}}

textarea{resize:vertical}
.task-header,.history{display:flex;justify-content:space-between;align-items:center;gap:10px}
.history{justify-content:flex-start;align-items:end;flex-wrap:wrap;margin:12px 0}
#history{margin:9px 0 12px;padding-top:8px}
.task-group{padding:0;border:0}
.task-group + .task-group{margin-top:14px}
.task-group ul{margin-top:4px}
.subject-heading{margin:0;padding:5px 8px;border-radius:6px;background:#eff6f1;color:#315b48;font-size:.92rem}
.completed-tasks{margin-top:10px;padding-top:10px}
.completed-tasks > summary{min-height:44px;line-height:44px}
.task-menu{margin-top:0;padding:0;border:0;text-align:right}
.task-menu > summary{display:inline-flex;align-items:center;min-height:44px;color:#526c61;font-size:.85rem}
.task-menu > summary::after{content:"···";padding-left:4px}
.task-menu > button{margin-left:6px}
.exercise{margin-top:8px;padding-top:6px;border:0}
.question-list{display:grid;gap:12px;margin-top:10px}
.question-list>div{padding:10px 12px;background:#f4f8f5;border-radius:10px}
.answer-text{white-space:pre-wrap;overflow-wrap:anywhere;margin-top:4px}

.view-tabs{display:flex;flex-wrap:wrap;gap:8px;margin:8px 0 12px}
.view-tabs button[aria-pressed=true]{background:#e0eee4;border-color:#90b7a4}
fieldset{min-width:0;border:1px solid #bacfc3;border-radius:10px;padding:10px 12px;margin:0}
legend{padding-inline:6px;font-weight:700}
#bankQuestions{display:grid;gap:6px;margin-top:8px}
.bank-option{display:flex;align-items:center;gap:8px;font-weight:500}
.bank-option input{width:1.05rem;min-height:1.05rem;flex-shrink:0;accent-color:#176443}
.question-card .badge{display:inline-block;margin:5px 0}
.question-card .hint-list:not(:empty){margin:8px 0;padding:8px 10px;background:#e1f3e8;border-radius:8px}

.adaptive-panel,.adaptive-overview{display:grid;gap:8px}
.adaptive-panel{margin-top:10px;padding:12px;border:1px solid #c7ddd1;border-radius:12px}
.adaptive-panel h3{font-size:1.15rem;margin:0}
.adaptive-panel .adaptive-feedback,.adaptive-panel .hint-list:not(:empty){padding:8px 10px;background:#e1f3e8;border-radius:8px}
.adaptive-panel form{margin-top:0}
.adaptive-panel>button{justify-self:start}

.choice-options{display:grid;gap:8px}
.bank-option input[type=radio]{width:1.12rem;min-height:1.12rem}
.option-list{padding-inline-start:1.5rem}
.option-list li{padding:3px 0;border:0}
.plan-sessions{margin:10px 0 0;padding-inline-start:1.2rem}
.plan-sessions button{margin-top:6px}
.curriculum-fields,.curriculum-session{display:grid;gap:8px;margin-top:10px}
.curriculum-fields small{color:#526c61;font-weight:400}
.curriculum-actions{display:flex;gap:8px;flex-wrap:wrap}
.curriculum-preview{border:1px solid #c7ddd1;border-radius:10px;padding:10px}
.curriculum-preview ol{margin:6px 0;padding-left:1.4rem}
.curriculum-preview li{padding:3px 0;border:0}
#planEditor{border-top:1px solid #dbe8df;padding-top:10px}
#planEditor h3{margin:0;font-size:1.06rem}
.curriculum-session{margin-top:0}
.curriculum-session .pair{grid-template-columns:minmax(0,1.4fr) minmax(0,1fr)}
#generatedStatus:not(:empty),#generatedPreview:not(:empty),#generatedBankList:not(:empty){margin-top:10px}
#generatedPreview .question-list{padding-left:1.45rem}
#generatedPreview .question-card{padding-inline:8px}
#generatedPreview .question-card button{margin-top:6px}
#generatedBankList button{margin:3px 6px 3px 0}

.learning-map dt{font-weight:700;margin-top:10px}
.learning-map dd{margin:3px 0 0;color:#526c61}

.subject-tabs{display:flex;flex-wrap:wrap;gap:5px;margin:8px 0}
.subject-tab{display:grid;justify-items:start;gap:1px;min-width:0;padding:.5rem .6rem;background:#f8fbf9;color:#19362e;border-color:#dbe8df}
.subject-tab[aria-pressed=true]{background:#e0eee4;border-color:#3e8967;color:#10462d}
.subject-count{font-size:.75rem;font-weight:500;color:#526c61;white-space:nowrap}

.paper-panel{display:grid;gap:10px;margin-top:10px}
.paper-panel img{display:block;max-width:100%;max-height:34rem;object-fit:contain;border:1px solid #dbe8df;border-radius:10px}
.paper-panel form{margin-top:0}
.paper-consent{display:flex;align-items:start;gap:8px}
.paper-consent input{width:1.05rem;min-height:1.05rem;flex-shrink:0;margin-top:4px}
.paper-row{display:grid;gap:8px;padding:10px 12px;background:#f4f8f5;border-radius:10px}
.paper-answer-compare{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.paper-answer-compare label{min-width:0}
.paper-answer-compare textarea{min-height:5rem}
.paper-recheck-hint:not(:empty){padding:7px 9px;border-radius:7px;background:#e5f1e8}
.paper-overview{display:grid;gap:4px}
.paper-overview-line{display:flex;align-items:center;gap:8px}
.paper-overview-line>button{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:8px;flex:1;min-width:0;text-align:left;padding:8px 10px}
.paper-overview-line>input{width:1.2rem;min-height:1.2rem;flex:none}
.paper-overview-answer{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:400}
.paper-overview-grade{font-size:.82rem;white-space:nowrap}
.paper-overview-grade[data-grade="needs_revision"],.paper-overview-grade[data-grade="uncertain"]{color:#923e21}
.paper-overview .paper-recheck{color:#923e21;border-color:#d69e8a}
.paper-image-map{position:relative;width:fit-content;max-width:100%;margin:8px auto}
.paper-image-map>img{border:0;max-height:50svh;height:auto;cursor:zoom-in}
.paper-image-large .paper-image-map>img{max-height:none;cursor:zoom-out}
.paper-image.placing img{cursor:crosshair}
.paper-image-markers{position:absolute;inset:0;pointer-events:none}
.paper-image-markers .paper-marker{position:absolute;transform:translate(-50%,-50%);pointer-events:auto;min-width:30px;min-height:30px;padding:3px 6px;border:2px solid white;border-radius:999px;font-size:.8rem;line-height:1}
.paper-image-markers .paper-marker[aria-pressed="true"]{background:#f9dfa0;color:#35270e}
.paper-image-markers .paper-marker[data-grade="needs_revision"]{background:#a73629;color:#fff;border-color:#fff}
.paper-image-markers .paper-marker[data-grade="needs_revision"][aria-pressed="true"]{outline:3px solid #eeb7ab}
.paper-image.placing .paper-marker{pointer-events:none}
.paper-review-actions{position:sticky;bottom:0;z-index:2;padding:8px 0 max(8px,env(safe-area-inset-bottom));background:#fff}
.paper-review-actions button{width:100%}
.paper-discussion-log p{overflow-wrap:anywhere;white-space:pre-wrap}
.paper-discussion>button{margin-top:6px}
.submission-confirm{width:min(26rem,calc(100% - 32px));padding:20px;border:1px solid #b9d1c4;border-radius:16px;color:#19362e;background:white}
.submission-confirm::backdrop{background:rgba(20,45,35,.48)}
.submission-confirm-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:8px;margin-top:16px}
.subject-count{white-space:normal;overflow-wrap:anywhere}

.photo-picker{display:grid;gap:8px}
.photo-actions{display:flex;flex-wrap:wrap;gap:8px}
.photo-camera{display:grid;gap:8px;justify-items:start}
.photo-camera video{display:block;width:100%;max-height:26rem;border-radius:10px;background:#17382b}
.photo-preview{margin:0}
.photo-preview figcaption{margin-top:4px;color:#526c61;font-size:.875rem}

.week-picker,.draft-row,.task-controls{display:flex;align-items:center;justify-content:space-between;gap:8px}
.week-picker{margin-top:8px;flex-wrap:wrap}
.week-picker span{font-size:.9rem;font-weight:650}
.week-draft{border-top:1px solid #dbe8df;margin-top:18px;padding-top:12px}
.week-draft h3{font-size:1.05rem;margin:0 0 6px}
.week-draft>button{width:100%;margin-top:8px}
.task-controls{justify-content:flex-end;flex-wrap:wrap;flex-shrink:0}
.task-remove{background:transparent;border-color:transparent;color:#9b4336;padding:.35rem .55rem}
.task-remove:hover{background:#fff0e8;border-color:#f3d7ce}
@media(max-width:470px){.task-header{align-items:start}.task-controls{max-width:45%}}

.in-focus-mode{overflow:hidden}
.focus-workspace{position:fixed;inset:0;z-index:100;overflow:auto;background:#f4f8f5;padding:clamp(14px,4vw,38px)}
.focus-shell{max-width:760px;margin:0 auto}
.focus-header{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px;align-items:center;padding:6px 0 8px}
.focus-header h1{font-size:clamp(1.45rem,3.5vw,2.45rem);overflow-wrap:anywhere}
.focus-clock{display:flex;align-items:center;justify-content:center;gap:10px;width:max-content;margin:0 auto 10px;padding:5px 14px;border:1px solid #b8d7c5;border-radius:12px;background:#e0eee4}
#focusTime{font-variant-numeric:tabular-nums;font-weight:800;font-size:clamp(1.75rem,6vw,2.5rem);line-height:1.1}
#focusTask>li{background:white;border:1px solid #dbe8df;border-radius:16px;padding:clamp(12px,4vw,25px)}
#focusTask .task-header strong{display:none}
@media(max-width:530px){.focus-header{gap:8px}}
.paper-submit>summary{font-weight:700;color:#235a3f}

.wrongbook-progress{border-top:1px solid #dbe8df;margin-top:10px;padding-top:8px}
.wrongbook-progress>button{margin-top:7px}
.wrongbook-print-pick{margin:6px 0}
.wrongbook-sheet-controls{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px}
.wrongbook-saved-sheets{margin-top:8px;padding-top:8px}
.wrongbook-sheet{margin:0;padding-top:6px}
.wrongbook-sheet-body{display:grid;gap:8px;margin:8px 0}
.wrongbook-sheet-question{padding:6px 8px;background:#f4f8f5;border-radius:6px}
#wrongbookPrint{display:none}
.study-plan-table{width:100%;border-collapse:collapse;table-layout:fixed;font-size:.9rem;margin-top:8px}
.study-plan-table th,.study-plan-table td{padding:5px 4px;border:1px solid #a9b6ae;text-align:left;vertical-align:top;overflow-wrap:anywhere}
.study-plan-table th:nth-child(1){width:20%}
.study-plan-table th:nth-child(2){width:14%}
.study-plan-table th:nth-child(4),.study-plan-table th:nth-child(5){width:12%}

@page{size:A4 portrait;margin:14mm}
@media print{
  body:has(#wrongbookPrint:not(:empty)){background:white;color:black;font-size:11pt}
  body:has(#wrongbookPrint:not(:empty)) > :not(#wrongbookPrint){display:none!important}
  #wrongbookPrint:not(:empty){display:block}
  .wrongbook-a4{break-after:page;page-break-after:always}
  .wrongbook-a4:last-child{break-after:auto;page-break-after:auto}
  .wrongbook-a4 h1{font-size:19pt}
  .wrongbook-code{font:700 15pt ui-monospace,monospace;letter-spacing:.05em}
  .wrongbook-print-question{margin-top:8mm;break-inside:avoid;overflow-wrap:anywhere}
  .wrongbook-print-question p{margin-top:2mm}
  .wrongbook-answer-lines{height:34mm;border-bottom:1px solid #777}
  .wrongbook-print-question p{white-space:pre-line}
  .wrongbook-a4.compact .wrongbook-print-question{margin-top:5mm}
  .wrongbook-a4.compact .wrongbook-answer-lines{height:17mm}
  .wrongbook-a4 .wrongbook-print-question[class*="space-"]{margin-top:2mm}
  .wrongbook-a4 .wrongbook-print-question[class*="space-"] p{margin-top:0}
  .wrongbook-a4 .space-short .wrongbook-answer-lines{height:8mm}
  .wrongbook-a4 .space-medium .wrongbook-answer-lines{height:16mm}
  .wrongbook-a4 .space-work .wrongbook-answer-lines{height:26mm}
  .study-plan-table{font-size:10pt}
  .study-plan-table tr{break-inside:avoid}
}
