.zwds-grid-16 {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  grid-template-rows: repeat(4, minmax(15em, 1fr));
  gap: 6px;
  min-width: 54em;
  margin-top: 15px;
}
.zwds-palace-cell {
  background: var(--card);
  border: 1px solid var(--border);
  border-radius: 8px;
  padding: .65em;
  display: flex;
  flex-direction: column;
  gap: .6em;
  min-width: 0;
  box-shadow: 0 2px 8px rgba(0,0,0,0.1);
}
.zwds-palace-cell.is-ming {
  background: rgba(239, 159, 39, 0.05);
  border-color: #EF9F27;
  box-shadow: 0 0 10px rgba(239, 159, 39, 0.15);
}
.zwds-palace-upper { display: flex; justify-content: space-between; gap: .6em; }
.zwds-star-columns { display: flex; align-items: flex-start; gap: .2em; flex-wrap: wrap; }
.zwds-palace-right { flex-direction: row-reverse; justify-content: flex-start; margin-left: auto; }
.zwds-palace-left { align-content: flex-start; }
.zwds-palace-lower-area { margin-top: auto; display: flex; flex-direction: column; gap: .5em; }
.zwds-palace-series { padding-top: .35em; border-top: 1px solid var(--border); }
.zwds-palace-series:empty, .zwds-palace-lower:empty { display: none; }
.zwds-palace-footer { display: grid; grid-template-columns: 1fr auto 1fr; align-items: end; gap: .3em; }
.zwds-palace-identity { display: flex; align-items: flex-end; gap: .2em; }
.zwds-palace-name, .zwds-palace-tgdz, .zwds-body-badge, .zwds-star-name {
  writing-mode: vertical-rl;
  text-orientation: upright;
  white-space: nowrap;
  letter-spacing: .08em;
}
.zwds-palace-period { display: flex; flex-direction: column; align-items: center; padding-bottom: .1em; }
.zwds-dashan-label { font-size: .6em; color: var(--text2); }
.zwds-palace-branch { display: flex; justify-content: flex-end; align-items: flex-end; gap: .25em; }
.zwds-body-badge { color: var(--accent2); font-size: .65em; }


.ziwei-chart { --card: var(--surface, #171c29); --text2: #aeb7c9; --accent2: #e1bc70; min-width:0; }
.ziwei-scroll { max-width:100%; overflow-x:auto; overscroll-behavior-x:contain; }
.ziwei-center { grid-column:2 / 4; grid-row:2 / 4; display:flex; flex-direction:column; justify-content:center; align-items:center; padding:1em; text-align:center; gap:.6em; }
.zwds-star-badge { display:inline-flex; flex-direction:column; align-items:center; font-size:.8em; }
.zwds-star-main { font-size:1em; font-weight:700; }
.zwds-star-sh { border-radius:3px; padding:0 .1em; }
.zwds-dashan-badge { font-size:.7em; white-space:nowrap; }
.ziwei-controls { display:flex; flex-wrap:wrap; gap:1em; }
.ziwei-controls label { display:flex; flex-direction:column; gap:.4em; }

.ziwei-lock-note { color:var(--muted,#aeb7c9); font-size:.75em; font-weight:normal; }
.ziwei-setting-locked input:disabled { opacity:1; color:var(--muted,#aeb7c9); background:rgba(128,128,128,.08); cursor:not-allowed; border-style:dashed; }
