/* 계획 회복(K6 활동 탭형) 시험 페이지. 키오스크 화면은 기기처럼 늘 밝은 색 — 테마를 따르지 않는다.
   휴대폰에서는 화면 전체, 태블릿 폭(520~959px)에서는 가운데 휴대폰 폭 한 장, PC(960px~)에서는 두 칸 카드(파일 끝). */
:root {
  /* 색은 타임시트(foundation.css)와 같은 LUHITZ 계열(2026-10-17 사용자 지시 — 옛 갈색 키오스크 톤을 걷어 냄):
     강조는 로고 남색, 회색은 남색 기운 회색, 고른 칸의 ✓는 완료 카드처럼 남색 + 연한 금. */
  --k-bg: #f4f5f7; --k-fg: #1e293b; --k-sub: #64748b; --k-line: #e5e9ed; --k-tile: #ffffff; --k-tile-line: #d6dbe1;
  --k-brand: #163a6e; --k-brand-top: #1c4278; --k-brand-bottom: #0f2c57; --k-brand-fg: #ffffff; --k-sel: #163a6e; --k-sel-bg: #f2f4f8;
  --k-ghost: #637588; --k-ink: #2a4f86; --k-paper-rule: #e5e9ed; --k-outer: #f0f2f4;
  --k-ink-navy: #14254a; --k-ivory: #fffdf8; --k-gold-hover: rgba(184, 143, 62, 0.55);
  --k-focus: 0 0 0 2px #ffffff, 0 0 0 4px #163a6e;
  /* 금선(회복) 색 한 벌 — 새 플래너 로고의 금(#fee6a0 → #f8cf74 → #e2aa50)을 흰 바탕에 맞게 한 단계 진하게 한 꿀빛 금
     (2026-10-20 펭귄 선택 A — 그 전 #a57a2b 계열은 갈색빛으로 탁했다). 선 그라디언트·화살촉·출발 원·번짐·도착 카드 금박 테두리·
     고른 스킬 카드·고른 유령 테두리가 모두 이 변수만 쓴다. */
  --k-seam-1: #f2c96a; --k-seam-2: #d29434; --k-seam-3: #ebbf5c; --k-seam-ink: #c88a2a;
  --k-seam-glow: rgba(226, 170, 80, 0.2); --k-seam-halo: rgba(226, 170, 80, 0.16);
  --k-seam-foil: linear-gradient(135deg, #fde9a9, #e2aa50 45%, #f8cf74);
  --a0: #a9c1ea; --a1: #b7d9c3; --a2: #f1d99d; --a3: #cdbfe9; --a4: #f3bea7; --a5: #eab7c9; --a6: #ddd7cf;
  --font: "Pretendard Variable", Pretendard, "Apple SD Gothic Neo", "Malgun Gothic", system-ui, sans-serif;
  color-scheme: light;
}
* { box-sizing: border-box; }
html, body { margin: 0; height: 100%; }
body { background: var(--k-outer); color: var(--k-fg); font-family: var(--font); line-height: 1.5; }

/* 상태별 표시: loading | fatal | guest | ready */
.rc-msg, .rc-screen { display: none; }
html[data-rc-state="loading"] .rc-msg-loading,
html[data-rc-state="fatal"] .rc-msg-fatal,
html[data-rc-state="guest"] .rc-msg-guest { display: block; }
html[data-rc-state="ready"] .rc-screen { display: flex; }
.rc-msg { max-width: 420px; margin: 0 auto; padding: 48px 20px; color: var(--k-sub); }
.rc-msg h1 { font-size: 20px; color: var(--k-fg); margin: 0 0 8px; }
/* 로그인·돌아가기 링크는 메모 게이트·로그인 페이지와 같은 남색 + 금박 테두리 버튼. */
.rc-msg a { display: inline-block; margin-top: 4px; padding: 11px 22px; border: 1.5px solid transparent; border-radius: 12px;
  background: linear-gradient(180deg, var(--k-brand-top), var(--k-brand-bottom)) padding-box, linear-gradient(135deg, #f0dca6, #b88f3e 45%, #e8cf8e) border-box;
  box-shadow: inset 0 0 0 2px var(--k-brand-bottom), inset 0 0 0 3px rgba(217, 189, 130, 0.7);
  color: #ffffff; font-weight: 700; letter-spacing: 0.03em; text-decoration: none; }
.rc-msg a:focus-visible { outline: none; box-shadow: var(--k-focus); }

.rc-screen { flex-direction: column; height: 100dvh; max-width: 420px; margin: 0 auto; background: var(--k-bg); font-variant-numeric: tabular-nums; }
@media (min-width: 520px) {
  .rc-screen { height: min(100dvh - 48px, 860px); margin-top: 24px; border: 1px solid var(--k-line); border-radius: 24px; overflow: hidden; box-shadow: 0 1px 2px rgba(8, 28, 52, 0.04), 0 10px 30px rgba(8, 28, 52, 0.07); }
}
.rc-bar { display: flex; align-items: center; justify-content: space-between; height: 56px; padding: 0 12px; border-bottom: 1px solid var(--k-line); flex: none; }
.rc-home { display: inline-flex; align-items: center; gap: 6px; border: 1px solid var(--k-tile-line); background: var(--k-tile); border-radius: 8px; padding: 7px 10px; font-size: 13px; font-weight: 600; color: var(--k-ink-navy); text-decoration: none; }
.rc-home svg { width: 14px; height: 14px; }
.rc-title { font-size: 16px; font-weight: 700; letter-spacing: 0.02em; margin: 0; color: #2c3e50; }
.rc-slot { width: 88px; }

/* 활동 탭: 활동이 많아지면 탭 줄을 가로로 넘긴다(J2). */
.rc-tabs { display: flex; gap: 8px; padding: 10px 12px; border-bottom: 1px solid var(--k-line); flex: none; overflow-x: auto; scrollbar-width: none; }
.rc-tabs::-webkit-scrollbar { display: none; }
.rc-tab { flex: none; border: 1px solid var(--k-tile-line); background: var(--k-tile); color: var(--k-fg); border-radius: 10px; padding: 8px 12px; font: 500 13.5px var(--font); cursor: pointer; }
.rc-tab.on { background: linear-gradient(180deg, var(--k-brand-top), var(--k-brand-bottom)); color: var(--k-brand-fg); border-color: var(--k-brand-bottom); box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.12); font-weight: 700; }

.rc-tiles { display: grid; grid-template-columns: repeat(3, 1fr); gap: 10px; padding: 12px; flex: none; }
.rc-tile { position: relative; border: 1.5px solid var(--k-tile-line); background: var(--k-tile); border-radius: 12px; padding: 12px 10px 10px; text-align: left; font-family: inherit; color: var(--k-fg); cursor: pointer; display: flex; flex-direction: column; gap: 4px; min-height: 88px; }
.rc-tile .d { font-size: 20px; font-weight: 700; line-height: 1.1; }
.rc-tile .d small { font-size: 11px; font-weight: 500; color: var(--k-sub); margin-left: 3px; }
.rc-tile .a { font-size: 12px; color: var(--k-sub); display: flex; align-items: center; gap: 5px; }
.rc-tile .a i { width: 9px; height: 9px; border-radius: 2px; display: inline-block; flex: none; }
.rc-tile .w { margin-top: auto; align-self: flex-start; font-size: 11px; color: var(--k-ink); border: 1px solid var(--k-ink); border-radius: 999px; padding: 0 7px; line-height: 1.6; }
.rc-tile.on { border: 2px solid var(--k-sel); background: var(--k-sel-bg); }
.rc-tile.on::after { content: ""; position: absolute; top: 8px; right: 8px; width: 18px; height: 18px; border-radius: 50%;
  background: var(--k-sel) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 18 18'%3E%3Cpath d='M5 9.2l2.6 2.6L13 6.6' stroke='%23e8d3a2' stroke-width='2.2' fill='none' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/18px no-repeat; }
.rc-tile.on .d { color: var(--k-sel); }

.rc-pg { display: flex; align-items: center; justify-content: center; gap: 14px; padding: 6px 12px 10px; font-size: 13px; color: var(--k-sub); flex: none; }
.rc-pg button { border: 1px solid var(--k-tile-line); background: var(--k-tile); border-radius: 8px; width: 44px; height: 36px; font: 16px var(--font); color: var(--k-ink-navy); cursor: pointer; }
.rc-pg button:disabled { opacity: 0.35; cursor: default; }
.rc-pg b { font-weight: 600; color: var(--k-fg); min-width: 3.5em; text-align: center; }

.rc-day { flex: 1; min-height: 0; display: flex; flex-direction: column; border-top: 1px solid var(--k-line); background: var(--k-tile); }
/* 날짜 카드를 고르기 전엔 상세가 닫혀 있고 그 자리에 안내 한 줄(2026-10-20 펭귄 지시). */
.rc-day-hint { display: none; flex: 1; align-items: center; justify-content: center; margin: 0; padding: 24px 16px; border-top: 1px solid var(--k-line);
  background: var(--k-tile); color: var(--k-sub); font-size: 13px; text-align: center; }
.rc-closed .rc-day { display: none; }
.rc-closed .rc-day-hint { display: flex; }
.rc-day-head { display: flex; align-items: baseline; justify-content: space-between; padding: 10px 14px 6px; flex: none; }
.rc-day-head b { font-size: 15px; font-weight: 700; }
.rc-day-head span { font-size: 12px; color: var(--k-sub); }
.rc-day-page { overflow-y: auto; min-height: 0; flex: 1; padding: 2px 14px 14px; }
/* 금선 꼬리표(2026-10-20 펭귄 선택 — 시트 위 스킬 카드 상자를 대신함): 금선이 닿는 금박 카드의 왼쪽 위 모서리에 기록 이름만 금 꼬리표로.
   누르면 그 자리에서 뜻 한 줄 풍선이 펼쳐진다(.rc-tag-tip). 넘김은 가장자리 날짜 링크 뒤에 줄 안 꼬리표(.is-inline).
   크기(2026-10-21 펭귄 지시 — 11px 글자·19px 높이로는 눈에 들어오지 않았다): 카드 글자와 같은 13px(PC 14px)·높이 --rc-tag-h,
   펼침은 또렷한 금 꺾쇠, 누르는 자리는 위아래로 9px 더 넓다(손가락 44px). 꼬리표는 높이의 반만큼 카드 위로 튀어나온다. */
.rc-tags { position: absolute; top: calc(var(--rc-tag-h) / -2); left: 8px; z-index: 4; display: flex; gap: 4px; }
.rc-tags.is-inline { position: relative; top: auto; left: auto; align-self: center; }
.rc-tag-wrap { position: relative; display: inline-flex; }
/* 꼬리표 = 루히츠 남색 몸체 + 금 글자 + 가는 금 테(2026-10-20 펭귄 제안 — 로고·주 버튼과 같은 남색 + 금 조합). */
.rc-tag { position: relative; display: inline-flex; align-items: center; gap: 7px; height: var(--rc-tag-h); border: 0; border-radius: 999px; padding: 0 11px 0 12px;
  background: linear-gradient(180deg, var(--k-brand-top), var(--k-brand-bottom));
  color: var(--k-seam-1); font: 700 13px/1 var(--font); letter-spacing: 0.02em;
  box-shadow: 0 1px 3px rgba(8, 28, 52, 0.25), inset 0 0 0 1px rgba(242, 201, 106, 0.6); cursor: pointer; white-space: nowrap; }
.rc-tag::before { content: ""; position: absolute; inset: -9px -4px; }
.rc-tag::after { content: ""; flex: none; width: 6px; height: 6px; border: solid currentColor; border-width: 0 2px 2px 0; transform: translateY(-2px) rotate(45deg); }
.rc-tag.on::after { transform: translateY(2px) rotate(-135deg); }
@media (prefers-reduced-motion: no-preference) { .rc-tag::after { transition: transform 150ms; } }
.rc-tag-tip { position: absolute; top: calc(100% + 6px); left: 0; z-index: 5; width: max-content; max-width: 220px; padding: 6px 10px;
  border: 1px solid var(--k-seam-ink); border-radius: 8px; background: #fffdf6; color: var(--k-fg); font-size: 12.5px; font-weight: 500; line-height: 1.45;
  box-shadow: 0 6px 16px rgba(8, 28, 52, 0.12); text-align: left; white-space: normal; }
.rc-tag-tip.up { top: auto; bottom: calc(100% + 6px); }
.rc-tag-tip[hidden] { display: none; }
/* 고른 기록만 또렷하게: 나머지 카드·유령·금선은 흐리게, 고른 금선은 굵게. */
.rc-sheet.is-focusing .rc-card:not(.is-focus), .rc-sheet.is-focusing .rc-ghost:not(.is-focus), .rc-sheet.is-focusing .rc-jump:not(.is-focus) { opacity: 0.35; }
.rc-sheet.is-focusing .rc-seam:not(.is-focus) { opacity: 0.25; }
.rc-sheet.is-focusing .rc-seam.is-focus .rc-seam-line { stroke-width: 3; }
.rc-sheet.is-focusing .rc-ghost.is-focus { border-color: var(--k-seam-ink); color: var(--k-fg); }
@media (prefers-reduced-motion: no-preference) { .rc-card, .rc-ghost, .rc-jump, .rc-seam { transition: opacity 150ms; } }

/* 그날 페이지 = 작은 읽기 전용 타임시트(2026-10-20 펭귄 제안 — 글줄 방식은 원래 칸 → 간 칸을 읽는 사람이 다시 맞춰야 했다).
   시트와 같은 문법: 두 자리 시각 열 + 시마다 한 줄, 줄 안에서 분 비율대로 놓인 카드(foundation·interactions의 계획 카드 값),
   완료 카드는 안G 해칭·취소선. 원래 계획은 점선 유령 카드, 회복은 금박 금선(파일 아래 .rc-seam)과 도착 카드 금박 테두리.
   칸 왼쪽 여백(22px)은 금선이 지나가는 길이다(두 줄까지 포개진다). */
.rc-sheet { --rc-tag-h: 26px; position: relative; border: 1px solid var(--k-line); border-radius: 10px; overflow: hidden; background: #ffffff; }
.rc-row, .rc-edge { display: grid; grid-template-columns: 44px 1fr; border-top: 1px solid #dde4ec; font-size: 14px; }
.rc-sheet > :first-child { border-top: 0; }
.rc-hr { display: flex; align-items: center; justify-content: center; background: #eef1f4; color: #2c3e50; font-size: 14px; font-weight: 700; }
.rc-cell { display: flex; flex-direction: column; gap: 5px; min-width: 0; padding: 9px 8px 6px 22px; }
.rc-track { position: relative; height: 42px; border-radius: 8px; background: #f3f5f7; }
.rc-card { position: absolute; top: 0; bottom: 0; display: flex; flex-direction: column; align-items: center; justify-content: center; min-width: 0; padding: 0 4px;
  border: 1px solid rgba(22, 58, 110, 0.5); border-radius: 7px; background: var(--rc-card-bg, #ffffff);
  box-shadow: 0 1px 2px rgba(8, 28, 52, 0.095), 0 4px 10px rgba(8, 28, 52, 0.07), inset 0 1px 0 #ffffff; }
.rc-card-label { max-width: 100%; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 13px; font-weight: 600; color: #1e293b; line-height: 1.25; }
.rc-card-min { font-size: 10.5px; color: #7a8699; line-height: 1.2; }
.rc-card.is-short .rc-card-label { font-size: 11px; }
/* 루히츠 카드(세그먼트 시그니처 한 칸, 2026-10-24 — 시트의 .is-plan-color-luhitz와 같은 남색 바탕 + 금빛 이름). 금박(.is-seam)은 아래 규칙이 덮는다. */
.rc-card.is-plan-color-luhitz { box-shadow: 0 1px 2px rgba(8, 28, 52, 0.095), 0 4px 10px rgba(8, 28, 52, 0.07), inset 0 1px 0 rgba(255, 255, 255, 0.12); }
.rc-card.is-plan-color-luhitz .rc-card-label { color: #f3d58a; }
.rc-card.is-plan-color-luhitz .rc-card-min { color: rgba(253, 246, 227, 0.75); }
/* 완료(안G): 아이보리 회색 + 6px 사선 해칭 + 눌린 그림자 + 남색 취소선. 지정 색은 덮는다. */
.rc-card.is-done { background: repeating-linear-gradient(-45deg, rgba(22, 58, 110, 0.11) 0 6px, rgba(22, 58, 110, 0.03) 6px 12px), #f5f3ee;
  border-color: rgba(22, 58, 110, 0.38); box-shadow: inset 0 1px 2px rgba(8, 28, 52, 0.1); }
.rc-card.is-done .rc-card-label { color: #4e5f7d; text-decoration: line-through; text-decoration-color: rgba(22, 58, 110, 0.75); text-decoration-thickness: 2px; }
/* 회복한 자리: 금박 테두리(2026-10-20 펭귄 선택 C — 단색 겨자 2px는 "선택됨·경고"처럼 보였다). 색은 로고 꿀빛 금(--k-seam-foil).
   안쪽 칠은 카드 바탕(지정 색 변수)·완료 해칭을 그대로 지킨다. */
.rc-card.is-seam { border: 1.5px solid transparent;
  background: linear-gradient(var(--rc-card-bg, #ffffff), var(--rc-card-bg, #ffffff)) padding-box, var(--k-seam-foil) border-box;
  box-shadow: 0 0 0 3px var(--k-seam-halo), 0 1px 2px rgba(8, 28, 52, 0.095), 0 4px 10px rgba(8, 28, 52, 0.07); }
.rc-card.is-seam.is-done { background: repeating-linear-gradient(-45deg, rgba(22, 58, 110, 0.11) 0 6px, rgba(22, 58, 110, 0.03) 6px 12px) padding-box,
  linear-gradient(#f5f3ee, #f5f3ee) padding-box, var(--k-seam-foil) border-box; }
/* 원래 계획: 그 시 줄 안의 점선 유령 카드. 꼬리표 [원래]·[남음]·[뺌]. 줄 안에서 실제 카드 막대보다 위(원래 → 지금). */
.rc-ghost-line { display: flex; align-items: center; gap: 8px; min-width: 0; }
/* 유령 아래 막대는 유령과 조금 떨어진다. 꼬리표가 붙은 줄(.has-tag)은 위로 튀어나온 반(--rc-tag-h / 2)이 유령·윗줄에 닿지 않게
   막대 위 자리를 그만큼 더 둔다(틈 3px). */
.rc-ghost-line + .rc-track { margin-top: 6px; }
.rc-row.has-tag .rc-ghost-line + .rc-track { margin-top: calc(var(--rc-tag-h) / 2 - 2px); }
.rc-row.has-tag .rc-cell > .rc-track:first-child { margin-top: calc(var(--rc-tag-h) / 2 - 6px); }
.rc-ghost { flex: 1; min-width: 0; height: 30px; display: inline-flex; align-items: center; justify-content: center; gap: 6px; padding: 0 8px;
  border: 1.5px dashed rgba(99, 117, 136, 0.6); border-radius: 7px; background: rgba(255, 255, 255, 0.6); color: var(--k-ghost); font-size: 12.5px;
  white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.rc-ghost::before { content: "원래"; flex: none; font-size: 10px; border: 1px solid currentColor; border-radius: 3px; padding: 0 3px; line-height: 1.5; }
.rc-ghost.left::before { content: "남음"; }
/* 금선이 출발하는 원래 칸: 금 점선 + 아이보리 + 진한 글자(점선 금 = 원래 자리, 실선 금박 = 간 자리 — 2026-10-20 펭귄 선택).
   이름 없는 원래 흔적·남음·뺀 기록은 회색 그대로(금은 회복에만). */
.rc-ghost.is-from { border-color: var(--k-seam-ink); background: #fffaf0; color: #14254a; font-weight: 600; }
.rc-ghost.is-from::before { color: var(--k-seam-ink); font-weight: 700; }
/* 원래 분 위치에 놓인 유령(센서 행 start_min·end_min, 2026-10-21 사용자 선택): 실제 카드 막대와 같은 자리 식으로 줄 안에 놓이고
   라벨 + 분(60m)을 단다. 끝의 빼기 칸은 고정 폭이고, 시트의 모든 실제 카드 막대도 같은 오른쪽 여백을 둬 분 눈금이 맞는다. */
.rc-sheet.has-placed-ghosts .rc-track { margin-right: 60px; }
.rc-ghost-line.is-placed .rc-void { width: 52px; text-align: right; }
.rc-ghost-track { position: relative; flex: 1; min-width: 0; height: 30px; }
.rc-ghost-line.no-void .rc-ghost-track { margin-right: 60px; }
.rc-ghost-line.is-placed .rc-ghost { position: absolute; top: 0; padding: 0 6px; gap: 5px; }
.rc-ghost-label { min-width: 0; overflow: hidden; text-overflow: ellipsis; }
.rc-ghost-min { flex: none; font-size: 10.5px; font-weight: 400; opacity: 0.8; }
.rc-ghost.is-short { padding: 0 3px; font-size: 11px; }
.rc-ghost.is-short::before { display: none; }
/* 이번 방문에서 뺀 자동 판정: 흐리게 [뺌]으로 남고 되돌리기가 붙는다(취소선은 쓰지 않는다). */
.rc-ghost.voided { opacity: 0.55; }
.rc-ghost.voided::before { content: "뺌"; }
/* 자동 판정 유령 끝의 빼기·되돌리기: 조용한 글자 버튼. */
.rc-void { flex: none; border: 0; background: none; padding: 8px 2px; font: 12px var(--font); color: var(--k-sub); text-decoration: underline; text-underline-offset: 3px; cursor: pointer; white-space: nowrap; }
.rc-void:disabled { opacity: 0.5; cursor: default; }
.rc-note { margin: 0; padding: 0 14px 6px; font-size: 12px; color: var(--k-ink); flex: none; }
.rc-note:empty { display: none; }
/* 넘김: 간 곳이 다른 날이라 시트 가장자리(뒷 날 = 아래, 도착한 날 = 위)에 날짜 링크가 놓이고 금선이 거기까지 간다. */
.rc-edge .rc-hr { background: transparent; }
.rc-edge .rc-cell { flex-direction: row; flex-wrap: wrap; align-items: center; gap: 4px 8px; }
.rc-jump { border: 0; background: none; padding: 6px 0; font: 600 13px var(--font); color: var(--k-ink); text-decoration: underline; text-underline-offset: 3px; cursor: pointer; white-space: nowrap; }
/* 금선(2026-10-20 펭귄 선택 C): 원래 자리(빈 원) → 칸 왼쪽 여백을 따라 둥근 모서리로 → 새 자리(화살촉). 금박 그라디언트 선 +
   옅은 금빛 번짐. 페이지를 열 때 0.4초 그어지고(시트의 그어짐과 같은 길이) 기록이라 남는다. 그라디언트를 못 그리면 깊은 금 단색.
   색은 :root의 --k-seam-* 한 벌(로고 꿀빛 금). */
.rc-seams { position: absolute; top: 0; left: 0; width: 100%; height: 100%; overflow: visible; pointer-events: none; }
.rc-seam-glow { fill: none; stroke: var(--k-seam-glow); stroke-width: 6; stroke-linecap: round; stroke-linejoin: round; }
.rc-seam-line { fill: none; stroke: url(#rcSeamFoil) var(--k-seam-ink); stroke-width: 2.25; stroke-linecap: round; stroke-linejoin: round; }
.rc-seam-head { fill: none; stroke: var(--k-seam-ink); stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
.rc-seam-from { fill: #ffffff; stroke: var(--k-seam-ink); stroke-width: 2; }
/* 동반 가는 선(2026-10-22 펭귄 결정 — 회복에 딸려 함께 밀린 뒤 계획, 연쇄): 같은 금박을 가늘고 옅게, 번짐·출발 원 없이 금선 길 바깥 한 줄에. */
.rc-seam.is-companion .rc-seam-line,
.rc-seam.is-companion .rc-seam-head { stroke-width: 1.25; opacity: 0.7; }
.rc-sheet.is-focusing .rc-seam.is-companion.is-focus .rc-seam-line { stroke-width: 1.75; }
.rc-foil-0 { stop-color: var(--k-seam-1); }
.rc-foil-1 { stop-color: var(--k-seam-2); }
.rc-foil-2 { stop-color: var(--k-seam-3); }
@media (prefers-reduced-motion: no-preference) {
  .rc-seam.is-drawing .rc-seam-line { stroke-dasharray: 1; stroke-dashoffset: 1; animation: rcSeamDraw 0.4s ease-out forwards; }
  .rc-seam.is-drawing .rc-seam-glow { animation: rcSeamFade 0.4s ease-out both; }
  .rc-seam.is-drawing .rc-seam-head { animation: rcSeamFade 0.15s ease-out 0.35s both; }
}
@keyframes rcSeamDraw { to { stroke-dashoffset: 0; } }
@keyframes rcSeamFade { from { opacity: 0; } to { opacity: 1; } }

/* 시트 위 버튼 줄과 같은 hover: 회색 테두리 → 옅은 금 + 아이보리. 고른 탭은 남색 그대로. */
@media (hover: hover) {
  .rc-home:hover, .rc-pg button:not(:disabled):hover, .rc-tab:not(.on):hover, .rc-tile:not(.on):hover { border-color: var(--k-gold-hover); background: var(--k-ivory); }
  .rc-tab.on:hover, .rc-tag:hover { background: linear-gradient(180deg, #24427f, #162d59); }
}
.rc-tab:focus-visible, .rc-tile:focus-visible, .rc-tag:focus-visible, .rc-home:focus-visible, .rc-pg button:focus-visible, .rc-jump:focus-visible, .rc-void:focus-visible { outline: none; box-shadow: var(--k-focus); }
@media (prefers-reduced-motion: no-preference) { .rc-tile, .rc-tab { transition: background-color 120ms, border-color 120ms; } }

/* PC(2026-10-19 사용자 지시 — 휴대폰 폭 한 장이 넓은 화면에서 너무 작았다): 원장 셸처럼 넓은 카드 한 장에
   왼쪽 = 활동 탭 + 날짜 칸 + 페이지 넘김, 오른쪽 = 고른 날. 탭은 가로로 넘기지 않고 줄을 바꾼다. 한 페이지 칸 수(6)는 그대로. */
@media (min-width: 960px) {
  html[data-rc-state="ready"] .rc-screen {
    display: grid;
    grid-template-columns: minmax(400px, 440px) minmax(0, 1fr);
    grid-template-rows: 64px auto auto auto minmax(0, 1fr);
    max-width: 1080px;
    height: min(100dvh - 64px, 900px);
    margin: 32px auto;
    border-radius: 16px;
  }
  .rc-bar { grid-column: 1 / -1; height: 64px; padding: 0 20px; }
  .rc-title { font-size: 18px; }
  .rc-tabs { grid-column: 1; flex-wrap: wrap; overflow: visible; padding: 14px 20px; }
  .rc-tiles { grid-column: 1; padding: 16px 20px; gap: 12px; }
  .rc-tile { min-height: 96px; }
  .rc-pg { grid-column: 1; grid-row: 4; padding: 4px 20px 20px; }
  .rc-day, .rc-day-hint { grid-column: 2; grid-row: 2 / -1; border-top: 0; border-left: 1px solid var(--k-line); }
  .rc-day-head { padding: 18px 28px 8px; }
  .rc-day-head b { font-size: 18px; }
  .rc-day-head span { font-size: 13px; }
  .rc-note { padding: 0 28px 8px; font-size: 13px; }
  .rc-day-page { padding: 4px 28px 24px; }
  .rc-row, .rc-edge { grid-template-columns: 56px 1fr; }
  .rc-hr { font-size: 15px; }
  .rc-track { height: 46px; }
  .rc-card-label { font-size: 14px; }
  .rc-card-min { font-size: 11px; }
  .rc-ghost { height: 32px; font-size: 13.5px; }
  .rc-jump, .rc-void { font-size: 13px; }
  .rc-sheet { --rc-tag-h: 28px; }
  .rc-tag { font-size: 14px; }
  .rc-tag-tip { font-size: 13px; max-width: 260px; }
  .rc-msg { max-width: 520px; }
}

/* 회복한 날이 하나도 없으면 아무것도 그리지 않는다(빈 날 표시 금지). */
.rc-none .rc-tabs, .rc-none .rc-tiles, .rc-none .rc-pg, .rc-none .rc-day, .rc-none .rc-day-hint { display: none; }
