.ws-shell .zwb{--border-subtle:var(--ws-border);--bg-card:var(--ws-panel);--bg-input:var(--ws-bg);--text:var(--ws-text);--text-dim:var(--ws-muted);--gold:var(--ws-gold);--accent:var(--ws-focus)}
.zwb{border:1px solid var(--border-subtle,#d5cebd);border-radius:16px;padding:20px;margin:16px 0;background:var(--bg-card,#fff);color:var(--text,#29251e);font-size:14px;line-height:1.65;min-width:0}
.zwb *{box-sizing:border-box}.zwb-title{margin:0 0 6px!important}.zwb-notice,.zwb-muted,.zwb-meta{color:var(--text-dim,#686155);font-size:12px}.zwb-notice{margin:0 0 16px}.zwb-warning{background:rgba(182,126,39,.1);border-left:3px solid #b67e27;padding:10px 12px;margin:12px 0}
.zwb-controls{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin:14px 0}.zwb-label{display:flex;align-items:center;gap:8px;font-weight:600}.zwb select{font:inherit;color:inherit;background:var(--bg-input,var(--bg-card,#fff));border:1px solid var(--border-subtle,#d5cebd);border-radius:7px;padding:7px;max-width:100%}.zwb-candidate-select{min-width:0;flex:1}.zwb-meta{overflow-wrap:anywhere;max-width:100%}
.zwb-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px;align-items:stretch}.zwb-palace{font:inherit;text-align:left;display:flex;flex-direction:column;align-items:stretch;gap:3px;border:1px solid var(--border-subtle,#d5cebd);border-radius:8px;color:inherit;background:transparent;padding:10px;min-width:0;cursor:pointer;overflow-wrap:anywhere;transition:background .12s,border-color .12s}.zwb-palace:hover{background:rgba(151,119,66,.08)}.zwb-palace:focus-visible,.zwb select:focus-visible{outline:3px solid var(--accent,#866b38);outline-offset:2px}
.zwb-palace.is-selected{border:2px solid var(--gold,#9a773a);background:rgba(165,129,56,.14);padding:9px}.zwb-palace.is-triad{border:2px solid #4e8e87;background:rgba(78,142,135,.09);padding:9px}.zwb-palace.is-opposite{border:2px dashed #977abb;background:rgba(151,122,187,.08);padding:9px}.zwb-palace-top{display:flex;justify-content:space-between;gap:3px}.zwb-branch{font-size:11px;color:var(--text-dim,#686155)}.zwb-badges{font-size:10px;color:var(--gold,#9a773a)}
.zwb-major-stars,.zwb-flow-stars,.zwb-stars{display:flex;flex-wrap:wrap;gap:4px 7px}.zwb-major-stars{font-size:12px;font-weight:600}.zwb-flow-stars{font-size:10px}.zwb-star{display:inline-block;overflow-wrap:anywhere}.zwb-hua{display:inline-block;font-size:10px;line-height:1.4;padding:0 3px;margin-left:3px;border:1px solid currentColor;border-radius:3px}.zwb-hua-0{color:#458974}.zwb-hua-1{color:#b67e27}.zwb-hua-2{color:#5b83ad}.zwb-hua-3{color:#bf6970}.zwb-overlay{font-size:11px;padding-top:5px;border-top:1px solid var(--border-subtle,#d5cebd);margin-top:auto}.zwb-age{font-size:10px;color:var(--text-dim,#686155);margin-top:auto;padding-top:5px}
.zwb-center{grid-row:2/4;grid-column:2/4;display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center;gap:6px;padding:14px;min-width:0;font-size:12px;overflow-wrap:anywhere}.zwb-center>strong{font-size:20px;color:var(--gold,#9a773a)}.zwb-engine{font-size:10px;letter-spacing:.04em}.zwb-legend{margin:5px 0;color:var(--text-dim,#686155);font-size:11px}.zwb-center .zwb-muted{margin:0;font-size:11px}
.zwb-detail{margin-top:14px;padding:16px;border-radius:10px;background:rgba(128,128,128,.05)}.zwb-detail h4,.zwb-detail h5{margin:0 0 8px}.zwb-detail h5{margin-top:12px}.zwb-relations{margin:0;font-size:13px}.zwb-mutations{font-size:12px;margin-bottom:0}.zwb-list{margin-top:14px}.zwb-list summary{cursor:pointer;color:var(--text-dim,#686155);font-size:12px;padding:8px 0}.zwb-list-item{padding:12px 0;border-top:1px solid var(--border-subtle,#d5cebd)}.zwb-list-item p{margin:3px 0}.zwb-list-item .zwb-stars{font-size:12px;margin:5px 0}
@media(max-width:600px){.zwb{padding:12px;font-size:12px}.zwb-grid{gap:3px}.zwb-palace{padding:5px;border-radius:5px}.zwb-palace.is-selected,.zwb-palace.is-triad,.zwb-palace.is-opposite{padding:4px}.zwb-palace-top{flex-wrap:wrap;gap:0}.zwb-palace-top strong{font-size:12px}.zwb-major-stars{font-size:10px;gap:2px}.zwb-branch,.zwb-age,.zwb-hua,.zwb-badges{font-size:9px}.zwb-center{padding:6px;font-size:10px}.zwb-center>strong{font-size:16px}.zwb-center .zwb-muted,.zwb-legend{font-size:10px}.zwb-label{flex-wrap:wrap}.zwb-detail{padding:10px}.zwb-controls{gap:6px}.zwb-flow-stars{font-size:9px}.zwb-candidate-select{width:100%}}
