:root{
  color-scheme: light;

  /* ═══ 사암 (Sandstone) — 2026-09-05 채택. 앙코르 사암·라테라이트 팔레트 ═══
     🔴 인접 색 차이가 작다(#EFE7D8 / #F7F1E4 / #F1E7D2). 반올림하면 위계가 사라진다. */

  /* 지면 — 사암 4단 */
  --sand-bg:#EFE7D8; --sand-surface:#F7F1E4; --sand-surface-2:#FAF5EA;
  --sand-raise:#F1E7D2; --sand-white:#FFFDF7;

  /* 잉크 */
  --ink:#3E3226; --ink-2:#4E4635; --text:#5E5240; --text-2:#6E6046;
  /* 🔴 핸드오프 원값(#8A7A61 / #9A8A70 / #A2937B / #B9AA90)은 사암 바탕에서
     대비가 3.39 / 2.74 로 WCAG AA(4.5) 에 못 미친다 — 라벨과 영문 줄이 거의 전부 미달이었다.
     위계(네 단계 간격)는 그대로 두고 계단 전체를 한 단 어둡게 내린다. */
  --muted:#544737; --muted-2:#5F5240; --faint:#675A46; --faint-2:#6F6049;

  /* 선 */
  --line:#E0D4BE; --line-2:#E6DBC6; --line-3:#DFD2BA; --line-4:#DDD0B7;
  --line-strong:#C9BCA2; --line-dash:#D6C7AB;

  /* 강조 — 🔴 상태색이 아니다. 배지에 절대 쓰지 말 것 */
  --laterite:#A15A38; --laterite-dk:#8E4B2C; --laterite-ink:#6F5528; --brass:#C09857;

  /* 15일 밴드 */
  --band-move:#6D6350; --band-pp:#4E4635; --band-retreat:#A15A38;
  --band-province:#7C7259; --band-siemreap:#9E9679;

  /* 상태 배지 4종 — 빨강 없음 */
  --st-ok-bg:#E8F0E6;  --st-ok-fg:#3D6B3F;
  --st-tk-bg:#F5EFE0;  --st-tk-fg:#7A6323;
  --st-na-bg:#EDEAE0;  --st-na-fg:#57534A;
  --st-out-bg:#E7EDF3; --st-out-fg:#31567A;

  /* ── 기존 이름 → 사암으로 잇는다. 다른 화면들이 저절로 따라온다 ── */
  --bg:var(--sand-bg); --surface:var(--sand-surface);
  --primary:var(--ink);          /* 구 인디고 #2B3A67 폐기 */
  --primary-soft:var(--sand-raise); --primary-line:var(--line-2);
  --ink-soft:var(--text-2);
  --flag-red:var(--laterite);    /* 상단 띠 자리 — 라테라이트로 */
  --ok-bg:var(--st-ok-bg);   --ok-fg:var(--st-ok-fg);
  --tk-bg:var(--st-tk-bg);   --tk-fg:var(--st-tk-fg);
  --na-bg:var(--st-na-bg);   --na-fg:var(--st-na-fg);
  --out-bg:var(--st-out-bg); --out-fg:var(--st-out-fg);
  --b1:var(--band-pp); --b2:var(--band-retreat); --b3:var(--band-province); --b4:var(--band-siemreap);

  --font-display:'Gowun Batang','Noto Serif KR',serif;
  --font-body:'Noto Sans KR',system-ui,-apple-system,sans-serif;
  --font-mono:'IBM Plex Mono',ui-monospace,SFMono-Regular,monospace;
}
*{box-sizing:border-box}
body{margin:0;background:var(--bg);color:var(--text);
  font-family:var(--font-body);font-size:12.5px;line-height:1.6;
  -webkit-text-size-adjust:100%}
/* 🔴 iOS 에서 100vh 는 주소창을 뺀 값이 아니라 「큰 뷰포트」다 —
   그만큼 넘쳐서 하단이 잘린다. dvh 가 실제 보이는 높이다. */
.wrap{max-width:720px;margin:0 auto;background:var(--sand-bg);
  min-height:100vh;min-height:100dvh;display:flex;flex-direction:column}
.wrap > .pad,.wrap > .gatebox{flex:1}
a{color:inherit;text-decoration:none}
/* 🔴 UA 스타일시트가 폼 요소의 color 를 재설정한다 — font:inherit 만으로는 색이 안 따라온다.
   크로미움은 검정으로 떨어져 멀쩡해 보이지만 iOS Safari 에서는 다른 색이 되어,
   이름 고르기 화면(.pick 은 button_to 가 만든 <button>)의 사람 이름이
   「거의 흰색」으로 보였다. 실사고 — 한 줄로 이 부류를 통째로 막는다.
   개별 규칙에서 색을 바꾸고 싶으면 그 규칙에 color 를 명시하면 특이도로 이긴다. */
button,input,select,textarea,summary{color:inherit}
/* 🔴 크메르 격자 — CSS 만. 불투명도 .05 를 올리지 말 것.
   .08 이 되면 저대역 기기의 낮은 대비 화면에서 지저분해진다. */
.bar{background-color:var(--ink);color:#F2E9D8;padding:18px 18px 20px;
  background-image:
    repeating-linear-gradient( 45deg,rgba(255,255,255,.05) 0 1px,transparent 1px 11px),
    repeating-linear-gradient(-45deg,rgba(255,255,255,.05) 0 1px,transparent 1px 11px);
  display:block}
.bar .barhead{display:flex;justify-content:space-between;align-items:baseline}
.bar .mark{font:500 10px var(--font-mono);letter-spacing:.22em;color:#C9A96A;
  font-family:var(--font-mono),"Noto Sans Khmer",sans-serif}
.bar b{display:block;font:700 27px/1.25 var(--font-display);letter-spacing:-.01em;margin:9px 0 0;color:#F2E9D8}
.bar small{display:block;font:400 11.5px/1.5 var(--font-body);color:rgba(242,233,216,.66);margin-top:4px}
.pad{padding:18px 18px 20px}
/* 🔴 노란 배너가 시선을 먼저 뺏었다. 정작 봐야 할 것은 그 아래다. */
.demo{background:transparent;color:var(--muted-2);font-size:10.5px;padding:9px 18px 0;text-align:center;line-height:1.45}
/* 🔴 카드가 전부 똑같으면 무엇이 중요한지 화면이 말해주지 않는다.
   기본 카드는 테두리를 없애고 아주 옅은 그림자만 — 배경이 옅은 파랑이라 그것으로 뜬다. */
/* 🔴 그림자를 쓰지 않는다. 사암 위계는 색면과 테두리로 만든다. */
.card{background:var(--sand-surface);border:1px solid var(--line-2);border-radius:12px;
  padding:13px;margin-bottom:11px}
.sec{display:flex;align-items:baseline;justify-content:space-between;margin:20px 0 9px}
.sec:first-child{margin-top:0}
.sec h4{margin:0;font:700 13px var(--font-display);color:var(--ink)}
.sec{margin:24px 0 12px;gap:8px}
/* 제목과 우측 라벨 사이를 헤어라인이 채운다 */
.sec::before{content:"";order:1;flex:1;height:1px;background:var(--line-3)}
.sec > :not(h4){order:2;font:400 10px var(--font-mono);color:var(--muted-2);letter-spacing:.06em}
.sec span,.sec a{color:var(--muted-2);font-variant-numeric:tabular-nums}
/* 🔴 좌우 비대칭이 이 화면의 논지다 — 진짜 마감은 출국일이 아니라 11월 중순.
   두 칸을 똑같이 그리면 리디자인의 요점이 사라진다. */
.dday{display:flex;gap:1px;background:var(--line);border-bottom:1px solid var(--line);
  margin:0 -18px 18px}
.dd{flex:1;background:var(--sand-surface);padding:15px 16px 14px}
.dd span{display:block;font:400 10.5px var(--font-body);color:var(--muted)}
.dd b{display:block;font:500 40px/1 var(--font-mono);color:var(--ink);font-variant-numeric:tabular-nums;letter-spacing:-.03em;margin-top:6px}
.dd em{font-style:normal;display:block;font:400 10.5px var(--font-mono);color:var(--muted);margin-top:5px}
.dd.goal{background:var(--sand-raise)}
.dd.goal b{color:var(--laterite)}
.dd.goal span,.dd.goal em{color:var(--laterite-ink)}
/* 🔴 막대그래프 금지. 분모에 아직 물어볼 시점이 안 된 것이 섞여 있어
   진행률로 읽히면 오독이다. 숫자만 쓰고 중요도는 상단 규칙선 굵기로 말한다. */
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:10px 12px;background:transparent}
.cell{background:transparent;padding:7px 0 0;border-top:2px solid var(--line-strong)}
.cell:nth-child(-n+2){border-top-color:var(--ink)}
.cell span{display:block;font:400 11px var(--font-body);color:var(--muted)}
.cell b{display:block;font:500 22px/1.1 var(--font-mono);color:var(--ink);font-variant-numeric:tabular-nums;margin-top:2px}
.cell b em{font-style:normal;font-size:13px;color:var(--faint);font-weight:400}














