/* LIFE ON — Worksheet Studio풍 '페이퍼 에디션'
   worksheetstudio.store에서 추출한 디자인 토큰:
   종이 #fbf7f1/#f4eee6 · 잉크 #101828/#233044 · 네이비 #07111f · 오렌지 #ff7a18(그라데 #f97316→#fb923c)
   성공 #eef8f0/#25633b · 경고 #fff6e8/#9a5b00 · 오류 #fff1f1/#c03d4b · 카드 r28 · 세리프 제목 */
/* ── 에디토리얼/시험지 리디자인 토큰 (2026-07, Claude Design 핸드오프 1a) ── */
:root{
  --paper:#f7f4ee; --surface:#fbf9f4; --surface-alt:#faf7f0;
  --ink:#231d14; --ink2:#3a3226; --muted:#6a6154; --muted2:#8a8072; --faint:#a79b88;
  --line:rgba(40,34,24,.10); --line-2:rgba(40,34,24,.16); --track:#efe8db;
  --accent:#b0673d; --accent-soft:#f0e7d8; --accent-soft2:#f3e3d7;
  --green:#2e6b4f; --okbg:#dfeee6; --okbd:#cfe6d8;
  --red:#c05c3d; --danger-bar:#cd8069; --errbg:#f6e3dc;
  --amber:#8a6a3d; --warnbg:#f0e7d8;
  --tag-read:#5b7ba6; --tag-read-bg:#e9eef4; --tag-honors:#8a6a3d; --tag-honors-bg:#f0e7d8;
  /* 하위호환: 옛 변수명을 새 팔레트로 리매핑 */
  --bg:var(--paper); --warm:var(--surface-alt); --navy:var(--ink); --navy-soft:var(--ink2);
  --blue:var(--accent); --orange:var(--accent); --ogr:var(--accent); --cell-b:var(--accent); --unit-h:var(--accent);
  --serif:"Newsreader",serif;  /* 핸드오프와 동일 — 한글은 OS 명조(serif) 폴백에 맡김 */
  --sans:"Pretendard Variable",Pretendard,"Noto Sans KR","Apple SD Gothic Neo",system-ui,sans-serif;
  --mono:"IBM Plex Mono",ui-monospace,"SFMono-Regular",monospace;
  /* 컨텍스트 박스(.given: 제시문·주어진 글·접근법·넣을 문장 등) — 파랑 → 에디토리얼 종이 톤 */
  --given-bd:var(--line-2); --given-bg:var(--surface);
  --cell-line:var(--line); --cell-bg:#fff; --given-bd2:var(--line-2);
  --display:"Space Grotesk","Pretendard Variable",system-ui,sans-serif;
}
/* 오버라인 라벨: 대문자 mono, accent — 섹션 제목 위 */
.overline{font-family:var(--mono);font-weight:600;font-size:10.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--accent);display:block;margin-bottom:5px;}
*{box-sizing:border-box;margin:0;padding:0;}
body{font-family:var(--sans);background:var(--bg);color:var(--ink);font-size:15px;line-height:1.7;}
/* ── 상단 바: 종이 표면 + hairline (에디토리얼) ── */
.top{background:var(--surface);border-bottom:1px solid var(--line);display:flex;align-items:center;gap:16px;padding:11px 26px;position:sticky;top:0;z-index:9;flex-wrap:nowrap;}
.logo{font-family:var(--display);font-weight:700;font-size:19px;letter-spacing:-.2px;color:var(--ink);white-space:nowrap;}
.logo span{color:var(--accent);}
.mod{background:var(--tag-read-bg);color:var(--tag-read);border:none;border-radius:999px;padding:3px 12px;font-size:11.5px;font-weight:700;white-space:nowrap;font-family:var(--mono);letter-spacing:.02em;}
.top .who{margin-left:auto;font-size:12px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex-shrink:1;min-width:0;font-family:var(--mono);}
.nav{display:flex;gap:2px;margin-left:12px;overflow-x:auto;scrollbar-width:none;}
.nav::-webkit-scrollbar{display:none;}
.nav button{background:none;border:none;color:var(--muted);font-size:13.5px;font-weight:600;padding:8px 12px;border-radius:0;cursor:pointer;white-space:nowrap;flex-shrink:0;border-bottom:2px solid transparent;transition:color .12s;}
.nav button:hover{color:var(--ink);}
.nav button.on{background:none;color:var(--ink);border-bottom-color:var(--accent);}
@media(max-width:820px){.top{gap:8px;padding:8px 14px;}.mod{display:none;}.nav{margin-left:4px;}.top .who{font-size:11.5px;max-width:150px;}}
@media(max-width:560px){.top .who{display:none;}}
.wrap{max-width:1000px;margin:26px auto;padding:0 18px;}
#scr-learn .wrap,#scr-drill .wrap{max-width:780px;}
/* 카드: 종이 표면 + hairline + 얇은 라운드 + 은은한 그림자 */
.card{background:var(--surface);border:1px solid var(--line);border-radius:10px;padding:24px 28px;margin-bottom:18px;box-shadow:0 1px 2px rgba(40,34,24,.04);}
h2{font-family:var(--serif);color:var(--ink);font-size:24px;margin-bottom:10px;font-weight:560;letter-spacing:-.2px;}
h3{font-family:var(--serif);color:var(--ink);font-size:19px;margin:16px 0 8px;font-weight:440;}
#scr-learn h3,#scr-drill h3{font-size:19px;}
.btn{background:var(--ink);color:#fff;border:none;border-radius:6px;padding:10px 22px;font-size:14px;font-weight:600;cursor:pointer;box-shadow:none;font-family:var(--sans);}
.btn:hover{background:#141009;}
.btn.red{background:var(--red);} .btn.green{background:var(--green);}
.btn.accent{background:var(--accent);} .btn.accent:hover{background:#9c5a34;}
.btn.ghost{background:var(--surface);color:var(--ink);border:1px solid var(--line-2);box-shadow:none;}
.btn.ghost:hover{border-color:var(--muted);background:var(--surface-alt);}
.btn:disabled{background:var(--track);color:var(--faint);box-shadow:none;cursor:not-allowed;opacity:1;}
.btn.sm{padding:7px 15px;font-size:13px;border-radius:6px;}
#scr-learn .stepPane>.btn.sm:not(.ghost),#scr-drill #drillSubmit{display:block;width:100%;border-radius:12px;padding:13px;font-size:15px;margin-top:14px;}
input,textarea,select{border:1.5px solid var(--line);border-radius:10px;padding:9px 12px;font-size:14.5px;width:100%;font-family:inherit;background:#fff;color:var(--ink);}
textarea{min-height:56px;resize:vertical;}
.screen{display:none;} .screen.on{display:block;}
.badge{display:inline-block;background:var(--surface-alt);color:var(--ink2);border:1px solid var(--line);border-radius:999px;padding:2px 11px;font-size:11.5px;font-weight:700;margin-right:6px;}
.badge.red{background:var(--errbg);color:var(--red);border-color:transparent;}
.badge.green{background:var(--okbg);color:var(--green);border-color:transparent;}
.hint{display:inline-block;background:var(--warnbg);border:1px solid #f4d39b;color:var(--amber);border-radius:10px;padding:2px 12px;font-size:13px;font-weight:600;}
.login{max-width:440px;margin:70px auto;text-align:center;border-radius:14px;padding:48px 44px 40px;}
.login .lgov{font-family:var(--mono);font-weight:600;font-size:10.5px;letter-spacing:.22em;text-transform:uppercase;color:var(--accent);margin-bottom:18px;}
.login .logo2{font-family:var(--serif);font-size:52px;font-weight:560;line-height:1;color:var(--ink);margin-bottom:18px;letter-spacing:-.01em;}
.login .logo2 span{color:var(--accent);}
.login .cap{color:var(--muted);margin-bottom:32px;font-size:14px;}
.login input{text-align:center;font-size:15px;margin-bottom:12px;border-radius:9px;padding:15px 16px;background:#fff;border:1px solid var(--line-2);color:var(--ink);}
.login input.pin{letter-spacing:.3em;}
.login input::placeholder{color:var(--faint);letter-spacing:.1em;}
.login .btn{border-radius:9px;padding:15px;font-size:15px;margin-top:2px;}
.login .lgnote{margin-top:22px;color:var(--faint);font-size:12px;}
.grid{display:grid;grid-template-columns:1fr 1fr;gap:16px;}
.tile{border:1px solid var(--line);border-radius:20px;padding:20px;background:#fff;}
.tile .t{font-weight:700;color:var(--ink);font-size:16px;}
.gate{border:1.5px solid #f4d39b;background:#fff;}
.prog{height:10px;background:var(--warm);border-radius:6px;overflow:hidden;margin:8px 0;}
.prog i{display:block;height:100%;background:var(--ogr);border-radius:6px;}
.stepbar{display:flex;gap:5px;margin-bottom:16px;flex-wrap:wrap;}
.stepbar b{background:var(--warm);color:var(--muted);border-radius:16px;padding:4px 13px;font-size:12.5px;font-weight:600;}
.stepbar b.cur{background:var(--ogr);color:#fff;} .stepbar b.done{background:var(--okbg);color:var(--green);border:1px solid var(--okbd);}
/* 지문: 인쇄물 느낌의 세리프 */
.passage{background:#fff;border:1px solid var(--line);border-radius:16px;padding:20px 24px;font-size:16.5px;line-height:2.15;margin:12px 0;color:#1c2534;font-family:var(--serif);}
.passage .w{cursor:pointer;border-radius:5px;padding:0 2px;}
.passage .w.mk{background:#ffe9a8;font-weight:700;}
.passage .w.ansHl{background:#e2f3e6;outline:2px solid #74b98a;color:#1d4d30;font-weight:700;border-radius:5px;}
.chips{margin:8px 0;}
.chiprow{display:flex;gap:8px;align-items:center;margin:7px 0;}
.chiprow .ct{background:var(--warm);border:1px solid var(--line);border-radius:10px;padding:5px 14px;font-weight:600;font-size:14.5px;white-space:nowrap;}
.chiprow select{max-width:230px;border-radius:9px;}
.chiprow .x{color:#c9c2b8;cursor:pointer;font-weight:900;}
.chiprow .sep{color:var(--red);cursor:pointer;padding:0 4px;font-weight:900;opacity:.45;}
.chiprow .sep:hover{opacity:1;background:var(--errbg);border-radius:4px;}
.devnote{display:none;border:1.5px dashed #d8d2c9;background:var(--warm);color:var(--muted);border-radius:8px;padding:6px 10px;margin:7px 0;font-size:12.5px;}
body.showdev .devnote{display:block;}
.sent{padding:8px 13px;margin:4px 0;border-radius:12px;background:#fff;border:1px solid var(--line);font-size:14px;font-family:var(--serif);}
.cut{text-align:center;color:#c9c2b8;cursor:pointer;font-size:12px;padding:1px 0;border-radius:6px;}
.cut:hover{background:var(--warm);}
.cut.on{color:#fff;background:var(--orange);font-weight:700;}
.grp0{border-left:5px solid #10243f;} .grp1{border-left:5px solid #c03d4b;} .grp2{border-left:5px solid #2f7d4b;} .grp3{border-left:5px solid #b5730a;} .grp4{border-left:5px solid #7a5aa0;}
/* 피드백: 흰 카드 + 오렌지 상단 액센트 (사이트의 하이라이트 색) */
.fb{border:1px solid var(--line);border-top:4px solid var(--orange);background:#fff;border-radius:16px;padding:18px 22px;margin:14px 0;display:none;box-shadow:0 18px 40px -32px rgba(15,23,42,.18);}
.fb.on{display:block;}
.fb .h{font-weight:700;color:#ea6a0a;margin-bottom:6px;font-size:15.5px;}
.fb .sec{margin:8px 0;} .fb .lab{font-weight:700;color:#233044;font-size:12px;margin-right:6px;letter-spacing:.4px;}
.mywork{border:1px solid var(--line);background:var(--warm);border-radius:14px;padding:14px 18px;margin:10px 0;font-size:13.5px;}
.mywork .h{font-weight:700;color:#233044;font-size:13px;margin-bottom:5px;}
.mywork .en{color:#233044;font-size:13px;background:#fff;border:1px solid var(--line);border-radius:10px;padding:6px 10px;margin:4px 0;line-height:1.7;}
.pbox{border:1px solid var(--line);border-radius:14px;padding:12px 16px;margin:6px 0;background:#fff;}
.pbox b{color:var(--ink);font-size:13.5px;}
.pyr{max-width:680px;margin:8px auto;}
.pyr .toprow{width:76%;margin:0 auto;} .pyr .btmrow{display:flex;gap:8px;} .btmrow .pbox{flex:1;}
.choices label{display:block;padding:10px 15px;border:1px solid var(--line);border-radius:12px;margin:6px 0;cursor:pointer;font-size:14.5px;background:#fff;}
.choices label.on{border-color:var(--orange);background:#fff3e8;font-weight:600;}
.note{font-size:12.5px;color:var(--muted);}
table{border-collapse:collapse;width:100%;font-size:13.5px;margin:8px 0;}
th,td{padding:9px 10px;text-align:left;border-bottom:1px solid #f0ece5;}
th{background:var(--warm);color:var(--muted);font-size:11.5px;letter-spacing:.8px;font-weight:700;}
.bar{background:var(--warm);border-radius:5px;height:11px;overflow:hidden;min-width:120px;}
.bar i{display:block;height:100%;border-radius:5px;}
.rec{border:1px solid var(--okbd);background:var(--okbg);border-radius:16px;padding:16px 20px;color:#1d4d30;}
.tag{display:inline-block;border:1px solid var(--line);border-radius:999px;padding:2px 10px;font-size:12px;margin:2px;background:var(--surface);font-family:var(--mono);color:var(--ink2);}
.mockband{background:var(--navy);border-bottom:1px solid #1b2942;color:#a79e95;font-size:12.5px;padding:5px 10px;display:flex;justify-content:center;align-items:center;gap:14px;flex-wrap:wrap;}
.mockband b{color:#ffd6ae;}
.nextbtn{display:none;margin-top:12px;background:var(--ogr);border-radius:11px;}
.stepPane{display:none;} .stepPane.on{display:block;}
.ok{color:var(--green);font-weight:700;} .ng{color:var(--red);font-weight:700;} .half{color:var(--amber);font-weight:700;}
.vrow{margin:5px 0;font-size:14.5px;}
.gchip{display:inline-block;border-radius:8px;padding:2px 10px;margin:2px;font-weight:600;color:#fff;font-size:12.5px;}
.cmp td{vertical-align:top;} .choices label.okc{border-color:#74b98a;background:var(--okbg);font-weight:600;} .choices label.ngc{border-color:#f5c2c7;background:var(--errbg);}
/* 성적표·강사: 네이비 배너 */
.banner{background:var(--surface);border:1px solid var(--line);color:var(--ink);border-radius:10px;padding:22px 26px;margin-bottom:16px;box-shadow:none;}
.banner h2{font-family:var(--sans);color:var(--ink);margin-bottom:2px;font-weight:800;}
.banner p{font-size:13.5px;color:var(--muted);}
.statrow{display:flex;gap:14px;margin-bottom:16px;flex-wrap:wrap;}
.stbox{flex:1;min-width:120px;background:var(--surface);border:1px solid var(--line);border-radius:10px;padding:16px 18px;text-align:center;box-shadow:none;}
.stbox .n{font-family:var(--display);font-size:28px;font-weight:600;color:var(--ink);}
.stbox .c{font-size:12px;color:var(--muted);}
.locked{opacity:.93;}
.locked .w,.locked .cut,.locked .sep,.locked .x{pointer-events:none;cursor:default;}
.origbox{margin:10px 0;}
.origbox summary{cursor:pointer;font-weight:600;color:#ea6a0a;font-size:13.5px;padding:4px 0;}

/* ── 로그인: 다크 히어로 (이미지 1·2) — 박스는 투명, 라인만 ── */
#scr-login{padding-top:40px;background:var(--paper);min-height:calc(100vh - 50px);padding-bottom:60px;}
#scr-login .login{margin-top:30px;} #scr-login .login.card{background:var(--surface);border:1px solid var(--line);box-shadow:0 20px 50px -24px rgba(40,34,24,.28);}
#scr-login input{background:#fff;border:1px solid var(--line-2);color:var(--ink);}
#scr-login input::placeholder{color:var(--faint);}
#scr-login .err{color:var(--red);}
#scr-login .err:not(:empty){display:flex;align-items:center;justify-content:center;gap:9px;background:var(--errbg);border:1px solid rgba(192,92,61,.35);color:#8f3a24;border-radius:9px;padding:11px 15px;margin-top:14px;font-size:14px;font-weight:600;line-height:1.5;text-align:left;}
#scr-login .err:not(:empty)::before{content:"!";flex:none;width:20px;height:20px;border-radius:50%;background:var(--red);color:#fff;font-weight:800;font-size:13px;display:inline-flex;align-items:center;justify-content:center;}
/* 상단바: 로고만 (제품 pill 미표시 — 핸드오프 톤) */
.top .mod{display:none;}
/* 상단 다크 바의 배지 */
/* (구 다크 상단바 오버라이드 제거 — 에디토리얼 밝은 상단바 사용) */
/* 검수 띠도 다크 */
.mockband{background:#04090f;border-bottom:1px solid rgba(255,255,255,.08);color:#8b93a3;}
.mockband b{color:#ffd6ae;}
/* 유닛 소제목: 오렌지 아이브로 */
.unit-h{font-size:13.5px;font-weight:800;color:#ea6a0a;letter-spacing:1.2px;}
.unit-h small{color:var(--muted);font-weight:600;letter-spacing:0;}

/* ══ ② 문제풀이(1a 에디토리얼/시험지) — 핸드오프 원본 값 이식 ══ */
#scr-learn .wrap{max-width:760px;}
#scr-learn>.wrap>.card,#scr-learn #paneBody{background:transparent;border:none;box-shadow:none;}
#scr-learn>.wrap>.card{padding:20px 0 0;margin:0;}
.ov{font-family:var(--mono);font-weight:600;font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--accent);margin-bottom:8px;}
.qtitle{font-family:var(--serif);font-weight:440;font-size:30px;line-height:1.25;letter-spacing:-.01em;color:var(--ink);margin:0 0 6px;}
.qstem{font-family:var(--sans);font-weight:400;font-size:15px;line-height:1.5;color:#5f574a;margin:0 0 30px;}
.stepper{display:flex;align-items:center;gap:0;margin:0 0 34px;border-top:1px solid var(--line-2);border-bottom:1px solid var(--line-2);padding:14px 0;}
.stepper .stp{display:flex;align-items:center;gap:9px;flex:1;}
.stepper .stp:last-child{flex:0 0 auto;}
.stepper .num{width:22px;height:22px;border-radius:50%;border:1.5px solid rgba(40,34,24,.25);color:var(--faint);font:600 11px var(--mono);display:grid;place-items:center;flex:none;}
.stepper .lb{font:500 13px var(--sans);color:var(--faint);white-space:nowrap;}
.stepper .stp.cur .num{background:var(--accent);border-color:var(--accent);color:#fff;}
.stepper .stp.cur .lb{color:var(--ink);font-weight:600;}
.stepper .stp.done .num{background:var(--ink);border-color:var(--ink);color:#fff;}
.stepper .stp.done .lb{color:var(--muted);}
#scr-learn h3{font-family:var(--sans);font-size:15px;font-weight:600;color:var(--ink);display:flex;align-items:baseline;gap:10px;flex-wrap:wrap;margin:24px 0 10px;}
#scr-learn h3 .gref{margin-left:auto;}
#scr-learn .hint{background:none;border:none;color:var(--muted2);font-weight:500;padding:0;font-size:12.5px;}
#scr-learn .hint .ic{display:none;}
#scr-learn .passage,#scr-drill .passage{background:transparent;border:none;border-radius:0;padding:0;margin:10px 0 6px;font-family:var(--serif);font-weight:400;font-size:19px;line-height:1.85;color:#2c2519;}
#scr-learn .passage .w{cursor:pointer;border-radius:2px;padding:0 1px;transition:background .1s;}
#scr-learn .passage .w:hover{background:var(--accent-soft);}
#scr-learn .passage .w.on,#scr-learn .passage .w.mk{background:linear-gradient(transparent 62%,rgba(176,103,61,.28) 0);border-bottom:2px solid var(--accent);font-weight:400;color:var(--ink);border-radius:0;}
#scr-learn .passage .w.ansHl{background:linear-gradient(transparent 60%,rgba(46,107,79,.24) 0);outline:none;border-bottom:2px solid var(--green);color:#1d4d30;font-weight:400;border-radius:0;}
.ansHl{background:linear-gradient(transparent 60%,rgba(46,107,79,.24) 0);border-bottom:2px solid var(--green);padding:0 1px;}
#scr-learn .gref{font:500 11.5px var(--mono);color:var(--muted2);border:1px solid var(--line-2);border-radius:4px;padding:4px 9px;letter-spacing:0;}
#scr-learn #sigSubmit,#scr-learn .stepPane>.btn.sm:not(.ghost){background:var(--ink);}
/* 어휘: 접이식 하단 스트립 */
.vocabstrip{background:#f1ece2;border:none;border-top:1px solid var(--line);border-radius:0;margin:24px 0 0;padding:16px 0;}
.vocabstrip>summary{display:flex;align-items:center;justify-content:space-between;cursor:pointer;list-style:none;}
.vocabstrip>summary::-webkit-details-marker{display:none;}
.vocabstrip .vx{font:500 12px var(--mono);color:var(--muted);}
.vocabstrip[open] .vx::after{content:" ▴";}
.vocabstrip .vtab{margin-top:14px;width:100%;}

/* ══ ③ 성적표(2a/3a 에디토리얼) — 핸드오프 값 이식 ══ */
.rpttitle{font:440 26px/1.2 var(--serif);color:var(--ink);letter-spacing:-.01em;margin:6px 0 6px;}
.rptsub{font:400 14px var(--sans);color:var(--muted);margin:0 0 24px;}
#reportWrap h3,#tReport h3{font-family:var(--serif);font-weight:440;font-size:19px;color:var(--ink);}
.st4grid{display:grid;grid-template-columns:repeat(3,1fr);border:1px solid var(--line);border-radius:10px;overflow:hidden;margin-bottom:24px;background:var(--line);gap:1px;}
.st4box{background:var(--surface);padding:18px 20px;}
.st4box .n{font:600 28px/1 'Space Grotesk',sans-serif;color:var(--ink);margin-bottom:6px;}
.st4box .c{font:500 11.5px var(--sans);color:var(--muted2);}
@media(max-width:640px){.st4grid{grid-template-columns:1fr 1fr}}
.trapchip{display:inline-flex;align-items:center;gap:8px;font:500 12.5px var(--sans);color:var(--ink2);background:var(--surface);border:1px solid var(--line-2);border-radius:7px;padding:8px 12px;}
.trapcode{font:600 10px var(--mono);color:var(--tag-honors);background:var(--tag-honors-bg);border-radius:4px;padding:2px 6px;}
/* STEP 수행 뱃지 — 상태색 (핸드오프: 좋음 success / 보통 muted / 약함 danger) */
#reportWrap .badge.green,#tReport .badge.green{background:var(--okbg);color:var(--green);}
/* 성적표 카드 안 표는 편집형 hairline */
#reportWrap table,#tReport table{border-collapse:collapse;width:100%}

/* ══ ④ 강사(4a)·자료(5b)·수강 모달(4b) — 편집형 표 ══ */
#scr-teacher table,#scr-materials table{border-collapse:collapse;width:100%;}
#scr-teacher thead th,#scr-materials thead th{background:#f1ece2;color:var(--muted2);font:600 11px var(--sans);text-align:left;padding:10px 12px;white-space:nowrap;border:none;}
#scr-teacher thead th[onclick],#scr-materials thead th[onclick]{color:var(--muted);}
#scr-teacher tbody td,#scr-materials tbody td{padding:11px 12px;border-top:1px solid rgba(40,34,24,.07);font-size:12.5px;color:var(--ink2);vertical-align:middle;}
#scr-teacher tbody tr:nth-child(even),#scr-materials tbody tr:nth-child(even){background:var(--surface-alt);}
#scr-teacher tbody tr:hover,#scr-materials tbody tr:hover{background:#f3ede2;}
/* 표를 감싸는 스크롤 박스에 라운드 테두리 */
#scr-teacher .card>div[style*="overflow-x"],#scr-materials .card>div[style*="overflow-x"]{border:1px solid var(--line);border-radius:10px;overflow:hidden;overflow-x:auto;}
/* 코드·PIN·숫자 = mono 느낌 (첫 열 코드 링크) */
#scr-teacher tbody td:first-child a,#scr-materials tbody td:first-child b{font-family:var(--mono);font-weight:600;}
#scr-teacher tbody td .tag{font-family:var(--mono);}
/* 섹션 라벨(등록·관리·관리자) — 카드 안 sub-panel 톤 */
/* 핸드오프: 강사·자료 섹션 소제목 = Pretendard 600 13px (세리프 아님) — 리포트 소제목만 세리프 19px 유지 */
#scr-teacher .card>h3,#scr-materials .card>h3{font-family:var(--sans);font-weight:600;font-size:13px;color:var(--ink);margin:0 0 14px;letter-spacing:0;}
#scr-teacher .card>h3 .note,#scr-materials .card>h3 .note{font-weight:400;font-size:13px;}
/* 수강 관리 모달 — 타이틀만 세리프 18px 유지 */
#mgmtOverlay .card{border-radius:14px;box-shadow:0 24px 60px -20px rgba(40,34,24,.4);}
#mgmtOverlay h3{font-family:var(--serif);font-weight:440;font-size:18px;}

/* ══ ⑤ 홈(수업 선택) + 강사 모드 태그 ══ */
.modtag{font:600 11.5px var(--sans);color:var(--tag-honors);background:var(--tag-honors-bg);border:1px solid rgba(138,106,61,.28);border-radius:5px;padding:4px 10px;letter-spacing:0;}
.top .who .modtag{font-family:var(--sans);}

/* ══ ⑤ 드릴(6a) — 5분 신호 예열 (핸드오프 값) ══ */
#scr-drill .wrap{max-width:820px;}
#scr-drill .dcard{background:transparent;border:none;box-shadow:none;padding:12px 0 0;margin:0;}
.drow{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px;gap:12px;}
.dprog{display:flex;align-items:center;gap:10px;}
.dcount{font:600 12px var(--mono);color:var(--ink);}.dcount span{color:var(--faint);}
.dbars{display:flex;gap:4px;}
.dbar{width:22px;height:4px;border-radius:2px;background:#e3d8c6;}.dbar.on{background:var(--accent);}
.dtitle{font:440 27px/1.25 var(--serif);color:var(--ink);margin:0 0 4px;}
.dsub{font:400 13.5px var(--sans);color:var(--muted2);margin:0 0 30px;}
.dtask{font:600 15px var(--sans);color:var(--ink);margin:0 0 14px;display:flex;align-items:baseline;gap:10px;flex-wrap:wrap;}
.dtask .hint{background:none;border:none;color:var(--muted2);font-weight:500;padding:0;font-size:12px;}
.dtask .hint .ic{display:none;}
#scr-drill .passage{background:var(--surface);border:1px solid var(--line-2);border-radius:12px;padding:32px 36px;margin:0 0 22px;font:400 22px/1.8 var(--serif);color:#2c2519;}
#scr-drill .passage .w{cursor:pointer;padding:0 1px;border-radius:2px;}
#scr-drill .passage .w:hover{background:var(--accent-soft);}
#scr-drill .passage .w.mk{background:linear-gradient(transparent 60%,rgba(176,103,61,.28) 0);border-bottom:2px solid var(--accent);font-weight:400;color:var(--ink);}
#scr-drill #dSubmit{background:var(--ink);padding:12px 26px;font-size:14px;border-radius:6px;margin-top:6px;}
/* 어휘 3열 */
.dvocab{border-top:1px solid var(--line);margin-top:30px;padding-top:22px;}
.dvgrid{display:grid;grid-template-columns:auto auto 1fr;gap:0 22px;}
.dvrow{display:contents;}
.dvrow>div{padding:7px 0;border-top:1px solid rgba(40,34,24,.07);}
.dvrow:first-child>div{border-top:none;}
.dvw{font:600 14px "Source Serif 4",Georgia,serif;color:var(--ink);display:flex;align-items:center;gap:7px;}
.dvi{font:400 13px var(--mono);color:var(--muted2);}
.dvk{font:400 13px var(--sans);color:var(--ink2);}
.dvup{font:500 9px var(--sans);color:var(--accent);background:var(--accent-soft2);border-radius:4px;padding:2px 6px;}

/* ── 2차 크로스체크: 페이지 헤더 · 리스트 표 · 삽입 주어진문장 · 과목배지 · 모달 버튼 ── */
.pagehead{margin:2px 0 18px;}
.givenbox{background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:16px 22px;margin:0 0 18px;position:relative;}
.givenbox::before{content:"";position:absolute;left:0;top:14px;bottom:14px;width:3px;border-radius:3px;background:var(--accent);opacity:.55;}
.givenbox .gtext{font:440 18px/1.6 var(--serif);font-style:italic;color:var(--ink);margin:0;}
.ltbl{width:100%;border-collapse:collapse;}
.ltbl th{background:#f1ece2;text-align:left;padding:12px 14px;font:600 12.5px var(--sans);color:var(--muted);border-bottom:1px solid var(--line);}
.ltbl th:first-child{border-top-left-radius:9px;} .ltbl th:last-child{border-top-right-radius:9px;}
.ltbl td{padding:15px 14px;border-bottom:1px solid var(--line);font-size:14px;color:var(--ink);vertical-align:middle;}
.ltbl tbody tr:last-child td{border-bottom:none;}
.mcode{font:600 14px var(--mono);color:var(--accent);letter-spacing:.01em;}
.mono2{font:400 13px var(--mono);color:var(--muted2,var(--muted));}
.subj{display:inline-block;background:#e9eef4;color:#5b7ba6;border-radius:4px;padding:3px 8px;font:600 10px var(--sans);margin-right:6px;vertical-align:1px;}
.delink{background:none;border:none;color:var(--accent);font:600 12.5px var(--sans);cursor:pointer;padding:2px 4px;}
.delink:hover{text-decoration:underline;}
.btn.okpill{background:#6f9270;border-color:#6f9270;color:#fff;}
.btn.okpill:hover{background:#5f7f61;}
.btn.delpill{background:var(--accent-soft);border:1px solid rgba(176,103,61,.35);color:#9c5a34;box-shadow:none;}
.btn.delpill:hover{background:#e9dcc9;}
#scr-materials input[type=checkbox],#scr-teacher input[type=checkbox]{accent-color:var(--accent);width:15px;height:15px;}

/* 삽입 STEP1 — 주어진 문장 안 신호 클릭 */
.givenbox .gtext .w{cursor:pointer;padding:0 1px;border-radius:2px;transition:background .1s;}
.givenbox .gtext .w:hover{background:var(--accent-soft);}
.givenbox .gtext .w.mk{background:linear-gradient(transparent 62%,rgba(176,103,61,.28) 0);border-bottom:2px solid var(--accent);}
.givenbox .gtext .w.ansHl{background:linear-gradient(transparent 60%,rgba(46,107,79,.24) 0);border-bottom:2px solid var(--green,#2e6b4f);color:#1d4d30;}
.ginline{font-family:var(--sans);font-weight:400;font-size:11px;letter-spacing:0;text-transform:none;color:var(--muted2,#8a8072);}
/* 문제 화면 — 문항 목록 돌아가기 */
.backlist{margin:0 0 16px;}

/* ── 학생 실명+코드 · 수강 이력 ── */
.scode{font:600 12px var(--mono);color:var(--muted2);letter-spacing:.01em;}
.ddaypill{display:inline-block;background:var(--accent-soft);color:#9c5a34;border-radius:5px;padding:1px 8px;font:600 12px var(--mono);}
.histtbl th,.histtbl td{padding:11px 12px;font-size:13px;white-space:nowrap;}
.histtbl td:first-child{white-space:normal;}
.histcard{padding:16px 20px;}
.histcard summary{cursor:pointer;list-style:none;display:flex;align-items:baseline;gap:10px;}
.histcard summary::-webkit-details-marker{display:none;}
.histcard summary::before{content:"▸";color:var(--muted2);font-size:12px;}
.histcard[open] summary::before{content:"▾";}
.histcard .histsum{font:600 15px var(--serif);color:var(--ink);}

/* 단계별 수행 — '집중 공략'(하위) 배지: 부정 아닌 공략 톤 */
.badge.focus{background:var(--accent-soft);color:#9c5a34;border-color:transparent;}

/* ── 성적표: 단계별 수행(STEP 파이프라인) ── */
.pipehead{display:flex;align-items:baseline;justify-content:space-between;margin:2px 0 22px;flex-wrap:wrap;gap:10px;}
.pipesub{font:400 12px var(--sans);color:var(--faint);}
.pipeleg{display:flex;gap:12px;font:500 10.5px var(--sans);color:var(--muted);}
.pipeleg span{display:flex;align-items:center;gap:5px;}
.pipeleg i{width:9px;height:9px;border-radius:50%;display:inline-block;}
.piperow{position:relative;padding:0 6px;}
.pipetrack{position:absolute;left:7.1%;right:7.1%;top:9px;height:2px;background:rgba(40,34,24,.12);}
.pipenodes{position:relative;display:flex;justify-content:space-between;}
.pipenode{display:flex;flex-direction:column;align-items:center;gap:7px;flex:1;min-width:0;}
.pdot{width:16px;height:16px;border-radius:50%;box-shadow:0 0 0 4px var(--surface);}
.pname{font:600 11.5px var(--sans);color:var(--ink);text-align:center;line-height:1.25;}
.pstat{font:500 10px var(--sans);white-space:nowrap;}
.pipenote{margin:20px 0 0;font:400 12px/1.5 var(--sans);color:var(--muted2);}
/* ── 성적표: 자주 걸리는 함정(우선순위 리스트) ── */
.traplist{display:flex;flex-direction:column;}
.traprow{display:grid;grid-template-columns:38px 1fr 120px;align-items:center;gap:14px;padding:13px 0;border-top:1px solid var(--line);}
.trapcode2{font:600 11px var(--mono);color:var(--tag-honors);background:var(--tag-honors-bg);border-radius:5px;padding:4px 0;text-align:center;}
.trapname b{font:600 13.5px var(--sans);color:var(--ink);}
.trapdesc{font:400 11.5px var(--sans);color:var(--muted2);}
.trapfreq{display:flex;align-items:center;gap:8px;}
.trapbar{flex:1;height:6px;background:var(--track);border-radius:3px;overflow:hidden;}
.trapbar>span{display:block;height:100%;border-radius:3px;}
.trapx{font:600 12px var(--mono);}

/* 수강 이력 — 회독·복습 배지 (완료 칸 아랫줄 / 모달 책행) */
.rd{display:inline-block;border-radius:5px;padding:2px 8px;font:600 10.5px var(--sans);letter-spacing:.01em;}
.rd.plain{background:var(--track);color:var(--muted);}
.rd.review{background:var(--accent-soft);color:#9c5a34;}
.histtbl td .rd{margin-top:5px;}

/* 수강 관리 모달 — 동작 피드백(토스트 + 행 반짝임) */
.mgmttoast{max-height:0;overflow:hidden;opacity:0;background:var(--okbg);color:var(--green);border-radius:8px;font:600 12.5px var(--sans);padding:0 12px;transition:max-height .22s,opacity .22s,margin .22s,padding .22s;}
.mgmttoast.on{max-height:48px;opacity:1;margin-top:10px;padding:9px 12px;}
.mgmttoast.err{background:var(--errbg);color:var(--red);}
.mgmtbookrow.flash{animation:rowflash 1.1s ease;}
@keyframes rowflash{0%{background:var(--accent-soft2);}70%{background:var(--accent-soft2);}100%{background:transparent;}}

/* 강사 미리보기 — 문항/파트 수동 열기·잠그기 버튼 (학생 화면엔 렌더 안 됨) */
.qcell{position:relative;}
.qcell.manual{border-color:var(--accent);background:var(--accent-soft2);}
.qopenbtn{margin-top:7px;border:1px solid var(--accent);background:var(--surface);color:var(--accent);border-radius:6px;padding:3px 10px;font:600 11px var(--sans);cursor:pointer;display:inline-flex;align-items:center;gap:3px;}
.qopenbtn:hover{background:var(--accent-soft);}
.qopenbtn.lock{border-color:var(--line-2);color:var(--muted);}
.qopenbtn.lock:hover{background:var(--surface-alt);}
.qopenbtn .ic{width:12px;height:12px;}
.qcell.lock .qopenbtn{pointer-events:auto;}
.partctl{margin-left:10px;display:inline-flex;gap:6px;vertical-align:middle;}
.homeflash{background:var(--errbg);color:var(--red);border-radius:8px;padding:9px 12px;font:600 12.5px var(--sans);margin-bottom:12px;}

/* 오답 해설 — 내가 고른 선지(빨간 박스) + 나머지 오답(접기) */
.disc-wrap{padding:0!important;background:none!important;border:none!important;}
.disc-pick{background:#fdece7;border:1px solid #f2cabb;border-radius:10px;padding:11px 14px;margin:8px 0;}
.disc-pick .disc-lab{display:inline-block;background:#c0392b;color:#fff;font-size:11px;font-weight:700;border-radius:6px;padding:2px 8px;margin-bottom:5px;}
.disc-pick .disc-txt{font-size:13.5px;color:#7a2b1c;line-height:1.65;}
.disc-pick .disc-txt b{color:#5e2015;}
.disc-more{background:var(--surface);border:1px solid var(--line);border-radius:10px;margin:8px 0;overflow:hidden;}
.disc-more>summary{list-style:none;cursor:pointer;padding:9px 14px;font-size:12.5px;font-weight:700;color:var(--accent);}
.disc-more>summary::-webkit-details-marker{display:none;}
.disc-more>summary::before{content:'▸ ';font-size:10px;}
.disc-more[open]>summary::before{content:'▾ ';}
.disc-more .disc-row{padding:6px 14px 6px 20px;font-size:13px;color:var(--ink2);line-height:1.6;border-top:1px dashed var(--line);}
.disc-more .disc-row b{color:var(--ink);}

/* 정답 풀이 (공식 적용) */
.awrap{background:#eef5ee;border:1px solid #cfe3d0;border-radius:10px;padding:11px 14px;margin:8px 0;}
.awrap .lab{color:#2f6b45;}
.awrap .atxt{font-size:13.5px;color:#28402f;line-height:1.65;margin-top:4px;}
.awrap .atxt b{color:#184028;}

/* 빈칸 — 지문 제자리 레이아웃 (빈칸 문장을 지문 안에서 하이라이트) */
.blankpass{margin:6px 0;}
.blankpass .bsent{border:1.5px solid var(--accent,#b0673d);background:var(--accent-soft,#f0e7d8);border-radius:10px;padding:8px 12px;margin:6px 0;font-family:var(--serif,Georgia);font-size:15px;line-height:1.7;}
.blankpass .rsent{cursor:pointer;border:1.5px solid var(--line,#d8dade);border-radius:10px;padding:8px 12px;margin:6px 0;font-family:var(--serif,Georgia);font-size:14px;line-height:1.55;transition:.1s;background:#fff;}
.blankpass .rsent:hover{border-color:var(--blue,#5b7ba6);background:rgba(91,123,166,.05);}
.blankpass .rsent.sel{border-color:#5b7ba6;background:rgba(91,123,166,.10);}
.blankpass .rsent2{border:1px solid var(--line,#e3e3e6);border-radius:8px;padding:6px 10px;margin:4px 0;font-family:var(--serif,Georgia);font-size:13px;color:#777;background:#fafafa;line-height:1.5;}
.blankpass .blk{background:#1a1c22;color:#fff;border-radius:4px;padding:0 7px;font-weight:800;letter-spacing:3px;}

/* 빈칸 대응 비교 표 (모범 ↔ 내가 고른 것) */
table.cmp{border-collapse:collapse;width:100%;table-layout:fixed;margin-top:6px;}
table.cmp th,table.cmp td{border:1px solid var(--line);padding:8px 10px;font-size:13.5px;vertical-align:top;}
table.cmp th{background:var(--accent-soft,#f0e7d8);font-weight:700;font-size:12.5px;text-align:center;color:var(--ink);}
table.cmp td:first-child,table.cmp th:first-child{width:66px;text-align:center;font-weight:800;}
table.cmp .cmp-model{color:#28402f;font-weight:600;}
table.cmp .cmp-mine{color:var(--ink2);}
.cmp .tgA{background:#5b7ba6;color:#fff;border-radius:5px;padding:1px 7px;font-size:12px;font-weight:800;}
.cmp .tgB{background:#b0673d;color:#fff;border-radius:5px;padding:1px 7px;font-size:12px;font-weight:800;}
