/* 開運方位 専用スタイル（app.css を前提に追加）／ 白ベース＋金トーン */
.houi-block-label{
  font-family:'Noto Serif JP',serif; color:var(--ink); font-size:.92rem;
  letter-spacing:.12em; margin:18px 0 10px; padding-bottom:6px;
  border-bottom:1px solid var(--line);
}
.input-section .houi-block-label:first-child{ margin-top:0; }

/* 検証パネル（開発用・?debug 時のみ） */
.verify-panel{
  background:var(--surface); border:1px solid var(--line);
  border-radius:12px; padding:16px; margin:8px 0 18px;
}
.verify-title{
  font-family:'Noto Serif JP',serif; color:var(--gold-lt); font-size:.95rem;
  letter-spacing:.1em; margin-bottom:12px; display:flex; align-items:center; gap:8px;
}
.verify-title .badge{ font-size:.65rem; background:rgba(184,144,31,.14); color:var(--gold-dk);
  border:1px solid var(--line); border-radius:10px; padding:2px 8px; letter-spacing:.05em; }
.ban-grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:8px; }
.ban-grid.ban-grid-3{ grid-template-columns:repeat(3,1fr); }
.rev-map-btn{ float:right; font-size:.7rem; color:var(--gold-dk); background:rgba(184,144,31,.1);
  border:1px solid var(--line); border-radius:8px; padding:3px 10px; cursor:pointer; font-family:inherit; }
.rev-map-btn:active{ background:rgba(184,144,31,.22); }
.rev-dirs{ display:flex; flex-wrap:wrap; gap:8px; margin-top:8px; }
.ban-card{ background:var(--card); border:1px solid var(--line); border-radius:10px;
  padding:10px 6px; text-align:center; }
.ban-card .lbl{ font-size:.7rem; color:var(--faint); letter-spacing:.08em; }
.ban-card .chu{ font-family:'Noto Serif JP',serif; font-size:.92rem; color:var(--gold-lt); margin-top:6px; line-height:1.3; }
.verify-meta{ margin-top:12px; font-size:.78rem; color:var(--muted); line-height:1.8; }
.verify-meta b{ color:var(--gold-lt); font-weight:500; }
.verify-meta .tentyu-on{ color:var(--red); font-weight:700; }

/* タブ切替（日時で確認 / 期間で探す） */
.houi-tabs{ display:flex; gap:8px; margin:4px 0 16px; }
.houi-tab{
  flex:1; padding:11px 8px; border:1px solid var(--line); border-radius:10px;
  background:var(--card); color:var(--muted); font-family:inherit;
  font-size:.9rem; letter-spacing:.06em; cursor:pointer; transition:all .2s; box-shadow:var(--shadow-sm);
}
.houi-tab.active{ background:rgba(184,144,31,.14); color:var(--gold-dk); border-color:var(--gold); font-weight:700; }

/* 逆引き結果 */
.rev-summary{ font-size:.8rem; color:var(--muted); line-height:1.7; margin:6px 0 14px; text-align:center; }
.rev-summary b{ color:var(--ink); }
.rev-day{ background:var(--card); border:1px solid var(--line); border-radius:10px;
  padding:12px 14px; margin-bottom:10px; box-shadow:var(--shadow-sm); }
.rev-date{ font-family:'Noto Serif JP',serif; color:var(--ink); font-size:1rem; margin-bottom:8px;
  border-bottom:1px solid var(--line); padding-bottom:6px; }
.rev-dir{ margin:8px 0; }
.rev-dir-name{ display:inline-block; font-family:'Noto Serif JP',serif; color:#2e7d4f;
  background:rgba(46,125,79,.10); border:1px solid rgba(46,125,79,.35);
  border-radius:8px; padding:3px 12px; font-size:.95rem; margin-bottom:6px; }
.rev-koku{ display:flex; flex-wrap:wrap; gap:6px; margin-top:6px; }
.koku-chip{ font-size:.72rem; color:var(--muted); background:var(--surface);
  border:1px solid var(--line); border-radius:8px; padding:5px 10px; cursor:pointer;
  font-family:inherit; transition:all .2s; }
.koku-chip:active{ color:var(--gold); border-color:var(--gold); }

