/* 자동 생성 — build-ipsi-site.mjs. homepage/ipsi/ipsi.css · homepage/member/member.css 를 새 사이트 색으로 다시 묶은 것. 직접 고치지 말 것 */
:root{--l-ink-d:#0E1A33;--l-gold-d:#1E43A0;--l-mut-d:#5E687D;--l-body-d:#44506A;--l-ip-bd:#E3E8F0;--l-cream:#F5F7FA;--l-cream-hi:#FFFFFF;--l-line-l:#E3E8F0;
  --l-ink:#FFFFFF;--l-ink2:#C9D4EE;--l-mut:#AFC0E6;--l-line:rgba(255,255,255,.16);--l-line2:rgba(255,255,255,.22);--l-acc:#8FB4FF;--l-bg2:#0B1636}
/* 깊이와 통찰 입시연구소 (ADR-075 · 지시서 11번 가독성 기준)
   구조: 홈과 같은 검정 머리(.ip-hero) + 아이보리 읽기 영역(.ip-read). 회원 화면(member.css)과 같은 인상.
   - 본문 17px · 줄간격 1.75 · 글 한 줄 42em 이하 · 대비 AA(아이보리 위 --l-body-d 8:1)
   - 수치는 tabular-nums, 단위·기준연도는 수치 바로 옆(<small>)
   - 표는 좁은 화면에서 카드로 바뀐다(.ip-table) — 가로 스크롤 표(.pivot)는 첫 열을 고정한다
   - 장식 애니메이션·그라데이션 차트 없음. 강조색은 골드 하나.
   ⚠️ 본문 한글 폰트는 300·500·700 굵기만 있다(400 은 500 으로 그려진다). */
:root{--l-ip-bd:#E2DCCF;--l-ip-sel:#F3EAD5}
@view-transition{navigation:none}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}

/* ── 머리 ── */
.ip-hero{padding:26px 0 54px}
.ip-eyebrow{font-size:12.5px;font-weight:500;letter-spacing:.14em;color:var(--l-acc)}
.ip-title{margin-top:16px;font-family:var(--font);font-weight:700;font-size:clamp(32px,4.6vw,52px);line-height:1.2;letter-spacing:-.03em;color:var(--l-ink)}
.ip-hero .ip-lead{margin-top:18px;max-width:38em;font-size:17px;font-weight:300;line-height:1.8;color:var(--l-ink2)}
.ip-meta{margin-top:14px;font-size:15px;color:var(--l-ink2)}
.ip-switch{display:inline-flex;align-items:center;gap:12px;margin-top:24px;font-size:15px;color:var(--l-ink2)}
.ip-switch select,.ip-pick select{min-height:48px;padding:0 42px 0 16px;border-radius:12px;border:1px solid rgba(127,161,240,.45);background:#0B1636;color:var(--l-ink);font:inherit;font-size:16px;appearance:none;background-image:linear-gradient(45deg,transparent 50%,var(--l-acc) 50%),linear-gradient(135deg,var(--l-acc) 50%,transparent 50%);background-position:calc(100% - 22px) 21px,calc(100% - 16px) 21px;background-size:6px 6px;background-repeat:no-repeat;cursor:pointer}
.ip-switch select:focus-visible,.ip-pick select:focus-visible{outline:2px solid var(--l-acc);outline-offset:2px}

/* ── 검정 섹션(메인·목록) ── */
.ip-sec{padding:54px 0 64px;border-top:1px solid var(--l-line2)}
.ip-sec.alt{background:var(--l-bg2)}
.ip-sec-head{display:flex;align-items:baseline;justify-content:space-between;gap:16px;flex-wrap:wrap}
.ip-h2{font-family:var(--font);font-size:clamp(22px,2.6vw,28px);font-weight:700;letter-spacing:-.02em;line-height:1.35;color:var(--l-ink)}
.ip-desc{margin-top:10px;max-width:42em;font-size:16px;line-height:1.75;color:var(--l-ink2)}
.ip-desc a,.ip-more{color:var(--l-acc);font-weight:500;border-bottom:1px solid rgba(127,161,240,.45)}
.ip-more{display:inline-flex;align-items:center;min-height:44px;border-bottom:0;font-size:15.5px}
.ip-empty{margin-top:24px;padding:22px;border:1px dashed rgba(127,161,240,.4);border-radius:16px;color:var(--l-ink2);font-size:16px;line-height:1.7}

.ip-filter{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:22px}
.ip-filter button{min-height:44px;padding:0 18px;border-radius:100px;border:1px solid var(--l-line);background:transparent;color:var(--l-ink2);font:inherit;font-size:15px;cursor:pointer}
.ip-filter button.on{border-color:var(--l-acc);color:var(--l-ink);background:rgba(127,161,240,.14);font-weight:700}

.ip-sc-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(280px,100%),1fr));gap:14px;margin-top:24px}
.ip-sc{position:relative;display:flex;flex-direction:column;gap:6px;min-height:150px;padding:22px 22px 54px;border-radius:18px;background:var(--l-cream-hi);color:var(--l-body-d);box-shadow:0 1px 0 rgba(127,161,240,.5) inset;transition:transform .2s}
a.ip-sc:hover{transform:translateY(-2px)}
.ip-sc.off{background:#18181B;color:var(--l-ink2);box-shadow:none;border:1px solid var(--l-line)}
.ip-sc-meta{font-size:13.5px;color:var(--l-mut-d)}
.ip-sc.off .ip-sc-meta{color:var(--l-mut)}
.ip-sc-name{font-family:var(--font);font-size:22px;font-weight:700;color:var(--l-ink-d);letter-spacing:-.02em}
.ip-sc.off .ip-sc-name{color:var(--l-ink)}
.ip-sc-tag{font-size:15.5px;line-height:1.6}
.ip-badge{position:absolute;left:22px;bottom:18px;font-style:normal;font-size:13.5px;font-weight:700;color:var(--l-mut)}
.ip-badge.on{color:var(--l-gold-d)}

.ip-cols{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(240px,100%),1fr));gap:14px}
.ip-tile{display:flex;flex-direction:column;gap:8px;min-height:150px;padding:24px;border-radius:18px;border:1px solid rgba(127,161,240,.3);color:var(--l-ink2);font-size:15.5px;line-height:1.6;transition:border-color .2s}
a.ip-tile:hover{border-color:var(--l-acc)}
.ip-tile b{font-size:18px;color:var(--l-ink);font-weight:700}
.ip-tile em{margin-top:auto;font-style:normal;font-size:14.5px;font-weight:700;color:var(--l-acc)}
.ip-tile.off{border-style:dashed;border-color:var(--l-line)}
.ip-tile.off em{color:var(--l-mut)}

