/* 紫微命盤圖（前台、後台共用）；顏色用各頁的 --zw-* 變數，沒有就用預設 */
.zw-grid{--zw-line:var(--line,#cfd4cc);--zw-ink:var(--ink,#1d2321);--zw-muted:var(--muted,#5f6966);--zw-accent:var(--accent,#ad3a2c);--zw-bg:#fffdf8;--zw-center:var(--teal,#1f3d3a);
  display:grid;grid-template-columns:repeat(4,minmax(0,1fr));grid-template-rows:repeat(4,minmax(112px,auto));gap:0;border:1.5px solid var(--zw-ink);background:var(--zw-bg);font-size:13px;line-height:1.35;color:var(--zw-ink);width:100%;max-width:100%;overflow:hidden}
.zw-cell{position:relative;display:flex;flex-direction:column;min-width:0;padding:6px 6px 4px;border:0.5px solid var(--zw-line);overflow:hidden}
.zw-soul{background:#fbf1ec;box-shadow:inset 0 0 0 1.5px var(--zw-accent)}
.zw-stars{display:flex;flex-wrap:wrap;gap:1px 6px;min-height:20px}
.zw-s{white-space:nowrap;display:inline-flex;align-items:baseline;gap:1px}
.zw-major{font-weight:700;font-size:14px;color:var(--zw-accent)}
.zw-empty{color:var(--zw-muted);font-size:12px;font-weight:400}
.zw-minor{display:flex;flex-wrap:wrap;gap:0 5px;margin-top:2px;flex:1;align-content:flex-start}
.zw-mi{font-size:12px;color:var(--zw-ink)}
.zw-adj{font-size:11px;color:var(--zw-muted)}
.zw-b{font-style:normal;font-size:10px;font-weight:400;color:var(--zw-muted)}
.zw-m{display:inline-block;font-style:normal;font-size:10px;line-height:14px;min-width:14px;text-align:center;border-radius:3px;color:#fff;font-weight:700;margin-left:1px}
.zw-m-lu{background:#2f7a4d}.zw-m-quan{background:#a1452a}.zw-m-ke{background:#2d5f8a}.zw-m-ji{background:#3a3a3a}
.zw-foot{display:flex;align-items:flex-end;justify-content:space-between;gap:4px;margin-top:4px;padding-top:3px;border-top:0.5px dashed var(--zw-line);white-space:nowrap}
.zw-gz{font-size:12px;color:var(--zw-muted)}
.zw-pn{font-weight:700;font-size:13px}
.zw-soul .zw-pn{color:var(--zw-accent)}
.zw-pn em{font-style:normal;font-size:10px;margin-left:2px;padding:0 3px;border-radius:3px;background:var(--zw-center);color:#fff;vertical-align:1px}
.zw-dec{font-size:11px;color:var(--zw-muted)}
.zw-center{grid-row:2/4;grid-column:2/4;display:flex;flex-direction:column;justify-content:center;padding:12px 14px;border:0.5px solid var(--zw-line);background:var(--zw-center);color:#f2efe6;min-width:0}
.zw-title{font-size:16px;font-weight:700;letter-spacing:.12em;text-align:center;margin-bottom:8px;white-space:nowrap}
.zw-center dl{margin:0;display:grid;grid-template-columns:1fr 1fr;gap:3px 12px}
.zw-center dl div{display:flex;gap:6px;min-width:0;font-size:12.5px}
.zw-center dt{color:#b9c4bf;white-space:nowrap}
.zw-center dd{margin:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.zw-note{margin:8px 0 0;font-size:12px;color:#f3d9c9;text-align:center}
.zw-legend{display:flex;justify-content:center;align-items:center;gap:4px;margin-top:8px;font-size:11px;color:#b9c4bf}
.zw-legend span{margin-left:4px}
@media (max-width:640px){
  .zw-grid{font-size:11px;grid-template-rows:repeat(4,minmax(96px,auto))}
  .zw-cell{padding:4px 3px 3px}
  .zw-major{font-size:12.5px}.zw-mi{font-size:11px}.zw-adj{display:none}
  .zw-stars{gap:0 4px}
  .zw-b{font-size:9px}.zw-m{font-size:9px;line-height:12px;min-width:12px}
  .zw-foot{flex-wrap:wrap;gap:0 2px}.zw-gz{font-size:10px}.zw-pn{font-size:11.5px}.zw-dec{font-size:9.5px;width:100%;text-align:right}
  .zw-center{padding:8px 6px}.zw-title{font-size:13px;letter-spacing:.06em;margin-bottom:4px}
  .zw-center dl{grid-template-columns:1fr;gap:1px}.zw-center dl div{font-size:10.5px;gap:4px}
  .zw-legend{margin-top:4px}.zw-note{font-size:10.5px}
}
@media print{
  .zw-grid{font-size:11px;break-inside:avoid}
  .zw-center{background:#fff;color:#000;border:1px solid #000}
  .zw-center dt,.zw-legend{color:#444}.zw-note{color:#000}
  .zw-soul{background:#fff}
}
