:root {
  --paper: #f6f1e7;
  --paper-deep: #eee6d7;
  --ink: #18263a;
  --ink-soft: #5e6772;
  --navy: #173f5f;
  --blue: #4d83aa;
  --coral: #e66f51;
  --green: #4f8b79;
  --gold: #d6a84a;
  --white: #fffdf8;
  --line: rgba(24, 38, 58, .14);
  --shadow: 0 18px 60px rgba(36, 50, 67, .1);
  --radius: 24px;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  color: var(--ink);
  background: var(--paper);
  font-family: Pretendard, "Noto Sans KR", "Apple SD Gothic Neo", "Malgun Gothic", sans-serif;
  line-height: 1.65;
  word-break: keep-all;
}
.unit-entry-pending body { visibility: hidden; }
button, textarea { font: inherit; }
button { color: inherit; }
.skip-link { position: fixed; left: 16px; top: -50px; z-index: 100; padding: 10px 16px; background: var(--ink); color: white; }
.skip-link:focus { top: 10px; }

.topbar {
  position: sticky; top: 0; z-index: 20;
  height: 78px; padding: 0 34px;
  display: flex; align-items: center; justify-content: space-between;
  background: rgba(246, 241, 231, .92); border-bottom: 1px solid var(--line);
  backdrop-filter: blur(18px);
}
.brand { display: flex; align-items: center; gap: 12px; color: var(--ink); text-decoration: none; }
.brand-mark { display: grid; place-items: center; width: 42px; height: 42px; color: var(--white); background: var(--coral); border-radius: 50% 50% 46% 54%; font-family: serif; font-size: 20px; }
.brand b, .brand small { display: block; }
.brand b { font-size: 18px; letter-spacing: -.04em; }
.brand small { margin-top: -3px; color: var(--ink-soft); font-size: 11px; letter-spacing: .08em; }
.top-actions { display: flex; align-items: center; gap: 14px; }
.dashboard-link { padding:7px 11px; color:var(--ink-soft); border:1px solid var(--line); border-radius:999px; text-decoration:none; font-size:10px; font-weight:800; }
.study-status { color: var(--ink-soft); font-size: 13px; }
.study-status i { display: inline-block; width: 7px; height: 7px; margin-right: 6px; border-radius: 50%; background: var(--green); box-shadow: 0 0 0 4px rgba(79,139,121,.13); }
.icon-button { width: 40px; height: 40px; border: 1px solid var(--line); border-radius: 50%; background: transparent; cursor: pointer; }
.mobile-nav-toggle,.mobile-nav-close,.mobile-nav-backdrop{display:none}
.mobile-nav-toggle{min-height:40px;padding:0 12px;align-items:center;gap:6px;color:var(--ink);background:var(--white);border:1px solid var(--line);border-radius:999px;cursor:pointer;font-size:11px;font-weight:850}.mobile-nav-toggle span{font-size:15px}.mobile-nav-backdrop{position:fixed;inset:0;z-index:39;width:100%;height:100%;padding:0;background:rgba(12,24,38,.48);border:0;cursor:pointer}.mobile-nav-close{width:100%;margin-bottom:20px;padding:10px 12px;color:var(--ink);background:var(--paper);border:1px solid var(--line);border-radius:10px;cursor:pointer;text-align:right;font-size:11px;font-weight:850}

