:root{--ink:#172c35;--muted:#73858c;--green:#17766a;--mint:#e9f3ef;--line:#e0e8e8;--paper:#fff;--bg:#f5f8f7;--gold:#af803b}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font:15px/1.7 -apple-system,BlinkMacSystemFont,'Apple SD Gothic Neo','Noto Sans KR',sans-serif}button,input,select,textarea{font:inherit}button,a,input,select,textarea{outline-offset:4px}button{cursor:pointer}button:disabled{opacity:.45;cursor:not-allowed}a{color:inherit;text-decoration:none}button{border:0;background:none;color:inherit}h1,h2,h3,p{margin-top:0}h1{font-size:32px;letter-spacing:-1.3px;line-height:1.35}h2{font-size:23px}h3{font-size:18px}small,.quiet,.caption{color:var(--muted)}[hidden]{display:none!important}.brand{display:flex;align-items:center;gap:12px;font-weight:800;font-size:19px;line-height:1.5}.brand small{display:block;font-size:11px;letter-spacing:1px;font-weight:500}.brand-icon{display:grid;place-items:center;width:40px;height:44px;border-radius:13px;background:var(--green);color:white;font:30px Georgia}.primary,.secondary,.danger{display:inline-flex;align-items:center;justify-content:center;gap:12px;border-radius:10px;padding:12px 18px;font-weight:650;line-height:1.5}.primary{background:var(--green);color:white}.primary:hover{background:#115d54}.secondary{background:white;border:1px solid var(--line)}.danger{color:#a74439;background:#fbefed}.text-button{color:var(--green);font-size:13px;padding:6px 0}.eyebrow{color:var(--green);font-size:10px;font-weight:800;letter-spacing:2.6px}.welcome-nav{display:flex;align-items:center;justify-content:space-between;padding:32px 6vw;border-bottom:1px solid var(--line)}.welcome{max-width:1150px;min-height:75vh;margin:auto;padding:65px 35px;display:grid;grid-template-columns:1.15fr 1fr;gap:85px;align-items:center}.welcome h1{font-size:56px;line-height:1.3;margin:24px 0}.lead{font-size:18px;line-height:1.95;color:#61757c}.google{margin:16px 0}.google span:first-child{background:white;color:#4285f4;border-radius:50%;width:25px;height:25px;text-align:center}.caption{font-size:12px}.welcome-card{padding:36px;background:#fff;border:1px solid var(--line);border-radius:20px;box-shadow:0 24px 65px #173a3010;transform:rotate(1deg)}.paper-top{display:flex;justify-content:space-between;color:var(--muted);font-size:12px}.example-math{text-align:center;background:#f6f8f3;border-radius:12px;padding:32px 8px;font-size:23px;margin:26px 0}.learning-steps{list-style:none;padding:0}.learning-steps li{display:flex;gap:16px;margin:25px 0}.learning-steps li>span{border:1px solid #cfe3db;border-radius:50%;width:30px;height:30px;text-align:center;color:var(--green)}.learning-steps p{margin:2px 0;color:var(--muted);font-size:13px}.sample-label{font-size:11px;color:var(--muted)}.sidebar{width:240px;height:100vh;position:fixed;padding:30px 22px;background:white;border-right:1px solid var(--line);display:flex;flex-direction:column;gap:6px}.sidebar>.primary{margin:32px 0 18px;padding:13px 9px;font-size:13px}.nav-label{font-size:10px;letter-spacing:1.8px;color:#96a3a8;padding:15px 14px 7px}.nav{display:flex;gap:12px;text-align:left;width:100%;padding:12px 14px;border-radius:9px;color:#698088}.nav.active{background:var(--mint);color:var(--green);font-weight:700}.sidebar-bottom{margin-top:auto;padding:20px 10px 0;border-top:1px solid var(--line);overflow-wrap:anywhere}.sidebar-bottom small{display:block;font-size:11px}.main{margin-left:240px;padding:40px 42px;max-width:1800px}.page-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:28px}.page-header h1{margin:8px 0}.page-header p{color:var(--muted);margin-bottom:0;font-size:14px}.mobile-upload{display:none}.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:15px;margin-bottom:30px}.stat{background:#fff;border:1px solid var(--line);border-radius:12px;padding:19px 22px}.stat small{font-size:12px}.stat strong{display:block;font-size:29px;line-height:1.5}.stat strong span{font-size:12px;color:var(--muted);font-weight:400;margin-left:7px}.filters{display:flex;flex-wrap:wrap;gap:9px;background:white;border:1px solid var(--line);border-radius:12px;padding:15px}.filters input{flex:1 1 230px}.filters select{max-width:185px;flex:1 1 100px}input,select,textarea{border:1px solid #d9e3e2;border-radius:8px;padding:10px 12px;background:#fff;color:var(--ink);max-width:100%}textarea{width:100%;min-height:100px;resize:vertical}input:focus,select:focus,textarea:focus{outline:2px solid #96c6b9;border-color:transparent}.library-caption{display:flex;justify-content:space-between;align-items:center;color:var(--muted);font-size:12px;margin:15px 0}.workspace{display:grid;grid-template-columns:280px minmax(0,1fr);gap:20px;align-items:start}.question-list{display:grid;gap:10px}.question-card{display:block;width:100%;background:white;border:1px solid var(--line);border-radius:11px;padding:17px;text-align:left}.question-card.active{border-color:var(--green);box-shadow:0 0 0 1px var(--green)}.question-card strong{display:block;margin:10px 0 8px;font-size:15px}.card-meta{display:flex;justify-content:space-between;gap:5px;font-size:10px;color:var(--muted)}.question-card p{font-size:11px;color:var(--muted);margin:0}.badge{font-size:10px;border-radius:5px;padding:3px 7px;color:var(--green);background:var(--mint)}.badge.warn{background:#fff2d9;color:#9b6c21}.detail{min-height:450px;background:white;border:1px solid var(--line);border-radius:14px;padding:28px;overflow:hidden}.detail h2{margin:12px 0 6px}.detail-top{display:flex;justify-content:space-between;align-items:center}.detail-meta{font-size:12px;color:var(--muted);margin-bottom:24px}.question-text{font-size:17px;line-height:2;white-space:pre-wrap;padding:20px 0;overflow-wrap:anywhere}.question-image{max-width:100%;max-height:480px;object-fit:contain;display:block;margin:15px auto}.actions{display:flex;gap:10px;flex-wrap:wrap;margin:20px 0}.practice{border-top:1px solid var(--line);padding-top:24px;margin-top:20px}.choice-list{display:grid;gap:8px;margin:14px 0}.choice{padding:12px;text-align:left;border:1px solid var(--line);border-radius:8px}.choice.selected{border-color:var(--green);background:var(--mint)}.answer-row{display:flex;gap:10px}.answer-row input{flex:1;min-width:0}.notice{font-size:13px;background:#fbf5e8;border:1px solid #efe0ba;color:#8c6b31;padding:14px 16px;border-radius:8px;margin:15px 0;white-space:pre-wrap}.good{background:var(--mint);border-color:#cce0d8;color:var(--green)}.solution{margin-top:25px}.solution .overview{font-size:16px;line-height:1.9;background:var(--mint);padding:20px;border-radius:10px}.step{border-left:2px solid #c7e3d8;margin:22px 0;padding:0 0 0 20px}.step b{color:var(--green);font-size:14px}.step p{white-space:pre-wrap;line-height:1.95}.math-block{overflow:auto;background:#f7f9f8;padding:12px;border-radius:8px;margin:10px 0}.empty{padding:55px 18px;text-align:center;color:var(--muted);font-size:14px}.empty strong{display:block;color:var(--ink);font-size:18px;margin:10px 0}details{font-size:13px;margin:18px 0}summary{cursor:pointer;color:var(--muted)}.analysis-grid{display:grid;grid-template-columns:100px 1fr;gap:8px;padding:15px;background:var(--bg);border-radius:8px}.analysis-grid dt{color:var(--muted)}.analysis-grid dd{margin:0;white-space:pre-wrap}.history-row{padding:10px 0;border-bottom:1px solid var(--line);font-size:12px}.pagination{display:flex;gap:15px;align-items:center;justify-content:center;margin:20px 0;font-size:12px}.user-row{display:flex;gap:20px;align-items:center;padding:20px;background:#fff;border:1px solid var(--line);border-radius:10px;margin:12px 0}.user-row>div{flex:1}.user-row small{display:block}.user-row button{font-size:12px}.json{white-space:pre-wrap;overflow-wrap:anywhere;font:11px/1.8 monospace;background:#f2f6f5;padding:16px;max-height:450px;overflow:auto}dialog{border:0;border-radius:16px;width:min(680px,94vw);padding:28px;color:var(--ink);max-height:90vh;box-shadow:0 24px 80px #16383030}dialog::backdrop{background:#16312c77}.modal-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:20px}.modal-header h2{margin:0;font-size:22px}.icon-button{font-size:28px;padding:0 8px;color:var(--muted)}.upload-zone{display:grid;place-items:center;text-align:center;padding:35px 20px;border:2px dashed #c7ddd5;border-radius:12px;background:#f5faf7;cursor:pointer}.upload-zone strong{display:block;font-size:17px}.upload-zone span{color:var(--muted);font-size:12px}.upload-zone input{margin-top:16px;width:100%;font-size:13px}.upload-preview{max-height:220px;max-width:100%;display:block;margin:18px auto;border-radius:7px}.check-label{display:flex;gap:10px;align-items:flex-start;font-size:13px;margin:15px 0}.check-label input{margin-top:7px}.field{display:block;font-size:12px;color:var(--muted);margin-bottom:15px}.field input{width:100%;display:block}.field textarea{display:block;color:var(--ink);font-size:14px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.progress-note{padding:12px;background:var(--mint);color:var(--green);border-radius:8px;font-size:13px}.progress-note:before{content:'◌ ';animation:pulse 1.4s infinite}.katex-display{overflow-x:auto;overflow-y:hidden}.katex{font-size:1.1em}#toast{position:fixed;bottom:25px;left:50%;transform:translateX(-50%);background:#193d35;color:white;border-radius:10px;padding:13px 22px;max-width:90vw;z-index:100;display:none}#toast.show{display:block}@keyframes pulse{50%{opacity:.3}}@media(max-width:1150px){.main{padding:28px 24px}.workspace{grid-template-columns:235px minmax(0,1fr)}.sidebar{width:215px;padding:25px 15px}.main{margin-left:215px}.stats{gap:8px}.stat{padding:14px}}@media(max-width:850px){.sidebar{position:static;width:100%;height:auto;padding:15px;display:flex;flex-direction:row;flex-wrap:wrap;gap:4px}.sidebar .brand{flex:1}.sidebar>.primary,.nav-label,.sidebar-bottom,#admin-nav .nav-label{display:none}.sidebar .nav{width:auto;font-size:12px}.sidebar #admin-nav{display:flex}.main{margin:0;padding:24px 16px}.mobile-upload{display:block;font-size:12px}.page-header h1{font-size:28px}.workspace{grid-template-columns:1fr}.question-list{display:flex;overflow:auto;gap:10px;padding-bottom:6px}.question-card{min-width:210px;width:210px;flex-shrink:0}.detail{padding:22px}.stats{gap:7px}.stat{padding:12px}.stat small{font-size:10px}.stat strong{font-size:24px}.welcome{grid-template-columns:1fr;gap:40px;padding:40px 25px}.welcome h1{font-size:42px}.welcome-nav{padding:20px}.welcome-nav .quiet{display:none}.welcome-card{transform:none}.user-row{flex-wrap:wrap}.user-row>div{flex-basis:100%}}@media(max-width:480px){.stats{grid-template-columns:1fr 1fr}.filters select{font-size:12px}.answer-row{flex-wrap:wrap}.question-text{font-size:16px}.form-grid{grid-template-columns:1fr}.sidebar .brand{font-size:16px}.nav{padding:7px}.detail-top{align-items:flex-start;gap:8px}}
.workspace>div,.detail{min-width:0}.brand span:last-child{min-width:0}
@media(max-width:850px){.workspace{grid-template-columns:minmax(0,1fr)}.sidebar .brand{flex:1 0 100%;margin-bottom:8px}.sidebar .sidebar-bottom{display:flex;align-items:center;gap:12px;flex-basis:100%;margin:4px 0 0;padding:5px 0 0;border:0}.sidebar-bottom #account-name{display:none}.sidebar-bottom #account-email{flex:1}.sidebar .nav{align-items:center}.sidebar #admin-nav{flex-wrap:wrap}}

.upload-zone{cursor:default;transition:background .15s,border-color .15s}.upload-zone:focus-visible,.upload-zone.drag-over{outline:2px solid var(--green);outline-offset:3px;border-color:var(--green);background:#e1f2ea}.upload-file-label{display:block;margin-top:18px;font-size:13px;font-weight:650;cursor:pointer}.upload-zone input{margin-top:8px}.upload-zone span{overflow-wrap:anywhere}#upload-message{margin:12px 0;overflow-wrap:anywhere}

.infographic-panel{border-top:1px solid var(--line);padding-top:24px;margin:28px 0}.infographic-image{display:block;max-width:100%;height:auto;margin:15px auto;border:1px solid var(--line);border-radius:10px}.infographic-panel .secondary{margin:8px 0}

.tutor-stages{display:flex;flex-wrap:wrap;gap:8px;list-style:none;padding:0;font-size:12px}.tutor-stages li{padding:5px 9px;border-radius:7px;background:var(--bg);color:var(--muted)}.tutor-stages .current{background:var(--green);color:white}.tutor-stages .done{background:var(--mint);color:var(--green)}.tutor-history{max-height:42vh;overflow:auto;overscroll-behavior:contain}.tutor-turn{margin:15px 0}.student-message,.teacher-message{padding:15px;border-radius:10px;margin:10px 0;overflow-wrap:anywhere}.student-message{margin-left:30px;background:#eef3fa}.teacher-message{background:var(--mint)}.tutor-turn p{white-space:pre-wrap;margin:8px 0}.tutor-concept{border-left:2px solid var(--green);padding-left:12px}.tutor-final-box{padding:12px;border:1px solid var(--line);border-radius:8px}#tutor-error{color:#a74439;white-space:pre-wrap}#tutor-content textarea{min-height:85px}

.math-unavailable{color:#896b35;font-size:.9em}.teacher-message .katex,.student-message .katex{white-space:normal}.analysis-grid dd{min-width:0}.analysis-grid [data-math]{overflow-x:auto}
.math-entry{min-width:0;margin:10px 0 20px}.math-entry-buttons{display:flex;flex-wrap:wrap;gap:6px}.math-entry-buttons button{min-width:40px;min-height:40px;padding:6px 10px;border:1px solid var(--line);border-radius:7px;background:#fff;font-size:13px;touch-action:manipulation}.math-entry-buttons button:hover:not(:disabled){background:var(--mint);border-color:#a2c7bc}.math-entry-help{margin:8px 0;line-height:1.6}.math-entry-preview{border:1px solid #d8e8e1;border-radius:9px;padding:12px 14px;background:#f5faf7}.math-entry-preview>small{display:block;font-size:11px;color:var(--green);margin-bottom:8px}.math-entry-content{min-height:30px;white-space:pre-wrap;overflow-wrap:anywhere;overflow-x:auto;line-height:2.1;color:var(--ink)}.math-entry-preview.is-empty .math-entry-content{color:var(--muted);font-size:13px}.math-entry-note{color:#896b35;margin:6px 0;min-height:0}.math-entry-note:empty{display:none}.math-entry .katex{white-space:normal}#tutor-final{width:100%}
.is-working{display:inline-flex;align-items:center;gap:6px;white-space:nowrap}.is-busy:disabled{opacity:1;cursor:wait}
.is-working::before,.is-busy::before,.progress-note::before{content:'';display:inline-block;flex-shrink:0;width:12px;height:12px;border:2px solid currentColor;border-right-color:transparent;border-radius:50%;vertical-align:-2px;animation:activity-spin .9s linear infinite}
.progress-note::before{margin-right:8px}
.is-working::after,.is-busy::after,.progress-note::after{content:'';display:inline-block;flex-shrink:0;width:20px;height:10px;vertical-align:middle;background-image:radial-gradient(circle,currentColor 2px,transparent 2.5px),radial-gradient(circle,currentColor 2px,transparent 2.5px),radial-gradient(circle,currentColor 2px,transparent 2.5px);background-size:6px 6px;background-repeat:no-repeat;background-position:0 4px,7px 4px,14px 4px;animation:activity-dots 1.4s ease-in-out infinite}
.progress-note::after{margin-left:8px}.card-meta{flex-wrap:wrap}
@keyframes activity-spin{to{transform:rotate(360deg)}}
@keyframes activity-dots{0%,60%,100%{background-position:0 4px,7px 4px,14px 4px}15%{background-position:0 0,7px 4px,14px 4px}30%{background-position:0 4px,7px 0,14px 4px}45%{background-position:0 4px,7px 4px,14px 0}}
@media(prefers-reduced-motion:reduce){.is-working::before,.is-busy::before,.progress-note::before,.is-working::after,.is-busy::after,.progress-note::after{animation:none}}
.danger{color:#b13b32}.danger-button{background:#b13b32;color:#fff;border:1px solid #b13b32;border-radius:9px;padding:12px 18px;font-weight:700}.danger-button:hover:not(:disabled){background:#942e27}#delete-error{color:#a4342d}
.practice button[aria-expanded]::after{content:'▼';font-size:1em;margin-left:6px}.practice button[aria-expanded="true"]::after{content:'▲'}
.grade-result p{margin:4px 0 0}.notice.incorrect{background:#fff0ee;border-color:#edc4be;color:#a7372e}
.question-card-select{display:block;width:100%;padding:0;border:0;background:transparent;text-align:left;color:inherit}.review-flag{display:flex;align-items:center;gap:5px;margin:0;font-size:11px;white-space:nowrap;color:var(--green);cursor:pointer}.review-flag input{width:17px;height:17px;margin:0;accent-color:var(--green)}

.card-header{display:flex;align-items:center;justify-content:space-between;gap:4px}.card-header .badge{white-space:nowrap}.card-header .is-working::after{display:none}.card-kind{display:flex;align-items:baseline;justify-content:space-between;gap:6px;font-size:11px;color:var(--muted)}.card-kind time{flex-shrink:0;font-size:10px;white-space:nowrap}
/* Personal learning dashboard */
.dashboard-toolbar,.dashboard-intro,.dashboard-panel-heading{display:flex;align-items:center;justify-content:space-between;gap:16px}.dashboard-toolbar{margin-bottom:22px}.dashboard-periods{display:flex;background:#e8efec;border-radius:10px;padding:4px;gap:3px}.dashboard-periods button{padding:8px 18px;font-size:13px;border-radius:7px}.dashboard-periods button[aria-pressed=true]{background:white;color:var(--green);font-weight:700;box-shadow:0 2px 5px #16312c12}.dashboard-intro{background:#e8f3ee;border:1px solid #d2e5dc;padding:24px 28px;border-radius:14px;margin-bottom:20px}.dashboard-intro h2{margin:5px 0 8px}.dashboard-intro p{margin:0;color:#526c63;font-size:14px}.dashboard-intro .primary{flex-shrink:0;font-size:13px}.dashboard-metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}.dashboard-metric{background:white;border:1px solid var(--line);border-radius:12px;padding:20px}.dashboard-metric>span{font-size:13px;color:#526a72}.dashboard-metric strong{display:block;font-size:34px;margin:6px 0;color:var(--green);line-height:1.4}.dashboard-metric small{font-size:13px;margin-left:6px;font-weight:400}.dashboard-metric p{font-size:11px;margin:0;color:var(--muted)}.dashboard-basis{margin:12px 0 24px}.dashboard-columns{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:20px;align-items:start}.dashboard-panel{background:white;border:1px solid var(--line);border-radius:14px;padding:24px;min-width:0}.dashboard-panel h2{font-size:18px;margin:0 0 5px}.dashboard-panel-heading{align-items:flex-start;margin-bottom:18px}.dashboard-panel-heading p{font-size:12px;color:var(--muted);margin:0}.dashboard-panel-heading .text-button{white-space:nowrap}.dashboard-total{color:var(--green);font-weight:750;font-size:22px;white-space:nowrap}.dashboard-count{font-size:13px;color:var(--green);background:var(--mint);border-radius:7px;padding:3px 7px}.dashboard-legend{display:flex;gap:15px;flex-wrap:wrap;font-size:11px;color:#526a72;margin-bottom:15px}.dashboard-legend>span{display:flex;gap:6px;align-items:center}.dashboard-legend i{width:9px;height:9px;border-radius:2px}.chart-correct{background:#17766a}.chart-incorrect{background:#d98b63}.chart-ungraded{background:#b8c4cb}.dashboard-chart-scroll{overflow-x:auto;padding:4px 0 8px}.dashboard-chart{display:grid;grid-template-columns:repeat(var(--day-count),minmax(30px,1fr));gap:6px;min-width:100%;width:max-content}.dashboard-day{text-align:center;font-size:10px;color:#637a82;min-width:0}.dashboard-day-total{height:20px;display:block;font-size:11px;color:var(--ink)}.dashboard-bar-area{height:145px;display:flex;align-items:flex-end;justify-content:center;border-bottom:1px solid var(--line);background:repeating-linear-gradient(to top,transparent 0,transparent 47px,#edf2ef 48px,transparent 49px)}.dashboard-bar{width:20px;display:flex;flex-direction:column-reverse;overflow:hidden;border-radius:4px 4px 0 0}.dashboard-bar>span{display:block;flex-shrink:0}.dashboard-day-label{display:block;margin-top:7px}.dashboard-empty{font-size:13px;color:var(--muted);padding:24px 0;margin:0;line-height:1.9}.dashboard-review{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:15px 0;border-top:1px solid var(--line)}.dashboard-review:first-child{border-top:0;padding-top:0}.dashboard-review h3{font-size:14px;line-height:1.6;margin:0 0 4px;overflow-wrap:anywhere}.dashboard-review p{font-size:12px;color:var(--muted);margin:0}.dashboard-review small{font-size:11px}.dashboard-review-actions{flex-shrink:0;display:flex;flex-direction:column;align-items:flex-end;gap:9px}.dashboard-review-actions .secondary{padding:8px 12px;font-size:12px}.dashboard-concepts{margin-top:20px}.dashboard-table-scroll{overflow:auto}.dashboard-panel table{border-collapse:collapse;width:100%;font-size:13px;text-align:left;white-space:nowrap}.dashboard-panel th{font-weight:500;color:var(--muted);font-size:12px}.dashboard-panel th,.dashboard-panel td{padding:12px;border-bottom:1px solid var(--line)}.dashboard-panel td strong{display:block}.dashboard-panel td small{font-size:11px}.dashboard-rate{display:flex;align-items:center;gap:10px}.dashboard-rate meter{width:70px;height:8px}.dashboard-chart-table{margin:14px 0 0}.dashboard-chart-table .dashboard-table-scroll{max-height:240px}
@media(max-width:1150px){.dashboard-columns{grid-template-columns:1fr}.dashboard-metric{padding:15px}.dashboard-intro{padding:20px}.dashboard-intro .primary{max-width:160px}}@media(max-width:600px){.dashboard-metrics{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.dashboard-intro{align-items:flex-start;flex-direction:column}.dashboard-intro .primary{max-width:none}.dashboard-panel{padding:18px}.dashboard-periods button{padding:8px 12px}.dashboard-toolbar{gap:8px}.dashboard-metric strong{font-size:29px}.dashboard-review{gap:8px}}

.login-options{display:flex;flex-direction:column;align-items:stretch;gap:12px;max-width:360px;margin:22px 0 14px}.login-options .google{margin:0}.kakao-login{background:#fee500;color:#191919}.kakao-login:hover{background:#f4db00}.login-options [aria-disabled=true]{opacity:.55;cursor:not-allowed;pointer-events:none}.login-options .primary{min-height:49px;font-size:15px}
.signup-type{display:block;max-width:360px;font-size:14px}.signup-type select{display:block;width:100%;margin-top:8px}
.parent-link-list{margin-top:20px}.parent-link-row{display:grid;grid-template-columns:minmax(150px,1fr) 110px minmax(180px,1.3fr) auto;align-items:center;gap:16px;border-top:1px solid var(--line,#dce5e5);padding:20px 0}.parent-link-row small{display:block;overflow-wrap:anywhere}.parent-link-row label{font-size:12px}.parent-link-row select{display:block;width:100%;margin-top:6px}.parent-save-result{grid-column:1/-1;margin:0}.parent-save-result:empty{display:none}.parent-link-row[hidden]{display:none}
@media(max-width:850px){.parent-link-row{grid-template-columns:1fr 1fr}.parent-link-row>div{grid-column:1/-1}}
.coaching-panel{border-top:1px solid var(--line,#dce5e5);margin-top:24px;padding-top:24px}.coaching-heading{display:flex;align-items:start;justify-content:space-between;gap:18px}.coaching-heading h2{margin-top:0}.coaching-layout{display:grid;grid-template-columns:minmax(180px,.8fr) minmax(0,1.3fr);gap:24px}.coaching-layout figure{margin:0;align-self:start}.coaching-layout img,.coaching-preview{display:block;width:100%;height:auto;max-height:650px;object-fit:contain;border:1px solid #dce5e5;border-radius:12px;background:#fff}.coaching-preview{max-height:300px;margin:15px 0}.coaching-layout figcaption{font-size:12px;color:#69818b;margin:10px 0}.coaching-entry{margin:20px 0}.coaching-result p,.coaching-result li{line-height:1.8;overflow-wrap:anywhere}.coaching-feedback{border-left:3px solid #168070;background:#f2f8f6;border-radius:8px;padding:16px;margin:15px 0}.coaching-feedback.revise{border-color:#d7a44c;background:#fff8ea}.coaching-feedback.uncertain{border-color:#98a9b0;background:#f3f5f6}.coaching-feedback strong{display:block;margin-top:8px}.coaching-student-work{color:#637b83}.coaching-question{padding:18px;border:1px solid #cbe2dc;border-radius:10px}.coaching-overview{font-weight:600}#coaching-form{border:1px solid #dce5e5;border-radius:12px;padding:20px;margin-top:20px}#coaching-error{color:#a33d36}[data-coaching=toggle] span{font-size:1em;margin-left:8px}
@media(max-width:1050px){.coaching-layout{grid-template-columns:1fr}.coaching-layout img{max-height:400px}.coaching-heading{flex-direction:column}}
.practice button[data-coaching=toggle]::after,.practice button[data-graph=toggle]::after{content:none}

.notes-panel{border-top:1px solid var(--line);padding-top:24px;margin-top:24px}.notes-panel h2{margin-top:0}#note-form{padding:20px;background:#f5faf8;border:1px solid #cbe2dc;border-radius:12px}#note-content{display:block;width:100%;resize:vertical;margin-top:10px;min-height:130px;line-height:1.8}.note-form-footer,.note-list-heading,.note-entry-heading{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap}.note-form-footer small{font-size:12px;color:var(--muted)}.note-list-heading{margin-top:24px}.note-entry{padding:18px 0;border-top:1px solid var(--line)}.note-entry-heading .actions{margin:0}.note-content{white-space:pre-wrap;overflow-wrap:anywhere;line-height:1.9}.note-delete{padding:15px;background:#fff4ef;border-radius:8px;margin-top:12px}#note-message{font-size:13px;color:var(--green)}#note-message:empty{display:none}[data-note=toggle] span{font-size:1em;margin-left:8px}.practice button[data-note=toggle]::after{content:none}

.signup-name{display:block;max-width:360px;font-size:14px;margin-top:20px}.signup-name input{display:block;width:100%;margin-top:8px}.signup-help{max-width:400px;margin:8px 0 20px}.profile-completion{max-width:560px;margin:10vh auto;padding:30px;background:white;border:1px solid var(--line);border-radius:16px}.profile-completion p{color:var(--muted)}.profile-completion input{display:block;width:100%;margin:8px 0 20px}.user-row{flex-wrap:wrap}.user-row>div{min-width:200px}#complete-name-error,#edit-name-error{color:#a7372e}

.user-row .user-type{display:inline-block;margin-left:6px;vertical-align:middle;font-size:11px;white-space:nowrap}

.sidebar-bottom .account-type{display:inline-block;margin-left:6px;font-size:11px;vertical-align:middle;white-space:nowrap}

.practice-heading{display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap}.practice-heading h3{margin:0}.confidence-options{border:0;padding:0;margin:0;display:flex;gap:14px;align-items:center}.confidence-options legend{font-size:11px;color:var(--muted);padding:0;margin-bottom:3px}.confidence-options label{display:inline-flex;gap:5px;align-items:center;cursor:pointer;white-space:nowrap}.confidence-options input{width:17px;height:17px;accent-color:var(--green);margin:0}#confidence-help{margin:10px 0}#previous-confidence:empty{display:none}

#upload-form .upload-error{background:#fff0ee;color:#a7372e;border:1px solid #edc4be;border-radius:8px;padding:12px 14px;font-size:14px;line-height:1.7}#upload-progress:not(:empty){margin-top:14px}

.question-options{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:18px 28px;margin-top:24px;padding:8px 0;white-space:normal}.question-option{white-space:nowrap;max-width:100%;overflow-x:auto;padding:8px 2px}.choice-list{display:flex;flex-wrap:wrap;gap:10px}.choice-list .choice{flex:1 0 75px;min-width:0;max-width:100%;display:flex;align-items:center;justify-content:center;gap:6px;padding:16px 12px;overflow-x:auto}

/* Locally plotted graph lessons */
.graph-panel{border-top:1px solid var(--line,#d9e4e6);margin-top:26px;padding-top:26px;min-width:0}
.graph-heading h2{margin:10px 0}.graph-heading p{line-height:1.8;max-width:850px}
.graph-plot{margin:28px 0;border:1px solid #dce7e8;border-radius:14px;padding:22px;min-width:0}
.graph-plot h3{margin:0 0 10px}.graph-plot p{line-height:1.8}
.graph-scroll{overflow-x:auto;background:#fbfdfd;border:1px solid #e2ecec;border-radius:10px}
.lesson-graph{display:block;width:100%;min-width:520px;height:auto;font-family:inherit}
.graph-grid{stroke:#e3ebed;stroke-width:1}.graph-axis{stroke:#758e96;stroke-width:1.5}
.graph-tick{font-size:19px;fill:#556d76}.graph-axis-label{font-size:20px;fill:#1b3540}
.graph-label{font-size:20px;font-weight:600;paint-order:stroke;stroke:#fbfdfd;stroke-width:4px;stroke-linejoin:round}
.graph-toolbar{display:flex;flex-wrap:wrap;justify-content:space-between;gap:12px;align-items:center;margin:16px 0;font-size:13px}
.graph-toolbar label{display:flex;gap:7px;align-items:center}.graph-toolbar input{accent-color:#147e70}
.hide-graph-guides .graph-guides{display:none}.graph-legend{display:flex;flex-wrap:wrap;gap:18px;margin:15px 0;font-size:14px}.graph-legend span{display:flex;align-items:center;gap:7px}.graph-legend i{width:22px;height:3px;display:inline-block}
.graph-steps{padding-left:26px;margin-top:28px}.graph-steps li{padding:0 0 14px 8px}.graph-steps li::marker{font-weight:bold;color:#177e70}.graph-steps strong{color:#177e70}.graph-steps p{margin:8px 0}
.graph-values table{border-collapse:collapse;width:100%;margin-top:12px}.graph-values td,.graph-values th{padding:10px;border-bottom:1px solid #dce7e8;text-align:left}
#graph-form,#infographic-form{padding:20px;background:#f3f9f7;border-radius:12px;margin-top:20px}#graph-error,#infographic-message{color:#b7352e}
@media(max-width:640px){.graph-plot{padding:12px}.graph-steps{padding-left:20px}.graph-panel{padding-top:18px}}

.login-history-summary{display:grid;grid-template-columns:auto 1fr;gap:10px 18px;margin:20px 0}.login-history-summary dt{color:var(--muted)}.login-history-summary dd{margin:0}
.login-history-table{overflow-x:auto}.login-history-table table{border-collapse:collapse;width:100%;white-space:nowrap}.login-history-table th,.login-history-table td{padding:12px;text-align:left;border-bottom:1px solid var(--line)}.login-history-table th{background:#f3f9f7}

/* Reading workspace: desktop split panes; small-screen modal problem sheet. */
.study-menu-toggle,.study-filter-toggle,.sheet-heading,.study-bottom-nav{display:none}
body.study-mode{overflow:hidden}
.study-mode #bank-view{height:var(--study-height,100dvh);overflow:hidden}
.study-mode .sidebar{height:var(--study-height,100dvh);overflow-y:auto}
.study-mode .main{height:100%;max-width:none;display:flex;flex-direction:column;min-height:0;padding:20px 26px 16px}
.study-mode .page-header{flex:none;margin:0 0 12px}.study-mode .page-header h1{font-size:24px;margin:0}.study-mode .page-header .eyebrow,.study-mode .page-header p{display:none}
.study-mode .stats{flex:none;display:flex;gap:22px;margin:0 0 12px}.study-mode .stat{display:flex;align-items:baseline;gap:8px;padding:0;border:0;background:none}.study-mode .stat strong{font-size:17px}.study-mode .stat strong span{font-size:11px;margin-left:3px}
.study-mode #library{flex:1;display:flex;flex-direction:column;min-height:0}
.study-mode #library-tools-home{flex:none}.study-mode .filters{padding:10px;gap:8px}.study-mode .filters input,.study-mode .filters select{min-width:0}
.study-mode .library-caption{margin:6px 0;font-size:12px}
.study-mode .workspace{flex:1;min-height:0;grid-template-columns:270px minmax(0,1fr);grid-template-rows:minmax(0,1fr);align-items:stretch;gap:18px}
#question-pane-home,#question-pane,.reading-pane{min-width:0;min-height:0}
#question-pane{height:100%;display:flex;flex-direction:column;overflow:hidden}
.study-mode .question-list,#question-sheet .question-list{display:flex;flex-direction:column;flex:1;min-height:0;overflow-y:auto;overflow-x:hidden;overscroll-behavior:contain;scrollbar-gutter:stable;padding:2px 3px 4px 2px;gap:10px}
.study-mode .question-card,#question-sheet .question-card{flex:none;min-width:0;width:100%}
.selection-summary{flex:none;font-size:11px;color:var(--muted);margin:0;padding:5px 2px 10px}.selection-summary strong{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:var(--green);font-size:13px}
#question-pane .pagination{flex:none;margin:0;padding:10px 0 0;min-height:45px}
.reading-pane{display:flex;flex-direction:column;border:1px solid var(--line);border-radius:14px;background:white;overflow:hidden}
.reading-header{flex:none;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 20px;border-bottom:1px solid var(--line);background:#fff}
.reading-header>div{min-width:0}.reading-header small{display:block;font-size:10px;color:var(--muted)}.reading-header strong{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:15px}.reading-header button{flex:none;font-size:12px;min-height:40px}
.study-mode .detail{flex:1;min-height:0;overflow-y:auto;overscroll-behavior:contain;scrollbar-gutter:stable;border:0;border-radius:0;padding:24px;scroll-padding-top:16px}
.study-mode .detail:focus-visible{outline:2px solid var(--green);outline-offset:-3px}
.study-mode .question-card-select[aria-current=true] strong{color:var(--green)}
#question-sheet{position:fixed;inset:auto 0 0;margin:0 auto;width:min(760px,100%);max-width:100%;height:min(85dvh,800px);max-height:calc(var(--study-height,100dvh) - 20px);padding:16px 16px calc(12px + env(safe-area-inset-bottom));border-radius:22px 22px 0 0;overflow:hidden}
#question-sheet::backdrop{background:#122e2b88}
#question-sheet .sheet-heading{display:flex;align-items:center;justify-content:space-between;flex:none;margin-bottom:12px;gap:10px}
.sheet-heading h2{font-size:20px;margin:0}.sheet-heading button{min-height:44px;padding:8px 12px}
#question-sheet .selection-summary{padding-bottom:8px}
#question-sheet .filters{border:0;padding:0;background:none;gap:8px}
#question-sheet .filters input{width:100%;flex-basis:100%;font-size:16px}
#question-sheet .filters select{max-width:none;flex:1 1 42%;font-size:14px}
#question-sheet #library-tools:not(.filters-expanded) .filters select{display:none}
#question-sheet .study-filter-toggle{display:block;margin:0 0 8px;min-height:36px}
#question-sheet .library-caption{margin:6px 0}
#question-sheet #sheet-tools-home{flex:none;max-height:42%;overflow-y:auto;overscroll-behavior:contain}
@media(min-width:851px) and (max-width:1150px){
 .study-mode .main{padding:16px}.study-mode .workspace{grid-template-columns:220px minmax(0,1fr);gap:12px}.study-mode .stats{gap:14px}.study-mode .detail{padding:18px}
}
@media(max-width:850px){
 .study-mode #bank-view{display:flex;flex-direction:column}
 .study-mode .sidebar{position:relative;flex:none;display:flex;flex-direction:row;align-items:center;flex-wrap:wrap;width:100%;height:auto;max-height:45%;padding:8px 12px;gap:6px;border-bottom:1px solid var(--line);border-right:0;overflow-y:auto}
 .study-mode .sidebar .brand{order:-2;flex:1;min-width:0;margin:0;font-size:16px}.study-mode .brand-icon{width:30px;height:34px;font-size:24px}.study-mode .sidebar .brand small{display:none}
 .study-mode .study-menu-toggle{display:block;order:-1;min-height:40px;padding:6px 12px;font-size:13px}
 .study-mode:not(.study-menu-open) .sidebar>.nav,.study-mode:not(.study-menu-open) .sidebar>#admin-nav,.study-mode:not(.study-menu-open) .sidebar>.sidebar-bottom{display:none}
 .study-mode.study-menu-open .sidebar>.nav{display:flex;min-height:44px}.study-mode.study-menu-open .sidebar>#admin-nav{display:flex;flex-basis:100%}.study-mode.study-menu-open .sidebar .sidebar-bottom{display:flex;flex-basis:100%}
 .study-mode .main{flex:1;margin:0;padding:0;min-height:0;height:auto;width:100%;overflow:hidden}
 .study-mode .page-header,.study-mode .stats{display:none}
 .study-mode .workspace{display:flex;gap:0;min-height:0}.study-mode #question-pane-home{display:none}
 .study-mode .reading-pane{flex:1;border:0;border-radius:0;min-width:0}
 .study-mode .reading-header{padding:8px 14px}.study-mode .reading-header strong{font-size:14px}.study-mode .reading-header button{font-size:11px}
 .study-mode .detail{padding:16px 14px 24px;scrollbar-gutter:auto}
 .study-mode .study-bottom-nav{display:grid;grid-template-columns:1fr 1.15fr 1fr;flex:none;gap:8px;padding:8px 12px calc(8px + env(safe-area-inset-bottom));border-top:1px solid var(--line);background:#fff}
 .study-bottom-nav button{min-height:46px;padding:8px 4px;font-size:13px;white-space:nowrap}
 .study-mode .practice>.actions{gap:8px}.study-mode .actions .primary,.study-mode .actions .secondary{padding:10px 12px}
 .study-mode #toast{bottom:calc(80px + env(safe-area-inset-bottom))}
 .study-mode input,.study-mode textarea{font-size:16px}
}
@media(max-width:850px){
 .study-mode.study-menu-open .sidebar>.primary{display:inline-flex;flex-basis:100%;margin:4px 0;padding:9px;min-height:44px}
}
@media(prefers-reduced-motion:no-preference){#question-sheet[open]{animation:study-sheet-in .18s ease-out}@keyframes study-sheet-in{from{transform:translateY(24px);opacity:.6}to{transform:translateY(0);opacity:1}}}
/* Per-question clock stays in the fixed reading header. */
.reading-header .reading-question-heading{flex:1;min-width:0}
.reading-header .practice-clock{flex:0 0 auto;text-align:center;color:#2468c5;min-width:110px}
.reading-header .practice-clock.limited{color:#c33232}
.practice-clock strong{font-size:26px;font-variant-numeric:tabular-nums;letter-spacing:.03em}
.practice-clock small{display:block;font-size:11px;color:inherit}
.reading-header-actions{display:flex;align-items:center;justify-content:flex-end;gap:12px;flex:1;min-width:0}
#practice-time-control{display:flex;align-items:center;gap:7px;flex-wrap:wrap;justify-content:flex-end;font-size:12px}
#practice-time-limit{width:auto;min-width:88px;padding:8px;font-size:14px}
#practice-time-message{font-size:10px;color:var(--muted)}
.settings-card{background:#fff;border:1px solid var(--line);border-radius:16px;padding:28px;max-width:760px}
.settings-card .check-label{font-size:18px;font-weight:600}.settings-card input{width:20px;height:20px}
@media(max-width:1100px){.reading-header{flex-wrap:wrap}.reading-header-actions{flex-basis:100%}}
@media(max-width:850px){.reading-header .practice-clock{min-width:90px}.practice-clock strong{font-size:22px}.reading-header-actions{justify-content:space-between;gap:8px}#practice-time-limit{font-size:16px}.settings-card{padding:20px}.reading-header-actions [data-study=problem-top]{margin-left:auto}}
