@charset "UTF-8";

/* =========================================================
   2026 한국기상학회 정기총회 및 가을학술대회
   디자인 토큰 — 260917_메인페이지.ai 시안에서 추출
   ========================================================= */
:root {
  /* 브랜드 그라데이션: 골드 → 오렌지레드 (GNB, pill 탭, 버튼) */
  --gold: #dfb64b;
  --gold-deep: #d2a22f;
  --orange: #e58c33;
  --orange-deep: #e4882a;
  --red: #e76424;
  --coral: #ec643c;
  --brand-grad: linear-gradient(90deg, var(--gold) 0%, var(--orange) 50%, var(--red) 100%);

  /* 지면 */
  --cream: #fcf7e3;
  --cream-soft: #fdfaee;
  --sand: #f3c75e;
  --surface: #fff;
  --thead: #efefef;

  /* 텍스트 */
  --ink: #2c2517;
  --ink-soft: #6b6353;
  --ink-faint: #9a9282;
  --line: #e8e2cf;
  --line-soft: #f0ece0;

  /* 메인 타일 12색 램프 (따뜻함 → 시원함) */
  --t1: #f0a93c;  --t2: #eea347;  --t3: #ec9b50;  --t4: #e88f57;
  --t5: #e4855c;  --t6: #df7d63;  --t7: #c98a90;  --t8: #a894a8;
  --t9: #8fa8b6;  --ta: #74b0bd;  --tb: #5ea6b6;  --tc: #4e9cb2;

  --radius: 14px;
  --radius-lg: 20px;
  --radius-pill: 999px;
  --shadow: 0 2px 14px rgba(120, 90, 30, .08);
  --shadow-lg: 0 8px 30px rgba(120, 90, 30, .14);

  --wrap: 1200px;
  --gnb-h: 52px;
}

* { box-sizing: border-box; }

html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; }

body {
  margin: 0;
  background: var(--cream);
  color: var(--ink);
  font-family: Pretendard, "Pretendard Variable", -apple-system, BlinkMacSystemFont,
    "Apple SD Gothic Neo", "Malgun Gothic", "맑은 고딕", system-ui, sans-serif;
  font-size: 15px;
  line-height: 1.6;
  word-break: keep-all;       /* 한글 단어 단위 줄바꿈 */
  overflow-wrap: anywhere;    /* 긴 영문 제목 대비 */
}

a { color: inherit; text-decoration: none; }
img { max-width: 100%; height: auto; display: block; }

.wrap { width: min(100% - 32px, var(--wrap)); margin-inline: auto; }
.sr { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }

/* =========================================================
   서브페이지 — 시안(p3~p9) 좌표를 그대로 쓴다.
   --u 는 시안 1단위의 실제 크기. 1920px 이상에서는 1:1.
   ========================================================= */