/* ── 아이보리 읽기 영역 ── */
.ip-read{background:var(--l-cream);color:var(--l-body-d);padding:44px 0 72px;border-top:1px solid var(--l-line-l)}
.ip-read-grid{display:grid;grid-template-columns:200px minmax(0,1fr);gap:48px;align-items:start}
.ip-toc{position:sticky;top:96px;font-size:15px}
.ip-toc p{font-size:12.5px;letter-spacing:.14em;color:var(--l-gold-d);font-weight:700}
.ip-toc ol{list-style:none;margin:10px 0 0;padding:0;border-left:1px solid var(--l-line-l)}
.ip-toc a{display:flex;align-items:center;min-height:40px;padding-left:14px;margin-left:-1px;border-left:2px solid transparent;color:var(--l-body-d)}
.ip-toc a:hover{color:var(--l-ink-d)}
.ip-toc a[aria-current]{border-left-color:var(--l-gold-d);color:var(--l-ink-d);font-weight:700}
.ip-body{min-width:0;max-width:760px;font-size:17px;line-height:1.75;font-weight:500}
.ip-body.wide{max-width:none}
.ip-read .ip-h2{color:var(--l-ink-d)}
.ip-read .ip-eyebrow{color:var(--l-gold-d)}   /* 밝은 바탕에서는 진한 골드(홈 --l-acc 는 아이보리 위 대비 미달) */
.ip-read .ip-desc{color:var(--l-body-d)}
.ip-read .ip-more{color:var(--l-gold-d)}
.ip-h3{margin:26px 0 10px;font-size:17.5px;font-weight:700;color:var(--l-ink-d)}
.ip-part{padding-top:34px;margin-top:34px;border-top:1px solid var(--l-line-l);scroll-margin-top:90px}
.ip-part:first-of-type{border-top:0;margin-top:8px;padding-top:0}
.ip-text{max-width:42em;white-space:pre-line}
.ip-kv{margin-top:14px}.ip-kv b{margin-right:12px;color:var(--l-ink-d)}
.ip-summary{margin-bottom:10px;padding:22px 24px;border-radius:16px;background:var(--l-cream-hi);border-left:3px solid var(--l-gold-d);scroll-margin-top:90px}
.ip-summary ol{margin:10px 0 0;padding-left:22px}
.ip-summary li{margin:6px 0;color:var(--l-ink-d)}
.ip-pending{padding:18px 20px;border-radius:14px;background:var(--l-cream-hi);border:1px dashed #CFC8B8;color:var(--l-body-d);font-size:16px}
.ip-src{margin-top:10px;font-size:14px;line-height:1.6;color:var(--l-mut-d)}
.ip-notes{margin:10px 0 0;padding-left:20px;font-size:14.5px;color:var(--l-body-d)}
.na{color:var(--l-mut-d)}   /* #8A857A 는 흰 바탕 3.6:1 로 AA 미달이었다 */

/* 표 */
.ip-table{width:100%;margin-top:14px;border-collapse:collapse;font-size:16px;background:#fff;border-radius:12px;overflow:hidden}
.ip-table th,.ip-table td{padding:12px 14px;border-bottom:1px solid var(--l-ip-bd);text-align:left;vertical-align:top}
.ip-table thead th{background:#F1ECE1;color:var(--l-ink-d);font-size:14.5px;font-weight:700}
.ip-table tbody th{color:var(--l-ink-d);font-weight:700}
.ip-table .num{font-variant-numeric:tabular-nums;white-space:nowrap}
.ip-table small,.ip-exam small{margin-left:4px;font-size:13.5px;color:var(--l-mut-d);font-weight:500}
.ip-table small.blk{display:block;margin:4px 0 0}
.ip-table th small.blk{margin-left:0}
.ip-table a{color:var(--l-ink-d);text-decoration:underline;text-underline-offset:3px}
.ip-scroll:focus-visible{outline:2px solid var(--l-gold-d);outline-offset:2px}
.ip-scroll{margin-top:14px;overflow-x:auto;border-radius:12px;-webkit-overflow-scrolling:touch}
.ip-scroll .ip-table{margin-top:0;min-width:520px}
.ip-table.sticky th:first-child{position:sticky;left:0;z-index:1;background:#fff;box-shadow:1px 0 0 var(--l-ip-bd)}
.ip-table.sticky thead th:first-child{background:#F1ECE1}

/* 그래프 */
.ip-chart{margin:16px 0 4px;padding:12px;border-radius:12px;background:#fff}
.ip-chart svg{display:block;width:100%;height:auto}
.ip-chart .ax{stroke:#CFC8B8;stroke-width:1}
.ip-chart .ln{fill:none;stroke:var(--l-gold-d);stroke-width:2.5}
.ip-chart .pt{fill:#fff;stroke:var(--l-gold-d);stroke-width:2.5}
.ip-chart .vl{font-size:14px;font-weight:700;fill:var(--l-ink-d);text-anchor:middle;font-variant-numeric:tabular-nums}
.ip-chart .yr{font-size:13px;fill:var(--l-mut-d);text-anchor:middle}
.ip-chart figcaption{margin-top:4px;font-size:13.5px;color:var(--l-mut-d)}

/* 시험 분석 */
.ip-exam dl{margin:0}
.ip-exam dl>div{display:grid;grid-template-columns:150px minmax(0,1fr);gap:14px;padding:12px 0;border-bottom:1px solid var(--l-ip-bd)}
.ip-exam dt{font-weight:700;color:var(--l-ink-d)}
.ip-exam dd{margin:0}
.ip-exam dd small{display:block;margin:4px 0 0}
.ip-fold{margin-bottom:12px;border-radius:14px;background:#fff;border:1px solid var(--l-ip-bd)}
.ip-fold summary{display:flex;align-items:center;justify-content:space-between;min-height:56px;padding:0 20px;cursor:pointer;list-style:none}
.ip-fold summary::-webkit-details-marker{display:none}
.ip-fold summary .ip-fold-h{font-size:18px;font-weight:700;color:var(--l-ink-d);font-family:inherit;letter-spacing:0}
.ip-fold summary span{font-size:14.5px;color:var(--l-mut-d)}
.ip-fold-in{padding:0 20px 18px}
.ip-pick{display:inline-flex;align-items:center;gap:10px;margin:0 12px 12px 0;font-size:15px;color:var(--l-body-d)}
.ip-read .ip-pick select{background-color:#fff;color:var(--l-ink-d);border-color:#8A857A;background-image:linear-gradient(45deg,transparent 50%,var(--l-ink-d) 50%),linear-gradient(135deg,var(--l-ink-d) 50%,transparent 50%)}
.ip-picks{margin-bottom:6px}
.ip-h4{margin:18px 0 8px;font-size:15.5px;font-weight:700;color:var(--l-ink-d)}
.ip-approx{font-weight:700;color:var(--l-ink-d)}

/* 성취도 분포 — A~E 누적 막대. 한 색상 계열(골드→회색), 그라데이션·애니메이션 없음. 숫자는 막대 아래 글로 함께 */
:root{--l-g-a:#14306B;--l-g-b:#2856D6;--l-g-c:#7FA1F0;--l-g-d:#C9D6F6;--l-g-e:#8A94A8}
.ip-ach-list{list-style:none;margin:8px 0 0;padding:0}
.ip-ach{padding:14px 16px;margin-bottom:8px;border-radius:12px;background:#fff;border:1px solid var(--l-ip-bd)}
.ip-ach-h{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:4px 12px}
.ip-ach-h b{font-size:16.5px;color:var(--l-ink-d)}
.ip-ach-h a{color:var(--l-ink-d);text-decoration:underline;text-underline-offset:3px}
.ip-ach-h span{font-size:14px;color:var(--l-mut-d);font-variant-numeric:tabular-nums}
.ip-bar5{display:flex;height:14px;margin-top:10px;border-radius:4px;overflow:hidden;background:#E9EEF6}
.ip-bar5 i{display:block;height:100%;border-right:1px solid #fff}
.ip-bar5 i:last-child{border-right:0}
.ga{background:var(--l-g-a)}.gb{background:var(--l-g-b)}.gc{background:var(--l-g-c)}.gd{background:var(--l-g-d)}.ge{background:var(--l-g-e)}
.ip-ach-v{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:4px;margin-top:8px;font-size:14.5px;font-variant-numeric:tabular-nums;color:var(--l-body-d)}
.ip-ach-v span{white-space:nowrap}
.ip-ach-v b{margin-right:4px;color:var(--l-ink-d)}
.ip-legend .u{margin-left:auto}
.ip-legend{display:flex;flex-wrap:wrap;gap:6px 16px;margin-top:12px;font-size:14px;color:var(--l-mut-d)}
.ip-legend span{display:inline-flex;align-items:center;gap:6px}
.ip-legend i{width:14px;height:14px;border-radius:3px}

/* 평가 계획 */
.ip-plan-sum{margin-top:2px;font-size:15.5px;color:var(--l-body-d)}
.ip-plan-sum b{color:var(--l-ink-d);font-variant-numeric:tabular-nums}

/* 교육과정 — 선택 묶음 상자 + 과목 칩 */
.ip-pick-box{margin-top:10px;padding:14px 16px;border-radius:12px;background:var(--l-cream-hi);border:1px solid var(--l-ip-bd)}
.ip-pick-h{font-size:15px;font-weight:700;color:var(--l-ink-d)}
.ip-chips{display:flex;flex-wrap:wrap;gap:8px;list-style:none;margin:10px 0 0;padding:0}
.ip-chips li{padding:6px 12px;border-radius:100px;background:#fff;border:1px solid var(--l-ip-bd);font-size:15px;color:var(--l-ink-d)}
.ip-chips small{margin-left:6px;font-size:13px;color:var(--l-mut-d);font-variant-numeric:tabular-nums}

/* 잠금 안내 */
.ip-lock{padding:32px 30px;border-radius:20px;background:var(--l-cream-hi);box-shadow:0 1px 0 rgba(127,161,240,.6) inset,0 20px 50px -30px rgba(0,0,0,.35)}
.ip-lock .ip-eyebrow{color:var(--l-gold-d)}
.ip-lock .ip-h2{margin-top:10px;color:var(--l-ink-d)}
.ip-lock-list{margin:18px 0 0;padding:0;list-style:none}
.ip-lock-list li{position:relative;padding:10px 0 10px 26px;border-bottom:1px solid var(--l-ip-bd);color:var(--l-ink-d)}
.ip-lock-list li::before{content:"";position:absolute;left:4px;top:21px;width:10px;height:6px;border-left:2px solid var(--l-gold-d);border-bottom:2px solid var(--l-gold-d);transform:rotate(-45deg)}
.ip-lock-note{margin-top:16px;font-size:15px;color:var(--l-body-d)}
.ip-lock-btns{display:flex;flex-wrap:wrap;gap:10px;margin-top:20px}

/* 버튼 */
.ip-btn{display:inline-flex;align-items:center;justify-content:center;min-height:54px;padding:0 24px;border-radius:14px;font-size:16.5px;font-weight:700;border:1px solid transparent;transition:background .2s,border-color .2s}
.ip-btn.primary{background:var(--l-ink-d);color:#fff}
.ip-btn.primary:hover{background:#000}
.ip-btn.ghost{background:#fff;color:var(--l-ink-d);border-color:#8A857A}
.ip-consult .ip-btn.primary{background:var(--l-acc);color:#0A0A0C}
.ip-consult .ip-btn.primary:hover{background:#D8B876}
.ip-consult .ip-btn.ghost{background:transparent;color:var(--l-ink);border-color:var(--l-line)}

/* 상담 */
.ip-consult{padding:56px 0;background:var(--l-bg2);border-top:1px solid var(--l-line2)}
.ip-consult-in{display:flex;align-items:center;justify-content:space-between;gap:28px;flex-wrap:wrap}
.ip-consult .ip-lead{margin-top:10px;font-size:16px;color:var(--l-ink2)}
.ip-consult-btns{display:flex;flex-wrap:wrap;gap:10px}
.ip-bar{display:none}

/* 자리 표시 */
.ip-skel i{display:block;height:160px;margin-bottom:16px;border-radius:16px;background:linear-gradient(90deg,#EFEBE2 0,#F7F4EC 50%,#EFEBE2 100%);background-size:200% 100%;animation:ipsk 1.4s linear infinite}
@keyframes ipsk{to{background-position:-200% 0}}
@media (prefers-reduced-motion:reduce){.ip-skel i{animation:none}}

/* ── 좁은 화면 ── */
@media(max-width:900px){
  .ip-read-grid{grid-template-columns:minmax(0,1fr);gap:0}
  .ip-toc{position:static;margin-bottom:22px;padding:14px 16px;border-radius:14px;background:var(--l-cream-hi)}
  .ip-toc ol{display:flex;flex-wrap:wrap;gap:4px 14px;border-left:0}
  .ip-toc a{min-height:40px;padding-left:0;border-left:0;text-decoration:underline;text-underline-offset:3px}
  .ip-toc a[aria-current]{text-decoration:none}
}
@media(max-width:640px){
  .ip-hero{padding:18px 0 38px}
  .ip-read{padding:28px 0 56px}
  .ip-lock{padding:26px 20px}
  .ip-lock-btns .ip-btn{flex:1 1 100%}
  .ip-exam dl>div{grid-template-columns:minmax(0,1fr);gap:4px}
  /* 열이 여러 개인 표(가로 스크롤이 아닌 것)는 카드로 */
  /* 칸 이름은 왼쪽에 절대 위치 — flex 로 두면 숫자와 단위(<small>)가 따로 떨어져 "30   %" 가 됐다 */
  .ip-table.card thead{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}
  .ip-table.card,.ip-table.card tbody,.ip-table.card tr{display:block}
  .ip-table.card tr{padding:10px 14px;border-bottom:1px solid var(--l-ip-bd)}
  .ip-table.card th,.ip-table.card td{display:block;position:relative;padding:6px 0 6px 96px;border:0;white-space:normal}
  .ip-table.card [data-k]::before{content:attr(data-k);position:absolute;left:0;top:7px;width:84px;font-size:14px;font-weight:500;color:var(--l-mut-d)}
  .ip-table.card td:empty{display:none}
  .ip-table.compact th,.ip-table.compact td{padding:10px 8px;font-size:15px}
  .ip-table.compact th:first-child,.ip-table.compact td:first-child{padding-left:12px}
  /* 하단 상담 바 */
  .ip-bar{display:flex;position:fixed;left:0;right:0;bottom:0;z-index:50;gap:8px;padding:8px 12px calc(8px + env(safe-area-inset-bottom));background:#0B1636;border-top:1px solid var(--l-line2)}
  .ip-bar a{flex:1;display:flex;align-items:center;justify-content:center;min-height:50px;border-radius:12px;border:1px solid var(--l-line);color:var(--l-ink);font-size:16px;font-weight:700}
  .ip-bar a.on{background:var(--l-acc);border-color:var(--l-acc);color:#0A0A0C}
  body{padding-bottom:74px}
}
.ip-table.cmp tbody th{min-width:7em}
.ip-text+.ip-text{margin-top:10px}
.ip-h2+.ip-fold{margin-top:16px}

/* ════════ 입시연구소 2.0 — 데이터 저널 톤 (ADR-079) ════════
   검정 머리(홈과 같은 인상) 아래로 아이보리 '지면'을 깔고, 그림마다 Fig. 번호·출처를 단다(전문 연구소의 문법).
   색: 골드 하나 + 잉크. 그라데이션 차트·장식 애니메이션 없음. 숫자는 늘 글로도 적는다. */
.ip-sec.light{background:var(--l-cream);color:var(--l-body-d);border-top:1px solid var(--l-line-l)}
.ip-sec.light.alt2{background:#F2EEE4}
.ip-sec.light .ip-h2{color:var(--l-ink-d)}
.ip-sec.light .ip-desc{color:var(--l-body-d)}
.ip-sec.light .ip-src{color:var(--l-mut-d)}

/* 허브 머리 */
.ip-hero.hub{padding:34px 0 64px;background:radial-gradient(70% 60% at 85% 0%,rgba(127,161,240,.14),transparent 70%)}
.ip-title em{font-style:normal;color:var(--l-acc)}
.ip-hero-cta{display:flex;flex-wrap:wrap;gap:10px;margin-top:28px}
.ip-kpi{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1px;margin:38px 0 0;max-width:620px;border:1px solid rgba(127,161,240,.3);border-radius:18px;overflow:hidden;background:rgba(127,161,240,.3)}
.ip-kpi>div{padding:16px 18px;background:#0B1636}
.ip-kpi dt{font-size:12.5px;color:var(--l-ink2);letter-spacing:.02em}
.ip-kpi dd{margin:6px 0 0;font-family:var(--font);font-size:30px;font-weight:700;color:var(--l-ink);font-variant-numeric:tabular-nums;line-height:1.1}
.ip-kpi dd small{margin-left:4px;font-family:var(--font);font-size:13px;font-weight:500;color:var(--l-acc)}

/* 그림(Fig.) */
.ip-fig{margin:0;padding:30px 30px 24px;border-radius:24px;background:#fff;border:1px solid var(--l-ip-bd);box-shadow:0 30px 60px -48px rgba(60,45,15,.45)}
.ip-figcap{display:flex;flex-direction:column;gap:6px;margin-bottom:22px}
.ip-figno{font-size:12px;font-weight:700;letter-spacing:.16em;color:var(--l-gold-d)}
.ip-fig-h{font-family:var(--font);font-size:clamp(21px,2.6vw,27px);font-weight:700;letter-spacing:-.03em;line-height:1.3;color:var(--l-ink-d)}
.ip-fignote{margin-top:18px}

/* Fig.01 200점 누적 막대 — 교과(골드 계열) · 비교과(잉크 계열) */
.ip-stack{display:flex;height:58px;border-radius:12px;overflow:hidden;gap:2px;background:#fff}
.ip-stack span{display:flex;align-items:center;justify-content:center;min-width:0}
.ip-stack b{font-size:14px;font-weight:700;color:#fff;font-variant-numeric:tabular-nums;overflow:hidden}
.s1{background:#7FA1F0}.s2{background:#8C6A2A}.s3{background:#5E4414}.s4{background:#C9A86A}.s5{background:#3B3F4A}.s6{background:#5D626E}.s7{background:#6B707B}
.ip-stack .s1 b,.ip-stack .s4 b{color:#3A2A0C}
.ip-stack-legend{list-style:none;margin:16px 0 0;padding:0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px 16px;font-size:14.5px;color:var(--l-body-d)}
.ip-stack-legend li{display:flex;align-items:center;gap:8px}
.ip-stack-legend i{width:12px;height:12px;border-radius:3px;flex:none}
.ip-stack-legend b{margin-left:auto;color:var(--l-ink-d);font-variant-numeric:tabular-nums}
.ip-facts{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-top:24px}
.ip-facts>div{padding:18px;border-radius:16px;background:var(--l-cream-hi);border:1px solid var(--l-ip-bd)}
.ip-facts b{display:block;font-family:var(--font);font-size:26px;font-weight:700;color:var(--l-gold-d);letter-spacing:-.03em}
.ip-facts span{display:block;margin-top:6px;font-size:14.5px;line-height:1.65;color:var(--l-body-d)}

/* 계산기로 가는 띠 */
.ip-calc-cta{display:flex;align-items:center;gap:18px;margin-top:22px;padding:22px 26px;border-radius:20px;background:#0B1636;color:var(--l-ink);border:1px solid rgba(127,161,240,.45);transition:transform .2s}
.ip-calc-cta:hover{transform:translateY(-2px)}
.ip-calc-cta b{display:block;font-size:19px;font-weight:700}
.ip-calc-cta em{display:block;margin-top:6px;font-style:normal;font-size:14.5px;line-height:1.6;color:var(--l-ink2)}
.ip-calc-cta i{margin-left:auto;flex:none;display:grid;place-items:center;width:48px;height:48px;border-radius:50%;background:var(--l-acc);color:#0A0A0C;font-style:normal;font-size:20px;font-weight:700}

/* Fig.02 지도 — 핀·이름표는 HTML(글자 크기 고정), 배경·선만 SVG */
.ip-map-wrap{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(0,1fr);gap:22px;align-items:start}
.ip-map{position:relative;aspect-ratio:640/440;border-radius:18px;background:#F6F1E6;border:1px solid var(--l-ip-bd);overflow:hidden}
.ip-map svg{position:absolute;inset:0;width:100%;height:100%}
.ip-map .mg{fill:none;stroke:rgba(60,45,15,.07);stroke-width:1}
.ip-map .ml{stroke:rgba(123,95,38,.45);stroke-width:1.5;stroke-dasharray:4 5;vector-effect:non-scaling-stroke}
.ip-map .mp,.ip-map .ma{position:absolute;display:flex;align-items:center;gap:6px;white-space:nowrap}
.ip-map .mp i{flex:none;width:16px;height:16px;border-radius:50%;background:#1A1A1F;border:3px solid #E9D3A3;box-shadow:0 2px 6px rgba(0,0,0,.25)}
.ip-map .mp span,.ip-map .ma span{font-size:13.5px;font-weight:700;color:var(--l-ink-d);background:rgba(255,255,255,.9);padding:2px 7px;border-radius:7px}
.ip-map .mp.r{transform:translate(-8px,-50%)}
.ip-map .mp.l{flex-direction:row-reverse;transform:translate(calc(-100% + 8px),-50%)}
.ip-map .mp.b{flex-direction:column;transform:translate(-50%,-8px)}
.ip-map .ma{flex-direction:column-reverse;transform:translate(-50%,calc(-100% + 11px))}
.ip-map .ma i{flex:none;width:22px;height:22px;border-radius:7px;background:var(--l-acc);transform:rotate(45deg);box-shadow:0 0 0 4px rgba(127,161,240,.25)}
.ip-map .ma span{background:#0B1636;color:#F3DFAE}
.ip-dist{list-style:none;margin:0;padding:0}
.ip-dist li a{display:flex;align-items:baseline;gap:10px;min-height:48px;padding:12px 4px;border-bottom:1px solid var(--l-ip-bd);color:var(--l-ink-d)}
.ip-dist b{font-size:16.5px}
.ip-dist span{font-size:13.5px;color:var(--l-mut-d)}
.ip-dist em{margin-left:auto;font-style:normal;font-weight:700;font-variant-numeric:tabular-nums;color:var(--l-gold-d)}

/* Fig.03 공시 대시보드 — 지표 네 칸, 칸마다 순위 막대 */
.ip-panels{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
.ip-panel{padding:20px 20px 14px;border-radius:18px;background:var(--l-cream-hi);border:1px solid var(--l-ip-bd)}
.ip-panel-h{font-size:17px;font-weight:700;color:var(--l-ink-d)}
.ip-panel-h small{margin-left:6px;font-size:13px;font-weight:500;color:var(--l-mut-d)}
.ip-rank{list-style:none;margin:12px 0 0;padding:0;display:flex;flex-direction:column;gap:8px}
.ip-rank li{display:grid;grid-template-columns:62px minmax(0,1fr) 64px;align-items:center;gap:10px;font-size:14.5px}
.ip-rank a{display:inline-flex;align-items:center;min-height:28px;color:var(--l-ink-d);font-weight:700}
.ip-rank-bar{height:12px;border-radius:6px;background:#EAE3D3;overflow:hidden}
.ip-rank-bar i{display:block;height:100%;border-radius:6px;background:#9C7A36}
.ip-rank li:first-child .ip-rank-bar i{background:var(--l-gold-d)}
.ip-rank b{text-align:right;font-variant-numeric:tabular-nums;color:var(--l-ink-d)}

/* 공시 표지 · 학원 분석 머리 */
.ip-tagpub{display:inline-block;margin-left:10px;vertical-align:middle;font-family:inherit;font-size:12px;font-weight:700;letter-spacing:.04em;color:#2E5E3E;background:#E3EFE6;border-radius:100px;padding:3px 10px}
.ip-col{min-width:0;max-width:760px;font-size:17px;line-height:1.75;font-weight:500}
.ip-member-h{margin-top:46px;padding-top:30px;border-top:2px solid var(--l-gold-d)}
.ip-member-h .ip-eyebrow{color:var(--l-gold-d)}
.ip-member-h+.ip-body{margin-top:8px}
.ip-read .ip-member-h .ip-h2{color:var(--l-ink-d)}

/* 소식 · 채널 */
.ip-news{list-style:none;margin:20px 0 0;padding:0;display:grid;gap:10px}
.ip-news:empty{display:none}
.ip-news a{display:flex;flex-direction:column;gap:4px;padding:16px 18px;border-radius:14px;border:1px solid var(--l-line);color:var(--l-ink)}
.ip-news a:hover{border-color:var(--l-acc)}
.ip-news span{font-size:13px;color:var(--l-acc);font-variant-numeric:tabular-nums}
.ip-news b{font-size:16px;font-weight:500;line-height:1.5}
.ip-ch-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin-top:18px}
.ip-ch-card{display:flex;flex-direction:column;gap:6px;padding:22px;border-radius:18px;border:1px solid rgba(127,161,240,.35);color:var(--l-ink2);font-size:15px}
.ip-ch-card b{font-size:17px;color:var(--l-ink)}
.ip-ch-card em{margin-top:6px;font-style:normal;font-weight:700;color:var(--l-acc)}
.ip-ch-card.insta{background:linear-gradient(135deg,rgba(127,161,240,.08),rgba(255,255,255,.02))}

/* ── 계산기 ── */
.cc-wrap{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:28px;align-items:start}
.cc-wrap[aria-busy=true]{min-height:900px}
.cc{display:flex;flex-direction:column;gap:16px}
.cc-set{margin:0;padding:22px 22px 18px;border:1px solid var(--l-ip-bd);border-radius:20px;background:#fff;position:relative;min-width:0}
.cc-set legend{display:flex;align-items:center;gap:10px;padding:0;font-size:18px;font-weight:700;color:var(--l-ink-d)}
.cc-set legend em{font-style:normal;font-size:13.5px;font-weight:500;color:var(--l-mut-d)}
.cc-no{display:grid;place-items:center;width:28px;height:28px;border-radius:9px;background:var(--l-gold-d);color:#fff;font-size:14px}
.cc-help{margin-top:10px;font-size:14.5px;line-height:1.7;color:var(--l-body-d)}
.cc-help b{color:var(--l-ink-d)}
.cc-sem{margin-top:14px;padding-top:14px;border-top:1px dashed var(--l-ip-bd)}
.cc-sem-h{display:flex;align-items:baseline;gap:10px}
.cc-sem-h b{font-size:15.5px;color:var(--l-ink-d)}
.cc-max{font-size:13px;color:var(--l-mut-d)}
.cc-out{margin-left:auto;font-weight:700;font-variant-numeric:tabular-nums;color:var(--l-gold-d)}
.cc-out.est{color:var(--l-mut-d)}
.cc-out.side{position:absolute;top:22px;right:22px}
.cc-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr)) minmax(0,1.6fr);gap:8px;margin-top:10px}
.cc-grid.three{grid-template-columns:repeat(3,minmax(0,1fr))}
.cc-grid.two{grid-template-columns:repeat(2,minmax(0,1fr))}
.cc-grid.one{grid-template-columns:minmax(0,260px)}
.cc-f{display:flex;flex-direction:column;gap:4px;font-size:12.5px;font-weight:700;color:var(--l-body-d);min-width:0}
.cc-f input,.cc-f select{width:100%;min-width:0;min-height:48px;padding:0 6px;border:1px solid #8A857A;border-radius:12px;background:#FCFBF7;font:inherit;font-size:17px;font-weight:700;color:var(--l-ink-d);text-align:center;font-variant-numeric:tabular-nums}
.cc-f select{text-align:left;font-size:15px;padding:0 10px}
.cc-f input:focus-visible,.cc-f select:focus-visible{outline:2px solid var(--l-gold-d);outline-offset:1px;border-color:var(--l-gold-d)}
.cc-chk{display:flex;align-items:center;gap:10px;margin-top:16px;font-size:14.5px;color:var(--l-body-d);min-height:44px}
.cc-chk input{width:20px;height:20px;accent-color:var(--l-gold-d)}
.cc-sum{position:sticky;top:90px;padding:24px;border-radius:22px;background:#0B1636;color:var(--l-ink);border:1px solid rgba(127,161,240,.45)}
.cc-sum-k{font-size:13px;letter-spacing:.06em;color:var(--l-acc);font-weight:700}
.cc-total{margin-top:6px;font-family:var(--font);font-size:52px;font-weight:700;line-height:1;font-variant-numeric:tabular-nums}
.cc-total small{margin-left:8px;font-family:var(--font);font-size:16px;font-weight:500;color:var(--l-ink2)}
.cc-bars{display:flex;height:12px;margin-top:18px;border-radius:6px;overflow:hidden;background:rgba(255,255,255,.08)}
.cc-bars i{display:block;height:100%}
.p1{background:#C6A15B}.p2{background:#8E7240}.p3{background:#6F7BA0}.p4{background:#5E8C6A}.p5{background:#A7A2C8}
.cc-break{list-style:none;margin:14px 0 0;padding:0;display:flex;flex-direction:column;gap:6px;font-size:14px;color:var(--l-ink2)}
.cc-break li{display:flex;align-items:center;gap:8px}
.cc-break .dot{width:9px;height:9px;border-radius:3px}
.cc-break b{margin-left:auto;color:var(--l-ink);font-variant-numeric:tabular-nums}
.cc-break small{width:42px;text-align:right;color:var(--l-mut)}
.cc-note{margin-top:16px;font-size:13px;line-height:1.65;color:var(--l-ink2)}
.cc-cmp:empty{display:none}
.cc-cmp{margin-top:18px;padding-top:16px;border-top:1px solid var(--l-line)}
.cc-cmp-h{font-size:14px;font-weight:700;color:var(--l-acc)}
.cc-cmp-list{list-style:none;margin:10px 0 0;padding:0;display:flex;flex-direction:column;gap:6px;font-size:14.5px}
.cc-cmp-list li{display:grid;grid-template-columns:1fr auto 64px;gap:8px;align-items:center}
.cc-cmp-list a{color:var(--l-ink);font-weight:700}
.cc-cmp-list span{color:var(--l-ink2);font-size:13px}
.cc-cmp-list b{text-align:right;font-variant-numeric:tabular-nums}
.cc-cmp-list b.up{color:#9FD3A8}.cc-cmp-list b.dn{color:#F0A9A0}
.cc-lock b{display:block;font-size:16px}
.cc-lock p{margin-top:6px;font-size:13.5px;line-height:1.65;color:var(--l-ink2)}
.cc-lock .ip-lock-btns{margin-top:12px}
.cc-acts{margin-top:16px}
.cc-sum .ip-btn.ghost{background:transparent;color:var(--l-ink);border-color:var(--l-line)}
.cc-sum .ip-btn.primary,.ip-hero .ip-btn.primary{background:var(--l-acc);color:#0A0A0C}
.ip-hero .ip-btn.ghost{background:transparent;color:var(--l-ink);border-color:rgba(127,161,240,.55)}
.cc-how{margin-top:28px}

@media(max-width:980px){
  .ip-map-wrap{grid-template-columns:1fr}
  .cc-wrap{grid-template-columns:1fr}
  .cc-sum{position:static}
  .cc-wrap[aria-busy=true]{min-height:1400px}
}
@media(max-width:760px){
  .ip-stack-legend,.ip-facts{grid-template-columns:repeat(2,minmax(0,1fr))}
  .ip-panels,.ip-ch-grid{grid-template-columns:1fr}
  .ip-fig{padding:22px 16px 18px;border-radius:20px}
  .ip-kpi dd{font-size:24px}
  .ip-kpi>div{padding:14px 12px}
  .cc-grid{grid-template-columns:repeat(5,minmax(0,1fr))}
  .cc-grid .cc-f.wide{grid-column:1/-1}
  .cc-set{padding:18px 14px 14px}
  .cc-out.side{position:static;display:block;margin-top:10px;text-align:right}
  .cc-total{font-size:44px}
  .ip-stack{height:46px}
  .ip-stack b{font-size:12px}
  .ip-map .mp span,.ip-map .ma span{font-size:12px;padding:1px 5px}
  .ip-map .mp i{width:13px;height:13px;border-width:2px}
  .ip-map .ma i{width:17px;height:17px}
}

@media(max-width:520px){
  .ip-facts{grid-template-columns:1fr;gap:8px}
  .ip-facts>div{display:grid;grid-template-columns:92px minmax(0,1fr);gap:12px;align-items:center;padding:14px 16px}
  .ip-facts b{font-size:22px}
  .ip-facts span{margin-top:0}
  .ip-stack-legend{font-size:13.5px;gap:8px 12px}
  .ip-kpi dd small{display:block;margin:2px 0 0}
}
.cc-f input::placeholder{color:#B3AD9F;font-weight:500}
.cc-chk span{flex:1;min-width:0;line-height:1.6}
.cc-live{display:none}
@media(max-width:980px){
  .cc-live:not([hidden]){display:flex;align-items:baseline;gap:6px;position:fixed;left:12px;right:12px;bottom:calc(82px + env(safe-area-inset-bottom));z-index:49;padding:12px 18px;border-radius:14px;background:#0B1636;color:var(--l-ink);border:1px solid rgba(127,161,240,.55);box-shadow:0 10px 30px rgba(0,0,0,.35);font-size:14px}
  .cc-live b{font-family:var(--font);font-size:22px;color:var(--l-acc);font-variant-numeric:tabular-nums}
  .cc-live small{color:var(--l-ink2)}
  .cc-live span{margin-left:auto;font-weight:700;color:var(--l-acc)}
  .cc-sum-on .cc-live{display:none!important}
}

/* ── 학부모 게시판 (ADR-080) ── */
.bd{max-width:820px;font-size:16.5px;line-height:1.75}
.bd-top{display:flex;flex-wrap:wrap;align-items:center;gap:12px;justify-content:space-between}
.bd-cats{display:flex;flex-wrap:wrap;gap:8px}
.bd-cats a{display:inline-flex;align-items:center;min-height:42px;padding:0 16px;border-radius:100px;border:1px solid #8A857A;background:#fff;color:var(--l-ink-d);font-size:15px;font-weight:500}
.bd-cats a.on{background:var(--l-ink-d);border-color:var(--l-ink-d);color:#fff;font-weight:700}
.bd-write{min-height:48px}
.bd-list{list-style:none;margin:18px 0 0;padding:0;border-top:1px solid var(--l-ip-bd)}
.bd-list li{border-bottom:1px solid var(--l-ip-bd)}
.bd-list a{display:flex;flex-direction:column;gap:4px;padding:16px 4px;color:var(--l-ink-d)}
.bd-list a:hover .bd-t{text-decoration:underline;text-underline-offset:3px}
.bd-cat{font-size:13px;font-weight:700;color:var(--l-gold-d)}
.bd-t{font-size:17px;font-weight:700;line-height:1.5}
.bd-meta{font-size:13.5px;color:var(--l-mut-d)}
.bd-empty{padding:28px 4px;color:var(--l-body-d)}
.bd-more{margin-top:18px;text-align:center}
.bd-more [hidden]{display:none}
.bd-form{display:flex;flex-direction:column;gap:16px;padding:24px;border-radius:20px;background:#fff;border:1px solid var(--l-ip-bd)}
.bd-catpick{display:flex;flex-wrap:wrap;gap:8px;margin:0;padding:0;border:0}
.bd-catpick legend{margin-bottom:8px;font-size:14px;font-weight:700;color:var(--l-ink-d)}
.bd-chip input{position:absolute;opacity:0;width:1px;height:1px}
.bd-chip span{display:inline-flex;align-items:center;min-height:42px;padding:0 16px;border-radius:100px;border:1px solid #8A857A;cursor:pointer;font-size:15px;color:var(--l-ink-d)}
.bd-chip input:checked+span{background:var(--l-ink-d);border-color:var(--l-ink-d);color:#fff;font-weight:700}
.bd-chip input:focus-visible+span{outline:2px solid var(--l-gold-d);outline-offset:2px}
.bd-f{display:flex;flex-direction:column;gap:6px;font-size:14px;font-weight:700;color:var(--l-ink-d)}
.bd-f input,.bd-f textarea,.bd-cform textarea{width:100%;padding:12px 14px;border:1px solid #8A857A;border-radius:12px;background:#FCFBF7;font:inherit;font-size:16px;font-weight:500;color:var(--l-ink-d);line-height:1.65}
.bd-f input{min-height:50px}
.bd-f input:focus-visible,.bd-f textarea:focus-visible,.bd-cform textarea:focus-visible{outline:2px solid var(--l-gold-d);outline-offset:1px}
.bd-rule{font-size:13.5px;color:var(--l-body-d)}
.bd-err{font-size:14.5px;font-weight:700;color:#A3261B}
.bd-err:empty{display:none}
.bd-acts{display:flex;gap:10px;justify-content:flex-end}
.bd-post{padding:26px;border-radius:20px;background:#fff;border:1px solid var(--l-ip-bd)}
.bd-ph{margin-top:6px;font-family:var(--font);font-size:clamp(22px,3vw,28px);font-weight:700;line-height:1.35;color:var(--l-ink-d)}
.bd-post>.bd-meta{margin-top:8px}
.bd-body{margin-top:18px;padding-top:18px;border-top:1px solid var(--l-ip-bd);color:var(--l-ink-d);word-break:keep-all;overflow-wrap:anywhere}
.bd-hid{color:#A3261B}
.bd-tools{display:flex;gap:14px;margin-top:14px}
.bd-link{min-height:40px;padding:0 4px;border:0;background:none;font:inherit;font-size:14px;color:var(--l-mut-d);text-decoration:underline;text-underline-offset:3px;cursor:pointer}
.bd-cmts{margin-top:26px}
.bd-ch{font-size:17px;font-weight:700;color:var(--l-ink-d)}
.bd-clist{list-style:none;margin:12px 0 0;padding:0}
.bd-clist li{padding:14px 4px;border-bottom:1px solid var(--l-ip-bd)}
.bd-ctext{margin-top:4px;color:var(--l-ink-d);overflow-wrap:anywhere}
.bd-clist .bd-tools{margin-top:4px}
.bd-cform{display:flex;flex-direction:column;gap:10px;margin-top:18px}
.bd-cform .ip-btn{align-self:flex-end}
.bd-back{margin-top:24px}
.bd-back a{color:var(--l-gold-d);font-weight:700}
@media(max-width:640px){
  .bd-post,.bd-form{padding:18px 16px}
  .bd-write{width:100%}
}

/* ── 지도 2단(2026-10-02): 고등학교/중학교 층 · 분석 학교(채운 핀) · 그 밖(빈 핀) · 이름표 자동 배치 ── */
.ip-maptabs{display:flex;gap:8px;margin:-6px 0 14px}
.ip-maptabs button{min-height:42px;padding:0 16px;border-radius:100px;border:1px solid #8A857A;background:#fff;color:var(--l-ink-d);font:inherit;font-size:15px;font-weight:500;cursor:pointer}
.ip-maptabs button.on{background:var(--l-ink-d);border-color:var(--l-ink-d);color:#fff;font-weight:700}
.ip-maptabs button:focus-visible{outline:2px solid var(--l-gold-d);outline-offset:2px}
.ip-map{aspect-ratio:1/1}
.ip-map-wrap[data-layer=high] .mp.mid,.ip-map-wrap[data-layer=mid] .mp.high{display:none}
.ip-map-wrap[data-layer=high] .ip-dist.mid,.ip-map-wrap[data-layer=mid] .ip-dist.high{display:none}
.ip-map .mp i{width:14px;height:14px;border-width:3px}
.ip-map .mp.high:not(.on) i{background:#fff;border-color:#1A1A1F}
.ip-map .mp.mid i{border-radius:4px;background:#fff;border-color:#3B5C86}
.ip-map .mp.r{transform:translate(-7px,-50%)}
.ip-map .mp.l{flex-direction:row-reverse;transform:translate(calc(-100% + 7px),-50%)}
.ip-map .mp.b{flex-direction:column;transform:translate(-50%,-7px)}
.ip-map .mp.t{flex-direction:column-reverse;transform:translate(-50%,calc(-100% + 7px))}
.ip-map .mp.nolab{transform:translate(-50%,-50%)}
.ip-map .mp:not(.on) span{font-weight:500}
.ip-dist .nd{display:flex;align-items:baseline;gap:10px;min-height:48px;padding:12px 4px;border-bottom:1px solid var(--l-ip-bd);color:var(--l-body-d)}
.ip-dist .nd b{font-size:16px;font-weight:500;color:var(--l-ink-d)}
.ip-dist .nd.plan{border-bottom-style:dashed}
.ip-dist .nd.plan em{color:var(--l-mut-d)}
@media(max-width:760px){.ip-map .mp i{width:12px;height:12px;border-width:2px}}
.ip-map-wrap{grid-template-columns:minmax(0,1.25fr) minmax(0,1fr)}
@media(max-width:980px){.ip-map-wrap{grid-template-columns:1fr}}
@media(max-width:760px){.ip-mapfig{margin:0 -6px}.ip-map{border-radius:14px}}

/* ── 지도 따로 두기 · 목록 누를 수 있음 표시 (2026-10-02 원장 지적) ── */
.ip-maps{display:flex;flex-direction:column;gap:22px}
.ip-fig-h small{margin-left:6px;font-family:var(--font);font-size:15px;font-weight:500;color:var(--l-mut-d)}
.ip-map .ml{stroke:rgba(123,95,38,.35);stroke-width:1.2}
.ip-map .ml.on{stroke:rgba(123,95,38,.75);stroke-width:2}
.ip-dist-h{margin-bottom:8px;font-size:13.5px;color:var(--l-mut-d)}
.ip-dist-h b{color:var(--l-gold-d)}
.ip-dist li{border:0}
.ip-dist li+li{margin-top:6px}
.ip-dist .go,.ip-dist .nd{display:grid;grid-template-columns:24px minmax(0,1fr) auto;grid-template-areas:"no nm km" "no ar cta";align-items:center;column-gap:10px;row-gap:2px;min-height:56px;padding:10px 14px;border-radius:14px;border-bottom:0}
.ip-dist .go{background:#fff;border:1px solid #C9B88F;box-shadow:0 1px 0 rgba(123,95,38,.12);transition:border-color .2s,transform .2s,box-shadow .2s;color:var(--l-ink-d)}
.ip-dist .go:hover,.ip-dist .go:focus-visible{border-color:var(--l-gold-d);transform:translateY(-1px);box-shadow:0 6px 16px -10px rgba(123,95,38,.6)}
.ip-dist .go:focus-visible{outline:2px solid var(--l-gold-d);outline-offset:2px}
.ip-dist .nd{background:transparent;border:1px dashed #DDD5C3}
.ip-dist .no{grid-area:no;display:grid;place-items:center;width:24px;height:24px;border-radius:50%;background:#EFE8D8;font-size:12px;font-weight:700;color:var(--l-body-d);font-variant-numeric:tabular-nums}
.ip-dist .go .no{background:var(--l-ink-d);color:#F3DFAE}
.ip-dist b{grid-area:nm;font-size:16px}
.ip-dist .nd b{font-weight:500}
.ip-dist .ar{grid-area:ar;font-size:13px;color:var(--l-mut-d)}
.ip-dist em{grid-area:km;justify-self:end;font-style:normal;font-weight:700;font-variant-numeric:tabular-nums;color:var(--l-gold-d)}
.ip-dist .nd em{color:var(--l-body-d);font-weight:500}
.ip-dist .cta{grid-area:cta;justify-self:end;display:inline-flex;align-items:center;gap:4px;font-size:13px;font-weight:700;color:var(--l-gold-d)}
.ip-dist .cta i{font-style:normal;transition:transform .2s}
.ip-dist .go:hover .cta i{transform:translateX(3px)}
.ip-dist .tag{grid-area:cta;justify-self:end;font-size:12px;color:var(--l-mut-d)}
.ip-dist .plan{border-style:dotted}

/* ── 시험 구성(학교 시험지 분석, 회원) ── */
.ip-xm{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:10px}
.ip-xm-row{padding:16px;border-radius:14px;background:#fff;border:1px solid var(--l-ip-bd)}
.ip-xm-h{display:flex;flex-direction:column;gap:2px}
.ip-xm-h b{font-size:15.5px;color:var(--l-ink-d)}
.ip-xm-h span{font-size:13px;color:var(--l-mut-d)}
.ip-xm-c{display:flex;gap:16px;margin-top:10px;font-size:15px;font-variant-numeric:tabular-nums;color:var(--l-ink-d)}
.ip-xm-c em{display:block;font-style:normal;font-size:12px;font-weight:700;color:var(--l-mut-d)}
.ip-xm-c small{margin-left:3px;font-size:12.5px;color:var(--l-mut-d)}
.ip-xm-bar{height:10px;margin-top:12px;border-radius:5px;background:#EAE3D3;overflow:hidden}
.ip-xm-bar i{display:block;height:100%;background:var(--l-gold-d)}
.ip-xm-s{margin-top:6px;font-size:13.5px;color:var(--l-body-d)}
.ip-xm-s b{color:var(--l-ink-d);font-variant-numeric:tabular-nums}
.ip-xm-scope{margin-top:8px;font-size:13px;line-height:1.6;color:var(--l-body-d)}
.ip-rank.wide li{grid-template-columns:72px minmax(0,1fr) 58px;row-gap:0}
.ip-rank.wide small{grid-column:2/4;font-size:12px;color:var(--l-mut-d)}
@media(max-width:640px){.ip-xm{grid-template-columns:1fr}}

/* ── 연구소 방법론 · 학교 카드 배지 (전문가 집단 인상, 2026-10-02) ── */
.ip-method{background:radial-gradient(60% 80% at 0% 0%,rgba(127,161,240,.12),transparent 70%)}
.ip-method .ip-h2{margin-top:10px;font-size:clamp(26px,3.4vw,40px)}
.ip-mt{list-style:none;margin:30px 0 0;padding:0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;counter-reset:m}
.ip-mt li{display:flex;flex-direction:column;gap:8px;padding:24px 22px;border-radius:20px;border:1px solid rgba(127,161,240,.3);background:rgba(255,255,255,.02)}
.ip-mt span{font-family:var(--font);font-size:28px;font-weight:700;color:var(--l-acc);font-variant-numeric:tabular-nums}
.ip-mt b{font-size:18px;color:var(--l-ink)}
.ip-mt em{font-style:normal;font-size:14.5px;line-height:1.7;color:var(--l-ink2)}
.ip-sc-chips{display:flex;flex-wrap:wrap;gap:6px;margin-top:4px}
.ip-sc-chips i{font-style:normal;font-size:12px;font-weight:700;color:var(--l-gold-d);background:#F1E7D1;border-radius:100px;padding:3px 9px}
.ip-sc.off .ip-sc-chips i{color:var(--l-acc);background:rgba(127,161,240,.12)}
@media(max-width:980px){.ip-mt{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:560px){.ip-mt{grid-template-columns:1fr}.ip-mt li{flex-direction:row;flex-wrap:wrap;align-items:baseline;column-gap:12px}.ip-mt em{flex-basis:100%}}
.ip-feats{margin:0;padding-left:18px}
.ip-feats li{margin:2px 0}
.ip-exam .ip-fold-h{font-size:16px}

/* ── 지도 핀 개정(2026-10-02): 번호 핀 + 8방향 이름표(휴대폰·PC 따로) ──
   핀 자체는 좌표 중심에 놓고(translate -50%), 이름표는 핀 안에서 절대 위치. 앞의 .mp 규칙(r/l/b/t)을 덮어쓴다. */
.ip-map .mp{position:absolute;display:block;width:20px;height:20px;transform:translate(-50%,-50%);flex-direction:initial;gap:0;z-index:2}
.ip-map .mp.r,.ip-map .mp.l,.ip-map .mp.b,.ip-map .mp.t,.ip-map .mp.nolab{transform:translate(-50%,-50%);flex-direction:initial}
.ip-map .mp i{position:absolute;inset:0;display:grid;place-items:center;width:20px;height:20px;border:0;border-radius:50%;font-style:normal;font-size:11px;font-weight:700;line-height:1;font-variant-numeric:tabular-nums;box-shadow:0 1px 4px rgba(0,0,0,.25)}
.ip-map .mp.high i{background:#fff;color:#1A1A1F;box-shadow:0 0 0 2px #1A1A1F,0 1px 4px rgba(0,0,0,.25)}
.ip-map .mp.high.on i{background:#1A1A1F;color:#F3DFAE;box-shadow:0 0 0 2px #C6A15B,0 1px 4px rgba(0,0,0,.3)}
.ip-map .mp.mid i{border-radius:6px;background:#fff;color:#2C4A70;box-shadow:0 0 0 2px #3B5C86,0 1px 4px rgba(0,0,0,.2)}
.ip-map .mp>span{position:absolute;white-space:nowrap;font-size:13.4px;font-weight:700;line-height:22px;padding:0 6px;border-radius:7px;color:var(--l-ink-d);background:rgba(255,255,255,.94);box-shadow:0 1px 3px rgba(0,0,0,.12)}
.ip-map .mp:not(.on)>span{font-weight:500}
/* 방향: r l t b tr tl br bl · x = 자리 없음(번호만) — PC 전용(휴대폰은 아래 m-* 만. 둘이 섞이면 left·right 가 함께 걸려 이름표가 핀 밑으로 숨었다) */
@media(min-width:761px){
.ip-map .mp.d-r>span{left:23px;top:-1px}.ip-map .mp.d-l>span{right:23px;top:-1px}
.ip-map .mp.d-t>span{bottom:23px;left:50%;transform:translateX(-50%)}.ip-map .mp.d-b>span{top:23px;left:50%;transform:translateX(-50%)}
.ip-map .mp.d-tr>span{left:17px;bottom:17px}.ip-map .mp.d-tl>span{right:17px;bottom:17px}
.ip-map .mp.d-br>span{left:17px;top:17px}.ip-map .mp.d-bl>span{right:17px;top:17px}
.ip-map .mp.d-x>span{display:none}
}
@media(max-width:760px){
  .ip-map .mp>span{font-size:11.5px;line-height:18px;padding:0 4px;left:auto;right:auto;top:auto;bottom:auto;transform:none;display:block}
  .ip-map .mp.m-r>span{left:23px;top:0}.ip-map .mp.m-l>span{right:23px;top:0}
  .ip-map .mp.m-t>span{bottom:23px;left:50%;transform:translateX(-50%)}.ip-map .mp.m-b>span{top:23px;left:50%;transform:translateX(-50%)}
  .ip-map .mp.m-tr>span{left:17px;bottom:17px}.ip-map .mp.m-tl>span{right:17px;bottom:17px}
  .ip-map .mp.m-br>span{left:17px;top:17px}.ip-map .mp.m-bl>span{right:17px;top:17px}
  .ip-map .mp.m-x>span{display:none}
}
/* 학원 표시: 금색 마름모 + 이름표(위). 핀보다 위에 그린다 */
.ip-map .ma{z-index:3}
.ip-map .ma i{width:22px;height:22px}
/* 목록 번호를 지도 핀과 같은 모양으로 — 고등학교는 원, 중학교는 둥근 네모 */
.ip-mapfig#map-mid .ip-dist .no{border-radius:6px}
.ip-dist-key{display:flex;flex-wrap:wrap;gap:6px 14px;margin:0 0 10px;padding:0;list-style:none;font-size:13px;color:var(--l-body-d)}
.ip-dist-key li{display:inline-flex;align-items:center;gap:6px}
.ip-dist-key i{display:inline-block;width:14px;height:14px;border-radius:50%;background:#fff;box-shadow:0 0 0 2px #1A1A1F}
.ip-dist-key i.on{background:#1A1A1F;box-shadow:0 0 0 2px #C6A15B}
.ip-dist-key i.mid{border-radius:4px;box-shadow:0 0 0 2px #3B5C86}

/* 확대 지도(학원 반경 1km) */
.ip-maps-col{display:flex;flex-direction:column;gap:12px;min-width:0}
.ip-inset{padding:12px;border-radius:18px;background:#fff;border:1px solid var(--l-ip-bd)}
.ip-inset-h{margin:0 0 8px;font-size:14.5px;font-weight:700;color:var(--l-ink-d)}
.ip-inset-h small{margin-left:6px;font-weight:500;color:var(--l-mut-d)}
.ip-map.zoom{aspect-ratio:640/500;background:#FAF6EC}

/* 2차 고리(한 칸 더 떨어진 이름표) */
@media(min-width:761px){
.ip-map .mp.d-r2>span{left:37px;top:-1px}.ip-map .mp.d-l2>span{right:37px;top:-1px}
.ip-map .mp.d-t2>span{bottom:35px;left:50%;transform:translateX(-50%)}.ip-map .mp.d-b2>span{top:35px;left:50%;transform:translateX(-50%)}
.ip-map .mp.d-tr2>span{left:26px;bottom:26px}.ip-map .mp.d-tl2>span{right:26px;bottom:26px}
.ip-map .mp.d-br2>span{left:26px;top:26px}.ip-map .mp.d-bl2>span{right:26px;top:26px}
}
@media(max-width:760px){
.ip-map .mp.m-r2>span{left:37px;top:0}.ip-map .mp.m-l2>span{right:37px;top:0}
.ip-map .mp.m-t2>span{bottom:35px;left:50%;transform:translateX(-50%)}.ip-map .mp.m-b2>span{top:35px;left:50%;transform:translateX(-50%)}
.ip-map .mp.m-tr2>span{left:26px;bottom:26px}.ip-map .mp.m-tl2>span{right:26px;bottom:26px}
.ip-map .mp.m-br2>span{left:26px;top:26px}.ip-map .mp.m-bl2>span{right:26px;top:26px}
}

/* ── Fig.01 개정(2026-10-03): 200점 눈금 위 계단식 장부 + 각주 ──
   카드·둥근 칩·색 범례를 버리고 '성적 산출표' 같은 괘선 장부로. 금색은 교과, 먹색은 비교과, 3학년만 진하게. */
.ip-f1{--l-f1-k:118px;--l-f1-v:64px;--l-f1-gold:#8C6A2A;--l-f1-gold-hi:#5E4414;--l-f1-ink:#3B3F4A;--l-f1-track:#F3EEE3}
.f1-sheet{border-top:2px solid var(--l-ink-d);border-bottom:1px solid var(--l-ink-d)}
.f1-ruler,.f1-rows>li{display:grid;grid-template-columns:var(--l-f1-k) minmax(0,1fr) var(--l-f1-v);align-items:center;column-gap:14px}
.f1-ruler{height:30px;border-bottom:1px solid var(--l-ip-bd)}
.f1-ruler .f1-t{position:relative;height:100%}
.f1-ruler .f1-t span{position:absolute;bottom:6px;transform:translateX(-50%);font-size:12px;font-weight:700;color:var(--l-mut-d);font-variant-numeric:tabular-nums}
.f1-ruler .f1-t span:first-child{transform:none}.f1-ruler .f1-t span:last-child{transform:translateX(-100%)}
.f1-rows{list-style:none;margin:0;padding:0}
.f1-rows>li{min-height:40px;border-bottom:1px solid var(--l-ip-bd)}
.f1-rows>li:last-child{border-bottom:0}
.f1-k{font-size:15px;color:var(--l-body-d);white-space:nowrap}
.f1-v{text-align:right;font-size:13px;color:var(--l-mut-d);white-space:nowrap}
.f1-v b{font-family:var(--font);font-size:19px;font-weight:700;color:var(--l-ink-d);font-variant-numeric:tabular-nums;margin-right:1px}
/* 눈금선: 50점마다 */
.f1-t{position:relative;align-self:stretch;background:linear-gradient(90deg,transparent calc(25% - .5px),rgba(26,26,31,.10) calc(25% - .5px),rgba(26,26,31,.10) calc(25% + .5px),transparent calc(25% + .5px),transparent calc(50% - .5px),rgba(26,26,31,.10) calc(50% - .5px),rgba(26,26,31,.10) calc(50% + .5px),transparent calc(50% + .5px),transparent calc(75% - .5px),rgba(26,26,31,.10) calc(75% - .5px),rgba(26,26,31,.10) calc(75% + .5px),transparent calc(75% + .5px))}
.f1-t>i{position:absolute;top:50%;height:14px;transform:translateY(-50%);background:var(--l-f1-gold)}
.f1-r.hot .f1-t>i{height:20px;background:var(--l-f1-gold-hi)}
.f1-r.hot .f1-k{font-weight:700;color:var(--l-ink-d)}
.f1-r.hot .f1-v b{color:var(--l-f1-gold-hi);font-size:22px}
.f1-g.alt~.f1-r .f1-t>i{background:var(--l-f1-ink)}
/* 묶음 줄(교과·비교과): 굵은 머리 + 얇은 합계 막대, 교과는 기본점수 50을 빗금으로 */
.f1-g{background:var(--l-cream-hi)}
.f1-g .f1-k b{font-size:13px;font-weight:700;letter-spacing:.14em;color:var(--l-ink-d)}
.f1-t>i.sum{height:6px;background:var(--l-f1-gold);overflow:hidden}
.f1-g.alt .f1-t>i.sum{background:var(--l-f1-ink)}
.f1-t>i.sum s{position:absolute;inset:0 auto 0 0;background:repeating-linear-gradient(135deg,#fff 0 2px,transparent 2px 5px),var(--l-f1-gold)}
.f1-r.zero .f1-k{color:var(--l-mut-d);font-weight:500}.f1-r.zero .f1-v b{color:var(--l-mut-d);font-weight:600}
.f1-r.zero .f1-t{display:flex;align-items:center}
.f1-r.zero em{font-style:normal;font-size:13px;color:var(--l-mut-d);padding-left:10px;border-left:2px dashed var(--l-ip-bd)}
.f1-total{border-top:1px solid var(--l-ink-d)}
.f1-total .f1-k b{font-size:15px;color:var(--l-ink-d)}
.f1-total .f1-t>i{height:8px;background:linear-gradient(90deg,var(--l-f1-gold) 0 75%,var(--l-f1-ink) 75% 100%)}
.f1-total .f1-v b{font-size:24px}
.f1-fn{margin-left:3px;font-size:13px;font-weight:700;color:var(--l-gold-d);vertical-align:2px}
.f1-key{display:flex;flex-wrap:wrap;gap:6px 18px;margin:0;padding:10px 0;font-size:13px;color:var(--l-body-d);border-top:1px solid var(--l-ip-bd)}
.f1-key span{display:inline-flex;align-items:center;gap:7px}
.f1-key i{display:inline-block;width:18px;height:8px}
.f1-key .k-base{background:repeating-linear-gradient(135deg,#fff 0 2px,transparent 2px 5px),var(--l-f1-gold)}
.f1-key .k-gap{background:var(--l-f1-gold)}.f1-key .k-non{background:var(--l-f1-ink)}
/* 각주: 카드 대신 번호 + 괘선 */
.f1-notes{list-style:none;margin:22px 0 0;padding:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:36px}
.f1-notes li{display:grid;grid-template-columns:28px minmax(0,1fr);gap:4px;padding:14px 0;border-top:1px solid var(--l-ip-bd)}
.f1-no{font-family:var(--font);font-weight:600;font-size:20px;line-height:1.3;color:var(--l-gold-d)}
.f1-notes p{margin:0;font-size:14.5px;line-height:1.65;color:var(--l-body-d)}
.f1-notes p b{display:block;margin-bottom:2px;font-size:16px;color:var(--l-ink-d)}
@media(max-width:640px){
  /* 휴대폰: 이름·점수 한 줄 + 막대는 전체 폭(옆에 두면 막대가 120px 로 줄어 눈금이 겹쳤다) */
  .f1-ruler,.f1-rows>li{grid-template-columns:minmax(0,1fr) auto;grid-template-areas:'k v' 't t';column-gap:8px}
  .f1-k{grid-area:k;font-size:14px}.f1-v{grid-area:v}.f1-t{grid-area:t}
  .f1-rows>li{min-height:0;padding:7px 0 6px;row-gap:3px}
  .f1-rows>li .f1-t{height:16px}
  .f1-ruler{height:auto;padding:6px 0 4px}.f1-ruler .f1-k,.f1-ruler .f1-v{display:none}.f1-ruler .f1-t{height:16px}
  .f1-t>i{height:10px}.f1-r.hot .f1-t>i{height:14px}
  .f1-v{font-size:11.5px}.f1-v b{font-size:16px}
  .f1-r.hot .f1-v b{font-size:18px}.f1-total .f1-v b{font-size:19px}
  .f1-ruler .f1-t span{font-size:11px;bottom:0}
  .f1-r.zero .f1-t{height:auto}.f1-r.zero em{font-size:12px;padding-left:6px}
  .f1-notes{grid-template-columns:1fr}
}

/* 페이지는 dark 로 선언(강제 반전 차단)했지만 이 화면의 입력칸은 밝은 바탕 위 — 입력칸만 밝은 체계로 */
input,select,textarea{color-scheme:light}
option{font-weight:500}

/* ── 휴대폰 세로 길이 줄이기 (2026-10-03) ──
   허브가 360px 에서 14,400px(화면 18장)였다. 내용은 그대로 두고 ①바로가기 칩 ②지도 목록 5곳까지 ③공시 지표 하나씩
   ④방법론·학교 카드 가로 넘기기 ⑤바로가기 타일 2열 로 접는다. */
.ip-jump{position:sticky;top:64px;z-index:20;background:rgba(250,247,240,.96);backdrop-filter:blur(8px);border-bottom:1px solid var(--l-ip-bd)}
.ip-jump ol{list-style:none;margin:0;padding:8px 0;display:flex;gap:6px;overflow-x:auto;scrollbar-width:none}
.ip-jump ol::-webkit-scrollbar{display:none}
.ip-jump a{display:inline-flex;align-items:center;min-height:36px;padding:0 14px;border-radius:100px;border:1px solid #D9CDB2;background:#fff;font-size:14px;font-weight:700;color:var(--l-ink-d);white-space:nowrap}
.ip-jump a[aria-current]{background:var(--l-ink-d);border-color:var(--l-ink-d);color:#F3DFAE}
.ip-fig-h[id],.ip-mapfig[id],.ip-h2[id]{scroll-margin-top:124px}
.ip-dist-more{display:block;width:100%;min-height:46px;margin-top:8px;border:1px solid #C9B88F;border-radius:12px;background:#fff;font:inherit;font-size:14.5px;font-weight:700;color:var(--l-gold-d);cursor:pointer}
.ip-dash-sw{display:flex;flex-wrap:wrap;gap:6px;margin:-6px 0 14px}
.ip-dash-sw button{min-height:38px;padding:0 14px;border-radius:100px;border:1px solid #D9CDB2;background:#fff;font:inherit;font-size:14px;font-weight:700;color:var(--l-body-d);cursor:pointer}
.ip-dash-sw button[aria-pressed=true]{background:var(--l-ink-d);border-color:var(--l-ink-d);color:#F3DFAE}
@media(min-width:761px){.ip-dash-sw{display:none!important}.ip-dist-more{display:none!important}}
@media(max-width:760px){
  .ip-dist.fold li.more{display:none}
  .ip-panels.sw .ip-panel:not(.on){display:none}
  .ip-mt{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;gap:10px;margin-right:-16px;padding:2px 16px 6px 0;scrollbar-width:none}
  .ip-mt::-webkit-scrollbar{display:none}
  .ip-mt li{flex:0 0 78%;scroll-snap-align:start;flex-direction:column}
  .ip-mt em{flex-basis:auto}
  .ip-mt:focus-visible{outline:2px solid var(--l-acc);outline-offset:4px}
  .ip-sc-grid.rail{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;gap:10px;margin-right:-16px;padding:2px 16px 8px 0;scrollbar-width:none}
  .ip-sc-grid.rail::-webkit-scrollbar{display:none}
  .ip-sc-grid.rail .ip-sc{flex:0 0 80%;scroll-snap-align:start}
  .ip-cols{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
  .ip-tile{min-height:0;padding:16px;gap:6px;font-size:13.5px}
  .ip-tile b{font-size:15.5px}
  .ip-tile em{font-size:13.5px}
}

/* ── 중학교 정보(2026-10-03) — 학교알리미 공시 기본정보 카드 · 사실 표 ── */
.ip-mc-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(250px,100%),1fr));gap:10px;margin-top:18px}
.ip-mc{display:flex;flex-direction:column;gap:6px;padding:16px 18px;border-radius:14px;background:#fff;border:1px solid #D9CDB2;color:var(--l-body-d);transition:border-color .2s,transform .2s}
.ip-mc:hover,.ip-mc:focus-visible{border-color:var(--l-gold-d);transform:translateY(-1px)}
.ip-mc-h{display:flex;align-items:baseline;justify-content:space-between;gap:8px}
.ip-mc-h b{font-family:var(--font);font-weight:700;font-size:19px;color:var(--l-ink-d)}
.ip-mc-h em{font-style:normal;font-weight:700;font-size:14px;color:var(--l-gold-d);font-variant-numeric:tabular-nums}
.ip-mc-m{font-size:13px;color:var(--l-mut-d)}
.ip-mc-n{display:flex;gap:14px;font-size:13.5px;padding-top:8px;border-top:1px solid var(--l-ip-bd)}
.ip-mc-n b{font-size:16px;color:var(--l-ink-d);font-variant-numeric:tabular-nums}
.ip-mid-col{max-width:760px}
.ip-mid-col .ip-part+.ip-part{margin-top:40px}
.ip-mfacts{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));margin:18px 0 0;border-top:2px solid var(--l-ink-d);border-bottom:1px solid var(--l-ink-d)}
.ip-mfacts>div{padding:14px 12px 12px 0;border-bottom:1px solid var(--l-ip-bd)}
.ip-mfacts>div.wide{grid-column:1/-1}
.ip-mfacts dt{font-size:13px;font-weight:700;color:var(--l-mut-d)}
.ip-mfacts dd{margin:4px 0 0;font-size:14px;color:var(--l-body-d)}
.ip-mfacts dd b{font-family:var(--font);font-weight:700;font-size:26px;color:var(--l-ink-d);font-variant-numeric:tabular-nums;margin-right:2px}
.ip-mfacts .wide dd b{font-size:34px}
.ip-mfacts dd small{display:block;margin-top:2px;font-size:13.5px;color:var(--l-mut-d)}
.ip-mfacts dd.sm{font-size:16px;font-weight:700;color:var(--l-ink-d);padding-top:6px}
.ip-addr{margin-top:12px;font-size:14.5px;color:var(--l-body-d)}
.ip-mnear{margin-top:14px}
.ip-dist .go.mid .no{border-radius:6px;background:#2C4A70;color:#fff}
@media(max-width:640px){
  .ip-mfacts{grid-template-columns:repeat(2,minmax(0,1fr))}
  .ip-mfacts dd b{font-size:22px}.ip-mfacts .wide dd b{font-size:30px}
}

/* 회원 화면 · 약관 (ADR-075) — 지시서 11번 가독성 기준 + 홈과 같은 인상.
   구조: 홈과 같은 검정 무대(.mb-stage) 위에 아이보리 카드. 데스크톱은 왼쪽 소개(세리프 제목), 오른쪽 폼.
   1차안(흰 카드 + 검정 버튼 + 검정 칩)이 "홈과 다른 사이트 같다·예쁘지 않다"는 원장 지적을 받고 다시 잡았다(2026-09-30).

   색은 홈 토큰만 쓴다(--l-acc 골드 · --l-cream-hi · --l-ink-d · --l-body-d · --l-mut-d · --l-gold-d). 예외:
     --l-mb-err #A4231A : 아이보리(#FCFBF7) 위 6.9:1 (본문 대비 AA)
     --l-mb-bd  #8A857A : 흰 입력칸·아이보리 위 3.6:1 (입력칸 테두리 비텍스트 대비 3:1 이상)
     --l-mb-sel #F3EAD5 : 고른 칩 바탕(골드 옅은 톤) — 글자는 --l-ink-d 라 대비 무관
   골드는 한 가지 강조로만: 고른 칩·현재 단계·링크·포커스. 주 버튼은 짙은 잉크 하나.
   ⚠️ 본문 한글 폰트는 300·500·700 굵기만 있다(build-fonts.mjs 재현 상수). 400 을 쓰면 500 으로 렌더된다. */
:root{--l-mb-err:#A4231A;--l-mb-bd:#8A857A;--l-mb-ok:#1F6B3A;--l-mb-sel:#F3EAD5}

/* ⚠️ 문서 간 전환(View Transitions)을 회원 화면에서는 끈다. 가입·로그인 뒤 스크립트가 location.replace 로
   넘길 때 전환이 걸리면 새 페이지가 그려지지 않고 멈췄다(2026-09-30 실측: 화면 캡처·클릭 전부 대기,
   감속 설정이나 새 탭에선 정상). 전환은 양쪽 문서가 모두 켜야 일어나므로 여기서 끄면 드나드는 쪽 모두 꺼진다. */
@view-transition{navigation:none}

.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}

/* ── 무대 · 두 칸 ── */
.mb-stage{padding:28px 0 110px}
.mb-shell{display:grid;gap:32px;max-width:1080px}
.mb-shell.split{grid-template-columns:minmax(0,1fr) minmax(0,520px);gap:72px;align-items:start}
.mb-shell.split.my{grid-template-columns:260px minmax(0,1fr);gap:56px}
.mb-main{min-width:0}

.mb-intro{position:sticky;top:104px;padding-top:12px;color:var(--l-ink2)}
.mb-eyebrow{font-size:12.5px;font-weight:500;letter-spacing:.14em;color:var(--l-acc)}
.mb-title{margin-top:18px;font-family:var(--font);font-weight:700;font-size:clamp(34px,4.2vw,50px);line-height:1.15;letter-spacing:-.03em;color:var(--l-ink)}
.mb-lead{margin-top:18px;max-width:30em;font-size:17px;font-weight:300;line-height:1.75;color:var(--l-ink2)}
.mb-points{list-style:none;margin:40px 0 0;padding:0;max-width:26em}
.mb-points li{padding:18px 0;border-top:1px solid rgba(127,161,240,.28)}
.mb-points li:last-child{border-bottom:1px solid rgba(127,161,240,.28)}
.mb-points b{display:block;font-size:16px;font-weight:700;color:var(--l-ink);letter-spacing:-.01em}
.mb-points span{display:block;margin-top:4px;font-size:15px;font-weight:300;color:var(--l-ink2);line-height:1.6}
.mb-intro-alt{margin-top:28px;font-size:15.5px;color:var(--l-ink2)}
.mb-intro-alt a{color:var(--l-acc);font-weight:500;border-bottom:1px solid rgba(127,161,240,.45);padding-bottom:1px}
.mb-toc{display:flex;flex-direction:column;margin-top:34px;border-left:1px solid rgba(127,161,240,.3)}
.mb-toc a{display:flex;align-items:center;min-height:44px;padding:0 0 0 18px;font-size:15.5px;color:var(--l-ink2);transition:color .2s}
.mb-toc a:hover{color:var(--l-acc)}

/* ── 카드 ── */
.mb-card{position:relative;background:var(--l-cream-hi);border-radius:22px;padding:38px 36px;margin-bottom:18px;color:var(--l-body-d);font-size:17px;line-height:1.7;font-weight:500;box-shadow:0 1px 0 rgba(127,161,240,.5) inset,0 30px 70px -30px rgba(0,0,0,.8);scroll-margin-top:96px}
.mb-h2{font-family:var(--font);font-size:22px;font-weight:700;color:var(--l-ink-d);letter-spacing:-.02em;line-height:1.35}
.mb-head{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:4px 12px;margin-bottom:20px}
.mb-head .mb-h2{flex:0 0 auto;white-space:nowrap}
.mb-meta{font-size:14px;color:var(--l-mut-d);overflow-wrap:anywhere}
.mb-desc{margin:8px 0 24px;font-size:16px;color:var(--l-body-d);line-height:1.7}

/* 가입 단계 */
.mb-steps{display:flex;gap:10px;list-style:none;margin:0 0 30px;padding:0}
.mb-steps li{flex:1;display:flex;align-items:center;gap:10px;padding-bottom:12px;border-bottom:2px solid #E4DFD3;font-size:14.5px;font-weight:500;color:var(--l-mut-d)}
.mb-steps i{display:inline-flex;align-items:center;justify-content:center;flex:0 0 26px;width:26px;height:26px;border-radius:50%;border:1px solid var(--l-mb-bd);font-style:normal;font-size:13px;font-weight:700;font-family:var(--font)}
.mb-steps li.on{color:var(--l-ink-d);font-weight:700;border-color:var(--l-acc)}
.mb-steps li.on i{background:var(--l-ink-d);border-color:var(--l-ink-d);color:#fff}
.mb-steps li.done{color:var(--l-gold-d);border-color:var(--l-acc)}
.mb-steps li.done i{background:var(--l-mb-sel);border-color:var(--l-gold-d);color:var(--l-gold-d)}

/* ── 입력 ── */
.mb-field{margin-bottom:24px}
.mb-label{display:block;margin-bottom:9px;font-size:15px;font-weight:700;color:var(--l-ink-d);letter-spacing:-.01em}
.mb-input{width:100%;min-height:54px;padding:12px 16px;border:1px solid var(--l-mb-bd);border-radius:12px;background:#fff;color:var(--l-ink-d);font:inherit;font-size:17px;font-weight:500;line-height:1.4;transition:border-color .2s,box-shadow .2s}
.mb-input::placeholder{color:#8A857A}
.mb-input:hover{border-color:#6F6A60}
.mb-input:focus{outline:none;border-color:var(--l-gold-d);box-shadow:0 0 0 3px rgba(127,161,240,.35)}
.mb-input[aria-invalid="true"]{border-color:var(--l-mb-err);box-shadow:0 0 0 1px var(--l-mb-err)}
select.mb-input{appearance:none;background-image:linear-gradient(45deg,transparent 50%,var(--l-ink-d) 50%),linear-gradient(135deg,var(--l-ink-d) 50%,transparent 50%);background-position:calc(100% - 22px) 24px,calc(100% - 16px) 24px;background-size:6px 6px;background-repeat:no-repeat;padding-right:44px}
.mb-hint{margin-top:7px;font-size:14px;color:var(--l-mut-d);line-height:1.5}
.mb-err{margin-top:7px;font-size:14.5px;color:var(--l-mb-err);line-height:1.5;font-weight:500}
.mb-err:empty{display:none}
.mb-formerr{margin:4px 0 16px;padding:12px 14px;border-radius:10px;background:#FBEDEB}
.mb-pw{position:relative}
.mb-pw .mb-input{padding-right:78px}
.mb-eye{position:absolute;right:6px;top:50%;transform:translateY(-50%);min-width:62px;min-height:44px;border:0;background:none;color:var(--l-gold-d);font:inherit;font-size:14.5px;font-weight:700;cursor:pointer;border-radius:8px}

/* 선택 칩(학년·지역) — 라디오 그대로, 모양만. 고르면 골드 */
.mb-chips{display:flex;flex-wrap:wrap;gap:8px}
.mb-chips.g4{display:grid;grid-template-columns:repeat(4,minmax(0,1fr))}
.mb-chips.g3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr))}
.mb-chip{position:relative;display:block}
.mb-chip input{position:absolute;opacity:0;inset:0;width:100%;height:100%;margin:0;cursor:pointer}
.mb-chip span{display:flex;align-items:center;justify-content:center;min-height:48px;padding:0 14px;border:1px solid var(--l-mb-bd);border-radius:12px;background:#fff;color:var(--l-ink-d);font-size:16px;font-weight:500;font-variant-numeric:tabular-nums;text-align:center;line-height:1.3;transition:background .15s,border-color .15s}
.mb-chip:hover span{border-color:var(--l-ink-d)}
.mb-chip input:checked+span{background:var(--l-mb-sel);border-color:var(--l-gold-d);box-shadow:0 0 0 1px var(--l-gold-d) inset;color:var(--l-ink-d);font-weight:700}
.mb-chip input:focus-visible+span{outline:2px solid var(--l-gold-d);outline-offset:2px}

/* 체크 */
.mb-check{display:flex;align-items:flex-start;gap:12px;min-height:44px;padding:10px 0;cursor:pointer;color:var(--l-ink-d);font-size:16.5px;line-height:1.5}
.mb-check input{flex:0 0 auto;width:22px;height:22px;margin:1px 0 0;accent-color:var(--l-gold-d);cursor:pointer}
.mb-check span{flex:1}
.mb-check em{font-style:normal;font-size:12.5px;font-weight:700;color:var(--l-gold-d);background:var(--l-mb-sel);border-radius:6px;padding:2px 7px;margin-right:6px;vertical-align:1px}
.mb-check em.opt{color:var(--l-body-d);background:#EFEBE2}

/* ── 동의 ── */
.mb-consent{border:0;margin:8px 0 22px;padding:0;min-width:0}
.mb-consent legend{margin-bottom:10px}
.mb-check.all{align-items:center;padding:16px 18px;margin-bottom:4px;border-radius:14px;background:#F2EDE2}
.mb-check.all b{display:block;font-weight:700}
.mb-check.all small{display:block;font-size:14px;color:var(--l-body-d)}
.mb-clist{list-style:none;margin:0;padding:0 0 0 4px}
.mb-citem{position:relative;padding:4px 0 10px;border-bottom:1px solid #EAE5DA}
.mb-citem:last-child{border-bottom:0}
.mb-citem>.mb-check{padding-right:56px}
.mb-sum{margin:-6px 0 0 34px;font-size:14.5px;color:var(--l-mut-d);line-height:1.6}
.mb-sub{display:flex;gap:8px;margin:10px 0 2px 34px}
.mb-pill{position:relative}
.mb-pill input{position:absolute;opacity:0;inset:0;width:100%;height:100%;margin:0;cursor:pointer}
.mb-pill span{display:inline-flex;align-items:center;min-height:44px;padding:0 18px;border:1px solid var(--l-mb-bd);border-radius:100px;background:#fff;font-size:15px;font-weight:500;color:var(--l-ink-d)}
.mb-pill input:checked+span{background:var(--l-mb-sel);border-color:var(--l-gold-d);box-shadow:0 0 0 1px var(--l-gold-d) inset;font-weight:700}
.mb-pill input:focus-visible+span{outline:2px solid var(--l-gold-d);outline-offset:2px}
/* '보기'는 항목 오른쪽 위, 펼친 내용은 항목 전체 폭으로 */
.mb-citem .mb-more summary{position:absolute;top:4px;right:0;min-height:44px;padding:0 4px;font-size:14px}
.mb-more-in{margin:10px 0 4px 34px;padding:14px 16px;border-radius:12px;background:#F6F2EA;font-size:14.5px;line-height:1.7;color:var(--l-body-d)}

.mb-more{font-size:14.5px;color:var(--l-body-d);line-height:1.7}
.mb-more summary{display:inline-flex;align-items:center;min-height:44px;color:var(--l-gold-d);font-weight:700;cursor:pointer;list-style:none;text-decoration:underline;text-underline-offset:3px}
.mb-more summary::-webkit-details-marker{display:none}
.mb-more p{margin:6px 0}
.mb-more a{color:var(--l-gold-d);text-decoration:underline;text-underline-offset:3px}
.mb-more.solo{padding:4px 0;border-top:1px solid #EAE5DA}
.mb-more.solo summary{display:flex;text-decoration:none;width:100%;justify-content:space-between}
.mb-more.solo summary::after{content:"+";font-size:20px;font-weight:300;color:var(--l-gold-d)}
.mb-more.solo[open] summary::after{content:"−"}
.mb-more.danger summary{color:var(--l-mb-err)}
.mb-more.danger summary::after{color:var(--l-mb-err)}
.mb-table{width:100%;border-collapse:collapse;margin:8px 0;font-size:14px;line-height:1.6}
.mb-table th,.mb-table td{border:1px solid #E2DCCF;padding:9px 10px;text-align:left;vertical-align:top;color:var(--l-body-d);overflow-wrap:anywhere;background:#fff}
.mb-table th{background:var(--l-cream);color:var(--l-ink-d);font-weight:700;white-space:nowrap}

/* ── 버튼 ── */
.mb-btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;width:100%;min-height:56px;padding:0 22px;border-radius:14px;border:1px solid transparent;font:inherit;font-size:17px;font-weight:700;letter-spacing:-.01em;cursor:pointer;transition:background .2s,border-color .2s,transform .2s;text-decoration:none}
.mb-btn.primary{background:var(--l-ink-d);color:#fff}
.mb-btn.primary:hover{background:#000;transform:translateY(-1px)}
.mb-btn.google{background:#fff;border-color:var(--l-mb-bd);color:var(--l-ink-d)}
.mb-btn.google:hover{border-color:var(--l-ink-d)}
.mb-btn.ghost{width:auto;min-height:48px;background:#fff;border-color:var(--l-mb-bd);color:var(--l-ink-d);font-size:15.5px}
.mb-btn.ghost:hover{border-color:var(--l-ink-d)}
.mb-btn.danger{background:var(--l-mb-err);color:#fff}
.mb-btn[disabled],.mb-btn[aria-busy="true"]{opacity:.6;cursor:progress;transform:none}
.mb-back{display:flex;align-items:center;justify-content:center;width:100%;min-height:48px;margin-top:8px;border:0;background:none;font:inherit;font-size:15.5px;font-weight:500;color:var(--l-mut-d);cursor:pointer}
.mb-back:hover{color:var(--l-ink-d)}
.mb-actions{display:flex;align-items:center;gap:14px;margin-top:8px}
.mb-actions .mb-btn{width:auto;min-width:128px;min-height:50px;font-size:16px}
.mb-saved{font-size:15px;color:var(--l-mb-ok);font-weight:700}
.mb-acct-row{display:flex;flex-wrap:wrap;gap:10px;margin:4px 0 14px}

.mb-or{display:flex;align-items:center;gap:14px;margin:24px 0;font-size:14px;color:var(--l-mut-d)}
.mb-or::before,.mb-or::after{content:"";flex:1;height:1px;background:#E4DFD3}
.mb-alt,.mb-links{margin-top:20px;font-size:15.5px;color:var(--l-body-d);text-align:center}
.mb-alt a{color:var(--l-ink-d);font-weight:700;text-decoration:underline;text-underline-offset:3px}
.mb-links{display:flex;justify-content:center;flex-wrap:wrap;gap:4px 0}
.mb-links a{display:inline-flex;align-items:center;min-height:44px;padding:0 14px;color:var(--l-body-d);font-weight:500;border-right:1px solid #E4DFD3}
.mb-links a:hover{color:var(--l-ink-d)}
.mb-links a:last-child{border-right:0;color:var(--l-ink-d);font-weight:700}

.mb-notice{margin:0 0 22px;padding:16px 18px;border-radius:14px;background:#F2EDE2;font-size:16px;line-height:1.65;color:var(--l-body-d)}
.mb-notice b{display:block;color:var(--l-ink-d);font-weight:700;margin-bottom:2px}
.mb-notice.ok{background:#EEF6F0}
.mb-notice .mb-btn{margin-top:14px}
.mb-notice p{margin:0}

/* 수신 동의 토글 */
.mb-toggle{display:grid;grid-template-columns:auto 1fr;grid-template-rows:auto auto;column-gap:16px;align-items:center;min-height:60px;padding:10px 0;border-bottom:1px solid #EAE5DA;cursor:pointer}
.mb-toggle input{grid-row:1/3;width:50px;height:30px;appearance:none;border-radius:100px;background:#8A857A;position:relative;cursor:pointer;transition:background .2s;margin:0}
.mb-toggle input::after{content:"";position:absolute;top:3px;left:3px;width:24px;height:24px;border-radius:50%;background:#fff;box-shadow:0 1px 2px rgba(0,0,0,.25);transition:transform .2s}
.mb-toggle input:checked{background:var(--l-gold-d)}
.mb-toggle input:checked::after{transform:translateX(20px)}
.mb-toggle input:disabled{opacity:.45;cursor:not-allowed}
.mb-toggle input:focus-visible{outline:2px solid var(--l-gold-d);outline-offset:3px}
.mb-tg-t{font-size:16.5px;color:var(--l-ink-d);font-weight:700}
.mb-tg-d{font-size:14px;color:var(--l-mut-d);font-variant-numeric:tabular-nums}

.mb-log{list-style:none;padding:0;margin:4px 0 8px;font-size:14.5px;font-variant-numeric:tabular-nums}
.mb-log li{display:flex;justify-content:space-between;gap:12px;padding:9px 0;border-bottom:1px solid #EAE5DA}
.mb-log time{color:var(--l-mut-d);white-space:nowrap}

/* 로딩 자리 표시 — 검정 무대 위라 어두운 톤 */
.mb-skel i{display:block;height:220px;margin-bottom:18px;border-radius:22px;background:linear-gradient(90deg,#141417 0,#1D1D21 50%,#141417 100%);background-size:200% 100%;animation:mbsk 1.4s linear infinite}
@keyframes mbsk{to{background-position:-200% 0}}
@media (prefers-reduced-motion:reduce){.mb-skel i{animation:none}}

/* ── 약관 문서(밝은 섹션) — 한 줄 40~45자 ── */
.sub-sec.mb-sec{padding:40px 0 88px}
.mb-doc{max-width:42em;color:var(--l-body-d);font-size:17px;line-height:1.8;font-weight:500}
.mb-doc h2{margin:42px 0 12px;font-family:var(--font);font-size:21px;font-weight:700;color:var(--l-ink-d);letter-spacing:-.02em;line-height:1.4}
.mb-doc h3{margin:24px 0 8px;font-size:17.5px;font-weight:700;color:var(--l-ink-d)}
.mb-doc p{margin:10px 0}
.mb-draft{margin-bottom:28px;padding:14px 18px;border-radius:12px;border:1px solid var(--l-gold-d);background:var(--l-cream-hi);font-size:15.5px;color:var(--l-ink-d)}
.mb-draft b{margin-right:8px;color:var(--l-gold-d)}

/* ── 좁은 화면: 한 칸. 소개는 짧게, 카드는 화면 폭 가득 ── */
@media(max-width:960px){
  .mb-shell.split,.mb-shell.split.my{grid-template-columns:minmax(0,1fr);gap:26px}
  .mb-intro{position:static;padding-top:0}
  .mb-title{margin-top:12px;font-size:34px}
  .mb-lead{margin-top:12px;font-size:16px}
  .mb-points{margin-top:22px}
  .mb-points li{padding:12px 0}
  .mb-points span{font-size:14.5px}
  .mb-toc{display:none}
}
@media(max-width:560px){
  .mb-stage{padding:16px 0 72px}
  .mb-stage .wrap{padding:0 14px}
  .mb-intro{padding:0 4px}
  .mb-card{padding:28px 20px;border-radius:18px}
  .mb-chip span{padding:0 6px;font-size:15.5px}
  .mb-table th{white-space:normal}
}

/* ── 관리자 화면(/admin) ── */
.ad-drop{display:flex;flex-direction:column;gap:4px;margin-top:6px;padding:22px;border:2px dashed #CFC8B8;border-radius:14px;background:#fff;cursor:pointer;text-align:center}
.ad-drop b{color:var(--l-ink-d);font-size:17px}
.ad-drop span{font-size:14.5px;color:var(--l-body-d)}
.ad-drop:hover{border-color:var(--l-gold-d)}
#adFile:focus-visible+.ad-drop{outline:2px solid var(--l-gold-d);outline-offset:2px}
.ad-prev{margin-top:16px;padding:18px;border-radius:14px;background:#F6F2EA;font-size:15.5px}
.ad-prev-list{margin:10px 0;padding-left:18px}
.ad-prev-list small{color:var(--l-mut-d)}
.ad-errs{margin:12px 0;padding:14px;border-radius:12px;background:#FBEDEB;color:var(--l-mb-err)}
.ad-errs ul{margin:8px 0 0;padding-left:18px;max-height:240px;overflow:auto;color:var(--l-ink-d)}
.ad-table-wrap{overflow-x:auto}
.ad-table{min-width:560px}
.ad-table th small{display:block;font-weight:500;color:var(--l-mut-d);font-size:13px}
.ad-table .mb-input{min-height:44px;padding:6px 36px 6px 12px;font-size:15px;background-position:calc(100% - 18px) 19px,calc(100% - 12px) 19px}
.ad-del,.ad-rm{min-height:44px;padding:0 12px;border:1px solid #E2BDB8;border-radius:10px;background:#fff;color:var(--l-mb-err);font:inherit;font-size:14px;cursor:pointer}
.ad-row{display:flex;flex-wrap:wrap;align-items:flex-end;gap:10px}
.ad-row .mb-field{flex:1 1 260px;margin-bottom:0}
.ad-row .mb-btn{width:auto}
.ad-editors{list-style:none;margin:16px 0 0;padding:0}
.ad-editors li{display:flex;align-items:center;gap:12px;padding:10px 0;border-bottom:1px solid #EAE5DA}
.ad-editors li span{flex:1;overflow-wrap:anywhere}
.ad-editors em{font-style:normal;font-size:13.5px;color:var(--l-gold-d);font-weight:700}

/* 관리자 · 게시판 신고 목록 (ADR-080) */
.ad-board{list-style:none;margin:14px 0 0;padding:0;display:flex;flex-direction:column;gap:10px}
.ad-board li{display:flex;flex-direction:column;gap:6px;padding:14px;border:1px solid #E2DCCF;border-radius:12px;background:#fff}
.ad-board li span{font-size:14px;color:#4A4A52}
.ad-hid{color:#A3261B}
.ad-bd-acts{display:flex;gap:8px;flex-wrap:wrap}
.ad-none{color:#4A4A52}

/* 페이지는 dark 로 선언(강제 반전 차단)했지만 이 화면의 입력칸은 밝은 바탕 위 — 입력칸만 밝은 체계로 */
input,select,textarea{color-scheme:light}

/* ══ 관리자 콘솔 (2026-10-05) — 왼쪽 메뉴 + 판. 홈 톤(검정 무대 · 아이보리 카드 · 골드 한 가지 강조) 그대로 ══ */
.ad-stage{padding-top:24px}
.ad-console{display:grid;grid-template-columns:220px minmax(0,1fr);gap:28px;align-items:start;max-width:1320px}
.ad-side{position:sticky;top:96px;display:flex;flex-direction:column;gap:14px;padding:18px;border-radius:18px;background:rgba(255,255,255,.04);border:1px solid rgba(127,161,240,.28)}
.ad-side[hidden]{display:none}
.ad-me{display:flex;flex-direction:column;gap:2px;padding-bottom:12px;border-bottom:1px solid rgba(127,161,240,.25)}
.ad-me b{font-family:var(--font);font-size:19px;color:var(--l-cream-hi)}
.ad-me span{font-size:13px;color:#C9C2B2;overflow-wrap:anywhere}
.ad-nav{display:flex;flex-direction:column;gap:2px}
.ad-nav a{display:flex;align-items:center;min-height:44px;padding:0 12px;border-radius:10px;color:#E8E2D4;font-size:15.5px;font-weight:500;text-decoration:none}
.ad-nav a:hover{background:rgba(127,161,240,.12)}
.ad-nav a[aria-current=page]{background:var(--l-acc);color:#16130D;font-weight:700}
.ad-nav a[hidden]{display:none}
.ad-out{min-height:44px;border:1px solid rgba(127,161,240,.45);border-radius:10px;background:transparent;color:#E8E2D4;font:inherit;font-size:14.5px;cursor:pointer}
.ad-out:hover{background:rgba(127,161,240,.12)}
.ad-main{min-width:0}
.ad-gate{max-width:560px}
.ad-ph{display:flex;flex-wrap:wrap;align-items:baseline;gap:6px 16px;margin:4px 0 16px}
.ad-ph h1{font-family:var(--font);font-size:30px;font-weight:700;color:var(--l-cream-hi);letter-spacing:-.02em}
.ad-sub{font-size:14.5px;color:#C9C2B2}
.ad-pane .mb-card{padding:26px}
.ad-more{font-size:14.5px;font-weight:700;color:var(--l-gold-d);text-decoration:none}
.ad-big{font-size:22px;font-weight:700;color:var(--l-ink-d)}
.ad-big small{font-size:14px;font-weight:500;color:var(--l-mut-d);margin-left:6px}
.ad-mini{list-style:none;margin:10px 0 0;padding:0;display:grid;gap:4px}
.ad-mini li{display:flex;justify-content:space-between;gap:10px;padding:7px 0;border-bottom:1px solid #EAE5DA;font-size:14.5px}
.ad-mini li span{color:var(--l-mut-d);text-align:right}
.ad-kpis{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px;margin-bottom:18px}
.ad-kpi{display:flex;flex-direction:column;gap:4px;padding:18px;border-radius:16px;background:var(--l-cream-hi);color:var(--l-body-d)}
.ad-kpi span{font-size:13.5px;font-weight:700;color:var(--l-mut-d)}
.ad-kpi b{font-size:26px;font-weight:700;color:var(--l-ink-d);letter-spacing:-.02em}
.ad-kpi small{font-size:13px;color:var(--l-mut-d)}
.ad-grid2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 18px}
.ad-bars{list-style:none;margin:12px 0 0;padding:0;display:grid;gap:8px}
.ad-bars li{display:grid;grid-template-columns:96px minmax(0,1fr) 40px;align-items:center;gap:10px;font-size:14.5px}
.ad-bars li span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ad-bars i{display:block;height:12px;border-radius:999px;background:linear-gradient(90deg,var(--l-gold-d),var(--l-acc))}
.ad-bars b{text-align:right;color:var(--l-ink-d)}
/* 회원 */
.ad-tools{display:flex;flex-direction:column;gap:14px}
.ad-search .mb-input{min-height:52px}
.ad-filters{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:10px}
.ad-filters label,.ad-row2 label,.ad-note-f>label{display:flex;flex-direction:column;gap:4px;font-size:13.5px;font-weight:700;color:var(--l-ink-d)}
.ad-filters .mb-input{min-height:46px;padding:8px 34px 8px 12px;font-size:15px;background-position:calc(100% - 18px) 20px,calc(100% - 12px) 20px}
.ad-actions{display:flex;flex-wrap:wrap;align-items:center;gap:10px}
.ad-actions .mb-btn{width:auto;min-height:46px;padding:0 16px;font-size:15px}
.ad-reveal{margin:0 auto 0 0}
.ad-pane .ad-tablecard{padding:10px}
.ad-mtable{min-width:980px;margin:0;font-size:14.5px}
.ad-mtable th,.ad-mtable td{padding:10px;vertical-align:middle}
.ad-mtable thead th{background:#F3EEE3;color:var(--l-ink-d);font-weight:700;white-space:nowrap}
.ad-th{border:0;background:none;padding:0;font:inherit;font-weight:700;color:var(--l-ink-d);cursor:pointer;text-decoration:underline dotted;text-underline-offset:3px}
.ad-th[aria-pressed=true]{color:#7A5A1C;text-decoration:underline}
.ad-name{border:0;background:none;padding:0;font:inherit;font-weight:700;color:var(--l-ink-d);cursor:pointer;text-decoration:underline;text-underline-offset:3px;text-align:left}
.ad-memo-dot{margin-left:6px;color:var(--l-gold-d);font-size:10px;vertical-align:2px}
.ad-st{display:inline-block;padding:2px 9px;border-radius:999px;font-size:12.5px;font-weight:700;margin:0 4px 2px 0;background:#EEE9DE;color:#4A4536}
.ad-st.s-1{background:#FFF1D6;color:#7A4E00}
.ad-st.s-2{background:#E3F2E8;color:#1F6B3A}
.ad-st.s-3{background:#EDEDED;color:#55555C}
.ad-tag{display:inline-block;padding:2px 8px;border-radius:6px;font-size:12.5px;margin:0 4px 2px 0;background:#fff;border:1px solid #DDD5C4;color:#4A4536}
.ad-pager{display:flex;flex-wrap:wrap;gap:6px;padding:12px 4px 4px}
.ad-pg{min-width:44px;min-height:44px;border:1px solid #DDD5C4;border-radius:10px;background:#fff;font:inherit;font-size:14.5px;color:var(--l-ink-d);cursor:pointer}
.ad-pg[aria-current=page]{background:var(--l-ink-d);color:#fff;border-color:var(--l-ink-d)}
.ad-empty{padding:24px}
.ad-note{margin-top:4px;font-size:13.5px;line-height:1.7;color:#C9C2B2}
/* 상세 대화상자 */
.ad-dlg{width:min(720px,calc(100vw - 32px));max-height:calc(100dvh - 48px);padding:0;border:0;border-radius:20px;background:var(--l-cream-hi);color:var(--l-body-d);box-shadow:0 40px 90px -30px rgba(0,0,0,.85)}
.ad-dlg::backdrop{background:rgba(10,9,7,.66)}
.ad-dlg-in{padding:26px 28px 28px;font-size:15.5px;line-height:1.7}
.ad-dlg-h{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:12px}
.ad-dlg-h h2{font-family:var(--font);font-size:24px;color:var(--l-ink-d)}
.ad-dlg-h small{font-family:inherit;font-size:15px;color:var(--l-mut-d);margin-left:6px}
.ad-x{width:44px;height:44px;border:1px solid #DDD5C4;border-radius:12px;background:#fff;font-size:22px;line-height:1;cursor:pointer;color:var(--l-ink-d)}
.ad-dl{display:grid;gap:6px;margin:0 0 18px}
.ad-dl div{display:grid;grid-template-columns:110px minmax(0,1fr);gap:10px;padding:8px 0;border-bottom:1px solid #EAE5DA}
.ad-dl dt{font-weight:700;color:var(--l-ink-d)}
.ad-dl dd{margin:0;overflow-wrap:anywhere}
.ad-h3{margin:18px 0 8px;font-size:17px;font-weight:700;color:var(--l-ink-d)}
.ad-h3 small{font-size:13px;font-weight:500;color:var(--l-mut-d);margin-left:6px}
.ad-note-f{display:flex;flex-direction:column;gap:10px}
.ad-row2{display:grid;grid-template-columns:160px minmax(0,1fr);gap:10px;align-items:end}
.ad-row2 .mb-btn{width:auto}
.ad-note-f textarea.mb-input{min-height:110px;resize:vertical}
.ad-cl{list-style:none;margin:0;padding:0;display:grid;gap:4px;font-size:14.5px}
.ad-cl li{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr) auto;gap:8px;padding:7px 0;border-bottom:1px solid #EAE5DA}
.ad-cl time{color:var(--l-mut-d);font-size:13px}
/* 바로가기 */
.ad-links{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 18px}
.ad-links ul{list-style:none;margin:10px 0 0;padding:0}
.ad-links li{display:flex;justify-content:space-between;gap:10px;padding:10px 0;border-bottom:1px solid #EAE5DA}
.ad-links a{font-weight:700;color:var(--l-ink-d);text-underline-offset:3px}
.ad-links span{font-size:13.5px;color:var(--l-mut-d)}
@media(max-width:1100px){.ad-filters{grid-template-columns:repeat(4,minmax(0,1fr))}.ad-kpis{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:900px){
  .ad-console{grid-template-columns:minmax(0,1fr);gap:14px}
  .ad-side{min-width:0;max-width:100%;position:sticky;top:64px;z-index:5;flex-direction:row;align-items:center;gap:8px;padding:8px;overflow-x:auto;background:#121110;scrollbar-width:none}
  .ad-side::-webkit-scrollbar{display:none}
  .ad-me{display:none}
  .ad-nav{flex-direction:row;gap:4px}
  .ad-nav a{white-space:nowrap;min-height:44px;font-size:14.5px}
  .ad-out{white-space:nowrap;padding:0 12px}
  .ad-grid2,.ad-links{grid-template-columns:minmax(0,1fr)}
  .ad-filters{grid-template-columns:repeat(2,minmax(0,1fr))}
  .ad-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}
  .ad-ph h1{font-size:25px}
  .ad-pane .mb-card{padding:20px 18px}
  .ad-row2{grid-template-columns:minmax(0,1fr)}
  .ad-dl div{grid-template-columns:minmax(0,1fr);gap:2px}
  .ad-dlg-in{padding:20px 18px}
  .ad-cl li{grid-template-columns:minmax(0,1fr)}
}
/* 표 안의 화면 낭독기 전용 글자(position:absolute)가 가로 스크롤 영역 밖으로 빠져 페이지를 넓히지 않게 */
.ad-table-wrap{position:relative}

