/* 生命羅盤 Inner Compass */
.ic {
  --ic-serif: "Noto Serif TC", "Source Han Serif TC", "Songti TC", "PMingLiU", serif;
  --ic-soft: #efede7;
  --ic-spirit: #8a5a00;
  --ic-spirit-soft: #f8efd9;
  --ic-aid: #5b4b8a;
  --ic-aid-soft: #eeeaf7;
  max-width: 42rem;
  margin: 0 auto;
  display: flex;
  flex-direction: column;
  gap: 28px;
  font-size: 1rem;
  line-height: 1.85;
  text-wrap: pretty;
  overflow-wrap: break-word;
}
@media (prefers-color-scheme: dark) {
  .ic {
    --ic-soft: #222326;
    --ic-spirit: #e3b062;
    --ic-spirit-soft: #2a2316;
    --ic-aid: #b69cf0;
    --ic-aid-soft: #241f33;
  }
}
.ic p, .ic h1, .ic h2, .ic h3, .ic blockquote, .ic figure, .ic dl, .ic dd { margin: 0; }
.ic ul, .ic ol { margin: 0; padding: 0; list-style: none; }
.ic a { color: inherit; text-decoration-color: var(--line); text-underline-offset: 0.22em; }
.ic a:hover { text-decoration-color: currentColor; }
.ic strong { font-weight: 650; }
.ic code { font-family: var(--mono); font-size: 0.82em; overflow-wrap: anywhere; }
.ic-public { padding: 2.5rem 0 1rem; }

.ic-eyebrow { font: 600 0.7rem/1.4 var(--mono); letter-spacing: 0.14em; text-transform: uppercase; color: var(--muted); }
.ic-title { margin-top: 6px; font-family: var(--ic-serif); font-size: clamp(1.75rem, 7vw, 2.4rem); font-weight: 600; line-height: 1.3; letter-spacing: 0.02em; }
.ic-lead { margin-top: 12px; color: var(--muted); font-size: 0.95rem; }
.ic-fine { font-size: 0.8rem; line-height: 1.7; color: var(--muted); }
.ic-fine a, .ic-lead a { color: var(--text); }
.ic-empty { padding: 14px 16px; border: 1px dashed var(--line); border-radius: 14px; color: var(--muted); font-size: 0.9rem; }
.ic-link { font-size: 0.82rem; color: var(--accent); text-decoration: none; }
.ic a.ic-link { color: var(--accent); text-decoration: none; }

.ic-hero { padding-top: 12px; }
.ic-motto {
  margin: 22px 0 10px;
  padding: 6px 0 6px 18px;
  border-left: 2px solid var(--accent);
  font-family: var(--ic-serif);
  font-size: clamp(1.2rem, 5.2vw, 1.55rem);
  line-height: 1.75;
  letter-spacing: 0.08em;
}
.ic-motto span { display: inline-block; }
.ic-motto-sm { margin: 0; font-size: 1.05rem; }
.ic-hero .ic-lead { margin-top: 18px; }

.ic-head { display: flex; flex-direction: column; gap: 4px; padding-top: 12px; }
.ic-crumb { align-self: flex-start; margin-bottom: 14px; font-size: 0.85rem; color: var(--muted); text-decoration: none; }
.ic a.ic-crumb { color: var(--muted); text-decoration: none; }
.ic a.ic-crumb:hover { color: var(--text); }

.ic-section { display: flex; flex-direction: column; gap: 12px; }
.ic-h2 { display: flex; align-items: baseline; flex-wrap: wrap; gap: 4px 10px; font: 600 0.74rem/1.5 var(--mono); letter-spacing: 0.12em; color: var(--muted); }
.ic-h2 small { font-weight: 500; letter-spacing: 0.04em; }
.ic-h2-row, .ic-block-head { display: flex; align-items: baseline; justify-content: space-between; gap: 10px; flex-wrap: wrap; }

