/* 대학 교과서 전용: tb.css(고등학교 교과서와 같은 바탕) 위에 얹는다 */

/* 학과 색 */
.tree [data-track="common"] { --tc: var(--forest); }
.tree [data-track="math"] { --tc: #c98a12; }
.tree [data-track="phy"] { --tc: #4f7fd6; }
.tree [data-track="chem"] { --tc: #c4553c; }
.tree [data-track="astro"] { --tc: #6b5bc4; }
.tree [data-track="stat"] { --tc: #2f9a8f; }
.tree [data-track="ee"] { --tc: #b0468a; }
.tree [data-track="me"] { --tc: #6f7a3a; }
[data-theme="dark"] .tree [data-track="math"] { --tc: #e0aa3e; }
[data-theme="dark"] .tree [data-track="phy"] { --tc: #7fa6ea; }
[data-theme="dark"] .tree [data-track="chem"] { --tc: #e58a73; }
[data-theme="dark"] .tree [data-track="astro"] { --tc: #a397ec; }
[data-theme="dark"] .tree [data-track="stat"] { --tc: #5cc8bc; }
[data-theme="dark"] .tree [data-track="ee"] { --tc: #e07fbd; }
[data-theme="dark"] .tree [data-track="me"] { --tc: #aab86a; }


/* 배치도 */
.tree-head h2 .mono { font-weight: 500; letter-spacing: 0; margin-left: 6px; }
body[data-view="home"] .tree-band { grid-template-columns: 1fr; }
.tree-math > div { grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); }
.tbox .u-flag { color: var(--ink-3); }
.tbox.dim-box { opacity: .35; }

/* 과목 머리 */
.course { scroll-margin-top: 120px; }
.course-head .small b { font-weight: 600; margin-right: 4px; }
.course-head .small { line-height: 1.5; }
.u-tys { display: flex; flex-wrap: wrap; gap: 4px; }
button.link { font: inherit; font-size: 13.5px; background: none; border: 0; padding: 0; color: var(--forest); cursor: pointer; text-decoration: underline; text-underline-offset: 3px; }

/* 과목 본문: 대단원 제목은 늘 보이고, 성취기준은 펼치거나 검색할 때만 */
.u-body { min-width: 0; }
.u-desc { display: none; margin-bottom: 18px; padding: 12px 14px; background: var(--paper-2); border: 1px solid var(--rule); color: var(--ink-2); }
.u-desc p + p { margin-top: 6px; }
.u-desc .mono { display: inline-block; margin-right: 8px; font-size: 11px; color: var(--forest); }
.chapter h3 .u-src { margin-left: auto; font-size: 10.5px; font-weight: 400; color: var(--ink-3); }
.u-el { display: none; margin-top: 8px; color: var(--ink-3); line-height: 1.5; }
.u-stds { display: none; }
.u-stds > li { display: grid; grid-template-columns: 38px 1fr auto; gap: 6px; align-items: baseline; padding: 7px 0; border-bottom: 1px solid var(--rule); font-size: 14px; line-height: 1.45; }
.u-stds > li .mono:first-child { color: var(--ink-3); font-size: 11px; }
.course.open .u-desc, body.searching .course.hit .u-desc { display: block; }
.course.open .u-el, .course.open .u-stds,
body.searching .course.hit .u-el, body.searching .course.hit .u-stds { display: block; }
.course.open .u-stds, body.searching .course.hit .u-stds { display: grid; }
body.searching .u-open { display: none; }

/* 공부하는 법 */
.how { padding: 40px 0 12px; border-top: 2px solid var(--ink); margin-top: 24px; }
.how h2 { font-size: clamp(20px, 2.2vw, 26px); font-weight: 800; letter-spacing: -.03em; margin-bottom: 16px; }
.how ol { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 0; border: 1px solid var(--ink); background: var(--card); }
.how li { padding: 12px 14px; border-right: 1px solid var(--rule); border-bottom: 1px solid var(--rule); font-size: 13.5px; line-height: 1.5; color: var(--ink-2); }
.how li b { display: block; font-size: 15px; color: var(--ink); margin: 2px 0 4px; }
.how li .mono { color: var(--forest); font-size: 11px; }
.how a { color: var(--forest); }

@media (max-width: 560px) { .top .u-hs { display: none; } }
@media (max-width: 720px) {
  .course { grid-template-columns: 1fr; }
  .u-stds > li { grid-template-columns: 34px 1fr; }
  .u-stds > li .ty { grid-column: 2; justify-self: start; }
}

/* 배치도 상자의 진도 막대와 "이어서 공부하기"는 qcard.css에도 있다 */
.tbox .lp { display: block; height: 3px; margin-top: 6px; background: var(--rule); }
.tbox .lp i { display: block; height: 100%; width: calc(var(--p, 0) * 100%); background: var(--tc); }
/* ═════════ 메인: 소개 아래 '이어서 공부하기' 한 줄 (학습 기록이 있을 때만) ═════════ */
.dash-go { margin: 0 0 22px; }
.dash-go:empty { display: none; }
.dash-next { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 2px 14px; align-items: baseline; padding: 12px 18px; background: var(--card); border: 1px solid var(--forest);  text-decoration: none; color: var(--ink); }
.dash-next:hover b { text-decoration: underline; }
.dash-next .mono { grid-row: 1 / span 2; font-size: 11.5px; color: var(--forest); }
.dash-next b { font-size: 16px; letter-spacing: -.02em; }
.dash-next .small { grid-column: 2; }
@media (max-width: 640px) { .dash-next { grid-template-columns: 1fr; } .dash-next .mono { grid-row: auto; } .dash-next .small { grid-column: 1; } }/* 배치도: 학기마다 한 행(왼쪽 학기 이름, 오른쪽 과목 상자를 같은 폭으로 옆으로) */
.tree-band.sem-rows { display: block; padding: 4px 16px; }
.tree-band.sem-rows > .sem-row { display: grid; grid-template-columns: 96px minmax(0, 1fr); gap: 12px; align-items: start; padding: 10px 0; border-top: 1px solid var(--rule); }
.tree-band.sem-rows > .sem-row:first-child { border-top: 0; }
.tree-band.sem-rows > .sem-row.sem-year { }
.sem-lb { margin: 0; padding-top: 8px; font-size: 12.5px; font-weight: 400; color: var(--ink-3); line-height: 1.35; }
.sem-lb b { display: block; font-size: 14px; font-weight: 800; color: var(--tc); }
/* 과목 상자: 가장 긴 과목 이름(미분적분학과벡터해석심화(1), 15자)도 한 줄에 들어가는 폭 */
.sem-boxes { display: grid; grid-template-columns: repeat(auto-fill, minmax(232px, 256px)); gap: 8px; }
/* 상자 위쪽 줄 앞의 학과 색 점은 쓰지 않는다(색이 없는 학과·교재 전체 보기에서 빈칸으로 보였음) */
.tbox .lv::before { content: none; }
@media (max-width: 640px) {
  .tree-band.sem-rows > .sem-row { grid-template-columns: 1fr; gap: 6px; }
  .sem-lb { padding-top: 0; } .sem-lb b { display: inline; margin-right: 4px; }
  .sem-boxes { grid-template-columns: repeat(auto-fill, minmax(204px, 1fr)); }
}
/* 메인 소개 옆: 큰 숫자 (여섯 유형 표 대신) */
.q-figs { align-self: end; }
.q-figs dl { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); border-top: 2px solid var(--ink); }
.q-figs dl > div { padding: 14px 4px 12px; border-bottom: 1px solid var(--rule); }
.q-figs dl > div:nth-child(n+4) { border-bottom: 0; }
.q-figs dt { font-family: var(--f-mono); font-size: 11.5px; color: var(--ink-3); }
.q-figs dd { margin: 2px 0 0; font-size: clamp(24px, 2.8vw, 34px); font-weight: 800; letter-spacing: -.03em; line-height: 1.1; color: var(--ink); }
.q-figs dd small { font-size: 13px; font-weight: 600; color: var(--ink-3); letter-spacing: 0; }
.q-figs dl > div:last-child dd { color: var(--forest); }
.q-figs > p { margin-top: 10px; border-top: 1px solid var(--ink); padding-top: 8px; }
.u-path a { color: var(--forest); }
@media (max-width: 640px) { .q-figs dl { grid-template-columns: repeat(2, minmax(0, 1fr)); } .q-figs dl > div:nth-child(n+4) { border-bottom: 1px solid var(--rule); } .q-figs dl > div:nth-child(n+5) { border-bottom: 0; } }
/* 메인 색: 한 화면에 한 학과 색만. 배치도(학기·상자 점·진도 막대)와 고른 탭, 링크 밑줄에 그 학과 색(--dc).
   QURI 강조색(--forest)은 제목·이어서 공부하기·숫자 하나에만. 유형 배지는 회색으로 둔다 */
body[data-dept="common"] { --dc: var(--forest); }
body[data-dept="math"] { --dc: #c98a12; } body[data-dept="phy"] { --dc: #4f7fd6; } body[data-dept="chem"] { --dc: #c4553c; }
body[data-dept="astro"] { --dc: #6b5bc4; } body[data-dept="stat"] { --dc: #2f9a8f; } body[data-dept="ee"] { --dc: #b0468a; } body[data-dept="me"] { --dc: #6f7a3a; }
[data-theme="dark"] body[data-dept="math"] { --dc: #e0aa3e; } [data-theme="dark"] body[data-dept="phy"] { --dc: #7fa6ea; } [data-theme="dark"] body[data-dept="chem"] { --dc: #e58a73; }
[data-theme="dark"] body[data-dept="astro"] { --dc: #a397ec; } [data-theme="dark"] body[data-dept="stat"] { --dc: #5cc8bc; } [data-theme="dark"] body[data-dept="ee"] { --dc: #e07fbd; } [data-theme="dark"] body[data-dept="me"] { --dc: #aab86a; }
body[data-view="home"] .ty[data-ty] { color: var(--ink-3); }
.tree-head h2 { color: var(--dc, var(--ink)); }
body[data-view="home"] a.link, body[data-view="home"] button.link, .how a, .u-path a, .u-desc a { color: var(--ink); text-decoration: underline; text-decoration-color: currentColor; text-decoration-thickness: 1px; text-underline-offset: 3px; }
body[data-view="home"] a.link:hover, body[data-view="home"] button.link:hover, .how a:hover, .u-path a:hover, .u-desc a:hover { color: var(--dc, var(--forest)); text-decoration-color: currentColor; }
.u-desc .mono { color: var(--dc, var(--forest)); }
.how li .mono, .dash-next .mono { color: var(--forest); }
.dash-next { border-color: var(--rule);  }
.q-figs dl > div:last-child dd { color: var(--forest); }
.course-head h2 a:hover { color: var(--dc, var(--forest)); }/* 보기 범위: 주요 과목만 / 모든 과목 (수강편람에만 있는 과목은 data-extra) */
.tree-head .scope-seg { display: inline-flex; margin-left: auto; border: 1px solid var(--rule); border-radius: 2px; overflow: hidden; }
.tree-head .scope-seg button { font: inherit; font-size: 12.5px; padding: 5px 12px; color: var(--ink-2); background: var(--card); border: 0; cursor: pointer; }
.tree-head .scope-seg button + button { border-left: 1px solid var(--rule); }
.tree-head .scope-seg button[aria-pressed="true"] { color: var(--paper); background: var(--ink); }
.tree-head .scope-seg button[aria-pressed="true"] .dim { color: inherit; opacity: .7; }
body[data-scope="main"] [data-extra] { display: none !important; }
.u-extra { padding: 0 5px; border: 1px solid var(--rule); border-radius: 2px; color: var(--ink-2); }
.tree-band.sem-rows { background: color-mix(in srgb, var(--dc, var(--forest)) 5%, var(--paper-2)); border-color: color-mix(in srgb, var(--dc, var(--forest)) 22%, var(--rule)); }
.sem-boxes .tbox { }

/* 메인 소개(편집형): 왼쪽 큰 제목, 오른쪽 설명과 숫자 */
.intro.a-hero { grid-template-columns: 1.25fr 1fr; align-items: end; }
.intro.a-hero h1 { word-break: keep-all; }
.a-side { display: grid; gap: 22px; }
.a-side > p { margin-top: 0; }
.a-side .q-figs { align-self: auto; }
@media (max-width: 860px) { .intro.a-hero { grid-template-columns: 1fr; } }

/* 과목 목록: 대단원은 한 줄(번호 · 제목 · 진도). 성취기준 문장은 과목 목차에서 */
.u-units { list-style: none; display: grid; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); gap: 0 28px; align-content: start; min-width: 0; }
.u-units .unit a { display: grid; grid-template-columns: 30px minmax(0, 1fr) auto; gap: 8px; align-items: baseline; padding: 9px 0; border-bottom: 1px solid var(--rule); text-decoration: none; color: var(--ink); font-size: 14.5px; line-height: 1.4; }
.u-units .unit a:hover .t { color: var(--dc, var(--forest)); }
.u-units .unit .mono { font-size: 11.5px; color: var(--ink-3); }
.u-units .u-pg { display: inline-flex; align-items: center; gap: 6px; }
.u-units .u-pg .lp { display: inline-block; width: 44px; height: 4px; margin: 0; background: color-mix(in srgb, var(--ink) 10%, transparent); border-radius: 2px; overflow: hidden; }
.u-units .u-pg .lp i { display: block; height: 100%; width: calc(var(--p, 0) * 100%); background: var(--dc, var(--forest)); }
.u-units .unit.done .t::after { content: " ✓"; color: var(--dc, var(--forest)); font-size: 12px; }

/* 학교별 보기: 배치도 위 학교 고르기(보기 범위 단추 옆)와, 과목 목차·절 페이지의 작은 대학 표시 */
.tree-head .tree-ctl { display: inline-flex; flex-wrap: wrap; align-items: center; gap: 8px; margin-left: auto; }
.tree-head .tree-ctl .scope-seg { margin-left: 0; }
.tree-head .tree-ctl:empty { display: none; }
  appearance: none; background-image: linear-gradient(45deg, transparent 50%, var(--ink-3) 50%), linear-gradient(135deg, var(--ink-3) 50%, transparent 50%);
  background-position: right 13px center, right 9px center; background-size: 4px 4px; background-repeat: no-repeat; }

/* ───── 학과 고르기(연세대 고정)와 교재 전체 보기 — js/home.js, js/place.js ───── */
.pick { margin: 8px 0 18px; }
.pick-box { border: 1px solid var(--ink); background: var(--card); padding: 18px 20px; }
.pick-box h2 { font-size: 19px; letter-spacing: -.02em; margin-bottom: 4px; }
.pick-box > p { max-width: 52em; }
.pick-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(170px, 1fr)); gap: 8px; margin: 14px 0 12px; }
.pick-dept { display: grid; gap: 2px; text-align: left; padding: 12px 14px; border: 1px solid var(--rule); border-radius: 2px; background: var(--paper); color: var(--ink); font: inherit; cursor: pointer; }
.pick-dept b { font-size: 15.5px; }
.pick-dept .mono { color: var(--ink-3); }
.pick-dept:hover { border-color: var(--ink); }
.pick-dept[aria-pressed="true"] { border-color: var(--ink); background: var(--paper-2); }
.pick-foot a, .pick-all { color: var(--ink); text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 3px; }
.pick-line { display: flex; flex-wrap: wrap; align-items: baseline; gap: 6px 12px; padding: 10px 0; border-bottom: 1px solid var(--rule); }
.pick-line b { font-size: 17px; }
.pick-line .mono { color: var(--ink-3); font-size: 12px; }
.pick-change { font: inherit; font-size: 13px; padding: 3px 10px; border: 1px solid var(--rule); border-radius: 2px; background: var(--card); color: var(--ink-2); cursor: pointer; }
.pick-change:hover { border-color: var(--ink); color: var(--ink); }
.pick-line .pick-all { margin-left: auto; font-size: 13px; }
.place-chip { font-weight: 600; }
.place-off { margin-left: 8px; color: var(--ink-3); font-size: 11.5px; }
.pool-field { margin: 18px 0 8px; }
.pool-field h3 { font-size: 15px; margin-bottom: 8px; }

/* ───── 촘촘하게(2026-10-20 사용자 피드백): 메인 화면의 여백만 줄인다 ───── */
.intro { padding: clamp(22px, 4vw, 48px) 0 clamp(16px, 2.4vw, 28px); gap: clamp(18px, 3.4vw, 48px); }
.intro h1 { font-size: clamp(30px, 4.2vw, 52px); }
.intro p { margin-top: 12px; }
.q-figs dl > div { padding: 9px 4px 8px; }
.dash-go { margin: 0 0 14px; }
.pick { margin: 4px 0 12px; }
.pick-box { padding: 14px 16px; }
.pick-grid { margin: 10px 0 8px; }
.tree-band.sem-rows > .sem-row { padding: 7px 0; }
.toolbar { padding: 8px 0; }
.course { padding: 20px 0; }
.course-head p { margin-top: 6px; }
.course-head .count { margin-top: 8px; }
.u-units .unit a { padding: 6px 0; }
.how { padding: 24px 0 8px; margin-top: 16px; }
.how h2 { margin-bottom: 10px; }
.how li { padding: 9px 12px; }
