/* 일정 상세 — Luma식 한 틀(src/evdetail.js · public/evd.js). 보통 일정·이벤트, 팀 셸 안·방문자 화면 같은 구조.
   넓은 폭(판 컨테이너 ≥ 600 — 사이드바가 선 팀 셸 880 이상 · 방문자 640 이상): 왼쪽 넓은 칸(머리 · 본문) + 오른쪽 sticky 레일(커버 · 행동 카드 · 도구 · 주최) — 팀 홈 .feed | .rail과 같은 문법.
   좁은 폭: 커버 → 머리 → 행동 카드 → 도구 → 주최 → 본문(grid-template-areas — 마크업은 머리 → 레일 → 본문 그대로).
   테마 색 4개(--evd-tone · fill · on · ink)는 서버가 style 속성으로 싣거나(public/evtone.js toneStyle) evd.js가 렌더 뒤 커버에서 뽑아 입힌다 — 등록된 색 속성이라 250ms로 번진다.
   글자 대비: 판 위 글자는 잉크(ink · ink-2 — 테마 바탕이 흰 종이에 14% 이하라 4.5 이상), 버튼은 fill/on 쌍이 4.5 이상(evtone.js pick이 맞춘다). 튕김 없음(ease-out 150~250) */
@property --evd-tone { syntax: '<color>'; inherits: true; initial-value: #a8a29e; }
@property --evd-fill { syntax: '<color>'; inherits: true; initial-value: #17150f; }
@property --evd-on { syntax: '<color>'; inherits: true; initial-value: #ffffff; }
@property --evd-ink { syntax: '<color>'; inherits: true; initial-value: #4a4844; }

.evd {
  --evd-x: var(--gutter, 24px);
  --ink-3: #575551; /* 판 안의 캡션 — 테마 바탕(흰 종이 + 테마 색 14%) 위에서도 4.5:1(종이 위 #6b6965는 어두운 테마 색 바탕에서 4.1까지 내려간다) */
  --evd-r: 16px;
  --evd-grain: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 .1 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
  container: evd / inline-size;
  position: relative; isolation: isolate; min-height: 100%; border-radius: inherit;
  color: var(--ink, #17150f);
  background-color: var(--paper, #fff);
  background-image: linear-gradient(180deg,
    color-mix(in srgb, var(--evd-tone) 14%, var(--paper, #fff)) 0,
    color-mix(in srgb, var(--evd-tone) 6%, var(--paper, #fff)) 380px,
    var(--paper, #fff) 900px);
  transition: --evd-tone 250ms var(--ease-out, ease-out), --evd-fill 250ms var(--ease-out, ease-out), --evd-on 250ms var(--ease-out, ease-out), --evd-ink 250ms var(--ease-out, ease-out);
  word-break: keep-all; overflow-wrap: anywhere;
  /* 위에 붙는 막대 — 레일(sticky)이 그 밑으로 들어가지 않게. evd.js가 실제 막대 높이로 덮어쓴다(JS가 없을 때의 어림값) */
  --evd-bar: 0px;
}
body.x-pub .evd { --evd-bar: var(--bar-h, 64px); }
html.in-app .evd { --evd-bar: calc(var(--row, 56px) + env(safe-area-inset-top, 0px)); }
/* 방문자 화면(홍보 틀) — 판이 공개 막대 바로 아래부터 바닥까지(흰 띠 없이). 위 여백은 판 안쪽으로 */
body.x-pub .intro-main:has(> .evd) { padding: 0; }
body.x-pub .intro-main > .evd .evd-in { padding-top: 40px; }
/* 좁은 폭 — 메뉴가 막대 아래 둘째 줄(유리)로 내려온다: 판은 그 줄 바로 아래부터 */
@media (max-width: 879px) {
  body.x-pub .pub-bar:not(.pub-bar-hero):has(.intro-nav > a:not([hidden])) ~ .intro-main:has(> .evd) { padding-top: var(--hit, 44px); }
  body.x-pub .intro-main > .evd .evd-in { padding-top: 24px; }
}
/* 그레인 — 위쪽 테마 바탕에만 아주 옅게(아래로 사라진다) */
.evd::before {
  content: ''; position: absolute; inset: 0; z-index: -1; pointer-events: none; border-radius: inherit;
  background-image: var(--evd-grain); opacity: .55;
  -webkit-mask-image: linear-gradient(#000, transparent 900px); mask-image: linear-gradient(#000, transparent 900px);
}
.evd-in {
  max-width: calc(var(--w-wide, 1012px) + 2 * var(--evd-x)); margin-inline: auto; padding: 32px var(--evd-x) 96px; /* 팀 홈 .feed-layout과 같은 기둥(본문 왼쪽 · 레일 오른쪽 끝선) */
  display: grid; grid-template-columns: minmax(0, 1fr);
  grid-template-areas: "back" "cover" "head" "act" "tools" "side" "main";
}
.evd-rail { display: contents; }
.evd-cover { grid-area: cover; margin: 0 auto 24px; width: 100%; max-width: 480px; }
.evd-head { grid-area: head; margin-bottom: 24px; min-width: 0; container: evdh / inline-size; } /* 제목 크기는 머리 칸 폭으로(좁은 두 칸에서 긴 제목이 6줄로 쪼개지지 않게) */
.evd-act { grid-area: act; }
.evd-tools { grid-area: tools; }
.evd-side { grid-area: side; }
.evd-main { grid-area: main; min-width: 0; padding-top: 24px; } /* 한 칸(휴대폰) — 레일 카드 · 공유 줄과 '소개'는 선 없이 여백으로 나뉜다(사용자 요청 2026-10-14). 두 칸은 아래 40 */
/* 돌아가기 — 맨 위 왼쪽(목록 이름 그대로 ‹ 일정 · ‹ 소모임 · ‹ 홈) */
.evd-back { grid-area: back; display: flex; margin: -8px 0 12px; }
.evd-back .sec-more { display: inline-flex; align-items: center; gap: 2px; min-height: 44px; margin-left: -10px; padding: 0 12px 0 6px; border-radius: 999px; font: 500 14px/1 var(--font); color: var(--ink-2, #4a4844); text-decoration: none; }
.evd-back .sec-more svg { width: 18px; height: 18px; }
@media (hover: hover) and (pointer: fine) { .evd-back .sec-more:hover { background: var(--wash-2, rgb(23 21 15 / .05)); color: var(--ink, #17150f); } }
.evd-back .sec-more:focus-visible { outline: 2px solid var(--ink, #17150f); outline-offset: 2px; }

@container evd (width >= 600px) {
  .evd-in {
    grid-template-columns: minmax(0, 1fr) clamp(248px, 36%, 360px); column-gap: clamp(24px, 5cqi, 48px);
    grid-template-areas: "back rail" "head rail" "main rail"; grid-template-rows: auto auto 1fr; padding-top: var(--s-7, 32px);
  }
  /* 팀 홈 레일과 같은 sticky 위치(32) — 막대가 있는 화면(방문자 · 앱 문서 스크롤)은 막대 아래로. 레일이 화면보다 길면 evd.js가 --evd-stick을 줄인다 */
  .evd-rail { grid-area: rail; display: flex; flex-direction: column; position: sticky; top: calc(var(--evd-bar, 0px) + var(--evd-stick, var(--s-7, 32px))); align-self: start; min-width: 0; }
  .evd-cover { max-width: none; margin: 0 0 16px; }
  .evd-head { margin: 0; padding-top: 4px; }
  .evd-main { padding-top: 40px; }
}

/* ── 커버 — 1:1 cover(여백 0) · 둥근 모서리 · 누르면 라이트박스. VT 이름은 그릇(모서리를 함께 자른다) ── */
.evd-cover-b {
  display: block; width: 100%; aspect-ratio: 1; padding: 0; border: 0; border-radius: var(--evd-r); overflow: hidden; cursor: zoom-in;
  background: color-mix(in srgb, var(--evd-tone) 18%, var(--paper, #fff));
  box-shadow: 0 0 0 1px rgb(23 21 15 / .08), 0 12px 32px -16px color-mix(in srgb, var(--evd-tone) 55%, transparent);
  transition: scale 150ms var(--ease-out, ease-out);
}
.evd-cover-b img { display: block; width: 100%; height: 100%; object-fit: cover; }
.evd-cover-b:active { scale: .99; }
.evd-cover-b:focus-visible { outline: var(--focus, 2px solid var(--ink)); outline-offset: 3px; }
/* 글자 커버 — 팀 색 바탕 · 로고 · 제목(일부러 만든 표지처럼) */
.evd-lc {
  container-type: inline-size; position: relative; overflow: hidden;
  display: grid; grid-template-rows: auto 1fr auto; gap: 12px; aspect-ratio: 1; padding: 8%; border-radius: var(--evd-r);
  color: var(--evd-on);
  background: radial-gradient(120% 90% at 100% 0%, color-mix(in srgb, var(--evd-on) 14%, transparent), transparent 60%), var(--evd-fill);
  box-shadow: 0 0 0 1px rgb(23 21 15 / .06);
}
.evd-lc::after { content: ''; position: absolute; inset: 0; background-image: var(--evd-grain); opacity: .7; pointer-events: none; }
.evd-lc-top { display: flex; align-items: center; gap: 10px; min-width: 0; }
.evd-lc-lg { width: 13cqi; height: 13cqi; min-width: 32px; min-height: 32px; border-radius: 22%; object-fit: contain; background: #fff; padding: 4%; flex: none; }
.evd-lc-lg.is-txt { display: grid; place-items: center; padding: 0; color: #17150f; font: 700 max(13px, 5cqi)/1 var(--font); }
.evd-lc-team { font: 600 max(13px, 4.2cqi)/1.2 var(--font); opacity: .92; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.evd-lc-t {
  align-self: end; font: 700 clamp(22px, 10cqi, 44px)/1.12 var(--font); letter-spacing: -0.035em;
  display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 4; line-clamp: 4; overflow: hidden;
}
.evd-lc-d { font: 500 max(13px, 4.2cqi)/1.2 var(--font); opacity: .92; }

/* ── 머리 — 칩 줄 · 아주 큰 제목 · 날짜 줄 · 장소 줄(목록 카드와 같은 결) ── */
.evd-chips { display: flex; flex-wrap: wrap; gap: 6px; margin: 0 0 14px; }
/* 셸(v4-app.css 'body.has-sb .chip…' 0,3,1 · 누름 0,4,2)보다 위에 서도록 클래스를 겹친다(0,5,0) — 셸·방문자 같은 모양(28 · 13 · 테마 색) */
.evd.evd .evd-chips .chip.chip {
  height: 28px; padding: 0 10px; border: 0; border-radius: 999px; display: inline-flex; align-items: center; gap: 6px;
  background: color-mix(in srgb, var(--evd-tone) 12%, rgb(255 255 255 / .7)); color: var(--evd-ink);
  box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--evd-tone) 18%, transparent);
  font: 500 13px/1 var(--font); letter-spacing: 0; white-space: nowrap; text-decoration: none;
}
.evd.evd .evd-chips .chip.chip.strong { background: var(--ink, #17150f); color: #fff; box-shadow: none; }
.evd.evd .evd-chips a.chip.chip { position: relative; transition: background-color 150ms var(--ease-out, ease-out); }
.evd.evd .evd-chips a.chip.chip::after { content: ''; position: absolute; inset: -8px -2px; } /* 누르는 자리 44 */
@media (hover: hover) and (pointer: fine) { .evd.evd .evd-chips a.chip.chip:hover { background: color-mix(in srgb, var(--evd-tone) 20%, rgb(255 255 255 / .7)); color: var(--evd-ink); } }
.evd-title { margin: 0 0 24px; font: 700 clamp(28px, 7cqi + 6px, 52px)/1.12 var(--font); letter-spacing: -0.035em; color: var(--ink, #17150f); }
.evd-rows { display: grid; gap: 12px; }
.evd-row { display: flex; align-items: center; gap: 14px; min-height: 48px; min-width: 0; }
.evd-tile {
  flex: none; width: 48px; height: 48px; border-radius: 12px; display: grid; place-items: center; overflow: hidden;
  background: rgb(255 255 255 / .72); color: var(--ink-2, #4a4844);
  box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--evd-tone) 26%, rgb(23 21 15 / .08));
}
.evd-tile svg { width: 22px; height: 22px; }
.evd .evd-tile .mu-date {
  display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 3px;
  width: 48px; height: 48px; margin: 0; padding: 0; border: 0; border-radius: 12px; background: transparent; box-shadow: none;
}
.evd .evd-tile .mu-date > span { margin: 0; font: 600 10.5px/1 var(--font); letter-spacing: 0; color: var(--evd-ink); }
.evd .evd-tile .mu-date > b { font: 700 18px/1 var(--font); letter-spacing: -0.02em; color: var(--ink, #17150f); font-variant-numeric: tabular-nums; }
.evd-row-t { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.evd-row-t > b { font: 600 16px/1.35 var(--font); color: var(--ink, #17150f); }
.evd-row-t > span, .evd-row-a { font: 400 14px/1.4 var(--font); color: var(--ink-2, #4a4844); }
.evd-row-a { position: relative; display: inline-flex; align-items: center; gap: 2px; width: max-content; min-height: 24px; text-decoration: none; }
.evd-row-a::after { content: ''; position: absolute; inset: -10px -6px; } /* 누르는 자리 44(글자 줄 높이는 그대로) */
.evd-row-a svg { width: 14px; height: 14px; }
@media (hover: hover) and (pointer: fine) { .evd-row-a:hover { color: var(--ink, #17150f); text-decoration: underline; text-underline-offset: 3px; } }

/* ── 행동 카드 — 테마 색 유리(.lgx 토큰 문법: 광택 · 채움 · 흐림 · 테두리 빛 · 그림자). 읽는 동안 늘 보인다(넓은 폭은 레일과 함께 sticky) ── */
.evd-act {
  margin: 0 0 12px; padding: 20px; border-radius: 20px;
  background: var(--paper, #fff); /* 유리 대신 종이 카드 — 색은 버튼·체크에만(사용자 10-06: 일정 부분 글래스모피즘 덜) */
  box-shadow: 0 0 0 1px var(--line, rgb(23 21 15 / .09)), 0 1px 2px rgb(23 21 15 / .04), 0 12px 32px -16px rgb(23 21 15 / .16);
}
.evd-act-h { display: flex; align-items: center; gap: 6px; margin: 0; font: 600 17px/1.35 var(--font); letter-spacing: -0.02em; color: var(--ink, #17150f); }
.evd-act-h svg { width: 18px; height: 18px; flex: none; color: var(--evd-ink); }
.evd-act-s { margin: 4px 0 16px; font: 400 14px/1.5 var(--font); color: var(--ink-2, #4a4844); }
.evd-act-s b { font-weight: 600; color: var(--ink, #17150f); }
.evd-act-note { margin: 0; font: 400 14px/1.5 var(--font); color: var(--ink-2, #4a4844); }
.evd-act form { margin: 0; }
.evd-btn, .evd .evd-act .evd-act-sg .btn {
  display: flex; align-items: center; justify-content: center; gap: 8px; width: 100%; height: 48px; margin: 0; padding: 0 20px;
  border: 0; border-radius: 999px; background: var(--evd-fill); color: var(--evd-on);
  font: 600 16px/1 var(--font); letter-spacing: -0.01em; text-decoration: none; cursor: pointer;
  transition: background-color 150ms var(--ease-out, ease-out), scale 150ms var(--ease-out, ease-out);
}
.evd-btn svg { width: 18px; height: 18px; flex: none; }
.evd-btn:active:not(:disabled), .evd .evd-act .evd-act-sg .btn:active:not(:disabled) { scale: .98; }
@media (hover: hover) and (pointer: fine) { .evd-btn:hover:not(:disabled), .evd .evd-act .evd-act-sg .btn:hover:not(:disabled) { background: color-mix(in srgb, var(--evd-fill) 88%, var(--evd-on)); } }
.evd-btn.is-quiet { background: rgb(255 255 255 / .82); color: var(--ink, #17150f); box-shadow: inset 0 0 0 1px var(--line-2, rgb(23 21 15 / .15)); }
@media (hover: hover) and (pointer: fine) { .evd-btn.is-quiet:hover { background: #fff; } }
.evd-btn:disabled { background: rgb(23 21 15 / .08); color: var(--ink-2, #4a4844); cursor: not-allowed; }
.evd-btn:focus-visible, .evd .evd-act .evd-act-sg .btn:focus-visible { outline: 2px solid var(--ink, #17150f); outline-offset: 3px; }
.evd-act-l {
  display: flex; align-items: center; justify-content: center; gap: 6px; min-height: 44px; margin: 4px 0 -12px;
  font: 500 14px/1 var(--font); color: var(--ink-2, #4a4844); text-decoration: none;
}
.evd-act-l svg { width: 16px; height: 16px; }
@media (hover: hover) and (pointer: fine) { .evd-act-l:hover { color: var(--ink, #17150f); } }
/* 내 캘린더에 이미 들어가 있음 — '추가' 대신 상태 한 줄 + 휴대폰 캘린더 구독 길(routes-society inMyCal) */
.evd-incal { display: flex; flex-wrap: wrap; align-items: center; gap: 4px 6px; margin: -4px 0 16px; font: 500 14px/1.4 var(--font); color: var(--ink, #17150f); }
.evd-incal > svg { width: 16px; height: 16px; flex: none; color: var(--evd-ink); }
.evd-incal > a { display: inline-flex; align-items: center; gap: 2px; min-height: 44px; margin: -12px 0 -12px auto; color: var(--ink-2, #4a4844); font-weight: 500; text-decoration: none; }
.evd-incal > a svg { width: 14px; height: 14px; }
@media (hover: hover) and (pointer: fine) { .evd-incal > a:hover { color: var(--ink, #17150f); } }
.evd-incal.is-foot { margin: 12px 0 -8px; }
.evd-act-faces { display: flex; min-height: 44px; align-items: center; margin: -8px 0 12px; }
/* 유리 폴백 — .lgx와 같은 순서(흐림 없음 · 투명도 줄이기 · 저사양 → 거의 불투명, 대비 높이기 → 종이 + 선, 강제 색 → 시스템 색) */
@supports not ((backdrop-filter: blur(1px)) or (-webkit-backdrop-filter: blur(1px))) { .evd-act { background: color-mix(in srgb, var(--evd-tone) 10%, var(--lg-fill-solid, rgb(255 255 255 / .96))); } }
@media (prefers-reduced-transparency: reduce) { .evd-act { background: color-mix(in srgb, var(--evd-tone) 10%, var(--lg-fill-solid, rgb(255 255 255 / .96))); -webkit-backdrop-filter: none; backdrop-filter: none; } }
html.lg-lite .evd-act { background: color-mix(in srgb, var(--evd-tone) 10%, var(--lg-fill-solid, rgb(255 255 255 / .96))); -webkit-backdrop-filter: none; backdrop-filter: none; }
@media (prefers-contrast: more) { .evd-act { background: var(--paper, #fff); -webkit-backdrop-filter: none; backdrop-filter: none; box-shadow: 0 0 0 1px var(--line-3, rgb(23 21 15 / .3)); } }
@media (forced-colors: active) {
  .evd-act { background: Canvas; border: 1px solid CanvasText; -webkit-backdrop-filter: none; backdrop-filter: none; }
  .evd-btn, .evd .evd-tool, .evd-dock .evd-dock-in, .evd-dock .evd-btn { border: 1px solid ButtonText; } /* 알약의 테두리는 inset 그림자라 강제 색에서 지워진다 — 선으로 되살린다 */
  .evd.evd .evd-chips .chip.chip, .evd-tile { border: 1px solid CanvasText; }
}

/* ── 호스트 도구 — 카드 아래 한 줄(조용한 알약) ── */
.evd-tools { display: flex; flex-wrap: wrap; gap: 6px; margin: 0 0 20px; }
.evd-tools form { margin: 0; display: contents; }
.evd-tool {
  position: relative; display: inline-flex; align-items: center; gap: 6px; height: 36px; margin: 0; padding: 0 12px;
  border: 0; border-radius: 999px; background: rgb(255 255 255 / .7); color: var(--ink-2, #4a4844);
  box-shadow: inset 0 0 0 1px var(--line-2, rgb(23 21 15 / .15));
  font: 500 13px/1 var(--font); text-decoration: none; white-space: nowrap; cursor: pointer;
  transition: background-color 150ms var(--ease-out, ease-out), color 150ms var(--ease-out, ease-out);
}
.evd-tool::after { content: ''; position: absolute; inset: -4px 0; }
.evd-tool svg { width: 15px; height: 15px; flex: none; }
.evd-tool b { font-weight: 600; color: var(--ink, #17150f); }
@media (hover: hover) and (pointer: fine) { .evd-tool:hover { background: #fff; color: var(--ink, #17150f); } }
.evd-tool.is-danger { color: var(--danger, #b91c1c); }
.evd-tool.is-live { color: var(--ink, #17150f); background: #fff; }
.evd-live { width: 8px; height: 8px; border-radius: 50%; background: #16a34a; box-shadow: 0 0 0 3px rgb(22 163 74 / .18); }
@media (prefers-reduced-motion: no-preference) { .evd-live { animation: evd-pulse 1.6s ease-out infinite; } }
@keyframes evd-pulse { 50% { box-shadow: 0 0 0 5px rgb(22 163 74 / .06); } }

/* ── 주최 · 호스트 · 얼굴 묶음 · 공유·신고 ── */
.evd-side { display: flex; flex-direction: column; gap: 12px; margin: 4px 0 8px; }
/* 정보 줄 — 주최·올린 사람/호스트·참가자를 같은 틀(앞 40 · 두 줄 글자)로, 한 묶음 카드 안에 선으로 나눠 */
.evd-info { display: flex; flex-direction: column; border-radius: 16px; background: var(--paper, #fff); box-shadow: 0 0 0 1px var(--line, rgb(23 21 15 / .09)); overflow: hidden; }
.evd-ir { position: relative; display: flex; align-items: center; gap: 12px; min-height: 64px; padding: 12px 16px; color: var(--ink, #17150f); text-decoration: none; }
.evd-ir + .evd-ir::before { content: ''; position: absolute; left: 68px; right: 0; top: 0; border-top: 1px solid var(--line, rgb(23 21 15 / .09)); }
.evd-ir > .evd-org-lg, .evd-ir > .avatar, .evd-ir > img { width: 40px; height: 40px; flex: none; }
.evd-ir > .avatar, .evd-ir > img.avatar { border-radius: 50%; }
.evd-ir-faces { display: inline-flex; flex: none; width: 40px; overflow: hidden; }
.evd-ir-faces .evd-faces-st > * { width: 28px !important; height: 28px !important; }
.evd-ir-t { display: flex; flex-direction: column; gap: 2px; min-width: 0; flex: 1; }
.evd-ir-t > span { font: 400 12px/1.2 var(--font); color: var(--ink-2, #4a4844); }
.evd-ir-t > b { font: 600 15px/1.3 var(--font); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.evd-ir > svg { width: 16px; height: 16px; flex: none; color: var(--ink-3, #6b6965); }
@media (hover: hover) and (pointer: fine) { a.evd-ir:hover { background: var(--wash, rgb(23 21 15 / .03)); } }
a.evd-ir:focus-visible { outline: 2px solid var(--ink, #17150f); outline-offset: -2px; border-radius: 16px; }
/* 행동 줄 — 공유(전역 같은 알약) · 더 보기(같은 높이의 원) */
.evd-acts { display: flex; align-items: center; gap: 8px; }
.evd .evd-acts .share-btn { flex: 1; } /* 모양은 share.css 한 곳(전역 공유 단추) — 여기서는 줄을 채우는 폭만 */
.evd-more { position: relative; flex: none; }
.evd-more-b { display: grid; place-items: center; width: 40px; height: 40px; border: 1px solid var(--line-2, rgb(23 21 15 / .15)); border-radius: 50%; background: #fff; color: var(--ink, #17150f); cursor: pointer; list-style: none; }
.evd-more-b::-webkit-details-marker { display: none; }
.evd-more-b svg { width: 18px; height: 18px; }
@media (hover: hover) and (pointer: fine) { .evd-more-b:hover { background: var(--wash-2, rgb(23 21 15 / .05)); } }
.evd-more-b:focus-visible { outline: 2px solid var(--ink, #17150f); outline-offset: 2px; }
.evd-more-pop { position: absolute; right: 0; bottom: calc(100% + 8px); z-index: 20; min-width: 180px; padding: 6px; border-radius: 14px; background: var(--paper, #fff); box-shadow: 0 0 0 1px var(--line, rgb(23 21 15 / .09)), 0 16px 40px -12px rgb(23 21 15 / .22); }
.evd-more-pop form { margin: 0; }
.evd-more-i { display: flex; align-items: center; gap: 10px; width: 100%; min-height: 44px; padding: 0 12px; border: 0; border-radius: 10px; background: none; color: var(--ink, #17150f); font: 500 14px/1 var(--font); text-align: left; cursor: pointer; }
.evd-more-i svg { width: 16px; height: 16px; flex: none; }
.evd-more-i.is-danger { color: var(--danger, #b91c1c); }
a.evd-more-i { text-decoration: none; } /* 수정 — 메뉴의 링크 행(버튼 행과 같은 모양) */
.evd-more-i:focus-visible { outline: 2px solid var(--ink, #17150f); outline-offset: -2px; }
.evd-more-sep { height: 1px; margin: 6px 6px; border: 0; background: var(--line, rgb(23 21 15 / .09)); } /* 수정 ↔ 신고·지우기 사이 */
@media (hover: hover) and (pointer: fine) { .evd-more-i:hover { background: var(--wash-2, rgb(23 21 15 / .05)); } }
.evd-org { display: flex; align-items: center; gap: 12px; min-height: 60px; color: var(--ink, #17150f); text-decoration: none; border-radius: 12px; }
.evd-org-lg { width: 40px; height: 40px; flex: none; border-radius: 10px; object-fit: contain; background: var(--paper, #fff); box-shadow: inset 0 0 0 1px var(--line, rgb(23 21 15 / .09)); }
.evd-org-lg.is-txt { display: grid; place-items: center; font: 700 15px/1 var(--font); color: var(--ink, #17150f); }
.evd-org-t { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.evd-org-t > span { font: 400 12px/1.2 var(--font); color: var(--ink-2, #4a4844); }
.evd-org-t > b { font: 600 15px/1.3 var(--font); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.evd-org > svg { width: 16px; height: 16px; margin-left: auto; color: var(--ink-3, #6b6965); flex: none; }
@media (hover: hover) and (pointer: fine) { .evd-org:hover .evd-org-t > b { text-decoration: underline; text-underline-offset: 3px; } }
.evd-who { display: flex; align-items: center; gap: 10px; min-height: 40px; font: 400 14px/1.4 var(--font); color: var(--ink, #17150f); }
.evd-faces { display: flex; align-items: center; gap: 10px; min-height: 44px; font: 400 14px/1.4 var(--font); color: var(--ink-2, #4a4844); text-decoration: none; }
.evd-faces b { font-weight: 600; color: var(--ink, #17150f); }
.evd-faces-st { display: inline-flex; align-items: center; }
.evd-faces-st > * { margin-left: -6px; border-radius: 50%; box-shadow: 0 0 0 2px var(--paper, #fff); }
.evd-faces-st > :first-child { margin-left: 0; }
.evd-faces-more { display: inline-grid; place-items: center; height: 24px; min-width: 24px; padding: 0 6px; border-radius: 999px; background: var(--wash-2, rgb(23 21 15 / .05)); font: 600 11px/1 var(--font); color: var(--ink-2, #4a4844); }

/* ── 본문 — 소개 · 기록(archive.css) · 참가자 ── */
.evd-sec { margin-top: 36px; }
.evd-main > .evd-sec:first-child, .evd-main > .w-band:first-child + .evd-sec { margin-top: 8px; }
.evd-h { display: flex; align-items: baseline; gap: 6px; margin: 0 0 12px; font: 600 14px/1.3 var(--font); color: var(--ink-2, #4a4844); letter-spacing: -0.01em; }
.evd-n { color: var(--ink-3, #6b6965); font-weight: 500; }
.evd-prose { font: 400 16px/1.75 var(--font); color: var(--ink, #17150f); }
.evd-prose > :first-child { margin-top: 0; }
.evd-prose :is(h1, h2) { margin: 1.2em 0 .4em; font: 600 19px/1.35 var(--font); letter-spacing: -0.02em; }
.evd-prose :is(h3, h4) { margin: 1em 0 .3em; font: 600 16px/1.45 var(--font); }
.evd-prose img { max-width: 100%; height: auto; border-radius: 12px; }
.evd-empty { margin: 0; font: 400 15px/1.6 var(--font); color: var(--ink-2, #4a4844); }
.evd-people { display: grid; grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)); gap: 4px 16px; }
.evd-person { display: flex; align-items: center; gap: 12px; min-height: 56px; min-width: 0; }
.evd-person-t { display: flex; flex-direction: column; min-width: 0; }
.evd-person-t strong { font: 600 15px/1.4 var(--font); color: var(--ink, #17150f); }
.evd-person-t span { font: 400 13px/1.4 var(--font); color: var(--ink-3, #6b6965); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.evd-main .ar { margin-top: 36px; }
/* 기록(archive.js 마크업 그대로) — 상세 안에서는 머리를 '소개'·'함께한 사람'과 같은 결(.evd-h)로. 사람 수·얼굴은 레일 카드가 이미 말하니 링크(출석 기록 · 명단 보기)만 */
.evd .ar-head { margin: 0 0 12px; }
.evd .ar-head h2 { margin: 0; font: 600 14px/1.3 var(--font); letter-spacing: -0.01em; color: var(--ink-2, #4a4844); }
.evd .ar-with:not(.ar-with-none) > :is(.ar-stack, .ar-with-t) { display: none; }
.evd .ar-with:not(.ar-with-none) > .ar-with-links { margin-left: 0; }
.evd .ar-with:not(.ar-with-none) { margin-bottom: var(--s-4, 16px); }
.evd-foot { margin-top: 48px; padding-top: 12px; border-top: 1px solid var(--line, rgb(23 21 15 / .09)); }
.evd-foot .sec-more { min-height: 44px; display: inline-flex; align-items: center; }

/* ── 라이트박스 — 커버를 크게(evd.js · Esc · 바깥 누르기로 닫힘) ── */
.evd-lb { width: 100vw; height: 100dvh; max-width: 100vw; max-height: 100dvh; margin: 0; padding: 0; border: 0; background: transparent; overflow: hidden; }
.evd-lb[open] { display: grid; place-items: center; }
.evd-lb::backdrop { background: rgb(12 12 12 / .88); }
.evd-lb img { max-width: min(94vw, 1400px); max-height: 88dvh; object-fit: contain; border-radius: 12px; }
.evd-lb-x-f { position: fixed; top: max(16px, env(safe-area-inset-top)); right: max(16px, env(safe-area-inset-right)); margin: 0; z-index: 1; }
.evd-lb-x { display: grid; place-items: center; width: 44px; height: 44px; border: 0; border-radius: 50%; background: rgb(255 255 255 / .16); color: #fff; cursor: pointer; }
.evd-lb-x svg { width: 20px; height: 20px; }
.evd-lb-x:focus-visible { outline: 2px solid #fff; outline-offset: 2px; }
@media (prefers-reduced-motion: no-preference) {
  .evd-lb[open] img { animation: evd-zoom 200ms var(--ease-out, ease-out) both; }
  .evd-lb[open]::backdrop { animation: evd-fade 200ms var(--ease-out, ease-out) both; }
}
@keyframes evd-zoom { from { opacity: 0; scale: .96; } }
@keyframes evd-fade { from { opacity: 0; } }

/* ── 아래 도크 — 좁은 폭에서 행동 카드가 화면 밖에 있을 때만(evd.js가 켠다). 떠 있는 조작부라 유리(.lgx) · 탭 바 위 · safe-area ──
   evd.js가 body 바로 아래로 옮긴다(조상의 container·transform이 position: fixed를 가두지 않게) — 테마 색은 서버가 같은 style로 싣는다 */
.evd-dock {
  position: fixed; left: 0; right: 0; bottom: calc(12px + env(safe-area-inset-bottom, 0px)); z-index: var(--z-fab, 50);
  display: flex; justify-content: center; padding: 0 calc(12px + env(safe-area-inset-right, 0px)) 0 calc(12px + env(safe-area-inset-left, 0px));
  pointer-events: none; opacity: 0; translate: 0 8px; visibility: hidden;
  transition: opacity 200ms var(--ease-out, ease-out), translate 200ms var(--ease-out, ease-out), visibility 0s linear 200ms,
    --evd-tone 250ms var(--ease-out, ease-out), --evd-fill 250ms var(--ease-out, ease-out), --evd-on 250ms var(--ease-out, ease-out);
}
.evd-dock[hidden] { display: none; }
.evd-dock.is-on { opacity: 1; translate: 0 0; visibility: visible; transition-delay: 0s; }
.evd-dock-in { pointer-events: auto; display: flex; align-items: center; gap: 12px; width: min(100%, 480px); min-height: 60px; padding: 8px 8px 8px 20px; border-radius: 999px; background: var(--paper, #fff); box-shadow: 0 0 0 1px var(--line, rgb(23 21 15 / .09)), 0 12px 32px -12px rgb(23 21 15 / .24); }
.evd-dock-t { flex: 1; display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.evd-dock-t > b, .evd-dock-t > span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.evd-dock-t > b { font: 600 14px/1.3 var(--font); color: var(--ink, #17150f); }
.evd-dock-t > span { font: 400 12px/1.3 var(--font); color: var(--ink-2, #4a4844); }
.evd-dock form { margin: 0; flex: none; }
.evd-dock .evd-btn { width: auto; height: 44px; padding: 0 20px; font-size: 15px; white-space: nowrap; }
/* 웹 휴대폰 — 떠 있는 탭 바 위로(탭 바가 서는 화면만: v5.css .app-tabs와 같은 조건의 간단한 쪽) */
@media (max-width: 879px) { html:not(.in-app) body:has(> .app-tabs) > .evd-dock { bottom: calc(var(--tabs-top, 76px) + 10px); } }
/* 도크가 서는 화면은 본문 끝에 그만큼 여백(마지막 줄이 도크 밑에 갇히지 않게) */
.evd.has-dock .evd-in { padding-bottom: 168px; }
@container evd (width >= 600px) { .evd.has-dock .evd-in { padding-bottom: 96px; } }

/* 움직임 줄이기 — 색 번짐·누름·VT 없음 */
@media (prefers-reduced-motion: reduce) {
  .evd { transition: none; }
  .evd-dock { translate: none; transition: opacity 150ms linear, visibility 0s linear 150ms; }
  .evd-dock.is-on { transition: opacity 150ms linear, visibility 0s; }
  .evd-cover-b, .evd-btn, .evd-tool { transition: none; }
  .evd-cover-b:active, .evd-btn:active { scale: none; }
}
/* 공유 요소 — 목록 썸네일(64 · r12)이 커버로 자라난다 */
::view-transition-group(vt-meet-cover) { animation-duration: 250ms; animation-timing-function: var(--ease-out, ease-out); }
::view-transition-old(vt-meet-cover), ::view-transition-new(vt-meet-cover) { height: 100%; object-fit: cover; }
@media print { .evd-act, .evd-tools, .evd-links, .evd-dock { display: none; } .evd { background: none; } .evd::before { display: none; } }

.evd .evd-act .evd-act-sg .btn:disabled { background: rgb(23 21 15 / .08); color: var(--ink-2, #4a4844); }
