/* 宇宙の日めくりカレンダー（/calendar/daily/） */
.cd-app { max-width: 820px; padding-top: 6px; }
.cd-nav { display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: 8px 10px; margin-bottom: 16px; }
.cd-pick { display: inline-flex; align-items: center; gap: 8px; font-size: 14.5px; font-weight: 700; color: var(--tx2); }
.cd-pick .inp { padding: 8px 12px; font-size: 16px; color-scheme: dark; }
@media (max-width: 480px) { .cd-nav .btn { flex: 1 1 28%; padding-inline: 8px; } .cd-pick { flex: 1 1 100%; justify-content: center; } }

/* 綴じ金具と紙の束 */
.cd-stage { position: relative; }
.cd-rings { position: relative; z-index: 3; height: 30px; margin: 0 10px -12px; border-radius: 12px 12px 6px 6px; background: linear-gradient(180deg, #2a3462, #121a3c); box-shadow: 0 6px 16px rgba(0, 0, 0, 0.5), inset 0 1px 0 rgba(255, 255, 255, 0.15); display: flex; justify-content: space-around; align-items: center; padding: 0 12%; }
.cd-rings i { width: 16px; height: 34px; margin-top: 14px; border-radius: 9px; background: linear-gradient(90deg, #8b93ad, #f2f4fb 40%, #a9b0c6 70%, #6c7590); box-shadow: 0 3px 6px rgba(0, 0, 0, 0.6); }
.cd-pad { position: relative; isolation: isolate; }
.cd-pad::before, .cd-pad::after { content: ''; position: absolute; left: 8px; right: 8px; bottom: -8px; height: 40px; border-radius: 0 0 20px 20px; background: #0c1330; box-shadow: 0 10px 24px rgba(0, 0, 0, 0.45); z-index: -1; }
.cd-pad::after { left: 16px; right: 16px; bottom: -15px; background: #090e26; z-index: -2; }

/* 1枚 */
.cd-sheet { --dc: var(--tx); position: relative; z-index: 1; overflow: hidden; border-radius: 6px 6px 20px 20px; background: radial-gradient(700px 400px at 90% 110%, rgba(167, 123, 255, 0.16), transparent 60%), linear-gradient(180deg, #0e1740, #070b22 60%, #060918); box-shadow: 0 24px 60px rgba(0, 0, 0, 0.55), 0 0 0 1px rgba(255, 255, 255, 0.07); padding-bottom: 26px; transform-origin: 18% 0; will-change: transform; }
.cd-sheet.is-red { --dc: #ff8d8d; }
.cd-sheet.is-blue { --dc: #8fbaff; }
.cd-sheet.cd-tearing { position: absolute; inset: 0 0 auto 0; z-index: 4; }
.cd-loading { min-height: 60vh; display: grid; place-items: center; }

.cd-ph { position: relative; margin: 0; aspect-ratio: 16 / 9; background: #02030a; overflow: hidden; }
.cd-ph img { display: block; width: 100%; height: 100%; object-fit: cover; }
.cd-ph::after { content: ''; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(3, 5, 15, 0.55), transparent 28%, transparent 55%, #0c1538 100%); pointer-events: none; }
.cd-ph figcaption { position: absolute; right: 14px; top: 24px; z-index: 2; max-width: 46%; font-size: 12px; line-height: 1.4; color: rgba(230, 236, 255, 0.85); text-align: right; text-shadow: 0 1px 4px #000; }
.cd-ym { position: absolute; left: 18px; top: 14px; z-index: 2; display: flex; align-items: baseline; gap: 12px; flex-wrap: wrap; color: #fff; text-shadow: 0 2px 10px rgba(0, 0, 0, 0.7); }
.cd-ym b { font-size: clamp(20px, 3.4vw, 28px); font-weight: 800; letter-spacing: 0.08em; }
.cd-ym span { font-weight: 900; font-size: clamp(15px, 2.4vw, 19px); }
.cd-ym i { font-style: normal; font-size: 0.78em; letter-spacing: 0.16em; color: var(--gold); }
.cd-today { font-style: normal; font-family: var(--ff-x); font-size: 11.5px; letter-spacing: 0.2em; padding: 3px 10px; border-radius: 999px; background: var(--gold); color: #2a1600; text-shadow: none; }

.cd-date { position: relative; z-index: 2; display: grid; grid-template-columns: auto minmax(0, 1fr) auto; align-items: end; gap: 6px 16px; padding: 0 22px; margin-top: clamp(-96px, -12vw, -54px); }
.cd-d { font-size: clamp(108px, 24vw, 200px); font-weight: 800; line-height: 0.82; color: var(--dc); letter-spacing: -0.02em; text-shadow: 0 6px 30px rgba(0, 0, 0, 0.65); }
.cd-w { display: flex; flex-direction: column; gap: 2px; padding-bottom: 8px; min-width: 0; color: var(--dc); }
.cd-w b { font-size: clamp(24px, 4.6vw, 38px); font-weight: 900; line-height: 1.15; }
.cd-w span { font-size: clamp(12px, 2vw, 15px); letter-spacing: 0.22em; opacity: 0.9; }
.cd-hol { align-self: flex-start; margin-top: 6px; font-style: normal; font-weight: 900; font-size: 15px; padding: 3px 12px; border-radius: 999px; background: #ff8d8d; color: #2a0606; }
.cd-moon { display: flex; flex-direction: column; align-items: center; gap: 2px; padding-bottom: 6px; text-align: center; }
.cd-moon .cd-mn { width: clamp(64px, 13vw, 104px); height: auto; filter: drop-shadow(0 0 18px rgba(255, 220, 140, 0.25)); }
.cd-moon b { font-size: 15px; font-weight: 900; }
.cd-moon span { font-size: 13.5px; font-weight: 700; color: var(--gold); max-width: 9em; line-height: 1.4; }
@media (max-width: 520px) {
  .cd-date { grid-template-columns: auto minmax(0, 1fr); padding: 0 16px; }
  .cd-moon { grid-column: 1 / -1; flex-direction: row; justify-content: flex-start; gap: 10px; padding: 4px 0 0; }
  .cd-moon .cd-mn { width: 52px; }
  .cd-moon span { max-width: none; }
}

.cd-sky { list-style: none; margin: 14px 22px 0; padding: 0; display: flex; flex-wrap: wrap; gap: 6px; }
.cd-sky li { font-size: 14px; font-weight: 800; padding: 4px 12px; border-radius: 999px; background: rgba(255, 210, 122, 0.12); color: var(--gold); box-shadow: inset 0 0 0 1px rgba(255, 210, 122, 0.35); }
.cd-sky li::before { content: '★ '; }

.cd-q { position: relative; margin: 22px 22px 0; padding: 22px 0 0 0; border-top: 1px solid var(--line); }
.cd-q::before { content: '“'; position: absolute; left: -6px; top: 4px; font-family: 'Shippori Mincho B1', serif; font-size: 96px; line-height: 1; color: var(--gold); opacity: 0.85; }
.cd-q-en { margin: 0 0 12px; padding-left: 52px; font-family: 'Shippori Mincho B1', 'Zen Kaku Gothic New', serif; font-weight: 800; font-size: clamp(22px, 4.2vw, 34px); line-height: 1.38; color: #fff; letter-spacing: 0.005em; max-width: none !important; }
.cd-q-ja { margin: 0 0 12px; padding-left: 52px; font-size: clamp(17px, 2.6vw, 21px); font-weight: 900; line-height: 1.7; max-width: none !important; }
.cd-q footer { padding-left: 52px; display: flex; flex-wrap: wrap; align-items: baseline; gap: 2px 10px; font-size: 15px; color: var(--tx2); }
.cd-q footer b { color: var(--gold); font-weight: 900; }
.cd-q footer small { font-size: 13.5px; color: var(--mut); flex-basis: 100%; }
.cd-q-m { flex-basis: 100%; font-size: 13.5px; color: var(--mut); }
.cd-q-src { font-size: 12.5px; }
.cd-kid { display: flex; align-items: center; gap: 10px; margin-top: 14px; padding: 10px 14px 10px 8px; border-radius: 18px; background: rgba(126, 232, 255, 0.09); box-shadow: inset 0 0 0 1px rgba(126, 232, 255, 0.3); }
.cd-kid img { width: 58px; height: 58px; flex: none; }
.cd-kid p { margin: 0; font-size: 15.5px; line-height: 1.75; max-width: none; }
@media (max-width: 520px) { .cd-q { margin: 18px 16px 0; } .cd-q::before { font-size: 70px; } .cd-q-en, .cd-q-ja, .cd-q footer { padding-left: 34px; } .cd-kid img { width: 46px; height: 46px; } }

.cd-more { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 260px), 1fr)); gap: 14px; margin: 18px 22px 0; }
.cd-more:empty { display: none; }
.cd-more section { padding: 14px 16px; border-radius: 16px; background: rgba(255, 255, 255, 0.04); box-shadow: inset 0 0 0 1px var(--line); min-width: 0; }
.cd-more h3 { font-size: 15px; color: var(--gold); margin: 0 0 6px; }
.cd-more ul { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 6px; }
.cd-more li { display: flex; gap: 10px; font-size: 15px; line-height: 1.6; }
.cd-more li b { flex: none; font-size: 13px; color: var(--cyan); padding-top: 2px; }
.cd-more p { margin: 0; font-size: 15px; line-height: 1.75; }
@media (max-width: 520px) { .cd-more { margin: 16px 16px 0; } }

/* 操作 */
.cd-acts { margin-top: 34px; display: flex; flex-direction: column; gap: 14px; }
.cd-acts-r { display: flex; flex-wrap: wrap; gap: 10px; }
.cd-acts-r .btn[disabled] { opacity: 0.55; pointer-events: none; }
.cd-acts-o { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
.cd-acts-o .inp { width: 100%; padding: 10px 12px; font-size: 16px; }
@media (max-width: 480px) { .cd-acts-o { grid-template-columns: minmax(0, 1fr); } .cd-acts-r .btn { flex: 1 1 100%; } }
.cm-note { font-size: 14px; color: var(--mut); line-height: 1.7; margin: 0; }
.cm-prog { display: flex; align-items: center; gap: 12px; font-size: 14.5px; font-weight: 700; color: var(--tx2); flex-wrap: wrap; }
.cm-prog-bar { flex: 1 1 160px; height: 10px; border-radius: 999px; background: rgba(255, 255, 255, 0.08); overflow: hidden; }
.cm-prog-bar i { display: block; height: 100%; width: 0; border-radius: inherit; background: linear-gradient(90deg, var(--cyan), var(--gold)); transition: width 0.3s; }

/* 名言の一覧（静的） */
.cd-ql { list-style: none; margin: 22px 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 340px), 1fr)); gap: 14px; }
.cd-ql-i blockquote { margin: 0; height: 100%; padding: 18px 20px; border-radius: 20px; background: rgba(20, 30, 64, 0.66); box-shadow: var(--glow); display: flex; flex-direction: column; gap: 6px; }
.cd-ql-en { margin: 0; font-family: 'Shippori Mincho B1', serif; font-weight: 800; font-size: 18.5px; line-height: 1.5; color: #fff; }
.cd-ql-ja { margin: 0; font-size: 15.5px; line-height: 1.7; color: var(--tx2); }
.cd-ql-i footer { margin-top: auto; display: flex; flex-wrap: wrap; gap: 2px 8px; align-items: baseline; font-size: 14px; color: var(--mut); }
.cd-ql-i footer b { color: var(--gold); }
.cd-ql-i footer small { font-size: 13px; }
.cd-ql-m { flex-basis: 100%; font-size: 13px; }
.cd-about p { max-width: 46em; }
