/* ===================== 民俗文化模块：罗盘 / 吉凶 / 解梦 / 风水 ===================== */
.folk-view { flex: 1; overflow: auto; padding: 16px; }
.folk-header { padding: 12px 18px; background: var(--panel); border-bottom: 1px solid var(--line); display: flex; justify-content: space-between; align-items: center; flex-wrap: wrap; gap: 10px; }
.folk-header h2 { margin: 0; font-size: 19px; color: var(--accent); }
.folk-header .muted { font-size: 13px; }
.folk-brand { display: flex; align-items: center; gap: 10px; }
.folk-logo { width: 30px; height: 30px; border-radius: 7px; object-fit: contain; flex: none; }

.folk-card { background: var(--card); border: 1px solid var(--line); border-radius: var(--radius); padding: 16px; box-shadow: var(--shadow); margin-bottom: 14px; }
.folk-card h3 { margin: 0 0 10px; font-size: 16px; color: var(--accent); }
.folk-card p { line-height: 1.7; margin: 6px 0; }

/* 罗盘 */
.compass-wrap { display: flex; flex-direction: column; align-items: center; padding: 14px; }
.compass-svg { width: min(92vw, 520px); height: min(92vw, 520px); user-select: none; }
.compass-svg text { font-family: "PingFang SC", "Microsoft YaHei", sans-serif; }
.compass-svg .mountain { cursor: pointer; transition: opacity 0.15s; }
.compass-svg .mountain:hover { opacity: 0.85; }
.compass-info { max-width: 620px; width: 100%; margin: 10px auto 0; }
.compass-info .dir-row { display: flex; gap: 12px; flex-wrap: wrap; justify-content: center; font-size: 14px; }
.compass-info .dir-row b { color: var(--accent); }

