/* 사이트 공통 디자인. 모든 페이지가 자기 <style> 다음에 불러와서 덮어씀
   html[data-kind]: note = 국어·과학·사회·영어 정리 / ws = 역사 학습지 / recite = 영어 본문 외우기
   html[data-subj]: 과목 색 */
:root{
  --font:'Pretendard Variable',Pretendard,-apple-system,BlinkMacSystemFont,system-ui,'Apple SD Gothic Neo','Malgun Gothic',sans-serif;
  --bg:#F4F5F7;
  --surface:#FFFFFF;
  --surface-2:#F7F8FA;
  --fill:#EEF0F3;
  --text:#191F28;
  --text-2:#4E5968;
  --text-3:#6B7684;
  --hair:#E5E8EB;
  --hair-2:#D1D6DB;
  --r-s:10px;
  --r-m:14px;
  --r-l:20px;
  --shadow-1:0 1px 2px rgba(17,24,39,.04),0 1px 3px rgba(17,24,39,.05);
  --shadow-2:0 10px 24px -10px rgba(17,24,39,.18);
  --brand:#1D5FD6;
  --brand-wash:#EBF2FE;

  /* 페이지마다 쓰던 색 이름을 새 색으로 연결 */
  --paper:var(--bg);
  --paper2:var(--surface);
  --line:var(--hair);
  --border:var(--hair);
  --ink:var(--text);
  --ink-soft:var(--text-2);
  --red:#C92A2A;
  --red-wash:#FFF1F0;
  --gold:#A16207;
  --gold-wash:#FDF3CF;
  --green:#047857;
  --green-wash:#E6F6EF;
  --blue:#1D5FD6;
  --blue-wash:#EBF2FE;
  --maxw:720px;
  /* 역사 학습지 */
  --indigo:#4338CA;
  --indigo-deep:#1E1B4B;
  --seal:#C92A2A;
  --seal-wash:#FFF1F0;
  /* 영어 본문 외우기 */
  --card:var(--surface);
  --rule:var(--hair);
  --brass:var(--brand);
  --ok:#047857;
  --no:#C92A2A;
  --serif:var(--font);
  --sans:var(--font);
}
html[data-subj="korean"]{--brand:#047857;--brand-wash:#E6F6EF;}
html[data-subj="science"]{--brand:#1D5FD6;--brand-wash:#EBF2FE;}
html[data-subj="social"]{--brand:#B45309;--brand-wash:#FEF3E2;}
html[data-subj="math"]{--brand:#0E7490;--brand-wash:#E6F6FA;}
html[data-subj="history"]{--brand:#4338CA;--brand-wash:#EEF0FD;}
html[data-subj="english"]{--brand:#BE185D;--brand-wash:#FDEEF5;}

body{
  background:var(--bg);background-image:none;color:var(--text);
  font-family:var(--font);letter-spacing:-.011em;
  word-break:keep-all;overflow-wrap:break-word;
  -webkit-font-smoothing:antialiased;
}
h1,h2,h3,h4{letter-spacing:-.022em;}
::selection{background:var(--brand-wash);}
button:focus-visible,input:focus-visible,.flip-card:focus-visible{outline:2px solid var(--brand);outline-offset:2px;}
strong{font-weight:700;}

/* ==================== 정리 페이지 ==================== */
.topbar{
  background:rgba(255,255,255,.88);
  -webkit-backdrop-filter:saturate(180%) blur(14px);backdrop-filter:saturate(180%) blur(14px);
  border-bottom:1px solid var(--hair);
}
.topbar-inner{padding:.6rem 1rem;}
.brand{margin-bottom:.55rem;}
.brand-mark{border:0;border-radius:8px;background:var(--brand);color:#fff;padding:.1rem .55rem;font-size:.84rem;}
.brand-sub{color:var(--text-3);}
/* 허브 안에서는 위 막대에 과목이 이미 보여서 줄을 줄임 */
html.in-hub .brand{display:none;}

html[data-kind="note"] nav.tabs{
  gap:.35rem;padding:0 1.4rem 0 0;
  -webkit-mask-image:linear-gradient(90deg,#000 calc(100% - 22px),transparent);
  mask-image:linear-gradient(90deg,#000 calc(100% - 22px),transparent);
}
nav.tabs button{
  border:0;background:var(--fill);color:var(--text-2);
  padding:.44rem .82rem;font-size:.84rem;font-weight:600;border-radius:999px;
}
nav.tabs button:hover{color:var(--text);}
nav.tabs button.active{background:var(--brand);color:#fff;}
@media(min-width:760px){
  html[data-kind="note"] nav.tabs{flex-wrap:wrap;overflow:visible;padding:0;-webkit-mask-image:none;mask-image:none;}
}

main{padding:1.35rem 1rem 4.5rem;}
.view.active{animation:fade .22s ease;}

/* 처음 화면 */
.hero-boxes{gap:.6rem;margin:0 0 1.15rem;}
.ws-box{border:0;border-radius:var(--r-l);background:var(--surface);padding:1.15rem 1.25rem;box-shadow:var(--shadow-1);}
.ws-box.title{flex:1 1 280px;background:var(--brand);color:#fff;}
.ws-box.title .ws-roman{color:rgba(255,255,255,.78);font-size:.76rem;font-weight:600;letter-spacing:0;}
.ws-box.title .ws-headline{font-size:1.3rem;font-weight:800;letter-spacing:-.025em;line-height:1.38;}
.ws-box.meta{flex:1 1 130px;}
.ws-box.meta .ws-headline{font-weight:700;}
.ws-meta-line{color:var(--text-3);font-size:.8rem;line-height:1.6;}
.hero-lede{font-size:.94rem;line-height:1.75;color:var(--text-2);max-width:none;}
.hero-cta{gap:.5rem;}
.btn{
  border:1px solid var(--brand);background:var(--brand);color:#fff;
  border-radius:12px;padding:.68rem 1.05rem;font-size:.88rem;font-weight:600;
  transition:filter .15s,transform .12s;
}
.btn:hover{filter:brightness(.94);}
.btn:active{transform:scale(.98);}
.btn.ghost{background:var(--surface);color:var(--text);border-color:var(--hair-2);}
.btn.small{padding:.46rem .85rem;font-size:.82rem;border-radius:10px;}
.unit-cards{gap:.5rem;}
.unit-card{
  border:1px solid var(--hair);border-radius:var(--r-m);background:var(--surface);
  padding:.9rem 1rem;box-shadow:var(--shadow-1);
  transition:transform .15s ease,box-shadow .15s ease;
}
.unit-card:hover{transform:translateY(-1px);box-shadow:var(--shadow-2);border-color:var(--hair);}
.unit-idx{
  border:0;border-radius:8px;font-weight:700;font-size:.76rem;
  background:color-mix(in srgb,currentColor 11%,transparent);
}
.unit-card h4{font-weight:700;font-size:.97rem;}
.unit-card p{color:var(--text-3);}

/* 표지: 목차가 바로 보이게 */
.hero-boxes{margin:0 0 .6rem;}
.ws-box.title{padding:1rem 1.15rem;}
.ws-box.title .ws-headline{font-size:1.14rem;line-height:1.4;}
.ws-box.title .ws-meta-line{color:rgba(255,255,255,.82);font-size:.78rem;margin-top:.4rem;}
.hero-cta{display:grid;grid-auto-flow:column;grid-auto-columns:1fr;gap:.4rem;margin:0 0 .9rem;}
.hero-cta .btn{justify-content:center;padding:.6rem .3rem;font-size:.84rem;white-space:nowrap;}
.unit-cards{gap:0;margin-top:0;background:var(--surface);border:1px solid var(--hair);border-radius:var(--r-m);box-shadow:var(--shadow-1);overflow:hidden;}
.unit-card,.unit-card:hover{transform:none;box-shadow:none;}
.unit-card{align-items:center;border:0;border-bottom:1px solid var(--hair);border-radius:0;background:transparent;padding:.68rem .9rem;}
.unit-card:last-child{border-bottom:0;}
.unit-card:hover{background:var(--surface-2);border-color:var(--hair);}
.unit-card::after{content:'›';font-size:1.25rem;line-height:1;color:var(--text-3);}
.unit-card h4{font-size:.94rem;font-weight:600;line-height:1.4;}
.unit-card p{display:none;}
.unit-idx{min-width:3.1rem;}
.cover-more{margin-top:.6rem;background:var(--surface);border:1px solid var(--hair);border-radius:var(--r-m);box-shadow:var(--shadow-1);}
.cover-more summary{display:flex;align-items:center;justify-content:space-between;padding:.78rem .95rem;font-size:.88rem;font-weight:600;cursor:pointer;list-style:none;}
.cover-more summary::-webkit-details-marker{display:none;}
.cover-more summary::after{content:'';width:.45rem;height:.45rem;border-right:2px solid var(--text-3);border-bottom:2px solid var(--text-3);transform:rotate(45deg) translate(-2px,-2px);transition:transform .18s ease;}
.cover-more[open] summary::after{transform:rotate(225deg) translate(-2px,-2px);}
.cover-more .hero-lede{padding:0 .95rem;margin:.1rem 0 .9rem;font-size:.86rem;}
.cover-more .block{padding:0 .95rem;margin-bottom:.4rem;}

/* 프린트 전체 정답 */
.ans-unit{margin-top:.5rem;}
.ans-unit h3{margin-top:.9rem;font-size:.95rem;}
.ans-unit .fig-cap{text-align:left;}
.ans-table td:first-child{width:56%;color:var(--text-2);}
.ans-table td{font-size:.82rem;}

/* 수학 */
.ol{text-decoration:overline;}
.mfig{margin:.8rem auto;max-width:300px;}
.mfig svg{width:100%;height:auto;display:block;background:#fff;}
.mfig text{font-size:13px;font-weight:600;fill:var(--text);font-style:italic;}
.mfig .c{fill:none;stroke:#4E5968;stroke-width:1.5;}
.mfig .hl{stroke:var(--brand);stroke-width:2.2;}
.mfig .good{stroke:#C92A2A;}
.mfig .dash{stroke-dasharray:4 4;}
.mfig .tick{fill:none;stroke:var(--brand);stroke-width:1.5;}
.mfig .dot{fill:var(--text);}
.ans-note{color:var(--text-3);font-size:.76rem;}

/* 선생님 체크 강조 */
.tcheck{background:#FFF8DB;border:2px solid #E5A800;border-radius:var(--r-m);padding:.9rem 1rem .6rem;margin:0 0 1.2rem;box-shadow:var(--shadow-1);}
.tcheck-head{display:flex;align-items:center;justify-content:space-between;gap:.5rem;margin-bottom:.6rem;}
.tcheck-head b{background:#B45309;color:#fff;font-size:.82rem;font-weight:800;padding:.2rem .65rem;border-radius:999px;}
.tcheck-head span{font-size:.75rem;font-weight:700;color:#92400E;}
.tcheck p{font-size:.93rem;line-height:1.85;margin:0 0 .6rem;}
.tcheck mark{background:linear-gradient(transparent 45%,#FFD43B 45%);color:inherit;font-weight:700;}
.tc-label{display:block;font-size:.78rem;font-weight:800;color:#92400E;line-height:1.5;}
.tcheck-cover button{display:block;width:100%;text-align:left;border:0;border-top:1px solid #F2D675;background:none;padding:.6rem .1rem;font-size:.88rem;font-weight:600;color:var(--text);cursor:pointer;}
.tcheck-cover button:last-child{color:#92400E;font-weight:800;}
.tcheck-inline{display:inline-block;background:#FFF8DB;border:1.5px solid #E5A800;color:#92400E;font-weight:700;font-size:.85em;padding:.1rem .5rem;border-radius:6px;}
.tb-more{margin-top:.4rem;}
.tb-more .sec-sub{display:none;}

/* 단원 제목·블록 */
.sec-head{border-bottom:0;padding-bottom:0;margin-bottom:1.3rem;gap:.7rem;}
.sec-num{border:0;border-radius:10px;font-weight:700;font-size:.8rem;background:color-mix(in srgb,var(--accent,var(--brand)) 12%,transparent);height:2.2rem;}
.sec-head h2{font-size:1.42rem;font-weight:800;line-height:1.3;}
.sec-sub{color:var(--text-3);font-size:.78rem;letter-spacing:-.005em;}
.block{margin-bottom:1.9rem;}
.block h3{font-size:1.06rem;font-weight:700;gap:.55rem;margin-bottom:.7rem;}
.block h3::before{width:4px;height:1em;border-radius:2px;background:var(--accent,var(--brand));}
.paper-note{
  background:var(--surface);background-position:0 0;
  border:1px solid var(--hair);border-radius:var(--r-m);
  padding:1rem 1.1rem .35rem;font-size:.92rem;box-shadow:var(--shadow-1);
}
.paper-note p{margin-bottom:.8em;line-height:1.78;}
.paper-note strong{background:linear-gradient(transparent 62%,var(--gold-wash) 62%);}

/* 강조 상자: 글자 위에 걸치던 라벨을 상자 안으로 */
.key,.trap,.pk{border-radius:var(--r-m);font-size:.89rem;line-height:1.72;}
.key{background:var(--red-wash);border:0;padding:.9rem 1rem .75rem;}
.trap{background:var(--blue-wash);border:0;padding:.9rem 1rem .75rem;}
.key::before,.trap::before,.pk::before{
  position:static;display:table;margin-bottom:.5rem;
  font-size:.7rem;font-weight:700;padding:.14rem .55rem;border-radius:999px;line-height:1.5;
}
.read-box{border:0;border-radius:var(--r-m);padding:.9rem 1rem;font-size:.87rem;}
.read-box .rb-title{font-size:.82rem;}
.src{color:var(--text-3);}
.pk{
  border:1.5px solid color-mix(in srgb,var(--blue) 32%,transparent);background:var(--surface);
  padding:1rem 1rem .4rem;margin:0 0 1.9rem;box-shadow:var(--shadow-1);
}
.pk h3{font-size:1.02rem;font-weight:700;}
.ans{color:var(--red);font-weight:700;}
.badge-tb{border-radius:6px;border-color:var(--hair-2);color:var(--text-3);padding:0 .4rem;font-size:.66rem;}

/* 표 */
table.data{
  border-collapse:separate;border-spacing:0;background:var(--surface);
  border:1px solid var(--hair);border-radius:12px;overflow:hidden;font-size:.84rem;line-height:1.62;
}
table.data th,table.data td{border:0;border-right:1px solid var(--hair);border-bottom:1px solid var(--hair);padding:.55rem .6rem;}
table.data th:last-child,table.data td:last-child{border-right:0;}
table.data tr:last-child>td,table.data tr:last-child>th{border-bottom:0;}
table.data th{background:var(--surface-2);color:var(--text-2);font-weight:700;font-size:.8rem;}
table.data td.lbl{background:var(--surface-2);font-weight:600;color:var(--text);}
.pk table.data{background:var(--surface);}
.table-scroll{border-radius:12px;}

.grid2{gap:.5rem;font-size:.87rem;}
.grid2 .cell,.feature-strip .f,.panel,.fx-row,.case-card,.quiz-setup{
  border:1px solid var(--hair);border-radius:var(--r-m);background:var(--surface);
}
.grid2 .cell .cap{color:var(--text-3);}
.panel,.quiz-setup{padding:1rem 1.05rem 1.05rem;box-shadow:var(--shadow-1);}
.panel .hint{color:var(--text-3);}
.calc-country{border:1px solid var(--hair);border-radius:12px;}
.calc-country input,.blank-row input{border:1px solid var(--hair-2);border-radius:10px;background:var(--surface);}
.calc-result{border:0;border-radius:12px;}
.verdict{border-top-color:color-mix(in srgb,var(--gold) 35%,transparent);}

.seg{gap:.25rem;padding:.25rem;background:var(--fill);border-radius:12px;}
.seg button,.seg.thin button{border:0;background:transparent;color:var(--text-2);border-radius:9px;font-weight:600;}
.seg button.on,.seg.thin button.on{background:var(--surface);color:var(--text);box-shadow:var(--shadow-1);}

svg.figure{border:1px solid var(--hair);border-radius:var(--r-m);}
.fig-cap{color:var(--text-3);font-size:.78rem;}

.match-item{border:1px solid var(--hair-2);border-radius:12px;background:var(--surface);}
.match-item.sel{border-color:var(--blue);background:var(--blue-wash);}
.match-item.done{border-color:transparent;background:var(--green-wash);}
html[data-kind="note"] .chip{border:1px solid var(--hair-2);background:var(--surface);padding:.34rem .7rem;border-radius:999px;font-size:.79rem;}
html[data-kind="note"] .chip.on{background:var(--blue-wash);border-color:var(--blue);}
html[data-kind="note"] .chip.ok{background:var(--green-wash);border-color:var(--green);}
html[data-kind="note"] .chip.bad{background:var(--red-wash);border-color:var(--red);}
.reg-tile{border:1px solid var(--hair);border-radius:12px;background:var(--surface);}
.reg-tile.on{background:var(--gold-wash);border-color:var(--gold);}
.reg-detail{border:0;border-radius:12px;}

/* 퀴즈 */
.quiz-progress{color:var(--text-3);font-size:.8rem;}
.quiz-bar{height:6px;background:var(--fill);border-radius:999px;}
.quiz-bar-fill{background:var(--brand);border-radius:999px;}
.q-card,.quiz-done{border:0;border-radius:var(--r-l);background:var(--surface);padding:1.25rem 1.2rem;box-shadow:var(--shadow-1);}
.q-unit-tag{border:0;border-radius:999px;background:var(--brand-wash);color:var(--brand);font-size:.7rem;font-weight:600;padding:.14rem .6rem;}
.q-text{font-size:1.04rem;font-weight:700;line-height:1.6;letter-spacing:-.02em;}
.q-options{gap:.5rem;}
.opt-btn{
  border:1px solid var(--hair-2);border-radius:12px;background:var(--surface);
  padding:.8rem .9rem;font-size:.91rem;transition:background .12s,border-color .12s;
}
.opt-btn:hover:not(:disabled){background:var(--surface-2);}
.opt-btn.correct{border-color:var(--green);background:var(--green-wash);}
.opt-btn.wrong{border-color:var(--red);background:var(--red-wash);}
.blank-row input{padding:.75rem .85rem;font-size:.94rem;}
.blank-row button{border:0;border-radius:10px;background:var(--brand);font-weight:600;}
.feedback{border-radius:12px;padding:.75rem .9rem;font-size:.88rem;}
.feedback.ok{border:0;}
.feedback.no{border:0;}
.feedback .exp{font-size:.85rem;}
.q-nav .skip,.q-prev{color:var(--text-3);text-decoration:none;font-weight:600;}
.q-nav .next{border:1px solid var(--hair-2);border-radius:10px;padding:.58rem 1.1rem;font-weight:600;font-size:.88rem;}
.q-nav .next.ready{background:var(--brand);border-color:var(--brand);}
.quiz-done .score{color:var(--brand);font-weight:800;}
.stamp-mark{border-color:var(--brand);color:var(--brand);transform:none;}
.wrong-item{border:0;border-radius:12px;background:var(--red-wash);padding:.75rem .9rem;}
.wrong-item .we{color:var(--text-2);}

/* 단어 카드 */
.cards-filter button{border:0;background:var(--fill);color:var(--text-2);font-weight:600;padding:.38rem .75rem;border-radius:999px;font-size:.8rem;}
.cards-filter button.active{background:var(--brand);}
.card-grid{gap:.6rem;}
.flip-face{border:1px solid var(--hair);border-radius:var(--r-m);background:var(--surface);box-shadow:var(--shadow-1);font-size:.9rem;}
.flip-face.front{font-weight:700;}
.flip-face.back{background:var(--brand-wash);border-color:transparent;font-size:.79rem;}

footer{color:var(--text-3);}
.back-top{border:1px solid var(--hair-2);border-radius:10px;background:var(--surface);color:var(--text-2);font-weight:600;}

/* ==================== 역사 학습지 ==================== */
header.top{background:var(--surface);border-bottom:1px solid var(--hair);padding:14px 16px;}
html.in-hub header.top{display:none;}
.top-inner{max-width:var(--maxw);gap:10px;}
.stamp{width:auto;height:auto;border:0;border-radius:8px;background:var(--brand);color:#fff;font-size:.84rem;font-weight:700;padding:.14rem .55rem;}
.top-text h1{color:var(--text);font-size:1rem;font-weight:700;letter-spacing:-.02em;}
.top-text p{color:var(--text-3);font-size:.76rem;margin-top:2px;}
html[data-kind="ws"] nav.tabs{
  gap:.35rem;padding:.6rem 1rem;
  background:rgba(255,255,255,.88);
  -webkit-backdrop-filter:saturate(180%) blur(14px);backdrop-filter:saturate(180%) blur(14px);
  border-top:0;border-bottom:1px solid var(--hair);box-shadow:none;
}
.tab-btn{
  flex:0 0 auto;flex-direction:row;align-items:baseline;gap:.3rem;
  padding:.44rem .82rem;border:0;border-radius:999px;
  background:var(--fill);color:var(--text-2);font-size:.84rem;font-weight:600;
}
.tab-btn .tb-no{color:var(--text-3);font-size:.72rem;}
.tab-btn:hover{color:var(--text);}
.tab-btn.active{background:var(--brand);color:#fff;font-weight:600;}
.tab-btn.active .tb-no{color:rgba(255,255,255,.78);}
.tab-btn:focus-visible{outline:2px solid var(--brand);outline-offset:2px;border-radius:999px;}
@media(min-width:760px){
  html[data-kind="ws"] nav.tabs{justify-content:center;flex-wrap:wrap;overflow:visible;}
  .tab-btn{padding:.44rem .9rem;}
}
.tab-panel{max-width:var(--maxw);padding:1.35rem 1rem 4.5rem;}
.tab-panel.active{animation:fadeUp .22s ease both;}
.meta-line{color:var(--brand);font-weight:600;font-size:.8rem;}
.panel-h1{font-size:1.5rem;font-weight:800;color:var(--text);margin-bottom:.9rem;line-height:1.32;letter-spacing:-.028em;}
.goal-line{color:var(--text-3);}
.tab-panel h3{font-size:1.12rem;color:var(--text);border-bottom:0;padding:0 0 0 12px;margin:2rem 0 .75rem;}
.tab-panel h3::before{background:var(--brand);top:.2em;height:1em;}
.tab-panel h4{color:var(--text);font-weight:700;}
.tab-panel p,.tab-panel li{line-height:1.76;}
.tab-panel li::marker{color:var(--text-3);}
strong{color:inherit;}
.plaque{background:var(--brand-wash);color:var(--brand);border:0;border-radius:8px;padding:.28em .7em;}
.tag-year{border:0;border-radius:6px;background:var(--red-wash);color:var(--red);padding:.05em .45em;font-weight:700;}
.callout{border:0;border-radius:var(--r-m);background:var(--brand-wash);box-shadow:none;padding:.95rem 1.05rem;}
.callout .co-label{color:var(--brand);}
.callout.quote p{color:var(--text);}
.table-wrap{border-radius:12px;}
table.info-table{
  border-collapse:separate;border-spacing:0;background:var(--surface);
  border:1px solid var(--hair);border-radius:12px;overflow:hidden;
}
.info-table th,.info-table td{border:0;border-right:1px solid var(--hair);border-bottom:1px solid var(--hair);}
.info-table th:last-child,.info-table td:last-child{border-right:0;}
.info-table tr:last-child>td{border-bottom:0;}
.info-table th{background:var(--surface-2);color:var(--text-2);font-size:.8rem;}
.info-table tbody tr:nth-child(even) td,.info-table tr:nth-child(even) td{background:transparent;}
.ruler-line{background:var(--hair-2);top:71px;}   /* 연표 점의 가운데에 선을 맞춤 */
.ruler-node::after,.flow-step::before{background:var(--brand);}
.ruler-hint{color:var(--text-3);}
.grand-flow{border:1px solid var(--hair);border-radius:var(--r-m);background:var(--surface);}
.gf-era{color:var(--text-3);}
.gf-chip{border-radius:8px;background:var(--brand);}
.gf-chip small{color:rgba(255,255,255,.82);}
.gf-arrow{color:var(--text-3);}
.flow::before{background:var(--hair);}
.flow-title{color:var(--text);}
.flow.numbered .flow-step::before{background:var(--brand);box-shadow:none;border-color:var(--bg);}
.flow.numbered::before{background:var(--hair);}
.flow.numbered .flow-title{color:var(--brand);}
.quad-item{border:1px solid var(--hair);border-radius:var(--r-m);background:var(--surface);}
.quad-center{background:var(--brand);border:0;box-shadow:0 0 0 5px var(--bg);}
.quiz-intro{color:var(--text-3);}
.select-grid{gap:.6rem;}
.select-card,.select-card:nth-child(n){
  border:1px solid var(--hair);border-radius:var(--r-m);background:var(--surface);box-shadow:var(--shadow-1);
}
.select-card:hover{background:var(--surface);box-shadow:var(--shadow-2);}
.select-card:nth-child(n) .sc-no{color:var(--brand);font-weight:800;}
.sc-count{color:var(--text-3);}
.quiz-exit{border:0;padding-left:0;color:var(--text-2);font-weight:600;}
.quiz-exit:hover{color:var(--text);}
.quiz-progress{background:transparent;}
html[data-kind="ws"] .quiz-progress{height:6px;background:var(--fill);border-radius:999px;}
.quiz-progress-fill{background:var(--brand);border-radius:999px;}
.quiz-meta{color:var(--text-3);font-weight:600;}
.quiz-card{border:0;border-radius:var(--r-l);background:var(--surface);box-shadow:var(--shadow-1);padding:1.25rem 1.2rem;}
.quiz-question{color:var(--text);letter-spacing:-.02em;}
.quiz-options{gap:.5rem;}
.quiz-opt{border:1px solid var(--hair-2);border-radius:12px;background:var(--surface);padding:.8rem .9rem;}
.quiz-opt:hover:not(:disabled){border-color:var(--hair-2);background:var(--surface-2);}
.quiz-opt .opt-no{color:var(--text-3);}
.quiz-opt.correct{background:var(--green-wash);border-color:var(--green);}
.quiz-opt.wrong{background:var(--red-wash);border-color:var(--red);}
.quiz-explain{border-top:1px solid var(--hair);}
.quiz-explain .ex-label{color:var(--brand);}
.quiz-next,#retry-btn{background:var(--brand);color:#fff;border-radius:12px;font-weight:600;}
.quiz-next:hover,#retry-btn:hover{background:var(--brand);filter:brightness(.94);}
#back-btn{border:1px solid var(--hair-2);color:var(--text);background:var(--surface);border-radius:12px;font-weight:600;}
#back-btn:hover{background:var(--surface-2);}
.result-score{color:var(--brand);font-weight:800;}
.review-item{border:0;border-radius:12px;background:var(--red-wash);}
.review-e{color:var(--text-2);}
.photo,.pogo-card,.map-fig{border:1px solid var(--hair);border-radius:var(--r-m);background:var(--surface);}
.photo .ph-img{background:var(--fill);}
.photo .ph-name,.pogo-card figcaption b{color:var(--text);}
.photo .ph-era{border:0;background:var(--red-wash);border-radius:6px;padding:.05em .45em;}
.photo .ph-note,.map-fig figcaption{color:var(--text-2);}
.map-fig figcaption{background:var(--surface);border-top:1px solid var(--hair);}
.photo-credit{color:var(--text-3);border-top:1px solid var(--hair);}
.sys-tag{border-radius:5px;}
.prem-badge{background:var(--brand);border-radius:999px;}
.tab-btn.active .prem-badge{background:rgba(255,255,255,.25);}
.prem-card{border:0;border-radius:var(--r-l);box-shadow:var(--shadow-2);}
.prem-kicker{background:var(--brand-wash);color:var(--brand);border-radius:999px;letter-spacing:.04em;}
.prem-card p{color:var(--text-2);}
#prem-input{border:1px solid var(--hair-2);border-radius:10px;}
#prem-input:focus{border-color:var(--brand);}
.prem-btn{border:0;border-radius:10px;background:var(--brand);}

/* ==================== 영어 본문 외우기 ==================== */
html[data-kind="recite"] header{
  background:rgba(255,255,255,.88);color:var(--text);
  -webkit-backdrop-filter:saturate(180%) blur(14px);backdrop-filter:saturate(180%) blur(14px);
  border-bottom:1px solid var(--hair);box-shadow:none;
}
html[data-kind="recite"] header h1{font-style:normal;font-weight:800;font-size:1.2rem;letter-spacing:-.022em;}
html[data-kind="recite"] header p{color:var(--text-3);}
.bar{height:5px;background:var(--fill);border-radius:999px;}
.bar span{background:var(--brand);border-radius:999px;}
html[data-kind="recite"] .chip{border:0;background:var(--fill);color:var(--text-2);font-weight:600;font-size:.8rem;padding:.38rem .78rem;}
html[data-kind="recite"] .chip[aria-pressed="true"]{background:var(--brand);color:#fff;}
html[data-kind="recite"] main{max-width:var(--maxw);}
.row{border-top-color:var(--hair);}
.row::before{background:var(--hair);}
.num{color:var(--brand);}
.blank input{background:var(--surface);border-bottom:2px solid var(--hair-2);border-radius:6px 6px 0 0;}
.blank input:focus{background:var(--brand-wash);border-bottom-color:var(--brand);}
.blank.ok input{background:var(--green-wash);}
.blank.bad input{background:var(--red-wash);}
.blank.shown input{color:var(--text-3);}
.peek{color:var(--text-3);}
html[data-kind="recite"] footer{
  background:rgba(255,255,255,.92);color:var(--text-2);text-align:left;
  -webkit-backdrop-filter:saturate(180%) blur(14px);backdrop-filter:saturate(180%) blur(14px);
  border-top:1px solid var(--hair);
}
.score{color:var(--text-3);}
.acts button{border:1px solid var(--hair-2);border-radius:12px;font-weight:600;}
.primary{background:var(--brand);border-color:var(--brand) !important;color:#fff;}
.ghost{background:var(--surface);color:var(--text);}

/* ===== 프린트 문제지 (국어) ===== */
.pq-switch{display:grid;grid-template-columns:repeat(3,1fr);gap:.5rem;margin:0 0 1rem;}
.pq-switch button{border:1px solid var(--hair);background:var(--surface);border-radius:var(--r-m);padding:.55rem .4rem;font:inherit;cursor:pointer;display:flex;flex-direction:column;align-items:center;gap:.1rem;color:var(--text);}
.pq-switch button b{font-size:.92rem;}
.pq-switch button span{font-size:.7rem;color:var(--text-3);line-height:1.25;text-align:center;}
.pq-switch button.on{border-color:var(--brand);background:var(--brand-wash);box-shadow:inset 0 0 0 1px var(--brand);}
.pq-switch button.on span{color:var(--brand);}
.psheet{display:none;}
.psheet.on{display:block;}
.pq-head{display:flex;align-items:center;gap:.8rem;background:var(--surface);border:1px solid var(--hair);border-radius:var(--r-m);padding:.7rem .9rem;}
.pq-head-no{font-size:1.7rem;font-weight:800;color:var(--brand);min-width:2.2rem;text-align:center;}
.pq-head-u{font-size:.8rem;color:var(--text-3);}
.pq-head-s{font-weight:700;}
.pq-goal{font-size:.82rem;color:var(--text-2);margin:.5rem .2rem .6rem;line-height:1.5;}
.pq-goal b{color:var(--brand);margin-right:.3rem;}
.pq-score{font-size:.82rem;color:var(--text-2);margin:0 .2rem 1rem;display:flex;align-items:center;gap:.5rem;flex-wrap:wrap;}
.pq-score b{color:var(--green);font-size:.95rem;}
.pq-reset,.pq-link{border:1px solid var(--hair);background:var(--surface);border-radius:999px;padding:.2rem .7rem;font:inherit;font-size:.76rem;cursor:pointer;color:var(--text-2);}
.pq-link{color:var(--brand);border-color:var(--brand);}
.pq-passage{background:var(--fill);border-radius:var(--r-m);padding:.85rem 1rem;margin:0 0 1rem;}
.pq-pt{font-weight:800;margin-bottom:.45rem;}
.pq-sum{font-size:.9rem;line-height:1.7;}
.pq-src{font-size:.72rem;color:var(--text-3);margin:.5rem 0 0;}
.pq{background:var(--surface);border:1px solid var(--hair);border-radius:var(--r-m);padding:.9rem 1rem;margin:0 0 .9rem;box-shadow:var(--shadow-1);}
.pq.right{border-color:var(--green);}
.pq.wrong{border-color:var(--red);}
.pq-q{display:flex;gap:.55rem;line-height:1.55;font-weight:600;}
.pq-n{flex:none;color:var(--brand);font-weight:800;}
.pq-box{position:relative;border:1px solid var(--hair-2,#D1D6DB);border-radius:var(--r-s);padding:1rem .85rem .7rem;margin:.75rem 0 .2rem;font-size:.88rem;line-height:1.65;}
.pq-box-t{position:absolute;top:-.62rem;left:50%;transform:translateX(-50%);background:var(--surface);padding:0 .5rem;font-size:.75rem;font-weight:700;color:var(--text-2);}
.pq-box-t::before{content:'<';}
.pq-box-t::after{content:'>';}
.pq-c{text-align:center;font-size:1rem;letter-spacing:.02em;}
.pq-2col{display:grid;grid-template-columns:1fr 1fr;gap:.5rem;margin-top:.6rem;}
.pq-2col>div{border:1px solid var(--hair);border-radius:8px;padding:.45rem .5rem;font-size:.82rem;text-align:center;}
.pq-chain{display:flex;flex-wrap:wrap;align-items:center;gap:.3rem;margin-top:.6rem;color:var(--text-3);}
.pq-chain span{display:inline-flex;flex-direction:column;align-items:center;border:1px solid var(--hair);border-radius:8px;padding:.25rem .5rem;color:var(--text);font-weight:700;background:var(--bg);}
.pq-chain small{font-weight:500;font-size:.68rem;color:var(--text-3);}
.pq-tbl{font-size:.78rem;min-width:0 !important;width:100%;}
.pq-tbl td,.pq-tbl th{padding:.4rem .35rem;}
.pq-box.nolabel{padding-top:.7rem;}
.pq-tbl td,.pq-tbl th{vertical-align:top;}
.pq-fig{margin:.7rem auto .3rem;text-align:center;}
.pq-fig img{max-width:min(100%,300px);height:auto;border-radius:8px;border:1px solid var(--hair);}
.pq-opts{list-style:none;padding:0;margin:.7rem 0 0;display:grid;gap:.35rem;}
.pq-opts button{width:100%;display:flex;gap:.45rem;text-align:left;font:inherit;font-size:.9rem;line-height:1.5;background:var(--bg);border:1px solid transparent;border-radius:var(--r-s);padding:.45rem .6rem;cursor:pointer;color:var(--text);}
.pq-opts button:hover:not(:disabled){border-color:var(--brand);}
.pq-opts button:disabled{cursor:default;opacity:.75;}
.pq-opts button.ok{background:var(--green-wash);border-color:var(--green);opacity:1;font-weight:700;}
.pq-opts button.no{background:var(--red-wash);border-color:var(--red);opacity:1;}
.pq-num{flex:none;}
.pq-reveal{margin-top:.7rem;border:1px dashed var(--hair-2,#D1D6DB);background:none;border-radius:var(--r-s);padding:.4rem .8rem;font:inherit;font-size:.82rem;color:var(--text-2);cursor:pointer;}
.pq-sol{margin-top:.75rem;border-top:1px solid var(--hair);padding-top:.7rem;}
.pq-ans{font-weight:700;color:var(--red);line-height:1.5;}
.pq-ans-t{display:inline-block;background:var(--red);color:#fff;border-radius:6px;font-size:.72rem;padding:.05rem .45rem;margin-right:.45rem;vertical-align:1px;}
.pq-exp{margin-top:.45rem;font-size:.88rem;line-height:1.7;color:var(--text-2);}
.pq-exp b{color:var(--text);}
.nw{white-space:nowrap;}
.pq-note{display:block;margin-top:.3rem;font-size:.75rem;color:var(--text-3);}
/* ===== 영어 프린트 본문 (기말 영어) ===== */
.bl{color:var(--brand);font-weight:700;}
.ch{font-size:.78rem;color:var(--text-3);white-space:nowrap;}
.eng-ko{display:block;font-size:.82rem;color:var(--text-2);margin-top:.2rem;line-height:1.6;}
.eng-note{display:block;font-size:.78rem;color:var(--red);margin-top:.25rem;line-height:1.55;}
.eng-note::before{content:'문법 ';font-weight:800;}
.eng-read td.tl{line-height:1.7;}
.eng-h td{background:var(--fill);}
.eng-box{background:var(--surface-2);border:1px dashed var(--hair-2);border-radius:var(--r-s);padding:.55rem .75rem;font-size:.86rem;line-height:1.7;margin:0 0 .6rem;}
.eng-src{font-size:.76rem;color:var(--text-3);margin:.45rem 0 0;}
.eng-words .wn{display:inline-block;min-width:1.6em;color:var(--text-3);font-size:.75rem;font-weight:600;}
.hz{font-size:1.35rem;font-weight:800;}
.qbl{color:var(--brand);font-weight:700;white-space:nowrap;}
.block h3 .bl-toggle{float:right;margin-left:.5rem;border:1px solid var(--hair-2);background:var(--surface);color:var(--text-2);border-radius:999px;padding:.18rem .7rem;font-size:.74rem;font-weight:600;cursor:pointer;font-family:inherit;}
th .bl-toggle{float:right;border:1px solid var(--hair-2);background:var(--surface);color:var(--text-2);border-radius:999px;padding:.12rem .6rem;font-size:.72rem;font-weight:600;cursor:pointer;font-family:inherit;}
.bl-hide .bl{color:transparent;background:var(--brand-wash);border-bottom:2px solid var(--brand);border-radius:4px;cursor:pointer;-webkit-user-select:none;user-select:none;}
.bl-hide .bl.open{color:var(--brand);background:none;}

/* ===== 체계표 채우기 (국어) ===== */
.tf-switch{display:flex;flex-wrap:wrap;gap:.4rem;margin:0 0 .9rem;}
.tf-switch button{border:1px solid var(--hair-2);background:var(--surface);color:var(--text-2);border-radius:999px;padding:.42rem .9rem;font:inherit;font-size:.86rem;font-weight:600;cursor:pointer;}
.tf-switch button.on{background:var(--brand);border-color:var(--brand);color:#fff;}
.tf-help{font-size:.84rem;color:var(--text-2);margin:0 0 .5rem;}
.tf-hard{display:flex;align-items:center;gap:.4rem;font-size:.82rem;color:var(--text-2);margin:0 0 .7rem;cursor:pointer;}
.tf-table{width:100%;min-width:0 !important;}
table.data.tf-table th,table.data.tf-table td{text-align:center;vertical-align:middle;padding:.3rem .1rem;font-size:.8rem;line-height:1.3;word-break:keep-all;}
table.data.tf-table td{font-size:1rem;font-weight:600;}
table.data.tf-table td.lbl{font-size:.74rem;}
table.data.tf-table th{font-size:.72rem;letter-spacing:-.02em;}
@media (max-width:420px){table.data.tf-table th{word-break:break-all;}}
@media (min-width:600px){table.data.tf-table{table-layout:fixed;}}
.tf-table .tf-sub{display:block;word-break:break-all;font-size:.6rem;font-weight:500;color:var(--text-3);margin-top:.15rem;}
.tf-table td.tf-empty{background:var(--surface-2);}
.tf-slot{display:block;width:100%;min-width:1.9rem;min-height:2.3rem;border:1.5px dashed var(--hair-2);border-radius:8px;background:var(--surface);font:inherit;font-size:1.15rem;font-weight:700;color:var(--text);cursor:pointer;padding:.15rem;}
.tf-names .tf-slot{font-size:.74rem;min-height:2.1rem;min-width:0;padding:.1rem;}
.tf-names td.tf-cell .tf-slot{min-width:3.3rem;}
.tf-chips .tf-chip{font-size:1rem;}
.tf-slot.sel{border:2px solid var(--brand);background:var(--brand-wash);}
.tf-slot.shown{color:var(--brand);}
.tf-cell.ok .tf-slot{border:2px solid var(--green);background:var(--green-wash);}
.tf-cell.bad .tf-slot{border:2px solid var(--red);background:var(--red-wash);}
.tf-chips{display:flex;flex-wrap:wrap;gap:.4rem;margin:.9rem 0 .2rem;}
.tf-chip{min-width:2.6rem;min-height:2.6rem;border:1px solid var(--hair-2);border-radius:10px;background:var(--surface);color:var(--text);font:inherit;font-size:1.1rem;font-weight:700;cursor:pointer;padding:.2rem .6rem;box-shadow:var(--shadow-1);}
.tf-chip i{font-style:normal;font-size:.7rem;color:var(--text-3);margin-left:.2rem;}
.tf-chip.used{opacity:.35;}
.tf-actions{display:flex;flex-wrap:wrap;gap:.45rem;margin-top:.9rem;}
.tf-btn{border:1px solid var(--hair-2);background:var(--surface);border-radius:10px;padding:.55rem .9rem;font:inherit;font-size:.86rem;font-weight:600;cursor:pointer;color:var(--text);}
.tf-btn.main{background:var(--brand);border-color:var(--brand);color:#fff;}
.tf-result{margin-top:.7rem;font-size:.9rem;font-weight:700;min-height:1.2em;}
.tf-result.good{color:var(--green);}
.tf-result.try{color:var(--red);}

/* ===== 외우는 팁 (국어) ===== */
.tip-box{background:#FFF8DB;border:1px solid #F2D675;border-radius:var(--r-m);padding:.75rem .95rem .55rem;margin:.8rem 0 0;}
.tip-t{font-size:.82rem;font-weight:800;color:#92400E;margin:0 0 .45rem;}
.tip-fold > summary.tip-t{cursor:pointer;margin:0;list-style:none;}
.tip-fold > summary.tip-t::-webkit-details-marker{display:none;}
.tip-fold > summary.tip-t::before{content:'▸ ';}
.tip-fold[open] > summary.tip-t{margin-bottom:.45rem;}
.tip-fold[open] > summary.tip-t::before{content:'▾ ';}
.tip-list{margin:0;padding:0;list-style:none;}
.tip-list li{font-size:.88rem;line-height:1.65;padding:.3rem 0;border-top:1px dashed #F2D675;}
.tip-list li:first-child{border-top:0;}
.tip-w{display:inline-block;background:#fff;border:1px solid #E5A800;border-radius:6px;padding:0 .4rem;font-weight:800;color:#92400E;}
.tip-n{font-size:.8rem;color:var(--text-2);margin:.35rem 0 .2rem;}

/* ===== 듣고 외우기 영상 ===== */
.yt-box{background:var(--surface);border:1px solid var(--hair);border-radius:var(--r-m);box-shadow:var(--shadow-1);padding:.85rem;margin:1rem 0;}
.yt-head{display:flex;flex-wrap:wrap;align-items:baseline;gap:.2rem .6rem;margin:0 0 .65rem;}
.yt-head b{font-size:.98rem;font-weight:800;color:var(--text);}
.yt-head span{font-size:.8rem;color:var(--text-2);}
.yt-frame{position:relative;width:100%;aspect-ratio:16/9;border-radius:10px;overflow:hidden;background:#000;}
.yt-frame iframe{position:absolute;inset:0;width:100%;height:100%;border:0;}
.yt-chaps{display:flex;flex-wrap:wrap;gap:.35rem;margin-top:.7rem;}
.yt-chaps button{border:1px solid var(--hair-2);background:var(--surface);color:var(--text);border-radius:999px;padding:.34rem .7rem;font:inherit;font-size:.8rem;font-weight:600;cursor:pointer;}
.yt-chaps button i{font-style:normal;color:var(--text-3);margin-right:.35rem;font-variant-numeric:tabular-nums;}
.yt-chaps button.cur{background:var(--brand);border-color:var(--brand);color:#fff;}
.yt-chaps button.cur i{color:rgba(255,255,255,.8);}
@media print{.yt-box{display:none;}}

@media print{.pq-sol{display:block !important;}.pq-switch{position:static;}.psheet{display:block;}}

@media print{
  .topbar,html[data-kind="ws"] nav.tabs{-webkit-backdrop-filter:none;backdrop-filter:none;}
  body{background:#fff;}
  .ws-box.title{background:#fff;color:#000;}
}
