/* WP QiMén DùnJiǎ Claude — Thème light technique */
@import url('https://fonts.googleapis.com/css2?family=IBM+Plex+Sans:wght@400;500;600&family=IBM+Plex+Mono:wght@400;500&family=Noto+Serif+SC:wght@400;600;700&display=swap');

.qmdj-widget {
  --qmdj-accent:     #1e3a5f;
  --qmdj-accent-l:   color-mix(in srgb,var(--qmdj-accent) 10%,#fff);
  --qmdj-bg:         #ffffff;
  --qmdj-bg2:        #f8f9fa;
  --qmdj-bg3:        #f1f3f5;
  --qmdj-border:     #dee2e6;
  --qmdj-border2:    #ced4da;
  --qmdj-text:       #212529;
  --qmdj-text2:      #495057;
  --qmdj-text3:      #868e96;
  --qmdj-red:        #c92a2a;
  --qmdj-green:      #2f9e44;
  --qmdj-gold:       #b45309;
  --qmdj-max-width:  1000px;
  --qmdj-radius:     2px;
  --qmdj-shadow:     none;
  --qmdj-font-ui:    'IBM Plex Sans',system-ui,sans-serif;
  --qmdj-font-mono:  'IBM Plex Mono',monospace;
  --qmdj-font-zh:    'Noto Serif SC',serif;
  font-family:var(--qmdj-font-ui); font-size:14px; color:var(--qmdj-text);
  background:var(--qmdj-bg); max-width:var(--qmdj-max-width);
  margin:1.5rem auto; border:1px solid var(--qmdj-border);
  border-radius:var(--qmdj-radius); box-shadow:var(--qmdj-shadow); overflow:visible;
}

/* ── En-tête ── */
.qmdj-header { display:flex; align-items:center; justify-content:space-between; padding:.65rem 1.25rem; background:var(--qmdj-bg2); border-bottom:1px solid var(--qmdj-border); }
.qmdj-header-left { display:flex; align-items:baseline; gap:.5rem; }
.qmdj-title-zh { font-family:var(--qmdj-font-zh); font-size:1.15rem; font-weight:700; color:var(--qmdj-accent); letter-spacing:.05em; }
.qmdj-title-sep { color:var(--qmdj-text3); }
.qmdj-title-fr  { font-size:.78rem; font-weight:500; color:var(--qmdj-text2); }
.qmdj-script-toggle { display:flex; border:1px solid var(--qmdj-border2); border-radius:var(--qmdj-radius); overflow:hidden; }
.qmdj-script-btn { padding:.2rem .6rem; font-family:var(--qmdj-font-zh); font-size:.85rem; background:var(--qmdj-bg); border:none; cursor:pointer; color:var(--qmdj-text2); transition:background .15s,color .15s; }
.qmdj-script-btn+.qmdj-script-btn { border-left:1px solid var(--qmdj-border2); }
.qmdj-script-btn.active { background:var(--qmdj-accent); color:#fff; font-weight:600; }

/* ── Formulaire ── */
.qmdj-form { padding:1rem 1.25rem; display:flex; flex-direction:column; gap:.85rem; border-bottom:1px solid var(--qmdj-border); }
.qmdj-form-row--2 { display:grid; grid-template-columns:1fr 1fr; gap:1rem; }
.qmdj-form-row--3 { display:grid; grid-template-columns:1fr 1fr 1.5fr; gap:1rem; }
.qmdj-field { display:flex; flex-direction:column; gap:.3rem; }
.qmdj-label { font-size:.68rem; font-weight:600; letter-spacing:.08em; text-transform:uppercase; color:var(--qmdj-text3); }
.qmdj-input { font-family:var(--qmdj-font-ui); font-size:.85rem; color:var(--qmdj-text); background:var(--qmdj-bg); border:1px solid var(--qmdj-border2); border-radius:var(--qmdj-radius); padding:.4rem .65rem; outline:none; width:100%; box-sizing:border-box; transition:border-color .15s,box-shadow .15s; }
.qmdj-input:focus { border-color:var(--qmdj-accent); box-shadow:0 0 0 3px var(--qmdj-accent-l); }
.qmdj-seg { display:inline-flex; border:1px solid var(--qmdj-border2); border-radius:var(--qmdj-radius); overflow:hidden; width:100%; }
.qmdj-seg-btn { flex:1; display:flex; flex-direction:column; align-items:center; gap:.08rem; padding:.4rem .3rem; background:var(--qmdj-bg); border:none; border-right:1px solid var(--qmdj-border2); cursor:pointer; transition:background .15s; text-align:center; line-height:1.2; }
.qmdj-seg-btn:last-child { border-right:none; }
.qmdj-seg-btn.active { background:var(--qmdj-accent); }
.qmdj-seg-btn.active .qmdj-seg-main,.qmdj-seg-btn.active .qmdj-seg-sub { color:#fff; }
.qmdj-seg-btn.active .qmdj-seg-sub { opacity:.75; }
.qmdj-seg-btn:not(.active):hover { background:var(--qmdj-bg3); }
.qmdj-seg-main { font-size:.78rem; font-weight:600; color:var(--qmdj-text); }
.qmdj-seg-sub  { font-size:.62rem; color:var(--qmdj-text3); }

/* ── Géocodage ── */
.qmdj-geocode-wrap { position:relative; }
.qmdj-city-search  { padding-right:2rem !important; }
.qmdj-spinner { position:absolute; right:.6rem; top:50%; transform:translateY(-50%); color:var(--qmdj-accent); animation:qmdj-spin .7s linear infinite; }
@keyframes qmdj-spin{to{transform:translateY(-50%) rotate(360deg);}}
.qmdj-suggestions { position:absolute; top:calc(100% + 3px); left:0; right:0; z-index:9999; background:var(--qmdj-bg); border:1px solid var(--qmdj-border2); border-radius:var(--qmdj-radius); box-shadow:0 4px 16px rgba(0,0,0,.1); list-style:none; margin:0; padding:0; max-height:200px; overflow-y:auto; }
.qmdj-suggestions li { padding:.4rem .7rem; cursor:pointer; border-bottom:1px solid var(--qmdj-border); display:flex; flex-direction:column; gap:.1rem; font-size:.8rem; transition:background .1s; }
.qmdj-suggestions li:hover { background:var(--qmdj-accent-l); }
.qmdj-sugg-name   { font-weight:600; }
.qmdj-sugg-detail { font-size:.7rem; color:var(--qmdj-text2); }
.qmdj-sugg-coords { font-size:.65rem; color:var(--qmdj-text3); font-family:var(--qmdj-font-mono); }
.qmdj-selected-city { display:flex; align-items:center; justify-content:space-between; padding:.3rem .6rem; background:var(--qmdj-accent-l); border:1px solid color-mix(in srgb,var(--qmdj-accent) 30%,transparent); border-radius:var(--qmdj-radius); font-size:.8rem; font-weight:500; margin-top:.3rem; }
.qmdj-clear-city { background:none; border:none; cursor:pointer; color:var(--qmdj-text3); }
.qmdj-clear-city:hover { color:var(--qmdj-red); }
.qmdj-coords { display:flex; gap:.6rem; margin-top:.35rem; align-items:center; font-size:.75rem; flex-wrap:wrap; }
.qmdj-coords em { font-style:normal; font-weight:600; font-family:var(--qmdj-font-mono); color:var(--qmdj-text3); text-transform:uppercase; margin-right:.2rem; font-size:.65rem; }
.qmdj-coord-input { width:80px; font-family:var(--qmdj-font-mono); font-size:.72rem; padding:.2rem .3rem; border:1px solid var(--qmdj-border2); border-radius:var(--qmdj-radius); background:var(--qmdj-bg); }
.qmdj-tz-display { font-family:var(--qmdj-font-mono); font-size:.7rem; color:var(--qmdj-accent); font-weight:500; }

/* ── Bouton ── */
.qmdj-btn-calc { align-self:flex-start; padding:.5rem 1.4rem; background:var(--qmdj-accent); color:#fff; border:none; border-radius:var(--qmdj-radius); font-family:var(--qmdj-font-ui); font-size:.85rem; font-weight:600; letter-spacing:.03em; cursor:pointer; transition:opacity .15s,transform .1s; }
.qmdj-btn-calc:hover { opacity:.88; }
.qmdj-btn-calc:active { transform:translateY(1px); }
.qmdj-btn-calc:disabled { opacity:.5; cursor:wait; }

/* ── Sections ── */
.qmdj-section { border-bottom:1px solid var(--qmdj-border); }
.qmdj-section:last-child { border-bottom:none; }
.qmdj-section-head { display:flex; align-items:center; gap:.6rem; padding:.55rem 1.25rem; background:var(--qmdj-bg2); border-bottom:1px solid var(--qmdj-border); }
.qmdj-section-head.qmdj-collapsible { cursor:pointer; user-select:none; }
.qmdj-section-head.qmdj-collapsible:hover { background:var(--qmdj-bg3); }
.qmdj-section-zh    { font-family:var(--qmdj-font-zh); font-size:.95rem; font-weight:700; color:var(--qmdj-accent); }
.qmdj-section-label { font-size:.72rem; font-weight:600; letter-spacing:.06em; text-transform:uppercase; color:var(--qmdj-text2); flex:1; }
.qmdj-toggle-icon   { font-size:.72rem; color:var(--qmdj-text3); transition:transform .25s; }
.qmdj-section-head.collapsed .qmdj-toggle-icon { transform:rotate(-90deg); }

/* ── En-tête de carte ── */
.qmdj-chart-header { padding:.75rem 1.25rem; background:var(--qmdj-bg2); border-bottom:1px solid var(--qmdj-border); }
.qmdj-chart-meta { display:flex; flex-wrap:wrap; gap:1rem; font-size:.82rem; }
.qmdj-meta-item { display:flex; flex-direction:column; gap:.1rem; }
.qmdj-meta-label { font-size:.62rem; font-weight:600; text-transform:uppercase; letter-spacing:.07em; color:var(--qmdj-text3); }
.qmdj-meta-value { font-weight:600; color:var(--qmdj-text); }
.qmdj-meta-zh { font-family:var(--qmdj-font-zh); font-size:1.05rem; color:var(--qmdj-accent); }

/* ══════════════════════════════════════════════════════
   GRILLE 9 PALAIS — Carrés avec aspect-ratio forcé
   ══════════════════════════════════════════════════════ */
.qmdj-grid {
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:1px;
  background:var(--qmdj-border);
  padding:1px;
  /* La grille est carrée — chaque palais aussi */
  aspect-ratio:1/1;
}

/* Palais carré — aspect-ratio garantit le carré */
.qmdj-palace {
  background:var(--qmdj-bg);
  padding:.5rem .6rem;
  position:relative;
  display:flex;
  flex-direction:column;
  cursor:pointer;
  transition:background .15s, box-shadow .1s;
  overflow:hidden;
  /* aspect-ratio hérité de la grille */
}

.qmdj-palace:hover {
  background:color-mix(in srgb,var(--qmdj-accent) 5%,var(--qmdj-bg));
  box-shadow:inset 0 0 0 2px var(--qmdj-accent);
  z-index:1;
}

.qmdj-palace.p-5 { background:var(--qmdj-bg2); }
.qmdj-palace.p-active { background:var(--qmdj-accent-l); box-shadow:inset 0 0 0 2px var(--qmdj-accent); }

/* Numéro en filigrane */
.qmdj-palace-num {
  position:absolute; bottom:.3rem; right:.4rem;
  font-size:1.6rem; font-weight:700; color:var(--qmdj-border);
  font-family:var(--qmdj-font-mono); line-height:1; pointer-events:none; z-index:0;
}

/* Contenu intérieur — hiérarchie Ciel→Homme→Terre */
.qmdj-palace-inner { position:relative; z-index:1; display:flex; flex-direction:column; height:100%; gap:.15rem; }

/* ── Ligne Ciel : Divinité (g) + Étoile (d) ── */
.qmdj-row-top { display:flex; justify-content:space-between; align-items:flex-start; flex-shrink:0; }
.qmdj-elem-block { display:flex; flex-direction:column; }
.qmdj-elem-block.right { align-items:flex-end; }
.qmdj-elem-zh  { font-family:var(--qmdj-font-zh); font-size:.85rem; font-weight:700; line-height:1.1; }
.qmdj-elem-py  { font-size:.52rem; color:var(--qmdj-text3); line-height:1; white-space:nowrap; }
.qmdj-elem-fr  { font-size:.5rem; color:var(--qmdj-text3); font-style:italic; white-space:nowrap; }

.qmdj-god-zh   { color:var(--qmdj-gold); }
.qmdj-star-zh  { color:var(--qmdj-accent); }

/* ── Ligne troncs (centre) ── */
.qmdj-row-mid  { display:flex; justify-content:center; align-items:center; flex:1; gap:.3rem; padding:.1rem 0; }
.qmdj-stem-pair { display:flex; flex-direction:column; align-items:center; gap:.05rem; }
.qmdj-tian-stem { font-family:var(--qmdj-font-zh); font-size:1.7rem; font-weight:700; line-height:1; }
.qmdj-stem-mid-sep { font-size:.55rem; color:var(--qmdj-text3); }
.qmdj-earth-stem { font-family:var(--qmdj-font-zh); font-size:1.3rem; font-weight:600; line-height:1; color:var(--qmdj-text2); }
.qmdj-stem-py  { font-size:.52rem; color:var(--qmdj-text3); font-family:var(--qmdj-font-mono); white-space:nowrap; text-align:center; }

/* Kè Yìng */
.qmdj-ke-ying { font-size:.55rem; text-align:center; line-height:1.2; padding:.1rem .25rem; border-radius:2px; flex-shrink:0; }
.qmdj-ke-ying.san_qi { background:#e8f5e9; color:#1b5e20; font-weight:600; }
.qmdj-ke-ying.good   { background:#f0f9ff; color:#1565c0; }
.qmdj-ke-ying.bad    { background:#fff5f5; color:#c62828; }
.qmdj-ke-ying.neutral{ color:var(--qmdj-text3); }

/* ── Ligne Homme : Porte ── */
.qmdj-row-door { display:flex; justify-content:center; flex-shrink:0; }
.qmdj-door { display:inline-flex; flex-direction:column; align-items:center; padding:.1rem .4rem; border:1px solid var(--qmdj-border); border-radius:var(--qmdj-radius); background:var(--qmdj-bg2); }
.qmdj-door-zh { font-family:var(--qmdj-font-zh); font-size:.88rem; font-weight:700; line-height:1.1; }
.qmdj-door-py { font-size:.52rem; color:var(--qmdj-text3); white-space:nowrap; }
.qmdj-door.qi-ji   { border-color:#2f9e44; background:#f0fdf4; }
.qmdj-door.qi-ji .qmdj-door-zh { color:#2f9e44; }
.qmdj-door.qi-xiong{ border-color:#c92a2a; background:#fff5f5; }
.qmdj-door.qi-xiong .qmdj-door-zh { color:#c92a2a; }

/* ── Ligne Terre : trigramme + chang sheng ── */
.qmdj-row-bot { display:flex; justify-content:space-between; align-items:flex-end; flex-shrink:0; }
.qmdj-trigram-zh { font-family:var(--qmdj-font-zh); font-size:1rem; font-weight:700; }
.qmdj-trigram-py { font-size:.5rem; color:var(--qmdj-text3); white-space:nowrap; }
.qmdj-chang-sheng { font-size:.5rem; color:var(--qmdj-text3); text-align:right; line-height:1.3; }

/* Alertes */
.qmdj-alerts { display:flex; flex-wrap:wrap; gap:.15rem; flex-shrink:0; }
.qmdj-alert { font-size:.5rem; font-weight:700; padding:.04rem .25rem; border-radius:2px; white-space:nowrap; }
.alert-punition { background:#fce4ec; color:#b71c1c; }
.alert-kw       { background:#f3e5f5; color:#6a1b9a; }
.alert-force    { background:#fff3e0; color:#e65100; }
.alert-choc     { background:#e3f2fd; color:#1565c0; }
.alert-zhi-fu   { background:var(--qmdj-accent); color:#fff; }

/* Éléments — couleurs troncs */
.elem-bois  { color:#2f9e44; }
.elem-feu   { color:#e03131; }
.elem-terre { color:#d4a017; }
.elem-metal { color:#495057; }
.elem-eau   { color:#1971c2; }
.qmdj-san-qi .qmdj-tian-stem { color:#2e7d32; }

/* ══════════════════════════════════════════════════════
   MODAL DÉTAIL PALAIS
   ══════════════════════════════════════════════════════ */
.qmdj-modal-overlay {
  position:fixed; inset:0; z-index:99999;
  background:rgba(0,0,0,0.5);
  display:flex; align-items:center; justify-content:center;
  padding:1rem;
  animation:qmdj-fadein .2s ease;
}

.qmdj-modal {
  background:var(--qmdj-bg);
  border:1px solid var(--qmdj-border);
  border-radius:4px;
  box-shadow:0 8px 40px rgba(0,0,0,0.2);
  max-width:680px;
  width:100%;
  max-height:90vh;
  overflow-y:auto;
  display:flex;
  flex-direction:column;
}

.qmdj-modal-head {
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding:.75rem 1.25rem;
  background:var(--qmdj-bg2);
  border-bottom:1px solid var(--qmdj-border);
  position:sticky;
  top:0;
  z-index:1;
}

.qmdj-modal-title {
  display:flex;
  align-items:baseline;
  gap:.6rem;
}

.qmdj-modal-title-zh { font-family:var(--qmdj-font-zh); font-size:1.3rem; font-weight:700; color:var(--qmdj-accent); }
.qmdj-modal-title-fr { font-size:.8rem; color:var(--qmdj-text2); font-weight:500; }

.qmdj-modal-close {
  background:none; border:none; cursor:pointer;
  font-size:1.2rem; color:var(--qmdj-text3);
  padding:.2rem .4rem; border-radius:var(--qmdj-radius);
  transition:background .15s,color .15s;
  line-height:1;
}
.qmdj-modal-close:hover { background:var(--qmdj-bg3); color:var(--qmdj-red); }

.qmdj-modal-body { padding:1rem 1.25rem; display:flex; flex-direction:column; gap:1rem; }

/* Bloc principal : les 4 éléments du palais */
.qmdj-modal-main {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:.75rem;
}

.qmdj-modal-elem {
  border:1px solid var(--qmdj-border);
  border-radius:var(--qmdj-radius);
  overflow:hidden;
}

.qmdj-modal-elem-head {
  padding:.3rem .65rem;
  background:var(--qmdj-bg3);
  font-size:.62rem;
  font-weight:600;
  text-transform:uppercase;
  letter-spacing:.07em;
  color:var(--qmdj-text3);
  border-bottom:1px solid var(--qmdj-border);
}

.qmdj-modal-elem-body {
  padding:.5rem .65rem;
  display:flex;
  flex-direction:column;
  gap:.2rem;
}

.qmdj-modal-zh   { font-family:var(--qmdj-font-zh); font-size:1.6rem; font-weight:700; color:var(--qmdj-accent); line-height:1; }
.qmdj-modal-py   { font-family:var(--qmdj-font-mono); font-size:.78rem; color:var(--qmdj-text2); }
.qmdj-modal-fr   { font-size:.78rem; color:var(--qmdj-text3); font-style:italic; }
.qmdj-modal-elem-info { font-size:.75rem; color:var(--qmdj-text2); padding-top:.25rem; border-top:1px dashed var(--qmdj-border); }

/* Troncs dans modal */
.qmdj-modal-stems {
  display:flex;
  gap:1.5rem;
  align-items:center;
  border:1px solid var(--qmdj-border);
  border-radius:var(--qmdj-radius);
  padding:.65rem 1rem;
}

.qmdj-modal-stem-block { display:flex; flex-direction:column; gap:.15rem; align-items:center; }
.qmdj-modal-stem-label { font-size:.62rem; font-weight:600; text-transform:uppercase; letter-spacing:.07em; color:var(--qmdj-text3); }
.qmdj-modal-stem-zh { font-family:var(--qmdj-font-zh); font-size:2.2rem; font-weight:700; line-height:1; }
.qmdj-modal-stem-py { font-family:var(--qmdj-font-mono); font-size:.72rem; color:var(--qmdj-text2); }
.qmdj-modal-stem-info { font-size:.72rem; color:var(--qmdj-text3); }

.qmdj-modal-stem-sep { font-size:1.5rem; color:var(--qmdj-border2); font-weight:300; align-self:center; }

/* Kè Yìng dans modal */
.qmdj-modal-keying {
  border:1px solid var(--qmdj-border);
  border-radius:var(--qmdj-radius);
  overflow:hidden;
}
.qmdj-modal-keying-head { padding:.3rem .65rem; font-size:.62rem; font-weight:600; text-transform:uppercase; letter-spacing:.07em; color:var(--qmdj-text3); background:var(--qmdj-bg3); border-bottom:1px solid var(--qmdj-border); }
.qmdj-modal-keying-body { padding:.6rem .65rem; }
.qmdj-modal-keying-name { font-size:.9rem; font-weight:700; color:var(--qmdj-text); margin-bottom:.25rem; }
.qmdj-modal-keying-text { font-size:.8rem; color:var(--qmdj-text2); font-style:italic; }
.qmdj-modal-keying-body.san_qi { background:#e8f5e9; }
.qmdj-modal-keying-body.san_qi .qmdj-modal-keying-name { color:#1b5e20; }
.qmdj-modal-keying-body.bad    { background:#fff5f5; }
.qmdj-modal-keying-body.bad .qmdj-modal-keying-name { color:#c62828; }
.qmdj-modal-keying-body.good   { background:#f0f9ff; }
.qmdj-modal-keying-body.good .qmdj-modal-keying-name { color:#1565c0; }

/* Wu Xing dans modal */
.qmdj-modal-wuxing { display:flex; flex-direction:column; gap:.35rem; }
.qmdj-modal-wx-row { display:flex; justify-content:space-between; align-items:center; font-size:.78rem; padding:.25rem .5rem; border-radius:2px; }
.qmdj-modal-wx-label { color:var(--qmdj-text3); font-size:.7rem; }
.qmdj-modal-wx-val   { font-weight:600; }
.wx-sheng  { background:#f0fdf4; } .wx-sheng .qmdj-modal-wx-val  { color:#2f9e44; }
.wx-ke     { background:#fff5f5; } .wx-ke .qmdj-modal-wx-val     { color:#c92a2a; }
.wx-xie    { background:#fef9ec; } .wx-xie .qmdj-modal-wx-val    { color:#b45309; }
.wx-shouke { background:#fff0f5; } .wx-shouke .qmdj-modal-wx-val { color:#9c27b0; }
.wx-equal  { background:#f8f9fa; } .wx-equal .qmdj-modal-wx-val  { color:#495057; }

/* Alertes dans modal */
.qmdj-modal-alerts { display:flex; flex-wrap:wrap; gap:.35rem; }
.qmdj-modal-alert-item {
  display:flex; flex-direction:column; gap:.1rem;
  padding:.4rem .65rem; border-radius:var(--qmdj-radius); border:1px solid;
}
.qmdj-modal-alert-item.alert-punition { background:#fce4ec; border-color:#f48fb1; }
.qmdj-modal-alert-item.alert-kw       { background:#f3e5f5; border-color:#ce93d8; }
.qmdj-modal-alert-item.alert-force    { background:#fff3e0; border-color:#ffcc02; }
.qmdj-modal-alert-item.alert-choc     { background:#e3f2fd; border-color:#90caf9; }
.qmdj-modal-alert-item.alert-zhi-fu   { background:var(--qmdj-accent-l); border-color:var(--qmdj-accent); }
.qmdj-modal-alert-name { font-size:.72rem; font-weight:700; }
.qmdj-modal-alert-desc { font-size:.68rem; font-style:italic; }

/* Chang Sheng dans modal */
.qmdj-modal-cs { font-size:.8rem; color:var(--qmdj-text2); padding:.4rem .65rem; background:var(--qmdj-bg2); border:1px solid var(--qmdj-border); border-radius:var(--qmdj-radius); }

/* ── Sidebar ── */
.qmdj-sidebar-inner { overflow:hidden; transition:max-height .35s ease,opacity .25s; max-height:2000px; opacity:1; }
.qmdj-sidebar-inner.collapsed { max-height:0; opacity:0; }
.qmdj-sidebar-content { padding:.75rem 1.25rem; display:grid; grid-template-columns:1fr 1fr; gap:1rem; }
.qmdj-sidebar-block { border:1px solid var(--qmdj-border); border-radius:var(--qmdj-radius); overflow:hidden; }
.qmdj-sidebar-block-head { padding:.35rem .65rem; background:var(--qmdj-bg3); font-size:.68rem; font-weight:600; text-transform:uppercase; letter-spacing:.07em; color:var(--qmdj-text2); border-bottom:1px solid var(--qmdj-border); display:flex; gap:.4rem; align-items:center; }
.qmdj-sidebar-block-head .qmdj-zh { font-family:var(--qmdj-font-zh); font-size:.9rem; color:var(--qmdj-accent); }
.qmdj-sidebar-block-body { padding:.45rem .65rem; font-size:.78rem; display:flex; flex-direction:column; gap:.3rem; }
.qmdj-sidebar-row { display:flex; justify-content:space-between; align-items:baseline; border-bottom:1px dashed var(--qmdj-border); padding:.2rem 0; }
.qmdj-sidebar-row:last-child { border-bottom:none; }
.qmdj-sidebar-key { color:var(--qmdj-text3); font-size:.72rem; }
.qmdj-sidebar-val { font-weight:600; color:var(--qmdj-text); }
.qmdj-sidebar-zh  { font-family:var(--qmdj-font-zh); color:var(--qmdj-accent); font-size:1rem; }

/* ── Erreur ── */
.qmdj-error { margin:.65rem 1.25rem; padding:.5rem .8rem; background:#fff5f5; border:1px solid #ffc9c9; border-radius:var(--qmdj-radius); color:var(--qmdj-red); font-size:.78rem; }

/* ── Animations ── */
@keyframes qmdj-fadein{from{opacity:0;transform:translateY(5px)}to{opacity:1;transform:translateY(0)}}
.qmdj-results { animation:qmdj-fadein .3s ease; }
.qmdj-palace  { animation:qmdj-fadein .4s ease backwards; }
.qmdj-palace:nth-child(1){animation-delay:.00s}
.qmdj-palace:nth-child(2){animation-delay:.05s}
.qmdj-palace:nth-child(3){animation-delay:.10s}
.qmdj-palace:nth-child(4){animation-delay:.15s}
.qmdj-palace:nth-child(5){animation-delay:.20s}
.qmdj-palace:nth-child(6){animation-delay:.25s}
.qmdj-palace:nth-child(7){animation-delay:.30s}
.qmdj-palace:nth-child(8){animation-delay:.35s}
.qmdj-palace:nth-child(9){animation-delay:.40s}

/* ── Responsive ── */
@media(max-width:680px){
  .qmdj-form-row--2,.qmdj-form-row--3{grid-template-columns:1fr;}
  .qmdj-sidebar-content{grid-template-columns:1fr;}
  .qmdj-tian-stem{font-size:1.4rem;}
  .qmdj-earth-stem{font-size:1.1rem;}
  .qmdj-modal-main{grid-template-columns:1fr;}
}