.ic-card { display: block; padding: 18px; border: 1px solid var(--line); border-radius: 16px; background: var(--surface); }
.ic a.ic-card { text-decoration: none; }
.ic a.ic-card:hover { border-color: var(--accent); }

.ic-tag { display: inline-block; padding: 1px 8px; border-radius: 999px; font: 600 0.66rem/1.6 var(--mono); letter-spacing: 0.04em; white-space: nowrap; vertical-align: 0.1em; }
.ic-tag-source { background: var(--accent-soft); color: var(--accent); }
.ic-tag-spirit { background: var(--ic-spirit-soft); color: var(--ic-spirit); }
.ic-tag-aid { background: var(--ic-aid-soft); color: var(--ic-aid); }
.ic-tag-page { border: 1px dashed var(--line); color: var(--muted); }
.ic-tag-mine { background: var(--accent); color: var(--bg); }

/* 今日主題、自省 */
.ic-today, .ic-reflect { display: flex; flex-direction: column; gap: 8px; border-color: var(--accent-soft); }
.ic-today-title { font-family: var(--ic-serif); font-size: 1.3rem; font-weight: 600; }
.ic-today-q { font-family: var(--ic-serif); font-size: 1.12rem; line-height: 1.75; }
.ic-today-action { display: flex; flex-wrap: wrap; align-items: baseline; gap: 4px 10px; font-size: 0.92rem; }
.ic-today-action span { font: 600 0.7rem var(--mono); letter-spacing: 0.08em; color: var(--accent); }

/* 日常反思 */
.ic-moments { display: grid; gap: 10px; }
.ic-moment { display: flex; gap: 14px; align-items: flex-start; padding: 16px; border: 1px solid var(--line); border-radius: 16px; background: var(--surface); text-decoration: none; }
.ic a.ic-moment { text-decoration: none; }
.ic a.ic-moment:hover { border-color: var(--accent); }
.ic-mark { flex: none; display: grid; place-items: center; width: 38px; height: 38px; border-radius: 50%; border: 1px solid var(--line); background: var(--bg); font-family: var(--ic-serif); font-size: 1.05rem; color: var(--accent); }
.ic-moment-text { display: flex; flex-direction: column; gap: 2px; font-size: 0.92rem; line-height: 1.7; }
.ic-moment-text b { font-size: 0.8rem; font-weight: 600; color: var(--muted); letter-spacing: 0.06em; }
@media (min-width: 40rem) {
  .ic-moments { grid-template-columns: repeat(3, 1fr); }
  .ic-moment { flex-direction: column; }
}
.ic-moment-full { display: flex; flex-direction: column; gap: 10px; scroll-margin-top: 16px; }
.ic-moment-head { display: flex; align-items: center; gap: 12px; }
.ic-moment-title { font-size: 1.05rem; font-weight: 600; }
.ic-steps { counter-reset: step; display: flex; flex-direction: column; gap: 6px; font-size: 0.92rem; }
.ic-steps li { counter-increment: step; position: relative; padding-left: 28px; }
.ic-steps li::before { content: counter(step); position: absolute; left: 0; top: 0.2em; width: 20px; height: 20px; border-radius: 50%; background: var(--ic-soft); color: var(--muted); font: 600 0.7rem/20px var(--mono); text-align: center; }

