/* Mirror rose gold v18. Chart typography, dimensions and calculation files are preserved. */
:root { --ls-ink:#4d2c20; --ls-muted:#796255; --ls-silver:#f5eadc; --ls-line:#dfc7b1; --ls-lemon:#edc9a7; }
body:not([data-page="紫微斗数"]) { background:#f7f0e7; color:var(--ls-ink); }
body:not([data-page="紫微斗数"]) main { max-width:1320px; margin:0 auto; padding:0; border:0; border-radius:0; background:#fff; }
.ls-header { display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:16px 30px; padding:27px 32px; background:#fff; border-bottom:1px solid #e7d3bf; }
.ls-header .ls-wordmark { padding:0; background:transparent; border:0; border-radius:0; color:#4b2b1b; font-size:27px; font-weight:500; letter-spacing:6px; white-space:nowrap; text-align:center; line-height:1.25; }
.ls-wordmark span { display:block; font-size:10px; letter-spacing:4px; margin-top:7px; }
.ls-header #navigation { display:flex; flex-wrap:wrap; gap:8px 12px; margin:0; }
.ls-header #navigation button { position:relative; min-height:48px; padding:14px 10px; border:0; border-radius:0; color:#4d2c20; background:transparent; font-size:20px; font-weight:600; line-height:1.4; white-space:nowrap; }
.ls-header #navigation button[aria-pressed="true"] { color:#111; background:transparent; }
.ls-header #navigation button[aria-pressed="true"]::after { content:""; position:absolute; left:0; right:0; bottom:5px; height:3px; background:var(--ls-lemon); }
.ls-header #navigation button:hover { color:#111; background:transparent; }
.ls-header #navigation button:hover::after { content:""; position:absolute; bottom:5px; left:0; right:0; height:3px; background:#cda17c; }
.ls-header #navigation button[aria-pressed="true"]:hover::after { background:var(--ls-lemon); }
/* Greater specificity only for the header overrides the existing Ziwei navigation skin. */
main .ls-header #navigation button { background:transparent; border:0; color:#4d2c20; }
main:has(#ziwei-panel:not([hidden])) .ls-header #navigation button { background:transparent; border:0; color:#4d2c20; }
.ls-editorial { color:var(--ls-ink); font-family:"Microsoft YaHei","PingFang SC",sans-serif; }
.ls-editorial section { border:0; padding-top:0; }
.ls-editorial p { line-height:1.75; }
.ls-editorial h1,.ls-editorial h2,.ls-editorial h3 { color:#4b2b1b; }
.ls-editorial .ls-eyebrow,.ls-eyebrow { margin:0 0 20px; font-size:11px; font-weight:600; letter-spacing:3px; line-height:1.6; }
.ls-editorial button,.ls-footer button,.ls-product-dialog button { font-family:inherit; }
.ls-editorial .ls-pill,.ls-product-dialog .ls-pill { display:inline-flex; align-items:center; justify-content:center; gap:28px; min-height:46px; padding:12px 24px; color:#4b2b1b; background:var(--ls-lemon); border:1px solid transparent; border-radius:30px; font-size:15px; font-weight:600; }
.ls-editorial .ls-pill:hover,.ls-product-dialog .ls-pill:hover { background:#e6bb96; }
.ls-editorial .ls-pill-dark { background:#4d2c20; color:#fff; }
.ls-editorial .ls-pill-dark:hover { background:#724b36; }
.ls-pill span { font-size:21px; line-height:1; }
.ls-hero { position:relative; display:flex; align-items:center; min-height:clamp(450px,43vw,620px); overflow:hidden; isolation:isolate; }
.ls-hero-image { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; object-position:center 55%; z-index:-2; }
.ls-hero::after { content:""; position:absolute; inset:0; background:linear-gradient(90deg,#fff7ecb3 0%,#fff7ec59 35%,transparent 58%); z-index:-1; }
.ls-hero-copy { width:53%; padding:45px 0 70px 5%; }
.ls-hero-copy h1 { font-family:"Songti SC","Noto Serif CJK SC","SimSun",serif; font-size:clamp(46px,5.4vw,76px); font-weight:700; line-height:1.18; letter-spacing:1px; margin:0 0 24px; }
.ls-hero-copy .ls-hero-intro { margin:0 0 26px; color:#75543e; font-size:17px; letter-spacing:2px; }
.ls-hero-foot { position:absolute; bottom:23px; left:5%; right:5%; display:flex; justify-content:space-between; gap:20px; font-size:9px; letter-spacing:3px; color:#75543e; }
.ls-services { display:grid; grid-template-columns:1fr 1.15fr; gap:0; margin:24px 0 0; background:#f5eadc; scroll-margin-top:20px; }
.ls-service-list { align-self:center; padding:28px 8%; }
.ls-service-list .ls-eyebrow { margin-bottom:10px; }
.ls-service-list .ls-service { display:grid; grid-template-columns:40px 1fr 24px; align-items:center; gap:16px; width:100%; border:0; border-bottom:1px solid #ddc3a9; border-radius:0; margin:0; padding:26px 0; text-align:left; background:transparent; color:var(--ls-ink); }
.ls-service-list .ls-service:last-child { border-bottom:0; }
.ls-service-list .ls-service:hover { background:#faecda; }
.ls-number { font-family:Georgia,serif; font-size:22px; }
.ls-service-text { display:flex; flex-direction:column; gap:9px; }
.ls-service-text strong { font-size:23px; font-family:"Songti SC","SimSun",serif; }
.ls-service-text small { font-size:13px; color:#796255; line-height:1.5; }
.ls-services>img { width:100%; height:100%; min-height:350px; object-fit:cover; }
.ls-goods { padding:52px 32px 28px !important; }
.ls-section-heading { display:flex; align-items:end; flex-wrap:wrap; justify-content:space-between; gap:18px; margin-bottom:24px; }
.ls-section-heading .ls-eyebrow { margin-bottom:12px; }
.ls-editorial h2 { margin:0; font-family:"Songti SC","SimSun",serif; font-size:34px; line-height:1.4; }
.ls-text-link { display:inline-flex; align-items:center; gap:20px; padding:8px 0; background:transparent; border:0; border-radius:0; color:#5f3c29; font-size:14px; line-height:1.5; }
.ls-text-link:hover { background:transparent; text-decoration:underline; text-underline-offset:5px; }
.ls-product-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:18px; }
.ls-product-grid .ls-product-card { padding:0; overflow:hidden; border:1px solid #e6cbb0; border-radius:0; color:var(--ls-ink); background:#fff; text-align:left; min-width:0; }
.ls-product-grid .ls-product-card:hover { background:#fff2e1; border-color:#be8961; }
.ls-product-photo { display:block; width:100%; aspect-ratio:1; background-image:url('/ls-theme-assets/products.png'); background-repeat:no-repeat; background-size:200% 200%; }
.ls-product-photo[data-product="0"] { background-position:0 0; }
.ls-product-photo[data-product="1"] { background-position:100% 0; }
.ls-product-photo[data-product="2"] { background-position:0 100%; }
.ls-product-photo[data-product="3"] { background-position:100% 100%; }
.ls-product-copy { display:flex; flex-direction:column; gap:7px; padding:17px 14px; }
.ls-product-copy strong { font-size:17px; font-weight:600; }
.ls-product-copy small { font-size:13px; color:#796255; line-height:1.6; }
.ls-product-copy .ls-product-more { display:flex; justify-content:space-between; margin-top:10px; font-size:12px; color:#796255; }
.ls-sample-note { font-size:13px; color:#796255; line-height:1.7; }
.ls-member-banner { position:relative; display:grid; grid-template-columns:1.1fr 1fr; min-height:260px; margin:4px 32px 32px; background:#edd2b2; overflow:hidden; }
.ls-member-banner>div:first-child { position:relative; padding:38px; z-index:1; }
.ls-member-banner h2 { font-size:35px; }
.ls-member-banner p:not(.ls-eyebrow) { font-size:14px; margin:12px 0 22px; }
.ls-member-art { background:linear-gradient(90deg,#edd2b2 0%,#edd2b200 45%),url('/ls-theme-assets/hero.png') 83% 71%/auto 145%; }
.ls-footer { display:flex; align-items:center; flex-wrap:wrap; gap:18px 30px; padding:25px 32px; border-top:1px solid #e5cbb2; font-size:11px; color:#796255; background:#fff; }
.ls-footer-logo { background:transparent; border:0; border-radius:0; padding:0; color:#4d2c20; letter-spacing:4px; font-size:15px; }
.ls-footer-logo:hover { background:transparent; }
.ls-footer>.ls-text-link { margin-left:auto; font-size:12px; }
body:not([data-page="紫微斗数"]) .ls-page-content { padding:32px; border:0; }
body:not([data-page="紫微斗数"]) #section-title { margin:0 0 10px; font-size:28px; font-weight:600; }
body:not([data-page="紫微斗数"]) #section-description { margin:0 0 30px; font-size:15px; color:#796255; }
.ls-feature { display:grid; grid-template-columns:1fr 1fr; background:#f8eddf; }
.ls-feature-copy { padding:45px; align-self:center; }
.ls-feature-copy h2 { font-size:42px; }
.ls-feature-copy>p:not(.ls-eyebrow) { font-size:16px; color:#796255; margin:24px 0; }
.ls-feature>img { width:100%; height:100%; min-height:390px; object-fit:cover; }
.ls-membership-status { display:flex; align-items:center; flex-wrap:wrap; gap:22px; padding:26px 0; }
.ls-membership-status p { flex:1; font-size:15px; color:#796255; }
.ls-membership-status strong { color:#4d2c20; }
.ls-status-dot { width:17px; height:17px; border-radius:50%; background:#c58b64; box-shadow:0 0 0 7px #f5e5d1; }
.ls-catalog-intro { padding:20px 0 38px; }
.ls-catalog-intro h2 { font-size:44px; line-height:1.45; }
.ls-catalog-intro>p:last-child { color:#796255; font-size:16px; }
.ls-reading-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:20px; margin-bottom:32px; }
.ls-reading-grid article { border-top:3px solid #b77e57; background:#fcf5eb; padding:28px 24px; }
.ls-reading-grid article>span { font-size:13px; color:#796255; }
.ls-reading-grid h3 { font-size:22px; font-weight:500; margin:32px 0 20px; }
.ls-reading-grid p { font-size:14px; color:#796255; }
.ls-product-dialog { width:min(850px,calc(100% - 36px)); max-height:90vh; padding:0; color:#4d2c20; background:#fff; border:1px solid #ddc2a8; border-radius:10px; overflow:auto; }
.ls-product-dialog[open] { display:grid; grid-template-columns:1fr 1fr; }
.ls-product-dialog::backdrop { background:#422719cc; }
.ls-product-dialog>.ls-dialog-close { position:absolute; right:12px; top:12px; z-index:1; width:38px; height:38px; padding:0; border:1px solid #dbbea3; border-radius:50%; background:white; color:#222; font-size:26px; line-height:1; }
.ls-dialog-copy { padding:55px 30px 30px; align-self:center; }
.ls-dialog-copy h2 { color:#4d2c20; font-size:30px; }
.ls-dialog-copy p { line-height:1.8; }
.ls-header :focus-visible,.ls-editorial :focus-visible,.ls-footer :focus-visible,.ls-product-dialog :focus-visible { outline:2px solid #61412b; outline-offset:5px; }
/* Calendar shell only. Never select chart stars, chart cells, or chart descendants. */
#calendar-panel { color:#4d2c20; }
#calendar-panel :is(button,input,select) { border-color:#d8ba9e; background:#fff; color:#4d2c20; }
#calendar-panel button:hover { background:#f9eddf; }
#calendar-panel #query-button,#calendar-panel button[aria-pressed="true"] { background:#f0d0ad; color:#4d2c20; border-color:#bd8e65; }
#calendar-panel :is(input,select,button,summary):focus-visible { outline:2px solid #855a3d; outline-offset:3px; }
#calendar-panel :is(.cal-summary,.cal-pillar,.cal-term) { background:#fbf3e8; border-color:#e3cdb5; }
#calendar-panel :is(.cal-value,.cal-label) { color:#61412b; }
#calendar-panel .cal-note,#calendar-panel #calendar-time-rule { color:#796255; }
#calendar-panel #ls-solar { background:#fbf3e8; color:#61412b; border-color:#ddc2a8; }
#calendar-panel #ls-solar :is(input,select) { background:#fff; color:#4d2c20; border-color:#dec5ac; }
#calendar-panel #ls-solar .solar-help { color:#796255; }
#calendar-panel #ls-month-calendar { --mc-brown:#4d2c20; --mc-gold:#9b6b48; --mc-red:#b34747; background:#fffaf3; border-color:#dfc5a9; box-shadow:none; }
#calendar-panel #ls-month-calendar :is(.mc-pickers select,.mc-nav) { background:#f7ecdd; border-color:#dec5ac; }
#calendar-panel #ls-month-calendar .mc-day { background:transparent; color:#4d2c20; }
#calendar-panel #ls-month-calendar .mc-day.mc-selected { background:#efcda6; color:#4d2c20; border-color:#b78156; box-shadow:none; }
#calendar-panel #ls-month-calendar .mc-selected .mc-sub { color:#69432a; }
#calendar-panel #ls-month-calendar .mc-sub { color:#796255; }
#calendar-panel #ls-month-calendar .mc-day:not(.mc-selected):hover { background:#f8e9d7; border-color:#d9b99a; }
#calendar-panel #ls-month-calendar .mc-day.mc-today:not(.mc-selected) { border-color:#b48660; }
#calendar-panel #ls-month-calendar :is(.mc-week,.mc-footer) { color:#796255; border-color:#ead7c1; }
#calendar-panel #ls-month-calendar :is(.mc-selection,.mc-hint,.mc-status) { color:#796255; }
#calendar-panel #ls-month-calendar .mc-weekend,#calendar-panel #ls-month-calendar .mc-festival { color:#b34747; }
#calendar-panel #ls-month-calendar .mc-term { color:#8e603e; }
#calendar-panel #ls-huangli { color:#4d2c20; border-color:#dfc5a9; }
#calendar-panel #ls-huangli :is(.hl-button,.hl-cell,.hl-hour,.hl-input,.hl-date-card,.hl-yiji) { color:#61412b; background:#fff9f0; border-color:#e0c5a9; }
#calendar-panel #ls-huangli :is(.hl-primary,.hl-selected) { background:#f0d5b4; color:#4d2c20; border-color:#b88c64; box-shadow:none; }
#calendar-panel #ls-huangli :is(.hl-note,.hl-label,.hl-status,.hl-hour-zone,.hl-date-right small,.hl-relative) { color:#796255; }
#calendar-panel #ls-huangli :is(.hl-hour-detail,.hl-empty,.hl-activity) { background:#f8eddf; color:#6d4b32; border-color:#e0c6aa; }
#calendar-panel #ls-huangli :is(.hl-date-left,.hl-arrow,.hl-song summary) { color:#7c5538; border-color:#e2caae; }
#calendar-panel #ls-huangli .hl-tag-yi { color:#765033; background:#f3e0c6; }
#calendar-panel #ls-huangli .hl-lucky { color:#845a39; }
#calendar-panel #ls-huangli .hl-check input { accent-color:#936541; }
#calendar-panel #ls-huangli .hl-error,#calendar-panel #ls-month-calendar .mc-error,#calendar-panel #ls-solar .solar-error { color:#ad3632; }
@media(max-width:1050px) {
  .ls-header { justify-content:center; padding:24px; gap:15px; }
  .ls-header #navigation { justify-content:center; gap:8px 12px; }
  .ls-header .ls-wordmark { width:100%; }
  .ls-feature-copy { padding:30px; }
  .ls-product-grid { gap:12px; }
}
@media(max-width:700px) {
  .ls-header { padding:22px 15px 15px; }
  .ls-header #navigation { gap:6px 8px; }
  .ls-header #navigation button { font-size:17px; padding:12px 10px; }
  .ls-hero { min-height:600px; align-items:flex-start; }
  .ls-hero-image { object-position:72% bottom; }
  .ls-hero::after { background:linear-gradient(180deg,#fcf5ebed 0%,#fcf5ebcc 35%,transparent 69%); }
  .ls-hero-copy { width:100%; padding:35px 24px 0; }
  .ls-hero-copy h1 { font-size:49px; }
  .ls-hero-copy .ls-hero-intro { font-size:15px; }
  .ls-hero-copy .ls-eyebrow { margin-bottom:15px; }
  .ls-hero-foot { bottom:16px; left:24px; right:24px; font-size:8px; letter-spacing:2px; }
  .ls-services { grid-template-columns:1fr; margin-top:16px; }
  .ls-service-list { padding:24px; }
  .ls-service-list .ls-service { padding:23px 0; }
  .ls-services>img { min-height:0; height:auto; aspect-ratio:1.5; }
  .ls-goods { padding:36px 20px 24px !important; }
  .ls-editorial h2 { font-size:28px; }
  .ls-product-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px; }
  .ls-product-copy { padding:13px 10px; }
  .ls-product-copy strong { font-size:16px; }
  .ls-product-copy small { font-size:12px; }
  .ls-member-banner { grid-template-columns:1fr; margin:0 20px 24px; }
  .ls-member-banner>div:first-child { padding:28px; }
  .ls-member-art { height:160px; background-position:center,80% 70%; background-image:linear-gradient(180deg,#edd2b2 0%,#edd2b200 50%),url('/ls-theme-assets/hero.png'); }
  .ls-footer { padding:24px 20px; gap:15px; }
  .ls-footer>span { width:100%; order:3; }
  body:not([data-page="紫微斗数"]) .ls-page-content { padding:25px 18px; }
  .ls-feature { grid-template-columns:1fr; }
  .ls-feature-copy { padding:30px 24px; }
  .ls-feature-copy h2,.ls-catalog-intro h2 { font-size:36px; }
  .ls-feature>img { min-height:0; aspect-ratio:1.5; }
  .ls-reading-grid { grid-template-columns:1fr; gap:15px; }
  .ls-reading-grid h3 { margin:20px 0; }
  .ls-product-dialog[open] { grid-template-columns:1fr; max-width:420px; }
  .ls-dialog-copy { padding:25px; }
}
@media(prefers-reduced-motion:no-preference) {
  .ls-editorial button { transition:background-color .18s,border-color .18s; }
}

/* Ziwei page shell: silver + lemon, with the approved chart dimensions intact.
   Keep the original main width, padding and 1px border so the chart scale stays exact. */
body[data-page="紫微斗数"]:has(#ziwei-panel:not([hidden])) { background:#f7f0e7; color:var(--ls-ink); }
body[data-page="紫微斗数"] main:has(#ziwei-panel:not([hidden])) { margin:0 auto; background:#fff; border-color:transparent; border-radius:0; }
body[data-page="紫微斗数"] main:has(#ziwei-panel:not([hidden])) .ls-header #navigation button { background:transparent; color:var(--ls-ink); border:0; }
body[data-page="紫微斗数"] .ls-page-content { border-top:0; padding-top:32px; }
body[data-page="紫微斗数"] #section-title { margin:0 0 10px; color:var(--ls-ink); font-size:28px; font-weight:600; }
body[data-page="紫微斗数"] #section-description { margin:0 0 30px; color:var(--ls-muted); font-size:15px; }

/* Scope form styling to its own container; no rules reach the chart's cells or text. */
#ziwei-panel #zw-input-view { background:#fff; border-color:var(--ls-line); border-radius:12px; }
#ziwei-panel #zw-input-view .zw-intro { background:var(--ls-silver); border-bottom-color:var(--ls-line); box-shadow:inset 4px 0 var(--ls-lemon); }
#ziwei-panel #zw-input-view .zw-eyebrow { color:#796255; letter-spacing:3px; }
#ziwei-panel #zw-input-view :is(h3,h4,label) { color:var(--ls-ink); }
#ziwei-panel #zw-input-view .zw-intro p { color:var(--ls-muted); }
#ziwei-panel #zw-form { background:#fff; }
#ziwei-panel #zw-input-view :is(input,select) { color:var(--ls-ink); background:#fffaf3; border-color:#d8bca0; border-radius:8px; accent-color:#8c603e; }
#ziwei-panel #zw-input-view input::placeholder { color:#8b7766; opacity:1; }
#ziwei-panel #zw-input-view :is(.zw-date-box,.zw-manual) { background:#f7f0e7; border-color:var(--ls-line); }
#ziwei-panel #zw-input-view .zw-tabs { border-color:#dcc1a6; }
#ziwei-panel #zw-input-view button { background:#fff; color:var(--ls-ink); border-color:#d8bca0; border-radius:24px; }
#ziwei-panel #zw-input-view button:hover { background:#f8ecdd; }
#ziwei-panel #zw-input-view .zw-tabs button { border-color:transparent; }
#ziwei-panel #zw-input-view .zw-tabs button[aria-pressed="true"],
#ziwei-panel #zw-input-view #zw-submit { background:var(--ls-lemon); color:#4d2c20; border-color:transparent; font-weight:700; }
#ziwei-panel #zw-input-view .zw-tabs button[aria-pressed="true"]:hover,
#ziwei-panel #zw-input-view #zw-submit:hover { background:#e6bb96; }
#ziwei-panel #zw-input-view #zw-whatsapp { background:#fff; color:var(--ls-ink); border-color:#c9a482; }
#ziwei-panel #zw-input-view #zw-whatsapp:hover { background:#f8ecdd; }
#ziwei-panel #zw-input-view :is(input,select,button):focus-visible { outline:2px solid #745036; outline-offset:3px; }
#ziwei-panel #zw-edit { background:var(--ls-silver); color:var(--ls-ink); border-color:#ddc2a7; border-radius:24px; }
#ziwei-panel #zw-edit:hover { background:#f3e3d0; }
#ziwei-panel #zw-edit:focus-visible { outline:2px solid #745036; outline-offset:3px; }
#ziwei-panel #zw-chart-badge { color:#785338; background:#f9e9d5; border-color:#dfbd97; }
@media(max-width:700px) {
  body[data-page="紫微斗数"] .ls-page-content { padding-top:25px; }
}

/* v18 approved mirror rose gold. Existing chart metrics are not overridden. */
:root {
  --rg-paper:#fffaf4; --rg-soft:#f8eddf; --rg-ink:#4d2c20;
  --rg-metal:linear-gradient(112deg,#5b3022 0%,#b77553 8%,#e9b995 17%,#fff7de 22%,#975736 25%,#673822 30%,#dfab83 40%,#fff4d8 45%,#a26744 49%,#653820 54%,#ce946b 63%,#f6d5ae 72%,#fff8e3 75%,#96613f 80%,#dfad81 90%,#fff0ca 94%,#76472b 100%);
  --rg-champagne:linear-gradient(115deg,#e8c39f,#fff0db 48%,#d5a87e);
}
body:not([data-page="紫微斗数"]),body[data-page="紫微斗数"]:has(#ziwei-panel:not([hidden])) {background:#f6eee4;color:var(--rg-ink)}
body:not([data-page="紫微斗数"]) main,body[data-page="紫微斗数"] main:has(#ziwei-panel:not([hidden])) {background:var(--rg-paper)}
.ls-header {position:relative;background:var(--rg-paper);border-bottom-color:transparent}
.ls-header::after {content:"";position:absolute;bottom:0;left:0;right:0;height:3px;background:var(--rg-metal);box-shadow:0 1px 2px #8a502b45;pointer-events:none}
.ls-header .ls-wordmark {color:#744529;font-family:Georgia,"Times New Roman",serif}
.ls-header .ls-wordmark span {font-family:"Microsoft YaHei",sans-serif;color:#8a6347}
main .ls-header #navigation button,main:has(#ziwei-panel:not([hidden])) .ls-header #navigation button,body[data-page="紫微斗数"] main:has(#ziwei-panel:not([hidden])) .ls-header #navigation button {color:var(--rg-ink)}
.ls-header #navigation button[aria-pressed="true"]::after,.ls-header #navigation button:hover::after,.ls-header #navigation button[aria-pressed="true"]:hover::after {background:var(--rg-metal)}
.ls-hero {min-height:520px;background:#f7ebdb}
.ls-hero-image {object-position:center 54%}
.ls-hero::after {background:linear-gradient(90deg,#fff7e88c,#fff7e833 40%,transparent 62%)}
.ls-hero-copy {width:56%;padding-bottom:70px}
.ls-hero-copy h1 {font-size:clamp(46px,5.2vw,72px);color:#48230f}
.ls-hero-copy .ls-hero-intro {color:#6d4832;letter-spacing:1px;line-height:1.9}
.ls-editorial .ls-pill,.ls-product-dialog .ls-pill {
 border:2px solid transparent;background:var(--rg-champagne) padding-box,var(--rg-metal) border-box;
 color:var(--rg-ink);box-shadow:0 2px 3px #7f4b2c33,inset 0 1px #fff4d5;border-radius:9px
}
.ls-editorial .ls-pill:hover,.ls-product-dialog .ls-pill:hover {background:linear-gradient(#f5dabc,#f5dabc) padding-box,var(--rg-metal) border-box}
.ls-editorial .ls-pill-dark {color:#fffaf1;background:linear-gradient(110deg,#8b5333,#bf8c61 48%,#875031) padding-box,var(--rg-metal) border-box}
.ls-editorial .ls-pill-dark:hover {background:linear-gradient(#98633f,#98633f) padding-box,var(--rg-metal) border-box}
.ls-services {display:block;margin:24px 28px 0;background:transparent}
.ls-service-list {padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}
.ls-service-list>.ls-eyebrow {grid-column:1/-1;color:#8b6345;margin:0}
.ls-service-list .ls-service,.ls-service-list .ls-service:last-child {
 display:grid;grid-template-columns:1fr 30px;gap:22px 8px;padding:26px 24px;border:2px solid transparent;
 border-radius:12px;background:linear-gradient(var(--rg-paper),var(--rg-paper)) padding-box,var(--rg-metal) border-box;
 box-shadow:0 2px 3px #74432629;align-items:center;min-width:0
}
.ls-service-list .ls-service:hover {background:linear-gradient(#fff3e3,#fff3e3) padding-box,var(--rg-metal) border-box}
.ls-service .ls-number {grid-column:1/-1;color:#9d6842;font-size:30px}
.ls-service-text strong {font-size:25px;color:#4b2a16}
.ls-service-text small {color:#79604c;overflow-wrap:anywhere}
.ls-service-list .ls-service>span:last-child {border:1px solid #aa7750;border-radius:50%;width:30px;height:30px;display:grid;place-items:center}
.ls-product-grid .ls-product-card {border:2px solid transparent;border-radius:12px;background:linear-gradient(var(--rg-paper),var(--rg-paper)) padding-box,var(--rg-metal) border-box;box-shadow:0 2px 3px #74432620}
.ls-product-grid .ls-product-card:hover {border-color:transparent;background:linear-gradient(#fff0df,#fff0df) padding-box,var(--rg-metal) border-box}
.ls-member-banner {border:2px solid transparent;border-radius:14px;background:linear-gradient(#f6e6d1,#f6e6d1) padding-box,var(--rg-metal) border-box}
.ls-member-art {background-image:linear-gradient(90deg,#f6e6d1,transparent 55%),url('/ls-theme-assets/hero.png')}
.ls-feature {border:2px solid transparent;border-radius:14px;overflow:hidden;background:linear-gradient(var(--rg-paper),var(--rg-paper)) padding-box,var(--rg-metal) border-box}
.ls-reading-grid article {border:2px solid transparent;border-radius:12px;background:linear-gradient(#fff7eb,#fff7eb) padding-box,var(--rg-metal) border-box}
.ls-footer {background:var(--rg-paper);position:relative;border-top-color:transparent}
.ls-footer::before {content:"";position:absolute;top:0;left:0;right:0;height:2px;background:var(--rg-metal)}
.ls-product-dialog {background:var(--rg-paper);border:2px solid transparent;background:linear-gradient(var(--rg-paper),var(--rg-paper)) padding-box,var(--rg-metal) border-box}
/* Forms and calendar: existing text sizes, layout and computation remain intact. */
#calendar-panel :is(button,input,select),body #ziwei-panel #zw-input-view :is(input,select) {border-color:#cba17c;background:#fffcf6;color:var(--rg-ink)}
#calendar-panel :is(.cal-summary,.cal-pillar,.cal-term),#calendar-panel #ls-solar,#calendar-panel #ls-month-calendar {border-color:transparent;background:linear-gradient(#fff9ef,#fff9ef) padding-box,var(--rg-metal) border-box}
#calendar-panel #query-button,#calendar-panel button[aria-pressed="true"],#calendar-panel #ls-month-calendar .mc-day.mc-selected {border-color:transparent;color:var(--rg-ink);background:var(--rg-champagne) padding-box,var(--rg-metal) border-box}
body #ziwei-panel #zw-input-view {border-color:transparent;background:linear-gradient(var(--rg-paper),var(--rg-paper)) padding-box,var(--rg-metal) border-box;box-shadow:0 2px 4px #7b48272a}
body #ziwei-panel #zw-form {background:var(--rg-paper)}
body #ziwei-panel #zw-input-view .zw-intro {background:#f7e9d7;border-color:#d8b998;box-shadow:inset 4px 0 #be8558}
body #ziwei-panel #zw-input-view :is(.zw-date-box,.zw-manual) {background:#fffbf4;border-color:#dec4a7}
body #ziwei-panel #zw-input-view button,body #ziwei-panel #zw-input-view #zw-whatsapp,body #ziwei-panel #zw-edit,body #ziwei-panel .zw-report-tools button {border-color:transparent;border-radius:9px;color:var(--rg-ink);background:linear-gradient(#fff8eb,#fff8eb) padding-box,var(--rg-metal) border-box;box-shadow:0 1px 2px #80502d29}
body #ziwei-panel #zw-input-view .zw-tabs button[aria-pressed="true"],body #ziwei-panel #zw-input-view #zw-submit,body #ziwei-panel #zw-report-copy,body #ziwei-panel .zw-report-languages button[aria-pressed=true] {border-color:transparent;color:var(--rg-ink);background:var(--rg-champagne) padding-box,var(--rg-metal) border-box}
body #ziwei-panel #zw-input-view button:hover,body #ziwei-panel #zw-input-view #zw-whatsapp:hover,body #ziwei-panel #zw-edit:hover,body #ziwei-panel .zw-report-tools button:hover {background:linear-gradient(#f3d9b9,#f3d9b9) padding-box,var(--rg-metal) border-box}
body #ziwei-panel .zw-number-results {border-image:var(--rg-metal) 1}
/* Chart ONLY: change the visible grid material. No dimensions, padding, fonts,
   star colors, palace fills, Ming yellow or center content are changed. */
body #ziwei-panel .zw-chart {border-color:transparent;background:var(--rg-metal);background-origin:border-box}
body #ziwei-panel .zw-chart::after,body #ziwei-panel .zw-palace::after,body #ziwei-panel .zw-center::before {
 content:"";position:absolute;pointer-events:none;z-index:2;
 background:var(--rg-metal);-webkit-mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);
 -webkit-mask-composite:xor;mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);mask-composite:exclude
}
body #ziwei-panel .zw-chart::after {inset:calc(-1 * var(--zw-u));padding:calc(3 * var(--zw-u))}
body #ziwei-panel .zw-palace::after,body #ziwei-panel .zw-center::before {inset:calc(-.5 * var(--zw-u));padding:calc(1.5 * var(--zw-u))}
@supports not ((mask-composite:exclude) or (-webkit-mask-composite:xor)) {
 body #ziwei-panel .zw-chart::after,body #ziwei-panel .zw-palace::after,body #ziwei-panel .zw-center::before {display:none}
}
@media(max-width:900px) {.ls-service-list {gap:12px}.ls-service-list .ls-service {padding:22px 16px}.ls-service-text strong {font-size:22px}}
@media(max-width:700px) {
 .ls-hero {min-height:610px}.ls-hero-copy {width:100%;padding:32px 24px 0}.ls-hero-copy h1 {font-size:46px}
 .ls-hero-image {object-position:76% bottom}.ls-hero::after {background:linear-gradient(180deg,#fff6e7f5,#fff6e7d9 35%,transparent 72%)}
 .ls-services {margin:20px 18px 0}.ls-service-list {grid-template-columns:1fr;gap:14px}.ls-service-list .ls-service {grid-template-columns:35px 1fr 30px;gap:15px;padding:24px 20px}.ls-service .ls-number {grid-column:auto}
 .ls-member-art {background-image:linear-gradient(180deg,#f6e6d1,transparent 55%),url('/ls-theme-assets/hero.png')}
}

/* v19: viewport-wide layout and readable fluid type. Chart internals scale together. */
:root {
 --ls-body-size:clamp(1.25rem,1.1rem + .4vw,1.625rem);
 --ls-small-size:clamp(1.125rem,1rem + .25vw,1.375rem);
 --ls-control-size:clamp(1.375rem,1.15rem + .45vw,1.75rem);
 --ls-gutter:clamp(12px,1.5vw,32px);
}
body {padding:0;font-size:var(--ls-body-size);line-height:1.7}
body main,body:not([data-page="紫微斗数"]) main,body[data-page="紫微斗数"] main:has(#ziwei-panel:not([hidden])) {
 width:100%;max-width:none;min-width:0;margin:0;padding:0;border:0;border-radius:0
}
body main .ls-page-content,body:not([data-page="紫微斗数"]) .ls-page-content,body[data-page="紫微斗数"] .ls-page-content {padding:var(--ls-gutter);min-width:0}
body .ls-header {padding:20px var(--ls-gutter);gap:16px 24px}
body main .ls-header #navigation {flex-wrap:wrap;gap:8px 14px;min-width:0}
body main .ls-header #navigation button {font-size:var(--ls-control-size);min-height:54px;white-space:normal;padding:12px}
body .ls-wordmark span {font-size:1rem;letter-spacing:3px}
body .ls-editorial p,body .ls-hero-copy .ls-hero-intro,body .ls-member-banner p:not(.ls-eyebrow),body .ls-feature-copy>p:not(.ls-eyebrow),body .ls-reading-grid p,body .ls-catalog-intro>p:last-child,body .ls-membership-status p,body #section-description {font-size:var(--ls-body-size)}
body .ls-editorial :is(.ls-pill,.ls-text-link),body .ls-product-dialog :is(p,button),body .ls-product-copy strong {font-size:var(--ls-body-size);min-height:48px}
body .ls-service-text small,body .ls-product-copy small,body .ls-product-copy .ls-product-more,body .ls-sample-note,body .ls-footer,body .ls-footer .ls-text-link,body .ls-reading-grid article>span {font-size:var(--ls-small-size);line-height:1.65;color:#654735}
body .ls-editorial .ls-eyebrow,body .ls-eyebrow,body .ls-hero-foot {font-size:1rem;letter-spacing:2px;flex-wrap:wrap}
body .ls-service-text strong,body .ls-reading-grid h3 {font-size:clamp(1.5rem,1.25rem + .6vw,2rem)}
body .ls-editorial h2,body #section-title {font-size:clamp(1.875rem,1.5rem + 1vw,3rem)}
body .ls-hero {min-height:clamp(540px,44vw,850px)}
body .ls-hero-copy h1 {font-size:clamp(2.75rem,2rem + 3vw,6rem)}
body #calendar-panel,body #calendar-panel #ls-huangli {font-size:var(--ls-body-size);line-height:1.7}
body #calendar-panel :is(input,select,button) {font-size:var(--ls-control-size);min-height:54px;max-width:100%;min-width:0}
body #calendar-panel :is(.cal-label,.cal-note,.hl-note,.hl-label,.hl-value,.hl-tag),body #calendar-panel #ls-solar :is(label,.solar-help),body #calendar-panel #ls-huangli :is(small,label) {font-size:var(--ls-small-size)}
body #calendar-panel #ls-month-calendar :is(.mc-week,.mc-sub) {font-size:clamp(1rem,.9rem + .3vw,1.375rem)}
body #calendar-panel #ls-month-calendar .mc-number {font-size:clamp(1.5rem,1.15rem + 1vw,2.5rem)}
body #calendar-panel #ls-month-calendar :is(.mc-day,.mc-empty) {height:auto;min-height:110px;padding:10px 2px;gap:6px}
body #calendar-panel #ls-month-calendar .mc-header {flex-wrap:wrap}
body #calendar-panel #ls-month-calendar .mc-pickers {flex-wrap:wrap;min-width:0}
body #ziwei-panel #zw-input-view,body #ziwei-panel #zw-input-view label {font-size:var(--ls-control-size)}
body #ziwei-panel #zw-form {padding:var(--ls-gutter)}
body #ziwei-panel :is(.zw-two,.zw-three,.zw-birth-row)>* {min-width:0}
body #ziwei-panel :is(.zw-number-title,.zw-number-values) {font-size:clamp(1.75rem,1.5rem + .5vw,2.25rem)}
body #ziwei-panel .zw-chart-scroll {width:100%;max-width:100%;container-type:inline-size;overflow-x:auto}
body #ziwei-panel .zw-chart {width:100%;max-width:none;--zw-u:calc(100cqw / 904)}
@media (max-width:1100px) {
 body .ls-product-grid {grid-template-columns:repeat(2,minmax(0,1fr))}
 body .ls-reading-grid {grid-template-columns:repeat(2,minmax(0,1fr))}
 body #ziwei-panel .zw-three {grid-template-columns:1fr}
}
@media (max-width:700px) {
 body .ls-header {align-items:flex-start}
 body main .ls-header #navigation {width:100%;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}
 body main .ls-header #navigation button {font-size:1.25rem;padding:10px 3px}
 body .ls-hero {min-height:650px;align-items:flex-start}
 body .ls-hero-copy {padding:32px var(--ls-gutter) 100px;width:100%}
 body .ls-hero-foot {left:var(--ls-gutter);right:var(--ls-gutter)}
 body .ls-services {margin:20px var(--ls-gutter)}
 body .ls-goods {padding:28px var(--ls-gutter) !important}
 body .ls-member-banner {margin:0 var(--ls-gutter) 24px}
 body .ls-reading-grid {grid-template-columns:1fr}
 body #ziwei-panel .zw-two {grid-template-columns:1fr}
 body #calendar-panel #ls-month-calendar {padding:10px 4px}
 body #calendar-panel #ls-month-calendar :is(.mc-grid,.mc-week) {gap:2px}
 body #calendar-panel #ls-month-calendar :is(.mc-day,.mc-empty) {min-height:88px;padding:6px 0}
 body #calendar-panel #ls-month-calendar .mc-sub {white-space:normal;line-height:1.3;overflow-wrap:anywhere}
}
@media (max-width:480px) {
 body .ls-product-grid {grid-template-columns:1fr}
 body #ziwei-panel .zw-birth-row {grid-template-columns:1fr}
 body #ziwei-panel :is(#zw-solar-fields,.zw-time-field) {grid-column:1/-1}
 body #calendar-panel #ls-month-calendar :is(select,.mc-nav) {font-size:1.125rem}
}

body #ziwei-panel #zw-input-view :is(input,select,button),body #ziwei-panel :is(#zw-edit,.zw-report-tools button) {font-size:var(--ls-control-size);min-height:58px;max-width:100%;min-width:0}
body #ziwei-panel #zw-input-view .zw-help,body #ziwei-panel :is(.zw-status,.zw-badge) {font-size:var(--ls-small-size);line-height:1.7}

/* v20: cap the chart's CSS width so zooming out actually shrinks it.
   The wrapper is the size-query container; all chart measurements remain proportional. */
body #ziwei-panel .zw-chart-scroll {
 width:100%;max-width:1440px;margin-inline:auto;container-type:inline-size;overflow:hidden
}
body #ziwei-panel .zw-chart {width:100%;max-width:100%;--zw-u:calc(100cqw / 904)}

/* v21 feng shui tools */
.ls-tools-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px;margin:28px 0}
.ls-tool-card{display:block;text-align:left;text-decoration:none;color:inherit;font:inherit;padding:30px;border:1px solid transparent;border-radius:14px;background:linear-gradient(#faf8f3,#faf8f3) padding-box,linear-gradient(120deg,#694735,#e4bba2,#fff4df,#a46b53,#f0d4bb) border-box;min-width:0}
.ls-tool-card h3{font-size:clamp(24px,2vw,32px);margin:16px 0 10px}.ls-tool-card p{font-size:20px;line-height:1.6}.ls-tool-card>span:last-child{color:#85513d}.ls-tool-card:is(a,button):hover{box-shadow:0 8px 24px #865d3820}.ls-tool-card:focus-visible{outline:3px solid #97674e;outline-offset:4px}.ls-tool-pending{color:#78736d}
@media(max-width:640px){.ls-tools-grid{grid-template-columns:1fr;gap:16px}.ls-tool-card{padding:24px}}