.app-shell { display: grid; grid-template-columns: 240px minmax(0, 1fr); max-width: 1600px; margin: 0 auto; }
.sidebar { position: sticky; top: 78px; align-self: start; height: calc(100vh - 78px); padding: 48px 24px 30px; border-right: 1px solid var(--line); }
.eyebrow { margin: 0 0 13px; color: var(--ink-soft); font-size: 11px; font-weight: 800; letter-spacing: .16em; text-transform: uppercase; }
.eyebrow.coral { color: var(--coral); }
.eyebrow.blue { color: var(--blue); }
.eyebrow.green { color: var(--green); }
.sidebar nav { display: grid; gap: 5px; }
.sidebar nav a { display: flex; align-items: center; gap: 11px; padding: 11px 12px; border-radius: 12px; color: #70757d; text-decoration: none; font-size: 13px; }
.sidebar nav a span { width: 27px; color: #9ba0a5; font-family: Georgia, serif; font-size: 16px; }
.sidebar nav a[aria-disabled="true"] { opacity: .62; cursor: default; }
.sidebar nav a.active { color: var(--navy); background: rgba(77, 131, 170, .13); font-weight: 800; }
.sidebar nav a.active span { color: var(--coral); }
.sidebar-note { position: absolute; left: 24px; right: 24px; bottom: 32px; padding: 19px; color: var(--white); background: var(--navy); border-radius: 16px; }
.sidebar-note b { color: #a9ccde; font-size: 11px; letter-spacing: .08em; }
.sidebar-note p { margin: 8px 0 0; font-size: 13px; line-height: 1.6; }

main { min-width: 0; }
.hero { min-height: 610px; padding: 78px clamp(38px, 6vw, 96px) 66px; display: grid; grid-template-columns: minmax(0, 1.05fr) minmax(360px, .95fr); align-items: center; gap: 38px; position: relative; overflow: hidden; }
.hero::before { content: "IV"; position: absolute; right: -10px; top: -88px; color: rgba(23,63,95,.035); font: 700 360px/1 Georgia, serif; pointer-events: none; }
.breadcrumb { margin: 0 0 42px; color: var(--ink-soft); font-size: 13px; }
.breadcrumb span { margin: 0 8px; color: var(--coral); }
.lesson-kicker { margin: 0 0 8px; color: var(--coral); font-size: 13px; font-weight: 850; letter-spacing: .08em; }
h1 { margin: 0; font-family: Georgia, "Noto Serif KR", serif; font-size: clamp(44px, 5vw, 76px); line-height: 1.14; letter-spacing: -.06em; }
h1 em { color: var(--navy); font-style: normal; }
.hero-summary { max-width: 610px; margin: 28px 0; color: var(--ink-soft); font-size: 17px; }
.hero-summary strong { color: var(--ink); }
.hero-meta { display: flex; flex-wrap: wrap; gap: 8px; }
.hero-meta span { padding: 7px 12px; border: 1px solid var(--line); border-radius: 999px; background: rgba(255,255,255,.35); color: var(--ink-soft); font-size: 12px; }
.hero-visual { position: relative; z-index: 1; }
.hero-visual svg { display: block; width: min(100%, 500px); margin: auto; overflow: visible; }
.orbit { fill: none; stroke: rgba(23,63,95,.16); stroke-width: 1.5; stroke-dasharray: 4 8; }
.orbit-b { stroke: rgba(230,111,81,.28); }
.node { stroke: var(--paper); stroke-width: 8; filter: drop-shadow(0 14px 22px rgba(24,38,58,.12)); }
.node-main { fill: var(--navy); }
.node-blue { fill: #d7e7ef; }
.node-coral { fill: #f2c6b9; }
.node-green { fill: #c5ddd3; }
.node-label, .node-caption { text-anchor: middle; font-family: "Noto Sans KR", sans-serif; fill: var(--ink); }
.node-label { font-size: 17px; font-weight: 850; }
.main-label { fill: white; font-size: 27px; }
.node-caption { font-size: 11px; fill: var(--ink-soft); }
.node-main + .main-label + .node-caption { fill: #bed2de; }
.accent-dot.dot-a { fill: var(--coral); }
.accent-dot.dot-b { fill: var(--gold); }

.learning-strip { margin: 0 clamp(24px, 5vw, 70px); padding: 22px 26px; display: flex; align-items: center; gap: 32px; background: var(--white); border: 1px solid var(--line); border-radius: 20px; box-shadow: var(--shadow); }
.strip-title { min-width: 130px; padding-right: 24px; border-right: 1px solid var(--line); }
.strip-title span, .strip-title b { display: block; }
.strip-title span { color: var(--coral); font-size: 10px; font-weight: 800; letter-spacing: .12em; }
.strip-title b { font-size: 14px; }
.learning-strip ol { flex: 1; display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px; margin: 0; padding: 0; list-style: none; }
.learning-strip li { display: grid; grid-template-columns: 32px 1fr; align-items: center; column-gap: 10px; color: #858b91; }
.learning-strip li > span { grid-row: 1 / 3; display: grid; place-items: center; width: 30px; height: 30px; border: 1px solid var(--line); border-radius: 50%; font-size: 11px; }
.learning-strip li b, .learning-strip li small { display: block; line-height: 1.35; }
.learning-strip li b { font-size: 12px; }
.learning-strip li small { font-size: 10px; }
.learning-strip li.current { color: var(--navy); }
.learning-strip li.current > span { color: white; background: var(--coral); border-color: var(--coral); }

.content-section { padding: 110px clamp(38px, 6vw, 96px); }
.section-heading { display: flex; justify-content: space-between; align-items: end; gap: 60px; margin-bottom: 46px; }
.section-heading h2 { margin: 0; font: 700 clamp(32px, 3vw, 48px)/1.25 Georgia, "Noto Serif KR", serif; letter-spacing: -.045em; }
.section-heading > p { max-width: 530px; margin: 0; color: var(--ink-soft); font-size: 14px; }
.section-heading.compact { margin-bottom: 36px; }

.flow-layout { display: grid; grid-template-columns: minmax(0, 1.5fr) minmax(280px, .72fr); gap: 28px; }
.flow-diagram { padding: 28px; background: var(--white); border: 1px solid var(--line); border-radius: var(--radius); }
.flow-step { min-height: 96px; display: grid; grid-template-columns: 52px 1fr; align-items: center; gap: 18px; padding: 19px 24px; border-radius: 17px; }
.flow-step > span { display: grid; place-items: center; width: 42px; height: 42px; border: 1px solid currentColor; border-radius: 50%; font: 700 11px Georgia, serif; }
.flow-step small, .flow-step b, .flow-step p { display: block; }
.flow-step small { color: var(--ink-soft); font-size: 10px; letter-spacing: .08em; }
.flow-step b { margin: -1px 0; font: 700 23px Georgia, "Noto Serif KR", serif; }
.flow-step p { margin: 0; color: var(--ink-soft); font-size: 12px; }
.step-one { color: var(--blue); background: #edf4f7; }
.step-two { color: var(--coral); background: #f9ebe6; }
.step-three { color: var(--green); background: #eaf2ee; }
.step-four { color: var(--navy); background: #e9eef1; }
.flow-diagram > i { display: block; height: 25px; margin-left: 44px; color: #aeb6bb; font-style: normal; text-align: center; transform: translateX(-50%); }
.insight-card { position: relative; overflow: hidden; padding: 42px 34px 32px; color: white; background: var(--navy); border-radius: var(--radius); }
.quote-mark { position: absolute; right: 20px; top: -40px; color: rgba(255,255,255,.08); font: 240px/1 Georgia, serif; }
.insight-card .eyebrow { color: #9fc1d3; }
.insight-card h3 { margin: 16px 0 22px; font: 700 31px/1.35 Georgia, "Noto Serif KR", serif; }
.insight-card > p:not(.eyebrow) { color: #d5e0e6; font-size: 13px; }
.source-label { display: inline-block; margin-top: 22px; padding: 6px 10px; border: 1px solid currentColor; border-radius: 999px; color: inherit; opacity: .7; font-size: 10px; }

.comparison-section { background: var(--paper-deep); }
.comparison-grid { display: grid; grid-template-columns: 1fr 72px 1fr; align-items: center; }
.thinker-card { min-height: 440px; padding: 34px; background: var(--white); border-radius: var(--radius); box-shadow: var(--shadow); }
.thinker-card.plato { border-top: 5px solid var(--blue); }
.thinker-card.jeong { border-top: 5px solid var(--coral); }
.thinker-top { display: flex; align-items: center; gap: 15px; }
.portrait { display: grid; place-items: center; width: 58px; height: 58px; border-radius: 18px; background: #e8f0f4; color: var(--navy); font: 700 24px Georgia, serif; }
.jeong .portrait { background: #fae9e3; color: var(--coral); }
.thinker-top small { color: var(--ink-soft); font-size: 10px; letter-spacing: .1em; }
.thinker-top h3 { margin: -2px 0 0; font: 700 27px Georgia, "Noto Serif KR", serif; }
.claim { min-height: 88px; margin: 28px 0 25px; padding: 20px; color: var(--navy); background: #eff4f6; border-radius: 13px; font-family: Georgia, "Noto Serif KR", serif; font-weight: 700; }
.jeong .claim { color: #9c4633; background: #f9ece7; }
.thinker-card ul { margin: 0; padding: 0; list-style: none; }
.thinker-card li { display: flex; justify-content: space-between; gap: 20px; padding: 10px 2px; border-bottom: 1px solid var(--line); font-size: 12px; }
.thinker-card li b { color: var(--ink-soft); }
.keyword-row { display: flex; gap: 7px; margin-top: 24px; }
.keyword-row span { padding: 6px 10px; border-radius: 999px; background: var(--paper); color: var(--ink-soft); font-size: 10px; }
.versus { position: relative; z-index: 2; display: grid; justify-items: center; gap: 3px; }
.versus span { font-size: 9px; color: var(--ink-soft); }
.versus b { display: grid; place-items: center; width: 58px; height: 58px; color: white; background: var(--ink); border: 6px solid var(--paper-deep); border-radius: 50%; font: 700 16px Georgia, serif; }
.common-ground { margin-top: 26px; padding: 22px 28px; display: flex; align-items: center; gap: 18px; color: white; background: var(--green); border-radius: 17px; }
.common-icon { font-size: 27px; }
.common-ground div { flex: 1; }
.common-ground small, .common-ground strong { display: block; }
.common-ground small { color: #cfe0da; font-size: 10px; }
.common-ground strong { margin-top: 2px; font-size: 14px; }
.common-ground .source-label { margin: 0; }

.quiz-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 24px; }
.quiz-card { padding: 32px; background: var(--white); border: 1px solid var(--line); border-radius: var(--radius); }
.question-number { margin: 0 0 17px; color: var(--coral); font: 700 18px Georgia, serif; }
.question-number span { margin-left: 7px; color: var(--ink-soft); font: 700 10px "Noto Sans KR", sans-serif; letter-spacing: .08em; }
.quiz-card h3 { min-height: 60px; margin: 0 0 22px; font: 700 18px/1.55 Georgia, "Noto Serif KR", serif; }
.options { display: grid; gap: 9px; }
.options button { display: flex; align-items: center; gap: 12px; padding: 12px 14px; border: 1px solid var(--line); border-radius: 11px; background: transparent; text-align: left; cursor: pointer; transition: .2s ease; font-size: 12px; }
.options button:hover { border-color: var(--blue); transform: translateY(-1px); }
.options button span { display: grid; place-items: center; min-width: 26px; height: 26px; border-radius: 50%; background: var(--paper); font: 700 10px Georgia, serif; }
.options button.correct { color: #256753; background: #e9f4ef; border-color: #75ad9a; }
.options button.wrong { color: #a74d3a; background: #faece8; border-color: #d99988; }
.feedback { min-height: 22px; margin: 13px 0 0; font-size: 11px; }
.short-answer textarea { width: 100%; resize: vertical; padding: 15px; color: var(--ink); background: var(--paper); border: 1px solid var(--line); border-radius: 11px; outline: none; font-size: 12px; }
.short-answer textarea:focus { border-color: var(--blue); box-shadow: 0 0 0 3px rgba(77,131,170,.12); }
.answer-button { margin-top: 11px; padding: 10px 15px; color: white; background: var(--navy); border: 0; border-radius: 10px; cursor: pointer; font-size: 11px; }
.model-answer { margin-top: 14px; padding: 15px; background: #edf4f1; border-left: 3px solid var(--green); }
.model-answer small { color: var(--green); font-weight: 800; }
.model-answer p { margin: 5px 0 0; font-size: 12px; }

footer { display: flex; justify-content: space-between; gap: 30px; padding: 28px clamp(38px, 6vw, 96px); color: var(--ink-soft); border-top: 1px solid var(--line); font-size: 10px; }
footer p { margin: 0; }

body.dark { --paper: #17212e; --paper-deep: #1d2937; --ink: #edf1f3; --ink-soft: #aab4bd; --white: #233141; --line: rgba(255,255,255,.12); --navy: #306b91; --shadow: 0 18px 60px rgba(0,0,0,.2); }
body.dark .topbar { background: rgba(23,33,46,.92); }
body.dark .node { stroke: #17212e; }
body.dark .step-one, body.dark .claim { background: #253c4c; }
body.dark .step-two, body.dark .jeong .claim { background: #49332f; }
body.dark .step-three, body.dark .model-answer { background: #294138; }
body.dark .step-four { background: #293846; }
body.dark .portrait { background: #2a4353; }
body.dark .jeong .portrait { background: #4b342f; }

@media (max-width: 1050px) {
  .app-shell { grid-template-columns: 1fr; }
  .sidebar { display: none; }
  .mobile-nav-toggle-global { display: inline-flex; }
  body.mobile-nav-visible { overflow: hidden; }
  .mobile-nav-backdrop.visible { display: block; }
  .mobile-navigation.mobile-nav-open { display: block; position: fixed; inset: 0 auto 0 0; z-index: 40; width: min(86vw, 330px); height: 100dvh; max-height: none; margin: 0; padding: 24px; overflow-y: auto; color: var(--ink); background: var(--white); border: 0; border-right: 1px solid var(--line); border-radius: 0; box-shadow: 18px 0 50px rgba(12,24,38,.22); backdrop-filter: none; }
  .mobile-navigation.mobile-nav-open .mobile-nav-close { display: block; }
  .sidebar.mobile-nav-open .sidebar-note { position: static; margin-top: 24px; }
  .hero { grid-template-columns: 1fr 380px; padding-top: 58px; }
  .flow-layout { grid-template-columns: 1fr; }
  .insight-card { min-height: 310px; }
}

@media (max-width: 760px) {
  .topbar { height: 68px; padding: 0 18px; }
  .brand { gap: 8px; }
  .brand-mark { width: 36px; height: 36px; font-size: 17px; }
  .brand b { font-size: 15px; }
  .brand small { font-size: 9px; }
  .top-actions { gap: 7px; }
  .mobile-nav-toggle { display: inline-flex; }
  .study-status { display: none; }
  .hero { min-height: auto; grid-template-columns: 1fr; padding: 44px 22px; }
  .breadcrumb { margin-bottom: 26px; }
  .hero-visual svg { max-width: 390px; }
  .learning-strip { margin: 0 15px; padding: 17px; display: block; }
  .strip-title { margin-bottom: 15px; padding: 0 0 12px; border-right: 0; border-bottom: 1px solid var(--line); }
  .learning-strip ol { gap: 4px; }
  .learning-strip li { display: block; text-align: center; }
  .learning-strip li > span { margin: 0 auto 6px; }
  .learning-strip li small { display: none; }
  .content-section { padding: 78px 22px; }
  .section-heading { display: block; margin-bottom: 32px; }
  .section-heading > p { margin-top: 18px; }
  .comparison-grid { grid-template-columns: 1fr; gap: 16px; }
  .versus { margin: -4px 0; }
  .thinker-card { min-height: auto; }
  .common-ground { align-items: start; flex-wrap: wrap; }
  .common-ground .source-label { margin-left: 43px; }
  .quiz-grid { grid-template-columns: 1fr; }
  footer { display: block; padding: 24px 22px; }
  footer p + p { margin-top: 7px; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  * { transition: none !important; }
}

/* II단원: 생명 윤리와 생태 윤리 */
.unit-two-mark { background: var(--green); }
.green-text { color: var(--green); }
.sidebar nav a.unit-two-active { color: #336f60; background: rgba(79, 139, 121, .14); }
.sidebar nav a.unit-two-active span { color: var(--green); }
.unit-two-note { background: #356c5e; }
.unit-two-note b { color: #c6ddd6; }

.unit-hero {
  min-height: 590px; padding: 72px clamp(38px, 6vw, 96px) 62px;
  display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(390px, .85fr); align-items: center; gap: 52px;
  position: relative; overflow: hidden;
  background: radial-gradient(circle at 84% 38%, rgba(79,139,121,.13), transparent 31%);
}
.unit-hero::after { content: "II"; position: absolute; right: 1%; top: -70px; color: rgba(79,139,121,.05); font: 700 330px/1 Georgia, serif; pointer-events: none; }
.unit-hero-copy { position: relative; z-index: 2; }
.unit-hero-copy > p:last-of-type { max-width: 650px; margin: 26px 0; color: var(--ink-soft); font-size: 16px; }
.unit-chips { display: flex; flex-wrap: wrap; gap: 9px; }
.unit-chips a { padding: 8px 13px; color: var(--green); background: rgba(79,139,121,.1); border: 1px solid rgba(79,139,121,.25); border-radius: 999px; text-decoration: none; font-size: 11px; font-weight: 800; }
.rings-visual { position: relative; z-index: 1; display: grid; place-items: center; min-height: 430px; }
.life-ring { display: grid; place-items: center; position: relative; border: 1px solid rgba(79,139,121,.24); border-radius: 50%; }
.life-ring > span { position: absolute; top: 11px; color: var(--green); font-size: 9px; font-weight: 800; letter-spacing: .1em; }
.ring-world { width: 420px; height: 420px; background: rgba(79,139,121,.05); box-shadow: 0 0 0 18px rgba(79,139,121,.03); }
.ring-life { width: 310px; height: 310px; background: rgba(79,139,121,.07); }
.ring-relationship { width: 210px; height: 210px; background: rgba(230,111,81,.07); border-color: rgba(230,111,81,.24); }
.ring-relationship > span { color: var(--coral); }
.ring-self { width: 108px; height: 108px; align-content: center; color: white; background: var(--navy); border: 8px solid var(--paper); box-shadow: var(--shadow); }
.ring-self b, .ring-self small { display: block; text-align: center; }
.ring-self b { font: 700 29px Georgia, "Noto Serif KR", serif; }
.ring-self small { color: #b8d0dd; font-size: 9px; }

.chapter-nav { position: sticky; top: 78px; z-index: 15; margin: 0 clamp(24px,5vw,70px); display: grid; grid-template-columns: repeat(3,1fr); background: var(--white); border: 1px solid var(--line); border-radius: 18px; box-shadow: var(--shadow); overflow: hidden; }
.chapter-nav a { display: grid; grid-template-columns: 34px 1fr auto; align-items: center; gap: 9px; padding: 17px 20px; color: var(--ink); border-right: 1px solid var(--line); text-decoration: none; }
.chapter-nav a:last-child { border-right: 0; }
.chapter-nav a:hover { background: rgba(79,139,121,.07); }
.chapter-nav span { color: var(--green); font: 700 15px Georgia, serif; }
.chapter-nav b { font-size: 12px; }
.chapter-nav small { color: var(--ink-soft); font-size: 9px; }

.unit-chapter { padding: 116px clamp(38px,6vw,96px); scroll-margin-top: 150px; }
.unit-chapter + .unit-chapter { border-top: 1px solid var(--line); }
.chapter-heading { display: grid; grid-template-columns: 76px 1fr; gap: 25px; align-items: start; max-width: 900px; margin-bottom: 48px; }
.chapter-number { display: grid; place-items: center; width: 72px; height: 72px; color: white; background: var(--coral); border-radius: 22px 22px 22px 5px; font: 700 24px Georgia, serif; }
.nature-chapter .chapter-number { background: var(--green); }
.chapter-heading h2 { margin: 0; font: 700 clamp(31px,3.2vw,49px)/1.25 Georgia,"Noto Serif KR",serif; letter-spacing: -.045em; }
.chapter-heading div > p:last-child { margin: 12px 0 0; color: var(--ink-soft); font-size: 14px; }

.viewpoint-timeline { display: grid; grid-template-columns: repeat(4,1fr); margin-bottom: 68px; position: relative; }
.viewpoint-timeline::before { content: ""; position: absolute; left: 8%; right: 8%; top: 39px; height: 1px; background: var(--line); }
.viewpoint-timeline article { position: relative; z-index: 1; padding: 0 15px; text-align: center; }
.thought-symbol { display: grid; place-items: center; width: 78px; height: 78px; margin: 0 auto 14px; color: var(--navy); background: var(--white); border: 1px solid var(--line); border-radius: 50%; box-shadow: 0 10px 30px rgba(24,38,58,.08); font: 700 22px Georgia,"Noto Serif KR",serif; }
.viewpoint-timeline article:nth-child(even) .thought-symbol { color: var(--coral); }
.viewpoint-timeline small, .viewpoint-timeline b { display: block; }
.viewpoint-timeline small { color: var(--ink-soft); font-size: 10px; }
.viewpoint-timeline b { margin: 2px 0 8px; font-family: Georgia,"Noto Serif KR",serif; }
.viewpoint-timeline p { margin: 0; color: var(--ink-soft); font-size: 11px; line-height: 1.65; }
.issue-heading { margin-bottom: 22px; }
.issue-heading h3 { margin: 0; font: 700 28px Georgia,"Noto Serif KR",serif; }
.ethical-issues { display: grid; grid-template-columns: 1fr 1fr; gap: 24px; }
.issue-card { padding: 30px; background: var(--white); border: 1px solid var(--line); border-radius: var(--radius); }
.issue-title { display: flex; align-items: center; gap: 13px; }
.issue-title > span { display: grid; place-items: center; width: 37px; height: 37px; color: white; background: var(--coral); border-radius: 50%; font: 700 11px Georgia,serif; }
.issue-title small { color: var(--ink-soft); font-size: 9px; }
.issue-title h3 { margin: -2px 0 0; font: 700 19px Georgia,"Noto Serif KR",serif; }
.value-balance { display: grid; grid-template-columns: 1fr 24px 1fr; align-items: center; gap: 10px; margin: 26px 0 20px; }
.value-balance > span { color: var(--coral); text-align: center; }
.value-balance div { min-height: 150px; padding: 18px; background: var(--paper); border-radius: 14px; }
.value-balance b, .value-balance strong { display: block; }
.value-balance b { color: var(--coral); font-size: 10px; }
.value-balance strong { margin: 3px 0 9px; font: 700 15px Georgia,"Noto Serif KR",serif; }
.value-balance p { margin: 0; color: var(--ink-soft); font-size: 10px; }
.judgment-key { margin: 0; color: var(--ink-soft); font-size: 10px; }
.judgment-key b { margin-right: 8px; color: var(--navy); }
.type-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; margin: 26px 0 20px; }
.type-grid div { padding: 12px 14px; background: var(--paper); border-radius: 11px; }
.type-grid small, .type-grid b, .type-grid span { display: block; }
.type-grid small { color: var(--coral); font-size: 8px; }
.type-grid b { font: 700 15px Georgia,"Noto Serif KR",serif; }
.type-grid span { color: var(--ink-soft); font-size: 9px; }
.argument-line { display: grid; grid-template-columns: 1fr 1px 1fr; gap: 13px; color: var(--ink-soft); font-size: 9px; }
.argument-line i { background: var(--line); }
.argument-line b { display: block; color: var(--navy); }

.wide-quiz { margin-top: 28px; display: grid; grid-template-columns: minmax(240px,.8fr) minmax(450px,1.2fr); align-items: center; gap: 24px; }
.wide-quiz h3 { min-height: auto; margin: 0; }
.horizontal-options { grid-template-columns: repeat(3,1fr); }
.horizontal-options.four-options { grid-template-columns: repeat(2,1fr); }
.wide-quiz .feedback { grid-column: 1/-1; margin: 0; }

.love-chapter { background: var(--paper-deep); }
.stance-spectrum { display: grid; grid-template-columns: 1fr 65px 1fr 65px 1fr; align-items: stretch; }
.stance { padding: 28px; background: var(--white); border-radius: 20px; box-shadow: var(--shadow); }
.stance > span { color: var(--coral); font: 700 18px Georgia,serif; }
.stance small { display: block; margin-top: 18px; color: var(--ink-soft); font-size: 9px; letter-spacing: .08em; }
.stance h3 { margin: 1px 0 13px; font: 700 24px Georgia,"Noto Serif KR",serif; }
.stance p { min-height: 105px; color: var(--ink-soft); font-size: 11px; }
.stance > b { display: inline-block; padding: 6px 9px; color: var(--coral); background: #faece7; border-radius: 999px; font-size: 9px; }
.stance.moderate { border-top: 4px solid var(--gold); }
.stance.liberal { border-top: 4px solid var(--green); }
.spectrum-arrow { display: grid; place-items: center; align-content: center; gap: 7px; }
.spectrum-arrow i { width: 36px; height: 1px; background: var(--line); position: relative; }
.spectrum-arrow i::after { content: ""; position: absolute; right: -1px; top: -3px; width: 7px; height: 7px; border-top: 1px solid var(--ink-soft); border-right: 1px solid var(--ink-soft); transform: rotate(45deg); }
.spectrum-arrow span { color: var(--ink-soft); font-size: 7px; writing-mode: vertical-rl; }
.relationship-panel { margin-top: 28px; min-height: 350px; display: grid; grid-template-columns: .8fr 1.2fr; background: var(--navy); border-radius: var(--radius); overflow: hidden; }
.relationship-copy { padding: 45px; color: white; }
.relationship-copy .eyebrow { color: #a6c7d8; }
.relationship-copy h3 { margin: 0 0 19px; font: 700 30px/1.4 Georgia,"Noto Serif KR",serif; }
.relationship-copy > p:last-child { color: #cedce3; font-size: 12px; }
.relationship-map { position: relative; min-height: 350px; background: rgba(255,255,255,.05); }
.relationship-map svg { position: absolute; inset: 50% auto auto 50%; width: 420px; max-width: 90%; transform: translate(-50%,-50%); }
.relationship-map path { fill: none; stroke: rgba(255,255,255,.27); stroke-width: 1; stroke-dasharray: 4 6; }
.relation-node { position: absolute; z-index: 2; display: grid; place-items: center; width: 112px; height: 72px; color: white; background: #396784; border: 1px solid rgba(255,255,255,.2); border-radius: 18px; text-align: center; }
.relation-node b, .relation-node span { display: block; }
.relation-node b { font: 700 14px Georgia,"Noto Serif KR",serif; }
.relation-node span { color: #c4d7e1; font-size: 8px; }
.center-node { left: 50%; top: 50%; width: 106px; height: 106px; transform: translate(-50%,-50%); background: var(--coral); border-radius: 50%; font-weight: 800; }
.spouse-node { left: 8%; top: 10%; }
.parent-node { right: 8%; top: 10%; }
.sibling-node { left: 50%; bottom: 6%; transform: translateX(-50%); }

.moral-scope { display: grid; grid-template-columns: minmax(430px,1fr) minmax(320px,.8fr); gap: 40px; align-items: center; }
.scope-visual { display: grid; place-items: center; min-height: 560px; }
.scope-layer { display: grid; place-items: center; position: relative; border-radius: 50%; }
.scope-layer > span { position: absolute; top: 16px; text-align: center; font-size: 9px; }
.scope-layer > span b { display: block; font-size: 11px; }
.scope-layer.ecology { width: 540px; height: 540px; max-width: 100%; background: #d9e8e1; color: #326c5c; }
.scope-layer.life { width: 420px; height: 420px; background: #e7dcae; color: #7b6528; }
.scope-layer.animal { width: 305px; height: 305px; background: #e8c2b8; color: #984c39; }
.scope-layer.human { width: 185px; height: 185px; background: var(--navy); color: white; }
.scope-legend { display: grid; gap: 10px; }
.scope-legend article { display: grid; grid-template-columns: 12px 1fr; gap: 12px; padding: 15px; background: var(--white); border: 1px solid var(--line); border-radius: 13px; }
.legend-dot { width: 10px; height: 10px; margin-top: 6px; border-radius: 50%; }
.human-dot { background: var(--navy); }.animal-dot { background: #c86d57; }.life-dot { background: #b69a3f; }.ecology-dot { background: var(--green); }
.scope-legend b { font-size: 12px; }
.scope-legend p { margin: 2px 0 0; color: var(--ink-soft); font-size: 9px; }
.climate-justice { margin-top: 44px; display: grid; grid-template-columns: .9fr 1.1fr; min-height: 390px; background: var(--white); border: 1px solid var(--line); border-radius: var(--radius); overflow: hidden; }
.justice-visual { position: relative; display: flex; justify-content: center; align-items: center; gap: 70px; padding: 50px 25px; background: #eaf2ee; }
.scale-beam { position: absolute; left: 50%; top: 42%; width: 260px; height: 5px; background: var(--navy); transform: translate(-50%,-50%) rotate(-7deg); }
.scale-beam::after { content: ""; position: absolute; left: 50%; top: 4px; width: 0; height: 0; border-left: 25px solid transparent; border-right: 25px solid transparent; border-bottom: 80px solid var(--navy); transform: translateX(-50%); }
.scale-side { position: relative; z-index: 2; width: 128px; text-align: center; }
.scale-side i { display: block; width: 128px; height: 68px; margin-bottom: 12px; border: 3px solid var(--coral); border-top: 0; border-radius: 0 0 70px 70px; }
.damage-side { transform: translateY(32px); }
.damage-side i { border-color: var(--green); }
.scale-side b, .scale-side small { display: block; }
.scale-side b { font-family: Georgia,"Noto Serif KR",serif; }
.scale-side small { color: var(--ink-soft); font-size: 9px; }
.justice-copy { padding: 48px; }
.justice-copy h3 { margin: 0 0 18px; font: 700 32px/1.4 Georgia,"Noto Serif KR",serif; }
.justice-copy > p:not(.eyebrow) { color: var(--ink-soft); font-size: 12px; }
.jonas-note { margin-top: 24px; padding: 16px; background: var(--paper); border-left: 3px solid var(--coral); }
.jonas-note span { color: var(--coral); font-size: 10px; font-weight: 800; }
.jonas-note p { margin: 5px 0 0; font-size: 10px; }

.unit-summary { padding: 82px clamp(38px,6vw,96px); display: flex; justify-content: space-between; align-items: end; gap: 40px; color: white; background: var(--green); }
.unit-summary .eyebrow { color: #c9dfd8; }
.unit-summary h2 { margin: 0; font: 700 clamp(30px,3vw,46px)/1.35 Georgia,"Noto Serif KR",serif; }
.summary-links { display: flex; flex-wrap: wrap; justify-content: end; gap: 8px; }
.summary-links a { padding: 8px 12px; color: white; border: 1px solid rgba(255,255,255,.4); border-radius: 999px; text-decoration: none; font-size: 10px; }

body.dark .ring-world, body.dark .ring-life { background: rgba(79,139,121,.12); }
body.dark .ring-relationship { background: rgba(230,111,81,.12); }
body.dark .stance > b { background: #4b342f; }
body.dark .scope-layer.ecology { background: #2e5146; color: #bde0d4; }
body.dark .scope-layer.life { background: #5c522f; color: #eadf9d; }
body.dark .scope-layer.animal { background: #614037; color: #f2c4b7; }
body.dark .justice-visual { background: #294138; }

@media (max-width: 1100px) {
  .unit-hero { grid-template-columns: 1fr 360px; }
  .ring-world { width: 360px; height: 360px; }
  .ring-life { width: 270px; height: 270px; }
  .ring-relationship { width: 185px; height: 185px; }
  .ethical-issues { grid-template-columns: 1fr; }
  .stance-spectrum { grid-template-columns: 1fr 45px 1fr 45px 1fr; }
  .moral-scope { grid-template-columns: 1fr; }
  .scope-legend { grid-template-columns: 1fr 1fr; }
}

@media (max-width: 760px) {
  .unit-hero { min-height: auto; grid-template-columns: 1fr; padding: 46px 22px; }
  .rings-visual { min-height: 360px; }
  .ring-world { width: 340px; height: 340px; }
  .ring-life { width: 255px; height: 255px; }
  .ring-relationship { width: 170px; height: 170px; }
  .ring-self { width: 86px; height: 86px; }
  .chapter-nav { top: 68px; margin: 0 12px; }
  .chapter-nav a { display: block; padding: 13px 6px; text-align: center; }
  .chapter-nav span, .chapter-nav b, .chapter-nav small { display: block; }
  .chapter-nav small { display: none; }
  .unit-chapter { padding: 80px 22px; scroll-margin-top: 130px; }
  .chapter-heading { grid-template-columns: 52px 1fr; gap: 15px; }
  .chapter-number { width: 52px; height: 52px; border-radius: 16px 16px 16px 4px; font-size: 18px; }
  .viewpoint-timeline { grid-template-columns: 1fr 1fr; row-gap: 32px; }
  .viewpoint-timeline::before { display: none; }
  .thought-symbol { width: 62px; height: 62px; }
  .value-balance { grid-template-columns: 1fr; }
  .value-balance > span { transform: rotate(90deg); }
  .wide-quiz { display: block; }
  .horizontal-options, .horizontal-options.four-options { grid-template-columns: 1fr; margin-top: 20px; }
  .stance-spectrum { grid-template-columns: 1fr; gap: 12px; }
  .stance p { min-height: auto; }
  .spectrum-arrow { height: 32px; transform: rotate(90deg); }
  .spectrum-arrow span { display: none; }
  .relationship-panel { grid-template-columns: 1fr; }
  .relationship-copy { padding: 32px; }
  .relationship-map { min-height: 330px; }
  .scope-visual { min-height: 360px; }
  .scope-layer.ecology { width: 350px; height: 350px; }
  .scope-layer.life { width: 275px; height: 275px; }
  .scope-layer.animal { width: 200px; height: 200px; }
  .scope-layer.human { width: 125px; height: 125px; }
  .scope-layer > span { top: 8px; font-size: 7px; }
  .scope-layer > span b { font-size: 8px; }
  .scope-legend { grid-template-columns: 1fr; }
  .climate-justice { grid-template-columns: 1fr; }
  .justice-visual { min-height: 300px; }
  .justice-copy { padding: 32px; }
  .unit-summary { display: block; padding: 62px 22px; }
  .summary-links { justify-content: start; margin-top: 25px; }
}

/* 동적 대단원 공통 */
.dynamic-unit-page { --unit-accent: var(--blue); }
.dynamic-mark { background: var(--unit-accent); }
.sidebar nav a.dynamic-active { color: var(--unit-accent); background: color-mix(in srgb, var(--unit-accent) 13%, transparent); }
.sidebar nav a.dynamic-active span { color: var(--unit-accent); }
.dynamic-note { background: color-mix(in srgb, var(--unit-accent) 78%, var(--navy)); }
.dynamic-note b { color: rgba(255,255,255,.7); }
.dynamic-hero { min-height: 555px; padding: 74px clamp(38px,6vw,96px); display: grid; grid-template-columns: minmax(0,1.15fr) minmax(330px,.85fr); align-items: center; gap: 50px; overflow: hidden; }
.dynamic-hero .lesson-kicker { color: var(--unit-accent); }
.dynamic-summary { max-width: 650px; margin: 26px 0; color: var(--ink-soft); font-size: 16px; }
.dynamic-hero-art { position: relative; min-height: 390px; }
.hero-roman { position: absolute; left: 50%; top: 50%; color: color-mix(in srgb, var(--unit-accent) 18%, transparent); font: 700 240px/1 Georgia,serif; transform: translate(-50%,-50%); }
.hero-question { position: absolute; left: 50%; top: 50%; display: grid; place-items: center; width: 110px; height: 110px; color: white; background: var(--unit-accent); border: 12px solid var(--paper); border-radius: 50%; box-shadow: var(--shadow); transform: translate(-50%,-50%); font: 700 42px Georgia,serif; }
.art-line { position: absolute; width: 180px; height: 1px; background: color-mix(in srgb, var(--unit-accent) 40%, transparent); }
.line-one { left: 6%; top: 27%; transform: rotate(30deg); }.line-two { right: 4%; bottom: 25%; transform: rotate(-28deg); }
.art-dot { position: absolute; width: 18px; height: 18px; border: 4px solid var(--unit-accent); border-radius: 50%; }
.dot-one { left: 12%; bottom: 19%; }.dot-two { right: 10%; top: 17%; width: 11px; height: 11px; }
.dynamic-chapter-nav span { color: var(--unit-accent); }
.dynamic-chapter-nav a:hover { background: color-mix(in srgb, var(--unit-accent) 7%, transparent); }
.visual-unit-section { padding: 112px clamp(38px,6vw,96px); scroll-margin-top: 150px; }
.visual-unit-section.tinted { background: var(--paper-deep); }
.dynamic-heading { display: grid; grid-template-columns: 68px 1fr; gap: 24px; align-items: start; max-width: 940px; margin-bottom: 45px; }
.dynamic-heading > span { display: grid; place-items: center; width: 64px; height: 64px; color: white; background: var(--unit-accent); border-radius: 20px 20px 20px 5px; font: 700 19px Georgia,serif; }
.dynamic-heading .eyebrow { color: var(--unit-accent); }
.dynamic-heading h2 { margin: 0; font: 700 clamp(31px,3.2vw,49px)/1.25 Georgia,"Noto Serif KR",serif; letter-spacing: -.045em; }
.dynamic-heading div > p:last-child { margin: 12px 0 0; color: var(--ink-soft); font-size: 13px; }
.dynamic-summary-section { padding: 78px clamp(38px,6vw,96px); color: white; background: var(--unit-accent); }
.dynamic-summary-section .eyebrow { color: rgba(255,255,255,.7); }
.dynamic-summary-section h2 { max-width: 830px; margin: 0 0 25px; font: 700 clamp(28px,3vw,44px)/1.4 Georgia,"Noto Serif KR",serif; }
.dynamic-summary-section a { color: white; font-size: 11px; }

/* I단원 */
.triple-theory { display: grid; grid-template-columns: repeat(3,1fr); gap: 20px; }
.triple-theory article { padding: 30px; background: var(--white); border: 1px solid var(--line); border-radius: var(--radius); text-align: center; }
.triple-theory small { color: var(--unit-accent); font-weight: 800; }.triple-theory h3 { margin: 1px 0 16px; font: 700 25px Georgia,"Noto Serif KR",serif; }
.theory-icon { display: grid; place-items: center; width: 90px; height: 90px; margin: 0 auto 18px; color: var(--unit-accent); background: color-mix(in srgb,var(--unit-accent) 10%,var(--paper)); border-radius: 50%; font: 700 30px Georgia,"Noto Serif KR",serif; }
.triple-theory p { min-height: 80px; color: var(--ink-soft); font-size: 11px; }.triple-theory article > b { color: var(--navy); font-size: 10px; }
.human-traits { margin-top: 24px; padding: 24px; display: flex; align-items: center; justify-content: center; gap: 16px; background: var(--navy); border-radius: 19px; }
.human-traits div { min-width: 130px; color: white; text-align: center; }.human-traits div > span { display: block; color: #b8d2df; font: 700 20px Georgia,serif; }.human-traits b,.human-traits small { display: block; }.human-traits b { font-size: 11px; }.human-traits small { color: #bdccd4; font-size: 8px; }.human-traits i { color: #7194a8; font-style: normal; }.human-traits .trait-result > span { color: #ffd6c8; }
.question-compass { display: grid; grid-template-columns: repeat(4,1fr); gap: 15px; }
.question-compass article { min-height: 270px; padding: 26px; background: var(--white); border-top: 4px solid var(--unit-accent); border-radius: 18px; box-shadow: var(--shadow); }
.question-compass article > span { color: var(--unit-accent); font: 700 21px Georgia,serif; }.question-compass small { display: block; color: var(--ink-soft); font-size: 9px; }.question-compass h3 { margin: 25px 0 14px; font: 700 18px/1.5 Georgia,"Noto Serif KR",serif; }.question-compass p { color: var(--ink-soft); font-size: 10px; }
.lens-board { display: grid; grid-template-columns: repeat(5,1fr); gap: 13px; }
.lens-board article { padding: 22px 16px; text-align: center; background: var(--white); border: 1px solid var(--line); border-radius: 18px; }
.lens { display: grid; place-items: center; width: 72px; height: 72px; margin: 0 auto 15px; color: white; background: var(--unit-accent); border: 8px solid color-mix(in srgb,var(--unit-accent) 16%,var(--paper)); border-radius: 50%; font: 700 21px Georgia,"Noto Serif KR",serif; }.lens-board small { color: var(--unit-accent); font-size: 9px; }.lens-board h3 { margin: 1px 0 10px; font: 700 16px Georgia,"Noto Serif KR",serif; }.lens-board p { color: var(--ink-soft); font-size: 9px; }

/* III단원 */
.neutrality-debate { display: grid; grid-template-columns: 1fr 140px 1fr; align-items: center; }
.neutrality-debate article { min-height: 265px; padding: 32px; background: var(--white); border: 1px solid var(--line); border-radius: var(--radius); }.neutrality-debate small { color: var(--unit-accent); font-weight: 800; }.neutrality-debate h3 { margin: 5px 0 17px; font: 700 23px Georgia,"Noto Serif KR",serif; }.neutrality-debate p { color: var(--ink-soft); font-size: 11px; }.debate-tag { display: inline-block; margin-top: 18px; padding: 6px 10px; color: var(--unit-accent); background: color-mix(in srgb,var(--unit-accent) 10%,var(--paper)); border-radius: 999px; font-size: 9px; }
.debate-core { position: relative; z-index: 2; display: grid; place-items: center; align-content: center; width: 150px; height: 150px; margin: auto -5px; color: white; background: var(--unit-accent); border: 10px solid var(--paper); border-radius: 50%; text-align: center; }.debate-core span { font: 700 27px Georgia,serif; }.debate-core b { font-size: 10px; }
.responsibility-process,.consumption-chain,.dialogue-process,.global-responsibility { margin-top: 26px; padding: 22px; display: flex; align-items: center; justify-content: center; gap: 18px; color: white; background: var(--navy); border-radius: 18px; }.responsibility-process span,.consumption-chain span,.dialogue-process span,.global-responsibility span { min-width: 130px; text-align: center; }.responsibility-process b,.responsibility-process small,.consumption-chain b,.consumption-chain small,.dialogue-process b,.dialogue-process small,.global-responsibility b,.global-responsibility small { display: block; }.responsibility-process small,.consumption-chain small,.dialogue-process small,.global-responsibility small { color: #bfd0d9; font-size: 8px; }.responsibility-process i,.consumption-chain i,.dialogue-process i,.global-responsibility i { color: #7899ab; font-style: normal; }
.jonas-banner { margin-top: 14px; padding: 22px 26px; display: grid; grid-template-columns: 170px 1fr auto; align-items: center; gap: 20px; background: color-mix(in srgb,var(--unit-accent) 12%,var(--white)); border-left: 4px solid var(--unit-accent); }.jonas-banner b { color: var(--unit-accent); }.jonas-banner p { margin: 0; font-size: 11px; }.jonas-banner span { color: var(--ink-soft); font-size: 9px; }
.digital-rights { display: grid; grid-template-columns: repeat(4,1fr); gap: 14px; }.digital-rights article { padding: 25px; background: var(--white); border-radius: 18px; }.digital-rights article > span { display: grid; place-items: center; width: 48px; height: 48px; color: white; background: var(--unit-accent); border-radius: 14px; font: 700 17px Georgia,"Noto Serif KR",serif; }.digital-rights h3 { margin: 18px 0 8px; font: 700 16px Georgia,"Noto Serif KR",serif; }.digital-rights p { color: var(--ink-soft); font-size: 9px; }
.media-literacy-flow { margin-top: 24px; display: grid; grid-template-columns: 1fr 40px 1fr 40px 1fr; align-items: center; }.media-literacy-flow div { padding: 20px; text-align: center; background: var(--white); border: 1px solid var(--line); border-radius: 14px; }.media-literacy-flow small,.media-literacy-flow b { display: block; }.media-literacy-flow small { color: var(--unit-accent); font-size: 9px; }.media-literacy-flow b { font-size: 11px; }.media-literacy-flow > i { color: var(--unit-accent); font-style: normal; text-align: center; }.media-literacy-flow .literacy-core { color: white; background: var(--unit-accent); }.media-literacy-flow .literacy-core small { color: rgba(255,255,255,.7); }
.ai-core { display: grid; grid-template-columns: 430px 1fr; gap: 50px; align-items: center; }.ai-orbit { position: relative; width: 410px; height: 410px; border: 1px dashed color-mix(in srgb,var(--unit-accent) 40%,transparent); border-radius: 50%; }.ai-center { position: absolute; left: 50%; top: 50%; display: grid; place-items: center; width: 120px; height: 120px; color: white; background: var(--unit-accent); border: 10px solid var(--paper); border-radius: 50%; box-shadow: var(--shadow); transform: translate(-50%,-50%); font: 700 30px Georgia,serif; }.ai-point { position: absolute; padding: 8px 13px; color: var(--unit-accent); background: var(--white); border: 1px solid var(--line); border-radius: 999px; font-size: 10px; font-weight: 800; }.point-fair { left: 4%; top: 19%; }.point-clear { right: 0; top: 21%; }.point-safe { right: -3%; bottom: 20%; }.point-human { left: 34%; bottom: -3%; }.point-account { left: -7%; bottom: 25%; }
.ai-checklist { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }.ai-checklist article { padding: 20px; background: var(--white); border: 1px solid var(--line); border-radius: 15px; }.ai-checklist b { font-size: 12px; }.ai-checklist p { margin: 5px 0 0; color: var(--ink-soft); font-size: 9px; }

/* V단원 */
.art-debate { display: grid; grid-template-columns: 1fr 180px 1fr; align-items: center; }.art-debate article { min-height: 300px; padding: 34px; background: var(--white); border: 1px solid var(--line); border-radius: var(--radius); }.art-debate article > span { color: var(--unit-accent); font: 700 34px Georgia,"Noto Serif KR",serif; }.art-debate small { display: block; color: var(--unit-accent); }.art-debate h3 { margin: 15px 0; font: 700 21px/1.45 Georgia,"Noto Serif KR",serif; }.art-debate p { color: var(--ink-soft); font-size: 11px; }.art-frame { position: relative; z-index: 2; display: grid; place-items: center; width: 190px; height: 190px; margin: 0 -5px; color: white; background: var(--unit-accent); border: 12px solid var(--paper); transform: rotate(4deg); text-align: center; }.art-frame::before { content:""; position:absolute; inset:10px; border:1px solid rgba(255,255,255,.4); }.art-frame b { font: 700 15px/1.7 Georgia,"Noto Serif KR",serif; }
.culture-industry { margin-top: 25px; padding: 30px; display: grid; grid-template-columns: .7fr 1.3fr; align-items: center; gap: 30px; color: white; background: var(--navy); border-radius: 20px; }.culture-industry .eyebrow { color: #b5cad5; }.culture-industry h3 { margin: 0; font: 700 23px/1.5 Georgia,"Noto Serif KR",serif; }.culture-procon { display: grid; grid-template-columns: 1fr 1px 1fr; gap: 25px; }.culture-procon i { background: rgba(255,255,255,.2); }.culture-procon b { display:block;color:#b9d4df;font-size:10px; }.culture-procon span { font-size: 10px; }
.consumer-types { margin-top: 24px; display: grid; grid-template-columns: repeat(3,1fr); gap: 15px; }.consumer-types article { padding: 26px; background: var(--white); border-radius: 18px; }.consumer-types span { display:grid;place-items:center;width:42px;height:42px;color:white;background:var(--unit-accent);border-radius:50%;font-weight:900; }.consumer-types h3 { margin:16px 0 8px;font:700 17px Georgia,"Noto Serif KR",serif; }.consumer-types p { color:var(--ink-soft);font-size:10px; }
.culture-attitudes { display:grid;grid-template-columns:repeat(4,1fr);gap:13px; }.culture-attitudes article { min-height:210px;padding:24px;background:var(--white);border:1px solid var(--line);border-radius:17px; }.culture-attitudes small,.culture-attitudes b { display:block; }.culture-attitudes small { color:var(--unit-accent);font-size:9px; }.culture-attitudes b { margin:20px 0 10px;font:700 16px/1.45 Georgia,"Noto Serif KR",serif; }.culture-attitudes p { color:var(--ink-soft);font-size:9px; }.culture-attitudes .attitude-goal { color:white;background:var(--unit-accent); }.culture-attitudes .attitude-goal small,.culture-attitudes .attitude-goal p { color:rgba(255,255,255,.72); }
.recognition-flow { margin-top:24px;padding:24px;display:flex;align-items:center;justify-content:center;gap:20px;background:var(--paper-deep);border-radius:18px; }.recognition-flow span { min-width:130px;text-align:center; }.recognition-flow b,.recognition-flow small { display:block; }.recognition-flow b { color:var(--unit-accent); }.recognition-flow small { color:var(--ink-soft);font-size:8px; }.recognition-flow i { color:var(--unit-accent);font-style:normal; }

/* VI단원 */
.discourse-rules { position:relative;min-height:500px; }.discourse-center { position:absolute;left:50%;top:50%;z-index:2;display:grid;place-items:center;align-content:center;width:180px;height:180px;color:white;background:var(--unit-accent);border:12px solid var(--paper);border-radius:50%;box-shadow:var(--shadow);transform:translate(-50%,-50%);text-align:center;font-size:10px; }.discourse-center b { font:700 16px Georgia,"Noto Serif KR",serif; }.discourse-rules article { position:absolute;width:240px;padding:20px;background:var(--white);border:1px solid var(--line);border-radius:16px; }.discourse-rules article:nth-of-type(1){left:4%;top:6%}.discourse-rules article:nth-of-type(2){right:4%;top:6%}.discourse-rules article:nth-of-type(3){left:4%;bottom:6%}.discourse-rules article:nth-of-type(4){right:4%;bottom:6%}.discourse-rules article span { color:var(--unit-accent);font:700 13px Georgia,serif; }.discourse-rules article b { display:block;margin:6px 0;font-size:12px; }.discourse-rules article p { margin:0;color:var(--ink-soft);font-size:9px; }
.harmony-cards { display:grid;grid-template-columns:repeat(3,1fr);gap:14px; }.harmony-cards article { padding:24px;background:var(--white);border-top:4px solid var(--unit-accent);border-radius:17px; }.harmony-cards small { color:var(--unit-accent); }.harmony-cards h3 { margin:3px 0 10px;font:700 21px Georgia,"Noto Serif KR",serif; }.harmony-cards p { color:var(--ink-soft);font-size:10px; }
.unification-layers { max-width:800px;margin:auto;display:grid;gap:10px; }.unification-layers article { padding:18px 25px;display:flex;align-items:center;gap:17px;background:var(--white);border:1px solid var(--line);border-radius:15px; }.unification-layers article:nth-child(2){margin:0 55px}.unification-layers article:nth-child(3){margin:0 110px}.unification-layers article > span { display:grid;place-items:center;min-width:38px;height:38px;color:white;background:var(--unit-accent);border-radius:50%;font:700 12px Georgia,serif; }.unification-layers small,.unification-layers b { display:block; }.unification-layers small { color:var(--unit-accent);font-size:8px; }.unification-layers b { font-size:12px; }
.cost-benefit { margin-top:28px;display:grid;grid-template-columns:1fr 60px 1fr;align-items:center; }.cost-benefit > div { min-height:180px;padding:28px;background:var(--white);border-radius:18px; }.cost-benefit > i { color:var(--unit-accent);font-style:normal;text-align:center;font-size:22px; }.cost-benefit .eyebrow { color:var(--unit-accent); }.cost-benefit h3 { margin:0 0 15px;font:700 22px Georgia,"Noto Serif KR",serif; }.cost-benefit span { color:var(--ink-soft);font-size:10px; }
.violence-triangle { display:grid;grid-template-columns:1fr .9fr;gap:45px;align-items:center; }.violence-triangle svg { width:100%;max-width:540px; }.violence-triangle path { fill:color-mix(in srgb,var(--unit-accent) 8%,var(--white));stroke:var(--unit-accent);stroke-width:2; }.violence-triangle line { stroke:var(--unit-accent);stroke-width:1;stroke-dasharray:6 7; }.violence-triangle text { fill:var(--ink);font:700 15px "Noto Sans KR",sans-serif;text-anchor:middle; }.violence-triangle .triangle-caption { fill:var(--ink-soft);font-size:10px; }.peace-levels { display:grid;gap:15px; }.peace-levels article { padding:25px;background:var(--white);border:1px solid var(--line);border-radius:18px; }.peace-levels small { color:var(--unit-accent); }.peace-levels h3 { margin:4px 0 9px;font:700 17px Georgia,"Noto Serif KR",serif; }.peace-levels p { color:var(--ink-soft);font-size:10px; }.peace-levels .positive-peace { color:white;background:var(--unit-accent); }.peace-levels .positive-peace small,.peace-levels .positive-peace p { color:rgba(255,255,255,.72); }

body.dark .hero-question,.dark .discourse-center { border-color:var(--paper); }
body.dark .theory-icon { background:color-mix(in srgb,var(--unit-accent) 20%,var(--paper)); }

@media (max-width:1100px){
 .lens-board{grid-template-columns:repeat(3,1fr)}.question-compass,.digital-rights,.culture-attitudes{grid-template-columns:1fr 1fr}.ai-core{grid-template-columns:1fr}.ai-orbit{margin:auto}.culture-attitudes{grid-template-columns:1fr 1fr}
}
@media (max-width:760px){
 .dynamic-hero{min-height:auto;grid-template-columns:1fr;padding:48px 22px}.dynamic-hero-art{min-height:260px}.hero-roman{font-size:170px}.visual-unit-section{padding:80px 22px;scroll-margin-top:130px}.dynamic-heading{grid-template-columns:52px 1fr;gap:15px}.dynamic-heading>span{width:52px;height:52px;border-radius:16px 16px 16px 4px;font-size:15px}.triple-theory,.question-compass,.lens-board,.digital-rights,.consumer-types,.culture-attitudes,.harmony-cards{grid-template-columns:1fr}.triple-theory p{min-height:auto}.human-traits,.responsibility-process,.consumption-chain,.dialogue-process,.global-responsibility,.recognition-flow{display:grid;grid-template-columns:1fr}.human-traits i,.responsibility-process i,.consumption-chain i,.dialogue-process i,.global-responsibility i,.recognition-flow i{transform:rotate(90deg);text-align:center}.neutrality-debate,.art-debate{grid-template-columns:1fr}.debate-core,.art-frame{margin:-7px auto}.jonas-banner{grid-template-columns:1fr}.media-literacy-flow{grid-template-columns:1fr}.media-literacy-flow>i{transform:rotate(90deg)}.ai-orbit{width:330px;height:330px}.ai-checklist{grid-template-columns:1fr}.culture-industry{grid-template-columns:1fr}.culture-procon{grid-template-columns:1fr}.culture-procon i{height:1px}.discourse-rules{min-height:auto;display:grid;gap:10px}.discourse-center,.discourse-rules article{position:static;width:auto;transform:none}.discourse-center{width:150px;height:150px;margin:0 auto}.unification-layers article:nth-child(n){margin:0}.cost-benefit{grid-template-columns:1fr}.cost-benefit>i{transform:rotate(90deg)}.violence-triangle{grid-template-columns:1fr}.dynamic-summary-section{padding:60px 22px}
}

/* IV단원 추가: 국가·시민·사회 정의 */
.civics-section { background: var(--paper-deep); }
.contract-cards { display:grid;grid-template-columns:repeat(3,1fr);gap:16px; }
.contract-cards article { padding:29px;background:var(--white);border:1px solid var(--line);border-radius:20px; }
.contract-cards article>span { color:var(--blue);font:700 19px Georgia,serif; }.contract-cards small { display:block;margin-top:17px;color:var(--blue);font-size:9px; }.contract-cards h3 { margin:2px 0 14px;font:700 20px Georgia,"Noto Serif KR",serif; }.contract-cards p { min-height:95px;color:var(--ink-soft);font-size:10px; }.contract-cards article>b { display:inline-block;padding:6px 9px;color:var(--navy);background:var(--paper);border-radius:999px;font-size:9px; }
.disobedience-panel { margin-top:24px;padding:34px;display:grid;grid-template-columns:.65fr 1.35fr;gap:30px;color:white;background:var(--navy);border-radius:var(--radius); }
.disobedience-panel .eyebrow { color:#a8c8d8; }.disobedience-panel h3 { margin:0;font:700 26px/1.45 Georgia,"Noto Serif KR",serif; }.disobedience-panel ol { margin:0;padding:0;display:grid;grid-template-columns:1fr 1fr;gap:10px;list-style:none; }.disobedience-panel li { padding:13px;display:grid;grid-template-columns:28px 1fr;column-gap:8px;background:rgba(255,255,255,.08);border-radius:11px; }.disobedience-panel li>span { grid-row:1/3;display:grid;place-items:center;width:26px;height:26px;color:var(--navy);background:white;border-radius:50%;font:700 9px Georgia,serif; }.disobedience-panel li b { font-size:10px; }.disobedience-panel li small { color:#bdced7;font-size:8px; }.rawls-note { grid-column:1/-1;margin:0;padding-top:18px;border-top:1px solid rgba(255,255,255,.18);color:#ccdae1;font-size:10px; }.rawls-note b { color:white; }
.justice-section { background:var(--paper); }
.distribution-criteria { display:grid;grid-template-columns:repeat(3,1fr);gap:14px; }.distribution-criteria article { padding:25px;display:grid;grid-template-columns:55px 1fr;column-gap:15px;background:var(--white);border:1px solid var(--line);border-radius:18px; }.distribution-criteria article>span { grid-row:1/4;display:grid;place-items:center;width:52px;height:52px;color:white;background:var(--coral);border-radius:15px;font:700 18px Georgia,"Noto Serif KR",serif; }.distribution-criteria h3,.distribution-criteria p,.distribution-criteria small { margin:0; }.distribution-criteria h3 { font:700 18px Georgia,"Noto Serif KR",serif; }.distribution-criteria p { font-size:10px; }.distribution-criteria small { color:var(--ink-soft);font-size:8px; }
.justice-duel { margin-top:25px;display:grid;grid-template-columns:1fr 110px 1fr;align-items:center; }.justice-duel>article { min-height:390px;padding:32px;background:var(--white);border-radius:var(--radius);box-shadow:var(--shadow); }.justice-duel article>small { color:var(--coral);font-size:9px; }.justice-duel h3 { margin:0 0 12px;font:700 27px Georgia,"Noto Serif KR",serif; }.veil-symbol,.entitlement-symbol { display:grid;place-items:center;width:72px;height:72px;margin:13px 0;color:white;background:var(--blue);border-radius:50%;font:700 27px Georgia,serif; }.entitlement-symbol { background:var(--coral); }.justice-duel article>p { color:var(--ink-soft);font-size:10px; }.justice-duel ul { margin:18px 0 0;padding:0;list-style:none; }.justice-duel li { padding:7px 0;border-bottom:1px solid var(--line);font-size:9px; }.duel-center { position:relative;z-index:2;text-align:center; }.duel-center span,.duel-center b,.duel-center small { display:block; }.duel-center span { color:var(--coral);font-size:9px;font-weight:800; }.duel-center b { display:grid;place-items:center;width:70px;height:70px;margin:7px auto;color:white;background:var(--ink);border:8px solid var(--paper);border-radius:50%; }.duel-center small { color:var(--ink-soft);font-size:8px; }
.punishment-compare { margin-top:24px;padding:27px;display:grid;grid-template-columns:.6fr 1fr 1fr;gap:18px;align-items:stretch;background:var(--paper-deep);border-radius:20px; }.punishment-compare>div { padding:14px; }.punishment-compare h3 { margin:0;font:700 22px Georgia,"Noto Serif KR",serif; }.punishment-compare article { padding:20px;background:var(--white);border-radius:14px; }.punishment-compare small,.punishment-compare b { display:block; }.punishment-compare small { color:var(--coral);font-size:9px; }.punishment-compare b { margin:9px 0;font:700 13px Georgia,"Noto Serif KR",serif; }.punishment-compare p { margin:0;color:var(--ink-soft);font-size:9px; }
@media(max-width:760px){.contract-cards,.distribution-criteria{grid-template-columns:1fr}.contract-cards p{min-height:auto}.disobedience-panel{grid-template-columns:1fr;padding:26px}.disobedience-panel ol{grid-template-columns:1fr}.justice-duel{grid-template-columns:1fr}.duel-center{margin:-5px 0}.punishment-compare{grid-template-columns:1fr}}

.detail-entry { float:right; position:relative; z-index:2; padding:8px 13px; color:var(--navy); background:var(--white); border:1px solid var(--line); border-radius:999px; text-decoration:none; font-size:10px; font-weight:800; }
.lesson-detail-layout{max-width:1450px;margin:auto;display:grid;grid-template-columns:230px minmax(0,1120px);gap:48px;padding:0 30px}.lesson-toc{position:sticky;top:94px;align-self:start;max-height:calc(100vh - 120px);margin-top:58px;padding:22px;background:var(--white);border:1px solid var(--line);border-radius:18px;overflow:auto}.detail-anchor{scroll-margin-top:105px}
.detail-main { min-width:0; padding:0 0 90px; }
.detail-hero { padding:80px 0 55px; border-bottom:1px solid var(--line); }
.detail-hero>a { color:var(--ink-soft); font-size:11px; }.detail-hero>p { margin:32px 0 5px; color:var(--coral); font-weight:800; }.detail-hero h1 { font-size:clamp(42px,6vw,72px); }.detail-hero>span { display:inline-block; margin-top:24px; padding:7px 12px; color:var(--ink-soft); background:var(--white); border-radius:999px; font-size:10px; }
.detail-block { padding:70px 0; border-bottom:1px solid var(--line); }.detail-block h2,.trap-block h2 { margin:0 0 28px; font:700 30px Georgia,"Noto Serif KR",serif; }.detail-concepts { display:grid; grid-template-columns:repeat(2,1fr); gap:14px; }.detail-concepts article { min-height:140px; padding:25px; background:var(--white); border:1px solid var(--line); border-radius:18px; }.detail-concepts b { color:var(--navy); font:700 16px Georgia,"Noto Serif KR",serif; }.detail-concepts p { margin:9px 0 0; color:var(--ink-soft); font-size:11px; }
.trap-block { margin:70px 0; padding:32px; color:white; background:var(--navy); border-radius:22px; }.trap-block h2 { font-size:24px; }.trap-block p { margin:10px 0; display:flex; gap:12px; color:#d6e0e5; font-size:11px; }.trap-block p span { display:grid; place-items:center; min-width:25px; height:25px; color:var(--navy); background:white; border-radius:50%; font-weight:900; }
.detail-next { padding:30px; background:var(--paper-deep); border-radius:18px; }.detail-next b { color:var(--coral); }.detail-next p { color:var(--ink-soft); font-size:11px; }.detail-next a { color:var(--navy); font-size:11px; font-weight:800; }
.detail-hero>small { display:block; min-height:20px; margin-top:12px; color:var(--green); font-size:10px; font-weight:800; }
.source-study,.case-study { margin-top:70px; padding:34px; border-radius:22px; }.source-study { background:var(--paper-deep); }.source-study h2,.case-study h2 { margin:0 0 25px; font:700 26px/1.45 Georgia,"Noto Serif KR",serif; }.source-study>div { display:grid; grid-template-columns:1fr 1fr; gap:14px; }.source-study article { padding:22px; background:var(--white); border-radius:15px; }.source-study small { color:var(--coral); font-weight:800; }.source-study p,.case-study p { color:var(--ink-soft); font-size:11px; }
.case-study { color:white; background:var(--green); }.case-study .eyebrow { color:#c9dfd8; }.case-study textarea { width:100%; padding:16px; resize:vertical; color:var(--ink); background:rgba(255,255,255,.94); border:0; border-radius:13px; outline:none; }.case-study>span { display:block; min-height:18px; margin-top:6px; color:#d3e5df; font-size:9px; text-align:right; }
.detail-quiz { max-width:760px; margin:70px auto; }.detail-quiz h3 { min-height:auto; }.detail-next { display:flex; align-items:center; gap:20px; }.detail-next>div { flex:1; }.detail-next p { margin:3px 0; }.detail-next button { padding:10px 16px; color:white; background:var(--navy); border:0; border-radius:10px; cursor:pointer; font-size:10px; }.detail-next button.completed { background:var(--green); }
@media(max-width:1000px){.lesson-detail-layout{grid-template-columns:190px minmax(0,1fr);gap:25px;padding:0 22px}.lesson-toc{padding:16px}}
@media(max-width:760px){.lesson-detail-layout{display:block;padding:0}.lesson-toc{position:sticky;top:68px;z-index:8;max-height:none;margin:0;padding:10px 18px;display:flex;gap:6px;background:color-mix(in srgb,var(--white) 94%,transparent);border:0;border-bottom:1px solid var(--line);border-radius:0;overflow-x:auto;backdrop-filter:blur(10px)}.lesson-toc .toc-title,.lesson-toc .toc-divider,.lesson-toc .toc-sections,.lesson-toc .toc-back{display:none}.lesson-toc .toc-siblings{margin:0;display:flex;gap:6px}.lesson-toc .toc-siblings a{min-width:max-content;padding:8px 11px;display:block;background:var(--paper);font-size:9px}.lesson-toc .toc-siblings a span{display:inline-grid;margin-right:5px}.detail-main{padding:0 20px 70px}.detail-anchor{scroll-margin-top:126px}.detail-hero{padding-top:55px}.detail-concepts{grid-template-columns:1fr}.detail-entry{float:none;display:inline-block;margin-bottom:20px}}
@media(max-width:760px){.source-study>div{grid-template-columns:1fr}.source-study,.case-study{padding:24px}.detail-next{display:block}.detail-next button{margin:12px 0}}

/* 학습 현황 대시보드 */
.dashboard-mark{background:var(--green)}.dashboard-main{max-width:1280px;margin:auto;padding:0 42px 100px}.dashboard-hero{padding:76px 0 48px}.dashboard-hero h1{margin:0;font-size:clamp(46px,6vw,78px)}.dashboard-hero>p:last-child{color:var(--ink-soft)}
.progress-overview{padding:35px;display:grid;grid-template-columns:190px 1fr 280px;align-items:center;gap:38px;background:var(--white);border:1px solid var(--line);border-radius:28px;box-shadow:var(--shadow)}.progress-ring{--progress:0deg;width:170px;height:170px;padding:14px;background:conic-gradient(var(--green) var(--progress),var(--paper-deep) 0);border-radius:50%}.progress-ring>div{display:grid;place-items:center;align-content:center;width:100%;height:100%;background:var(--white);border-radius:50%}.progress-ring b,.progress-ring span{display:block}.progress-ring b{font:700 34px Georgia,serif}.progress-ring span{color:var(--ink-soft);font-size:9px}.progress-copy h2{margin:0;font:700 27px Georgia,"Noto Serif KR",serif}.progress-copy p:not(.eyebrow){color:var(--ink-soft);font-size:11px}.progress-copy a{color:var(--green);font-size:11px;font-weight:800}.stat-cards{display:grid;grid-template-columns:1fr 1fr;gap:10px}.stat-cards article{padding:19px;background:var(--paper);border-radius:15px}.stat-cards small,.stat-cards b,.stat-cards span{display:block}.stat-cards small{color:var(--ink-soft);font-size:8px}.stat-cards b{display:inline;font:700 28px Georgia,serif}.stat-cards span{display:inline;margin-left:3px;font-size:9px}
.dashboard-section{padding-top:86px}.dashboard-heading{display:flex;justify-content:space-between;align-items:end;margin-bottom:26px}.dashboard-heading h2{margin:0;font:700 31px Georgia,"Noto Serif KR",serif}.dashboard-heading button{padding:8px 12px;color:var(--ink-soft);background:transparent;border:1px solid var(--line);border-radius:999px;cursor:pointer;font-size:9px}.unit-progress-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.unit-progress-grid article{padding:24px;background:var(--white);border:1px solid var(--line);border-radius:19px}.unit-progress-grid article>div:first-child{display:flex;justify-content:space-between}.unit-progress-grid article>div:first-child span{color:var(--green);font:700 17px Georgia,serif}.unit-progress-grid article>div:first-child small{color:var(--ink-soft)}.unit-progress-grid h3{margin:13px 0;font:700 16px Georgia,"Noto Serif KR",serif}.mini-progress{height:4px;background:var(--paper-deep);border-radius:5px;overflow:hidden}.mini-progress i{display:block;height:100%;background:var(--green)}.unit-exam-score{display:inline-block;margin-top:11px;color:var(--coral);font-size:8px;font-weight:800;text-decoration:none}.unit-progress-grid ul{margin:17px 0 0;padding:0;list-style:none}.unit-progress-grid li{display:flex;justify-content:space-between;padding:7px 0;border-bottom:1px solid var(--line);font-size:9px}.unit-progress-grid li a{color:var(--ink-soft);text-decoration:none}.unit-progress-grid li.done a,.unit-progress-grid li.done span{color:var(--green);font-weight:800}
.wrong-section{margin-top:85px;padding:55px;background:var(--paper-deep);border-radius:28px}.wrong-list{display:grid;gap:10px}.wrong-list article{padding:18px 21px;display:grid;grid-template-columns:75px 1fr auto;align-items:center;gap:18px;background:var(--white);border-radius:15px}.wrong-list article>span{color:var(--coral);font-size:9px;font-weight:800}.wrong-list small{color:var(--ink-soft);font-size:8px}.wrong-list h3{margin:2px 0;font:700 13px Georgia,"Noto Serif KR",serif}.wrong-list p{margin:0;color:var(--ink-soft);font-size:8px}.wrong-list a{color:var(--coral);font-size:9px;font-weight:800;text-decoration:none}.empty-wrong{padding:42px;text-align:center;background:var(--white);border-radius:15px}.empty-wrong p{margin:5px;color:var(--ink-soft);font-size:10px}
@media(max-width:900px){.progress-overview{grid-template-columns:160px 1fr}.stat-cards{grid-column:1/-1}.unit-progress-grid{grid-template-columns:1fr 1fr}}
@media(max-width:760px){.dashboard-link{display:none}.dashboard-main{padding:0 18px 70px}.progress-overview{grid-template-columns:1fr;text-align:center}.progress-ring{margin:auto}.stat-cards{grid-column:auto}.unit-progress-grid{grid-template-columns:1fr}.wrong-section{padding:25px;margin-top:55px}.wrong-list article{grid-template-columns:1fr}.dashboard-heading{display:block}.dashboard-heading button{margin-top:12px}}

/* 소단원 학습 */
.sublesson-index{padding:66px 0;border-bottom:1px solid var(--line)}
.subsection-heading h2{margin:0;font:700 30px/1.35 Georgia,"Noto Serif KR",serif}.subsection-heading>p:last-child{color:var(--ink-soft);font-size:11px}
.sublesson-nav-grid{margin-top:25px;display:grid;grid-template-columns:1fr 1fr;gap:13px}.sublesson-nav-grid>a{padding:20px;display:grid;grid-template-columns:42px 1fr auto;align-items:center;gap:15px;color:var(--ink);background:var(--white);border:1px solid var(--line);border-radius:16px;text-decoration:none;transition:.2s}.sublesson-nav-grid>a:hover{border-color:var(--coral);transform:translateY(-2px)}.sublesson-nav-grid>a>span{display:grid;place-items:center;width:38px;height:38px;color:white;background:var(--coral);border-radius:12px;font:700 12px Georgia,serif}.sublesson-nav-grid small{color:var(--coral);font-size:8px}.sublesson-nav-grid h3{margin:2px 0;font:700 15px Georgia,"Noto Serif KR",serif}.sublesson-nav-grid p{margin:5px 0 0;color:var(--ink-soft);font-size:9px}.sublesson-nav-grid>a>b{color:var(--coral);font-size:9px;white-space:nowrap}.sublesson-nav-grid>a.done{border-color:var(--green)}.sublesson-nav-grid>a.done>span{background:var(--green)}.sublesson-nav-grid>a.done>b{color:var(--green)}
.sublesson-mark{background:var(--coral);font-size:13px}.sublesson-layout{max-width:1370px;margin:auto;display:grid;grid-template-columns:230px minmax(0,1040px);gap:48px;padding:0 30px}.sublesson-main{min-width:0;padding:0 0 100px}.sublesson-toc{position:sticky;top:94px;align-self:start;max-height:calc(100vh - 120px);margin-top:58px;padding:22px;background:var(--white);border:1px solid var(--line);border-radius:18px;overflow:auto}.toc-title small,.toc-title b{display:block}.toc-title small{color:var(--coral);font-size:8px;font-weight:800}.toc-title b{margin-top:3px;font:700 17px Georgia,"Noto Serif KR",serif}.toc-siblings,.toc-sections{display:grid;gap:4px}.toc-siblings{margin-top:17px}.toc-siblings a{padding:10px;display:grid;grid-template-columns:22px 1fr;align-items:start;gap:8px;color:var(--ink-soft);border-radius:9px;text-decoration:none;font-size:9px;line-height:1.55}.toc-siblings a span{display:grid;place-items:center;width:20px;height:20px;color:var(--coral);background:var(--paper);border-radius:6px;font:700 8px Georgia,serif}.toc-siblings a:hover,.toc-siblings a.active{color:var(--ink);background:var(--paper-deep);font-weight:800}.toc-siblings a.active span{color:white;background:var(--coral)}.toc-divider{height:1px;margin:17px 0;background:var(--line)}.toc-sections a{padding:7px 10px;color:var(--ink-soft);border-left:2px solid transparent;text-decoration:none;font-size:9px}.toc-sections a:hover{color:var(--coral);border-left-color:var(--coral)}.toc-back{display:block;margin-top:18px;color:var(--navy);font-size:9px;font-weight:800;text-decoration:none}.sub-anchor{scroll-margin-top:105px}.sublesson-hero{padding:78px 0 58px;border-bottom:1px solid var(--line)}.sublesson-hero>a{color:var(--ink-soft);font-size:10px;text-decoration:none}.sublesson-hero>p{margin:35px 0 7px;color:var(--coral);font-size:11px;font-weight:800}.sublesson-hero h1{max-width:850px;margin:0;font-size:clamp(39px,6vw,68px)}.sublesson-goal{margin-top:28px;padding:20px 24px;display:grid;grid-template-columns:90px 1fr;align-items:center;background:var(--white);border-left:4px solid var(--coral);border-radius:0 15px 15px 0}.sublesson-goal small{color:var(--coral);font-size:9px;font-weight:800}.sublesson-goal b{font:700 14px/1.6 Georgia,"Noto Serif KR",serif}.sublesson-hero>span{display:block;min-height:20px;margin-top:12px;color:var(--green);font-size:10px;font-weight:800}
.sublesson-section{padding:72px 0}.sub-concept-grid{margin-top:27px;display:grid;gap:12px}.sub-concept-grid article{padding:24px;display:grid;grid-template-columns:55px 1fr;gap:18px;background:var(--white);border:1px solid var(--line);border-radius:17px}.sub-concept-grid article>span{color:var(--coral);font:700 18px Georgia,serif}.sub-concept-grid h3{margin:0;font:700 19px Georgia,"Noto Serif KR",serif}.sub-concept-grid p{margin:7px 0 0;color:var(--ink-soft);font-size:11px;line-height:1.8}
.sub-compare{padding:32px;display:grid;grid-template-columns:150px 1fr;align-items:center;gap:28px;color:white;background:var(--navy);border-radius:22px}.sub-compare>div{display:grid;grid-template-columns:52px 1fr;align-items:center;gap:10px}.sub-compare span{display:grid;place-items:center;width:52px;height:52px;color:var(--navy);background:white;border-radius:50%;font:700 14px Georgia,serif}.sub-compare small{color:#b9ced9;font-size:9px}.sub-compare p{margin:0;font:700 15px/1.8 Georgia,"Noto Serif KR",serif}
.sub-trap{margin-top:22px;padding:30px;display:grid;grid-template-columns:65px 1fr;gap:22px;background:#faece7;border:1px solid #efd1c8;border-radius:22px}.sub-trap>span{display:grid;place-items:center;width:60px;height:60px;color:white;background:var(--coral);border-radius:18px;font:700 25px Georgia,serif}.sub-trap small{color:var(--coral);font-size:9px;font-weight:800}.sub-trap h2{margin:4px 0 8px;font:700 19px/1.55 Georgia,"Noto Serif KR",serif}.sub-trap p{margin:0;color:var(--ink-soft);font-size:9px}.sub-quiz-section{padding:72px 0}.sub-quiz-grid{margin-top:25px;display:grid;gap:18px}.sublesson-quiz{max-width:none;margin:0}.sublesson-quiz blockquote{margin:0 0 20px;padding:18px 20px;color:var(--ink);background:var(--paper-deep);border-left:3px solid var(--coral);border-radius:0 12px 12px 0;font:700 12px/1.75 Georgia,"Noto Serif KR",serif}.sublesson-quiz .feedback{min-height:22px}
.sub-note{margin:70px 0;padding:32px;background:var(--paper-deep);border-radius:22px}.sub-note h2{margin:0 0 18px;font:700 24px Georgia,"Noto Serif KR",serif}.sub-note textarea{width:100%;padding:16px;resize:vertical;color:var(--ink);background:var(--white);border:1px solid var(--line);border-radius:12px;outline:none}.sub-note>small{display:block;min-height:17px;margin-top:5px;color:var(--green);text-align:right}.sub-complete{margin-top:0}
body.dark .sub-trap{background:#4b342f;border-color:#66473f}
@media(max-width:1000px){.sublesson-layout{grid-template-columns:190px minmax(0,1fr);gap:25px;padding:0 22px}.sublesson-toc{padding:16px}}
.toc-siblings a.done{color:var(--green);font-weight:800}.toc-siblings a.done span,.toc-siblings a.active.done span{color:white;background:var(--green)}
@media(max-width:760px){.sublesson-layout{display:block;padding:0}.sublesson-toc{position:sticky;top:68px;z-index:8;max-height:none;margin:0;padding:10px 18px;display:flex;gap:6px;background:color-mix(in srgb,var(--white) 94%,transparent);border:0;border-bottom:1px solid var(--line);border-radius:0;overflow-x:auto;backdrop-filter:blur(10px)}.toc-title,.toc-divider,.toc-sections,.toc-back{display:none}.toc-siblings{margin:0;display:flex;gap:6px}.toc-siblings a{min-width:max-content;padding:8px 11px;display:block;background:var(--paper);font-size:9px}.toc-siblings a span{display:inline-grid;margin-right:5px}.sublesson-main{padding:0 19px 70px}.sub-anchor{scroll-margin-top:126px}.sublesson-hero{padding-top:54px}.sublesson-goal{grid-template-columns:1fr;gap:6px}.sublesson-nav-grid{grid-template-columns:1fr}.sublesson-nav-grid>a{grid-template-columns:40px 1fr}.sublesson-nav-grid>a>b{grid-column:2}.sub-compare{grid-template-columns:1fr}.sub-trap{grid-template-columns:48px 1fr;padding:22px}.sub-trap>span{width:45px;height:45px}.sub-concept-grid article{grid-template-columns:38px 1fr;padding:20px}}

/* 대단원 종합문제 */
.unit-exam-cta{padding:65px clamp(38px,6vw,96px);display:grid;grid-template-columns:1fr auto;align-items:center;gap:45px;color:white;background:var(--navy)}.unit-exam-cta .eyebrow{color:#a8c8d8}.unit-exam-cta h2{margin:0;font:700 clamp(29px,3.4vw,48px)/1.3 Georgia,"Noto Serif KR",serif}.unit-exam-cta>div>p:last-child{max-width:610px;color:#c4d3db;font-size:11px}.unit-exam-actions{display:grid;grid-template-columns:1fr 1fr;gap:12px}.unit-exam-actions a{min-width:145px;padding:24px;display:grid;color:white;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.2);border-radius:18px;text-decoration:none;transition:.2s}.unit-exam-actions a:hover{background:rgba(255,255,255,.14);transform:translateY(-2px)}.unit-exam-actions a.exam-all{color:var(--navy);background:white}.unit-exam-actions b{font:700 30px Georgia,serif}.unit-exam-actions span{font-size:9px;font-weight:800}
.exam-mark{background:var(--coral)}.unit-exam-main{max-width:1120px;margin:auto;padding:0 34px 100px}.exam-hero{padding:75px 0 50px;border-bottom:1px solid var(--line)}.exam-hero>a{color:var(--ink-soft);font-size:10px;text-decoration:none}.exam-hero>p{margin:33px 0 7px;color:var(--coral);font-weight:800}.exam-hero h1{margin:0;font-size:clamp(42px,6vw,70px)}.exam-meta{margin-top:25px;display:flex;flex-wrap:wrap;gap:8px}.exam-meta span{padding:7px 11px;color:var(--ink-soft);background:var(--white);border:1px solid var(--line);border-radius:999px;font-size:9px}.exam-workspace{padding-top:55px}.exam-progress{display:grid;grid-template-columns:150px 1fr;align-items:center;gap:20px}.exam-progress>div{display:flex;justify-content:space-between}.exam-progress b{font:700 15px Georgia,serif}.exam-progress span{color:var(--ink-soft);font-size:9px}.exam-progress>i{height:6px;background:var(--paper-deep);border-radius:8px;overflow:hidden}.exam-progress>i span{display:block;height:100%;background:var(--coral);transition:.2s}.exam-question-card{margin-top:20px;padding:38px;background:var(--white);border:1px solid var(--line);border-radius:25px;box-shadow:var(--shadow)}.exam-question-top{display:flex;gap:14px;align-items:center}.exam-question-top>span{display:grid;place-items:center;width:46px;height:46px;color:white;background:var(--coral);border-radius:14px;font:700 14px Georgia,serif}.exam-question-top small,.exam-question-top b{display:block}.exam-question-top small{color:var(--ink-soft);font-size:8px}.exam-question-top b{margin-top:2px;color:var(--coral);font-size:10px}.exam-question-card h2{margin:30px 0 22px;font:700 25px/1.5 Georgia,"Noto Serif KR",serif}.exam-question-card blockquote,.exam-result-item blockquote{margin:0 0 22px;padding:18px 20px;color:var(--ink);background:var(--paper-deep);border-left:3px solid var(--coral);border-radius:0 12px 12px 0;font:700 11px/1.75 Georgia,"Noto Serif KR",serif}.exam-options{display:grid;gap:10px}.exam-options button{padding:14px 16px;display:flex;align-items:center;gap:12px;color:var(--ink);background:transparent;border:1px solid var(--line);border-radius:12px;text-align:left;cursor:pointer}.exam-options button span{display:grid;place-items:center;min-width:28px;height:28px;background:var(--paper);border-radius:50%;font:700 10px Georgia,serif}.exam-options button:hover,.exam-options button.selected{border-color:var(--coral);background:#faece7}.exam-options button.selected span{color:white;background:var(--coral)}.exam-controls{margin-top:28px;display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:18px}.exam-controls>button{padding:10px 16px;color:white;background:var(--navy);border:0;border-radius:10px;cursor:pointer;font-size:9px}.exam-controls>button:disabled{opacity:.35;cursor:not-allowed}.exam-jumps{display:flex;flex-wrap:wrap;justify-content:center;gap:5px}.exam-jumps button{width:25px;height:25px;padding:0;color:var(--ink-soft);background:var(--paper);border:0;border-radius:7px;cursor:pointer;font-size:8px}.exam-jumps button.answered{color:var(--green);font-weight:900}.exam-jumps button.current{color:white;background:var(--navy)}.exam-empty{padding:80px;text-align:center;background:var(--white);border-radius:22px}.exam-empty b{font:700 24px Georgia,"Noto Serif KR",serif}.exam-empty p{color:var(--ink-soft)}.exam-empty a{color:var(--coral);font-weight:800}
.exam-result-hero{padding:70px 0;text-align:center}.exam-result-hero>p:first-child{color:var(--coral);font-size:10px;font-weight:800}.score-circle{width:150px;height:150px;margin:22px auto;display:grid;place-items:center;align-content:center;color:white;background:var(--green);border:12px solid color-mix(in srgb,var(--green) 15%,var(--paper));border-radius:50%}.score-circle b{font:700 51px/1 Georgia,serif}.score-circle span{font-size:9px}.exam-result-hero h1{margin:0;font-size:clamp(34px,5vw,58px)}.exam-result-hero>p:not(:first-child){color:var(--ink-soft)}.result-actions{margin-top:25px;display:flex;justify-content:center;flex-wrap:wrap;gap:8px}.result-actions button,.result-actions a{padding:11px 16px;color:white;background:var(--navy);border:0;border-radius:10px;text-decoration:none;cursor:pointer;font-size:9px;font-weight:800}.result-actions button{background:var(--coral)}.exam-results{padding-top:30px}.exam-result-item{margin-top:14px;padding:26px;display:grid;grid-template-columns:75px 1fr;gap:18px;background:var(--white);border:1px solid var(--line);border-radius:18px}.result-status span{display:grid;place-items:center;width:45px;height:45px;color:white;background:var(--green);border-radius:50%;font-weight:900}.exam-result-item.wrong .result-status span{background:var(--coral)}.result-status small{display:block;margin-top:8px;color:var(--ink-soft);font-size:8px}.exam-result-item h3{margin:0 0 15px;font:700 17px/1.55 Georgia,"Noto Serif KR",serif}.exam-result-item>div>p{margin:5px 0;color:var(--ink-soft);font-size:10px}.exam-result-item>div>p b{display:inline-block;min-width:50px;color:var(--ink)}.result-explanation{margin-top:15px;padding:16px;background:var(--paper-deep);border-radius:12px}.result-explanation>b{color:var(--coral);font-size:9px}.result-explanation p{margin:5px 0 0;font-size:10px}.exam-result-item footer{margin-top:14px;padding:0;display:flex;justify-content:space-between;background:transparent;border:0}.exam-result-item footer span{color:var(--ink-soft);font-size:8px}.exam-result-item footer a{color:var(--green);font-size:9px;font-weight:800;text-decoration:none}
body.dark .exam-options button.selected{background:#4b342f}
@media(max-width:760px){.unit-exam-cta{grid-template-columns:1fr;padding:55px 22px}.unit-exam-actions{width:100%}.unit-exam-actions a{min-width:0}.unit-exam-main{padding:0 18px 70px}.exam-hero{padding-top:50px}.exam-progress{grid-template-columns:1fr}.exam-question-card{padding:23px}.exam-question-card h2{font-size:20px}.exam-controls{grid-template-columns:1fr 1fr}.exam-jumps{grid-column:1/-1;grid-row:1}.exam-result-item{grid-template-columns:1fr}.exam-result-item footer{display:grid;gap:6px}}

/* 전체 종합문제 허브 */
.sidebar nav a.exam-nav-link{margin-top:14px;padding-top:14px;border-top:1px solid var(--line)}.sidebar nav a.exam-nav-link span{color:var(--coral)}.sidebar nav a.exam-nav-link.active{color:var(--coral);background:#faece7}.exam-side-note{background:var(--coral)}.exam-hub-main{min-width:0}.exam-hub-hero{padding:78px clamp(38px,6vw,96px);background:linear-gradient(135deg,var(--paper) 0%,var(--paper-deep) 100%)}.exam-hub-hero h1{max-width:800px;margin:0;font-size:clamp(45px,6vw,78px)}.exam-hub-hero>p:not(.eyebrow){max-width:720px;color:var(--ink-soft);font-size:13px}.hub-stats{margin-top:35px;display:grid;grid-template-columns:repeat(4,1fr);gap:12px}.hub-stats article{padding:20px;background:var(--white);border:1px solid var(--line);border-radius:16px}.hub-stats b,.hub-stats span{display:block}.hub-stats b{font:700 30px Georgia,serif}.hub-stats span{color:var(--ink-soft);font-size:8px}.all-exam-modes,.unit-exam-list{padding:85px clamp(38px,6vw,96px)}.all-exam-modes{background:var(--white)}.all-exam-modes h2{margin:0 0 28px;font:700 32px Georgia,"Noto Serif KR",serif}.mode-card-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.mode-card-grid>a{padding:24px;display:grid;grid-template-columns:55px 1fr;gap:16px;color:var(--ink);background:var(--paper);border:1px solid var(--line);border-radius:18px;text-decoration:none;transition:.2s}.mode-card-grid>a:hover{border-color:var(--coral);transform:translateY(-2px)}.mode-card-grid>a>span{display:grid;place-items:center;width:52px;height:52px;color:white;background:var(--navy);border-radius:15px;font:700 17px Georgia,"Noto Serif KR",serif}.mode-card-grid small,.mode-card-grid b{display:block}.mode-card-grid small{color:var(--coral);font-size:8px}.mode-card-grid b{margin:2px 0;font:700 15px Georgia,"Noto Serif KR",serif}.mode-card-grid p{margin:5px 0 0;color:var(--ink-soft);font-size:8px}.mode-card-grid .full-mode{color:white;background:var(--navy)}.mode-card-grid .full-mode>span{color:var(--navy);background:white}.mode-card-grid .full-mode p{color:#bfd0d9}.mode-card-grid .wrong-mode>span{background:var(--coral)}.unit-exam-list{background:var(--paper)}.hub-unit-grid{margin-top:26px;display:grid;grid-template-columns:repeat(3,1fr);gap:15px}.hub-unit-grid article{padding:24px;background:var(--white);border:1px solid var(--line);border-radius:18px}.hub-unit-top{display:flex;justify-content:space-between}.hub-unit-top span{color:var(--coral);font:700 18px Georgia,serif}.hub-unit-top small{color:var(--ink-soft);font-size:8px}.hub-unit-grid h3{min-height:48px;margin:13px 0;font:700 17px/1.4 Georgia,"Noto Serif KR",serif}.hub-unit-stats{padding:10px 0;display:flex;gap:15px;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.hub-unit-stats span{color:var(--ink-soft);font-size:8px}.hub-unit-grid article>div:last-child{margin-top:15px;display:flex;gap:7px}.hub-unit-grid article>div:last-child a{padding:8px 11px;color:white;background:var(--navy);border-radius:8px;text-decoration:none;font-size:8px;font-weight:800}.hub-unit-grid article>div:last-child a:last-child{color:var(--coral);background:#faece7}
body.dark .sidebar nav a.exam-nav-link.active,.dark .hub-unit-grid article>div:last-child a:last-child{background:#4b342f}
@media(max-width:900px){.mode-card-grid,.hub-unit-grid{grid-template-columns:1fr 1fr}}
@media(max-width:760px){.exam-hub-hero,.all-exam-modes,.unit-exam-list{padding:58px 22px}.hub-stats{grid-template-columns:1fr 1fr}.mode-card-grid,.hub-unit-grid{grid-template-columns:1fr}.hub-unit-grid h3{min-height:auto}}

/* 서·논술형 연습 */
.written-mark{background:var(--green)}.written-main{max-width:1080px;margin:auto;padding:0 34px 100px}.written-hero{padding:75px 0 55px;border-bottom:1px solid var(--line)}.written-hero h1{margin:8px 0 18px;font-size:clamp(42px,6vw,70px)}.written-hero>p:not(.eyebrow){max-width:700px;color:var(--ink-soft);font-size:12px}.written-progress{margin-top:28px;max-width:430px;padding:18px 20px;background:var(--white);border:1px solid var(--line);border-radius:16px}.written-progress b{font:700 24px Georgia,serif}.written-progress>span{margin-left:8px;color:var(--ink-soft);font-size:9px}.written-progress i{display:block;height:6px;margin-top:12px;background:var(--paper-deep);border-radius:10px;overflow:hidden}.written-progress i span{display:block;height:100%;background:var(--green)}.written-list{display:grid;gap:24px;padding-top:48px}.written-card{padding:34px;background:var(--white);border:1px solid var(--line);border-radius:24px;box-shadow:var(--shadow);scroll-margin-top:20px}.written-card.completed{border-color:var(--green)}.written-card-head{display:grid;grid-template-columns:auto 1fr auto;gap:14px;align-items:center}.written-card-head>span{display:grid;place-items:center;width:46px;height:46px;color:white;background:var(--green);border-radius:14px;font:700 14px Georgia,serif}.written-card-head small,.written-card-head h2{display:block;margin:0}.written-card-head small{color:var(--ink-soft);font-size:8px}.written-card-head h2{margin-top:3px;font:700 18px Georgia,"Noto Serif KR",serif}.written-card-head>b{color:var(--green);font-size:9px}.written-card>h3{margin:28px 0 18px;font:700 23px/1.55 Georgia,"Noto Serif KR",serif}.written-card blockquote{margin:0 0 24px;padding:18px 20px;background:var(--paper-deep);border-left:3px solid var(--green);border-radius:0 12px 12px 0;font:700 11px/1.75 Georgia,"Noto Serif KR",serif}.written-answer-label{display:flex;justify-content:space-between;margin-bottom:8px;font-weight:900;font-size:10px}.written-answer-label small{color:var(--ink-soft);font-weight:500}.written-card textarea{width:100%;box-sizing:border-box;padding:18px;color:var(--ink);background:var(--paper);border:1px solid var(--line);border-radius:14px;resize:vertical;font:500 12px/1.8 inherit}.written-card textarea:focus{outline:2px solid var(--green);outline-offset:2px}.written-save-state{margin-top:7px;color:var(--ink-soft);font-size:8px;text-align:right}.rubric-toggle{margin-top:18px;padding:11px 15px;color:white;background:var(--navy);border:0;border-radius:10px;cursor:pointer;font-size:9px;font-weight:800}.written-rubric{margin-top:20px;padding:24px;background:var(--paper);border-radius:16px}.written-rubric h4{margin:3px 0 16px;font:700 18px Georgia,"Noto Serif KR",serif}.rubric-checks{display:grid;grid-template-columns:1fr 1fr;gap:9px}.rubric-checks label{display:flex;gap:9px;align-items:flex-start;padding:12px;background:var(--white);border:1px solid var(--line);border-radius:10px;font-size:9px;line-height:1.6;cursor:pointer}.rubric-checks input{margin-top:3px;accent-color:var(--green)}.written-model{margin-top:18px;padding:18px 20px;background:var(--white);border-left:3px solid var(--coral);border-radius:0 12px 12px 0}.written-model b{color:var(--coral);font-size:9px}.written-model p{margin:7px 0 0;font-size:10px;line-height:1.75}.rubric-result{margin-top:18px;display:flex;justify-content:space-between;align-items:center}.rubric-result span{font-size:9px}.rubric-result span b{font:700 20px Georgia,serif}.rubric-result button{padding:10px 14px;color:white;background:var(--green);border:0;border-radius:9px;cursor:pointer;font-size:9px;font-weight:800}.rubric-result button:disabled{opacity:.35;cursor:not-allowed}body.dark .written-card textarea,body.dark .written-rubric{background:#18232b}body.dark .rubric-checks label,body.dark .written-model{background:#21313a}@media(max-width:700px){.written-main{padding:0 20px 70px}.written-card{padding:23px}.written-card-head{grid-template-columns:auto 1fr}.written-card-head>b{grid-column:2}.rubric-checks{grid-template-columns:1fr}.written-answer-label{display:block}.written-answer-label small{display:block;margin-top:3px}}

/* 개인 강점·약점과 반복 오답 분석 */
.learning-analysis{margin-top:80px;padding:50px;background:var(--white);border:1px solid var(--line);border-radius:28px}.learning-analysis .dashboard-heading{margin-bottom:28px}.learning-analysis .dashboard-heading>span{color:var(--ink-soft);font-size:9px}.analysis-empty{padding:42px;text-align:center;background:var(--paper-deep);border-radius:17px}.analysis-empty b{font:700 19px Georgia,"Noto Serif KR",serif}.analysis-empty p{color:var(--ink-soft);font-size:10px}.analysis-empty a{color:var(--coral);font-size:9px;font-weight:800}.analysis-summary{display:grid;grid-template-columns:1.3fr 1fr 1fr;gap:14px}.analysis-summary>article{padding:24px;background:var(--paper);border-radius:18px}.analysis-summary small{color:var(--ink-soft);font-size:8px}.analysis-summary h3{margin:4px 0 11px;font:700 18px/1.4 Georgia,"Noto Serif KR",serif}.analysis-summary p{color:var(--ink-soft);font-size:9px}.analysis-overview>div{margin-top:17px;display:flex;flex-wrap:wrap;gap:8px}.analysis-overview>div span{padding:7px 9px;background:var(--white);border-radius:8px;font-size:8px}.analysis-overview>div b{color:var(--green)}.strength-card{border-top:4px solid var(--green)}.weakness-card{border-top:4px solid var(--coral)}.strength-card>b,.weakness-card>b{font:700 35px Georgia,serif}.strength-card>a,.weakness-card>a{color:var(--green);font-size:8px;font-weight:800;text-decoration:none}.weakness-card>a{color:var(--coral)}.analysis-block-heading{margin-top:45px;display:flex;justify-content:space-between;align-items:end}.analysis-block-heading small{color:var(--green);font-size:8px;font-weight:800}.analysis-block-heading h3{margin:3px 0;font:700 22px Georgia,"Noto Serif KR",serif}.type-metric-grid{margin-top:15px;display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.type-metric-grid article{padding:20px;background:var(--paper);border-radius:15px}.type-metric-grid article>div{display:flex;justify-content:space-between}.type-metric-grid article>div span{font-size:10px;font-weight:800}.type-metric-grid article>div b{font:700 20px Georgia,serif}.type-metric-grid i,.frequency-bar{display:block;height:5px;margin-top:12px;background:var(--paper-deep);border-radius:6px;overflow:hidden}.type-metric-grid i span{display:block;height:100%;background:var(--blue)}.type-metric-grid article.strong i span{background:var(--green)}.type-metric-grid article.weak i span{background:var(--coral)}.type-metric-grid p{margin:8px 0 0;color:var(--ink-soft);font-size:8px}.mastery-legend{display:flex;gap:5px}.mastery-legend span{padding:5px 7px;color:var(--ink-soft);background:var(--paper);border-radius:6px;font-size:7px}.mastery-legend .strong{color:var(--green)}.mastery-legend .weak{color:var(--coral)}.mastery-legend .normal{color:var(--blue)}.mastery-grid{margin-top:15px;display:grid;grid-template-columns:repeat(4,1fr);gap:8px}.mastery-grid a{min-height:105px;padding:13px;display:grid;align-content:start;color:var(--ink);background:var(--paper);border:1px solid transparent;border-radius:12px;text-decoration:none}.mastery-grid small{color:var(--ink-soft);font-size:7px}.mastery-grid b{margin:6px 0;font:700 10px/1.45 Georgia,"Noto Serif KR",serif}.mastery-grid span{margin-top:auto;color:var(--ink-soft);font-size:7px}.mastery-grid a.strong{background:#edf6f2;border-color:#a7cdbf}.mastery-grid a.strong span{color:var(--green)}.mastery-grid a.weak{background:#faece7;border-color:#e7b4a7}.mastery-grid a.weak span{color:var(--coral)}.mastery-grid a.normal{background:#eef4f7;border-color:#b5cdd8}.mastery-grid a.normal span{color:var(--blue)}.mastery-grid a.pending{border-style:dashed}
.frequent-section{margin-top:80px}.frequent-section .dashboard-heading>a{color:var(--coral);font-size:9px;font-weight:800;text-decoration:none}.frequent-wrong-list{display:grid;gap:10px}.frequent-wrong-list>article{padding:18px 21px;display:grid;grid-template-columns:35px 1fr auto;align-items:center;gap:17px;background:var(--white);border:1px solid var(--line);border-radius:15px}.frequent-wrong-list>article>span{display:grid;place-items:center;width:32px;height:32px;color:white;background:var(--coral);border-radius:10px;font:700 10px Georgia,serif}.frequent-wrong-list>article.resolved>span{background:var(--green)}.frequent-meta{display:flex;gap:8px;align-items:center}.frequent-meta b{color:var(--coral);font-size:8px}.frequent-wrong-list article.resolved .frequent-meta b{color:var(--green)}.frequent-meta small{padding:3px 6px;color:var(--ink-soft);background:var(--paper);border-radius:5px;font-size:7px}.frequent-wrong-list h3{margin:5px 0 2px;font:700 13px Georgia,"Noto Serif KR",serif}.frequent-wrong-list p{margin:0;color:var(--ink-soft);font-size:8px}.frequency-bar{max-width:330px;height:3px;margin:9px 0 5px}.frequency-bar i{display:block;height:100%;background:var(--coral)}.frequent-wrong-list article.resolved .frequency-bar i{background:var(--green)}.frequent-wrong-list div>small{color:var(--ink-soft);font-size:7px}.frequent-actions{display:grid;gap:5px}.frequent-actions a{padding:7px 9px;color:white;background:var(--navy);border-radius:7px;text-align:center;text-decoration:none;font-size:7px;font-weight:800}.frequent-actions a:last-child{color:var(--green);background:var(--paper)}
body.dark .mastery-grid a.strong{background:#28473d;border-color:#3c6b5c}.dark .mastery-grid a.weak{background:#4b342f;border-color:#6d493f}.dark .mastery-grid a.normal{background:#293f4a;border-color:#3d6171}
@media(max-width:1000px){.analysis-summary{grid-template-columns:1fr 1fr}.analysis-overview{grid-column:1/-1}.mastery-grid{grid-template-columns:repeat(3,1fr)}}
@media(max-width:760px){.learning-analysis{margin-top:55px;padding:25px}.analysis-summary,.type-metric-grid{grid-template-columns:1fr}.analysis-overview{grid-column:auto}.analysis-block-heading{display:block}.mastery-legend{margin-top:10px;flex-wrap:wrap}.mastery-grid{grid-template-columns:1fr 1fr}.frequent-wrong-list>article{grid-template-columns:32px 1fr}.frequent-actions{grid-column:2;grid-template-columns:1fr 1fr}.frequent-section .dashboard-heading>a{display:inline-block;margin-top:10px}}

@media(max-width:760px){.lesson-toc.mobile-nav-open,.sublesson-toc.mobile-nav-open{display:block;padding:24px;overflow-y:auto}.lesson-toc.mobile-nav-open .toc-title,.lesson-toc.mobile-nav-open .toc-divider,.lesson-toc.mobile-nav-open .toc-sections,.lesson-toc.mobile-nav-open .toc-back,.sublesson-toc.mobile-nav-open .toc-title,.sublesson-toc.mobile-nav-open .toc-divider,.sublesson-toc.mobile-nav-open .toc-sections,.sublesson-toc.mobile-nav-open .toc-back{display:block}.lesson-toc.mobile-nav-open .toc-siblings,.sublesson-toc.mobile-nav-open .toc-siblings{display:grid;margin-top:17px;gap:4px}.lesson-toc.mobile-nav-open .toc-siblings a,.sublesson-toc.mobile-nav-open .toc-siblings a{min-width:0;padding:10px;display:grid;background:transparent;font-size:9px}.lesson-toc.mobile-nav-open .toc-sections,.sublesson-toc.mobile-nav-open .toc-sections{display:grid}.lesson-toc.mobile-nav-open .toc-back,.sublesson-toc.mobile-nav-open .toc-back{margin-top:18px}}
