/* 樂理教學「單一主題頁」共用樣式
 *
 * ⚠️ 視覺語彙刻意與 learn/index.html 的 inline <style> 一致（同樣的 CSS 變數與 class 名），
 *    但**沒有把 index.html 改成引用這支**——那會動到一個已經在排名的頁面，
 *    風險遠大於省下的重複。要改配色時記得兩邊都要改。
 *
 * Copyright (c) 2026 李志堅
 */

:root {
    --ink: #1a1a2e;
    --ink-light: #222240;
    --warm: #f0ece6;
    --warm-dim: #b0aaa0;
    --accent: #e85d3a;
    --gold: #c9a84c;
    --border: rgba(255, 255, 255, 0.08);
}

* { margin: 0; padding: 0; box-sizing: border-box; }
html { scroll-behavior: smooth; }

body {
    font-family: 'Noto Sans TC', -apple-system, sans-serif;
    background: var(--ink);
    color: var(--warm);
    line-height: 1.8;
    font-size: 15px;
}

/* ── 頂列：sticky，永遠看得到返回 ────────────────────────────
   ⛔ 這一條是 iOS standalone PWA 的必要條件——加到主畫面之後沒有任何返回鍵，
      頁尾的連結不算數（使用者常常捲不到底）。詳見 feedback_pwa_backnav。 */
.topbar {
    background: rgba(26, 26, 46, 0.92);
    backdrop-filter: blur(10px);
    border-bottom: 1px solid var(--border);
    position: sticky;
    top: 0;
    z-index: 100;
    padding-top: env(safe-area-inset-top);
}
.topbar-inner {
    display: flex;
    justify-content: space-between;
    align-items: center;
    max-width: 780px;
    margin: 0 auto;
    padding: 12px 24px;
}
.back-link {
    color: var(--accent);
    text-decoration: none;
    font-size: 14px;
    font-weight: 500;
}
.back-link:hover { text-decoration: underline; }
.topbar-right { display: flex; gap: 18px; align-items: center; }
.topbar-right a {
    color: var(--warm-dim);
    text-decoration: none;
    font-size: 13px;
    transition: color 0.2s;
}
.topbar-right a:hover { color: var(--warm); }

/* ── 麵包屑 ───────────────────────────────────────────── */
.crumbs {
    max-width: 780px;
    margin: 0 auto;
    padding: 22px 24px 0;
    font-size: 12px;
    color: var(--warm-dim);
}
.crumbs a { color: var(--warm-dim); text-decoration: none; }
.crumbs a:hover { color: var(--accent); }

/* ── 標題 ─────────────────────────────────────────────── */
.page-header {
    max-width: 780px;
    margin: 0 auto;
    padding: 10px 24px 6px;
}
.page-header h1 {
    font-size: 25px;
    font-weight: 700;
    color: var(--warm);
    line-height: 1.4;
}
.page-header .sub {
    color: var(--warm-dim);
    font-size: 14px;
    margin-top: 6px;
}

/* ── 直接回答（放在最上面，讓人一眼看到答案就不會跳出去）── */
.answer {
    max-width: 780px;
    margin: 22px auto 8px;
    padding: 18px 22px;
    background: var(--ink-light);
    border: 1px solid rgba(232, 93, 58, 0.35);
    border-left: 3px solid var(--accent);
    border-radius: 10px;
}
.answer .label {
    font-size: 11px;
    color: var(--gold);
    letter-spacing: 0.08em;
    display: block;
    margin-bottom: 6px;
}
.answer p { font-size: 15px; line-height: 1.8; }

/* ── 目次 ─────────────────────────────────────────────── */
.toc {
    max-width: 780px;
    margin: 0 auto;
    padding: 16px 24px 30px;
    display: flex;
    gap: 8px;
    flex-wrap: wrap;
}
.toc a {
    color: var(--warm-dim);
    text-decoration: none;
    font-size: 13px;
    padding: 5px 14px;
    border: 1px solid var(--border);
    border-radius: 6px;
    transition: all 0.2s;
}
.toc a:hover { border-color: var(--accent); color: var(--accent); }

/* ── 內文 ─────────────────────────────────────────────── */
.content { max-width: 780px; margin: 0 auto; padding: 0 24px 60px; }