.tl-m.now b{color:var(--primary);font-weight:700}
.badge{display:inline-flex;align-items:center;gap:5px;border-radius:999px;padding:3px 9px;font-size:11.5px;font-weight:500}
.b-ok{background:var(--ok-bg);color:var(--ok-fg)} .b-tk{background:var(--tk-bg);color:var(--tk-fg)}
.b-na{background:var(--na-bg);color:var(--na-fg)} .b-out{background:var(--out-bg);color:var(--out-fg)}
.dot{width:6px;height:6px;border-radius:50%;background:currentColor}
/* 🔄 하단 탭을 고정한다 (2026-09-05, 실기기에서 「쓸려 내려간다」).
   6단계 A-3 과 사암 핸드오프는 「하단 고정바 금지 — 인앱 툴바 겹침」이었으나
   실제로 써 보니 스크롤이 긴 화면에서 탭을 잃어버린다.
   🔴 fixed 가 아니라 sticky 다 — fixed 는 인앱 브라우저에서 뷰포트 계산이 틀어져
      툴바 뒤로 숨는다. sticky 는 문서 흐름을 유지하면서 바닥에 붙는다.
   🔴 safe-area 패딩 — 아이폰 홈 인디케이터에 가리지 않게. */
.tabs{position:sticky;bottom:0;z-index:5;
  display:flex;border-top:1px solid var(--line);background:var(--sand-surface);
  padding-bottom:env(safe-area-inset-bottom,0px)}
/* 🔴 터치 타깃 44px 이상 (핸드오프 §3-1⑥). 실측 39px 이었다 — 패딩으로 맞춘다. */
.tabs a{flex:1;text-align:center;padding:14px 2px;font-size:11px;color:var(--muted-2);
  line-height:1.25;min-height:44px;box-sizing:border-box;display:flex;
  flex-direction:column;align-items:center;justify-content:center}
