:root {
  --bg: #fff; --fg: #1c1c1e; --mute: #66666c; --card: #f3f3f6; --line: #dcdce2; --acc: #3d5af1; --on-acc: #fff; --el: #9a6f00;
  color-scheme: light dark;
}
@media (prefers-color-scheme: dark) {
  :root { --bg: #121214; --fg: #f2f2f4; --mute: #a4a4ac; --card: #1e1e22; --line: #34343a; --acc: #8ea2ff; --on-acc: #101018; }
}
[data-el="목"] { --el: #2e7d4f; }
[data-el="화"] { --el: #c0412b; } /* MODIFIED: 라이트 흰 배경 대비 4.5:1 이상 (#d04a33은 4.45) */
[data-el="토"] { --el: #9a6f00; }
[data-el="금"] { --el: #66727f; }
[data-el="수"] { --el: #2f5fa8; }

* { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; }
body {
  margin: 0; background: var(--bg); color: var(--fg); overflow-x: hidden;
  font: 16px/1.5 system-ui, -apple-system, "Apple SD Gothic Neo", "Noto Sans KR", "Malgun Gothic", sans-serif;
}
body.lock { overflow: hidden; }
button, input { font: inherit; color: inherit; }
button { cursor: pointer; }
:focus-visible { outline: 3px solid var(--acc); outline-offset: 2px; }

#app { max-width: 480px; margin: 0 auto; padding: 16px 16px calc(84px + env(safe-area-inset-bottom)); min-height: 100vh; }
h1 { font-size: 22px; line-height: 1.35; margin: 24px 0 20px; word-break: keep-all; text-wrap: balance; } /* MODIFIED: 마지막 줄 한 글자('요') 방지 */
h2 { font-size: 17px; margin: 24px 0 8px; }
.mute { color: var(--mute); font-size: 14px; }

/* 폼 */
.form { display: grid; gap: 18px; }
fieldset { border: 0; margin: 0; padding: 0; min-width: 0; }
legend, .lbl { font-weight: 700; font-size: 15px; margin-bottom: 6px; padding: 0; }
.inp {
  width: 100%; min-height: 52px; padding: 0 14px; border: 1.5px solid var(--line); border-radius: 12px;
  background: var(--card); font-size: 18px;
}
.row { display: flex; gap: 8px; flex-wrap: wrap; margin-top: 8px; }
.seg { position: relative; flex: 1 1 0; min-width: 72px; }
.seg input { position: absolute; opacity: 0; inset: 0; width: 100%; height: 100%; margin: 0; cursor: pointer; }
.seg span {
  display: flex; align-items: center; justify-content: center; min-height: 48px; padding: 0 12px;
  border: 1.5px solid var(--line); border-radius: 12px; background: var(--card);
}
.seg input:checked + span { background: var(--acc); border-color: var(--acc); color: var(--on-acc); font-weight: 700; }
.seg input:focus-visible + span { outline: 3px solid var(--acc); outline-offset: 2px; }
.seg input:disabled + span { opacity: .45; }
.btn {
  min-height: 56px; width: 100%; border: 0; border-radius: 14px; background: var(--acc); color: var(--on-acc);
  font-size: 18px; font-weight: 700;
}
.btn.sub { background: var(--card); color: var(--fg); border: 1.5px solid var(--line); }
.btn[disabled] { opacity: .5; cursor: default; }
.err { color: #d33a3a; min-height: 1.5em; margin: 0; font-size: 14px; }
@media (prefers-color-scheme: dark) { .err { color: #ff8f8f; } }

/* 홈 */
.today {
  display: flex; align-items: center; gap: 10px; width: 100%; min-height: 56px; padding: 0 14px; text-align: left;
  border: 1.5px solid var(--line); border-left: 6px solid var(--el); border-radius: 12px; background: var(--card); font-weight: 700;
}
/* MODIFIED: 글자색 #fff → var(--bg) — 다크의 밝은 오행색 위 흰 글자 대비 1.98~2.73:1 미달 해소(라이트는 흰색 그대로) */
.today .el { margin-left: auto; width: 32px; height: 32px; border-radius: 50%; background: var(--el); color: var(--bg); display: grid; place-items: center; font-size: 17px; }
.fortune-box { margin: 8px 0 0; padding: 12px 14px; border-radius: 12px; background: var(--card); }
.fortune-box p { margin: 0 0 6px; word-break: keep-all; text-wrap: pretty; } /* MODIFIED: 마지막 줄 한 글자 방지 */
.fortune-box p:last-child { margin: 0; }
.fortune-box .k { color: var(--mute); font-size: 13px; display: block; }
.ab { display: flex; gap: 8px; margin: 14px 0; }
.ab .inp { flex: 1; min-width: 0; font-size: 16px; }
.ab .btn { width: auto; min-width: 84px; padding: 0 14px; font-size: 16px; }
.grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 8px; }
.cell {
  display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 2px; min-height: 88px; padding: 6px 2px;
  border: 1.5px solid var(--line); border-radius: 14px; background: var(--card); font-size: 13px; line-height: 1.25; text-align: center;
  word-break: keep-all;
}
.cell b { font-size: 28px; line-height: 1.2; font-weight: 400; }
.cell:active { background: var(--line); }

/* 운세 */
/* ADDED(협의 카드화): 운세 탭 카드 — 2열(행운 색·숫자) + 전체 폭(방향·시간·길일), 시계·달력 자리는 높이 미리 잡음(지연 청크) */
.fgrid { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; margin-top: 12px; }
.fcard { grid-column: 1 / -1; padding: 12px 14px; border-radius: 12px; background: var(--card); }
.fcard.half { grid-column: auto; }
.fcard h2 { margin: 0 0 8px; font-size: 13px; font-weight: 600; color: var(--mute); }
.fcard b { font-size: 18px; font-weight: 800; }
.fnum { font-size: 36px !important; line-height: 1; color: var(--el); }
.frow { display: flex; align-items: center; gap: 12px; }
.fsub { margin: 4px 0 0; font-size: 13px; color: var(--mute); word-break: keep-all; }
.clk-slot { min-height: 192px; margin: 0 0 8px; } /* MODIFIED: 시계 + 범례 (10-20 시계 168px) */
.cmp-slot { width: 132px; height: 132px; flex: none; } /* ADDED: 운세 탭 나침반 (10-20 132px) */

/* 하단 탭 */
.tabs {
  position: fixed; left: 0; right: 0; bottom: 0; z-index: 5; display: flex; background: var(--bg); border-top: 1px solid var(--line);
  padding-bottom: env(safe-area-inset-bottom);
}
.tabs[hidden] { display: none; }
.tabs button { flex: 1; min-height: 60px; border: 0; background: none; font-size: 16px; color: var(--mute); }
.tabs button[aria-current="page"] { color: var(--fg); font-weight: 800; box-shadow: inset 0 3px 0 var(--el); }

/* 결과 바텀시트 */
.sheet-wrap { position: fixed; inset: 0; z-index: 10; display: flex; align-items: flex-end; justify-content: center; }
.sheet-wrap[hidden] { display: none; }
.backdrop { position: absolute; inset: 0; background: rgba(0, 0, 0, .5); animation: fade .2s ease-out; }
.sheet {
  position: relative; width: 100%; max-width: 480px; max-height: 94vh; overflow-y: auto; background: var(--bg);
  border-radius: 22px 22px 0 0; padding: 20px 16px calc(12px + env(safe-area-inset-bottom)); text-align: center;
  border-top: 6px solid var(--el); animation: up .25s ease-out; outline: none;
}
@keyframes up { from { transform: translateY(40px); opacity: 0; } to { transform: none; opacity: 1; } }
@keyframes fade { from { opacity: 0; } to { opacity: 1; } }
@media (prefers-reduced-motion: reduce) { .sheet, .backdrop { animation: none; } }
.r-cat { margin: 0; color: var(--mute); font-size: 15px; }
.r-big { margin: 8px 0 6px; font-weight: 800; line-height: 1.15; word-break: keep-all; overflow-wrap: anywhere; color: var(--el); min-height: 22vh; display: flex; align-items: center; justify-content: center; }
.r-big.xl { font-size: min(21vw, 104px); }
.r-big.l { font-size: min(13vw, 64px); }
.r-big.m { font-size: min(8vw, 40px); }
.r-reason { margin: 0 0 6px; font-size: 18px; font-weight: 600; word-break: keep-all; overflow-wrap: anywhere; text-wrap: balance; } /* MODIFIED: 뭐든 골라줘 입력이 헤드라인에 들어가 긴 토큰 줄바꿈 */ /* MODIFIED: balance */
.r-line { margin: 0 0 4px; color: var(--mute); font-size: 15px; word-break: keep-all; }
.r-fun { margin: 4px 0 0; font-size: 14px; color: var(--mute); }
.r-help { margin: 8px 0 6px; padding: 10px 12px; border-radius: 12px; background: var(--card); } /* ADDED: 결과 본문 "이런 것들이 도움돼요" 나열 */
.r-help-t { margin: 0 0 4px; font-size: 13px; font-weight: 600; color: var(--mute); }
.r-help-l { margin: 0; padding: 0; list-style: none; font-size: 16px; font-weight: 600; line-height: 1.55; word-break: keep-all; overflow-wrap: anywhere; }
.r-help-l li { display: inline; } /* MODIFIED: ul/li지만 화면은 가운데점 인라인 그대로 */
.r-help-l li:not(:last-child)::after { content: "\00a0\00b7\20"; content: "\00a0\00b7\20" / ""; } /* 16진 이스케이프 뒤 공백은 삼켜지므로 \20 */ /* 뒤쪽 줄은 스크린리더가 점을 읽지 않게 대체 텍스트를 지원하는 브라우저만 */
.r-acts { display: flex; flex-direction: column; gap: 8px; margin: 16px 0 12px; }  /* MODIFIED: 세로 배치, 첫째 버튼이 가장 큼 */
.r-sub { display: flex; gap: 8px; }
.r-sub .btn { flex: 1; }
.btn.sm { min-height: 44px; font-size: 15px; font-weight: 600; }
.ad-slot { height: 100px; width: 100%; }  /* 고정 높이: 광고 영역 CLS 방지 (내용 없음) */
.fun-note { margin: 8px 0 0; font-size: 13px; color: var(--mute); word-break: keep-all; text-wrap: balance; } /* MODIFIED: '하세요' 한 줄 고아 방지 */
@media (prefers-color-scheme: dark) {
  [data-el="목"] { --el: #4fc37d; }
  [data-el="화"] { --el: #ff7a63; }
  [data-el="토"] { --el: #e0b23a; }
  [data-el="금"] { --el: #aab6c4; }
  [data-el="수"] { --el: #6f9cf0; }
}

/* 공유 알림(토스트)·홈 화면 추가 안내 — 고정 위치/문서 흐름 끝이라 광고 영역에 영향 없음 */
.toast {
  position: fixed; z-index: 20; left: 12px; right: 12px; bottom: calc(16px + env(safe-area-inset-bottom)); max-width: 456px; margin: 0 auto;
  padding: 12px 14px; border-radius: 14px; background: var(--fg); color: var(--bg); font-size: 15px; display: flex; flex-wrap: wrap; align-items: center; gap: 8px;
}
.toast[hidden] { display: none; }
.toast span { flex: 1 1 100%; }
.toast button { min-height: 44px; padding: 0 14px; border: 1.5px solid currentColor; border-radius: 10px; background: none; font-size: 15px; font-weight: 600; }
.a2hs { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin-top: 16px; padding: 12px 14px; border-radius: 12px; background: var(--card); font-size: 15px; }
.a2hs:empty { display: none; }
.a2hs span { flex: 1 1 100%; }
.a2hs .btn { width: auto; min-height: 44px; padding: 0 16px; font-size: 15px; }

/* 로그인 동기화 (S8): 나 탭 로그인 영역·앱 내 대화상자. 광고 영역과 무관 */
.login { margin-top: 24px; }
.login h2 { margin-top: 0; }
.login-btns { display: grid; gap: 8px; margin-top: 12px; }
.btn.kakao { background: #fee500; color: #191919; }
.btn.google { background: #fff; color: #1f1f1f; border: 1.5px solid #747775; }
.btn.naver { background: #03c75a; color: #0b1f10; }
.sync-st { margin: 0 0 4px; font-weight: 700; color: var(--el); }
.login .row .btn { flex: 1 1 0; width: auto; }
.dlg-wrap { position: fixed; inset: 0; z-index: 15; display: flex; align-items: center; justify-content: center; padding: 16px; }
.dlg {
  position: relative; width: 100%; max-width: 400px; max-height: 90vh; overflow-y: auto; padding: 20px 16px 16px; border-radius: 18px;
  background: var(--bg); border-top: 6px solid var(--el); outline: none;
}
.dlg h2 { margin: 0 0 8px; }
.dlg p { margin: 0 0 8px; word-break: keep-all; }
.dlg-acts { display: flex; flex-direction: column; gap: 8px; margin-top: 16px; }

/* 로고 헤더 (정적 index.html·app.js brand() 공통). 오늘 점 = body[data-el] 오행: 점 1.5배 + 링. 결과 전(data-el 없음)은 균등. 광고 영역과 무관 */
.brand { display: flex; align-items: center; gap: 10px; margin: 0 0 14px; }
.brand .lg { width: 120px; height: 24px; flex: none; overflow: visible; }
.brand b { display: block; font-size: 18px; line-height: 1.2; }
.brand small { display: block; font-size: 12px; color: var(--mute); }
.lg .dt { stroke: none; transform-box: fill-box; transform-origin: center; transform: scale(calc(1 + var(--on, 0) / 2)); }
.lg .m .dt { stroke-width: 1.5; stroke: #8E98A8; } /* 金: 밝은 점이라 라이트·다크 모두 테두리 유지 */
.lg .rg { fill: none; stroke-width: 1.5; opacity: calc(var(--on, 0) * .6); transform-box: fill-box; transform-origin: center; }
[data-el="목"] .lg g:nth-child(1), [data-el="화"] .lg g:nth-child(2), [data-el="토"] .lg g:nth-child(3),
[data-el="금"] .lg g:nth-child(4), [data-el="수"] .lg g:nth-child(5) { --on: 1; }
@keyframes wave { 50% { transform: scale(1.35); opacity: 1; } }
@keyframes pop { 50% { transform: scale(1.8); } }
@media (prefers-reduced-motion: no-preference) {
  .lg .tap .rg { animation: wave .8s ease-out; }
  .lg .tap .dt { animation: pop .8s ease-out; }
}

/* 라이브 운세지수 (6A.4): 숫자만. 광고 영역과 무관 */
.live { margin: 10px 0 0; padding: 10px 14px 12px; border-radius: 12px; background: var(--card); font-variant-numeric: tabular-nums; }
.live h2 { margin: 0 0 6px; font-size: 14px; color: var(--mute); }
.live-now { margin: 0; font-size: 12px; color: var(--mute); }
/* ADDED: 실시간 표시 — 오행색 점(움직임 허용 시 천천히 깜빡임) + 글자는 본문색 */
.live-tag { color: var(--fg); font-weight: 700; margin-right: 2px; }
.live-tag::before { content: ''; display: inline-block; width: 7px; height: 7px; margin-right: 4px; border-radius: 50%; background: var(--el); vertical-align: 1px; }
@media (prefers-reduced-motion: no-preference) { .live-tag::before { animation: blink 2s ease-in-out infinite; } }
@keyframes blink { 50% { opacity: .25; } }
.live-main { display: flex; align-items: baseline; gap: 6px; margin: 2px 0 6px; }
.live .big { font-size: 32px; line-height: 1.1; font-weight: 800; color: var(--fg); min-width: 2ch; } /* MODIFIED: 40px·강조색 → 32px·본문색 (홈 주인공은 결정 버튼) */
.live-l { font-size: 14px; color: var(--mute); }
.live-f { display: grid; grid-template-columns: repeat(4, 1fr); gap: 6px; margin: 0; padding: 0; list-style: none; }
.live-f li { display: flex; flex-direction: column; align-items: center; padding: 4px 0; border-top: 1px solid var(--line); }
.live-f span { font-size: 12px; color: var(--mute); }
.live .n { font-size: 18px; font-weight: 700; color: var(--fg); }
.live .dir { font-style: normal; font-size: 12px; color: var(--mute); min-height: 1em; }
.live-main .dir { font-size: 16px; }
.home-foot { margin: 4px 2px 16px; font-size: 13px; text-align: center; word-break: keep-all; } /* ADDED: 홈 하단 기준 안내 */
.celeb + .teaser, .grid + .teaser, .grid + .live { margin-top: 14px; } /* ADDED: 홈 순서 변경 후 결정 묶음과 아래 정보 사이 간격 */

/* PC(넓은 화면): 탭바를 내용 열 위(로고 바로 아래)에 sticky로. 모바일은 위 규칙대로 하단 고정. 광고 영역과 무관 */
@media (min-width: 768px) {
  #app { padding-bottom: 24px; }
  .tabs { position: sticky; top: 0; bottom: auto; left: auto; right: auto; margin: 0 0 14px; border-top: 0; border-bottom: 1px solid var(--line); padding-bottom: 0; }
  .tabs button[aria-current="page"] { box-shadow: inset 0 -3px 0 var(--el); }
}

/* ADDED: 결과 시트 — 2순위·피할 것을 큰 답 바로 아래 칩으로 */
.r-chips { display: flex; gap: 8px; justify-content: center; margin: 0 0 12px; }
.chip { flex: 1; max-width: 240px; padding: 10px 12px; border-radius: 14px; background: var(--card); border: 2px solid var(--line); display: flex; flex-direction: column; gap: 2px; }
.chip span { font-size: 13px; color: var(--mute); font-weight: 600; }
.chip b { font-size: 20px; font-weight: 800; color: var(--fg); word-break: keep-all; overflow-wrap: anywhere; }
.chip.avoid { border-style: dashed; }
/* ADDED: 카테고리별 시각물 (재방문 P1) — 높이 고정 64px */
.r-big:has(.r-vis) { flex-direction: column; gap: 6px; }
.r-vis { height: 64px; display: flex; align-items: center; justify-content: center; gap: 14px; flex: none; }
.vis-sw { width: 56px; height: 56px; border-radius: 50%; border: 2px solid var(--line); box-sizing: border-box; }
.vis-sw.sm { width: 32px; height: 32px; position: relative; overflow: hidden; }
.vis-sw.avoid::after { content: ''; position: absolute; inset: 0; background: repeating-linear-gradient(45deg, var(--mute) 0 2px, transparent 2px 6px); }
.vis-g { display: flex; gap: 6px; }
.vis-g i { width: 44px; height: 12px; border-radius: 6px; background: var(--line); }
.vis-g i.on { background: var(--el); }
.vis-yy { display: flex; gap: 3px; width: 140px; height: 14px; }
.vis-l { font-size: 14px; font-weight: 700; color: var(--mute); }
.vis-yy i { border-radius: 7px; background: var(--line); min-width: 8px; }
.vis-yy i.on { background: var(--el); }
@media (max-height: 760px) { .r-vis { display: none; } } /* 세로 짧은 기기: 광고 자리가 첫 화면 밖으로 밀리지 않게 */
.chip.avoid b { text-decoration: line-through; text-decoration-thickness: 2px; text-decoration-color: var(--mute); }

/* ADDED: 재방문 P0 — 특별한 날 배지·내일 티저·이유 펼치기. 광고 영역(.ad-slot)은 건드리지 않는다: 시트 안 새 요소는 모두 .ad-slot 위쪽이고 이유 펼침은 흐름 밖(absolute)이라 아래 요소가 밀리지 않음 */
.badge { display: inline-block; max-width: 100%; margin: 8px 0 0; padding: 3px 10px; border: 1.5px solid var(--el); border-radius: 12px; color: var(--el); font-size: 13px; font-weight: 700; line-height: 1.4; word-break: keep-all; }
.badge.overlap { border-color: var(--line); color: var(--mute); font-weight: 600; }
.sheet .badge { margin: 4px 0 0; }
.teaser { margin: 8px 2px 0; color: var(--mute); font-size: 14px; word-break: keep-all; }
.teaser .nw { white-space: nowrap; }
.stamps b { color: var(--el); } /* ADDED: 기운 한 바퀴 천간 글자는 그 오행 색 (재방문 P1 K) */
.why { display: flex; flex-direction: column; align-items: center; }
.why-btn { min-height: 44px; margin: -8px 0; padding: 0 12px; border: 0; background: none; color: var(--mute); font-size: 13px; text-decoration: underline; text-underline-offset: 3px; }
.why-pop { margin: 0 0 8px; padding: 10px 14px; border: 1.5px solid var(--line); border-radius: 14px; background: var(--card); text-align: left; font-size: 14px; line-height: 1.5; } /* MODIFIED: 오버레이 → 흐름 안 펼침(버튼 가림·ESC·광고 덮음 방지, 사용자 조작이라 CLS 아님) */
.why-pop[hidden] { display: none; }
.why-pop p { margin: 0 0 6px; word-break: keep-all; }
.why-pop .why-fixed { margin: 8px 0 0; padding-top: 8px; border-top: 1px solid var(--line); color: var(--mute); font-size: 13px; }
/* 결과 시트: 새 줄(이유 버튼 34px, 배지 30px)만큼 큰 답 영역의 최소 높이를 줄여 광고 슬롯 위치를 그대로 유지 */
.sheet .r-big { min-height: calc(22vh - 34px); }
.sheet .badge + .r-big { min-height: calc(22vh - 64px); }

/* ADDED: 재방문 P0 D·A — 좋은 시간 한 줄, 알림 스위치, 공개 연출. 광고 영역(.ad-slot)은 건드리지 않는다: 연출 덮개는 .r-big 안 절대 위치라 높이가 변하지 않음 */
.good { margin: 8px 2px 0; color: var(--el); font-size: 14px; font-weight: 700; }
.sw-wrap { margin-top: 20px; }
.sw { display: flex; align-items: center; gap: 10px; min-height: 48px; font-weight: 700; }
.sw input { width: 22px; height: 22px; margin: 0; accent-color: var(--acc); }
.sw-wrap .mute { margin: 0; }
.ics h2 { margin: 0 0 4px; } /* ADDED: 캘린더 알림 (재방문 P1 M) */
/* MODIFIED: 라벨 왼쪽·시간 선택 오른쪽 한 줄, 선택 상자 안 시간 가운데 (왼쪽으로 몰린다는 피드백) */
.ics { display: grid; grid-template-columns: 1fr auto; column-gap: 12px; align-items: center; }
.ics > h2, .ics > p, .ics-acts { grid-column: 1 / -1; }
.ics .lbl { margin: 10px 0 0; }
.ics .inp { width: 132px; margin-top: 10px; text-align: center; text-align-last: center; }
.ics-acts { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 10px; }
.ics-pc { grid-column: 1 / -1; margin: 8px 0 0; font-size: 13px; } /* ADDED: PC 캘린더 안내 */
.linkbtn { background: none; border: 0; padding: 0; min-height: 32px; color: var(--acc); text-decoration: underline; font: inherit; cursor: pointer; }
.r-big { position: relative; }
.rv { position: absolute; inset: 0; z-index: 1; display: flex; align-items: center; justify-content: center; gap: 4vw; background: var(--bg); pointer-events: none; }
.rv i { width: 5vw; max-width: 22px; aspect-ratio: 1; border-radius: 50%; background: var(--c); }
@media (prefers-reduced-motion: no-preference) {
  .rv { animation: rv-fade .4s linear forwards; }
  .rv i { animation: rv-dot .2s ease-out both; animation-delay: calc(var(--i) * 50ms); }
}
@keyframes rv-fade { 0%, 75% { opacity: 1; } 100% { opacity: 0; } }
@keyframes rv-dot { from { transform: scale(0); } to { transform: scale(1); } }
@media (max-width: 767px) { .toast { bottom: calc(76px + env(safe-area-inset-bottom)); } } /* ADDED: 모바일 하단 탭바(60px) 위로 */
/* ADDED: 같은 생일·일주 유명인 (운세 박스 아래) */
.celeb { margin: 8px 0 0; padding: 12px 14px; border-radius: 12px; background: var(--card); }
.celeb-t { margin: 0 0 4px; font-size: 14px; color: var(--mute); font-weight: 700; }
.celeb-l { margin: 0 0 10px; padding: 0; list-style: none; font-size: 15px; line-height: 1.6; word-break: keep-all; }
.celeb .more { margin: -12px 0 4px; padding: 0 8px 0 0; min-height: 44px; /* MODIFIED: 터치 44px, 음수 마진으로 차지 높이 36px 유지 */ border: 0; background: none; color: var(--mute); font: inherit; font-size: 13px; text-decoration: underline; cursor: pointer; }
.celeb .src { margin: 0; color: var(--mute); font-size: 12px; }
.celeb .more:disabled { visibility: hidden; }
.celeb .ilju-open { display: block; margin: 4px 0 0; } /* ADDED: 접힌 일주 목록 버튼 */
.celeb .ilju-open:disabled { visibility: visible; opacity: .6; }
.celeb-l li { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; } /* 긴 이름이 두 줄로 넘어가 자리 잡기 높이를 넘지 않게 */