.section { margin-bottom: 46px; }
.section-anchor { display: block; position: relative; top: -70px; visibility: hidden; }
.section h2 {
    font-size: 19px;
    font-weight: 700;
    margin-bottom: 6px;
    display: flex;
    align-items: center;
    gap: 10px;
}
.section h2 .icon { font-size: 23px; }
.section-tag {
    font-size: 11px;
    color: var(--gold);
    border: 1px solid rgba(201, 168, 76, 0.4);
    padding: 1px 9px;
    border-radius: 4px;
    font-weight: 400;
}
.section-intro { color: var(--warm-dim); font-size: 14px; margin-bottom: 16px; }

.card {
    background: var(--ink-light);
    border: 1px solid var(--border);
    border-radius: 10px;
    padding: 22px;
    margin-bottom: 14px;
}
.card h3 { font-size: 15px; font-weight: 600; margin-bottom: 10px; color: var(--warm); }
.card p { color: var(--warm-dim); font-size: 14px; line-height: 1.75; }
.card p + p { margin-top: 10px; }
.card ul { color: var(--warm-dim); font-size: 14px; margin: 8px 0 0 18px; }
.card li { margin-bottom: 6px; }
.hl { color: var(--accent); font-weight: 600; }
.dim { color: var(--warm-dim); }

/* ── 表格 ─────────────────────────────────────────────── */
.table-wrap { overflow-x: auto; -webkit-overflow-scrolling: touch; }
.info-table { width: 100%; border-collapse: collapse; font-size: 13px; margin: 8px 0; }
.info-table th, .info-table td {
    padding: 9px 12px;
    text-align: left;
    border-bottom: 1px solid var(--border);
}
.info-table th { color: var(--gold); font-weight: 600; font-size: 12px; white-space: nowrap; }
.info-table td { color: var(--warm); }
.info-table td:last-child { color: var(--warm-dim); }

/* ── 圖 ───────────────────────────────────────────────── */
.img-wrap { margin: 18px 0; text-align: center; }
.img-wrap img { max-width: 100%; height: auto; border-radius: 8px; }
.img-cap { color: var(--warm-dim); font-size: 12px; margin-top: 8px; }

/* ── 常見問題 ─────────────────────────────────────────── */
.faq { border-top: 1px solid var(--border); }
.faq-item { border-bottom: 1px solid var(--border); padding: 16px 0; }
.faq-item h3 { font-size: 14px; font-weight: 600; color: var(--warm); margin-bottom: 6px; }
.faq-item p { color: var(--warm-dim); font-size: 14px; }

/* ── 延伸閱讀 ─────────────────────────────────────────── */
.links { display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: 12px; }
.link-card {
    background: var(--ink-light);
    border: 1px solid var(--border);
    border-radius: 10px;
    padding: 16px 18px;
    text-decoration: none;
    display: block;
    transition: border-color 0.2s, transform 0.2s;
}
.link-card:hover { border-color: var(--accent); transform: translateY(-2px); }
.link-card .t { font-size: 14px; font-weight: 600; color: var(--warm); margin-bottom: 3px; }
.link-card .d { font-size: 12px; color: var(--warm-dim); line-height: 1.5; }

.divider { border: none; border-top: 1px solid var(--border); margin: 0 0 46px; }

/* ── 頁尾 ─────────────────────────────────────────────── */
.footer {
    text-align: center;
    padding: 24px 24px calc(24px + env(safe-area-inset-bottom));
    color: var(--warm-dim);
    font-size: 12px;
    border-top: 1px solid var(--border);
    max-width: 780px;
    margin: 0 auto;
}
.footer a { color: var(--accent); text-decoration: none; }
.footer a:hover { text-decoration: underline; }

@media (max-width: 600px) {
    .topbar-inner { padding: 10px 16px; }
    .crumbs { padding: 18px 16px 0; }
    .page-header { padding: 8px 16px 4px; }
    .page-header h1 { font-size: 21px; }
    .answer { margin: 18px 16px 6px; padding: 16px 18px; }
    .toc { padding: 14px 16px 24px; }
    .content { padding: 0 16px 40px; }
    .card { padding: 18px; }
    .info-table { font-size: 12px; }
    .info-table th, .info-table td { padding: 7px 8px; }
}
