:root {
  color-scheme: light;
  --ink: #292934;
  --muted: #777783;
  --paper: #ffffff;
  --panel: #ffffff;
  --soft: #f7f6f8;
  --line: #e9e7ec;
  --violet: #766985;
  --violet-deep: #5b5069;
  --gold: #b59a70;
  --shadow: 0 10px 30px rgba(38, 34, 47, .055);
}
* { box-sizing: border-box; }
html, body { background: #fff; }
body {
  margin: 0 auto;
  padding: 32px clamp(16px, 4vw, 64px) 72px;
  color: var(--ink);
  background: #fff !important;
  font: 14px/1.7 "DM Sans", "Noto Sans TC", "Segoe UI", sans-serif;
  letter-spacing: .012em;
}
body::before {
  content: ""; position: fixed; inset: 0 0 auto; height: 2px; z-index: 300;
  background: linear-gradient(90deg, #a99bb7, #d5c7a9 52%, #dddde2);
}
/* Retain the previous page during same-origin document navigation. */
@view-transition { navigation:auto; }
::view-transition-group(root) { animation-duration:100ms; }
::view-transition-old(root) { animation:none; }
::view-transition-new(root) { animation:proxy-page-reveal 100ms ease-out both; }
@keyframes proxy-page-reveal { from { opacity:0; } to { opacity:1; } }
@media(prefers-reduced-motion:reduce) {
  ::view-transition-group(root), ::view-transition-new(root) { animation-duration:1ms; }
}
a { color: var(--violet-deep); text-decoration: none; transition: color .18s, background .18s; }
a:hover { color: #8e7354; text-decoration: none; }
:focus-visible { outline: 2px solid #a99bb7; outline-offset: 2px; }

/* Compact, full-width site navigation */
#proxy-header {
  position: sticky; top: 0; z-index: 200;
  width: auto; max-width: none;
  margin: -32px calc(-1 * clamp(16px, 4vw, 64px)) 30px;
  padding: 7px clamp(16px, 4vw, 64px);
  min-height: 54px;
  display: flex; align-items: center; flex-wrap: nowrap; gap: clamp(14px, 2.5vw, 38px);
  color: var(--ink); background: rgba(255,255,255,.98);
  border: 0; border-bottom: 1px solid var(--line); border-radius: 0;
  box-shadow: 0 3px 14px rgba(38,34,47,.035);
  backdrop-filter: blur(14px);
}
.proxy-identity { display: flex; align-items: center; gap: 10px; min-width: 245px; }
.proxy-mark {
  flex: 0 0 34px; width: 34px; height: 34px; display: grid; place-items: center;
  border: 1px solid #e8e3ec; border-radius: 50%; background: #faf9fb; color: var(--gold); font-size: 19px;
}
.proxy-identity-copy h1 { margin: 0; color: #302d37; font-size: 16px; line-height: 1.25; font-weight: 650; letter-spacing: .025em; white-space: nowrap; }
.proxy-identity-copy small { display: block; margin-top: 1px; color: #85828b; font-size: 10px; letter-spacing: .08em; }
#proxy-nav { flex: 1 1 auto; display: flex; align-items: center; justify-content: center; flex-wrap: wrap; gap: 3px; margin: 0; }
#proxy-nav a {
  position: relative; display: inline-flex; align-items: center; justify-content: center;
  min-height: 34px; margin: 0; padding: 5px 10px; border: 0; border-radius: 5px;
  color: #575560; background: transparent; font-size: 13px; white-space: nowrap; cursor: pointer;
}
#proxy-nav a::after { content: ""; position: absolute; right: 10px; bottom: 1px; left: 10px; height: 2px; background: #9989a6; transform: scaleX(0); transition: transform .18s; }
#proxy-nav a:hover { color: var(--violet-deep); background: #faf9fb; }
#proxy-nav a:hover::after { transform: scaleX(1); }
.proxy-account { position: relative; flex: 0 0 auto; }
#container { width: 100%; max-width: 1600px; margin: 0 auto; }
#container > h1 { display: none; }
#signin_container { min-height: 0; margin: 0; }
#topnav { display: flex; align-items: center; gap: 8px; color: var(--muted); white-space: nowrap; font-size: 12px; }
#topnav a.signin { padding: 6px 13px; border-radius: 8px; color: #fff !important; background: var(--violet-deep); font-size: 13px; font-weight: 600; }
#topnav a.signin:hover { background: #493f56; }
#signin_menu {
  position: absolute; top: calc(100% + 10px); right: 0; left: auto; z-index: 300;
  width: 300px; padding: 18px; background: #fff; border: 1px solid var(--line);
  border-radius: 14px; box-shadow: 0 12px 35px rgba(30, 28, 36, .14);
}
#signin_menu input[type=text], #signin_menu input[type=password] { width: 100%; }
#signin_menu .register { margin-top: 12px; }

/* Chart workspace: layout is adjusted around the original SVGs without resizing them. */
#body {
  max-width: 1600px; margin: 0 auto; display: grid;
  grid-template-columns: minmax(0, 1fr) 330px; align-items: start;
  column-gap: 26px; row-gap: 18px;
}
#body > :not(#rightsidebar):not(#lang_dialog) { grid-column: 1; min-width: 0; }
#rightsidebar {
  grid-column: 2; grid-row: 1 / span 40; position: sticky !important; top: 72px;
  float: none !important; width: auto !important; max-width: none !important; height: auto !important;
  margin: 0 !important; padding: 18px; color: var(--ink) !important;
  background: #fff !important; border: 1px solid var(--line); border-radius: 16px;
  box-shadow: var(--shadow); z-index: 5;
}
#sidebar_title {
  display: flex; justify-content: space-between; align-items: center;
  margin: -18px -18px 15px; padding: 12px 18px;
  color: #4f485a; background: #f5f3f7; border-bottom: 1px solid #ece9ef;
  border-radius: 15px 15px 0 0; font-size: 14px; font-weight: 650; cursor: pointer;
}
#sidebar_title img { opacity: .48; filter: grayscale(1); }
#sidebar_form { color: var(--ink); }
#sidebar_form hr { display: none; }
#sidebar_form form { margin: 0; padding: 0; background: transparent; border: 0; box-shadow: none; }
#sidebar_form label { display: inline-block; margin: 10px 0 3px; color: #62606a; font-size: 12px; font-weight: 600; }
#sidebar_form input[type=text], #sidebar_form select {
  margin: 3px 2px 4px 0; padding: 7px 9px; border: 1px solid #e5e3e8;
  border-radius: 7px; background: #fff; color: #34323a; font: inherit; font-size: 12px;
}
#sidebar_form input[type=text]:focus, #sidebar_form select:focus { outline: 0; border-color: #a99bb7; box-shadow: 0 0 0 3px #a99bb71c; }
#sidebar_form input[type=button], #sidebar_form input[type=submit], #sidebar_form input[type=reset] {
  margin: 4px 3px 4px 0; padding: 8px 12px; border: 0; border-radius: 8px;
  background: var(--violet-deep); color: #fff; font: inherit; font-size: 12px; cursor: pointer;
}
#sidebar_form input[type=reset] { background: #f1eff3; color: #595460; }
#sidebar_form p { margin: 4px 0; }
#nataldata { color: #55525d; }
#nataldata {
  padding: 11px 13px; border: 1px solid #ebe8ef; border-radius: 12px;
  background: #fbfafc; color: #686571;
}
#nataldata p { margin: 0; line-height: 1.8; }
#nataldata strong { color: #40394a; }
#nataldata em { color: var(--violet-deep); font-style: normal; font-weight: 650; }
.chart-output { background: #fff; border-radius: 18px; box-shadow: 0 0 0 1px #eeecf0, 0 12px 32px rgba(38,34,47,.045); }
#main_tabs { width: 100% !important; margin-top: 24px; padding: 0; background: transparent; border: 0; }
#main_tabs > ul {
  display: flex; flex-wrap: wrap; gap: 5px; margin: 0 0 15px; padding: 0 0 9px;
  background: transparent; border: 0; border-bottom: 1px solid var(--line);
}
#main_tabs > ul li { float: none; margin: 0; padding: 0; list-style: none; background: transparent; border: 0; }
#main_tabs > ul li a {
  display: block; padding: 7px 11px; border: 1px solid transparent; border-radius: 7px;
  color: #686571; background: transparent; font-size: 12px;
}
#main_tabs > ul li a:hover { color: var(--violet-deep); background: #f8f7f9; }
#main_tabs > ul li.ui-tabs-active a { color: var(--violet-deep); background: #f1eef4; border-color: #e9e4ed; font-weight: 650; }
#main_tabs .ui-tabs-panel { padding: 15px 0; background: transparent; border: 0; }
#chart-tab, #classic-tab, #firdaria-tab, #profection-tab, #aphesis-fortune-tab, #aphesis-spirit-tab { max-width: 100%; overflow-x: auto; }
/* Keep all table and chart dimensions upstream-controlled. This is color-only styling. */
table { color: var(--ink); border-color: var(--line); background: #fff; }
th { color: #514a5a; background: #f3f1f5; font-weight: 600; }
td, th { border-color: #eae8ed; }
tr:nth-child(even) td { background: #fcfbfd; }
#chart-tab tr:hover td, .list_table tr:hover td { background: #f7f5f8; }
#mapimg { display: none !important; }
img, canvas, svg { /* Preserve original chart dimensions. */ }
@media (max-width: 1120px) {
  #body { display: flex; flex-direction: column; }
  #rightsidebar { position: static !important; width: 100% !important; order: -1; }
  #main_tabs { margin-top: 10px; }
}
@media (max-width: 760px) {
  body { padding: 22px 13px 44px; font-size: 13px; }
  #proxy-header { flex-wrap: nowrap; gap: 6px; margin-top: -22px; margin-right: -13px; margin-left: -13px; padding: 5px 10px; min-height: 46px; }
  .proxy-identity { flex: 0 1 160px; min-width: 0; gap: 6px; }
  .proxy-mark { flex-basis: 27px; width: 27px; height: 27px; font-size: 15px; }
  .proxy-identity-copy h1 { overflow: hidden; max-width: 125px; font-size: 12px; text-overflow: ellipsis; }
  .proxy-identity-copy small { display: none; }
  #proxy-nav { flex: 1 1 auto; justify-content: center; gap: 0; }
  #proxy-nav a { min-height: 29px; padding: 4px 5px; font-size: 11px; }
  #proxy-nav a::after { right: 5px; left: 5px; }
  #topnav { gap: 4px; font-size: 10px; }
  #topnav a.signin { padding: 5px 8px; font-size: 11px; }
  #rightsidebar { padding: 16px; }
  #sidebar_title { margin: -16px -16px 12px; padding: 11px 16px; }
  #main_tabs > ul li a { padding: 6px 8px; }
}

/* Detailed celestial identity, restrained surfaces, and grouped controls. */
#proxy-header { min-height:60px; padding-top:8px; padding-bottom:8px; box-shadow:0 4px 24px #32273d08; }
.proxy-mark { width:38px; height:38px; flex-basis:38px; color:#b49b72; background:#fff; border-color:#dfd5c3; box-shadow:0 2px 8px #8e744c10; }
.proxy-identity-copy h1 { font-family:Georgia,"Noto Serif TC",serif; font-size:18px; letter-spacing:.025em; border:0 !important; padding:0 !important; }
#proxy-nav { gap:7px; }
#proxy-nav a { padding:7px 13px; border-radius:8px; font-weight:500; color:#5c5368; }
#language_tag::before { content:"◎"; margin-right:7px; color:#a38f72; font-size:16px; }
#mobile_link::before { content:"▯"; margin-right:7px; color:#a38f72; font-size:17px; }
#celescal_link::before { content:"☷"; margin-right:7px; color:#a38f72; font-size:16px; }
#support_link::before { content:"?"; margin-right:7px; color:#a38f72; font-size:14px; }
#topnav a.signin { background:#5a476f; box-shadow:0 3px 9px #5a476f20; padding:7px 16px; }
.workspace-intro { max-width:1600px; margin:0 auto 22px; display:flex; align-items:center; justify-content:space-between; gap:20px; }
.workspace-eyebrow { color:#a08d72; font-size:10px; letter-spacing:.19em; font-weight:600; }
.workspace-intro h2 { margin:3px 0 3px; color:#3d324b; font-size:27px; font-weight:600; letter-spacing:.045em; line-height:1.45; }
.workspace-intro h2 span { color:#bda67e; font-size:17px; margin-left:12px; vertical-align:middle; }
.workspace-intro p { margin:0; color:#928997; font-size:12px; }
.workspace-tag { color:#8d8197; border:1px solid #eee9f1; background:#fcfbfd; padding:7px 13px; border-radius:30px; font-size:11px; letter-spacing:.06em; white-space:nowrap; }
.chart-output { border-radius:20px; box-shadow:0 0 0 1px #eae5ee,0 12px 40px #41334e09; }
#nataldata { background:linear-gradient(145deg,#fff,#f8f6fa); border-color:#e7dfec; box-shadow:0 4px 15px #51416309; border-radius:12px; }
#nataldata strong { display:inline-block; color:#51405f; font-size:14px; }
#rightsidebar { padding:20px; border-color:#e7dfec; border-radius:18px; box-shadow:0 12px 36px #4633510e; }
#sidebar_title { margin:-20px -20px 16px; padding:15px 20px; color:#fff; background:#59486b; border-radius:17px 17px 0 0; border:0; font-size:15px; letter-spacing:.04em; }
#sidebar_title::before { content:"✦"; color:#dbc59f; font-size:19px; margin-right:9px; }
#sidebar_title strong { flex:1; }
#sidebar_title img { filter:grayscale(1) brightness(3); opacity:.8; }
.form-section-title { display:flex; align-items:center; gap:9px; margin:16px 0 9px; color:#685773; font-size:12px; font-weight:600; }
.form-section-title:first-child { margin-top:0; }
.form-section-title span { color:#b49b75; font-size:10px; letter-spacing:.07em; }
.form-section-title::after { content:""; height:1px; flex:1; background:#eee9f2; margin-left:4px; }
.designed-field { margin-bottom:9px; }
#sidebar_form .designed-field label { margin:0 0 4px; color:#95899d; font-size:11px; font-weight:500; }
.field-controls { display:flex; align-items:center; flex-wrap:wrap; gap:4px; }
#sidebar_form .field-controls input[type=text], #sidebar_form .field-controls select { margin:0; min-height:34px; padding:6px 8px; background:#fbfafc; border-color:#e9e2ee; border-radius:7px; font-size:12px; }
#sidebar_form input[name=name], #sidebar_form input[name=location] { width:100%; }
#sidebar_form .field-controls input[name=location] { width:calc(100% - 59px); }
#sidebar_form input[name=year] { width:54px; }
#sidebar_form input[name=glon_deg], #sidebar_form input[name=glat_deg], #sidebar_form input[name=glon_min], #sidebar_form input[name=glat_min] { width:48px; }
#sidebar_form select[name=hour] { width:70px; }
#sidebar_form .field-controls center { display:flex; gap:7px; width:100%; margin-top:14px; padding-top:14px; border-top:1px solid #eee9f2; }
#sidebar_form input[type=submit] { flex:1; background:#604a76; padding:10px 14px; font-weight:600; box-shadow:0 4px 12px #604a761a; }
#sidebar_form input[type=reset] { padding:10px 13px; background:#f1edf5; color:#877593; }
#main_tabs > ul { padding:7px; background:#f8f6fa; border:1px solid #ece6f0; border-radius:12px; gap:4px; }
#main_tabs > ul li a { padding:8px 12px; color:#918399; }
#main_tabs > ul li.ui-tabs-active a { background:#fff; border-color:#e6dceb; color:#674d7c; box-shadow:0 2px 7px #58426e0b; }
#main_tabs .ui-tabs-panel { background:#fff; border-radius:12px; box-shadow:0 0 0 1px #eee8f2; padding:12px 0; }
#main_tabs th { background:#f2edf6; color:#7c648e; border-color:#e5dceb; }
#main_tabs td { border-color:#eee7f3; }
#main_tabs table { font-size:12px; }
@media(max-width:760px) {
  #proxy-header { min-height:50px; padding-top:5px; padding-bottom:5px; }
  .proxy-identity-copy h1 { font-size:13px; }
  #proxy-nav { gap:0; }
  #proxy-nav a { padding:4px 5px; }
  #proxy-nav a::before { display:none; }
  .workspace-intro h2 { font-size:23px; }
  .workspace-tag { display:none; }
  #rightsidebar { padding:18px; }
  #sidebar_title { margin:-18px -18px 15px; }
}
@media (max-width: 560px) {
  #proxy-header { flex-wrap: wrap; gap: 4px 8px; }
  .proxy-identity { flex: 1 1 100%; }
  .proxy-identity-copy h1 { max-width: none; font-size: 14px; }
  .proxy-identity-copy small { display: block; }
  #proxy-nav { justify-content: flex-start; }
  .proxy-account { margin-left: auto; }
}

/* Standalone chart form beneath the original chart. */
#body { display:block; }
#body > .chart-output { display:flow-root; }
#rightsidebar { position:static !important; width:100% !important; margin:24px 0 !important; clear:both; order:0; }
#sidebar_form form { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:24px; }
.chart-form-section { min-width:0; padding:4px 20px 6px 0; border-right:1px solid #eee9f2; }
.chart-form-section:nth-of-type(3) { border-right:0; padding-right:0; }
#sidebar_form .form-section-title { margin:0 0 16px; font-size:13px; }
#sidebar_form .designed-field { margin-bottom:13px; }
#sidebar_form .chart-form-actions { grid-column:1/-1; display:flex; justify-content:flex-end; gap:10px; margin:0; padding:16px 0 0; border-top:1px solid #eee9f2; }
#sidebar_form .chart-form-actions input[type=submit] { flex:0 1 180px; }
#sidebar_form .quick-save-button {
  display:inline-flex; align-items:center; justify-content:center; box-sizing:border-box;
  flex:0 1 180px; width:180px; margin:4px 3px 4px 0; padding:10px 14px;
  background:#604a76 !important; color:#fff !important; border:0; border-radius:8px;
  font:inherit; font-size:12px; font-weight:600; line-height:1.7; text-decoration:none;
  box-shadow:0 4px 12px #604a761a; cursor:pointer; white-space:nowrap;
}
#sidebar_form .quick-save-button:hover { background:#503b65 !important; color:#fff !important; }
#sidebar_form .chart-form-actions input[type=submit],
#sidebar_form .chart-form-actions .quick-save-button {
  display:inline-flex; align-items:center; justify-content:center;
  box-sizing:border-box; flex:0 1 180px; width:180px; min-height:40px;
  margin:0; padding:10px 14px; border:0; border-radius:8px;
  background:#604a76 !important; color:#fff !important;
  font:inherit; font-size:12px; font-weight:600; line-height:20px;
  text-decoration:none; box-shadow:0 4px 12px #604a761a;
}
#sidebar_form .quick-save-button .ui-button-text { padding:0; font:inherit; color:inherit; }
#sidebar_form .container:empty { display:none; }

/* Account dropdown shares the site's white, violet and warm gold palette. */
#proxy-header #signin_menu { top:calc(100% + 14px) !important; right:0 !important; left:auto !important; width:330px; max-width:calc(100vw - 26px); margin:0 !important; padding:24px !important; background:#fff !important; border:1px solid #e7dfec !important; border-radius:18px; color:#51465d !important; box-shadow:0 18px 55px #35253f22,0 3px 12px #35253f08; text-align:left; }
.login-heading { padding-bottom:18px; margin-bottom:18px; border-bottom:1px solid #eee8f2; }
.login-emblem { float:right; display:grid; place-items:center; width:40px; height:40px; border-radius:12px; background:#f7f3fa; border:1px solid #eee5f3; color:#b49a73; font-size:23px; }
#signin_menu .login-heading h2 { margin:0 0 4px; font-size:20px; font-weight:650; letter-spacing:.04em; color:#493851; }
#signin_menu .login-heading p { margin:0; font-size:12px; color:#9b8fa3; }
#proxy-header #signin_menu form { margin:0; padding:0; }
#proxy-header #signin_menu form p { margin:0 0 14px; padding:0; }
#proxy-header #signin_menu label { display:block; margin:0 0 6px; color:#81718d; font-size:12px; font-weight:500; }
#proxy-header #signin_menu input[type=text], #proxy-header #signin_menu input[type=password] { box-sizing:border-box; width:100%; height:42px; margin:0; padding:10px 12px; font:inherit; font-size:13px; color:#483c52; background:#fcfbfd; border:1px solid #e5dcea; border-radius:9px; box-shadow:none; }
#proxy-header #signin_menu input:focus { outline:0; border-color:#aa91bb; box-shadow:0 0 0 3px #aa91bb18; }
#proxy-header #signin_menu .remember { display:flex; align-items:center; flex-wrap:wrap; gap:7px; }
#proxy-header #signin_menu .remember label { display:inline; margin:0; color:#93869b; }
#proxy-header #signin_menu input[type=checkbox] { margin:0; accent-color:#604a76; }
#proxy-header #signin_submit { order:3; flex:1 0 100%; width:100%; height:42px; margin:12px 0 0; padding:0 16px; background:#604a76; border:0; border-radius:9px; color:#fff; font:inherit; font-size:13px; font-weight:600; cursor:pointer; box-shadow:0 4px 10px #604a7620; }
#proxy-header #signin_submit:hover { background:#503b65; }
#proxy-header #signin_menu .register { display:flex; justify-content:space-between; gap:12px; margin:17px 0 0; padding-top:14px; border-top:1px solid #eee8f2; }
#proxy-header #signin_menu .register a { margin:0 !important; color:#826a96; font-size:12px; text-shadow:none; }
@media(max-width:1000px) { #sidebar_form form { grid-template-columns:1fr; gap:14px; } .chart-form-section { padding:0 0 12px; border-right:0; border-bottom:1px solid #eee9f2; } .chart-form-section:nth-of-type(3) { border-bottom:0; } }
#proxy-header #topnav a.signin.menu-open { background:#604a76 !important; color:#fff !important; }
#proxy-header #signin_menu #account_registration, #proxy-header #signin_menu #forgot_passwd { color:#826a96 !important; }
#sidebar_title { text-align:left; justify-content:flex-start; }
#sidebar_form > .container { display:none; }

/* Title and content share the same card edges, without negative margins. */
#rightsidebar { padding:0 !important; overflow:hidden; }
#rightsidebar #sidebar_title { box-sizing:border-box; width:100% !important; max-width:none; margin:0 !important; padding:15px 22px; border-radius:0; display:flex; align-items:center; gap:10px; }
#rightsidebar #sidebar_title strong { text-align:left; }
#rightsidebar #sidebar_form { box-sizing:border-box; width:100% !important; margin:0 !important; padding:22px; }
#rightsidebar #sidebar_title #title_icon { display:none !important; }
#rightsidebar #sidebar_title::after { content:""; flex:0 0 8px; width:8px; height:8px; margin:0 4px 4px 12px; border-right:2px solid #e7deef; border-bottom:2px solid #e7deef; transform:rotate(45deg); transition:transform .2s; }
#rightsidebar #sidebar_title[aria-expanded="true"]::after { transform:rotate(225deg); margin-bottom:-4px; }
@media(max-width:760px) { #rightsidebar #sidebar_title { padding:14px 18px; } #rightsidebar #sidebar_form { padding:18px; } }

#body > .chart-output { display:grid; grid-template-columns:minmax(400px,1fr) 500px minmax(220px,1fr); align-items:start; gap:16px; padding:20px; }
.chart-output > .chart-aspects { grid-column:1; grid-row:1; float:none !important; width:400px !important; align-self:center; }
.chart-output > #chart { grid-column:2; grid-row:1; position:static !important; inset:auto !important; float:none !important; width:500px !important; height:500px; margin:0 !important; align-self:center; }
.chart-output > #chart > div { float:none !important; margin:0 !important; }
.chart-output > #chart > div > svg { display:block; width:500px; height:500px; }
.chart-output > .chart-aspects #aspgrid { float:none; margin:0; }
.chart-output > .chart-aspects #aspgrid > svg { display:block; width:400px; height:400px; }
.chart-output > #nataldata { grid-column:3; grid-row:1; justify-self:end; width:220px; margin:0; }
#rightsidebar { margin-bottom:18px !important; }
#body > #main_tabs { margin-top:0; }
@media(max-width:1250px) {
  #body > .chart-output { grid-template-columns:1fr; gap:18px; overflow-x:auto; }
  .chart-output > #nataldata { grid-column:1; grid-row:1; }
  .chart-output > #chart { grid-column:1; grid-row:2; justify-self:center; }
  .chart-output > .chart-aspects { grid-column:1; grid-row:3; }
}

/* Vedic chart page: frameless charts in a grid, dasha table full width. */
.member-page.vedic-page #body {
  display:grid; grid-template-columns:minmax(230px,280px) minmax(0,560px) minmax(250px,320px);
  gap:26px 32px; align-items:start; justify-content:center; padding:4px;
}
.vedic-page #body > #nataldata {
  grid-column:1; grid-row:1; width:auto !important; max-width:280px;
  position:static !important; margin:0 !important; padding:0; overflow:hidden;
  background:#fff; border:1px solid #e8e0ee; border-radius:14px;
  box-shadow:0 6px 22px #51416308;
}
.vedic-page #nataldata .chart-info-row { grid-template-columns:34px minmax(0,1fr); gap:6px; padding:4px 0; }
.vedic-page #body > .vedic-card {
  width:auto !important; float:none !important; margin:0 !important;
  background:transparent; border:0; box-shadow:none; padding:0;
}
.vedic-page #body > .vedic-rashi { grid-column:2 !important; grid-row:1 / 4; }
.vedic-page #body > #vargas_d9 { grid-column:3 !important; grid-row:1; }
.vedic-page #body > #vargas { grid-column:3 !important; grid-row:2; }
.vedic-page #body > .vedic-vargas-select { grid-column:3 !important; grid-row:3; align-self:start; margin-top:6px; width:auto !important; float:none !important; }
.vedic-page .vedic-card table { width:100%; }
.vedic-page .vedic-card table td { border-color:#eee7f3; color:#665572; }
.vedic-page .vedic-card table.noline { border-collapse:collapse; }
.vedic-page .vedic-card table.noline td { border:1px solid #f0eaf4; background:#fff; }
.vedic-page .vedic-card td em { color:#7c5f96; font-style:normal; }
.vedic-page .vedic-card td.wide { background:linear-gradient(150deg,#fbf9fc,#f4eff8); border:1px solid #ece5f1; border-radius:10px; }
.vedic-page .varga-cn { display:block; color:#8a7199; font-size:14px; font-weight:650; letter-spacing:.1em; }
.vedic-page td.wide small { display:block; margin-top:4px; color:#c3b5cf; font-size:9px; letter-spacing:.18em; text-transform:uppercase; }
.vedic-page .vedic-vargas-select select {
  box-sizing:border-box; width:100%; min-height:38px; margin:0; padding:7px 10px;
  border:1px solid #e5dcea; border-radius:8px; background:#fcfbfd; color:#665572;
  font:inherit; font-size:12px;
}
.vedic-page .vedic-vargas-select select:focus { outline:0; border-color:#aa91bb; box-shadow:0 0 0 3px #aa91bb18; }
.vedic-page #body > #vedic_dasa {
  grid-column:1 / -1 !important; grid-row:4; width:100%;
  border-collapse:separate; border-spacing:0; background:#fff;
  border:1px solid #ece5f1; border-radius:12px; overflow:hidden;
  box-shadow:0 8px 26px #41334e0a;
}
.vedic-page #vedic_dasa th {
  background:#f6f1f9; color:#7c648e; border:0; border-bottom:1px solid #ece5f1;
  padding:9px 10px; font-size:11px; letter-spacing:.05em;
}
.vedic-page #vedic_dasa td { border:0; border-bottom:1px solid #f3edf7; padding:6px 10px; font-size:12px; line-height:1.5; }
.vedic-page #vedic_dasa tr:last-child td { border-bottom:0; }
.vedic-page #vedic_dasa tbody tr:nth-child(even) td { background:#fbfafc; }
.vedic-page #vedic_dasa tbody tr:hover td { background:#f6f1f9; }
@media(max-width:1150px) {
  .member-page.vedic-page #body { grid-template-columns:1fr; justify-items:center; }
  .vedic-page #body > #nataldata { grid-row:1; }
  .vedic-page #body > .vedic-rashi { grid-column:1 !important; grid-row:auto; width:100%; }
  .vedic-page #body > #vargas_d9 { grid-column:1 !important; grid-row:auto; }
  .vedic-page #body > #vargas { grid-column:1 !important; grid-row:auto; }
  .vedic-page #body > .vedic-vargas-select { grid-column:1 !important; grid-row:auto; margin-top:0; }
  .vedic-page #body > #vedic_dasa { grid-column:1 !important; grid-row:auto; }
}

/* Bazi page: info card + chart centered, button pinned top-right. */
.member-page.bazi-view-page #body {
  display:grid; grid-template-columns:minmax(230px,280px) minmax(0,560px);
  gap:26px 32px; align-items:start; justify-content:center; padding:4px;
  position:relative;
}
.bazi-view-page #body > #nataldata {
  grid-column:1 !important; grid-row:1; width:auto !important; max-width:280px;
  position:static !important; margin:0 !important; padding:0; overflow:hidden;
  background:#fff; border:1px solid #e8e0ee; border-radius:14px;
  box-shadow:0 6px 22px #51416308;
}
.bazi-view-page #nataldata .chart-info-row { grid-template-columns:34px minmax(0,1fr); gap:6px; padding:4px 0; }
.bazi-view-page #body > .bazi-main { grid-column:2 !important; grid-row:1; width:auto !important; float:none !important; margin:0 !important; }
.bazi-view-page #body > #toolbox { position:absolute; top:2px; right:2px; float:none !important; clear:none !important; margin:0 !important; }
.bazi-view-page #body > .bazi-decades { grid-column:1 / -1 !important; grid-row:2; width:auto !important; float:none !important; margin:0 !important; }
.bazi-view-page #body > .bazi-years { grid-column:1 / -1 !important; grid-row:3; width:auto !important; float:none !important; margin:0 !important; }
.bazi-view-page #body > div:last-child { display:none; }
.bazi-view-page #body > div { z-index:auto !important; }
.bazi-view-page .bazi_table, .bazi-view-page .decade_table, .bazi-view-page .year_table {
  width:100%; background:#fff; border-collapse:separate; border-spacing:0;
  border:1px solid #ece5f1; border-radius:12px; overflow:hidden;
  box-shadow:0 8px 26px #41334e0a; text-align:center;
}
.bazi-view-page .bazi_table td, .bazi-view-page .decade_table td, .bazi-view-page .year_table td {
  border:0 !important; border-bottom:1px solid #f3edf7; border-right:1px solid #f7f3fa;
  background:transparent; color:#665572;
}
.bazi-view-page .bazi_table td:last-child, .bazi-view-page .decade_table td:last-child, .bazi-view-page .year_table td:last-child { border-right:0; }
.bazi-view-page .bazi_table tr:last-child td, .bazi-view-page .decade_table tr:last-child td, .bazi-view-page .year_table tr:last-child td { border-bottom:0; }
.bazi-view-page table td.blue { background:#f6f1f9; color:#7c648e; font-weight:600; }
.bazi-view-page table td.red { color:#b5484d; font-weight:600; }
/* Chart of the four pillars: label header, stems-and-branches emphasized. */
.bazi-view-page .bazi_table { font-size:inherit; }
.bazi-view-page .bazi_table td { padding:7px 4px; font-size:12.5px; }
.bazi-view-page .bazi_table tr:first-child td { background:#f6f1f9; color:#7c648e; font-weight:650; font-size:13px; letter-spacing:.08em; }
.bazi-view-page .bazi_table tr:nth-child(2) td { color:#8a7ba0; }
.bazi-view-page .bazi_table tr:nth-child(3) td { background:#fff; color:#b5484d; font-size:16px; font-weight:650; }
.bazi-view-page .bazi_table tr:nth-child(4) td, .bazi-view-page .bazi_table tr:nth-child(5) td { background:#fbfafc; color:#8d7f9a; font-size:11px; }
.bazi-view-page .bazi_table tr:nth-child(6) td { background:#f7faf7; color:#4e7d5b; }
.bazi-view-page .decade_table td { padding:6px 4px; font-size:12px; }
.bazi-view-page .decade_table tr:nth-child(2) td { color:#8a7ba0; }
.bazi-view-page .year_table td { padding:4px 3px; font-size:11px; }
/* "Produce simplified chart" dialog, styled like the member dialogs. */
.bazi-view-page .ui-dialog { max-width:calc(100vw - 24px); height:auto !important; min-height:0 !important; padding:0; border:1px solid #e5dceb; border-radius:16px; background:#fff; box-shadow:0 20px 60px #35253f25; }
.bazi-view-page .ui-dialog-titlebar { display:flex; align-items:center; min-height:52px; padding:14px 54px 14px 18px; background:#f2edf6; border:0; border-radius:15px 15px 0 0; color:#7c648e; }
.bazi-view-page .ui-dialog-title { float:none; width:100%; font-size:13px; font-weight:600; }
.bazi-view-page .ui-dialog-titlebar-close {
  position:absolute; right:14px; top:50%; transform:translateY(-50%);
  width:30px; height:30px; min-height:0; padding:0; margin:0;
  border:1px solid #e2d7e9; border-radius:50%; background:#fff;
  box-shadow:none; cursor:pointer; transition:all .15s ease;
}
.bazi-view-page .ui-dialog-titlebar-close .ui-icon, .bazi-view-page .ui-dialog-titlebar-close .ui-button-text { display:none; }
.bazi-view-page .ui-dialog-titlebar-close::before, .bazi-view-page .ui-dialog-titlebar-close::after { content:""; position:absolute; top:calc(50% - 1px); left:calc(50% - 6px); width:12px; height:2px; background:#927ca3; border-radius:2px; transform:rotate(45deg); transition:background .15s ease; }
.bazi-view-page .ui-dialog-titlebar-close::after { transform:rotate(-45deg); }
.bazi-view-page .ui-dialog-titlebar-close:hover { background:#604a76; border-color:#604a76; }
.bazi-view-page .ui-dialog-titlebar-close:hover::before, .bazi-view-page .ui-dialog-titlebar-close:hover::after { background:#fff; }
.bazi-view-page .ui-dialog-buttonpane { margin:0; padding:12px 18px; border-top:1px solid #eee7f3; background:#fff; }
.bazi-view-page .ui-dialog-buttonpane button { min-height:36px; padding:6px 18px; border:0; border-radius:8px; background:#604a76; color:#fff; font-size:13px; font-weight:600; }
.bazi-view-page #bazi_text { height:auto !important; max-height:65vh; box-sizing:border-box; overflow:auto; padding:18px 22px; color:#5d4f68; font-size:13px; line-height:1.7; }
.bazi-view-page #bazi_text .bazi-tt-name { font-size:15px; font-weight:700; color:#5b476b; }
.bazi-view-page #bazi_text .bazi-tt-meta { margin-top:2px; padding-bottom:10px; border-bottom:1px solid #f0eaf4; color:#918399; font-size:12px; }
.bazi-view-page #bazi_text .bazi-tt-pillars { display:flex; gap:10px; justify-content:center; margin:14px 0; }
.bazi-view-page #bazi_text .bazi-pillar {
  min-width:52px; padding:8px 6px; text-align:center;
  border:1px solid #ece5f1; border-radius:10px; background:#fbf9fc;
  display:flex; flex-direction:column;
}
.bazi-view-page #bazi_text .bazi-pillar .gan { font-size:19px; font-weight:650; color:#b5484d; }
.bazi-view-page #bazi_text .bazi-pillar .zhi { margin-top:6px; padding-top:4px; border-top:1px dashed #ece5f1; font-size:19px; font-weight:650; color:#7c648e; }
.bazi-view-page #bazi_text .bazi-tt-luck { display:flex; flex-wrap:wrap; gap:6px; margin:10px 0; }
.bazi-view-page #bazi_text .bazi-luck { padding:3px 9px; border-radius:7px; background:#f6f1f9; color:#7c648e; font-size:11px; }
.bazi-view-page #bazi_text .bazi-luck b { margin-right:3px; color:#604a76; }
.bazi-view-page #bazi_text .bazi-tt-note { margin-top:8px; color:#a396ac; font-size:11.5px; }
.bazi-view-page #bazi_text .bazi-tt-line { margin-top:6px; }
@media(max-width:1150px) {
  .member-page.bazi-view-page #body { grid-template-columns:1fr; justify-items:center; }
  .bazi-view-page #body > #nataldata { grid-row:1; }
  .bazi-view-page #body > .bazi-main { grid-column:1 !important; grid-row:auto; width:100%; }
  .bazi-view-page #body > .bazi-decades { grid-column:1 !important; grid-row:auto; width:100%; }
  .bazi-view-page #body > .bazi-years { grid-column:1 !important; grid-row:auto; width:100%; }
}

/* Synastry/composite pages: shared finder card, autocomplete menu, info card. */
.synastry-page .synastry-finder, .composite-page .synastry-finder {
  box-sizing:border-box; max-width:none; margin:0 auto 20px !important; padding:0;
  text-align:center; background:transparent; border:0; box-shadow:none;
}
.synastry-page .synastry-finder label, .composite-page .synastry-finder label { margin-right:12px; color:#5b476b; font-weight:600; font-size:14px; }
.synastry-page #qstr, .composite-page #qstr {
  box-sizing:border-box; min-height:40px; width:340px; max-width:62%; padding:8px 14px;
  border:1px solid #e5dcea; border-radius:9px; background:#fcfbfd; color:#5d4f68;
  font:inherit; font-size:13px;
}
.synastry-page #qstr:focus, .composite-page #qstr:focus { outline:0; border-color:#aa91bb; box-shadow:0 0 0 3px #aa91bb18; }
.synastry-page #body > hr, .composite-page #body > hr { display:none; }
.synastry-page .ui-autocomplete, .composite-page .ui-autocomplete {
  max-width:340px; padding:6px; border:1px solid #e5dceb; border-radius:12px;
  background:#fff; box-shadow:0 14px 40px #35253f1f;
}
.synastry-page .ui-autocomplete .ui-autocomplete-category, .composite-page .ui-autocomplete .ui-autocomplete-category { padding:8px 10px 4px; color:#a396ac; font-size:11px; letter-spacing:.08em; background:transparent; border:0; font-weight:600; }
.synastry-page .ui-autocomplete .ui-menu-item, .composite-page .ui-autocomplete .ui-menu-item { border:0; background:transparent; }
.synastry-page .ui-autocomplete .ui-menu-item a, .composite-page .ui-autocomplete .ui-menu-item a { display:block; padding:8px 10px; border:0; border-radius:8px; color:#5d4f68; font-size:13px; background:transparent; }
.synastry-page .ui-autocomplete .ui-menu-item a:hover, .composite-page .ui-autocomplete .ui-menu-item a:hover,
.synastry-page .ui-autocomplete .ui-menu-item a.ui-state-focus, .composite-page .ui-autocomplete .ui-menu-item a.ui-state-focus,
.synastry-page .ui-autocomplete .ui-menu-item a.ui-state-active, .composite-page .ui-autocomplete .ui-menu-item a.ui-state-active { border:0; background:#f2edf6; color:#5b476b; font-weight:600; }
.synastry-page .finder-heading, .composite-page .finder-heading { justify-content:center; }
.synastry-page #output > div#body { height:auto !important; }
.synastry-page #output > div#body > div:first-child {
  display:grid; grid-template-columns:minmax(220px,240px) minmax(0,550px) auto;
  gap:26px 24px; justify-content:flex-start; align-items:center; margin-top:28px;
}
.synastry-page #output > div#body > div:first-child > div:first-child {
  float:none !important; display:contents;
}
.synastry-page #output #nataldata {
  grid-column:1; grid-row:1; align-self:center; justify-self:start; width:100% !important; max-width:none !important;
  float:none !important; margin:0 !important; padding:0; overflow:hidden;
  background:#fff; border:1px solid #e8e0ee; border-radius:14px; box-shadow:0 6px 22px #51416308;
}
.synastry-page #output #nataldata table, .composite-page #output #nataldata table { width:100%; margin:0; border-collapse:collapse; font-size:12.5px; }
.synastry-page #output #nataldata td, .composite-page #output #nataldata td { padding:7px 14px; border-bottom:1px solid #f3edf7; color:#5d4f68; }
.synastry-page #output #nataldata tr:first-child td, .composite-page #output #nataldata tr:first-child td { background:#f6f1f9; color:#5b476b; font-weight:650; font-size:13px; }
.synastry-page #output #nataldata tr:first-child td a, .composite-page #output #nataldata tr:first-child td a { color:#7c5f96; text-decoration:none; }
.synastry-page #output #nataldata td[colspan], .composite-page #output #nataldata td[colspan] { background:#faf8fc; color:#8a7ba0; text-align:center; font-size:11.5px; letter-spacing:.05em; }
.synastry-page #output #nataldata tr:last-child td, .composite-page #output #nataldata tr:last-child td { border-bottom:0; background:transparent; }
.synastry-page #output #nataldata td .icon, .composite-page #output #nataldata td .icon { vertical-align:middle; margin-right:2px; }
.synastry-page #output #swap { min-height:34px; padding:5px 18px; font-size:12px; }
/* 比较盘信息卡：样式与本命盘 chart-info 一致 */
.synastry-page #output #nataldata .chart-info-heading strong a { color:#7c5f96; font-weight:650; text-decoration:none; }
.synastry-page #output #nataldata .chart-info-heading { padding:12px 14px; }
.synastry-page #output #nataldata .chart-info-content { padding:5px 14px 10px; }
.synastry-page #output #nataldata .chart-info-actions { padding:0 14px 14px; text-align:center; }
.synastry-page #output #aspgrid {
  grid-column:3; grid-row:1; align-self:center; box-sizing:border-box; width:450px !important;
  float:none !important; padding:0; margin:0 !important;
  background:transparent; border:0; box-shadow:none;
}
.synastry-page #output #bichart { grid-column:2; grid-row:1; float:none !important; width:550px !important; max-width:100%; }
.synastry-page #output #bichart svg { max-width:100%; height:auto; }
@media(max-width:1150px) {
  .synastry-page #output > div#body > div:first-child { grid-template-columns:1fr; justify-items:center; }
  .synastry-page #output #nataldata { grid-column:1; grid-row:1; width:min(100%,340px); }
  .synastry-page #output #bichart { grid-column:1; grid-row:2; margin:0 auto; }
  .synastry-page #output #aspgrid { grid-column:1; grid-row:3; }
}

/* Composite page: info top-left, aspect grid below it, chart centered on the page.
   The output wrapper reuses the .chart-output class, so override the shared grid. */
.composite-page #output > div#body { height:auto !important; }
.composite-page #output .chart-output {
  display:block !important; position:relative; padding:24px !important; margin-top:28px;
}
.composite-page #output .chart-output > div:first-child {
  float:none !important; display:flex; flex-direction:column; gap:26px; width:400px;
}
.composite-page #output .chart-output > div:last-child { display:none; }
.composite-page #output #nataldata {
  width:240px; max-width:none !important;
  float:none !important; margin:0 !important; padding:0; overflow:hidden;
  background:#fff; border:1px solid #e8e0ee; border-radius:14px; box-shadow:0 6px 22px #51416308;
}
.composite-page #output #nataldata .chart-info-heading strong a { color:#7c5f96; font-weight:650; text-decoration:none; }
.composite-page #output #nataldata .chart-info-heading { padding:12px 14px; }
.composite-page #output #nataldata .chart-info-content { padding:5px 14px 10px; }
.composite-page #output #nataldata .chart-info-actions { padding:0 14px 14px; text-align:center; }
.composite-page #output #aspgrid {
  box-sizing:border-box; width:400px !important;
  float:none !important; clear:none !important; padding:0; margin:0 !important;
  background:transparent; border:0; box-shadow:none;
}
.composite-page #output .chart-output > #chart {
  position:absolute !important; left:50% !important; top:50% !important;
  right:auto !important; bottom:auto !important;
  transform:translate(-50%,-50%); grid-area:auto !important;
  float:none !important; width:auto !important; height:auto !important; margin:0 !important;
}
.composite-page #output .chart-output > #chart > div {
  float:none !important; position:static !important; width:550px !important; height:500px !important; margin:0 !important;
}
.composite-page #output .chart-output > #chart > div > svg { display:block; width:100% !important; height:100% !important; }
@media(max-width:1499px) {
  .composite-page #output .chart-output > div:first-child { width:100%; align-items:center; }
  .composite-page #output #nataldata { width:min(100%,340px); }
  .composite-page #output .chart-output > #chart { position:static !important; left:auto !important; top:auto !important; transform:none; margin:26px auto 0 !important; }
  .composite-page #output #aspgrid { width:400px; }
}

/* Transit tools under a saved chart: same card look as the account forms. */
.transit-page.user-form-page #body { display:block; width:100%; max-width:none; margin:0; }
.transit-page .user-card { max-width:680px; margin:0 auto 24px; }
.prediction-page .user-card { max-width:none; }
.prediction-page .transit-formbar select, .prediction-page .transit-formbar input[type=text] { margin:0; }
/* All prediction form controls share one height, font and baseline. */
.prediction-page .transit-formbar select,
.prediction-page .transit-formbar input[type=text],
.prediction-page .transit-formbar input[type=button],
.prediction-page .transit-formbar button {
  box-sizing:border-box; height:42px; min-height:42px; margin:0 !important;
  font:inherit; font-size:14px; vertical-align:middle;
}
.transit-page .user-card center { text-align:left; }
.transit-page .user-card select {
  box-sizing:border-box; min-height:42px; margin:0 4px 8px 0; padding:8px 10px;
  border:1px solid #e5dcea; border-radius:9px; background:#fcfbfd; color:#665572;
  font:inherit; font-size:14px;
}
.transit-page .user-card select:focus { outline:0; border-color:#aa91bb; box-shadow:0 0 0 3px #aa91bb18; }
.transit-page.user-form-page .user-card input[type=text] { width:auto; min-width:64px; text-align:center; }
.transit-page .user-card input[type=checkbox] { accent-color:#604a76; vertical-align:-2px; }
.transit-page .user-card input[type=button] {
  min-height:42px; padding:9px 24px; border:0; border-radius:9px;
  background:#604a76; color:#fff; font:inherit; font-size:13px; font-weight:600;
  cursor:pointer; box-shadow:0 4px 12px #604a761a;
}
.transit-page .user-card input[type=button]:hover { background:#503b65; }
.prediction-page .transit-formbar { margin:0 !important; }
.prediction-page .transit-formbar center {
  display:flex; flex-wrap:wrap; align-items:center; gap:6px 8px;
}
.prediction-page .transit-formbar label { color:#9b8fa3; font-size:11px; letter-spacing:.06em; }
.prediction-page .transit-formbar input[type=text] { box-sizing:border-box; height:42px; min-height:42px; margin:0; text-align:center; }
.prediction-page .transit-formbar button {
  box-sizing:border-box; width:42px; min-height:42px; margin:0; padding:0;
  border:0; border-radius:9px; background:#604a76; color:#fff;
  font:inherit; font-size:16px; font-weight:600; line-height:1; text-align:center; cursor:pointer;
}
.prediction-page .transit-formbar button:hover { background:#503b65; }
.prediction-page .transit-formbar input[type=button] { margin:0; }
.prediction-page #body > hr, .events-page #body > hr { margin:22px 0; border:0; border-top:1px solid #eee9f2; }
.events-page .user-card table.select_form { min-width:380px; }
.prediction-page #body > .output > #body { height:auto !important; }
.prediction-page #body > .output > #body > div {
  display:grid; grid-template-columns:240px minmax(0,550px) auto;
  gap:26px 24px; justify-content:flex-start; align-items:center; margin-top:28px;
}
.prediction-page #body > .output > #body > div > div:first-child { float:none !important; display:contents; }
.prediction-page .output #nataldata {
  grid-column:1; grid-row:1; align-self:center; justify-self:start; width:100% !important; max-width:none !important;
  float:none !important; margin:0 !important; padding:0; overflow:hidden;
  background:#fff; border:1px solid #e8e0ee; border-radius:14px; box-shadow:0 6px 22px #51416308;
}
.prediction-page .output #nataldata p { margin:0; color:#5d4f68; font-size:12.5px; line-height:1.7; }
.prediction-page .output #nataldata p strong { color:#5b476b; }
.prediction-page .output #nataldata p img.icon { vertical-align:middle; margin-right:2px; }
.prediction-page .output #nataldata hr { display:none; margin:8px 0; border:0; border-top:1px solid #f3edf7; }
.prediction-page .output #nataldata #tr_time { color:#7c5f96; font-weight:600; }
.prediction-page .output #nataldata #offset_deg, .prediction-page .output #nataldata #offset_min { color:#7c5f96; font-weight:600; }
.prediction-page .output #aspgrid {
  grid-column:3; grid-row:1; align-self:center; box-sizing:border-box; width:400px !important;
  float:none !important; clear:none !important; padding:0; margin:0 !important;
}
.prediction-page .output #bichart {
  grid-column:2; grid-row:1; align-self:center;
  float:none !important; position:static !important; width:550px !important; max-width:100%; margin:0 !important;
}
.prediction-page .output #bichart svg { max-width:100%; height:auto; }
/* 次限盘等单盘推运结果：信息卡左上、相位表左下、星图居中 */
.prediction-page.prog-single #body > .output > #body {
  display:grid; grid-template-columns:minmax(240px,450px) minmax(0,500px);
  grid-template-rows:auto 1fr;
  gap:20px 24px; justify-content:flex-start; align-items:start; margin-top:28px; padding:24px;
}
.prediction-page.prog-single #body > .output > #body > div:not([id]) { display:contents; margin-top:0; }
.prediction-page.prog-single #body .output #nataldata {
  grid-column:1 !important; grid-row:1 !important; align-self:start; justify-self:start; width:240px !important;
}
.prediction-page.prog-single #body .output #chart {
  display:block; grid-column:2 !important; grid-row:1 / span 2 !important; align-self:center; justify-self:center;
  float:none !important; width:500px !important; max-width:none; margin:0 !important;
}
.prediction-page.prog-single #body .output #chart svg { max-width:100%; height:auto; }
.prediction-page.prog-single #body .output #aspgrid {
  display:block; grid-column:1 !important; grid-row:2 !important; align-self:start; width:450px !important;
}
.prediction-page.prog-single #body .output .list_table { display:none !important; }
.prediction-page.prog-single #body .output #main_tabs { display:none !important; }
/* 次限对本命盘/三限对本命盘：相位表宽度效仿比较盘 */
.prediction-page.prog-compare .output #aspgrid { width:450px !important; }
@media(max-width:1150px) {
  .prediction-page #body > .output > #body > div { grid-template-columns:1fr; justify-items:center; }
  .prediction-page .output #nataldata { grid-column:1; grid-row:1; width:min(100%,340px); }
  .prediction-page .output #bichart { grid-column:1; grid-row:2; justify-self:center; }
  .prediction-page .output #aspgrid { grid-column:1; grid-row:3; }
  .prediction-page.prog-single #body .output #chart { grid-column:1 !important; grid-row:3 !important; justify-self:center; max-width:100%; }
  .prediction-page.prog-single #body .output #nataldata { grid-column:1 !important; grid-row:1 !important; width:min(100%,340px) !important; }
  .prediction-page.prog-single #body .output #aspgrid { grid-column:1 !important; grid-row:2 !important; max-width:100%; }
  .prediction-page.prog-single #body > .output > #body { grid-template-columns:1fr; justify-items:center; padding:16px; }
}
.events-page #body > center { display:flow-root; }
/* Saved chart library */
.natal-list-page #body { display:block; }
.natal-list-page .list-heading-row { display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:16px; margin:24px 0 20px; }
.natal-list-page .list-heading-row .member-page-heading { margin:0; }
.natal-list-page .list-heading-row .list-search { flex:0 1 390px; }
.natal-list-page .list-heading-row input[type=text] { box-sizing:border-box; height:40px; padding:8px 12px; border:1px solid #e7dfee; border-radius:9px; background:#fcfafd; color:#665373; font-size:13px; }
.natal-list-page .list-heading-row #search { flex:0 0 auto; height:40px; margin:0; padding:8px 18px; border:0; border-radius:9px; background:#604a76; color:#fff; font-size:13px; font-weight:600; cursor:pointer; }
.natal-list-page .list-heading-row #qstr { flex:1 1 0; width:0; }
.natal-list-page #body .list-toolbar { display:grid; grid-template-columns:minmax(240px,1fr) auto; gap:18px; height:auto; padding:20px 22px; margin-bottom:20px; border:1px solid #e8e0ee; border-radius:16px; background:#fff; box-shadow:0 7px 26px #51416306; }
.natal-list-page .list-search { display:flex; align-items:center; gap:9px; min-width:0; }
.natal-list-page #qstr { width:320px; max-width:100%; min-width:0; flex:0 1 320px; }
.natal-list-page .list-pagination { display:flex; gap:6px; align-items:center; }
.natal-list-page .list-pagination .boxtext { margin:0; padding:8px 12px; border:1px solid #e8e0ee; border-radius:8px; color:#79618c; background:#faf8fc; font-size:12px; }
.natal-list-page .list-pagination .boxtext-disabled { color:#b3a9ba; }
.member-page.natal-list-page #header_tools { display:flex; flex-wrap:wrap; align-items:center; gap:12px 20px; grid-column:1; grid-row:1; width:auto; margin:0 !important; padding:0; border:0; border-radius:0; background:transparent; }
.natal-list-page .list-pagination { grid-column:2; grid-row:1; }
.natal-list-page .list-tool-group { display:flex; align-items:center; flex-wrap:wrap; gap:7px; font-size:12px; color:#9a8aa5; }
.natal-list-page .list-tool-group label { font-size:12px; font-weight:500; color:#95859f; }
.natal-list-page .list-tool-group:first-child { margin-right:auto; }
.natal-list-page .folder_tag { border:0; padding:5px 9px; border-radius:6px; background:#f2ecf7; color:#715782; font-weight:600; }
.natal-list-page .list-toolbar input[type=text], .natal-list-page .list-toolbar select { box-sizing:border-box; height:38px; margin:0; padding:7px 10px; border:1px solid #e7dfee; border-radius:8px; background:#fcfafd; color:#665373; font-size:13px; }
.natal-list-page .list-toolbar input[type=button] { height:38px; margin:0; padding:7px 15px; border:1px solid #e7dfee; border-radius:8px; background:#f4eff8; color:#745b87; font-size:13px; font-weight:600; cursor:pointer; }
.natal-list-page .list-toolbar #search { background:#604a76; color:#fff; border-color:#604a76; }
.natal-list-page .list-toolbar :disabled { opacity:.48; cursor:default; }
.natal-list-page .list-toolbar input:focus-visible, .natal-list-page .list-toolbar select:focus-visible { outline:2px solid #cbb9da; outline-offset:2px; }
.natal-list-page #body .list-layout { display:grid; grid-template-columns:170px minmax(0,1fr); align-items:start; gap:20px; }
.natal-list-page #folder_list { float:none; width:auto; padding:15px 10px; border:1px solid #e8e0ee; border-radius:14px; background:#fcfafd; }
.natal-list-page #folder_list h3 { margin:0 10px 12px; font-size:12px; font-weight:600; color:#a494ae; letter-spacing:.08em; }
.natal-list-page #folder_list .folder_item { display:flex; align-items:center; gap:7px; padding:9px 10px; margin:3px 0; border-radius:8px; font-size:13px; }
.natal-list-page #folder_list .folder_item:hover { background:#f2ecf7; }
.natal-list-page #folder_list .is-current { background:#eee6f5; font-weight:600; }
.natal-list-page #folder_list a { color:#796288; text-decoration:none; }
.natal-list-page #folder_list a:hover, .natal-list-page #folder_list a:focus,
.natal-list-page #natal_list a:hover { background:transparent !important; color:#604a76; text-decoration:none; }
.natal-list-page #folder_list hr { height:1px; border:0; margin:12px 8px; background:#eee6f3; }
.natal-list-page #folder_list > div:not(.folder_item) { display:none; }
.natal-list-page .icon { width:18px; height:18px; object-fit:contain; vertical-align:middle; }
.member-page.natal-list-page #natal_list { min-width:0; width:auto; margin:0 !important; padding:0; overflow:auto; border:1px solid #e8e0ee; border-radius:14px; background:#fff; box-shadow:0 7px 26px #51416306; }
.natal-list-page #natal_list table { float:none; width:100%; min-width:830px; table-layout:fixed; margin:0; border:0; border-collapse:collapse; box-shadow:none; font-size:13px; }
.member-page.natal-list-page #natal_list th { padding:13px 8px; background:#f2ecf7; color:#856b97; border:0; border-bottom:1px solid #e7dfee; text-align:left; font-size:12px; font-weight:600; }
.member-page.natal-list-page #natal_list td { padding:13px 8px; border:0; border-bottom:1px solid #f0eaf5; color:#71617e; vertical-align:middle; line-height:1.7; }
.natal-list-page #natal_list tr:last-child td { border-bottom:0; }
.natal-list-page #natal_list th:nth-child(-n+4), .natal-list-page #natal_list td:nth-child(-n+4) { width:36px; text-align:center; padding-inline:4px; }
.member-page.natal-list-page #natal_list th:nth-child(2),
.member-page.natal-list-page #natal_list td:nth-child(2) { width:100px; white-space:nowrap; text-align:left; }
.natal-list-page #natal_list td:nth-child(2) .icon { margin-right:5px; }
.natal-list-page #natal_list td:nth-child(2) .folder_tag { display:inline-block; max-width:70px; padding:3px 6px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; vertical-align:middle; font-size:12px; }
.natal-list-page #natal_list th:nth-child(5) { width:29%; }
.natal-list-page #natal_list th:nth-child(6) { width:158px; }
.natal-list-page #natal_list th:nth-child(7) { width:80px; }
.natal-list-page #natal_list th:nth-child(8) { width:auto; }
.natal-list-page #natal_list td:nth-child(6) { text-align:left; font-size:12px; font-variant-numeric:tabular-nums; white-space:nowrap; }
.natal-list-page #natal_list td:nth-child(5) a { display:block; color:#604a76; font-weight:600; text-decoration:none; overflow-wrap:anywhere; }
.natal-list-page #natal_list tr:nth-child(odd) td { background:#fdfbfe; }
.natal-list-page #natal_list tr.natal_row:hover td { background:#faf6fd; }
.natal-list-page #natal_list tr.is-selected td { background:#f0e7f8; }
.natal-list-page input[type=checkbox] { width:15px; height:15px; accent-color:#79608d; cursor:pointer; }
.natal-list-page #natal_list .meta_tag { display:inline-block; margin:2px 1px; padding:2px 6px; background:#f4eff8; color:#90769f; border:0; border-radius:5px; font-size:11px; white-space:nowrap; cursor:pointer; }
.natal-list-page #natal_list .meta_tag:hover { background:#e9ddf2; color:#604a76; }
@media(max-width:850px) {
  .natal-list-page #body .list-layout { grid-template-columns:1fr; gap:14px; }
  .natal-list-page #folder_list { display:flex; flex-wrap:wrap; gap:4px; padding:10px; }
  .natal-list-page #folder_list h3 { width:100%; margin:3px 8px 6px; }
  .natal-list-page #folder_list hr { display:none; }
  .natal-list-page #folder_list .folder_item { padding:7px 9px; margin:0; }
}
@media(max-width:550px) {
  .natal-list-page .list-heading-row { align-items:stretch; gap:14px; }
  .natal-list-page .list-heading-row .list-search { flex:1 1 100%; }
  .natal-list-page .list-heading-row input[type=text] { font-size:16px; }
  .natal-list-page #body .list-toolbar { grid-template-columns:minmax(0,1fr); padding:15px; gap:13px; }
  .natal-list-page #qstr { width:0; flex:1 1 0; }
  .natal-list-page #search { flex:0 0 auto; }
  .natal-list-page .list-pagination { justify-content:flex-end; grid-column:1; grid-row:2; }
  .natal-list-page .list-tool-group:first-child { width:100%; }
  .natal-list-page #header_tools { gap:12px; }
  .natal-list-page .list-toolbar input[type=text], .natal-list-page .list-toolbar select { font-size:16px; }
}

/* 太阳返照 / 月亮返照：表单效仿主页快速制图，结果效仿本命盘 */
.return-page.user-form-page #body { max-width:none; }
.return-card { max-width:820px; margin:0 auto; }
.return-card > div { margin:0 !important; }
.return-card #main_table { float:none !important; margin:0 !important; }
.return-card .return-form { display:grid; grid-template-columns:minmax(0,1fr); gap:18px; padding-top:24px; }
.return-card .return-fields-row { display:grid; grid-template-columns:minmax(210px,1.15fr) repeat(2,minmax(170px,1fr)); gap:24px; align-items:end; min-width:0; }
.return-card .return-place-row { overflow-x:auto; }
.return-card .return-time-row { grid-template-columns:minmax(0,2.15fr) minmax(170px,1fr); }
.return-card .return-place-row .designed-field[data-return-field=location] { grid-column:auto; }
.return-card .return-place-row .designed-field[data-return-field=location] input[name=location] { width:160px; max-width:160px; flex:1 1 160px; }
.return-card .return-fields-row .designed-field { margin:0; min-width:0; grid-column:auto; }
.return-card .return-fields-row .field-controls { display:flex; align-items:center; flex-wrap:nowrap; gap:5px; min-width:0; }
.return-card .return-fields-row .field-controls input[type=text] { min-width:0; }
.return-card .return-place-row .field-controls #glon_deg,
.return-card .return-place-row .field-controls #glat_deg,
.return-card .return-place-row .field-controls #glon_min,
.return-card .return-place-row .field-controls #glat_min { width:54px; }
.return-card .return-time-row .field-controls input[type=text] { width:130px; }
@media(max-width:600px) {
  .return-card .return-fields-row { grid-template-columns:220px 180px 180px; gap:14px; overflow-x:auto; }
}
.return-card .chart-form-section { min-width:0; padding:0; border:0; }
.return-card .chart-form-section:first-of-type { display:grid; grid-template-columns:140px minmax(0,1fr); align-items:center; gap:18px; padding-bottom:16px; border-bottom:1px solid #eee9f2; }
.return-card .chart-form-section:first-of-type .form-section-title { margin:0; }
.return-card .chart-form-section:first-of-type .designed-field { display:flex; align-items:center; gap:12px; margin:0; }
.return-card .chart-form-section:first-of-type .field-controls input[type=text] { width:130px; }
.return-card .chart-form-section:nth-of-type(2) { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:14px 20px; }
.return-card .chart-form-section:nth-of-type(2) > .form-section-title { grid-column:1/-1; margin:0; }
.return-card .designed-field[data-return-field=location] { grid-column:1/-1; }
.return-card .designed-field[data-return-field=location] .field-controls { display:flex; flex-wrap:nowrap; gap:10px; }
.return-card .designed-field[data-return-field=location] input[name=location] { flex:1; min-width:0; width:auto; }
.return-card .designed-field[data-return-field=location] input[type=button] { flex:0 0 auto; }
.return-page #body > hr { display:none; }
.return-card .chart-form-section:last-of-type { border-right:0; padding-right:0; }
.return-card .form-section-title { margin:0 0 16px; font-size:13px; }
.return-card .designed-field { margin-bottom:13px; }
.return-card .designed-field label { display:block; margin:0 0 4px; color:#95899d; font-size:11px; font-weight:500; }
.return-card .field-controls input[type=text], .return-card .field-controls select {
  box-sizing:border-box; margin:0; min-height:34px; padding:6px 8px; background:#fbfafc;
  border:1px solid #e9e2ee; border-radius:7px; font-size:12px; color:#5d4f68;
}
.return-card .field-controls input[name=location] { width:100%; }
.return-card .field-controls #glon_deg, .return-card .field-controls #glat_deg,
.return-card .field-controls #glon_min, .return-card .field-controls #glat_min { width:74px; }
.return-card .field-controls input[type=button] {
  min-height:34px; padding:6px 12px; border:0; border-radius:7px; background:#efe9f4;
  color:#674d7c; font-size:12px; font-weight:600; cursor:pointer;
}
.return-card .chart-form-actions { grid-column:1/-1; display:flex; justify-content:center; margin:0; padding:16px 0 0; border-top:1px solid #eee9f2; }
.return-card .chart-form-actions input[type=button] {
  flex:0 1 180px; min-height:36px; padding:8px 18px; border:0; border-radius:9px;
  background:#604a76; color:#fff; font-size:13px; font-weight:600; cursor:pointer;
}
.return-card .chart-form-actions input[type=button]:hover { background:#503b65; }
.return-card .chart-form-actions input[type=button]:disabled { background:#c6bbcf; color:#fff; cursor:wait; box-shadow:none; }
.lunar-date-status { min-height:0; color:#9a87a7; font-size:12px; text-align:center; }
.lunar-date-status:empty { display:none; }
/* Shared column guides and consistent control sizing for both return forms. */
.return-page .return-card .return-fields-row .designed-field label { margin-bottom:7px; font-size:12px; line-height:18px; }
.return-page .return-card .return-fields-row .field-controls { height:42px; gap:6px; }
.return-page .return-card .return-fields-row .field-controls input[type=text],
.return-page .return-card .return-fields-row .field-controls select,
.return-page .return-card .return-fields-row .field-controls input[type=button] {
  box-sizing:border-box; height:42px; min-height:42px; max-height:42px;
  margin:0; padding:8px 10px; border-radius:9px; font-size:14px; line-height:20px;
}
.return-page .return-card .return-time-row .field-controls input[type=text],
.return-page .return-card .return-time-row .field-controls select { width:130px; max-width:100%; }
.return-page .return-card .return-place-row .field-controls input[name=location] { width:160px; max-width:160px; flex:1 1 160px; }
.return-page .return-card .return-place-row .field-controls input[type=button] { flex:0 0 auto; padding-inline:12px; }
.return-page .return-card .return-place-row .field-controls #glon_deg,
.return-page .return-card .return-place-row .field-controls #glat_deg,
.return-page .return-card .return-place-row .field-controls #glon_min,
.return-page .return-card .return-place-row .field-controls #glat_min { width:54px; flex:1 1 54px; }
.return-page .return-card .return-place-row .field-controls select { width:58px; flex:0 0 58px; }
.return-page .return-card .return-time-row .field-controls { justify-content:flex-start; gap:8px; }
.return-page .return-card .return-time-row .field-controls input[type=text] { width:100px; flex:0 0 100px; }
.return-page .return-card .return-time-row .field-controls select { width:148px; flex:0 0 148px; }
.return-page .return-card .return-time-row .field-controls button,
.return-page .return-card .return-time-row .field-controls input[type=button] {
  box-sizing:border-box; width:auto; min-width:64px; height:42px !important;
  min-height:42px !important; padding:8px 14px !important; margin:0;
  flex:0 0 auto; white-space:nowrap; writing-mode:horizontal-tb;
  border-radius:9px; font-size:14px; line-height:20px;
}
@media(max-width:600px) {
  .return-card .return-time-row { grid-template-columns:380px 180px; }
}
/* Inline labels share one width so timezone and latitude controls align. */
.return-page .return-card .return-fields-row {
  grid-template-columns:minmax(260px,1.2fr) repeat(2,minmax(210px,1fr));
  gap:18px; overflow-x:auto;
}
.return-page .return-card .return-time-row {
  grid-template-columns:minmax(260px,1.2fr) repeat(2,minmax(210px,1fr));
}
.return-page .return-card .return-time-row .designed-field:first-child { grid-column:1 / 3; }
.return-page .return-card .return-time-row .designed-field:last-child { grid-column:3; }
.return-page .return-card .return-fields-row .designed-field {
  display:flex; align-items:center; gap:10px; min-width:0;
}
.return-page .return-card .return-fields-row .designed-field label {
  flex:0 0 28px; width:28px; margin:0; white-space:nowrap;
}
.return-page .return-card .return-fields-row .field-controls { flex:1 1 auto; min-width:0; }
.return-page .return-card .return-place-row .field-controls input[name=location] {
  width:140px; max-width:140px; flex:1 1 140px;
}
.return-page .return-card .return-place-row .field-controls #glon_deg,
.return-page .return-card .return-place-row .field-controls #glat_deg,
.return-page .return-card .return-place-row .field-controls #glon_min,
.return-page .return-card .return-place-row .field-controls #glat_min { width:48px; flex:1 1 48px; }
.return-page .return-card .return-place-row .field-controls select { width:54px; flex:0 0 54px; }
@media(max-width:600px) {
  .return-page .return-card .return-fields-row { grid-template-columns:260px 210px 210px; gap:14px; }
}
.return-page #body > .output > #body.chart-output {
  display:grid; grid-template-columns:minmax(230px,250px) minmax(0,1fr) minmax(240px,300px);
  grid-template-rows:auto 1fr; align-items:start; gap:16px; padding:20px;
}
/* The inner #body shares its id with the page body, so the upstream
   "#body > :not(...)" rule out-ranks normal selectors here. */
.return-page .output .chart-output > #chart { grid-column:2 !important; grid-row:1 !important; }
.return-page .output .chart-output > #toolbox { grid-column:3 !important; grid-row:1 !important; }
.return-page .output .chart-output > #main_tabs { grid-column:1 / -1 !important; grid-row:2 !important; }
@media(max-width:1000px) {
  .return-card .return-form { grid-template-columns:1fr; gap:14px; }
  .return-card .chart-form-section { padding:0 0 12px; border-right:0; border-bottom:1px solid #eee9f2; }
  .return-card .chart-form-section:last-of-type { border-bottom:0; }
  .return-page #body > .output > #body.chart-output { grid-template-columns:1fr; }
}
@media(max-width:600px) {
  .return-card .chart-form-section:first-of-type { grid-template-columns:1fr; gap:10px; }
  .return-card .chart-form-section:nth-of-type(2) { grid-template-columns:1fr; gap:12px; }
  .return-card .designed-field { margin-bottom:0; }
}
.events-page #body > center { display:flow-root; }
.events-page .events-count {
  display:inline-block; margin:0 0 10px; padding:5px 13px;
  color:#8a7199; background:#f6f1f9; border:1px solid #ece5f1; border-radius:30px;
  font-size:11px; letter-spacing:.05em;
}
.events-page .output > table.list_table {
  width:100%; max-width:1000px; margin:0 auto; border-collapse:separate; border-spacing:0;
  background:#fff; border:1px solid #ece5f1; border-radius:12px; overflow:hidden;
  box-shadow:0 8px 26px #41334e0a;
}
.events-page .list_table th { background:#f6f1f9; color:#7c648e; border:0; border-bottom:1px solid #ece5f1; padding:9px 12px; font-size:11px; letter-spacing:.06em; }
.events-page .list_table td { border:0; border-bottom:1px solid #f3edf7; padding:7px 12px; font-size:12px; line-height:1.55; }
.events-page .list_table tr:last-child td { border-bottom:0; }
.events-page .list_table tbody tr:nth-child(even) td { background:#fbfafc; }
.events-page .list_table tbody tr:hover td { background:#f6f1f9; }

/* Saved natal view page: info card + aspect grid stacked top-left,
   toolbox top-right, and the dignity tabs spanning the full row. */
.natal-view-page #body > .chart-output {
  grid-template-columns:minmax(230px,250px) minmax(0,1fr) minmax(240px,300px);
  grid-template-rows:auto 1fr;
  align-items:start;
}
.natal-view-page .chart-output > .natal-left-col { grid-column:1; grid-row:1; display:flex; flex-direction:column; align-items:flex-start; gap:14px; min-width:0; }
.natal-view-page .natal-left-col > #nataldata { width:100%; max-width:250px; margin:0; }
.natal-view-page .natal-left-col > .chart-aspects { float:none !important; width:100% !important; max-width:400px; }
.natal-view-page .chart-output > #chart { grid-column:2; grid-row:1; justify-self:center; }
.natal-view-page .chart-output > #toolbox {
  grid-column:3; grid-row:1; align-self:start;
  margin:0 !important; max-height:none !important; max-width:none !important; width:100%;
  background:#fff; border:1px solid #e8e0ee; border-radius:14px;
  box-shadow:0 6px 22px #51416308; overflow:hidden;
}
.natal-view-page .chart-output > #main_tabs { grid-column:1 / -1; grid-row:2; }
.natal-view-page #toolbox > ul {
  display:flex; flex-wrap:wrap; gap:4px; margin:0; padding:8px;
  background:#faf8fc; border:0; border-bottom:1px solid #eee8f3; border-radius:0;
}
.natal-view-page #toolbox > ul li { float:none; margin:0; padding:0; list-style:none; background:transparent; border:0; }
.natal-view-page #toolbox > ul li a { display:block; padding:7px 12px; border:1px solid transparent; border-radius:8px; color:#918399; background:transparent; font-size:12px; }
.natal-view-page #toolbox > ul li a:hover { color:#674d7c; background:#fff; }
.natal-view-page #toolbox > ul li.ui-tabs-active a { background:#fff; border-color:#e6dceb; color:#674d7c; font-weight:650; box-shadow:0 2px 7px #58426e0b; }
.natal-view-page #toolbox .ui-tabs-panel { float:none; width:auto !important; padding:10px 12px; background:#fff; border:0; }
.natal-view-page #toolbox table { width:100% !important; margin:0 !important; float:none !important; font-size:12px; border-collapse:separate; border-spacing:0; background:#fff; border:1px solid #ece5f1; border-radius:10px; overflow:hidden; }
.natal-view-page #toolbox th { background:#f6f1f9; color:#8a7199; border:0; border-bottom:1px solid #ece5f1; padding:7px 12px; font-size:11px; font-weight:650; letter-spacing:.14em; text-align:center; }
.natal-view-page #toolbox td { border:0; border-bottom:1px solid #f3edf7; padding:7px 12px; color:#665572; line-height:1.6; }
.natal-view-page #toolbox tr:last-child td { border-bottom:0; }
.natal-view-page #toolbox tbody tr:nth-child(even) td { background:#fbfafc; }
.natal-view-page #toolbox tbody tr:hover td { background:#f6f1f9; }
.natal-view-page #toolbox td em { font-style:normal; color:#7c5f96; font-size:13px; margin-right:1px; }
.natal-view-page #toolbox #notes_content, .natal-view-page #toolbox #comment_input {
  border:1px dashed #d9cbe6 !important; border-radius:9px; background:#fdfcfe;
  padding:9px 11px !important; color:#665572; font-size:12px; line-height:1.6;
  max-height:300px !important; min-height:140px; overflow:auto !important; resize:vertical;
}
.natal-view-page #toolbox #notes_content:focus, .natal-view-page #toolbox #comment_input:focus { outline:none; border-color:#b494cf !important; background:#fff; box-shadow:0 0 0 3px #7c5f9614; }
.natal-view-page #toolbox #comment_input { min-height:64px; margin-top:6px; }
.natal-view-page #toolbox #thread { margin-top:10px; font-size:12px; color:#665572; }
.natal-view-page #toolbox #thread > * { margin:0; padding:8px 2px; border-bottom:1px solid #f3edf7; line-height:1.6; }
.natal-view-page #toolbox #thread > *:last-child { border-bottom:0; }
.natal-view-page #toolbox .ui-button { background:#604a76; color:#fff; border:0; border-radius:8px; padding:6px 14px; font-size:12px; font-weight:600; box-shadow:0 3px 10px #604a7626; }
.natal-view-page #toolbox .ui-button:hover { background:#6f5884; color:#fff; }
/* Trim the info card: lower height and tighter rows on the view page. */
.natal-view-page #nataldata .chart-info-heading { gap:8px; padding:9px 11px; }
.natal-view-page #nataldata .chart-info-emblem { flex:0 0 26px; height:26px; font-size:15px; border-radius:8px; }
.natal-view-page #nataldata .chart-info-heading strong { font-size:14px; }
.natal-view-page #nataldata .chart-info-content { padding:0 11px 4px; }
.natal-view-page #nataldata .chart-info-row { grid-template-columns:34px minmax(0,1fr); gap:7px; padding:3px 0; line-height:1.4; }
.natal-view-page #nataldata .chart-info-label { font-size:10.5px; }
.natal-view-page #nataldata .chart-info-value { font-size:12.5px; }
@media(max-width:1250px) {
  .natal-view-page #body > .chart-output { grid-template-columns:1fr; grid-template-rows:none; overflow-x:auto; }
  .natal-view-page .chart-output > .natal-left-col { grid-column:1; grid-row:1; }
  .natal-view-page .chart-output > #chart { grid-column:1; grid-row:2; }
  .natal-view-page .chart-output > #toolbox { grid-column:1; grid-row:3; }
  .natal-view-page .chart-output > #main_tabs { grid-column:1; grid-row:4; }
}

/* Compact chart details, using the same accents as navigation and forms. */
.chart-output > #nataldata { width:240px; max-width:100%; padding:0; overflow:hidden; background:#fff; border:1px solid #e8e0ee; border-radius:14px; box-shadow:0 6px 22px #51416308; font-family:"Segoe UI","Noto Sans TC",sans-serif; }
.chart-info-heading { display:flex; align-items:center; gap:10px; padding:16px; background:#faf8fc; border-bottom:1px solid #eee8f3; }
#nataldata .chart-info-heading strong { min-width:0; font-size:14px; line-height:1.45; font-weight:650; color:#51405f; overflow-wrap:anywhere; }
.chart-info-emblem { display:grid; place-items:center; flex:0 0 29px; height:29px; color:#b49a73; background:#fff; border:1px solid #e9e1ed; border-radius:9px; font-size:18px; }
.chart-info-content { padding:6px 16px 10px; }
.chart-info-row { display:grid; grid-template-columns:42px minmax(0,1fr); gap:8px; padding:9px 0; align-items:baseline; border-bottom:1px solid #f1edf5; line-height:1.6; }
.chart-info-row:last-child { border-bottom:0; }
.chart-info-label { color:#a094ab; font-size:10px; letter-spacing:.04em; }
.chart-info-section { margin:12px 0 3px; padding:10px 0 6px; border-top:1px solid #e8e0ee; color:#735b85; font-size:12px; font-weight:600; }
.return-page #nataldata .chart-info-row { grid-template-columns:54px minmax(0,1fr); }
.chart-info-invalid .chart-info-value { color:#a16f76; font-size:12px; }
.chart-info-value { color:#665572; font-size:12px; overflow-wrap:anywhere; font-variant-numeric:tabular-nums; }
#nataldata .chart-info-value em { display:inline-block; padding:0 7px; background:#f4eff8; border-radius:5px; color:#725a87; }

/* The same page adapts to phones, without the upstream mobile site. */
@media(max-width:760px) {
  html { -webkit-text-size-adjust:100%; }
  body { width:100%; padding:18px 12px 32px; }
  #container, #body { width:100%; min-width:0; margin:0; }
  #proxy-header { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:6px 12px; margin:-18px -12px 18px; padding:10px 14px 6px; min-height:0; }
  .proxy-identity { grid-column:1; grid-row:1; min-width:0; gap:8px; }
  .proxy-mark { width:32px; height:32px; flex-basis:32px; }
  .proxy-mark svg { width:28px; height:28px; }
  .proxy-identity-copy h1 { max-width:none; font-size:15px; white-space:normal; }
  .proxy-identity-copy small { display:block; font-size:9px; letter-spacing:.02em; }
  .proxy-account { grid-column:2; grid-row:1; margin:0; }
  #topnav { font-size:0; gap:0; }
  #proxy-header #topnav a.signin { min-height:38px; display:inline-flex; align-items:center; padding:8px 13px; font-size:12px; }
  #proxy-nav { grid-column:1/-1; grid-row:2; justify-content:flex-start; gap:6px; border-top:1px solid #f0ebf4; padding-top:4px; }
  #proxy-nav a { min-height:38px; padding:7px 12px; font-size:12px; }
  #proxy-header #signin_menu { position:fixed; top:68px !important; right:12px !important; width:330px; max-height:calc(100dvh - 84px); overflow-y:auto; }
  #body > .chart-output { grid-template-columns:minmax(0,1fr); padding:14px; gap:20px; overflow-x:auto; border-radius:16px; }
  .chart-output > #nataldata { width:100%; grid-row:1; justify-self:stretch; }
  .chart-info-heading { padding:12px 14px; }
  .chart-info-content { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); column-gap:14px; padding:4px 14px 10px; }
  .chart-info-row { grid-template-columns:34px minmax(0,1fr); gap:5px; padding:7px 0; }
  .chart-info-row:last-child { border-bottom:1px solid #f1edf5; }
  /* Chart and aspect grid keep their original 500px / 400px size on phones too. */
  .chart-output > #chart { width:500px !important; height:500px !important; grid-row:2; justify-self:safe center; }
  .chart-output > #chart > div { width:500px !important; height:500px !important; }
  .chart-output > #chart > div > svg { width:500px; height:500px; }
  .chart-output > .chart-aspects { width:400px !important; grid-row:3; justify-self:safe center; }
  .chart-output > .chart-aspects #aspgrid { width:400px !important; }
  .chart-output > .chart-aspects #aspgrid > svg { width:400px; height:400px; }
  #rightsidebar { margin:18px 0 !important; border-radius:16px; }
  #rightsidebar #sidebar_form { padding:16px; }
  #sidebar_form form { grid-template-columns:minmax(0,1fr); gap:16px; }
  .field-controls { gap:6px; }
  #sidebar_form .field-controls input[type=text], #sidebar_form .field-controls select { min-height:42px; font-size:16px; max-width:100%; }
  #sidebar_form .field-controls input[name=location] { width:calc(100% - 68px); }
  #sidebar_form input[type=button], #sidebar_form input[type=submit], #sidebar_form input[type=reset] { min-height:44px; font-size:13px; }
  #sidebar_form .chart-form-actions input[type=submit] { flex:1; }
  #main_tabs > ul { flex-wrap:nowrap; overflow-x:auto; white-space:nowrap; gap:4px; padding:6px; scrollbar-width:thin; }
  #main_tabs > ul li { flex:0 0 auto; }
  #main_tabs > ul li a { min-height:42px; display:flex; align-items:center; padding:8px 12px; }
  #main_tabs .ui-tabs-panel { width:100%; overflow-x:auto; -webkit-overflow-scrolling:touch; padding:8px; }
  #main_tabs .list_table { float:none !important; width:100% !important; margin:0 0 14px; overflow-x:auto; }
  #main_tabs table { min-width:680px; margin:0; font-size:12px; }
  #main_tabs td, #main_tabs th { padding:7px 8px; white-space:nowrap; }
}
@media(max-width:360px) {
  .proxy-identity-copy h1 { font-size:13px; }
  .chart-info-content { grid-template-columns:1fr; }
}

#rightsidebar #sidebar_title { background:#f2edf6; color:#7c648e; border-bottom:1px solid #e5dceb; }
#rightsidebar #sidebar_title::before { color:#b49a73; }
#rightsidebar #sidebar_title::after { border-color:#967ca8; }
p.footer { display:none; }
.calendar-back::before { content:"←"; margin-right:7px; color:#a38f72; }
.calendar-page .proxy-account .calendar-back { display:inline-flex; align-items:center; justify-content:center; min-height:36px; padding:7px 16px; border-radius:8px; color:#fff; background:#5a476f; box-shadow:0 3px 9px #5a476f20; font-size:13px; font-weight:600; white-space:nowrap; }
.calendar-page .proxy-account .calendar-back::before { color:#e8dcef; }
.calendar-page .proxy-account .calendar-back:hover { background:#493956; text-decoration:none; }
.calendar-page .ui-dialog .ui-dialog-titlebar { display:flex; align-items:center; min-height:56px; padding:14px 54px 14px 18px; }
.calendar-page .ui-dialog .ui-dialog-title { float:none; width:100%; margin:0; font-family:"Segoe UI","Noto Sans TC",sans-serif; font-size:13px; font-weight:600; letter-spacing:.015em; white-space:normal; line-height:1.6; }
.calendar-page .ui-dialog .ui-dialog-titlebar-close { position:absolute; right:14px; top:50%; width:30px; height:30px; margin:-15px 0 0; padding:0; border:1px solid #e2d7e9; border-radius:9px; background:#fff; box-shadow:none; cursor:pointer; }
.calendar-page .ui-dialog .ui-dialog-titlebar-close .ui-icon, .calendar-page .ui-dialog .ui-dialog-titlebar-close .ui-button-text { display:none; }
.calendar-page .ui-dialog .ui-dialog-titlebar-close::before, .calendar-page .ui-dialog .ui-dialog-titlebar-close::after { content:""; position:absolute; top:13px; left:8px; width:12px; height:2px; background:#927ca3; border-radius:2px; transform:rotate(45deg); }
.calendar-page .ui-dialog .ui-dialog-titlebar-close::after { transform:rotate(-45deg); }
.calendar-page .ui-dialog .ui-dialog-titlebar-close:hover { background:#eae1f1; border-color:#cdbbdc; }
.calendar-page .ui-dialog .ui-dialog-buttonpane button { min-height:38px; font-size:13px; font-weight:600; }

/* Both pages use one navigation action style. */
#proxy-header { height:auto; min-height:60px; max-height:none; padding-top:8px; padding-bottom:8px; }
#proxy-header .proxy-identity-copy h1 { line-height:1.25; margin:0; }
#proxy-header .proxy-identity-copy small { line-height:1.5; }
#main_tabs .ui-tabs-panel { padding:14px; overflow-x:auto; }
#main_tabs .list_table { box-sizing:border-box; margin:0; max-width:100%; }
#main_tabs table { width:100%; margin:0; box-shadow:none; }
#main_tabs td, #main_tabs th { text-align:center; vertical-align:middle; padding:6px 5px; line-height:1.5; }
#main_tabs td { font-variant-numeric:tabular-nums; }
#main_tabs td em { display:inline-block; vertical-align:middle; line-height:1.15; }
#main_tabs .results-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:16px; align-items:start; }
#main_tabs .results-grid > .list_table { float:none !important; width:100% !important; min-width:0; }
#main_tabs .results-grid > .list_table:nth-child(1) { grid-column:1; grid-row:1/3; }
#main_tabs .results-grid > .list_table:nth-child(2) { grid-column:2; grid-row:1/3; }
#main_tabs .results-grid > .list_table:nth-child(3) { grid-column:3; grid-row:1; }
#main_tabs .results-grid > .list_table:nth-child(4) { grid-column:3; grid-row:2; }
#main_tabs .results-grid > .list_table:nth-child(2) td { text-align:left; padding:6px 10px; }
#main_tabs .results-grid > .list_table:nth-child(n+3) td:first-child { text-align:left; padding-left:10px; }
#aphesis-fortune-tab table, #aphesis-spirit-tab table { table-layout:fixed; }
#aphesis-fortune-tab td, #aphesis-spirit-tab td { white-space:nowrap; }
@media(max-width:1000px) {
  #main_tabs .results-grid { grid-template-columns:minmax(0,1fr); }
  #main_tabs .results-grid > .list_table:nth-child(n) { grid-column:1; grid-row:auto; overflow-x:auto; }
}
@media(max-width:760px) {
  #proxy-header { height:auto; min-height:88px; max-height:none; padding-top:10px; padding-bottom:6px; grid-template-rows:40px 32px; }
  #main_tabs .ui-tabs-panel { padding:10px; }
  #main_tabs .results-grid table { min-width:450px; }
  #aphesis-fortune-tab table, #aphesis-spirit-tab table { min-width:1050px; }
}
#proxy-header #topnav a.signin, #proxy-header .proxy-account a.calendar-back {
  display:inline-flex; align-items:center; justify-content:center; min-height:36px;
  padding:7px 16px; border:0; border-radius:8px; background:#5a476f;
  color:#fff !important; box-shadow:0 3px 9px #5a476f20;
  font-size:13px; font-weight:600; line-height:1.7; text-decoration:none; white-space:nowrap;
}
#proxy-header #topnav a.signin:hover, #proxy-header .proxy-account a.calendar-back:hover { background:#493f56; }
#proxy-header .proxy-identity { min-height:44px; }
#proxy-header #signin_container { height:auto; padding:0; }
#aphesis-fortune-tab table, #aphesis-spirit-tab table { width:100%; min-width:1080px; table-layout:fixed; }
#aphesis-fortune-tab td, #aphesis-spirit-tab td { box-sizing:border-box; padding:6px 4px; text-align:center; white-space:nowrap; }
#aphesis-fortune-tab td.dashright, #aphesis-spirit-tab td.dashright { padding-left:8px; padding-right:8px; }
@media(max-width:760px) {
  #proxy-header #topnav a.signin, #proxy-header .proxy-account a.calendar-back { min-height:38px; padding:8px 13px; font-size:12px; }
}
.calendar-page #body { padding:24px; border:1px solid #e8e0ee; border-radius:18px; background:#fff; box-shadow:0 12px 36px #4633510a; }
.calendar-heading { display:flex; align-items:center; gap:12px; margin-bottom:24px; }
.calendar-heading-mark { display:grid; place-items:center; width:42px; height:42px; border-radius:12px; background:#f5f0f8; color:#aa906c; font-size:24px; }
.calendar-heading h2 { margin:0; color:#51405f; font-size:22px; font-weight:650; }
.calendar-heading p { margin:3px 0 0; color:#9b8fa3; font-size:12px; }
.calendar-page #proxy-nav a[aria-current=page] { background:#f5f0f8; color:#725987; }
.calendar-page #proxy-nav a[aria-current=page] { background:transparent; color:#5c5368; }
#proxy-header #proxy-nav a { float:none; margin:0; top:auto; right:auto; }
.calendar-page #calendar { float:none !important; width:100% !important; margin:0 !important; color:#64556f; }
#calendar table { box-shadow:none; margin:0; }
#calendar .fc-header { margin-bottom:18px; border:0; }
#calendar .fc-header td { border:0; padding:0; background:#fff; vertical-align:middle; }
#calendar .fc-header-title h2 { color:#574463; font-size:20px; font-weight:600; }
#calendar .fc-button { height:auto; min-height:34px; padding:5px 12px; border:1px solid #e6dceb; border-radius:8px; background:#faf8fc; color:#826b94; box-shadow:none; text-shadow:none; }
#calendar .fc-button:hover { background:#f0e9f5; }
#calendar .fc-button.fc-state-disabled { opacity:.45; }
#calendar .fc-widget-header { background:#f2edf6; color:#7c648e; border-color:#e5dceb; padding:10px 0; font-weight:500; }
#calendar .fc-widget-content { border-color:#eee7f3; background:#fff; }
#calendar .fc-other-month { background:#fcfbfd; }
#calendar .fc-day-number { padding:7px 9px; color:#8e7d9b; font-size:12px; }
#calendar .fc-today { background:#faf5ef !important; }
#calendar .fc-today .fc-day-number { color:#a1875f; font-weight:700; }
#calendar .fc-event { border:0; border-left:3px solid #b8a6c7; border-radius:5px; padding:3px 5px; margin:2px 3px; font-size:11px; line-height:1.55; cursor:pointer; box-shadow:none; }
#calendar .celescal_aspect { background:#f7f0e2; color:#927847; border-left-color:#c9b07a; }
#calendar .celescal_enter { background:#edf1fa; color:#7082a4; border-left-color:#a4b4d5; }
#calendar .celescal_direct, #calendar .celescal_retro { background:#f0f3ee; color:#7d8b70; border-left-color:#a9b599; }
#calendar .celescal_voc { background:#fbefef; color:#a07a80; border-left-color:#d3afb5; }
#calendar .celescal_new_moon, #calendar .celescal_full_moon { background:#f2edf6; color:#886e9a; }
#calendar .celescal_solar_eclipse, #calendar .celescal_lunar_eclipse { background:#f0eef3; color:#7b7385; }
.calendar-page .ui-dialog { max-width:calc(100vw - 24px); padding:0; border:1px solid #e5dceb; border-radius:16px; background:#fff; box-shadow:0 20px 60px #35253f25; }
.calendar-page .ui-dialog-titlebar { background:#f2edf6; border:0; border-radius:15px 15px 0 0; padding:14px 18px; color:#7c648e; }
.calendar-page .ui-dialog-content { padding:18px; color:#665572; }
.calendar-page .ui-dialog-buttonpane { border-color:#eee7f3; background:#fff; }
.calendar-page .ui-dialog-buttonpane button { background:#604a76; color:#fff; border:0; border-radius:8px; padding:6px 16px; }
.calendar-page .ui-widget-overlay { background:#35253f; opacity:.22; }
@media(max-width:760px) {
  .calendar-page #body { padding:12px; border-radius:14px; }
  .calendar-heading { margin:4px 0 18px; gap:10px; }
  .calendar-heading h2 { font-size:19px; }
  #calendar .fc-header-title h2 { font-size:16px; }
  #calendar .fc-button { padding:5px 7px; min-height:38px; font-size:12px; }
  #calendar .fc-widget-header { padding:8px 0; font-size:12px; }
  #calendar .fc-day-number { padding:5px; font-size:11px; }
  #calendar .fc-event { font-size:10px; padding:2px; margin:1px; border-left-width:2px; }
.calendar-page .ui-dialog-content svg { max-width:100%; height:auto; }
}

/* One explicit size for both navigation bars, including border and padding. */
:root { --site-header-height:80px; }
body #proxy-header { box-sizing:border-box; height:var(--site-header-height); min-height:var(--site-header-height); max-height:var(--site-header-height); flex-shrink:0; }
@media(max-width:760px) {
  :root { --site-header-height:88px; }
  #proxy-header #topnav { padding:0; }
}

/* Account pages retain their original controls in the shared theme. */
.birthfinder-page #container > .content { margin:0 !important; padding:26px; border:1px solid #e8e0ee; border-radius:18px; background:#fff; box-shadow:0 12px 36px #4633510a; }
.finder-heading { display:flex; align-items:center; gap:12px; margin-bottom:26px; }
.finder-heading > span { display:grid; place-items:center; flex:0 0 42px; height:42px; background:#f6f1f9; color:#b49a73; border:1px solid #e8e0ee; border-radius:12px; font-size:23px; }
.finder-heading h2 { margin:0; font-size:22px; color:#51405f; font-weight:650; }
.finder-heading p { margin:5px 0 0; font-size:12px; color:#9b8fa3; }
.birthfinder-page .content h3 { margin:22px 0 14px; font-size:14px; color:#7c648e; font-weight:600; }
.birthfinder-page div.saturn { padding:20px; border:1px solid #e8e0ee; border-radius:14px; background:#fcfbfd; color:#81708e; }
.birthfinder-page .content input[type=text], .birthfinder-page .content select { min-height:42px; padding:8px 10px; margin:0 5px 8px; border:1px solid #e5dcea; border-radius:9px; background:#fff; color:#665572; font:inherit; font-size:14px; }
.birthfinder-page .content input[type=text]:focus, .birthfinder-page .content select:focus { outline:0; border-color:#aa91bb; box-shadow:0 0 0 3px #aa91bb18; }
.birthfinder-page .content input[type=button], .birthfinder-page .content button { min-height:42px; padding:9px 20px; border:0; border-radius:9px; background:#604a76; color:#fff; font:inherit; font-size:13px; font-weight:600; box-shadow:0 4px 12px #604a761a; cursor:pointer; }
.birthfinder-page .content input[type=button]:hover { background:#503b65; }
.finder-range { display:flex; align-items:center; gap:9px; padding:9px 12px; max-width:340px; border:1px solid #eae3ef; border-radius:9px; background:#fff; margin:7px 0; color:#8b7a97; font-size:12px; cursor:pointer; }
.finder-range:has(input:checked) { border-color:#bca7cd; background:#f6f1fa; color:#6e547f; }
.finder-range input { margin:0; accent-color:#725987; }
.finder-range + br { display:none; }
.birthfinder-page .content hr { display:none; }
.birthfinder-page .saturn_output, .birthfinder-page .moon_output, .birthfinder-page .ascmc_output { margin-top:20px; border-radius:14px; color:#665572; overflow-x:auto; }
.birthfinder-page .saturn_output:has(table), .birthfinder-page .moon_output:has(table), .birthfinder-page .ascmc_output:has(table) { padding:16px; border:1px solid #e8e0ee; background:#fff; }
.birthfinder-page .content table { width:100%; margin:0; box-shadow:none; }
.birthfinder-page .content th { padding:10px; background:#f2edf6; color:#7c648e; }
.birthfinder-page .content td { padding:8px 10px; border-color:#eee7f3; vertical-align:middle; }
@media(max-width:760px) {
  .birthfinder-page #container > .content { padding:16px; }
  .finder-heading h2 { font-size:19px; }
  .finder-heading { align-items:flex-start; margin-bottom:20px; }
  .birthfinder-page div.saturn { padding:14px; }
  .birthfinder-page .content input[type=text], .birthfinder-page .content select { font-size:16px; margin-left:0; max-width:100%; }
  .birthfinder-page .content input[type=button] { width:100%; min-height:44px; }
  .birthfinder-page .content table { min-width:500px; }
}
.member-page:not(.natal-view-page) .chart-output > #toolbox { grid-column:1/-1; grid-row:2; float:none !important; width:100%; margin:12px 0 0 !important; padding:14px; border:1px solid #e8e0ee; border-radius:12px; background:#fff; }
@media(max-width:1250px) { .member-page:not(.natal-view-page) .chart-output > #toolbox { grid-row:4; } }
#proxy-header #cssmenu { width:auto; float:none; margin:0; padding:0; background:transparent; border:0; box-shadow:none; font:inherit; }
#proxy-header #cssmenu ul { list-style:none; margin:0; padding:0; background:transparent; border:0; }
#proxy-header #cssmenu > ul { display:flex; align-items:center; gap:2px; }
#proxy-header #cssmenu li { position:relative; float:none; margin:0; padding:0; background:transparent; border:0; width:auto; }
#proxy-header #cssmenu a { font:inherit; font-size:12px; color:#5c5368; background:transparent; border:0; text-shadow:none; box-shadow:none; padding:7px 10px; }
#proxy-header #cssmenu li.has-sub > a::after { content:'⌄'; position:static; display:inline; margin-left:6px; height:auto; width:auto; border:0; background:none; transform:none; }
#proxy-header #cssmenu li > ul { display:none !important; position:absolute; left:0; top:100%; z-index:500; width:190px; padding:7px; background:#fff; border:1px solid #e8dfef; border-radius:12px; box-shadow:0 12px 35px #35253f18; }
#proxy-header #cssmenu li.menu-expanded > ul { display:block !important; }
#proxy-header #cssmenu li > ul li { width:100%; }
#proxy-header #cssmenu li > ul a { display:flex; justify-content:flex-start; width:100%; white-space:normal; }
#proxy-header #cssmenu a:hover { background:#f7f3fa; color:#725987; }
.member-status { list-style:none; color:#8a7897; font-size:12px; white-space:nowrap; }
.member-status a { color:inherit; }
.member-status i { font-style:normal; font-size:10px; color:#a396ac; margin-left:6px; }
#proxy-header .proxy-account .member-status {
  display:flex; align-items:center; gap:9px; margin:0; padding:5px 11px 5px 5px;
  min-height:36px; box-sizing:border-box; border:1px solid #e9e1ef;
  border-radius:24px; background:#fcfafd; color:#695477;
  box-shadow:0 2px 8px #604a7607; font-size:13px; font-weight:600; line-height:20px;
}
#proxy-header .proxy-account .member-status::before {
  content:"✦"; display:grid; place-items:center; flex:0 0 26px; width:26px; height:26px;
  border-radius:50%; background:#efe8f5; color:#a88c61; font-size:16px; font-weight:400;
}
#proxy-header .proxy-account .member-status a { color:inherit; text-decoration:none; background:transparent; }
#proxy-header .proxy-account .member-status i {
  display:inline-flex; align-items:center; gap:5px; margin:0 0 0 2px; padding-left:9px;
  border-left:1px solid #e7deed; color:#a092aa; font-size:10px; font-weight:400;
}
#proxy-header .proxy-account .member-status i::before { content:""; width:4px; height:4px; border-radius:50%; background:#b4a1c4; }
@media(max-width:600px) {
  #proxy-header .proxy-account .member-status { min-height:32px; padding:4px 9px 4px 4px; gap:6px; font-size:12px; }
  #proxy-header .proxy-account .member-status::before { width:23px; height:23px; flex-basis:23px; font-size:14px; }
  #proxy-header .proxy-account .member-status i { display:none; }
}
.member-page-heading { font-size:20px; font-weight:600; color:#5b476b; margin:0 0 18px; }
.member-page #body { display:flow-root; }
.member-page #folder_list { padding:14px; border:1px solid #e8e0ee; border-radius:12px; background:#fcfafD; }
.member-page .folder_item { padding:7px 0; line-height:1.6; }
.member-page #natal_list { margin-left:160px; padding:14px; border:1px solid #e8e0ee; border-radius:14px; background:#fff; overflow-x:auto; }
.member-page #natal_list table { width:100%; margin:0; box-shadow:none; }
.member-page #natal_list td, .member-page #natal_list th { padding:9px 10px; border-color:#eee7f3; }
.member-page #header_tools { float:none !important; margin:0 0 16px 160px !important; padding:12px 14px; border:1px solid #e8e0ee; border-radius:12px; background:#faf8fc; }
.member-page input[type=text], .member-page input[type=password], .member-page input[type=email], .member-page select, .member-page textarea { max-width:100%; min-height:36px; border:1px solid #e5dcea; border-radius:8px; padding:7px 9px; color:#665572; background:#fcfbfd; font:inherit; font-size:13px; }
.member-page input[type=button], .member-page input[type=submit], .member-page button { min-height:36px; border:0; border-radius:8px; padding:8px 13px; color:#fff; background:#604a76; font:inherit; font-size:12px; cursor:pointer; }
.member-page input[type=checkbox] { accent-color:#604a76; }
.member-page .ui-dialog { max-width:calc(100vw - 24px); border:1px solid #e5dceb; border-radius:14px; background:#fff; box-shadow:0 18px 55px #35253f22; }
.member-page .ui-dialog-titlebar { border:0; border-radius:10px; background:#f2edf6; color:#7c648e; }
.member-page #body > form { padding:20px; border:1px solid #e8e0ee; border-radius:14px; }
.natal-edit-page #body { display:block; width:100%; max-width:1100px; margin:0 auto; }
.natal-edit-form { display:block; width:100%; margin:0; padding:24px 28px; border:1px solid #e8e0ee; border-radius:16px; background:#fff; box-shadow:0 10px 32px #4633510a; }
.natal-edit-form > div { float:none !important; width:100% !important; margin:0 !important; }
.natal-edit-form table { width:100% !important; table-layout:fixed; margin:0; border:0; box-shadow:none; }
.natal-edit-form tr { background:#fff; }
.natal-edit-form tr:nth-child(even) { background:#fcfbfd; }
.natal-edit-form td { padding:10px 12px; border:0; border-bottom:1px solid #eee9f2; vertical-align:middle; }
.natal-edit-form td:first-child { width:160px; }
.natal-edit-form td:nth-child(2) { width:auto; }
.natal-edit-form td label { display:block; width:auto; max-width:140px; margin:0; color:#786787; font-size:13px; font-weight:550; line-height:1.6; overflow-wrap:anywhere; }
.natal-edit-form td[rowspan] { display:none; }
.natal-edit-form input[type=text], .natal-edit-form select, .natal-edit-form textarea { box-sizing:border-box; max-width:100%; min-height:40px; margin:0 5px 0 0; padding:8px 11px; border:1px solid #e5dcea; border-radius:9px; background:#fcfbfd; color:#665572; font:inherit; font-size:13px; }
.natal-edit-form input[name=name], .natal-edit-form input[name=location], .natal-edit-form input[name=tags], .natal-edit-form textarea { width:100%; }
.natal-edit-form textarea { min-height:120px; resize:vertical; }
.natal-edit-form input[name=year] { width:92px; }
.natal-edit-form input[name=glon_deg], .natal-edit-form input[name=glat_deg], .natal-edit-form input[name=glon_min], .natal-edit-form input[name=glat_min] { width:82px; }
.natal-edit-form input[type=checkbox] { width:17px; height:17px; accent-color:#725987; vertical-align:middle; }
.natal-edit-form input[type=button], .natal-edit-form input[type=submit], .natal-edit-form input[type=reset] { min-height:40px; margin:4px 8px 4px 0; padding:8px 16px; border:0; border-radius:9px; background:#604a76; color:#fff; font:inherit; font-size:13px; font-weight:600; cursor:pointer; }
.natal-edit-form input[type=reset] { background:#f1edf5; color:#776484; }
.natal-edit-form input[type=button] { min-height:38px; }
.natal-edit-form tr:last-child td { width:100%; padding:18px 12px 4px; border:0; }
.natal-edit-form tr:last-child td center { display:flex; width:100%; box-sizing:border-box; justify-content:center; align-items:center; gap:10px; }
.natal-edit-intro { margin:0 0 20px; }
.natal-edit-intro > span { flex-basis:42px; height:42px; }
.natal-edit-intro h2 { margin:0; color:#51405f; font-size:22px; font-weight:650; }
.natal-edit-intro p { margin:5px 0 0; color:#9b8fa3; font-size:12px; }
.edit-location-row, .edit-timezone-row { display:flex; align-items:center; gap:10px; width:100%; }
.edit-location-row input[name=location] { flex:1; min-width:0; }
.natal-edit-form .edit-location-row input[type=button] { flex:0 0 auto; margin:0; }
.edit-timezone-row { width:auto; flex-wrap:wrap; }
.edit-timezone-row select { min-width:110px; }
.natal-edit-form label.dst-label { display:inline-flex; align-items:center; max-width:none; margin:0 0 0 8px; white-space:nowrap; }
.edit-timezone-row input[type=checkbox] { flex:0 0 auto; }
.natal-edit-form input:focus, .natal-edit-form select:focus, .natal-edit-form textarea:focus { outline:0; border-color:#aa91bb; box-shadow:0 0 0 3px #aa91bb18; }
@media(max-width:760px) {
  .natal-edit-page #body { width:100%; }
  .natal-edit-form { padding:12px; border-radius:13px; }
  .natal-edit-intro h2 { font-size:19px; }
  .natal-edit-form td { padding:8px 5px; }
  .natal-edit-form td:first-child { width:95px; }
  .natal-edit-form td label { max-width:90px; font-size:12px; }
  .natal-edit-form input[type=text], .natal-edit-form select, .natal-edit-form textarea { min-height:42px; font-size:16px; }
  .natal-edit-form input[name=year], .natal-edit-form input[name=glon_deg], .natal-edit-form input[name=glat_deg], .natal-edit-form input[name=glon_min], .natal-edit-form input[name=glat_min] { width:68px; }
  .natal-edit-form tr:last-child td center { justify-content:center; flex-wrap:wrap; }
  .natal-edit-form tr:last-child input { flex:0 1 auto; }
}
@media(max-width:1100px) and (min-width:761px) { .member-page #proxy-header { gap:12px; } .member-page #proxy-header #proxy-nav { gap:2px; } .member-page #proxy-header #cssmenu a { padding:7px; font-size:11px; } }
@media(max-width:760px) {
  .member-page #proxy-nav { overflow:visible; }
  #proxy-header #cssmenu > ul { gap:0; }
  #proxy-header #cssmenu a { padding:5px 6px; font-size:11px; min-height:32px; }
  .member-page #proxy-nav > a { font-size:10px; padding:5px; }
  .member-status { font-size:10px; }
  .member-status i { display:none; }
  .member-page #folder_list { float:none !important; width:100% !important; display:flex; flex-wrap:wrap; gap:4px 12px; margin-bottom:14px; }
  .member-page #natal_list, .member-page #header_tools { width:100%; margin:0 0 14px !important; }
  .member-page input[type=text], .member-page input[type=password], .member-page select { font-size:16px; min-height:42px; }
}

/* User account forms (password / profile): shared card with the finder-style heading. */
.user-form-page #body { display:block; width:100%; max-width:640px; margin:0 auto; }
.user-form-page .user-card { padding:26px 28px 24px; border:1px solid #e8e0ee; border-radius:18px; background:#fff; box-shadow:0 10px 32px #4633510a; }
.user-form-page .user-card .finder-heading { margin:0 0 20px; padding-bottom:18px; border-bottom:1px solid #eee9f2; }
.user-form-page .user-card form { margin:0; }
.user-form-page .user-card table { width:100%; margin:0 !important; border:0; box-shadow:none; background:transparent; }
.user-form-page .user-card tr:nth-child(even) td { background:transparent; }
.user-form-page .user-card td { padding:0 0 14px; border:0; vertical-align:middle; background:transparent; }
.user-form-page .user-card td:first-child { width:132px; color:#786787; font-size:13px; font-weight:550; line-height:1.6; white-space:nowrap; }
.user-form-page .user-card td:last-child:empty { display:none; }
.user-form-page .user-card input[type=password], .user-form-page .user-card input[type=text] { box-sizing:border-box; width:100%; min-height:42px; margin:0; padding:9px 12px; border:1px solid #e5dcea; border-radius:9px; background:#fcfbfd; color:#665572; font:inherit; font-size:14px; }
.user-form-page .user-card input:focus { outline:0; border-color:#aa91bb; box-shadow:0 0 0 3px #aa91bb18; }
.user-form-page .user-card .field-hint { display:block; margin-top:5px; color:#9b8fa3; font-size:11px; letter-spacing:.02em; }
.passwd-actions { display:flex; justify-content:flex-end; gap:10px; margin-top:4px; padding-top:16px; border-top:1px solid #eee9f2; }
.passwd-actions input[type=submit] { min-height:42px; padding:9px 24px; border:0; border-radius:9px; background:#604a76; color:#fff; font:inherit; font-size:13px; font-weight:600; cursor:pointer; box-shadow:0 4px 12px #604a761a; }
.passwd-actions input[type=submit]:hover { background:#503b65; }
.passwd-actions input[type=reset] { min-height:42px; padding:9px 18px; border:0; border-radius:9px; background:#f1edf5; color:#776484; font:inherit; font-size:13px; cursor:pointer; }
.passwd-actions input[type=reset]:hover { background:#e9e2f0; }
@media(max-width:760px) {
  .user-form-page .user-card { padding:16px 14px 14px; }
  .user-form-page .user-card .finder-heading { margin-bottom:16px; padding-bottom:14px; }
  .user-form-page .user-card td { padding:0 0 12px; }
  .user-form-page .user-card td:first-child { width:100px; font-size:12px; white-space:normal; }
  .user-form-page .user-card input[type=password], .user-form-page .user-card input[type=text] { min-height:44px; font-size:16px; }
  .passwd-actions input[type=submit], .passwd-actions input[type=reset] { flex:1; }
}

/* Preference page: wide card with numbered sections. Placed after the shared
   user-form rules so its fixed control widths override the 100% default. */
.user-form-page.preference-page #body { max-width:920px; }
.preference-page .pref-card { padding:26px 30px 24px; }
.preference-page table.pref-form { width:100%; table-layout:auto; margin:0 !important; border:0; box-shadow:none; background:transparent; border-collapse:collapse; }
.preference-page .pref-form tr:nth-child(even) td { background:transparent; }
.preference-page .pref-form th.pref-section-heading { height:48px; padding:0 4px; color:#5b476b; background:#f7f4f9; border-bottom:1px solid #eee9f2; text-align:left; font-size:14px; font-weight:650; letter-spacing:.02em; }
.pref-section-number { display:inline-block; margin-right:11px; color:#b49b73; font-size:11px; letter-spacing:.06em; }
.preference-page .pref-form td { padding:13px 4px; border:0; border-bottom:1px solid #f1edf5; vertical-align:middle; background:transparent; line-height:1.9; overflow-wrap:anywhere; }
.preference-page .pref-form tr:last-child td { border-bottom:0; }
.preference-page .pref-form td:first-child { width:118px; color:#786787; font-size:13px; font-weight:550; }
.preference-page .pref-form td label { display:inline; margin:0; color:inherit; font:inherit; }
.preference-page .pref-form input[type=text] { box-sizing:border-box; width:auto; max-width:100%; min-height:40px; margin:2px 6px 2px 0; padding:8px 11px; border:1px solid #e5dcea; border-radius:9px; background:#fcfbfd; color:#665572; font:inherit; font-size:13px; }
.preference-page .pref-form input[type=text]:focus { outline:0; border-color:#aa91bb; box-shadow:0 0 0 3px #aa91bb18; }
.preference-page .pref-form input[name=location] { width:calc(100% - 78px); }
.preference-page .pref-form input[name=glon_deg], .preference-page .pref-form input[name=glon_min], .preference-page .pref-form input[name=glat_deg], .preference-page .pref-form input[name=glat_min] { width:64px; text-align:center; }
.preference-page .pref-form select { min-height:40px; margin:2px 4px 2px 0; padding:7px 9px; border:1px solid #e5dcea; border-radius:9px; background:#fcfbfd; color:#665572; font:inherit; font-size:13px; }
.preference-page .pref-form select:focus { outline:0; border-color:#aa91bb; box-shadow:0 0 0 3px #aa91bb18; }
.preference-page .pref-form input[type=button] { min-height:40px; margin-left:6px; padding:8px 16px; border:0; border-radius:9px; background:#604a76; color:#fff; font:inherit; font-size:13px; font-weight:600; cursor:pointer; }
.preference-page .pref-form input[type=button]:hover { background:#503b65; }
.preference-page .pref-form input[type=checkbox], .preference-page .pref-form input[type=radio] { margin:0 5px 0 0; accent-color:#604a76; vertical-align:middle; }
.preference-page .pref-form input[type=radio] + label { margin-right:10px; }
.preference-page .pref-form em { display:inline-block; min-width:18px; color:#8a6d9e; font-style:normal; text-align:center; }
.preference-page .pref-card .passwd-actions { margin-top:6px; }
@media(max-width:760px) {
  .preference-page .pref-card { padding:16px 14px 14px; }
  .preference-page .pref-form th.pref-section-heading { height:44px; padding:0 2px; font-size:13px; }
  .preference-page .pref-form td { padding:10px 2px; }
  .preference-page .pref-form td:first-child { width:88px; font-size:12px; }
  .preference-page .pref-form input[type=text], .preference-page .pref-form select { min-height:42px; font-size:16px; }
  .preference-page .pref-form input[name=location] { width:calc(100% - 72px); }
  .preference-page .pref-form input[name=glon_deg], .preference-page .pref-form input[name=glon_min], .preference-page .pref-form input[name=glat_deg], .preference-page .pref-form input[name=glat_min] { width:56px; }
}

/* Event astrology result: keep the chart centered at its natural proportions. */
.mundane-page.event-astrology-page #body { max-width:1400px; }
.event-astrology-page .member-page-heading, .event-astrology-page .mundane-form { max-width:1120px; margin-left:auto; margin-right:auto; }
.event-astrology-page .mundane-card { box-sizing:border-box; width:100%; max-width:1120px; margin:0 auto 18px; padding:26px 28px 18px; border:1px solid #e8e0ee; border-radius:18px; background:#fff; box-shadow:0 10px 32px #4633510a; }
.event-astrology-page .mundane-card .mundane-form { width:100%; margin:0; border:0; border-radius:0; box-shadow:none; }
.event-astrology-page .mundane-intro { margin:0 0 22px; border-bottom:1px solid #eee9f2; padding-bottom:20px; }
.event-astrology-page .event-chart-output { display:grid; grid-template-columns:minmax(0,1fr) 500px minmax(0,1fr); align-items:center; justify-content:center; gap:22px; padding:22px; overflow:visible; }
/* Chart and aspect grid always keep their original upstream size (500px / 400px). */
.event-astrology-page .event-chart-output > .chart-aspects { grid-column:1; grid-row:1; width:400px !important; flex:none; justify-self:start; align-self:center; }
.event-astrology-page .event-chart-output .chart-aspects #aspgrid { float:none; margin:0; width:400px; }
.event-astrology-page .event-chart-output > .chart-aspects #aspgrid { width:400px; }
.event-astrology-page .event-chart-output > .chart-aspects #aspgrid > svg { display:block; width:400px; height:400px; }
.event-astrology-page .event-chart-output > #chart { grid-column:2; grid-row:1; position:static !important; inset:auto !important; float:none !important; width:500px !important; height:500px !important; margin:0 !important; justify-self:center; align-self:center; }
.event-astrology-page .event-chart-output > #chart > div { float:none !important; width:500px !important; height:500px !important; margin:0 !important; }
.event-astrology-page .event-chart-output > #chart > div > svg { display:block; width:500px; height:500px; margin:auto; }
.event-astrology-page .event-chart-output > #nataldata { grid-column:3; grid-row:1; float:none !important; justify-self:end; align-self:start; width:250px; }
.event-astrology-page .event-chart-output #nataldata .chart-info-content { display:block; padding:6px 16px 12px; }
.event-astrology-page .event-chart-output #nataldata .chart-info-row { grid-template-columns:48px minmax(0,1fr); }
.event-astrology-page .event-chart-output #nataldata a { color:#705886; font-weight:600; }
.event-astrology-page .event-chart-output #nataldata .chart-info-actions { padding:0 16px 15px; }
.event-astrology-page .event-chart-output #nataldata .chart-info-actions a { display:inline-flex; min-height:36px; align-items:center; padding:0 13px; border:1px solid #e8e0ee; border-radius:8px; background:#faf8fc; }
@media(max-width:1360px) {
  .event-astrology-page .event-chart-output { grid-template-columns:minmax(0,1fr); gap:18px; padding:16px; overflow-x:auto; }
  .event-astrology-page .event-chart-output > #nataldata { grid-column:1; grid-row:1; width:min(100%,560px); justify-self:center; }
  .event-astrology-page .event-chart-output > #chart { grid-column:1; grid-row:2; justify-self:safe center; }
  .event-astrology-page .event-chart-output > .chart-aspects { grid-column:1; grid-row:3; }
}

.mundane-page #body { display:block; width:100%; max-width:1120px; margin:0 auto; }
.mundane-page .member-page-heading { margin:0 0 18px; color:#51405f; font-size:22px; }
.mundane-form { width:100%; margin:0 auto; table-layout:fixed; border:1px solid #e8e0ee; border-spacing:0; border-radius:16px; overflow:hidden; background:#fff; box-shadow:0 10px 32px #4633510a; }
.mundane-form .mundane-label-col { width:170px; }
.mundane-form th, .mundane-form td { border:0; border-bottom:1px solid #eee9f2; }
.mundane-form th.mundane-section-heading { height:52px; padding:0 20px; color:#5b476b; background:#f7f4f9; text-align:left; font-size:14px; font-weight:650; }
.mundane-section-heading center { display:block; text-align:left; }
.mundane-section-number { display:inline-block; margin-right:12px; color:#b49a73; font-size:11px; letter-spacing:.06em; }
.mundane-form tr:not(:has(.mundane-section-heading)) td:first-child { width:170px; padding:13px 16px 13px 22px; }
.mundane-form td:nth-child(2) { padding:10px 20px; }
.mundane-form td label { display:block; margin:0; color:#8a7c96; font-size:13px; line-height:1.5; white-space:nowrap; }
.mundane-form input[type=text], .mundane-form select { box-sizing:border-box; min-height:42px; margin:0 7px 0 0; padding:8px 11px; border:1px solid #e5dcea; border-radius:9px; background:#fcfbfd; color:#665572; font:inherit; font-size:13px; }
.mundane-form input[name=location] { width:calc(100% - 82px); }
.mundane-form input[name=glon_deg], .mundane-form input[name=glat_deg] { width:82px; }
.mundane-form input[name=glon_min], .mundane-form input[name=glat_min] { width:76px; }
.mundane-form select[name=glon_dir], .mundane-form select[name=glat_dir] { min-width:76px; }
.mundane-form select[name=toffset] { min-width:120px; }
.mundane-form input[name=year] { width:110px; }
.mundane-form select[name=method] { min-width:130px; }
.mundane-form input[type=button] { min-height:40px; padding:8px 16px; border:0; border-radius:9px; color:#fff; background:#604a76; font:inherit; font-size:13px; font-weight:600; cursor:pointer; }
.mundane-form input[type=button]:hover { background:#4e3d62; }
.mundane-form tr.mundane-submit-row td { padding:14px 20px; background:#fcfbfd; }
.mundane-form .mundane-create-button { float:none !important; min-width:120px; margin-left:auto; }
.mundane-form tr.mundane-submit-row td:nth-child(2) { display:flex; align-items:center; gap:8px; }
.mundane-form tr:last-child td { border-bottom:0; }
@media(max-width:760px) {
  .mundane-page #body { width:100%; }
  .mundane-page .member-page-heading { margin-bottom:13px; font-size:19px; }
  .event-astrology-page .mundane-card { padding:16px 14px 12px; }
  .event-astrology-page .mundane-intro { margin-bottom:16px; padding-bottom:14px; }
  .mundane-form { border-radius:13px; }
  .mundane-form th.mundane-section-heading { height:46px; padding:0 14px; }
  .mundane-form .mundane-label-col { width:104px; }
  .mundane-form tr:not(:has(.mundane-section-heading)) td:first-child { width:104px; padding:11px 7px 11px 12px; }
  .mundane-form td:nth-child(2) { padding:9px 10px; }
  .mundane-form td label { white-space:normal; font-size:12px; }
  .mundane-form input[type=text], .mundane-form select { min-height:42px; font-size:16px; }
  .mundane-form input[name=location] { width:calc(100% - 75px); }
  .mundane-form input[name=glon_deg], .mundane-form input[name=glat_deg] { width:62px; }
  .mundane-form input[name=glon_min], .mundane-form input[name=glat_min] { width:58px; }
  .mundane-form select[name=glon_dir], .mundane-form select[name=glat_dir] { min-width:58px; }
  .mundane-form input[name=year] { width:86px; }
  .mundane-form select[name=method] { min-width:108px; }
  .mundane-form tr.mundane-submit-row td { padding:12px 10px; }
  .mundane-form .mundane-create-button { min-width:96px; }
}

.natal-view-page .natal-left-col > #nataldata { padding:0; overflow:hidden; background:#fff; border:1px solid #e8e0ee; border-radius:14px; box-shadow:0 6px 22px #51416308; }
.natal-view-page #nataldata .chart-info-actions { padding:8px 11px 11px; border-top:1px solid #eee8f3; }
.natal-view-page #nataldata .chart-info-actions a { display:flex; justify-content:center; align-items:center; min-height:36px; border-radius:8px; background:#f3edf7; color:#604a76; font-size:12px; font-weight:600; }
.natal-view-page #nataldata .chart-info-actions a:hover { background:#eae0f1; }