/* 吉凶查询 */
.fortune-date-bar { display: flex; gap: 10px; align-items: center; padding: 12px 16px; background: var(--panel); border-bottom: 1px solid var(--line); flex-wrap: wrap; }
.fortune-date-bar input[type="date"] { padding: 7px 10px; border: 1px solid var(--line); border-radius: 6px; font-size: 14px; }
.fortune-result { max-width: 820px; margin: 0 auto; padding: 16px; }
.fortune-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 12px; }
.fortune-box { background: #fff; border: 1px solid var(--line); border-radius: 10px; padding: 12px 14px; }
.fortune-box .label { font-size: 12px; color: var(--muted); margin-bottom: 4px; }
.fortune-box .value { font-size: 16px; color: var(--ink); font-weight: 600; }
.fortune-yiji { display: flex; gap: 14px; flex-wrap: wrap; }
.fortune-yiji > div { flex: 1; min-width: 220px; }
.fortune-yiji .yi { color: #3c6b3c; }
.fortune-yiji .ji { color: var(--accent); }
.fortune-yiji ul { margin: 6px 0 0; padding-left: 18px; font-size: 13px; line-height: 1.8; }
.hour-table { width: 100%; border-collapse: collapse; font-size: 13px; margin-top: 8px; }
.hour-table th, .hour-table td { border: 1px solid var(--line); padding: 6px 8px; text-align: center; }
.hour-table th { background: #faf6f0; }
.hour-table .luck-g { color: #3c6b3c; font-weight: 600; }
.hour-table .luck-b { color: var(--accent); font-weight: 600; }
.hour-table .luck-m { color: #8a6a00; font-weight: 600; }

/* 解梦 / 风水 */
.folk-search-bar { display: flex; gap: 8px; padding: 12px 16px; background: var(--panel); border-bottom: 1px solid var(--line); flex-wrap: wrap; }
.folk-search-bar input[type="text"] { flex: 1; min-width: 180px; padding: 8px 12px; border: 1px solid var(--line); border-radius: 6px; font-size: 14px; }
.folk-list { max-width: 1200px; margin: 0 auto; padding: 14px; display: grid; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); gap: 12px; align-items: start; }
.folk-item { background: #fff; border: 1px solid var(--line); border-radius: 10px; padding: 12px 14px; }
.folk-item h4 { margin: 0 0 6px; font-size: 15px; color: var(--accent); }
.folk-item .tag { display: inline-block; font-size: 11px; background: #f0e7d8; color: var(--accent); padding: 1px 8px; border-radius: 10px; margin-right: 6px; }
.folk-item p { margin: 6px 0 0; font-size: 13px; line-height: 1.7; color: #3a322f; white-space: pre-wrap; }
.folk-empty { text-align: center; color: var(--muted); padding: 40px 0; }

.folk-tabs { display: flex; gap: 8px; flex-wrap: wrap; padding: 10px 16px; background: var(--panel); border-bottom: 1px solid var(--line); }
.folk-tab { padding: 6px 14px; border: 1px solid var(--line); background: #fff; border-radius: 18px; cursor: pointer; font-size: 13px; }
.folk-tab.active { background: var(--accent); color: #fff; border-color: var(--accent); }

.disclaim { background: #fff4e6; border: 1px solid #f0c98a; color: #8a5a00; border-radius: 8px; padding: 10px 14px; font-size: 12.5px; margin: 10px 14px; }

@media (max-width: 820px) {
  .fortune-date-bar, .folk-search-bar { padding: 10px 12px; }
  .compass-svg { width: min(96vw, 420px); height: min(96vw, 420px); }
}
/* 吉凶"我想做"事项查询 */
.fortune-task-row { display: flex; gap: 10px; align-items: center; flex-wrap: wrap; }
.fortune-task-row select { flex: 1; min-width: 160px; padding: 8px 10px; border: 1px solid var(--line); border-radius: 6px; font-size: 14px; }
.fortune-task-result { margin-top: 12px; padding: 12px 14px; border-radius: 8px; background: #fff; border: 1px solid var(--line); line-height: 1.7; }
.fortune-task-result.luck-g { background: #eaf6ea; border-color: #b8d8b8; color: #2c5b2c; }
.fortune-task-result.luck-b { background: #fbeaea; border-color: #e0b8b8; color: #8b3a3a; }
.fortune-task-result.luck-m { background: #faf3e0; border-color: #e8d8a8; color: #6e5a00; }

/* ===== 专业罗盘（2026-08-13 升级：三合+三元双盘·地磁实景·玄空飞星） ===== */
.luopan-app { max-width: 1100px; width: 100%; display: flex; gap: 20px; align-items: flex-start; margin-top: 4px; }
.luopan-app #canvas-box { flex: 0 0 56%; position: relative; width: auto; aspect-ratio: 1 / 1; }
.luopan-app #luopan { width: 100%; height: 100%; touch-action: none; display: block; }
.luopan-app .info-panel { flex: 0 0 44%; margin-top: 0; background: #2f251d; padding: 16px; border-radius: 12px; border: 1px solid #5a483a; }
.luopan-app .line { display: flex; gap: 8px; margin: 10px 0; flex-wrap: wrap; align-items: center; }
.luopan-app .label { color: #d4b894; width: 100px; }
.luopan-app .result { color: #fff; flex: 1; }
.luopan-app #interpret { margin-top: 14px; padding-top: 14px; border-top: 1px solid #483a30; color: #ffddaa; line-height: 1.8; min-height: 80px; font-size: 15px; white-space: pre-line; }
.luopan-app .ctrl-group { margin-top: 16px; display: flex; gap: 8px; flex-wrap: wrap; justify-content: flex-start; }
.luopan-app select, .luopan-app button, .luopan-app input { background: #6b523b; color: #fff; border: 0; padding: 8px 12px; border-radius: 5px; cursor: pointer; font-size: 14px; }
.luopan-app input { width: 100px; }
.luopan-app button:hover, .luopan-app select:hover { background: #826246; }
.luopan-app .warn { color: #ff7c7c; font-weight: bold; }
.luopan-app .good { color: #89ee89; font-weight: bold; }
.luopan-app .blue { color: #99ccff; font-weight: bold; }
.luopan-app .purple { color: #e5b8ff; font-weight: bold; }
.luopan-app .xk-title { font-size: 15px; margin-bottom: 8px; color: #e5b8ff; }
.luopan-app .xk-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 4px; margin: 6px 0; }
.luopan-app .xk-grid .cell { background: #1c160f; border: 1px solid #4a3a2c; border-radius: 6px; padding: 6px 2px; text-align: center; line-height: 1.35; }
.luopan-app .xk-grid .cell b { display: block; font-size: 11px; color: #9c8a6e; margin-bottom: 2px; }
.luopan-app .xk-grid .cell .yun { color: #ffd27a; }
.luopan-app .xk-grid .cell .shan { color: #8ee88e; }
.luopan-app .xk-grid .cell .xiang { color: #7ab8ff; }
.luopan-app .xk-legend { font-size: 12px; color: #9c8a6e; margin-top: 2px; }
.luopan-app .xk-legend .yun { color: #ffd27a; } .luopan-app .xk-legend .shan { color: #8ee88e; } .luopan-app .xk-legend .xiang { color: #7ab8ff; }
.luopan-app .case-box { margin-top: 12px; background: #261e17; padding: 12px; border-radius: 8px; }
.luopan-app .case-title { color: #d4b894; font-size: 13px; margin-bottom: 8px; }
.luopan-app #caseList { display: flex; flex-direction: column; gap: 6px; }
.luopan-app #caseList .case-item { display: flex; justify-content: space-between; align-items: center; background: #322619; border: 1px solid #4a3a2c; border-radius: 6px; padding: 6px 10px; font-size: 13px; }
.luopan-app #caseList .case-item button { background: #6b523b; padding: 4px 10px; font-size: 13px; }
.luopan-app #caseList .empty { color: #8a7a66; font-size: 13px; }
/* 拉线标尺 */
.luopan-app .ruler-box { margin-top: 12px; background: #261e17; padding: 12px; border-radius: 8px; border: 1px solid #4a3a2c; }
.luopan-app .ruler-tip { color: #b9a684; font-size: 12px; line-height: 1.5; margin-bottom: 8px; }
.luopan-app #rulerList { display: flex; flex-direction: column; gap: 6px; margin-bottom: 8px; }
.luopan-app #rulerList .ruler-item { display: flex; align-items: center; gap: 8px; background: #322619; border: 1px solid #4a3a2c; border-radius: 6px; padding: 6px 10px; font-size: 13px; }
.luopan-app #rulerList .ruler-item .dot { width: 10px; height: 10px; border-radius: 50%; flex: none; }
.luopan-app #rulerList .ruler-item .r-name { flex: 1; color: #f0e3cf; }
.luopan-app #rulerList .ruler-item .r-deg { color: #d4b894; font-variant-numeric: tabular-nums; }
.luopan-app #rulerList .ruler-item button { background: #7a3b3b; padding: 3px 9px; font-size: 12px; }
.luopan-app #rulerList .empty { color: #8a7a66; font-size: 13px; }
@media (max-width: 768px) {
  .luopan-app { flex-direction: column; }
  .luopan-app #canvas-box { flex: none; width: 96vw; margin: 0 auto; }
  .luopan-app .info-panel { flex: none; width: 100%; }
}
