:root{color-scheme:dark;--bg:#0d1317;--panel:#171f25;--inner:#11191e;--line:#2c3b43;--ink:#e5eae7;--muted:#8fa6af;--gold:#dfc17d;--green:#96ccb2;--blue:#87b5df;--red:#e99583;--wood:#89c9ac;--water:#88b9e5;--fire:#eb9888;--earth:#d2b389;--metal:#e2c878;font-family:"Microsoft Yahei","PingFang SC",system-ui,sans-serif;font-size:14px}
*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);line-height:1.65}button,input,select{font:inherit}button,select{cursor:pointer}button,a,input,select,summary{-webkit-tap-highlight-color:transparent}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible{outline:2px solid var(--green);outline-offset:3px}button,input,select{border:1px solid var(--line);background:var(--inner);color:var(--ink);border-radius:9px;min-height:44px;padding:9px 13px}button{font-weight:500}button:hover{border-color:var(--green)}button:disabled{cursor:wait;opacity:.6}input,select{width:100%;min-width:0}a{color:var(--gold);text-decoration:none}[hidden]{display:none!important}.muted{color:var(--muted);font-size:12px}main{width:min(1180px,calc(100% - 40px));margin:0 auto;padding:34px 0 20px}.intro{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px}.intro h1{font-size:30px;font-weight:500;letter-spacing:.12em;margin:3px 0;color:var(--gold)}.intro p{margin:0}.eyebrow{font-size:11px;color:var(--muted);letter-spacing:.15em;margin:0 0 5px}.edition{color:var(--green);border:1px solid #3c5d51;border-radius:20px;padding:5px 14px;font-size:12px}.panel{border:1px solid var(--line);background:var(--panel);border-radius:16px}.birth-panel summary{display:flex;align-items:center;gap:12px;padding:18px 22px;cursor:pointer;list-style:none;font-weight:600}.birth-panel summary::-webkit-details-marker{display:none}.birth-panel summary small{font-weight:400;color:var(--muted);margin-left:auto;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:60%}.expand-mark{font-weight:400;color:var(--muted)}details[open]>summary .expand-mark{transform:rotate(45deg)}#birthForm{padding:0 22px 22px}.form-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:17px 22px}.form-grid label,.coordinates label{display:flex;flex-direction:column;gap:7px;font-size:12px;color:var(--muted)}input,select{font-size:14px;color:var(--ink)}.form-hint{font-size:12px;color:var(--muted);margin:13px 0}.settings{border-top:1px solid var(--line)}.settings summary{padding:12px 0;font-size:12px;font-weight:400}.settings-body{padding:3px 0 14px}.coordinates{display:grid;grid-template-columns:1fr 1fr;gap:18px;max-width:580px}.method-tags{display:flex;gap:7px;flex-wrap:wrap;margin-top:16px}.method-tags span,.tag{border:1px solid var(--line);border-radius:20px;padding:3px 10px;font-size:11px;color:var(--muted)}.form-bottom{display:flex;justify-content:space-between;align-items:center;gap:16px;padding-top:13px;border-top:1px solid var(--line)}button.primary{border:0;background:var(--gold);color:#18231f;min-width:170px;font-weight:700}.error{border:1px solid #a66156;color:#f6b3a5;background:#8a44301a;padding:10px 14px;border-radius:8px}.loading,.status{color:var(--green);font-size:13px}.empty{text-align:center;padding:38px 16px 44px;color:var(--muted)}.empty svg{fill:none;stroke:var(--gold);stroke-width:.6;opacity:.55}.empty p{font-size:15px;color:var(--gold);margin:12px 0 6px}.empty small{font-size:12px}.result-heading{display:flex;justify-content:space-between;align-items:center;gap:18px;margin:25px 0 17px}.result-heading h2{font-size:22px;color:var(--gold);margin:2px 0;font-weight:500;overflow-wrap:anywhere}.result-heading p{margin:2px 0}.actions{display:flex;gap:8px;flex-shrink:0}.overview{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-bottom:18px}.overview>div{background:var(--panel);border:1px solid var(--line);padding:13px 18px;border-radius:12px;min-width:0}.overview small{display:block;color:var(--muted);font-size:11px}.overview strong{display:block;font-size:17px;font-weight:500;color:var(--gold)}.overview span{font-size:11px;color:var(--muted)}.chart-panel{padding:18px}.chart-toolbar{display:flex;justify-content:space-between;align-items:center;gap:8px;margin-bottom:13px}.segmented{display:flex;border:1px solid var(--line);padding:3px;border-radius:10px;background:var(--inner)}.segmented button{border:0;background:transparent;padding:7px 18px;min-height:36px;font-size:12px}.segmented button[aria-pressed=true]{background:var(--green);color:#112c23}.chart-layout{display:grid;grid-template-columns:minmax(0,1fr) 295px;gap:23px;align-items:start}.chart-canvas{min-width:0}.chart-canvas svg{display:block;width:100%;height:auto;overflow:visible;max-width:720px;margin:0 auto}.chart-canvas svg text{font-family:inherit}.wheel-house{cursor:pointer;stroke:var(--line);stroke-width:1;fill:var(--inner)}.wheel-house:hover,.wheel-house.is-selected{fill:#263d37;stroke:var(--green)}.wheel-star{cursor:pointer}.wheel-star:hover circle{stroke:white}.chart-legend{display:flex;justify-content:center;gap:14px;flex-wrap:wrap;font-size:11px;color:var(--muted);margin:15px 0 2px}.chart-legend i{display:inline-block;width:6px;height:6px;border-radius:50%;margin-right:4px}.life-dot{background:var(--gold)}.self-dot{background:var(--green)}.detail{background:var(--inner);padding:19px;border:1px solid var(--line);border-radius:12px;min-height:310px}.detail .detail-caption{font-size:11px;color:var(--muted)}.detail h3{font-size:24px;margin:4px 0 2px;font-weight:500;color:var(--gold)}.detail p{font-size:12px;color:var(--muted);margin:5px 0}.detail .palace-stars{margin:19px 0;display:flex;gap:7px;flex-wrap:wrap}.star-chip{min-height:36px;padding:5px 10px;font-size:12px;display:flex;align-items:center;gap:6px}.star-chip b{font-weight:500}.star-chip small{color:var(--muted);font-size:10px}.detail dl{margin:15px 0}.detail dl>div{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:10px 0;border-bottom:1px solid var(--line);font-size:12px}.detail dt{color:var(--muted)}.detail dd{margin:0;text-align:right}.detail details{border-top:1px solid var(--line);margin-top:16px}.detail summary{padding:12px 0;cursor:pointer;font-size:12px;color:var(--muted)}.detail .tags{display:flex;gap:6px;flex-wrap:wrap}.detail button.back{font-size:11px;margin-top:15px;min-height:36px}.palace-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.palace-card{padding:11px;text-align:left;min-height:126px;border-radius:10px;position:relative;display:flex;flex-direction:column;align-items:stretch;gap:8px}.palace-card[aria-pressed=true]{border-color:var(--green);background:#243b32}.palace-card .palace-title{display:flex;justify-content:space-between;align-items:center;gap:5px}.palace-card .palace-title strong{font-size:13px;color:var(--gold);font-weight:500}.palace-card .branch{font-size:11px;color:var(--muted)}.palace-card .mini-stars{display:flex;gap:5px 9px;flex-wrap:wrap;font-size:12px}.palace-card .palace-marker{margin-top:auto;font-size:10px;color:var(--green)}.section-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:14px}.section-heading h3{font-size:15px;margin:0;font-weight:500;color:var(--gold)}.star-panel{padding:19px 22px;margin-top:18px}.table-wrap{overflow-x:auto;overscroll-behavior-x:contain}table{width:100%;border-collapse:collapse;white-space:nowrap;font-size:13px}th{font-size:11px;color:var(--muted);font-weight:400;text-align:left}th,td{padding:12px 12px;border-bottom:1px solid var(--line)}th:first-child,td:first-child{padding-left:0}tbody tr:last-child td{border-bottom:0}.table-star{min-height:32px;padding:3px 0;border:0;border-radius:0;background:transparent;color:inherit;display:flex;align-items:center;gap:8px}.star-dot{width:6px;height:6px;background:currentColor;border-radius:50%}.state{font-size:11px;padding:3px 8px;border:1px solid var(--line);border-radius:6px}.table-hint{display:none;margin:10px 0 0}footer{display:flex;justify-content:space-between;gap:12px;font-size:11px;color:var(--muted);margin-top:24px;padding:16px 0}footer a{color:var(--muted)}.skip{position:fixed;left:10px;top:-100px;z-index:99999;background:var(--green);color:#123;padding:8px}.skip:focus{top:8px}.qz-topbar{min-height:60px;padding:12px 24px;border-bottom:1px solid var(--line)}
html[data-theme=light]{color-scheme:light;--bg:#f3f4ef;--panel:#fff;--inner:#f6f8f5;--line:#d5dfd9;--ink:#263a33;--muted:#637c72;--gold:#89702b;--green:#72af93;--blue:#537fa5;--wood:#327354;--water:#396aab;--fire:#b44f40;--earth:#8e6a38;--metal:#93741d}html[data-theme=light] .palace-card[aria-pressed=true],html[data-theme=light] .wheel-house.is-selected{background:#dfede4;fill:#dfede4}html[data-theme=light] button.primary{background:#dcc079}
@media(min-width:1100px){.birth-panel .form-grid{grid-template-columns:1.1fr .8fr 1.1fr .85fr 1.15fr 1.2fr}.chart-layout{grid-template-columns:minmax(0,1fr) 330px}.detail{margin-top:14px}}
@media(max-width:860px){.chart-layout{grid-template-columns:1fr}.detail{min-height:0}.chart-canvas svg{max-width:630px}.overview>div{padding:12px}.form-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:540px){main{width:calc(100% - 24px);padding-top:22px}.intro{margin-bottom:17px}.intro h1{font-size:25px}.edition{padding:4px 11px;font-size:11px}.birth-panel summary{padding:15px}.birth-panel summary small{font-size:11px}#birthForm{padding:0 14px 15px}.form-grid{gap:14px 10px}.form-grid label{font-size:11px}input,select{font-size:13px;padding:9px 8px}input[type=date],input[type=time]{min-height:44px;height:44px}.settings summary{padding:13px 0;gap:5px;font-size:11px}.settings summary small{max-width:48%;font-size:10px}.form-bottom{gap:8px}.form-bottom .muted{font-size:10px}button.primary{min-width:130px}.result-heading{display:block;margin-top:22px}.actions{margin-top:14px}.actions button{flex:1;font-size:12px}.overview{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-bottom:12px}.overview strong{font-size:16px}.overview>div{padding:10px 12px}.chart-panel{padding:11px}.chart-toolbar>.muted{font-size:10px}.segmented button{padding:7px 14px}.chart-layout{gap:14px}.chart-legend{gap:7px 12px;font-size:10px}.chart-legend span:last-child{width:100%;text-align:center}.palace-grid{gap:6px}.palace-card{padding:8px;min-height:115px;gap:8px}.palace-card .palace-title strong{font-size:12px}.palace-card .mini-stars{font-size:11px;gap:5px 8px}.palace-card .branch{font-size:10px}.detail{padding:15px}.detail h3{font-size:22px}.star-panel{padding:15px 12px;margin-top:12px}.section-heading>.muted{font-size:10px}table{font-size:12px}th,td{padding:11px 13px}.table-hint{display:block}.empty{padding:25px 10px}.empty p{font-size:13px}.empty small{font-size:11px}footer{font-size:10px}.coordinates{gap:10px}}
@media print{.qz-topbar,.xunq-site-header,.xunq-header-spacer,.birth-panel,.intro,.actions,footer,.chart-toolbar,.empty{display:none!important}main{width:100%;padding:0}.panel{break-inside:avoid}.chart-layout{grid-template-columns:1fr 260px}body{-webkit-print-color-adjust:exact;print-color-adjust:exact}}
#result,#birthPanel,#detail{scroll-margin-top:90px}
.skip:not(:focus){clip-path:inset(50%);width:1px;height:1px;overflow:hidden;padding:0}.palace-title strong{min-width:0;overflow-wrap:anywhere;line-height:1.4}
/* Layout only: dates and times use the existing shared birth wheel and Ziwei input adapter. */
#birthForm>.form-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.entry-middle{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(0,1fr);gap:24px;margin:20px 0}.birth-data-block{min-width:0}.birth-mode-row,.birth-date-row,.birth-time-row{display:grid;grid-template-columns:76px minmax(0,1fr);gap:10px;align-items:center;margin-bottom:12px}.birth-mode-row>span,.birth-date-row>span{color:var(--muted);font-size:12px}.birth-mode-controls{min-width:0}.birth-toggle{display:flex;gap:5px}.birth-toggle button{flex:1;min-width:0}.birth-toggle button[aria-pressed=true]{background:var(--green);color:#17372a;border-color:var(--green)}.birth-date-parts{display:grid;grid-template-columns:1.2fr 1fr 1fr;gap:5px}#birthClockFields{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:5px}#birthTimeMode{padding-inline:9px}.entry-location label{display:flex;flex-direction:column;gap:7px;font-size:12px;color:var(--muted)}#birthForm .birth-wheel-trigger{background:var(--inner)}.birth-check{display:flex;gap:5px;align-items:center}.birth-check input{width:18px;min-height:18px}.birth-data-block .form-hint{margin:6px 0}.coordinates{max-width:none;grid-template-columns:1fr 1fr 1.25fr}#birthDateHint.bad{color:var(--red)}
@media(max-width:650px){.entry-middle{grid-template-columns:1fr;gap:14px;margin:18px 0}.birth-mode-row,.birth-date-row,.birth-time-row{grid-template-columns:65px minmax(0,1fr);gap:10px}.coordinates{grid-template-columns:1fr 1fr}.coordinates>label:last-child{grid-column:1/-1}.entry-location{border-top:1px solid var(--line);padding-top:14px}#birthForm .birth-wheel-trigger{font-size:14px}#birthForm>.form-grid{gap:10px}}
/* Searchable city picker; data is shared with Mingshu. */
.city-picker{position:relative;min-width:0;margin-top:7px}.city-control{position:relative}.city-control #city{padding-right:42px}.city-control #cityToggle{position:absolute;inset:0 0 0 auto;width:42px;height:44px;min-height:44px;padding:0;border:0;border-radius:0 9px 9px 0;background:transparent;color:var(--muted);display:grid;place-items:center}.city-control #cityToggle:hover{color:var(--green)}.city-control input[aria-invalid=true]{border-color:var(--red)}.city-panel{position:absolute;z-index:30;top:calc(100% + 6px);left:0;right:0;min-width:0;border:1px solid var(--line);border-radius:12px;background:var(--inner);box-shadow:0 14px 32px #0005;overflow:hidden}.city-panel>p{font-size:11px;color:var(--muted);padding:10px 12px 6px;margin:0;line-height:1.65;overflow-wrap:anywhere}#cityResults{max-height:260px;max-height:min(260px,40dvh);overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:#58746e transparent}.city-option{display:flex;flex-direction:column;gap:2px;width:100%;min-height:52px;text-align:left;padding:9px 12px;margin:0;border:0;border-radius:0;background:transparent;white-space:normal;overflow-wrap:anywhere;line-height:1.5}.city-option strong{font-size:13px;font-weight:500;color:var(--ink)}.city-option>span{font-size:11px;color:var(--muted)}.city-option:hover,.city-option[aria-selected=true]{background:#83b9a329}.city-panel-actions{display:flex;gap:8px;padding:5px 8px;border-top:1px solid var(--line)}.city-panel-actions button{flex:1;min-height:44px;font-size:11px;padding:7px;border:0;color:var(--green);background:transparent}.city-status{margin:8px 0;overflow-wrap:anywhere}.entry-location{min-width:0}
@media(max-width:650px){.city-panel{position:relative;top:auto;margin-top:6px;box-shadow:none}.city-option{padding:10px 12px}.city-panel-actions button{font-size:12px}}

.position-place{margin-right:5px}.position-degrees{white-space:nowrap;font-variant-numeric:tabular-nums}
@media(max-width:650px){.star-panel .table-wrap{overflow:visible}.star-panel table{table-layout:fixed;width:100%;white-space:normal;font-size:11px}.star-panel th,.star-panel td{padding:8px 3px;vertical-align:middle}.star-panel th{font-size:10px;white-space:normal;overflow-wrap:anywhere}.star-panel th:nth-child(1){width:15%}.star-panel th:nth-child(2){width:13%}.star-panel th:nth-child(3),.star-panel th:nth-child(4){width:27%}.star-panel th:nth-child(5){width:18%;text-align:right}.star-panel td:last-child{text-align:right}.star-panel .table-star{gap:4px;font-size:11px;min-height:32px;white-space:normal}.star-panel .star-dot{width:5px;height:5px;flex-shrink:0}.position-place,.position-degrees{display:block;margin:0;line-height:1.65}.position-place{color:var(--muted)}.position-degrees{font-size:10.5px;letter-spacing:-.15px}.star-panel .state{display:inline-block;font-size:10px;padding:2px 4px;white-space:normal;overflow-wrap:anywhere;max-width:100%}.star-panel .table-hint{display:none}.star-panel .section-heading{gap:6px}.star-panel .section-heading>.muted{font-size:10px}}

@media(max-width:650px){.star-panel td{overflow-wrap:anywhere}.star-panel .table-star{max-width:100%;overflow-wrap:anywhere;min-width:0}}

@media(max-width:650px){html[data-xunq-lang=en] .star-panel th:nth-child(1),html[data-xunq-lang=en] .star-panel th:nth-child(2){width:20%}html[data-xunq-lang=en] .star-panel th:nth-child(3),html[data-xunq-lang=en] .star-panel th:nth-child(4){width:24%}html[data-xunq-lang=en] .star-panel th:nth-child(5){width:12%}html[data-xunq-lang=en] .star-panel .table-star{gap:3px;font-size:10.5px}html[data-xunq-lang=en] .star-panel th{font-size:9.5px}}

@media(max-width:650px){html[data-xunq-lang=en] .star-panel th:nth-child(1){width:22%}html[data-xunq-lang=en] .star-panel th:nth-child(3),html[data-xunq-lang=en] .star-panel th:nth-child(4){width:23%}}

/* The relationship layer sits behind the opaque star labels. */
:root{--rel-meet:#ceb575;--rel-opposition:#d88b83;--rel-square:#bc9dd2;--rel-trine:#8dbda3;--rel-sextile:#82aac8}
html[data-theme=light]{--rel-meet:#8b6d26;--rel-opposition:#b44339;--rel-square:#8250a2;--rel-trine:#387f59;--rel-sextile:#366e9e}
.relation-controls{display:flex;align-items:center;gap:8px;flex-wrap:wrap;border-top:1px solid var(--line);padding:12px 0 2px;margin-bottom:10px;min-width:0}
.relation-controls>button,.relation-controls select{min-height:44px;height:44px;font-size:12px;margin:0}
.relation-toggle{display:inline-flex;align-items:center;justify-content:center;gap:8px;flex:none;min-width:88px}
.relation-toggle i{display:block;width:25px;height:14px;position:relative;border:1px solid var(--muted);border-radius:12px;background:transparent}
.relation-toggle i:after{content:'';position:absolute;width:8px;height:8px;top:2px;left:3px;border-radius:50%;background:var(--muted)}
.relation-toggle[aria-pressed=true]{border-color:#7daf9566;color:var(--green)}
.relation-toggle[aria-pressed=true] i{background:var(--green);border-color:var(--green)}
.relation-toggle[aria-pressed=true] i:after{left:12px;background:var(--inner)}
.relation-filter{min-width:0;flex:0 1 156px}.relation-filter select{width:100%;padding:7px 9px}
.relation-sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}
#relationsAll{padding:7px 12px;min-width:64px;flex:none}
#relationsAll:disabled{cursor:default;opacity:.4}
.relation-status{font-size:11px;color:var(--muted);margin:0 0 0 auto;overflow-wrap:anywhere}
.relation-legend{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:4px 14px;margin:12px 0 0;font-size:11px}
.relation-legend span{display:inline-flex;align-items:center;gap:5px}.relation-legend i{display:inline-block;width:13px;border-top:1px solid currentColor}
.wheel-relation{cursor:pointer}.wheel-relation:hover .relation-stroke,.wheel-relation:focus-visible .relation-stroke{stroke-opacity:1;stroke-width:2.6}.wheel-relation:focus{outline:none}
.relation-list{margin-top:14px;border-top:1px solid var(--line)}
.relation-list>summary{display:flex;align-items:center;justify-content:space-between;gap:8px;list-style:none;min-height:44px;cursor:pointer;color:var(--muted);font-size:12px;padding:9px 0}.relation-list>summary::-webkit-details-marker{display:none}.relation-list>summary:after{content:'＋';font-size:15px;flex:none}.relation-list[open]>summary:after{content:'−'}
.relation-list>p{font-size:11px;color:var(--muted);margin:0 0 9px}
.relation-items{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px;padding:0 0 5px;min-width:0}
.relation-item{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:9px 12px;min-height:46px;min-width:0;text-align:left;font-size:12px}
.relation-item>span{min-width:0;overflow-wrap:anywhere}.relation-item strong{font-weight:500;flex:none;font-size:11px}.relation-item[aria-pressed=true]{background:#8dbda314;border-color:var(--green)}.pair-separator{color:var(--muted);margin:0 7px}
.relation-empty{grid-column:1/-1;margin:3px 0 9px;color:var(--muted);font-size:12px}
.relation-endpoints{display:grid;grid-template-columns:1fr;gap:7px;margin-top:17px}.relation-endpoints button{min-height:52px;text-align:left;white-space:normal;overflow-wrap:anywhere;font-size:14px;padding:9px 12px}.relation-endpoints small{display:block;color:var(--muted);font-size:11px;margin-top:3px}.detail h3 small{font-size:15px}.detail p.relation-explanation{line-height:1.85;margin-top:15px}.detail [data-relation-reset]{min-height:44px}
@media(max-width:860px){.relation-items{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:540px){.relation-controls{gap:6px;padding-top:10px}.relation-toggle{min-width:80px;padding-inline:9px}.relation-filter{flex:1;min-width:90px}#relationsAll{min-width:60px;padding-inline:8px}.relation-status{flex-basis:100%;margin:1px 0 0;line-height:1.5;font-size:10px}.relation-items{grid-template-columns:1fr}.relation-item{font-size:12px}.relation-legend{gap:4px 11px;font-size:10px}.relation-endpoints{grid-template-columns:repeat(2,minmax(0,1fr))}.relation-endpoints button{padding:9px;font-size:13px}.relation-list{margin-top:10px}}
@media print{.relation-controls,.relation-list{display:none!important}}