.tabs a.on{color:var(--ink);font-weight:700;box-shadow:inset 0 2px 0 var(--laterite)}
.toggle{display:flex;gap:1px;background:var(--line);border:1px solid var(--line);border-radius:9px;overflow:hidden;margin-bottom:14px}
.toggle a{flex:1;text-align:center;padding:9px 4px;font-size:12px;background:var(--surface);color:var(--muted)}
.toggle a.on{background:var(--primary);color:#fff;font-weight:500}
.block{font-size:11.5px;color:var(--muted);letter-spacing:.04em;margin:16px 0 8px;display:flex;align-items:center;gap:8px}
.block::after{content:"";flex:1;height:1px;background:var(--line)}
.day{display:flex;justify-content:space-between;align-items:flex-start;gap:10px;margin-bottom:7px}
.day b{font-size:14px;font-variant-numeric:tabular-nums}
.line{font-size:13px;color:var(--muted);line-height:1.55;margin:0}
.line em{font-style:normal;color:var(--ink)}
.q{font-size:14px;line-height:1.5;margin:0 0 9px;font-weight:500}
.kv{display:flex;justify-content:space-between;gap:10px;font-size:12.5px;color:var(--muted);margin-top:7px}
.kv b{color:var(--ink);font-weight:500;text-align:right}
.opine{background:#FCFCFB;border:1px dashed var(--line);border-radius:9px;padding:11px;margin-top:11px}
.opine p{margin:0 0 8px;font-size:12px;color:var(--muted)}
.fields{display:flex;gap:6px}
.fields input[type=text]{flex:1;min-width:0;border:1px solid var(--line);border-radius:7px;padding:8px 9px;font:inherit;font-size:13px;background:#fff}
.fields input[name=author_name]{flex:0 0 84px}
.fields button,.btn{border:1px solid var(--primary);color:var(--primary);border-radius:7px;padding:8px 13px;
  font:inherit;font-size:12.5px;font-weight:500;background:#fff;cursor:pointer;white-space:nowrap}
.said{font-size:12.5px;margin-top:9px;line-height:1.5;padding-left:9px;border-left:2px solid var(--line);color:var(--muted)}
.said b{color:var(--ink);font-weight:500}
.mem{display:flex;align-items:flex-start;gap:10px;padding:10px 0;border-bottom:1px solid var(--line)}
.mem:last-child{border-bottom:0}
/* 🔴 이니셜 대비가 3.39 였다 — 사암 바탕과 거의 같은 색이라 「흰색처럼」 안 보였다. */
.av{width:30px;height:30px;border-radius:50%;flex:0 0 auto;display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:600;background:var(--sand-raise);color:var(--ink);border:1px solid var(--line-2)}
.av.kh{background:var(--out-bg);border-color:transparent;color:var(--out-fg)}
.av.me{background:var(--primary);border-color:transparent;color:#fff;font-weight:700}
.mem-t{flex:1;min-width:0}
.mem-t b{display:block;font-size:13px;font-weight:500;color:var(--ink)}
.mem-t em{font-style:normal;display:block;font-size:11.5px;color:var(--muted);margin-top:1px}
.tel{font-size:11.5px;color:var(--primary);white-space:nowrap;flex:none;font-variant-numeric:tabular-nums}
.sns{display:flex;gap:5px;margin-top:5px;flex-wrap:wrap}
.sns a{font-size:10.5px;padding:2px 8px;border-radius:999px;border:1px solid var(--line);color:var(--muted);background:#fff}
/* 🔴 테두리는 브랜드색 그대로, 글자만 어둡게 — 원색은 사암 위에서 3.1~3.8 이라 안 읽힌다 */
.sns a.tg{border-color:var(--out-fg);color:var(--out-fg)} .sns a.ig{border-color:#C13584;color:#A82E73}
.sns a.fb{border-color:#1877F2;color:#125CBA}
.todo{display:flex;flex-direction:column}
.td{display:flex;align-items:center;gap:9px;padding:10px 0;border-bottom:1px solid var(--line);font-size:13.5px}
.td:last-child{border-bottom:0}
.td i{width:16px;height:16px;border-radius:4px;border:1.5px solid var(--line);flex:none;
  display:flex;align-items:center;justify-content:center;font-size:10px;color:transparent;font-style:normal}
.td i.done{background:var(--ok-fg);border-color:var(--ok-fg);color:#fff}
.td span{flex:1} .td em{font-style:normal;font-size:11.5px;color:var(--muted)}
.wk{display:flex;align-items:center;gap:9px;padding:11px 0;border-bottom:1px solid var(--line)}
.wk:last-child{border-bottom:0}
.wk-t{flex:1;font-size:13px;line-height:1.45}
.wk-t em{font-style:normal;display:block;font-size:11.5px;color:var(--muted);margin-top:2px}
.form-tag{font-size:10.5px;padding:2px 7px;border-radius:999px;background:var(--bg);border:1px solid var(--line);color:var(--muted);flex:none}
.by{font-size:11.5px;color:var(--muted);flex:none}
.mine-box{background:var(--primary);color:#fff;border-radius:12px;padding:13px;margin-bottom:11px}
.mine-box b{display:block;font-size:14px;margin-bottom:3px}
.mine-box em{font-style:normal;font-size:12px;opacity:.88}
.propose{display:flex;align-items:center;justify-content:center;gap:6px;border:1.5px dashed var(--primary);
  color:var(--primary);border-radius:10px;padding:12px;font-size:13px;font-weight:500;margin-top:10px;background:#FCFCFB}
.cal{display:grid;grid-template-columns:repeat(7,1fr);gap:3px}
.cal .dow{text-align:center;font-size:10.5px;color:var(--muted);padding-bottom:3px}
.cal .d{aspect-ratio:1;border-radius:7px;background:var(--surface);border:1px solid var(--line);
  display:flex;flex-direction:column;align-items:center;padding-top:5px;font-size:11.5px;font-variant-numeric:tabular-nums}
.cal .d.pale{color:#C4C4C4;background:#FCFCFB}
.cal .d.mark{border-color:var(--primary);border-width:1.5px;font-weight:700}
.cal .d i{width:5px;height:5px;border-radius:50%;margin-top:3px;background:var(--brass)}
.kk{display:flex;gap:9px;font-size:12.5px;align-items:baseline;padding:5px 0}
.kk b{font-weight:500;color:var(--primary);flex:none;width:52px;font-variant-numeric:tabular-nums}
.kk span{color:var(--muted)}
.flash{background:var(--ok-bg);color:var(--ok-fg);font-size:13px;padding:10px 16px}
/* 실패 알림 — 🔴 빨강은 쓰지 않는다(6단계 A-1). 라테라이트로 구분하고 문구로 말한다 */
.flash.warn{background:rgba(161,90,56,.10);color:var(--laterite-dk)}
.flash.alert{background:var(--tk-bg);color:var(--tk-fg)}
.empty{text-align:center;color:var(--muted);font-size:13px;padding:22px 12px;line-height:1.6}
.more{font-size:12px;color:var(--muted);text-align:center;padding-top:9px}
.ratio{font-size:12.5px;color:var(--muted);margin-top:10px;padding-top:9px;border-top:1px solid var(--line)}
.lockrow{display:flex;gap:7px;font-size:12px;color:var(--muted);background:var(--na-bg);border-radius:8px;padding:9px 11px;margin-top:11px}
.gatebox{padding:60px 24px;text-align:center}
.gatebox h1{font-size:22px;margin:0 0 8px}
.gatebox p{color:var(--muted);font-size:13.5px;margin:0 0 24px}
.gatebox input{border:1px solid var(--line);border-radius:9px;padding:12px;font:inherit;width:100%;max-width:260px;text-align:center;background:#fff}
.gatebox button{margin-top:12px;width:100%;max-width:260px;background:var(--primary);color:#fff;border:none;
  border-radius:9px;padding:12px;font:inherit;font-weight:500;cursor:pointer}
.pick{display:flex;align-items:center;gap:10px;padding:11px 0;border-bottom:1px solid var(--line);width:100%;
  background:none;border-left:0;border-right:0;border-top:0;text-align:left;font:inherit;cursor:pointer}

/* ═══ 리트릿 (사암 §3-3 · 구현순서 6단계) ═══ */
/* CCMF 지표 띠 — 2027 주제의 실질 지표. 다른 카드와 같은 무게로 두면 묻힌다 */
.ccmfbar{background:var(--brass);color:var(--ink);padding:11px 15px;border-radius:11px;
  display:flex;justify-content:space-between;align-items:center;gap:10px;margin-top:2px}
.ccmfbar > span{font-weight:500;font-size:12px;line-height:1.35}
/* 🔴 황동(#C09857) 위에서는 잉크조차 4.66 이다 — 투명도를 주면 곧바로 2.9 로 떨어진다.
   위계는 투명도가 아니라 크기·굵기로 만든다. */
.ccmfbar .en-under{font-size:10px;font-weight:400;color:var(--ink)}
.ccmfbar b{font:600 17px var(--font-mono);font-variant-numeric:tabular-nums;flex:none}
.ccmfbar b em{font-style:normal;font-weight:400;font-size:12px;color:var(--ink)}
.rtheme{margin:9px 2px 0;font-size:11.5px;line-height:1.55;color:var(--muted)}

/* 세션 카드 — 리스트 행이 아니라 카드. 담당이 카드마다 읽힌다 */
.rcard{background:var(--sand-surface-2);border:1px solid var(--line-2);border-radius:12px;
  padding:13px;margin-bottom:11px}
.rhead{display:flex;justify-content:space-between;gap:9px;align-items:flex-start}
.rcard .rt-t{font-weight:600;font-size:13.5px;color:var(--ink);line-height:1.45;min-width:0}
.rcard .rt-t .en-under{font-weight:400;font-size:10.5px;color:var(--muted)}
.rcard .rt-t em{font-style:normal;display:block;font:400 10.5px var(--font-mono);
  color:var(--muted);margin-top:2px}
.rprep{margin-top:11px;padding-top:11px;border-top:1px solid var(--line-2);
  font-size:11.5px;line-height:1.6;color:var(--text-2)}
.rprep b{font-weight:500;color:var(--ink)}
/* 🔴 미정은 확정처럼 보이면 안 된다 — 「정할 것」과 어긋난다 */
.rprep .na{color:var(--faint)}

/* 함께 하기 — 접지 않는다. 이 프로젝트의 목적이 실제로 일어나는 자리다 */
.joinbox{margin-top:12px;border:1px dashed var(--line-dash);border-radius:9px;
  padding:10px;background:var(--sand-white)}
.jhint{margin:0 0 8px;font-size:11px;color:var(--muted);line-height:1.5}

/* 색을 반전해 「여기 손이 필요하다」를 말한다 — 빨강 없이 주의를 끄는 방법 */
.openblk{background:var(--ink);border-radius:12px;padding:14px;margin-top:16px;color:#F2E9D8}
.openblk b{display:block;font:700 13px var(--font-display);letter-spacing:-.01em}
.openblk .en-under{font:400 10.5px var(--font-body);color:rgba(242,233,216,.76);
  letter-spacing:0;margin-top:2px}
.openblk .chips{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px}
.openblk .chips span{border:1px solid rgba(242,233,216,.35);border-radius:999px;
  padding:5px 11px;font-size:11px;color:#F2E9D8}

/* ═══ 준비 달력 — 월 5개 세로 (사암 §3-2 · 구현순서 5단계) ═══ */
/* 🔴 <summary> 는 UA 가 색·마커를 재설정한다. color 를 명시하지 않으면
   브라우저마다 다르게 보인다 — 이름이 흰색으로 보인 그 함정과 같은 뿌리다. */
.mcal{background:var(--sand-surface);border:1px solid var(--line-2);border-radius:12px;
  padding:12px 13px;margin-bottom:11px}
.mcal > summary{cursor:pointer;list-style:none;display:flex;align-items:baseline;gap:9px;
  color:var(--ink)}
.mcal > summary::-webkit-details-marker{display:none}
.mcal > summary b{font:700 15px var(--font-display);letter-spacing:-.01em;color:var(--ink)}
.mcal > summary .gatetag{font:600 10.5px var(--font-mono);color:var(--laterite-dk);
  letter-spacing:.02em}
.mcal > summary .n{margin-left:auto;font:500 11px var(--font-mono);color:var(--faint)}
.mcal[open] > summary{margin-bottom:10px}

.mgrid{display:grid;grid-template-columns:repeat(7,1fr);gap:3px}
.mgrid .dow{text-align:center;font:400 9.5px var(--font-mono);color:var(--muted-2);
  padding-bottom:3px}
.mc{aspect-ratio:1;border-radius:6px;display:flex;flex-direction:column;align-items:center;
  padding-top:4px;font:400 10px var(--font-mono);font-variant-numeric:tabular-nums;
  background:var(--sand-surface-2);border:1px solid var(--line-2);color:var(--text)}
.mc.void{background:transparent;border-color:transparent}
/* 🔴 지난 날짜는 회색으로만. 빨강도 취소선도 쓰지 않는다(6단계 A-1) */
.mc.past{color:var(--faint-2)}
.mc.today{border-color:var(--ink);border-width:1.5px;font-weight:600;color:var(--ink)}
.mc.ev{background:var(--sand-raise);border-color:#DFC9A2}
.mc.ev i{display:block;width:4px;height:4px;border-radius:50%;background:var(--brass);margin-top:2px}
.mc.gate{background:var(--laterite);border-color:var(--laterite-dk);color:#FBF3E6;font-weight:600}
.mc.gate i{display:block;width:5px;height:5px;border-radius:50%;background:#F7E2C0;margin-top:2px}

.mlist{margin-top:11px}
.mrow{display:flex;gap:11px;align-items:baseline;padding:8px 0;border-bottom:1px solid var(--line-2)}
.mrow:last-child{border-bottom:0;padding-bottom:0}
.mrow b{flex:0 0 38px;font:600 11px var(--font-mono);color:var(--muted);
  font-variant-numeric:tabular-nums}
.mrow.gate b{color:var(--laterite-dk)}
.mrow span{font-weight:500;font-size:12.5px;color:var(--ink);line-height:1.45}
.mrow .en-under{font-weight:400;font-size:10.5px;color:var(--muted)}

/* 파송 15일 미니 달력 */
.tripcal{display:grid;grid-template-columns:repeat(7,1fr);gap:3px;margin-bottom:6px}
.tripcal .dow{text-align:center;font-size:10.5px;color:var(--muted);padding-bottom:2px}
.tripcal .c{aspect-ratio:1;border-radius:7px;display:flex;flex-direction:column;align-items:center;
  justify-content:center;font-size:12px;font-variant-numeric:tabular-nums;color:#fff;line-height:1.2}
.tripcal .c.blank{background:transparent}
.tripcal .c.b1{background:var(--b1)} .tripcal .c.b2{background:var(--b2)}
.tripcal .c.b3{background:var(--b3)}
/* 🔴 씨엠립 띠(#9E9679)는 가장 밝아 흰 글자가 2.96 이었다. 띠 자체는 그대로 두고
   달력 칸만 더 밝게 + 글자를 잉크로 뒤집는다 — 5.53. 단계가 바뀐 것이 색으로도 읽힌다. */
.tripcal .c.b4{background:#B3AD96;color:var(--ink)}
/* 🔴 opacity 로 종속시키면 대비가 같이 죽는다(8.5px 에서 3.96). 굵기로 낮춘다. */
.tripcal .c em{font-style:normal;font-size:8.5px;font-weight:400;margin-top:2px}
.tripcal .c i{width:4px;height:4px;border-radius:50%;background:rgba(255,255,255,.9);margin-top:2px}
.tripcal .c i.na{background:rgba(255,255,255,.35)}
.legend{display:flex;gap:9px;flex-wrap:wrap;font-size:10.5px;color:var(--muted);margin-top:8px}
.legend span{display:flex;align-items:center;gap:4px}
.legend i{width:9px;height:9px;border-radius:3px}
/* 리트릿 3일 개요 */
.rt3{display:grid;grid-template-columns:repeat(3,1fr);gap:6px}
.rt3 .d{background:var(--surface);border:1px solid var(--line);border-radius:10px;padding:10px 9px}
.rt3 .d b{display:block;font-size:12px;color:var(--primary);margin-bottom:5px;font-variant-numeric:tabular-nums}
.rt3 .d p{margin:0 0 3px;font-size:10.5px;color:var(--muted);line-height:1.4}
.rt3 .d p em{font-style:normal;color:var(--ink)}

/* ── 리더그룹 화면 ───────────────────────── */
body.adm{background:#F2F1EE}
.awrap{max-width:1100px;margin:0 auto;background:var(--surface);min-height:100vh;box-shadow:0 0 0 1px var(--line)}
.abar{background:var(--primary);color:#fff;padding:12px 18px;display:flex;align-items:center;justify-content:space-between}
.abar b{font-size:15px} .abar span{font-size:12px;opacity:.8;margin-left:8px}
.abar .who{font-size:12.5px;display:flex;align-items:center;gap:12px}
/* 🔴 .linkbtn 은 384행에도 있다. 특이도가 같으면 뒤가 이기므로 어두운 리더바용은 범위를 좁힌다. */
.abar .linkbtn{background:none;border:1px solid rgba(255,255,255,.4);color:#fff;border-radius:6px;
  padding:4px 10px;font:inherit;font-size:11.5px;cursor:pointer;text-decoration:none}
/* 메뉴가 열한 개다 — 줄바꿈하지 않으면 휴대폰에서 옆으로 넘쳐 뒤쪽 메뉴가 안 보인다 */
.anav{display:flex;flex-wrap:wrap;gap:2px;border-bottom:1px solid var(--line);background:var(--bg);padding:0 10px}
.anav a{padding:11px 14px;font-size:13px;color:var(--muted)}
.anav a.on{color:var(--primary);font-weight:700;box-shadow:inset 0 -2px 0 var(--primary)}
.anav a.muted{margin-left:auto;color:var(--muted);font-size:12px}
.apad{padding:20px 18px 60px}
.astat{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:1px;background:var(--line);
  border:1px solid var(--line);border-radius:12px;overflow:hidden;margin-bottom:22px}
.astat div{background:var(--surface);padding:13px 15px}
.astat span{display:block;font-size:12px;color:var(--muted)}
.astat b{font-size:22px;font-weight:500;font-variant-numeric:tabular-nums}
.astat b em{font-style:normal;font-size:14px;color:var(--muted);font-weight:400}
table.at{width:100%;border-collapse:collapse;font-size:13px}
table.at th{text-align:left;font-size:11.5px;color:var(--muted);font-weight:500;padding:8px 10px;border-bottom:1px solid var(--line)}
table.at td{padding:10px;border-bottom:1px solid var(--line);vertical-align:top}
table.at tr:hover td{background:#FCFCFB}
table.at a{color:var(--primary)}
.lock{background:var(--na-bg);border-left:3px solid var(--brass);border-radius:0 9px 9px 0;padding:13px 15px;margin:16px 0}
.lock h4{margin:0 0 8px;font-size:13px;color:var(--brass)}
.lock dl{margin:0;display:grid;grid-template-columns:120px 1fr;gap:6px 12px;font-size:13px}
.lock dt{color:var(--muted)} .lock dd{margin:0}
.frm{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:10px;align-items:end}
.frm label{display:block;font-size:11.5px;color:var(--muted);margin-bottom:4px}
.frm input,.frm select,.frm textarea{width:100%;border:1px solid var(--line);border-radius:7px;
  padding:8px 9px;font:inherit;font-size:13px;background:#fff}
.frm textarea{min-height:56px;resize:vertical}
.abtn{background:var(--primary);color:#fff;border:none;border-radius:7px;padding:9px 16px;
  font:inherit;font-size:13px;font-weight:500;cursor:pointer}
.arow{border:1px solid var(--line);border-radius:11px;padding:14px;margin-bottom:11px}
/* 비밀번호 바꾸기 — 메일 재설정이 없으므로 이 화면이 유일한 경로다 */
.pwmsg{margin:0 0 10px;padding:9px 11px;border-radius:8px;background:rgba(161,90,56,.10);
  border-left:3px solid var(--laterite-dk);color:var(--laterite-dk);font-size:12.5px;font-weight:600}
.pwnote{margin:0 0 14px;font-size:12px;line-height:1.65;color:var(--muted)}
/* 세로 한 줄씩. .frm 은 auto-fit 그리드라 가로로 붙어 버린다 */
.pwform{display:block;max-width:340px}
.pwform label{display:block;font-size:12px;font-weight:600;color:var(--ink-2);margin:12px 0 4px}
.pwform input{width:100%;border:1px solid var(--line);border-radius:7px;padding:9px 10px;
  font:inherit;font-size:13px;background:#fff}
.pwsub{font-weight:400;color:var(--faint)}
.arow .q{font-size:14px;font-weight:500;margin:0 0 10px}
.sechd{font-size:12px;color:var(--muted);letter-spacing:.03em;margin:22px 0 10px;display:flex;align-items:center;gap:9px}
.sechd::after{content:"";flex:1;height:1px;background:var(--line)}
.login{max-width:340px;margin:70px auto;padding:0 20px}
.login h1{font-size:20px;margin:0 0 6px} .login p{color:var(--muted);font-size:13px;margin:0 0 22px}
.login input{width:100%;border:1px solid var(--line);border-radius:8px;padding:11px;font:inherit;margin-bottom:9px;background:#fff}
.login button{width:100%;background:var(--primary);color:#fff;border:none;border-radius:8px;padding:11px;font:inherit;font-weight:500;cursor:pointer}

/* ── 한/영 병기 (6단계 A-4) ─────────────────────────────
   짧은 것: .en  — 같은 줄, 회색
   긴 것  : .en-under — 아래 줄, 작고 회색
   🟡 크메르어 2차: .km 을 .en-under 아래 3번째 줄로 넣으면 된다 */
.en{color:var(--muted);font-weight:400}
.en-under{display:block;color:var(--muted);font-weight:400;
  font-size:.82em;line-height:1.35;margin-top:1px;letter-spacing:0}
.bar b .en-under{font-size:11px;margin-top:2px}
.demo .en-under{font-size:11px;opacity:.85}
.tabs a .en-under{font-size:9.5px;margin-top:0;letter-spacing:-.2px}
h2 .en-under,h3 .en-under{font-size:.72em;font-weight:400}
.badge .en{font-size:.9em}

/* 인원 변동 → 예약 재확인 (4단계 A-2/A-3) */
.recheck{margin-top:9px;padding:9px 11px;border-radius:9px;
  background:#FFF8E1;border:1px solid #E8DCB0;color:#6B5A22;font-size:12.5px;line-height:1.45}
.recheck .en-under{color:#8A7A44}

/* 리더 화면 — 개인 일정 행 */
.stayrow{display:flex;align-items:center;gap:7px;flex-wrap:wrap;
  padding:8px 0;border-bottom:1px solid var(--line)}
.stayrow .nm{min-width:96px;font-weight:600;font-size:13.5px}
.stayrow .ar{color:var(--muted)}
.stayrow input[type=date],.stayrow select,.stayrow input[type=text]{
  padding:5px 7px;border:1px solid var(--line);border-radius:7px;font-size:12.5px;font-family:inherit}
.stayrow input[type=text]{flex:1;min-width:120px}
.abtn.small{padding:5px 11px;font-size:12px}

/* 제안 · 함께 하기 폼 */
.propose-box{margin-top:10px}
.propose-box summary{cursor:pointer;list-style:none}
.propose-box summary::-webkit-details-marker{display:none}
.propose-box[open] summary{margin-bottom:10px}
.pform{display:flex;flex-direction:column;gap:7px}
.pform input[type=text],.pform select{padding:9px 10px;border:1px solid var(--line);
  border-radius:9px;font-size:13.5px;font-family:inherit;width:100%;box-sizing:border-box}
.pform .prow{display:flex;gap:6px}
.pform .prow select{flex:1;min-width:0}
.pform button{padding:10px;border:0;border-radius:9px;background:var(--primary);
  color:#fff;font-size:13.5px;font-weight:600;font-family:inherit;cursor:pointer}
.inline-take{display:flex;gap:5px;align-items:center}
.inline-take input[type=text]{width:72px;padding:5px 7px;border:1px solid var(--line);
  border-radius:7px;font-size:12px;font-family:inherit}

/* 2차 신청서 */
.formpage .fhead{display:flex;justify-content:space-between;align-items:flex-start;
  padding:14px 0 4px;border-bottom:1px solid var(--line);margin-bottom:12px}
.formpage .fhead b{font-size:18px}
.formpage .fwho{font-size:13px;color:var(--muted);white-space:nowrap;padding-top:3px}
.fprog{height:6px;border-radius:99px;background:#EFEFEC;margin-top:12px;overflow:hidden}
.fprog i{display:block;height:100%;background:var(--primary);border-radius:99px}
.fsec .fform{display:flex;flex-direction:column;gap:11px;margin-top:10px}
.fsec label{display:block;font-size:13px;font-weight:600;color:var(--ink)}
.fsec label em{display:block;font-style:normal;font-weight:400;font-size:11.5px;
  color:var(--muted);margin:2px 0 5px;line-height:1.4}
.fsec input[type=text],.fsec input[type=date],.fsec select,.fsec textarea{
  width:100%;box-sizing:border-box;margin-top:4px;padding:9px 10px;
  border:1px solid var(--line);border-radius:9px;font-size:14px;font-family:inherit;
  background:#fff;line-height:1.5}
.fsec textarea{resize:vertical}
.fsec .frow{display:flex;gap:8px}
.fsec .frow label{flex:1;min-width:0}
.fsec label.chk{font-weight:400;font-size:13px;display:flex;gap:7px;align-items:flex-start;line-height:1.45}
.fsec label.chk input{width:auto;margin:2px 0 0}
.fsec button{padding:11px;border:0;border-radius:9px;background:var(--primary);
  color:#fff;font-size:14px;font-weight:600;font-family:inherit;cursor:pointer}
.hintbox{margin:2px 0 0;padding:9px 11px;border-radius:9px;background:#FAFAF8;
  border:1px solid var(--line);font-size:11.5px;color:var(--muted);line-height:1.6}
.lockline{margin:6px 0 0;padding:8px 11px;border-radius:9px;background:#F2F1EE;
  font-size:12px;color:#5A5A52;line-height:1.45}
.lockmini{font-size:13px}

/* 한 줄 소개 · 기도제목 (본인이 공개로 둔 것만) */
.mem-t .intro{display:block;font-size:12px;color:var(--ink);margin-top:3px;line-height:1.45}
.mem-t .pray{display:block;font-size:12px;color:#5A5A52;margin-top:3px;line-height:1.45;
  padding:5px 8px;background:#F7F6F2;border-radius:7px}

/* 프로필 사진 */
.photorow{display:flex;align-items:center;gap:10px;margin:6px 0 4px}
.photoprev{width:56px;height:56px;border-radius:50%;object-fit:cover;border:1px solid var(--line)}
.photometa{font-size:11.5px;color:var(--muted);font-weight:400;line-height:1.35}
.fsec input[type=file]{width:100%;box-sizing:border-box;margin-top:4px;padding:8px;
  border:1px dashed var(--line);border-radius:9px;font-size:12.5px;font-family:inherit;background:#fff}
.linkbtn{background:none;border:0;color:var(--muted);font-size:12px;font-family:inherit;
  text-decoration:underline;cursor:pointer;padding:0}
.av.hasphoto{padding:0;overflow:hidden}
.av.hasphoto img{width:100%;height:100%;object-fit:cover;display:block}

/* 설치 안내 */
.howto{margin-top:12px;padding:11px 13px;border:1px solid var(--line);border-radius:10px;background:#FAFAF8}
.howto > b{font-size:13.5px;display:block;margin-bottom:6px}
.howto ol{margin:0;padding-left:19px}
.howto li{font-size:13px;line-height:1.55;margin-bottom:6px;color:var(--ink)}
.howto li em{font-style:normal;color:var(--muted);font-size:12px}
/* 🔴 아이콘 글리프도 읽혀야 한다 — opacity:.7 이 대비를 3.89 로 떨어뜨렸다.
   영어 모드에서 .howto li 가 --muted 로 바뀌므로 여기서 색을 못박는다. */
.howto .ic{font-family:-apple-system,system-ui;color:var(--ink)}
#installbtn{margin-top:12px;width:100%;padding:12px;border:0;border-radius:10px;
  background:var(--primary);color:#fff;font-size:14px;font-weight:600;font-family:inherit;cursor:pointer}
/* 설치된 상태에서는 안내를 감춘다 — 이미 한 사람에게 또 시키지 않는다 */
@media (display-mode: standalone){ #installbox .howto, #installbtn { display:none } }
.cell b.later{font-size:15px;font-weight:400;color:var(--faint);font-family:var(--font-body)}
.cell b.later .en-under{font-size:11px}

/* 파송 15일 — 접히는 카드 */
.daycard{padding:0;overflow:hidden}
.daycard > summary{cursor:pointer;list-style:none;display:flex;align-items:center;
  gap:8px;padding:11px 13px;margin:0;border-bottom:0}
.daycard > summary::-webkit-details-marker{display:none}
.daycard[open] > summary{border-bottom:1px solid var(--line)}
.daycard > summary b{flex:0 0 auto;font-size:13.5px;font-variant-numeric:tabular-nums}
.daycard .daysum{flex:1 1 auto;min-width:0;font-size:12.5px;color:var(--muted);
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
/* 🔴 인원은 지역명과 같은 상자에 두면 안 된다.
   지역이 길면 말줄임에 같이 잘려 사라진다(1/23 「인천/김해/대구 → 프놈펜」에서 실제로 그랬다). */
.daycard .who{flex:0 0 auto;color:var(--primary);font-weight:600;font-size:12.5px;
  font-variant-numeric:tabular-nums}
.daycard > summary .badge{flex:0 0 auto}
.daycard > summary .badge .en-under{display:none}   /* 요약 줄은 한 줄로 유지 */
.daycard > *:not(summary){padding-left:13px;padding-right:13px}
.daycard > *:last-child{padding-bottom:11px}
.daycard > summary::after{content:"⌄";color:var(--muted);font-size:15px;line-height:1;
  transform:translateY(-2px)}
.daycard[open] > summary::after{content:"⌃";transform:translateY(2px)}

/* ═══════════════════════════════════════════════════════════
   언어 선택 — 병기가 아니라 전환
   🔄 6단계 A-4 는 「토글이 아니라 병기」였다. 실물을 보고 뒤집는다:
      병기하면 라벨마다 두 줄이라 화면이 두 배로 길어진다.
   🔴 그때 걱정한 것 두 가지는 이렇게 막는다
      ① "내 언어로 안 보이는 사람" → 첫 방문 때 브라우저 언어로 자동 선택,
         상단에 전환 버튼이 항상 보인다
      ② "링크를 공유하면 어느 언어로 열릴지 모른다" → 주소에 ?lang=en 을 붙일 수 있고,
         고른 언어는 그 기기에 남는다
   ERB 를 건드리지 않는다. 한국어는 부모의 텍스트, 영문은 자식 .en-under 이므로
   부모/자식 스타일만 뒤집으면 된다. 되돌리려면 이 블록만 지우면 된다.
   ═══════════════════════════════════════════════════════════ */

/* ── 한국어 모드 (기본) — 영문을 감춘다. 화면이 절반으로 준다 ── */
html[data-lang="ko"] .en-under,
html[data-lang="ko"] .en { display: none !important }

/* ── English 모드 — 영문이 주, 한국어가 부로 뒤집힌다 ── */
html[data-lang="en"] .line,
html[data-lang="en"] .cell span,
html[data-lang="en"] .dd span,
html[data-lang="en"] .dd em,
html[data-lang="en"] .kv span,
html[data-lang="en"] .kv b,
html[data-lang="en"] .wk-t,
html[data-lang="en"] .mem-t em,
html[data-lang="en"] .tl-m,
html[data-lang="en"] .block,
html[data-lang="en"] .sec h4,
html[data-lang="en"] .tabs a,
html[data-lang="en"] .badge,
html[data-lang="en"] .daysum,
html[data-lang="en"] .howto li,
html[data-lang="en"] .fsec label,
html[data-lang="en"] .fsec label em { color: var(--muted); font-size: .82em }

html[data-lang="en"] .en-under {
  display: block; color: var(--ink); font-size: 1.22em; font-weight: inherit; margin-top: 1px }
html[data-lang="en"] .sec h4 .en-under,
html[data-lang="en"] .block .en-under { font-weight: 700 }
html[data-lang="en"] .en { color: var(--ink); font-weight: inherit }
html[data-lang="en"] .tabs a .en-under { font-size: 1.15em }

/* 🔴 어두운 색면 안에서는 --ink 가 곧 배경색이다 — 영어 모드에서 영문이
   통째로 사라졌다(대비 1.00). 위 규칙이 색을 잉크로 못박으므로 색면마다 되돌린다.
   특이도가 같으면 뒤가 이기니 반드시 이 아래에 둘 것. */
html[data-lang="en"] .bar .en-under,
html[data-lang="en"] .mine-box .en-under,
html[data-lang="en"] .toggle a.on .en-under,
html[data-lang="en"] .openblk .en-under,
html[data-lang="en"] .abar .en-under { color: #F2E9D8 }
/* 황동 띠는 밝은 면이라 잉크가 맞다 — 다만 명시해 둔다 */
html[data-lang="en"] .ccmfbar .en-under { color: var(--ink) }

/* 🔴 영문이 없는 줄은 한국어를 그대로 크게 둔다.
   안 그러면 번역이 빠진 곳이 회색 잔글씨로 사라진다. */
html[data-lang="en"] .line:not(:has(.en-under)),
html[data-lang="en"] .kv b:not(:has(.en-under)),
html[data-lang="en"] .wk-t:not(:has(.en-under)) { color: var(--ink); font-size: inherit }

/* ── 전환 버튼 ── */
.langsw{display:flex;gap:0;border:1px solid rgba(255,255,255,.35);border-radius:999px;overflow:hidden}
/* 🔴 opacity 로 비활성을 만들면 색과 곱해져 대비가 두 번 깎인다.
   알파 하나로만 낮춘다 — 그래야 아래 .bar 오버라이드가 계산 가능해진다. */
.langsw button{appearance:none;border:0;background:transparent;color:rgba(255,255,255,.72);
  font:inherit;font-size:11px;font-weight:600;padding:4px 10px;cursor:pointer;line-height:1.4}
.langsw button[aria-pressed="true"]{background:#fff;color:var(--primary);opacity:1}

/* 언어 전환 — 사암 헤더 색면 위 */
.bar .langsw{border-color:rgba(242,233,216,.32)}
/* 🔴 한때 opacity:.6 과 alpha .6 이 곱해져 실효 0.36, 대비 2.72 였다.
   이제 opacity 를 아예 안 쓰고 alpha 하나로만 낮춘다(6.21). */
.bar .langsw button{font:500 10px var(--font-mono);letter-spacing:.06em;
  color:rgba(242,233,216,.72);padding:3px 9px}
.bar .langsw button[aria-pressed="true"]{background:rgba(242,233,216,.92);color:var(--ink)}
.bar small .en-under{display:block;font-size:10.5px;color:rgba(242,233,216,.5);margin-top:1px}
html[data-lang="ko"] .bar small .en-under{display:none!important}

/* ═══ 세 배율 일정 — 이 화면의 심장 (사암 §3-1 ④) ═══ */
.scale-label{font:400 9.5px var(--font-mono);color:var(--muted-2);
  letter-spacing:.1em;margin:18px 0 6px}
.scale-label:first-of-type{margin-top:0}
.scale-label.rt{color:var(--laterite-dk)}

/* ① 준비 5개월 */
.tl{position:relative;height:34px}
.tl-line{position:absolute;top:6px;left:0;right:0;height:2px;background:var(--line-4)}
.tl-done{position:absolute;top:6px;left:0;height:2px;background:var(--ink)}
.tl-dots{position:absolute;top:0;left:0;right:0;display:flex;justify-content:space-between}
.tl-dots i{width:9px;height:9px;border-radius:50%;background:var(--line-strong);margin-top:3px}
.tl-dots i.now{width:14px;height:14px;background:var(--ink);
  border:3px solid var(--sand-bg);box-sizing:content-box;margin:0 0 0 -4px}
.tl-dots i.gate{width:13px;height:13px;background:var(--laterite);margin-top:1px}
.tl-dots i.end{width:11px;height:11px;background:var(--ink);margin:2px -2px 0 0}
.tl-marks{position:absolute;top:22px;left:0;right:0;display:flex;justify-content:space-between;
  font:400 9.5px var(--font-mono);color:var(--muted)}
.tl-marks .gate{color:var(--laterite-dk);font-weight:600}

/* ② 파송 15일 */
.band{display:flex;gap:2px}
.band i{height:30px;border-radius:2px;background:var(--band-pp)}
.band i.b-rt{background:var(--band-retreat);box-shadow:inset 0 0 0 2px rgba(255,255,255,.35)}
.band i.b-pv{background:var(--band-province)}
.band i.b-sr{background:var(--band-siemreap)}
.blabels{display:flex;gap:2px;margin-top:5px;text-align:center;
  font:400 9px/1.3 var(--font-body);color:var(--muted)}
.blabels .rt{color:var(--laterite-dk);font-weight:700}
.bends{display:flex;justify-content:space-between;margin-top:4px;
  font:400 9.5px var(--font-mono);color:var(--muted-2)}

/* 🔴 돋보기 사다리꼴 — 없으면 무관한 표 세 개로 읽힌다 */
.zoom-link{height:20px;position:relative;margin-top:2px}
.zoom-link::after{content:"";position:absolute;inset:0;background:rgba(161,90,56,.14);
  clip-path:polygon(var(--x0) 0, var(--x1) 0, 100% 100%, 0 100%)}

/* ③ 리트릿 확대 */
.rt3grid{display:grid;grid-template-columns:1fr 1fr 1fr;gap:6px;
  background:rgba(161,90,56,.08);border-radius:9px;padding:8px}
.rt3d{font:600 10.5px var(--font-mono);color:var(--laterite-dk)}
.rt3items{font:400 9.5px/1.55 var(--font-body);color:var(--text-2);margin-top:4px}

/* 「답이 필요한 것」 한 줄 — 왼쪽 3px 잉크선 */
.needans{background:var(--sand-surface);border:1px solid var(--line-4);
  border-left:3px solid var(--ink);border-radius:0 9px 9px 0;padding:12px 13px;
  display:flex;justify-content:space-between;align-items:center;margin-top:20px}
.needans b{font:500 12.5px var(--font-body);color:var(--ink)}
.needans .n{font:500 20px var(--font-mono);color:var(--laterite);font-variant-numeric:tabular-nums}

/* ═══ 공개 신청 안내 /apply (2026-09-14) — 팀 코드 없이 열린다 · 포스터 QR 이 가리키는 곳 ═══
   🔴 영어 모드 뒤집기(위 병기 규칙)는 목록에 든 클래스에만 걸린다. 새 칸(dt·dd·머리 제목)은 여기서 직접 뒤집는다.
   🔴 짙은 색면(.apbtn) 안에는 .en-under 를 두지 않는다 — 영어 모드에서 배경과 같은 색이 된다.
   🔴 위계는 투명도가 아니라 크기·굵기로 만든다.
   🔴 한국어는 어절 단위로만 꺾는다 — 375px 에서 「생깁니 / 다」「만나 / 고」처럼 음절 중간이 잘렸다. */
.apbar b,.apbar small,.apfacts dd,.apwhat .line,.apone,.apnote,.apwait,.apask .line{word-break:keep-all;overflow-wrap:break-word}
.apbar b{font-size:24px}
.apfacts{margin:0 0 11px;padding:2px 15px}
.apfacts > div{display:flex;gap:14px;align-items:baseline;padding:12px 0;border-bottom:1px solid var(--line-2)}
.apfacts > div:last-child{border-bottom:0}
.apfacts dt{flex:0 0 56px;font:500 12px var(--font-body);color:var(--muted)}   /* px — em 이면 영어 모드에서 칸이 줄어 「Sign up」이 꺾인다 */
.apfacts dd{margin:0;font:700 18px/1.35 var(--font-body);color:var(--ink);font-variant-numeric:tabular-nums}
.apwhat .line{color:var(--ink);font-size:14px}
.apwhat .line + .line{margin-top:8px}
.apone{color:var(--ink);font-size:14px;font-weight:500;margin:0 2px 12px}
.apnote{font-size:11.5px;margin:0 2px 4px}
.apbtn{display:block;margin:18px 0 11px;padding:14px;border-radius:10px;text-align:center;
  background:var(--ink);color:#F2E9D8;font:600 15px var(--font-body)}
.apwait{margin-top:18px;color:var(--ink)}
.apask .line{color:var(--ink)}
.apask a{text-decoration:underline}
html[data-lang="en"] .apbar b{font-size:15px}
html[data-lang="en"] .apbar b .en-under{font-size:22px;font-weight:700}
html[data-lang="en"] .apfacts dt,
html[data-lang="en"] .apfacts dd{color:var(--muted);font-size:11px;font-weight:400}
html[data-lang="en"] .apfacts dt .en-under{font-size:12.5px;font-weight:500}
html[data-lang="en"] .apfacts dd .en-under{font-size:17px;font-weight:700}

/* 일정 첫 줄 — 확정된 것과 가안을 구분해 준다 (2026-09-16) */
.draftnote{margin:0 0 10px;padding:10px 12px;border-radius:9px;
  background:var(--sand-surface-2);border:1px solid var(--line-2);
  font-size:12px;color:var(--muted);line-height:1.6}
.draftnote b{color:var(--ink);font-weight:600}

/* ═══ 2026-10 신청자 맞이 — 홈의 공지·할 일 한 줄 · 「소식」 · 「내 것」 · 이름 찾기 ═══
   🔴 새 색을 만들지 않는다. 카드(.card)와 한 줄(.needans) 패턴을 그대로 쓰고 간격만 고친다.
   🔴 영어 모드 뒤집기는 목록에 든 클래스에만 걸린다 — 새 칸은 맨 아래에서 직접 뒤집는다.
   🔴 :has() 를 쓰지 않는다(구형 브라우저). 영문이 있는 줄에는 뷰가 .has-en 을 붙인다. */

/* 홈 「명단」 칸은 링크다 */
a.cell{display:block}

/* 홈·내 것에서 위쪽에 쌓는 한 줄 링크 — .needans 의 간격만 바꾼다 */
.needans.nline{margin:0 0 9px;gap:12px;word-break:keep-all;overflow-wrap:anywhere}
.nline > span:first-child{flex:1;min-width:0}
.nline .lbl{display:block;font:400 10px var(--font-mono);color:var(--muted-2);letter-spacing:.06em;margin-bottom:2px}
.nline .when{flex:none;font:600 11px var(--font-mono);color:var(--muted);font-variant-numeric:tabular-nums}
.nline .n{flex:none}
/* 할 일 제목들 — 두 줄까지 잇고, 넘치면 말줄임 (한 줄이면 390px 에서 셋째 제목 「항공권 — 아직 끊지 마세요」가 통째로 가려졌다) */
.nline .tt{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;margin-top:2px;font-size:12px;color:var(--text-2);
  overflow:hidden}
.nline .tt .en-under{overflow:hidden;text-overflow:ellipsis}

/* 할 일·모임 줄 — 🔴 체크박스(.td)를 쓰지 않는다. 다 같이 보는 목록이 개인 체크표로 읽힌다 */
.trow{display:flex;flex-wrap:wrap;align-items:baseline;gap:3px 12px;padding:10px 0;
  border-bottom:1px solid var(--line-2);word-break:keep-all;overflow-wrap:anywhere}
.trow:first-child{padding-top:0}
.trow:last-child{border-bottom:0;padding-bottom:0}
.tr-t{flex:1;min-width:0;font:500 13.5px/1.45 var(--font-body);color:var(--ink)}
.tr-d{flex:none;text-align:right;font:600 11px var(--font-mono);color:var(--muted);font-variant-numeric:tabular-nums}
.tr-n{flex:0 0 100%;margin:2px 0 0;font-size:13px;line-height:1.6;color:var(--ink)}

/* 공지 카드 — 본문은 읽는 글이라 흐리게 두지 않는다 */
.ncard{word-break:keep-all;overflow-wrap:anywhere}
.ntitle{display:block;font:600 13.5px/1.45 var(--font-body);color:var(--ink)}
.nbody{margin-top:7px;font-size:13px;line-height:1.65;color:var(--ink)}
.nbody p{margin:0 0 7px}
.nbody p:last-child{margin-bottom:0}
.nbody a{text-decoration:underline}
.nbody > .en-under{margin-top:7px}
.nby{margin:9px 0 0;font:600 11px var(--font-mono);color:var(--muted);font-variant-numeric:tabular-nums}

/* 이름 찾기 — 🔴 16px 아래면 iOS 가 입력할 때 화면을 확대한다 */
.whoq{display:block;width:100%;border:1px solid var(--line);border-radius:9px;padding:11px 12px;
  font:inherit;font-size:16px;background:var(--sand-white);margin-bottom:11px}
.gatebox p{word-break:keep-all}
/* 🔴 한국어는 어절 단위로만 꺾는다 — 「간 / 사님께」처럼 낱말 가운데가 잘린다. 새로 쓴 문장에 붙인다 */
.kw{word-break:keep-all;overflow-wrap:break-word}
/* 전화 링크가 걸린 번호는 밑줄로 구분한다(걸리지 않은 번호는 평문) */
a.tel{text-decoration:underline}

/* ── 영어 모드 ── */
html[data-lang="en"] .tr-t.has-en,
html[data-lang="en"] .tr-n.has-en,
html[data-lang="en"] .ntitle.has-en,
html[data-lang="en"] .nbody.has-en{color:var(--muted);font-size:.82em;font-weight:400}
html[data-lang="en"] .tr-t.has-en .en-under,
html[data-lang="en"] .ntitle.has-en .en-under{font-weight:600}
html[data-lang="en"] .tr-d{font-size:9.5px;font-weight:400}
html[data-lang="en"] .nline .lbl .en-under{font-size:1em;color:var(--muted-2)}
html[data-lang="en"] .nline .tt{font-size:10.5px;color:var(--muted)}
/* 관문 날짜를 정하는 중이면 D-n 대신 달만 적는다(「11월」) — 영어 모드에서는 영문 달이 큰 글자가 된다 */
html[data-lang="en"] .dd b.mon{font-size:15px}
html[data-lang="en"] .dd b.mon .en-under{font-size:40px;line-height:1;margin-top:4px}
html[data-lang="en"] .dd.goal b.mon .en-under{color:var(--laterite)}
/* 준비 눈금의 「출국」 아래 영문 한 줄만큼 */
html[data-lang="en"] .tl{height:46px}

/* ═══ 2026-10 신청자 맞이(뒷부분) — 내려놓기 · 준비 달력의 「날짜 정하는 중」 · 안내의 낱말 풀이 · /apply 마감 줄 ═══
   🔴 새 색을 만들지 않는다. 있는 줄(.linkbtn · .mrow · .kv · .apfacts)의 간격과 크기만 고친다. */
/* 내려놓기 — 짙은 색면(.mine-box) 밖, 바로 아래 오른쪽. 누를 자리를 넓힌다 */
.undo{margin:-5px 2px 11px;text-align:right}
.undo .linkbtn{padding:9px 0 9px 14px}
/* 리트릿 준비물 줄 안에서는 담당 이름 아래 왼쪽에 */
.undo.inrow{margin:0;text-align:left}
.undo.inrow .linkbtn{padding:7px 14px 2px 0}
/* 날짜를 정하는 중인 준비 일정 — 날짜 자리에 꼬리표. 38px 칸에 가두면 세 줄로 꺾인다 */
.mrow b.tbd{flex:0 0 auto;font-weight:400}
html[data-lang="en"] .mrow b.tbd .en-under{font-size:1em}
/* 낱말 풀이 — 낱말은 왼쪽 좁은 칸, 풀이는 왼쪽 맞춤(.kv 는 오른쪽 맞춤이라 긴 풀이가 들쭉날쭉해진다) */
.kv.gloss{justify-content:flex-start;gap:12px;align-items:baseline}
.kv.gloss:first-child{margin-top:0}
.kv.gloss > span{flex:0 0 78px;color:var(--ink);font-weight:600}
.kv.gloss > b{flex:1;min-width:0;text-align:left;font-weight:400;word-break:keep-all;overflow-wrap:break-word}
.glossbadges{margin-top:11px;padding-top:5px;border-top:1px solid var(--line-2)}
/* 🔴 영어 모드의 `.kv span` 규칙이 .kv 안의 .en-under(그것도 span 이다)까지 잡아 영문을 회색 잔글씨로 만든다.
   낱말 풀이는 영문이 읽혀야 하므로 여기서 되돌린다. */
html[data-lang="en"] .kv.gloss .en-under{color:var(--ink);font-size:1.22em}
/* /apply 「신청」 칸 — 날짜 한 줄이 아니라 문장이라 18px 굵은 글씨로는 넘친다 */
.apfacts dd.aplong{font-size:14.5px;font-weight:600;line-height:1.5}
html[data-lang="en"] .apfacts dd.aplong .en-under{font-size:14px;font-weight:600}

/* ═══ 2026-10 리더 화면 — 공지 · 준비 일정 · 의견 지우기 ═══
   🔴 새 색을 만들지 않는다. 지우기에도 빨강을 쓰지 않는다 — 확인창의 문구로 말한다. */
/* .frm 의 input 은 폭 100% 다. 체크 칸까지 늘어나면 한 줄을 통째로 차지한다 */
.achk{display:inline-flex;flex-wrap:wrap;align-items:center;gap:2px 7px;margin:11px 16px 0 0;font-size:13px;cursor:pointer}
.achk input{width:auto;margin:0;flex:none}
/* 풀이는 아랫줄로 — 같은 줄에 두면 좁은 화면에서 「리더만 / 보기」처럼 낱말이 꺾인다 */
.achk small{flex-basis:100%;padding-left:20px;color:var(--muted);font-size:11.5px}
/* 현황판 큰 숫자 아래의 풀이 한 줄(한국 n · 캄보디아 n) */
.astat b em.sub{display:block;font-size:12.5px;margin-top:2px}
/* 접어 둔 선택 칸(영문) */
.aen{margin-top:11px;font-size:12px;color:var(--muted)}
.aen summary{cursor:pointer}
.aen .frm{margin-top:9px}
/* 저장 옆이 아니라 카드 맨 아래 오른쪽 — 잘못 누르지 않게 떨어뜨린다 */
.adel{margin-top:6px;text-align:right}
.adel .linkbtn{padding:6px 0 0 14px}
.arow.past{opacity:.55}
.arow .q small{font-size:12px;font-weight:400;color:var(--muted);margin-left:6px}
.said form{display:inline;margin-left:6px}
/* 붙여넣기 글 상자 — 누르면 전체가 선택된다 */
.copybox{margin-top:13px;padding-top:11px;border-top:1px solid var(--line)}
.copybox .cbhd{display:flex;align-items:center;justify-content:space-between;gap:10px;
  font-size:11.5px;color:var(--muted);margin-bottom:5px}
.copybox textarea{display:block;width:100%;box-sizing:border-box;font:inherit;font-size:13px;line-height:1.55;
  padding:11px;border:1px solid var(--line);border-radius:9px;background:#FCFCFB;resize:vertical}

/* ═══ 2026-10 리더 화면 — 참가자 (한 명 추가 · 개인 초대문 · 명단에서 내리기) ═══
   🔴 새 색을 만들지 않는다. 내린 사람도 빨강이 아니라 흐린 바탕으로 가른다. */
a.abtn{display:inline-block}
/* 카드 안 단추 줄. 좁은 화면에서는 아래로 떨어진다 */
.aacts{display:flex;flex-wrap:wrap;align-items:center;gap:8px 16px;margin-top:10px}
.arow.agone{background:var(--na-bg)}
table.agone td{color:var(--muted)}
table.at td.ainv{text-align:center;font-variant-numeric:tabular-nums;white-space:nowrap}
/* 참가자 표는 열이 여섯이라 휴대폰 폭에 다 안 들어간다. 폭에 맞추면 이름이 한 글자씩 세로로 꺾인다 —
   그래서 줄이지 않고 표만 옆으로 민다 */
.atscroll{overflow-x:auto;-webkit-overflow-scrolling:touch}
.atscroll table.at{min-width:600px}
.atscroll table.agone{min-width:460px}
.atscroll table.at td:first-child{white-space:nowrap}
/* 첫 칸의 이름·질문은 누르는 곳이다 — 본문과 같은 색이라 밑줄이 없으면 눌리는 줄 모른다 */
.atscroll table.at td:first-child a{text-decoration:underline}
/* 휴대폰 — 칸 사이를 좁혀 「초대」까지는 밀지 않고 보이게 한다(보낸 사람을 세는 열이다). 연락처만 옆으로 민다 */
@media (max-width:520px){
  .atscroll table.at{min-width:450px;font-size:12.5px}
  .atscroll table.agone{min-width:400px}
  .atscroll table.at th,.atscroll table.at td{padding:9px 5px}
}
/* 체크 칸 옆 글이 한 문장일 때 — 글이 체크 칸 아래로 떨어지지 않고 옆에서 줄바꿈된다 */
.achk.along{display:flex;flex-wrap:nowrap;align-items:flex-start;margin-right:0;line-height:1.5}
.achk.along input{margin-top:4px}

/* ═══ 2026-10 검토 뒤 고침 — 새 색·새 요소 없음. 있는 줄의 줄바꿈과 영어 모드 크기만 바로잡는다 ═══ */
/* 🔴 영어 모드의 `.kv span` 규칙이 .kv 안의 .en-under(그것도 span 이다)까지 잡아 영문을 8px 회색 잔글씨로 만든다 —
   /open 의 By when · What it blocks · Plan B, 일정 카드의 Headcount · Note. 다른 곳의 .en-under 와 같은 모양으로 되돌린다. */
html[data-lang="en"] .kv .en-under{color:var(--ink);font-size:1.22em}
/* .kv 의 왼쪽 라벨 — 값이 길면 라벨 칸이 12px 까지 눌려 「메/모」「플/랜/B」처럼 한 글자씩 세로로 꺾인다 */
.kv > span{flex:none;white-space:nowrap}
.kv > b{min-width:0}
/* 낱말 풀이의 낱말 칸은 폭이 정해져 있다(78px) — 영문 낱말은 그 안에서 꺾인다 */
.kv.gloss > span{white-space:normal}
/* 의견에 긴 주소를 붙이면 줄바꿈되지 않고 카드 밖으로 넘쳐 화면 전체가 옆으로 밀린다 */
.said{overflow-wrap:anywhere}
/* 명단 — 소속이 길면 「한/의대생」처럼 직능 낱말 가운데서 줄이 바뀐다 */
.mem-t em{word-break:keep-all;overflow-wrap:anywhere}
/* 상태 배지가 좁은 칸에서 「아직 안 물어/봄」「미/정」처럼 꺾이지 않게(안내의 상태 풀이 · 리트릿 세션 카드) */
.glossbadges .badge,.rhead .badge{flex:none;white-space:nowrap}
/* 2차 신청서의 체크 칸 — 글과 도움말을 한 덩어리로 묶어 체크 칸 옆에 둔다(도움말이 옆 칸에 나란히 서서 양쪽이 좁게 꺾였다) */
.fsec label.chk > span{flex:1;min-width:0}
/* 어쿤 — 일곱째부터의 글을 접어 둔 <details>. 요약 줄은 기존 .more 그대로, 눌리는 것임을 커서로만 알린다 */
summary.more{cursor:pointer}

/* ═══ 카카오·구글로 「다시 들어오기」 (2026-10-25) ═══ */
/* 단추 색은 각 회사의 로그인 단추 안내를 따른다 — 카카오는 노랑 바탕에 검정 글자, 구글은 흰 바탕에 회색 테두리.
   .gatebox button · .login button(바탕 primary)보다 특이도가 높아야 덮인다 */
.socialbtns{max-width:260px;margin:0 auto 22px}
.login .socialbtns{max-width:none;margin:16px 0 8px}
.socialform{margin:0}
button.socialbtn{display:block;width:100%;margin:8px 0 0;border-radius:9px;padding:12px;font:inherit;font-weight:500;cursor:pointer;border:1px solid var(--line)}
button.socialbtn.sb-kakao{background:#FEE500;color:rgba(0,0,0,.85);border-color:#FEE500}
button.socialbtn.sb-google_oauth2{background:#fff;color:#1f1f1f;border-color:#747775}
.socialnote{font-size:12px;color:var(--muted);line-height:1.6;margin:8px 0 0}
.gatebox .socialnote{margin:8px 0 0;font-size:12.5px}
.socialrow{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:8px 0;border-top:1px solid var(--line)}
.socialrow:first-of-type{border-top:0}
.socialrow > span{min-width:0;overflow-wrap:anywhere}

/* 「주소 보내기」 · 「리더 계정」의 ① 번호 복사 → ② 글 복사 (2026-10-25) */
.copyseq{display:flex;flex-wrap:wrap;gap:6px;align-items:center;margin-bottom:4px}
.copyseq .abtn.copied{opacity:.75}

/* ── 입구(게이트 · 개인 주소 시작 화면) — 2026-10-25 ──
   🔴 홈과 같은 크메르 격자 머리띠를 쓴다(.bar). 탭이 없으니 머리띠 아래 여백을 넉넉히 둔다.
   단추는 카카오·구글 고유색(위 .socialbtn)을 그대로 쓴다 — 바꾸면 누르기 전에 무엇인지 못 알아본다. */
.bar.front{padding:22px 20px 24px}
.bar.front .frontdates{margin-top:10px;color:#C9A96A;font-weight:500}
.front-body{padding:26px 22px 40px;max-width:420px;margin:0 auto;width:100%;text-align:left}
.gatebox.front-body{padding:26px 22px 40px;text-align:left}
.front-hello{font:700 23px/1.35 var(--font-display);margin:0 0 10px;letter-spacing:-.01em;color:var(--ink)}
.front-hello .en-under{font:400 12px/1.4 var(--font-body)}
.front-lead{font-size:15px;line-height:1.7;color:var(--ink);margin:0 0 16px;word-break:keep-all}
.front-steps{list-style:none;counter-reset:fs;margin:0 0 20px;padding:12px 14px;border:1px solid var(--line);border-radius:12px;background:rgba(255,255,255,.45)}
.front-steps li{counter-increment:fs;display:grid;grid-template-columns:24px 1fr;gap:6px;align-items:baseline;font-size:14px;padding:4px 0}
.front-steps li::before{content:counter(fs);font:600 12px var(--font-mono);color:#9A6608;justify-self:start;
  width:20px;height:20px;line-height:20px;text-align:center;border-radius:50%;background:rgba(201,138,27,.16)}
.front-btns.socialbtns{max-width:none;margin:0 0 18px}
.front-btns button.socialbtn{padding:14px;font-size:15.5px;font-weight:600;border-radius:11px;max-width:none}
.front-leader{display:block;text-align:center;padding:14px;border-radius:11px;background:var(--primary);color:#fff;font-weight:600;font-size:15.5px;text-decoration:none;margin:0 0 18px}
.front-sec{margin:0 0 22px}
.front-sec h2{font:600 14px var(--font-body);color:var(--muted);margin:0 0 8px;letter-spacing:0}
.gatebox .front-sec p{margin:0;font-size:14px;color:var(--ink);text-align:left}
.front-code{padding-top:18px;border-top:1px solid var(--line)}
.gatebox .front-code input{max-width:none;margin-top:12px;text-align:left}
.gatebox .front-code button{max-width:none}
.front-note{font-size:12.5px;color:var(--muted);line-height:1.6;margin:8px 0 0;word-break:keep-all}
.front-note a{color:inherit}

/* 다음 관문의 날짜 · 의견 칸의 내 이름(10/26) */
.dd.goal .gdate{font-weight:700;color:var(--ink)}
.opine .fields .as{align-self:center;font-weight:600;font-size:14px;padding:0 4px;white-space:nowrap}

/* ═══ 2026-10-26 디자인 손질 — 글자 크기 · 글꼴 · 머리띠 · 아래 탭 · 첫 화면 탑승권 ═══
   색은 그대로다(사암 · 라테라이트). 바뀌는 것:
   ① 작은 고정폭 글꼴(날짜 · 라벨 · 숫자)을 본문 글꼴로 — 숫자는 tabular-nums 로 줄을 맞춘다
   ② 큰 숫자(D-98 · 명단 수)는 제목 글꼴(고운바탕)로 — 비문에 새긴 숫자처럼
   ③ 글자를 한 단 키운다(본문 14~15 · 라벨 12~13)
   ④ 머리띠는 첫 화면만 크게, 나머지는 한 줄
   ⑤ 첫 화면 「출국 · 다음 관문」을 탑승권 한 장으로 — 절취선과 반원 홈 */
:root{--font-mono:'Noto Sans KR',system-ui,-apple-system,sans-serif}
body{font-size:14px;font-variant-numeric:tabular-nums;line-height:1.65}
.pad{padding:20px 18px 26px}
.bar .mark{font-size:10.5px;letter-spacing:.18em}
.bar.compact{padding:11px 18px 13px}
.bar.compact b{font-size:20px;margin-top:4px}
.bar.compact small{display:none}
.sec h4{font-size:16px}
.sec > :not(h4){font-size:12.5px;letter-spacing:0}
.line{font-size:14.5px;line-height:1.7}
.q{font-size:16px;line-height:1.55}
.kv{font-size:13.5px}
.card{padding:15px 16px;border-radius:14px;margin-bottom:12px}
.badge{font-size:12.5px;padding:3px 10px}
.block{font-size:13px;letter-spacing:0}
.toggle a{font-size:13.5px;padding:10px 4px}
.needans b{font-size:15px}
.needans .n{font:700 26px var(--font-display);color:var(--laterite)}
.cell span{font-size:12.5px}
.cell b{font:700 28px/1.1 var(--font-display)}
.cell b em{font-size:14px}
/* 첫 화면 탑승권 — 「다음 관문」은 말 그대로 출국 전에 지나는 게이트다 */
.dday{position:relative;gap:0;background:var(--sand-surface);border-top:1px solid var(--line);border-bottom:1px solid var(--line);margin-top:-2px}
.dday::before,.dday::after{content:"";position:absolute;left:50%;width:20px;height:20px;margin-left:-10px;border-radius:50%;background:var(--sand-bg);z-index:1}
.dday::before{top:-11px;box-shadow:inset 0 -1px 0 var(--line)}
.dday::after{bottom:-11px;box-shadow:inset 0 1px 0 var(--line)}
.dd{padding:18px 18px 17px}
.dd span{font-size:12.5px}
.dd b{font:700 48px/1 var(--font-display);letter-spacing:-.02em;margin-top:10px}
.dd em{font:400 13px/1.45 var(--font-body);margin-top:7px}
.dd.goal{border-left:2px dashed var(--line-strong)}
.dd.goal .gdate{font-size:14.5px}
/* 아래 탭 — 선 아이콘 + 글자. 지금 탭은 아이콘이 라테라이트 */
.tabs a{font-size:12px;padding:8px 2px 9px;min-height:58px;gap:3px}
.tabs a .ti{width:23px;height:23px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
.tabs a.on .ti{color:var(--laterite);stroke-width:2}
/* 정할 것 — 의견 칸은 접어 두고 연다 */
.opine{background:transparent;border:0;border-top:1px dashed var(--line);border-radius:0;padding:10px 0 0;margin-top:12px}
.opine summary{cursor:pointer;list-style:none;display:inline-flex;align-items:center;gap:7px;font-size:13.5px;font-weight:600;color:var(--laterite-dk);padding:4px 0}
.opine summary::-webkit-details-marker{display:none}
.opine summary::before{content:"+";display:inline-grid;place-items:center;width:20px;height:20px;border-radius:50%;border:1.5px solid currentColor;font-weight:700;line-height:1}
.opine details[open] summary::before{content:"−"}
.opine details p{margin:8px 0}
.opine .said{font-size:13.5px;margin:6px 0 0}
@media (prefers-reduced-motion:no-preference){.opine details[open] .fields{animation:op-in .18s ease-out}}
@keyframes op-in{from{opacity:0;transform:translateY(-3px)}to{opacity:1;transform:none}}

/* 파송 12일 날 줄 — 두 줄로(날짜 · 지역 / 인원 · 상태). 한 줄에 넣으면 지역이 「한국 → 프…」로 잘린다(10/26) */
.card.daycard{padding:0}
.daycard > summary{display:grid;grid-template-columns:auto minmax(0,1fr) auto;column-gap:10px;row-gap:6px;align-items:center}
.daycard > summary b{grid-column:1;grid-row:1;font-size:15px}
.daycard .daysum{grid-column:2;grid-row:1;font-size:14px;color:var(--ink);white-space:normal;overflow:visible;text-overflow:clip}
.daycard .who{grid-column:1;grid-row:2;font-size:13px}
.daycard > summary .badge{grid-column:2;grid-row:2;justify-self:start}
.daycard > summary::after{grid-column:3;grid-row:1 / span 2}
/* 표의 오른쪽 값이 낱말 가운데서 끊기지 않게(「지 / 표」) */
.kv b{word-break:keep-all;overflow-wrap:anywhere}
.card.apfacts{padding:2px 15px}   /* 신청 안내의 사실 목록 — 일반 카드 여백(10/26)을 받지 않는다 */
