body { font-family: 'Noto Sans TC', sans-serif; }
.scrollbar-hide::-webkit-scrollbar { display: none; }
.scrollbar-hide { -ms-overflow-style: none; scrollbar-width: none; }
.pcard { transition: transform 0.2s ease, box-shadow 0.2s ease, border-color 0.2s ease, background 0.2s ease; text-decoration:none; }
.img-inner { transition: transform 0.3s ease; }
.pcard:hover .img-inner { transform: scale(1.06); }
.t-zl span:last-child { font-size: 13px; line-height: 1.4; }

/* ───────── THEME A : 清新日系 ───────── */
.sa { background:#f9fafb; color:#111827; }
.sa .t-hd  { background:white; border-bottom:1px solid #f3f4f6; box-shadow:0 1px 3px rgba(0,0,0,.06); }
.sa .t-logo { color:#6d28d9; font-weight:700; }
.sa .t-logo-sub { color:#9ca3af; }
.sa .t-nav  { color:#4b5563; text-decoration:none; }
.sa .t-nav:hover { color:#7c3aed; }
.sa .t-zbar { background:white; border-bottom:1px solid #f3f4f6; }
.sa .t-zl   { color:#6b7280; border-radius:10px; text-decoration:none; }
.sa .t-zl:hover { background:#ede9fe; color:#7c3aed; }
.sa .t-hero { background:linear-gradient(135deg,#8b5cf6,#a855f7,#ec4899); color:white; }
.sa .t-badge { color:rgba(255,255,255,.8); }
.sa .t-h1   { color:white; }
.sa .t-hsub { color:rgba(255,255,255,.8); }
.sa .t-sbtn { background:rgba(255,255,255,.2); backdrop-filter:blur(4px); border-radius:16px; color:white; text-decoration:none; display:block; }
.sa .t-sbtn:hover { background:rgba(255,255,255,.32); transform:translateY(-2px); }
.sa .t-slbl { color:rgba(255,255,255,.88); }
.sa .t-st   { color:#1f2937; }
.sa .t-sl   { color:#7c3aed; text-decoration:none; }
.sa .t-sl:hover { color:#5b21b6; }
.sa .t-al   { color:#f87171; } .sa .t-af { color:#a78bfa; } .sa .t-ap { color:#818cf8; }
.sa .t-aw   { color:#38bdf8; } .sa .t-afr{ color:#34d399; } .sa .t-aq { color:#f87171; }
.sa .pcard  { background:white; border-radius:16px; box-shadow:0 1px 3px rgba(0,0,0,.08); }
.sa .pcard:hover { transform:translateY(-3px); box-shadow:0 8px 24px rgba(0,0,0,.10); }
.sa .t-tag  { border-radius:9999px; font-size:11px; font-weight:500; padding:2px 8px; }
.sa .tl { background:#fee2e2; color:#be123c; } .sa .tf { background:#ede9fe; color:#6d28d9; }
.sa .tp { background:#e0e7ff; color:#3730a3; } .sa .tw { background:#e0f2fe; color:#0369a1; }
.sa .tfr{ background:#dcfce7; color:#15803d; } .sa .ts { background:#f5f3ff; color:#5b21b6; }
.sa .t-at  { color:#1f2937; font-weight:600; }
.sa .t-mt  { color:#9ca3af; }
.sa .t-dv  { border-top:1px solid #f9fafb; }
.sa .t-li  { text-decoration:none; }
.sa .t-li:hover { background:rgba(237,233,254,.6); }
.sa .t-lic { background:#f1f5f9; border-radius:12px; }
.sa .t-lt  { color:#1f2937; font-weight:500; }
.sa .t-li:hover .t-lt { color:#6d28d9; }
.sa .t-lm  { color:#9ca3af; }
.sa .t-la  { color:#d1d5db; }
.sa .t-li:hover .t-la { color:#a78bfa; }
.sa .t-sc  { background:white; border-radius:16px; box-shadow:0 1px 3px rgba(0,0,0,.08); }
.sa .t-scl { color:#1f2937; font-weight:500; text-decoration:none; }
.sa .t-scl:hover { color:#6d28d9; }
.sa .t-scm { color:#9ca3af; }
.sa .t-line{ background:linear-gradient(135deg,#4ade80,#10b981); color:white; border-radius:16px; }
.sa .t-lbtn{ background:white; color:#059669; border-radius:12px; font-weight:700; text-decoration:none; }
.sa .t-lbtn:hover { background:#f0fdf4; }
.sa .t-fb  { background:white; border-radius:16px; box-shadow:0 1px 3px rgba(0,0,0,.08); }
.sa .t-fbl { text-decoration:none; }
.sa .t-fbl:hover { background:#ede9fe; }
.sa .t-fbs { color:#6b7280; }
.sa .t-qa  { text-decoration:none; }
.sa .t-qa:hover { background:rgba(237,233,254,.6); }
.sa .r1,.sa .r2,.sa .r3 { color:#f87171; font-weight:700; }
.sa .r4,.sa .r5 { color:#fb923c; font-weight:700; }
.sa .rn { color:#d1d5db; }
.sa .ci-l { background:#fee2e2; } .sa .ci-f { background:#ede9fe; } .sa .ci-p { background:#e0e7ff; }
.sa .ci-w { background:#e0f2fe; } .sa .ci-fr{ background:#dcfce7; } .sa .ci-pz{ background:#fef9c3; }
.sa .cc  { background:white; border-radius:16px; box-shadow:0 1px 3px rgba(0,0,0,.08); text-decoration:none; }
.sa .th-1 {background:linear-gradient(135deg,#fecdd3,#fda4af)} .sa .th-2 {background:linear-gradient(135deg,#bbf7d0,#86efac)}
.sa .th-3 {background:linear-gradient(135deg,#fef9c3,#fde047)} .sa .th-4 {background:linear-gradient(135deg,#bfdbfe,#93c5fd)}
.sa .th-5 {background:linear-gradient(135deg,#fed7aa,#fdba74)} .sa .th-6 {background:linear-gradient(135deg,#d9f99d,#a3e635)}
.sa .th-7 {background:linear-gradient(135deg,#99f6e4,#5eead4)} .sa .th-8 {background:linear-gradient(135deg,#e9d5ff,#d8b4fe)}
.sa .th-9 {background:linear-gradient(135deg,#fde68a,#fbbf24)} .sa .th-10{background:linear-gradient(135deg,#e2e8f0,#cbd5e1)}
.sa .th-11{background:linear-gradient(135deg,#bae6fd,#7dd3fc)} .sa .th-12{background:linear-gradient(135deg,#fce7f3,#fbcfe8)}
.sa .th-st{background:linear-gradient(135deg,#ede9fe,#c4b5fd)}
.sa .t-ft { background:white; border-top:1px solid #f3f4f6; }
.sa .t-flink { color:#6b7280; text-decoration:none; font-size:12px; }
.sa .t-flink:hover { color:#7c3aed; }
.sa .t-fhd { color:#374151; font-weight:600; font-size:14px; }
.sa .t-fcopy { color:#9ca3af; font-size:12px; }

/* ───────── THEME B : 神秘星空 ───────── */
.sb { background:#0D0820; color:#e2d9f3; }
.sb .t-hd  { background:#160D2D; border-bottom:1px solid rgba(196,169,255,.15); }
.sb .t-logo { color:#C4A9FF; font-weight:700; }
.sb .t-logo-sub { color:rgba(196,169,255,.4); }
.sb .t-nav  { color:rgba(255,255,255,.55); text-decoration:none; }
.sb .t-nav:hover { color:white; }
.sb .t-zbar { background:#160D2D; border-bottom:1px solid rgba(196,169,255,.1); }
.sb .t-zl   { color:rgba(196,169,255,.7); text-decoration:none; }
.sb .t-zl:hover { background:rgba(196,169,255,.1); color:#C4A9FF; }
.sb .t-hero { background:radial-gradient(ellipse at top,#2D1B69 0%,#0D0820 75%); color:white; position:relative; overflow:hidden; }
.sb .t-badge { color:#F4C842; }
.sb .t-h1   { background:linear-gradient(135deg,#fff,#C4A9FF,#F4C842); -webkit-background-clip:text; -webkit-text-fill-color:transparent; background-clip:text; }
.sb .t-hsub { color:rgba(196,169,255,.75); }
.sb .t-sbtn { background:rgba(255,255,255,.05); border:1px solid rgba(196,169,255,.2); border-radius:12px; color:#C4A9FF; text-decoration:none; display:block; }
.sb .t-sbtn:hover { background:rgba(255,255,255,.1); border-color:rgba(244,200,66,.5); transform:translateY(-2px); }
.sb .t-slbl { color:rgba(196,169,255,.65); }
.sb .t-st   { color:#C4A9FF; }
.sb .t-sl   { color:rgba(196,169,255,.6); text-decoration:none; }
.sb .t-sl:hover { color:#C4A9FF; }
.sb .t-al   { color:#ff8080; } .sb .t-af { color:#F4C842; } .sb .t-ap { color:#90b0ff; }
.sb .t-aw   { color:#80d0ff; } .sb .t-afr{ color:#80ff90; } .sb .t-aq { color:#ff8080; }
.sb .pcard  { background:rgba(255,255,255,.06); border:1px solid rgba(196,169,255,.2); border-radius:16px; }
.sb .pcard:hover { background:rgba(255,255,255,.10); border-color:rgba(244,200,66,.4); transform:translateY(-2px); }
.sb .t-tag  { border-radius:9999px; font-size:11px; font-weight:500; padding:2px 8px; }
.sb .tl { background:rgba(255,100,100,.15); color:#ff8080; } .sb .tf { background:rgba(196,169,255,.15); color:#C4A9FF; }
.sb .tp { background:rgba(100,150,255,.15); color:#90b0ff; } .sb .tw { background:rgba(100,200,255,.15); color:#80d0ff; }
.sb .tfr{ background:rgba(100,255,150,.15); color:#80ff90; } .sb .ts { background:rgba(196,169,255,.15); color:#C4A9FF; }
.sb .t-at  { color:rgba(255,255,255,.88); font-weight:600; }
.sb .t-mt  { color:rgba(196,169,255,.45); }
.sb .t-dv  { border-top:1px solid rgba(196,169,255,.08); }
.sb .t-li  { text-decoration:none; }
.sb .t-li:hover { background:rgba(196,169,255,.07); }
.sb .t-lic { background:rgba(196,169,255,.1); border-radius:12px; color:#C4A9FF; }
.sb .t-lt  { color:rgba(255,255,255,.85); font-weight:500; }
.sb .t-li:hover .t-lt { color:#C4A9FF; }
.sb .t-lm  { color:rgba(196,169,255,.4); }
.sb .t-la  { color:rgba(196,169,255,.3); }
.sb .t-li:hover .t-la { color:#C4A9FF; }
.sb .t-sc  { background:rgba(255,255,255,.05); border:1px solid rgba(196,169,255,.15); border-radius:16px; }
.sb .t-scl { color:rgba(255,255,255,.8); font-weight:500; text-decoration:none; }
.sb .t-scl:hover { color:#C4A9FF; }
.sb .t-scm { color:rgba(196,169,255,.4); }
.sb .t-line{ background:linear-gradient(135deg,rgba(74,222,128,.7),rgba(16,185,129,.7)); color:white; border-radius:16px; }
.sb .t-lbtn{ background:rgba(255,255,255,.15); color:white; border:1px solid rgba(255,255,255,.3); border-radius:12px; font-weight:700; text-decoration:none; }
.sb .t-lbtn:hover { background:rgba(255,255,255,.25); }
.sb .t-fb  { background:rgba(255,255,255,.05); border:1px solid rgba(196,169,255,.15); border-radius:16px; }
.sb .t-fbl { text-decoration:none; }
.sb .t-fbl:hover { background:rgba(196,169,255,.1); }
.sb .t-fbs { color:rgba(196,169,255,.6); }
.sb .t-qa  { text-decoration:none; }
.sb .t-qa:hover { background:rgba(196,169,255,.07); }
.sb .r1,.sb .r2,.sb .r3 { color:#F4C842; font-weight:700; }
.sb .r4,.sb .r5 { color:rgba(244,200,66,.5); font-weight:700; }
.sb .rn { color:rgba(196,169,255,.25); }
.sb .ci-l,.sb .ci-f,.sb .ci-p,.sb .ci-w,.sb .ci-fr,.sb .ci-pz { background:rgba(196,169,255,.12); }
.sb .cc  { background:rgba(255,255,255,.06); border:1px solid rgba(196,169,255,.15); border-radius:16px; text-decoration:none; }
.sb [class^="th-"],.sb [class*=" th-"] { background:linear-gradient(135deg,#1A0B3A,#2D1B5E); }
.sb .th-1 {background:linear-gradient(135deg,#2A0A1A,#3D1B2E)} .sb .th-3 {background:linear-gradient(135deg,#1A1A0B,#2D2B1B)}
.sb .th-5 {background:linear-gradient(135deg,#1A1A0B,#3D2B1B)} .sb .th-11{background:linear-gradient(135deg,#0B1A3A,#1B2D5E)}
.sb .th-st{background:radial-gradient(circle at 30% 30%,#2D1B69,#0D0820)}
@keyframes twinkle { 0%,100%{opacity:.15} 50%{opacity:.9} }
.sb .star { position:absolute; background:white; border-radius:50%; animation:twinkle 3s ease-in-out infinite; pointer-events:none; }
.sb .t-ft { background:#160D2D; border-top:1px solid rgba(196,169,255,.1); }
.sb .t-flink { color:rgba(196,169,255,.5); text-decoration:none; font-size:12px; }
.sb .t-flink:hover { color:#C4A9FF; }
.sb .t-fhd { color:#C4A9FF; font-weight:600; font-size:14px; }
.sb .t-fcopy { color:rgba(196,169,255,.3); font-size:12px; }


.filter-hidden { display:none !important; }

/* Scroll reveal (lazy.js) — cards start visible, animate only when entering viewport */
@keyframes ioFadeUp { from{opacity:0.3;transform:translateY(10px)} to{opacity:1;transform:none} }
.io-reveal { animation:ioFadeUp .4s ease forwards; }

/* Chrome autofill 會把輸入框塗成淡藍底——用超長 transition 凍結它的背景置換，文字色跟隨主題 */
input:-webkit-autofill,
input:-webkit-autofill:hover,
input:-webkit-autofill:focus {
  transition: background-color 9999999s ease-in-out 0s;
  -webkit-text-fill-color: inherit;
}

/* 運勢星等（fortune_stars()）：實星/虛星 */
.fs-on { color:#f5b301; }
.fs-off { color:#d5d2dd; }
.sb .fs-off { color:rgba(226,217,243,.25); }

/* 運勢統計磚（fortune/all_fortune 頁星等與幸運指標） */
.sa .t-stat { background:#f8fafc; border-radius:12px; }
.sb .t-stat { background:rgba(196,169,255,.08); border-radius:12px; }

/* 運勢今日短評橫幅：暖色微底，與灰藍統計磚區隔 */
.sa .t-quote { background:#fff8e8; border-radius:12px; color:#92600a; }
.sb .t-quote { background:rgba(245,179,1,.12); border-radius:12px; color:#f0c463; }

/* Article prose */
.t-prose { line-height:1.85; }
.t-prose p { margin-bottom:1.2em; }
.t-prose h2 { font-size:1.15em; font-weight:700; margin:1.6em 0 .5em; }
.t-prose h3 { font-size:1.05em; font-weight:600; margin:1.3em 0 .4em; }
.sa .t-prose { color:#374151; }
.sb .t-prose { color:rgba(226,217,243,.8); }

/* 深色主題：舊編輯器內文寫死的 inline 色在深底難讀——常見強調色映射為亮色、其餘回歸內文色、Word 殘留底色拔除（淺色主題不動） */
.sb .t-prose [style*="color"] { color:inherit !important; }
.sb .t-prose [style*="#0000ff" i], .sb .t-prose [style*="#0000cd" i], .sb .t-prose [style*="0, 0, 255"] { color:#8ab4ff !important; }
.sb .t-prose [style*="#ff0000" i], .sb .t-prose [style*="255, 0, 0"] { color:#ff9d9d !important; }
.sb .t-prose [style*="#008000" i], .sb .t-prose [style*="0, 128, 0"] { color:#7ed99e !important; }
.sb .t-prose [style*="background-color"] { background-color:transparent !important; }