:root { --u: calc(min(100vw, 1920px) / 1920); }
body { background: #FDF9E3; }

/* 시안 캔버스 폭에 맞춘 중앙 정렬 래퍼 */
.wrap { width: calc(1566 * var(--u)); margin-inline: auto; }

/* ── 헤더 (시안 높이 164) ───────────────────────────── */
.head {
  position: relative; height: calc(164 * var(--u));
  width: min(100vw, 1920px); margin-inline: auto;
}
/* 로고 원형과 로고타입이 붙어 있어 한 덩어리로 추출했다 */
.brand { position: absolute; left: calc(56.8 * var(--u)); top: calc(51.8 * var(--u)); display: block; }
.brand img { width: calc(345 * var(--u)); }

.burger {
  position: absolute; left: calc(1803 * var(--u)); top: calc(48 * var(--u));
  display: flex; flex-direction: column; align-items: center; gap: calc(6 * var(--u));
  background: none; border: 0; padding: 0; cursor: pointer;
  font-family: inherit; font-weight: 700; color: #231916;
  font-size: calc(20.92 * var(--u));
}
.burger i {
  display: block; width: calc(71 * var(--u)); height: calc(9 * var(--u));
  border-radius: calc(5 * var(--u)); background: linear-gradient(90deg, #DFB64B, #E76424);
}
.burger i:nth-child(2) { opacity: .85; }
.burger i:nth-child(3) { opacity: .7; }
.burger span { margin-top: calc(3 * var(--u)); letter-spacing: -.02em; }

/* ── GNB (시안 y=164, 높이 55) ──────────────────────── */
.gnb {
  background: linear-gradient(90deg, #E0B749, #E58D33 50%, #E85A20);
  height: calc(55 * var(--u));
  position: sticky; top: 0; z-index: 40;
}
.gnb__in {
  width: auto; height: 100%; display: flex; justify-content: center;
  gap: calc(50 * var(--u)); overflow-x: auto; scrollbar-width: none;
}
.gnb__in::-webkit-scrollbar { display: none; }
.gnb a {
  color: #fff; font-weight: 700; white-space: nowrap; display: flex; align-items: center;
  font-size: calc(28.41 * var(--u)); letter-spacing: -.02em;
}
.gnb a[aria-current] { color: #231916; }

/* ── 페이지 제목 + 밑줄 ─────────────────────────────── */
.ptitle { text-align: center; padding-top: calc(56 * var(--u)); }
.ptitle h1 {
  margin: 0; font-weight: 400; color: #3E3A39;
  font-size: calc(32.16 * var(--u)); letter-spacing: -.02em;
}
.ptitle h1::after {
  content: ""; display: block; margin: calc(8 * var(--u)) auto 0;
  width: calc(62 * var(--u)); height: calc(3 * var(--u)); background: #DCDDDD;
}
/* 섹션 제목 — "2026년 … 일정표", "기후분과", "특별세션1: …" */
.lede {
  text-align: center; font-weight: 700; color: #3E3A39;
  font-size: calc(38.01 * var(--u)); letter-spacing: -.03em;
  margin: calc(49 * var(--u)) 0 0;
}
/* 탭 패널 안(구두발표·특별세션)에서는 pill 그룹 바로 아래라 간격이 좁다 */
[role="tabpanel"] .lede { margin-top: calc(30 * var(--u)); }
/* 특별세션 시안은 섹션 제목 위 여백이 더 넓다 */
.m-ss [role="tabpanel"] .lede { margin-top: calc(87 * var(--u)); }

/* ── pill 탭 (시안 높이 66, 안쪽 여백 9) ────────────── */
.pills {
  display: flex; width: fit-content; max-width: 100%; margin: calc(23 * var(--u)) auto 0;
  padding: calc(11 * var(--u)); border-radius: 999px;
  background: linear-gradient(90deg, #E1B046, #E58D33 50%, #E85D22);
  overflow-x: auto; scrollbar-width: none;
}
.pills::-webkit-scrollbar { display: none; }
/* 학회안내 하위 탭은 GNB 바로 아래에 온다 (시안 y=262) */
main > .pills:first-child { margin-top: calc(43 * var(--u)); }
.pills button, .pills a {
  flex: none; border: 0; background: none; cursor: pointer; white-space: nowrap;
  color: #fff; font-weight: 700; font-family: inherit; text-align: center;
  font-size: calc(var(--tabfs, 24.37) * var(--u)); letter-spacing: -.02em;
  width: calc(var(--tabw, 202.6) * var(--u));
  height: calc(47 * var(--u)); line-height: calc(47 * var(--u));
  padding: 0; border-radius: 999px; transition: background .18s, color .18s;
}
.pills button:hover, .pills a:hover { background: rgba(255, 255, 255, .18); }
.pills button[aria-selected="true"], .pills a[aria-selected="true"] { background: #fff; color: #3E3A39; }
/* 검색 중에는 탭이 전부 펼쳐지므로 선택 표시를 흐리게 */
.pills.is-off button[aria-selected="true"] { background: rgba(255, 255, 255, .28); color: #fff; }

/* hidden 속성은 어떤 display 규칙보다 우선한다 — 900px 이하에서 표 행을 block 으로 바꾸면
   브라우저 기본 [hidden] 이 밀려 검색으로 감춘 행이 다시 보이는 문제가 있었다 */
[hidden] { display: none !important; }

/* ── 세션 헤더 (일시/세션명/장소/좌장 + PDF) ────────── */
.shead {
  display: flex; flex-wrap: nowrap; align-items: flex-end;
  gap: calc(14 * var(--u)) calc(28 * var(--u));
  margin-top: calc(45 * var(--u));
}
/* 세션명이 길면 뱃지들만 두 줄로 접히고 PDF 버튼은 첫 줄 오른쪽에 남는다 (시안: 한 줄 + 우측 버튼) */
.shead__tags {
  display: flex; flex-wrap: wrap; align-items: center;
  gap: calc(14 * var(--u)) calc(28 * var(--u));
  flex: 1 1 auto; min-width: 0;
}
.tag { display: inline-flex; align-items: center; gap: calc(11 * var(--u)); font-size: calc(27.29 * var(--u)); }
.tag > b {
  flex: none; color: #fff; font-weight: 700; letter-spacing: -.02em;
  background: linear-gradient(90deg, #E2AC43, #E76D26);
  padding: calc(5 * var(--u)) calc(21 * var(--u));
  border-radius: 999px;
}
.tag > span { font-weight: 700; color: #231916; letter-spacing: -.03em; }
.tag--muted > b { background: #BDB6A4; }

.pdf {
  flex: none; margin-left: auto; align-self: flex-end;
  width: calc(163 * var(--u)); height: calc(54 * var(--u));
  display: inline-flex; align-items: center; justify-content: center; gap: calc(8 * var(--u));
  background: linear-gradient(135deg, #D9A13F, #DE9236);
  color: #fff; font-weight: 700; font-size: calc(27.29 * var(--u)); letter-spacing: -.03em;
  border-radius: calc(10 * var(--u)) calc(10 * var(--u)) 0 0;
}
.pdf[aria-disabled="true"] { background: #CFC8B4; cursor: not-allowed; font-size: calc(23 * var(--u)); }

/* ── 카드 (시안 x=177, 폭 1566) ─────────────────────── */
.card {
  background: #fff; border-radius: calc(8 * var(--u));
  padding: calc(40 * var(--u)) calc(83 * var(--u));
  margin-top: calc(2 * var(--u));
}
.card + .shead { margin-top: calc(62 * var(--u)); }
/* 세션 헤더가 붙는 카드는 시안상 위 여백이 더 크다 */
.shead + .card { padding-top: calc(53 * var(--u)); }

/* ── 표 공통 (시안 폭 1400, 헤더 50) ────────────────── */
.ptable, .stable { width: 100%; border-collapse: collapse; font-size: calc(24.37 * var(--u)); color: #3E3A39; }
.ptable thead th, .stable thead th {
  background: #EFEFEF; font-weight: 700; letter-spacing: -.02em;
  height: calc(50 * var(--u)); padding: 0 calc(10 * var(--u)); white-space: nowrap;
}
.ptable td, .stable td { border-bottom: 1px solid #D0D1D1; vertical-align: middle; }
.ptable tbody tr:last-child td, .stable tbody tr:last-child td { border-bottom: 0; }

/* 발표목록: 발표시간 / 제목·저자 / 발표자·소속. 시안 행 높이 117 고정. */
.ptable { line-height: 1.25; }
.ptable td { height: calc(117 * var(--u)); padding: calc(10 * var(--u)); }
.ptable .c-time { width: 27.14%; text-align: center; white-space: nowrap; }
.ptable .c-who  { width: 35.00%; text-align: center; line-height: 1.32; }
.ptable .c-who b { display: block; font-weight: 400; }
.ptable .c-who span { display: block; }
.t-title { font-weight: 700; letter-spacing: -.03em; margin: 0; line-height: 1.28; }
.t-authors { margin: calc(6 * var(--u)) 0 0; font-weight: 700; text-align: center; letter-spacing: -.03em; }
.inv { color: #E4511E; }

/* 일정표: 시간 / 장소 / 내용. 시안은 행 높이가 96으로 고정돼 있다. */
.stable { line-height: 1.25; }
.stable td {
  height: calc(96 * var(--u)); padding: calc(8 * var(--u)) calc(10 * var(--u));
  text-align: center;
}
.stable .c-when  { width: 18.93%; border-right: 1px solid #D6D7D7; }
.stable .c-where { width: 19.00%; border-right: 1px solid #D6D7D7; }
.stable thead th + th { border-left: 1px solid #D6D7D7; }
.stable .what { position: relative; }
.stable .what b { display: block; font-weight: 700; letter-spacing: -.03em; }
.stable .what > span { display: block; }
/* 구분 칩은 시안처럼 내용 칸 오른쪽에 세로 중앙 정렬 */
.stable .what > span.chip {
  position: absolute; right: calc(16 * var(--u)); top: 50%; transform: translateY(-50%);
  margin: 0;
}
.chip {
  display: inline-block; vertical-align: middle; margin-left: calc(14 * var(--u));
  background: #E9E5DA; color: #6B6353; font-weight: 700; letter-spacing: -.03em;
  font-size: calc(18.55 * var(--u)); padding: calc(4 * var(--u)) calc(18 * var(--u));
  border-radius: 999px;
}

/* ── 일자 라벨 바 (일정표) ──────────────────────────── */
.daybar {
  display: inline-block; margin: calc(57 * var(--u)) 0 0;
  background: linear-gradient(90deg, #D7B14A, #DB8734);
  color: #fff; font-weight: 700; letter-spacing: -.03em;
  font-size: calc(26.67 * var(--u));
  height: calc(53 * var(--u)); line-height: calc(53 * var(--u));
  padding: 0 calc(30 * var(--u)) 0 calc(24 * var(--u));
  border-radius: calc(8 * var(--u)) calc(24 * var(--u)) 0 0;
}
.daybar + .card { margin-top: 0; border-top-left-radius: 0; }

/* ── 포스터 안내문 / 검색 ───────────────────────────── */
.notes {
  background: #FFFDF4; border: 1px solid #E8E2CF; border-radius: calc(8 * var(--u));
  padding: calc(22 * var(--u)) calc(40 * var(--u)); margin-top: calc(38 * var(--u));
}
.notes ol { margin: 0; padding-left: calc(28 * var(--u)); color: #6B6353; font-size: calc(21 * var(--u)); }
.notes li + li { margin-top: calc(6 * var(--u)); }

.filter { display: flex; flex-wrap: wrap; gap: calc(14 * var(--u)); align-items: center; margin-top: calc(24 * var(--u)); }
.filter input[type="search"] {
  flex: 1 1 calc(400 * var(--u)); min-width: 0; font-family: inherit;
  font-size: calc(22 * var(--u)); padding: calc(12 * var(--u)) calc(26 * var(--u));
  border: 1px solid #E8E2CF; border-radius: 999px; background: #fff; color: #3E3A39;
}
.filter input[type="search"]:focus { outline: calc(3 * var(--u)) solid #E58D33; outline-offset: 1px; }
.filter select {
  font-family: inherit; font-size: calc(22 * var(--u)); padding: calc(12 * var(--u)) calc(20 * var(--u));
  border: 1px solid #E8E2CF; border-radius: 999px; background: #fff; color: #3E3A39;
}
.count { color: #6B6353; font-size: calc(21 * var(--u)); white-space: nowrap; }
.filter label.count { display: inline-flex; align-items: center; gap: calc(8 * var(--u)); cursor: pointer; }
.filter label.count input { width: calc(20 * var(--u)); height: calc(20 * var(--u)); accent-color: #E4882A; }
.filter [data-count] { margin-left: auto; font-weight: 700; color: #E4882A; }
/* 구두발표·특별세션 검색창 — 시안(260923): 제목 아래 40, 폭 854·높이 53 중앙, 아래 58 두고 탭 */
.filter--sessions { justify-content: center; margin: calc(40 * var(--u)) auto 0; }
.filter--sessions input[type="search"] {
  flex: 0 1 calc(854 * var(--u)); height: calc(53 * var(--u)); box-sizing: border-box;
  padding: 0 calc(76 * var(--u)) 0 calc(30 * var(--u)); border: 1px solid #DCD6C4;
  background: #fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23A39B8A' stroke-width='2.2' stroke-linecap='round'%3E%3Ccircle cx='10.5' cy='10.5' r='7'/%3E%3Cpath d='M16 16l5 5'/%3E%3C/svg%3E") no-repeat right calc(26 * var(--u)) center / calc(26 * var(--u)) auto;
}
.filter--sessions input[type="search"]::placeholder { color: #A39B8A; }
.filter--sessions + .pills { margin-top: calc(58 * var(--u)); }

.ptable .c-id { width: calc(120 * var(--u)); text-align: center; font-weight: 700; color: #E4882A; white-space: nowrap; }
.ptable .c-div { width: calc(180 * var(--u)); text-align: center; }
.award {
  display: inline-block; vertical-align: middle; margin-left: calc(10 * var(--u));
  background: #FDEEE0; color: #E4511E; font-weight: 700; white-space: nowrap;
  font-size: calc(17 * var(--u)); padding: calc(3 * var(--u)) calc(14 * var(--u)); border-radius: 999px;
}
.empty { text-align: center; color: #9A9282; padding: calc(60 * var(--u)) 0; font-size: calc(22 * var(--u)); }

/* ── 본문 페이지 (학회안내·후원광고·초청강연) ───────── */
/* 시안은 제목을 카드 안에 넣고 본문을 19.6pt 로 짠다 */
/* 학회안내 계열 카드는 시안상 본문 카드보다 좁다 (1470 vs 1566) */
.card--doc {
  width: calc(1470 * var(--u)); margin: calc(37 * var(--u)) auto 0;
  padding: calc(10 * var(--u)) calc(55 * var(--u)) calc(60 * var(--u));
}
.card--doc .ptitle { padding-top: calc(27 * var(--u)); }
.prose { font-size: calc(19.6 * var(--u)); color: #3E3A39; line-height: 1.8; margin-top: calc(50 * var(--u)); }
.prose p { margin: 0 0 calc(20 * var(--u)); }
/* 어드민 에디터로 넣은 이미지(배치도·노선도 등) */
.prose img { margin: calc(24 * var(--u)) auto; border-radius: calc(8 * var(--u)); max-width: 100%; }
.prose ul, .prose ol { padding-left: calc(28 * var(--u)); margin: 0 0 calc(20 * var(--u)); }
.prose a { color: #1B6BB5; text-decoration: underline; }
.prose h2 { font-size: calc(30 * var(--u)); margin: calc(40 * var(--u)) 0 calc(14 * var(--u)); }
/* 회장 인사말 — 시안 실측: 사진 x279.9 y517.2 289.8x388.9, 본문 단 x601.7 */
.greet { display: grid; grid-template-columns: calc(289.8 * var(--u)) 1fr; gap: calc(31.9 * var(--u)); align-items: start; }
.greet__photo { width: calc(289.8 * var(--u)); height: calc(388.9 * var(--u)); object-fit: cover; }
.greet__body { font-size: calc(19.6 * var(--u)); line-height: calc(40 * var(--u)); }
.greet__body > p { margin: 0; }
.greet__note { margin-top: calc(40 * var(--u)) !important; color: #9A9282; font-size: calc(17 * var(--u)); line-height: 1.7; }
.sign { margin-top: calc(80 * var(--u)) !important; }
.sign b { font-size: calc(23.52 * var(--u)); font-weight: 700; }
.todo {
  border: 1px dashed #DFB64B; background: #FFFDF4; border-radius: calc(8 * var(--u));
  padding: calc(28 * var(--u)) calc(34 * var(--u)); color: #6B6353; font-size: calc(23 * var(--u));
}
.todo b { color: #E4882A; }

/* ── 푸터 ───────────────────────────────────────────── */
.foot {
  text-align: center; color: #231916; opacity: .55; font-weight: 300;
  font-size: calc(13 * var(--u)); padding: calc(60 * var(--u)) 0 calc(50 * var(--u));
}

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

/* =========================================================
   메인 스테이지 — 시안 좌표를 그대로 쓰는 절대배치 레이아웃.
   --u 가 시안 1단위의 실제 크기다 (시안폭 -> 뷰포트폭 축척).
   ========================================================= */
.main { background: #F4C65B; overflow-x: hidden; }

.stage {
  position: relative;
  width: min(100vw, calc(var(--dw) * 1px));
  aspect-ratio: var(--dw) / var(--dh);
  margin-inline: auto;
  --u: calc(min(100vw, var(--dw) * 1px) / var(--dw));
}
.stage > *, .tile > *, .ttl > * { position: absolute; margin: 0; }

.stage__bg { inset: 0; width: 100%; height: 100%; }
.art { object-fit: contain; pointer-events: none; }
.logo { pointer-events: auto; }

/* ── 타이틀 ─ 시안은 구간마다 독립된 골드→레드 그라데이션 ── */
.ttl { inset: 0; font-weight: 800; pointer-events: none; }
.ink {
  white-space: nowrap; line-height: 1; font-weight: 800; letter-spacing: -.01em;
  -webkit-background-clip: text; background-clip: text;
  color: transparent; -webkit-text-fill-color: transparent;
}
.stage--pc .ink:nth-of-type(1) { background-image: linear-gradient(90deg, #DCA14D, #DD602A); }
.stage--pc .ink:nth-of-type(2) { background-image: linear-gradient(90deg, #D8B04E, #DC6128); }
.stage--pc .ink:nth-of-type(3) { background-image: linear-gradient(90deg, #DAB456, #DC5F27); }
.stage--m  .ink:nth-of-type(1) { background-image: linear-gradient(90deg, #DCA14D, #DD602A); }
.stage--m  .ink:nth-of-type(2) { background-image: linear-gradient(90deg, #D8B04E, #DC6128); }
.stage--m  .ink:nth-of-type(3) { background-image: linear-gradient(90deg, #DAB456, #DC5F27); }

/* PDF 의 글리프 상자 기준 좌표를 CSS line-height:1 기준으로 옮기는 보정.
   폰트 크기에 비례하므로 em 으로 두면 모든 크기에서 맞는다. */
.date, .venue, .copy { transform: translateY(.22em); }
.date { white-space: nowrap; line-height: 1; }
.venue { white-space: nowrap; line-height: 1; font-weight: 700; color: #231916; letter-spacing: -.039em; }
.copy { white-space: nowrap; line-height: 1; font-weight: 300; color: #231916; opacity: .55; }

/* ── 타일 ───────────────────────────────────────────── */
.tilegrid { inset: 0; }
.tile {
  position: absolute; display: block; color: #fff;
  border-radius: calc(12 * var(--u));
  transition: transform .18s ease, filter .18s ease;
}
.tile:hover { transform: translateY(calc(-6 * var(--u))); filter: brightness(1.04); }
.tile:focus-visible { outline: calc(3 * var(--u)) solid #fff; outline-offset: calc(2 * var(--u)); }

/* 아이콘은 시안에서 뽑은 원본 벡터. --ix/--iy 는 타일 기준 오프셋. */
.tile__icon {
  left: calc(var(--ix) * 100%); top: calc(var(--iy) * 100%);
  width: calc(var(--iw) * 100%); height: calc(var(--ih) * 100%);
}
.tile__label {
  left: 0; width: 100%; text-align: center;
  font-weight: 800; line-height: 1; letter-spacing: -.03em; white-space: nowrap;
  transform: translateY(.28em);   /* PDF 글리프상자 -> CSS 라인박스 보정 */
}

/* ── 모바일 전체보기 버튼 ───────────────────────────── */
.more {
  display: flex; flex-direction: column; align-items: center; gap: calc(9 * var(--u));
  background: none; border: 0; cursor: pointer; padding: 0;
  font-family: inherit; font-weight: 700; color: #231916;
}
.more i {
  display: block; width: calc(78 * var(--u)); height: calc(11 * var(--u));
  border-radius: calc(6 * var(--u));
  background: linear-gradient(90deg, #DFB64B, #E76424);
}
.more i:nth-child(2) { opacity: .85; }
.more i:nth-child(3) { opacity: .7; }

/* ── PC / MOBILE 전환 ───────────────────────────────── */
.stage--m { display: none; }
@media (max-width: 820px) {
  .stage--pc { display: none; }
  .stage--m { display: block; }
}

/* =========================================================
   좁은 화면 — 시안 1920 캔버스를 그대로 줄이면 5px 글씨가 되므로
   기준 캔버스를 640으로 바꾸고 표는 카드형 행으로 전환한다.
   ========================================================= */
@media (max-width: 900px) {
  :root { --u: calc(100vw / 640); }

  .wrap { width: calc(100vw - 28px); }

  .head {
    height: auto; padding: 14px 16px;
    display: flex; align-items: center; justify-content: space-between;
  }
  .brand { position: static; }
  .brand img { width: min(58vw, 260px); }
  .burger { position: static; font-size: 11px; gap: 4px; }
  .burger i { width: 28px; height: 4px; border-radius: 2px; }
  .burger span { margin-top: 2px; }

  /* 메뉴바 — 8개를 스크롤 없이 두 줄(4+4)로. 시안(260923 모바일)은 한 줄이지만 글자가 9px 이하로
     작아져 두 줄로 결정했다 (실장 결정 2026-09-23) */
  .gnb { height: auto; }
  .gnb__in { flex-wrap: wrap; justify-content: center; gap: 0; padding: 3px 6px; overflow: visible; }
  .gnb a { flex: 0 0 25%; justify-content: center; font-size: 13px; padding: 8px 2px; letter-spacing: -.03em; }

  /* 탭 — 시안(260923 모바일)대로 가로 스크롤 대신 두 줄로 접힌다 */
  main > .pills:first-child { margin-top: 18px; }
  .pills {
    flex-wrap: wrap; justify-content: center; row-gap: 2px;
    padding: 6px; margin-top: 16px; border-radius: 22px; overflow: visible;
  }
  .pills button, .pills a {
    width: auto; height: auto; line-height: 1.2; letter-spacing: -.03em;
    padding: 8px 8px; font-size: 12px;
  }
  .pills button.long { font-size: 10px; }          /* 긴 라벨은 시안처럼 작게 — 구두발표 3+3 */
  .m-ss .pills button { font-size: 11px; padding-inline: 7px; }  /* 특별세션 5+5 */

  .ptitle { padding-top: 26px; }
  .ptitle h1 { font-size: 19px; }
  .ptitle h1::after { margin-top: 10px; width: 46px; height: 2px; }
  .lede, [role="tabpanel"] .lede, .m-ss [role="tabpanel"] .lede {
    font-size: 20px; margin-top: 22px;
  }

  /* 세션 헤더 — 뱃지는 줄바꿈, PDF 버튼은 그 아래 오른쪽에서 카드 윗선에 붙는다 (시안 260923 모바일) */
  .shead { flex-wrap: wrap; margin-top: 24px; gap: 8px 10px; }
  .shead__tags { flex-basis: 100%; gap: 8px 10px; }
  .tag { font-size: 14px; gap: 6px; }
  .tag > b { padding: 3px 11px; font-size: 12.5px; }
  .pdf {
    margin-left: auto; width: auto; height: auto; padding: 7px 16px;
    font-size: 13px; border-radius: 8px 8px 0 0;
  }
  .pdf[aria-disabled="true"] { font-size: 12.5px; }

  .card { padding: 14px 10px; margin-top: 8px; border-radius: 10px; }
  .shead + .card { margin-top: 0; padding-top: 12px; }
  .daybar {
    height: auto; line-height: 1.2; font-size: 15px;
    padding: 8px 20px 8px 16px; margin-top: 26px; border-radius: 8px 18px 0 0;
  }

  /* 표 — 시안(260923 모바일)대로 좁은 화면에서도 3열(발표시간 / 제목·저자 / 발표자·소속)을 유지한다.
     일정표·포스터도 같은 규칙으로 맞춰 표 형식을 통일한다 (발주처 지적: 표 형식 일관성) */
  .ptable, .stable { font-size: 12px; line-height: 1.3; table-layout: fixed; }
  .ptable thead th, .stable thead th { font-size: 12px; height: 32px; padding: 0 4px; white-space: normal; }
  .ptable td { height: auto; padding: 9px 4px; }
  .ptable .c-time { width: 76px; font-size: 11px; letter-spacing: -.02em; }
  .ptable .c-who  { width: 88px; font-size: 11.5px; line-height: 1.3; }
  .t-title { font-size: 12px; letter-spacing: -.02em; }
  .t-authors { margin-top: 3px; font-size: 11px; font-weight: 400; color: #6B6353; }
  .ptable .c-id  { width: 46px; font-size: 11px; }
  .ptable .c-div { width: 40px; font-size: 11px; padding-inline: 2px; }
  .award { display: block; width: fit-content; margin: 3px auto 0; font-size: 10px; padding: 1px 7px; }
  .stable td { height: auto; padding: 8px 4px; }
  .stable .c-when  { width: 74px; font-size: 11px; letter-spacing: -.02em; white-space: nowrap; }
  .stable .c-where { width: 60px; font-size: 11.5px; }
  .stable .what > span.chip { position: static; transform: none; display: inline-block; margin: 3px 0 0; font-size: 10.5px; }

  .filter { gap: 8px; margin-top: 16px; }
  .filter input[type="search"] { flex: 1 1 100%; font-size: 14px; padding: 10px 16px; }
  .filter--sessions { margin: 12px auto 0; }
  .filter--sessions input[type="search"] {
    flex: 0 1 76%; height: 38px; padding: 0 42px 0 16px;
    background-position: right 13px center; background-size: 18px auto;
  }
  .filter--sessions + .pills { margin-top: 14px; }
  .filter select { font-size: 14px; padding: 10px 14px; }
  .count { font-size: 12.5px; }
  .filter label.count input { width: 15px; height: 15px; }
  .notes { padding: 14px 18px; margin-top: 20px; border-radius: 10px; }
  .notes ol { font-size: 13px; padding-left: 18px; }

  .card--doc { width: auto; margin: 18px auto 0; padding: 6px 14px 26px; }
  .card--doc .ptitle { padding-top: 14px; }
  .greet { grid-template-columns: 1fr; gap: 16px; }
  .greet__photo { width: 168px; height: 225px; }
  .greet__body { font-size: 15px; line-height: 1.85; }
  .greet__note { font-size: 12.5px; margin-top: 20px !important; }
  .sign { margin-top: 28px !important; font-size: 15px; }
  .sign b { font-size: 17px; }
  .prose { font-size: 15px; margin-top: 24px; line-height: 1.75; }
  .prose img { margin: 16px auto; border-radius: 8px; }
  .prose ul, .prose ol { padding-left: 20px; }
  .todo { padding: 18px 20px; font-size: 14px; }
  .empty { font-size: 14px; padding: 36px 0; }
  .foot { font-size: 11px; padding: 30px 0 26px; }
}