/* 出発条件の入力（結果内・インライン） */
.houi-controls{ display:grid; grid-template-columns:1fr 1fr; gap:10px; margin:4px 0 16px; }
.houi-controls label{ display:flex; flex-direction:column; gap:5px; }
.houi-controls label:last-child{ grid-column:span 2; }
.houi-controls span{ font-size:.78rem; color:var(--muted); letter-spacing:.05em; }
.houi-controls input, .houi-controls select{
  background:var(--surface); border:1px solid var(--line); color:var(--ink);
  padding:11px 12px; border-radius:10px; font-size:16px; font-family:inherit; width:100%;
  appearance:none; -webkit-appearance:none;
}
.houi-controls input:focus, .houi-controls select:focus{ outline:none; border-color:var(--gold); box-shadow:0 0 0 3px rgba(184,144,31,.12); }
.houi-loading{ text-align:center; color:var(--faint); font-size:.85rem; padding:24px 0; letter-spacing:.1em; }
.houi-mode-note{ font-size:.76rem; line-height:1.7; color:var(--muted); margin:-6px 0 14px; padding:9px 12px;
  background:rgba(184,144,31,.06); border:1px solid var(--line); border-radius:8px; }
.houi-mode-note b{ color:var(--gold-dk); }

/* 地図 */
#houi-map{ width:100%; height:62vh; min-height:320px; border-radius:12px;
  border:1px solid var(--line); margin-top:4px; background:#eef0f2; }
.leaflet-container{ background:#eef0f2; font-family:inherit; }
.map-note{ font-size:.72rem; color:var(--faint); margin-top:8px; text-align:center; line-height:1.7; }
.houi-note{ font-size:.8rem; color:var(--muted); line-height:1.75; margin:2px 0 14px;
  padding:11px 14px; border:1px solid var(--line); border-left:3px solid var(--gold);
  border-radius:8px; background:rgba(184,144,31,.06); }
.houi-note b{ color:var(--gold-dk); font-weight:700; }

/* 方位ラベル（地図上・地図の地色に乗るので白縁取りで可読化） */
.dir-label{ font-family:'Noto Serif JP',serif; font-weight:700; font-size:.95rem; text-align:center;
  text-shadow:0 0 3px #fff,0 0 4px #fff,0 0 2px #fff; white-space:nowrap; transition:transform .15s ease-out; }
.dir-label .vd{ display:block; font-size:.7rem; font-weight:500; }

/* 凡例 + 方位リスト */
.houi-legend{ display:flex; flex-wrap:wrap; gap:10px 16px; justify-content:center;
  margin:14px 0 4px; font-size:.78rem; color:var(--muted); }
.houi-legend i{ display:inline-block; width:13px; height:13px; border-radius:3px; margin-right:6px; vertical-align:-2px; }
.lg-kichi{ background:rgba(46,125,79,.45); border:1px solid #2e8b57; }
.lg-kyo{ background:rgba(192,57,43,.4); border:1px solid var(--red); }
.lg-neutral{ background:rgba(150,145,135,.3); border:1px solid #9b9488; }

.dir-list{ display:grid; grid-template-columns:1fr 1fr; gap:8px; margin-top:14px; }
.dir-item{ background:var(--card); border:1px solid var(--line); border-radius:9px;
  padding:10px 12px; font-size:.82rem; box-shadow:var(--shadow-sm); }
.dir-item .d-head{ display:flex; justify-content:space-between; align-items:center; }
.dir-item .d-name{ font-family:'Noto Serif JP',serif; color:var(--ink); font-size:.95rem; }
.dir-item .d-vd{ font-size:.72rem; font-weight:700; padding:2px 8px; border-radius:8px; }
.d-vd.kichi{ color:#2e7d4f; background:rgba(46,125,79,.12); }
.d-vd.kyo{ color:var(--red); background:rgba(192,57,43,.1); }
.d-vd.neutral{ color:var(--muted); background:rgba(150,145,135,.12); }
.dir-item .d-sub{ margin-top:6px; font-size:.72rem; color:var(--faint); line-height:1.6; display:flex; flex-direction:column; gap:2px; }
.dir-item .d-satsu{ color:var(--red); }
.d-level{ font-size:.74rem; letter-spacing:.04em; }
.d-level b{ letter-spacing:1px; }
.d-level.kichi{ color:#2e7d4f; } .d-level.kichi b{ color:#2e7d4f; }
.d-level.kyo{ color:var(--red); } .d-level.kyo b{ color:var(--red); }
.rev-dir-lv{ margin-left:6px; color:#2e7d4f; font-size:.82rem; letter-spacing:1px; }

@media(min-width:600px){
  .dir-list{ grid-template-columns:repeat(4,1fr); }
}