/* 主題清單 */
.ic-themes { border-top: 1px solid var(--line); }
.ic-theme-row { display: grid; grid-template-columns: 2.4rem 1fr auto; gap: 12px; align-items: center; padding: 14px 4px; border-bottom: 1px solid var(--line); text-decoration: none; }
.ic a.ic-theme-row { text-decoration: none; }
.ic-theme-row:hover .ic-theme-text b { color: var(--accent); }
.ic-num { font: 500 1.1rem/1 var(--ic-serif); color: var(--muted); letter-spacing: 0.04em; }
.ic-theme-text { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.ic-theme-text b { font-family: var(--ic-serif); font-size: 1.08rem; font-weight: 600; }
.ic-theme-text small { font-size: 0.82rem; line-height: 1.6; color: var(--muted); }
.ic-go { color: var(--muted); }

/* 思想檢驗 */
.ic-check-card { display: flex; flex-direction: column; gap: 10px; }
.ic-check-list { counter-reset: check; display: flex; flex-direction: column; gap: 6px; font-family: var(--ic-serif); font-size: 1.02rem; }
.ic-check-list li { counter-increment: check; display: flex; gap: 10px; }
.ic-check-list li::before { content: counter(check); flex: none; color: var(--accent); font-family: var(--mono); font-size: 0.8rem; padding-top: 0.25em; }
.ic-principles { display: flex; flex-direction: column; gap: 10px; }
.ic-principle { display: flex; gap: 14px; align-items: flex-start; }
.ic-principle > div { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 8px; }
.ic-principle .ic-num { font-size: 1.5rem; color: var(--accent); }
.ic-principle-text { font-family: var(--ic-serif); font-size: 1.12rem; line-height: 1.7; }
.ic-warn { font-size: 0.88rem; color: var(--ic-spirit); }

/* 引文與片段 */
.ic-quote { font-family: var(--ic-serif); font-size: 1.12rem; line-height: 1.9; }
.ic-excerpt { padding-left: 14px; border-left: 2px solid var(--line); display: flex; flex-direction: column; gap: 4px; }
.ic-excerpt blockquote { font-family: var(--ic-serif); }
.ic-excerpt figcaption { font-size: 0.78rem; color: var(--muted); }
.ic-spirit { padding: 10px 12px; border-radius: 12px; background: var(--ic-spirit-soft); font-size: 0.86rem; line-height: 1.75; }
.ic-said { margin: 0; padding: 12px 14px; border-radius: 12px; background: var(--ic-soft); font-family: var(--ic-serif); display: flex; flex-direction: column; gap: 6px; }
.ic-bullets { display: flex; flex-direction: column; gap: 6px; }
.ic ul.ic-bullets, .ic ol.ic-bullets { padding-left: 1.3em; }
.ic ul.ic-bullets { list-style: disc; }
.ic ol.ic-bullets { list-style: decimal; }
.ic-bullets li::marker { color: var(--muted); }
.ic-chips { display: flex; flex-wrap: wrap; gap: 8px; }
.ic-chip { padding: 4px 12px; border: 1px solid var(--line); border-radius: 999px; font-size: 0.85rem; background: var(--surface); }

/* 收合 */
.ic-details { border: 1px solid var(--line); border-radius: 14px; background: var(--surface); }
.ic-details > summary { cursor: pointer; padding: 12px 16px; font-size: 0.9rem; font-weight: 600; list-style: none; display: flex; justify-content: space-between; gap: 10px; }
.ic-details > summary::-webkit-details-marker { display: none; }
.ic-details > summary::after { content: "+"; color: var(--muted); font-family: var(--mono); }
.ic-details[open] > summary::after { content: "−"; }
.ic-details > :not(summary) { margin: 0 16px 14px; }
.ic-principle .ic-details { background: transparent; }
.ic-legend { display: flex; flex-direction: column; gap: 10px; font-size: 0.85rem; }
.ic-legend li { display: flex; flex-direction: column; align-items: flex-start; gap: 4px; }
.ic-legend li span:last-child { color: var(--muted); }
.ic-mine-list { display: flex; flex-direction: column; gap: 14px; }

/* 回顧模板 */
.ic-template { display: flex; flex-direction: column; gap: 4px; padding: 6px 16px 14px; border: 1px dashed var(--line); border-radius: 14px; font-size: 0.9rem; }
.ic-template dt { padding-top: 10px; color: var(--muted); }
.ic-template dd { height: 1.8em; border-bottom: 1px solid var(--line); }

/* 素材與問答 */
.ic-source-card { display: flex; flex-direction: column; gap: 6px; }
.ic-source-card b { font-family: var(--ic-serif); font-size: 1.08rem; font-weight: 600; }
.ic-source-card > span:not(.ic-link) { font-size: 0.88rem; color: var(--muted); }
.ic-levels { counter-reset: level; display: flex; flex-direction: column; gap: 8px; margin: 12px 0 14px; }
.ic-levels li { counter-increment: level; display: flex; flex-direction: column; padding-left: 28px; position: relative; font-size: 0.9rem; }
.ic-levels li::before { content: counter(level); position: absolute; left: 0; top: 0.25em; width: 20px; height: 20px; border-radius: 50%; background: var(--ic-soft); color: var(--muted); font: 600 0.7rem/20px var(--mono); text-align: center; }
.ic-levels li span { color: var(--muted); font-size: 0.85rem; }
.ic-links { display: flex; flex-direction: column; gap: 6px; margin: 14px 0 10px; font-size: 0.9rem; }
.ic-qa-index { border-top: 1px solid var(--line); }
.ic-qa-index a { display: grid; grid-template-columns: 2.6rem 1fr; gap: 2px 10px; padding: 12px 4px; border-bottom: 1px solid var(--line); text-decoration: none; }
.ic a.ic-qa-index-link, .ic .ic-qa-index a { text-decoration: none; }
.ic-qa-index a:hover .ic-qa-title { color: var(--accent); }
.ic-related { display: flex; flex-direction: column; gap: 2px; }
.ic-related a { display: grid; grid-template-columns: 2.6rem 1fr; gap: 10px; padding: 6px 4px; font-size: 0.88rem; line-height: 1.6; text-decoration: none; }
.ic .ic-related a { text-decoration: none; }
.ic-related a:hover span:last-child { color: var(--accent); }
.ic-related .ic-qn { grid-row: auto; line-height: 1.6; }
.ic-qn { grid-row: span 2; font: 600 0.8rem/1.9 var(--mono); color: var(--accent); }
.ic-qa-title { font-size: 0.95rem; line-height: 1.6; }
.ic-at { font: 500 0.72rem/1.6 var(--mono); color: var(--muted); letter-spacing: 0.03em; }
.ic-segment { display: flex; flex-direction: column; gap: 6px; }
.ic-segment + .ic-segment { margin-top: 14px; }
.ic-stanza { display: flex; flex-direction: column; gap: 4px; font-family: var(--ic-serif); font-size: 0.92rem; }
.ic-watch { display: flex; align-items: center; flex-wrap: wrap; gap: 8px 12px; }
.ic-time { display: inline-flex; align-items: center; min-height: 40px; padding: 0 16px; border-radius: 999px; border: 1px solid var(--line); background: var(--surface); font: 600 0.85rem var(--mono); text-decoration: none; }
.ic a.ic-time { text-decoration: none; }
.ic a.ic-time:hover { border-color: var(--accent); color: var(--accent); }
.ic-ask > p { font-family: var(--ic-serif); font-size: 1.1rem; line-height: 1.8; }
.ic-answer { gap: 14px; }
.ic-note { padding: 12px 14px; border-left: 2px solid var(--ic-aid); background: var(--ic-aid-soft); border-radius: 0 12px 12px 0; font-size: 0.88rem; display: flex; flex-direction: column; gap: 4px; }

/* 上一頁、下一頁 */
.ic-pager { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; padding-top: 8px; }
.ic-pager a { display: flex; flex-direction: column; gap: 2px; padding: 12px 14px; border: 1px solid var(--line); border-radius: 14px; font-size: 0.88rem; line-height: 1.5; text-decoration: none; min-width: 0; }
.ic .ic-pager a { text-decoration: none; }
.ic-pager a:hover { border-color: var(--accent); }
.ic-pager small { font: 500 0.7rem var(--mono); color: var(--muted); }
.ic-pager-next { text-align: right; align-items: flex-end; }
