/* AstroInsight / White Botanical Observatory
   Pure-white surfaces, sage controls and champagne astronomical accents.
   Shared by the application shell, account flows and reading modules. */
:root {
  --astro-bg: #ffffff;
  --astro-panel: #ffffff;
  --astro-input: #ffffff;
  --astro-raised: #f5f8f6;
  --astro-line: #d9dfdc;
  --astro-line-soft: #e7ebe8;
  --astro-text: #1e2c2c;
  --astro-muted: #66716f;
  --astro-gold: #476e5c;
  --astro-gold-hover: #365846;
  --astro-lavender: #476e5c;
  --astro-decor: #a7874e;
  --astro-radius: 7px;
  --astro-serif: Georgia, 'Yu Mincho', 'Hiragino Mincho ProN', 'Noto Serif JP', serif;
  --astro-sans: 'Yu Gothic UI', 'Hiragino Kaku Gothic ProN', 'Noto Sans JP', Meiryo, sans-serif;
  --mobile-dock-h: 72px;
  --mobile-dock-bg: #ffffff;
  --browser-bottom-fill: #ffffff;
}
html { scroll-behavior: smooth; scroll-padding-top: 88px; }
body.astroApp { background: var(--astro-bg); color: var(--astro-text); font-family: var(--astro-sans); font-size: 14px; line-height: 1.7; -webkit-font-smoothing: antialiased; }
html { color-scheme: light; background-color: var(--astro-bg); }
.astroApp #appViewport { background: var(--astro-bg); }
.astroApp * { box-sizing: border-box; }
.astroApp ::selection { background: #476e5c25; color: var(--astro-text); }
.astroApp :is(button, input, select, textarea) { font-family: var(--astro-sans); font-size: 14px; line-height: 1.5; }
.astroApp button, .astroApp summary, .astroApp a { -webkit-tap-highlight-color: transparent; }
.astroApp button { cursor: pointer; }
.astroApp :is(button, a, input, select, textarea, summary):focus-visible { outline: 2px solid var(--astro-gold); outline-offset: 4px; }
.astroApp :is(button, input, select, textarea):disabled { opacity: .48; cursor: not-allowed; }
.astroApp :is(section, [id^='tab-']) { scroll-margin-top: 8px; }
.astroApp :is(#profileSection, #resultsTabs) { scroll-margin-top: 8px; }
.astroApp .hidden { display: none !important; }
.astroApp .site-header { position: sticky; top: 0; z-index: 45; border-bottom: 1px solid var(--astro-line-soft); background: #fffffff5; backdrop-filter: blur(16px); }
.header-inner { max-width: 1536px; padding: 0 28px; margin: auto; min-height: 66px; display: flex; align-items: center; justify-content: space-between; gap: 24px; }
.brand { display: inline-flex; gap: 20px; align-items: center; color: var(--astro-text); text-decoration: none; font: 28px/1.2 var(--astro-serif); letter-spacing: .01em; flex-shrink: 0; }
.brand-mark { width: 38px; height: 38px; color: var(--astro-gold); }
.brand-mark svg { width: 100%; height: 100%; }
.header-nav { display: flex; align-items: center; gap: 16px; margin-left: 0; flex-shrink: 0; }
.header-nav a { text-decoration: none; color: var(--astro-text); font-size: 14px; letter-spacing: .1em; padding: 10px 0; transition: color .15s; }
.header-nav a + a { padding-left: 16px; border-left: 1px solid var(--astro-line); }
.header-nav a { white-space: nowrap; }
.header-nav a[aria-current='page'] { color: var(--astro-gold); }
.header-nav a:hover { color: var(--astro-gold); }
.header-actions { display: flex; align-items: center; gap: 10px; }
.header-icon { display: grid; place-items: center; width: 42px; height: 42px; color: var(--astro-muted); border: 0; border-radius: 8px; background: transparent; }
.header-icon svg { width: 24px; height: 24px; }
.header-icon:hover { color: var(--astro-text); background: var(--astro-raised); }
#pointsWidget { display: flex; align-items: center; gap: 10px; }
#pointsWidget [data-login-badge] { background: none !important; border: none !important; box-shadow: none; color: var(--astro-text); font-size: 13px; font-weight: 500; max-width: 180px; overflow: hidden; text-overflow: ellipsis; min-height: 42px; }
#pointsWidget #btnPointsOpen { background: var(--astro-panel) !important; color: var(--astro-gold) !important; border: 1px solid var(--astro-line) !important; border-radius: 7px; padding: 6px 11px; box-shadow: none !important; text-shadow: none; transition: background .15s; min-height: 36px; }
#pointsWidget #btnPointsOpen:hover { transform: none; filter: none; background: var(--astro-raised) !important; }
#pointsWidget #btnPointsOpen :is(.text-slate-300, [data-points-value]) { color: var(--astro-gold) !important; font-size: 12px; font-weight: 600 !important; }
.astroApp #mainContent { width: calc(100% - 80px); max-width: 1456px; margin: 0 auto; padding: 0 0 48px; }
.workspace-intro { display: grid; grid-template-columns: auto 1fr; align-items: center; gap: 14px 38px; padding: 18px 26px 16px; min-height: 154px; position: relative; }
.workspace-intro h1 { grid-row: span 2; margin: 0; font: 42px/1.42 var(--astro-serif); letter-spacing: .055em; color: var(--astro-text); }
.intro-copy { margin: 8px 0 0; font-size: 13px; line-height: 2.1; color: #66716f; letter-spacing: .025em; }
.journey { display: flex; justify-self: end; align-items: center; gap: 18px; list-style: none; padding: 0; margin: 0; color: var(--astro-muted); font-size: 11px; white-space: nowrap; }
.journey li { display: flex; align-items: center; gap: 9px; }
.journey li > span { font: 22px/1 var(--astro-serif); }
.journey li.is-current > span { color: var(--astro-gold); }
.journey svg { width: 25px; height: 16px; margin-right: 5px; color: #7a8680; }
@media (min-width: 1450px) {
  .workspace-intro { grid-template-columns: auto 1fr auto; gap: 38px; }
  .workspace-intro h1 { grid-row: auto; }
  .intro-copy { font-size: 13px; }
}
.analysis-workspace { display: grid; grid-template-columns: minmax(350px, 34%) minmax(0, 1fr); gap: 16px; align-items: start; }
.workspace-panel { border: 1px solid var(--astro-line); border-radius: var(--astro-radius); background: var(--astro-panel); min-width: 0; }
.profile-panel { padding: 24px; }
.panel-heading h2 { margin: 0; font: 23px/1.5 var(--astro-serif); letter-spacing: .045em; color: var(--astro-text); }
.panel-heading p { margin: 7px 0 0; color: var(--astro-muted); font-size: 12px; letter-spacing: .03em; }
.profile-toolbar { display: flex; gap: 10px; align-items: center; border-bottom: 1px solid var(--astro-line); padding: 12px 0; margin-bottom: 17px; }
.profile-toolbar #profileSelect { flex: 1; min-width: 0; max-width: none; width: 100%; font-size: 12px; min-height: 38px; }
.quiet-button { display: inline-flex; align-items: center; justify-content: center; border: 0; background: none; color: var(--astro-muted); min-width: 38px; min-height: 38px; padding: 6px; border-radius: 6px; }
.quiet-button:hover { color: var(--astro-text); background: var(--astro-raised); }
.quiet-button svg { width: 17px; height: 17px; flex-shrink: 0; }
.profile-save { white-space: nowrap; font-size: 12px !important; }
.profile-manager { position: relative; }
.profile-manager > summary { min-width: 32px; min-height: 38px; padding: 6px; list-style: none; color: var(--astro-muted); cursor: pointer; }
.profile-manager > summary::-webkit-details-marker { display: none; }
.profile-manager-popover { position: absolute; top: 42px; right: 0; z-index: 30; width: 270px; background: var(--astro-raised); padding: 10px; border: 1px solid var(--astro-line); border-radius: 10px; box-shadow: 0 12px 32px #21382b14; }
.profile-manager-actions { display: grid; gap: 6px; }
.profile-manager-actions button { text-align: left; padding: 11px; white-space: normal; font-size: 12px; }
.astroApp :is(.ui-control, .ui-control-deep, .ui-shell) { background: var(--astro-input); color: var(--astro-text); border: 1px solid var(--astro-line); border-radius: 6px; }
.astroApp :is(.ui-control, .ui-control-deep) { min-height: 42px; padding: 9px 12px; }
.astroApp :is(input, textarea)::placeholder { color: #808b87; opacity: 1; }
.astroApp :is(.ui-control, .ui-control-deep):focus, .astroApp .ui-shell:focus-within { border-color: var(--astro-gold); box-shadow: 0 0 0 3px #476e5c13; }
.astroApp select { color-scheme: light; }
.astroApp select option, .astroApp select optgroup { color: var(--astro-text); background: var(--astro-panel); }
.astroApp #profileForm { display: grid !important; grid-template-columns: minmax(0, 1fr) !important; gap: 13px; overflow: visible; margin: 0; }
.astroApp #profileForm .ui-field { border: 0; padding: 0; box-shadow: none; border-radius: 0; background: none; transition: none; }
.astroApp #profileForm .ui-field:focus-within { box-shadow: none; transform: none; }
.astroApp #profileForm .ui-field > label { font-size: 12px; font-weight: 500; color: var(--astro-text); gap: 9px; margin-bottom: 5px; line-height: 1.5; }
.astroApp #profileForm .uiFieldIcon { display: none; }
.astroApp #profileForm .ui-field .ui-pill-muted, .astroApp #profileForm label > span { background: none; border: 0; color: var(--astro-muted); padding: 0; font-size: 10px; font-weight: 500; letter-spacing: .03em; margin-left: 0; }
.astroApp #profileForm label[for='birthDate'] > span { color: var(--astro-gold); }
.astroApp #profileForm .ui-field :is(.ui-control, .ui-control-deep, .ui-shell) { background: var(--astro-input); border-color: var(--astro-line); min-height: 39px; margin-top: 0; }
.astroApp #profileForm .ui-field .ui-shell:focus-within { border-color: var(--astro-gold); }
.astroApp #profileForm :is(input[type='date'], input[type='time']) { min-height: 39px; color-scheme: light; color: var(--astro-text); padding: 7px 12px; }
.astroApp #profileForm .field-birthTime { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 0 15px; align-items: center; }
.astroApp #profileForm .field-birthTime > label { grid-column: 1 / -1; }
.astroApp #profileForm .ui-field-help { border: 0; background: none; border-radius: 0; padding: 0; margin: 0; font-size: 11px; }
.astroApp #profileForm .ui-field-help label { max-width: 135px; font-size: 11px; line-height: 1.6; }
.astroApp .ui-check { width: 17px; height: 17px; flex-shrink: 0; accent-color: var(--astro-gold); color-scheme: light; cursor: pointer; }
.astroApp #profileForm [role='status']:empty { display: none; }
.astroApp #profileForm [aria-invalid='true'] { border-color: #bd6270 !important; }
.astroApp #profileForm [role='status'] { color: #a13e52; font-size: 12px; }
.settings-disclosure { border: 1px solid var(--astro-line); background: transparent; border-radius: 6px; padding: 0; }
.settings-disclosure > summary { cursor: pointer; font-size: 12px; padding: 10px 13px; min-height: 42px; color: var(--astro-muted); list-style: none; display: flex; justify-content: space-between; align-items: center; }
.settings-disclosure > summary::-webkit-details-marker { display: none; }
.settings-disclosure > summary::after { content: ''; display: block; width: 7px; height: 7px; border-bottom: 1px solid var(--astro-gold); border-right: 1px solid var(--astro-gold); transform: rotate(45deg) translateY(-2px); margin-right: 4px; }
.settings-disclosure[open] > summary::after { transform: rotate(225deg); }
.optional-fields, .advanced-grid { display: grid; grid-template-columns: minmax(0, 1fr); gap: 16px; padding: 16px; border-top: 1px solid var(--astro-line-soft); }
.advanced-grid > * { min-width: 0; grid-column: auto !important; }
.advanced-grid label { font-size: 12px; color: var(--astro-muted); }
.consent-panel { border: 1px solid var(--astro-line); padding: 12px 14px; background: #f5f8f6; border-radius: 7px; color: var(--astro-muted); font-size: 11px; line-height: 1.75; }
.consent-panel > div:first-child { font-size: 12px; color: var(--astro-text); margin-bottom: 5px; font-weight: 500; }
#privacyConsentDesc { font-size: 11px; color: var(--astro-muted); }
.consent-panel > label { align-items: flex-start; font-size: 11px; font-weight: 500; gap: 9px; margin-top: 10px; line-height: 1.7; cursor: pointer; }
.astroApp #profileForm .consent-panel label > span { font-size: 11px; color: var(--astro-text); }
#simpleModeNoAIDesc { font-size: 10px; margin-left: 26px; }
.text-link { color: #476e5c; text-underline-offset: 3px; text-decoration: underline; }
.primary-button, .astroApp .ctaAnalyze { background: var(--astro-gold) !important; background-image: none !important; color: #ffffff !important; border: 1px solid var(--astro-gold); border-radius: 7px; box-shadow: none !important; text-shadow: none; filter: none; }
#btnAnalyze { display: flex; align-items: center; justify-content: center; gap: 14px; min-height: 52px; padding: 12px 20px; font-size: 17px; font-weight: 600; letter-spacing: .12em; transition: background .18s; position: relative; }
#btnAnalyze > svg { position: absolute; right: 21px; width: 22px; height: 22px; }
.primary-button:hover:not(:disabled), .astroApp .ctaAnalyze:hover:not(:disabled) { background: var(--astro-gold-hover) !important; transform: none; filter: none; }
.astroApp .ctaAnalyze::before, .astroApp .ctaAnalyze::after { display: none; }
.results-panel { padding: 20px 24px 26px; min-height: 720px; container-type: inline-size; }
.results-heading { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 14px; }
.expand-button { color: #66716f; }
.result-navigation { margin-top: 0; }
.result-tab-list { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); border: 1px solid var(--astro-line); border-radius: 6px; overflow: hidden; gap: 0; background: #ffffff; }
.astroApp .tabBtn { border: 0; border-radius: 0; min-width: 0; min-height: 46px; padding: 12px 5px; font-size: 13px; line-height: 1.5; color: var(--astro-muted); background: none; box-shadow: none; text-shadow: none; transition: background .15s, color .15s; white-space: nowrap; justify-content: center; }
.astroApp .tabBtn:nth-child(-n+4) { border-bottom: 1px solid var(--astro-line-soft); }
.astroApp .tabBtn .tabBtnInner { justify-content: center; }
.astroApp .tabBtn:hover { color: var(--astro-text); background: #ffffff05; transform: none; filter: none; box-shadow: none; }
.astroApp .tabBtn[aria-selected='true'], .astroApp .tabBtn.bg-purple-600 { color: var(--astro-lavender) !important; background: #476e5c08 !important; box-shadow: inset 0 -2px var(--astro-lavender); filter: none; transform: none; }
.astroApp .tabBtn:focus-visible { outline-offset: -4px; box-shadow: none; }
.astroApp .tabPanel { margin-top: 18px; min-width: 0; }
.analysis-empty { min-height: 505px; display: flex; flex-direction: column; align-items: center; justify-content: center; text-align: center; padding: 18px 10px 6px; }
.analysis-empty-art { display: block; width: 214px; height: 214px; object-fit: contain; margin-bottom: 16px; mask-image: linear-gradient(to bottom, transparent, #000 6%, #000 94%, transparent), linear-gradient(to right, transparent, #000 6%, #000 94%, transparent); mask-composite: intersect; }
.analysis-empty h3 { font: 26px/1.6 var(--astro-serif); letter-spacing: .035em; margin: 0 0 11px; color: var(--astro-text); }
.analysis-empty-description { max-width: 450px; color: #66716f; font-size: 13px; line-height: 2; margin: 0 auto; text-wrap: pretty; }
.analysis-empty-description { max-width: 420px; }
.analysis-disciplines { display: flex; align-items: stretch; justify-content: center; width: 100%; gap: 0; margin: 30px 0 27px; }
.analysis-disciplines > div { flex: 1; min-width: 0; display: flex; align-items: center; gap: 15px; padding: 0 18px; text-align: left; }
.analysis-disciplines > div + div { border-left: 1px solid var(--astro-line); }
.discipline-symbol { width: 48px; height: 48px; color: var(--astro-gold); flex-shrink: 0; }
.analysis-disciplines strong { display: block; font: 16px/1.6 var(--astro-serif); color: var(--astro-text); white-space: nowrap; }
.analysis-disciplines p { font-size: 11px; line-height: 1.8; color: var(--astro-muted); margin: 2px 0 0; }
.analysis-empty-tip { border-top: 1px solid var(--astro-line); width: 94%; padding-top: 22px; position: relative; color: var(--astro-muted); font-size: 12px; letter-spacing: .02em; }
.analysis-empty-tip::before { content: '✦'; background: var(--astro-panel); color: var(--astro-gold); font-size: 18px; position: absolute; top: -17px; left: 50%; padding: 0 12px; transform: translateX(-50%); }
.analysis-empty-link { color: var(--astro-gold); font-size: 12px; margin-top: 16px; text-underline-offset: 4px; }
.astroApp[data-workspace-wide='true'] .analysis-workspace { grid-template-columns: minmax(0, 1fr); }
.astroApp[data-workspace-wide='true'] #profileSection { display: none; }
.astroApp[data-workspace-wide='true'] #btnWorkspaceExpand { color: var(--astro-gold); background: var(--astro-raised); }
.signup-band { margin: 20px 0 0; padding: 15px 48px 15px 24px; border-top: 1px solid var(--astro-line); border-bottom: 1px solid var(--astro-line); position: relative; display: flex; align-items: center; justify-content: center; flex-wrap: wrap; gap: 18px 26px; color: var(--astro-muted); }
.signup-band > div { display: flex; align-items: center; gap: 12px; font-size: 13px; color: var(--astro-text); }
.signup-icon { width: 25px; height: 25px; color: var(--astro-gold); }
.signup-band p { font-size: 12px; margin: 0; }
.signup-band strong { font: 23px/1 var(--astro-serif); color: var(--astro-gold); padding: 0 4px; }
.signup-band strong span { font-size: 13px; }
.signup-note { font-size: 10px; display: block; margin-top: 5px; }
.text-button { border: 0; background: none; color: var(--astro-gold); display: inline-flex; align-items: center; gap: 12px; min-height: 42px; padding: 4px; font-size: 13px; }
.text-button svg { width: 18px; height: 18px; }
.text-button:hover { color: var(--astro-gold-hover); text-decoration: underline; text-underline-offset: 5px; }
.dismiss-promo { position: absolute; right: 8px; top: 50%; transform: translateY(-50%); font-size: 20px !important; }
.notice-band { display: flex; align-items: center; gap: 22px; padding: 20px 0; min-width: 0; }
.notice-label { flex-shrink: 0; font-size: 11px; color: var(--astro-gold); letter-spacing: .08em; }
.notice-band .noticeTicker { margin: 0; border: 0; box-shadow: none; background: none; min-width: 0; flex: 1; border-radius: 0; }
.notice-band .noticeTicker::before, .notice-band .noticeTicker::after { display: none; }
.notice-band .noticeTickerItem { border: 0; background: none; box-shadow: none; color: var(--astro-muted); font-size: 11px; }
.studio-section { border-top: 1px solid var(--astro-line); padding: 28px 0 0; margin-top: 10px; }
.studio-section h2 { font-family: var(--astro-serif); font-size: 23px; font-weight: 500; }
.astroApp .studio-section :is([class*='bg-gradient-'], .studioAdCard) { background: var(--astro-panel); box-shadow: none; border-color: var(--astro-line); }
.astroApp .studio-section a[class*='shadow-'], .astroApp .studio-section div[class*='shadow-'] { box-shadow: none; }
.astroApp .studio-section [data-studio-ads-grid] { align-items: start; }
.site-footer { border-top: 1px solid var(--astro-line-soft); padding: 28px 24px; text-align: center; color: var(--astro-muted); background: var(--astro-bg); }
.site-footer a { text-underline-offset: 4px; }
.site-footer a:hover { color: var(--astro-gold); }
.site-footer p, .site-footer .text-sm { font-size: 12px; }
.app-version { display: block; margin-top: 15px; color: var(--astro-muted); font-size: 10px; letter-spacing: .05em; }

/* Bridge existing functional modules into the shared system, keeping semantic
   status colors and independent light chart/chat themes intact. */
.astroApp .glass { background: var(--astro-panel); border-color: var(--astro-line); box-shadow: none; backdrop-filter: none; }
.astroApp :is(.ui-btn-slate, .ui-btn-icon) { background: var(--astro-input); border-color: var(--astro-line); color: var(--astro-text); box-shadow: none; }
.astroApp :is(.ui-btn-slate, .ui-btn-icon):hover { background: var(--astro-raised); }
.astroApp :is(#resultsTabs, [id$='Modal']) :is(button, a)[class*='bg-gradient-'] { background: var(--astro-gold) !important; color: #ffffff !important; box-shadow: none !important; text-shadow: none; filter: none; font-weight: 600; }
.astroApp :is(#resultsTabs, [id$='Modal']) :is(button, a)[class*='bg-gradient-']:hover { background: var(--astro-gold-hover) !important; transform: none; }
.astroApp :is(#resultsTabs, [id$='Modal']) :is(div, details, section)[class*='shadow-'] { box-shadow: none; }
.astroApp :is(#resultsTabs, [id$='Modal']) :is(div, details, section)[class*='bg-gradient-'] { background-image: none; background-color: var(--astro-input); }
.astroApp :is(#resultsTabs, [id$='Modal']) :is(h2, h3, h4, summary, button)[class*='font-'] { font-weight: 600; }
.astroApp :is(#resultsTabs, [id$='Modal']) [class*='text-transparent'][class*='bg-clip-text'] { background: none; color: var(--astro-gold); -webkit-text-fill-color: var(--astro-gold); }
.astroApp #resultsTabs .introDetails { padding: 14px 16px; border-color: var(--astro-line-soft); border-radius: 8px; background: #f5f8f6; box-shadow: none; }
.astroApp #aiPaneSelect .introDetails > div > div:first-child { font-size: 14px; line-height: 1.8; font-weight: 600; letter-spacing: 0; }
.astroApp #aiPaneSelect .introDetails > div > div + div { font-size: 13px; line-height: 1.9; color: var(--astro-muted); }
.astroApp .aiFlameIcon { background: url('./img/astroinsight-mark.svg?v=1.3.405') center / contain no-repeat; border: 0; border-radius: 0; box-shadow: none; animation: none; filter: none; will-change: auto; color: var(--astro-gold); }
.astroApp .aiFlameIcon::before, .astroApp .aiFlameIcon::after { content: none; display: none; animation: none; }
.astroApp .aiChatWelcome { opacity: 1; animation: none; }
.astroApp .aiChatWelcomeIcon { background: none; border: 0; box-shadow: none; }
.astroApp .aiChatWelcomeTitle { color: var(--astro-text); font-family: var(--astro-serif); font-size: 21px; font-weight: 500; margin-top: 10px; }
.astroApp .aiChatWelcomeHint { color: var(--astro-muted); font-size: 12px; }
.astroApp .aiChatWelcomeArrow { animation: none; }
.astroApp .aiChatWelcomeArrow svg { color: var(--astro-gold); opacity: .6; }
.astroApp .aiChatUserAvatar { background: var(--astro-raised); border-color: var(--astro-line); box-shadow: none; will-change: auto; }
.astroApp .aiChatUserAvatar::before, .astroApp .aiChatUserAvatar::after { display: none; }
.astroApp #resultsTabs :is(input, textarea, select) { border-color: #cbd5cf; border-radius: 6px; }
.astroApp #resultsTabs :is(button, summary) { min-height: 36px; }
.astroApp #resultsTabs table { font-size: 12px; line-height: 1.7; }
.astroApp #resultsTabs th { color: #596963; font-weight: 500; }
.astroApp #resultsTabs td { padding-top: 9px; padding-bottom: 9px; }
.astroApp #resultsTabs [data-sec-body] > div { border-radius: 9px; }
.analysis-overview { border-bottom: 1px solid var(--astro-line); padding: 8px 0 22px; }
.overview-title { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.overview-title h3 { font: 21px/1.5 var(--astro-serif); margin: 0; }
.overview-title > span { font-size: 12px; color: var(--astro-muted); font-variant-numeric: tabular-nums; }
.overview-facts { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); margin: 22px 0 0; }
.overview-facts > div { padding: 0 20px; min-width: 0; }
.overview-facts > div:first-child { padding-left: 0; }
.overview-facts > div + div { border-left: 1px solid var(--astro-line); }
.overview-facts dt { display: flex; align-items: center; gap: 7px; color: var(--astro-gold); font-size: 12px; margin-bottom: 12px; }
.overview-facts dt svg { width: 20px; height: 20px; }
.overview-facts dd { font-size: 15px; line-height: 1.6; color: var(--astro-text); overflow-wrap: anywhere; margin: 0; }
.overview-facts .overview-note { font-size: 11px; color: var(--astro-muted); margin-top: 7px; }
.data-upgrade { border: 1px solid #c8d4cd; border-radius: 9px; background: #476e5c04; }
.data-upgrade > summary { display: flex; align-items: center; gap: 15px; padding: 13px 16px; cursor: pointer; list-style: none; font-size: 13px; color: var(--astro-text); }
.data-upgrade > summary::-webkit-details-marker { display: none; }
.data-upgrade > summary > span:first-child { flex: 1; }
.data-upgrade small { font-size: 11px; color: var(--astro-muted); margin-left: 12px; font-weight: 400; }
.data-upgrade > summary > svg { width: 16px; height: 16px; color: var(--astro-gold); flex-shrink: 0; }
.data-upgrade[open] > summary > svg { transform: rotate(180deg); }
.data-upgrade-body { padding: 18px; border-top: 1px solid var(--astro-line); }
.astroApp #dataPaneToc { position: static; }
.astroApp #dataPaneToc a { border-color: var(--astro-line-soft); }
.astroApp #dataPaneContent .dataSecCard { border-color: var(--astro-line); border-radius: 9px; background: var(--astro-panel); }
@container (max-width: 760px) {
  .overview-title h3 { font-size: 19px; }
  .overview-facts > div { padding: 0 12px; }
  .overview-facts dd { font-size: 13px; }
  .data-upgrade small { display: block; margin-left: 0; margin-top: 3px; }
  #dataPaneToc, #dataPaneContent { grid-column: 1 / -1; }
  #dataPaneToc { max-height: 300px; overflow-y: auto; }
}
@media (max-width: 768px) {
  .overview-title { align-items: flex-start; flex-direction: column; gap: 4px; }
  .overview-title h3 { font-size: 19px; }
  .overview-facts { margin-top: 18px; }
  .overview-facts > div { padding: 0 10px; }
  .overview-facts dd { font-size: 12px; }
  .overview-facts .overview-note { font-size: 10px; }
  .overview-facts dt { font-size: 11px; gap: 5px; }
  .overview-facts dt svg { width: 16px; height: 16px; }
  .data-upgrade > summary { padding: 12px; gap: 8px; font-size: 12px; }
  .data-upgrade small { font-size: 10px; }
  .astroApp #dataPaneToc { max-height: none; overflow: visible; }
  .astroApp #resultsTabs .dataSecHdrBtn { min-width: 32px; min-height: 38px; }
}
.astroApp #astroPointsModal :is([data-points-balance-card], [data-points-buy-card]) { background: var(--astro-panel); border-color: var(--astro-line); box-shadow: none; }
.astroApp #astroPointsModal :is([data-points-balance-card], [data-points-buy-card])::before,
.astroApp #astroPointsModal [data-packs] button::after { display: none; }
.astroApp #astroPointsModal [data-packs] button[data-pack] { box-shadow: none; background: var(--astro-input); border-color: var(--astro-line) !important; backdrop-filter: none; }
.astroApp #astroPointsModal [data-packs] button[data-pack]:hover { background: var(--astro-raised); }
.astroApp [id$='Modal'] [data-backdrop] { background: #24382a59; backdrop-filter: blur(6px); }
.astroApp [id$='Modal'] .max-h-\[85vh\] { max-height: 85dvh; }
.astroApp.legalPage > header { border-color: var(--astro-line-soft); background: #fffffff5; box-shadow: none; }
.legalPage > header a { color: var(--astro-text); }
.legalPage > header .bg-clip-text { background: none; color: var(--astro-text); font: 25px/1.3 var(--astro-serif); }
.legalPage main { padding-top: 40px; padding-bottom: 56px; }
.legalPage .glass { padding: clamp(22px, 5vw, 48px); border: 1px solid var(--astro-line); border-radius: 12px; }
.legalPage h1 { font-family: var(--astro-serif); color: var(--astro-text); font-weight: 500; }
.legalPage main h2 { border-top: 1px solid var(--astro-line); padding-top: 24px; margin-top: 32px; font-size: 19px; font-weight: 600; }
.legalPage main p, .legalPage main li { font-size: 14px; line-height: 2; }
.legalPage footer { background: var(--astro-bg); border-color: var(--astro-line); }
.legalPage main a { color: var(--astro-gold); text-underline-offset: 4px; }
@container (max-width: 740px) {
  .analysis-disciplines > div { flex-direction: column; padding: 0 10px; gap: 9px; text-align: center; }
  .analysis-disciplines strong { font-size: 14px; }
  .analysis-empty h3 { font-size: 23px; }
  #tab-chat .lg\:grid-cols-\[360px_minmax\(0\,1fr\)\] { grid-template-columns: minmax(0, 1fr); }
  #tab-data [data-sec-body] .grid { grid-template-columns: minmax(0, 1fr); }
}
@media (min-width: 1100px) {
  .consent-panel { display: grid; grid-template-columns: auto 1fr; gap: 0 14px; }
  .consent-panel > div { grid-column: 1 / -1; }
  .consent-panel > label { white-space: nowrap; }
}
@media (max-width: 1199px) {
  .astroApp #mainContent { width: calc(100% - 48px); }
  .workspace-intro { padding-left: 8px; padding-right: 8px; gap: 12px 30px; }
  .workspace-intro h1 { font-size: 35px; }
  .intro-copy { font-size: 12px; }
  .journey { justify-self: start; gap: 10px; }
  .analysis-workspace { grid-template-columns: 340px minmax(0, 1fr); }
  .profile-panel, .results-panel { padding: 20px; }
  .brand { font-size: 25px; gap: 12px; }
  .header-nav { margin-left: 0; gap: 18px; }
  .header-nav a + a { padding-left: 18px; }
}
@media (min-width: 769px) and (max-width: 999px) {
  .analysis-workspace { grid-template-columns: minmax(0, 1fr); }
  .astroApp #profileForm { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; gap: 20px; }
  #profileForm > :is(.settings-disclosure, .consent-panel, #btnAnalyze) { grid-column: 1 / -1; }
  .optional-fields, .advanced-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .profile-toolbar { max-width: 440px; }
  .expand-button { display: none; }
  .header-nav { display: none; }
  .workspace-intro { grid-template-columns: minmax(0, 1fr); padding: 26px 4px; }
  .workspace-intro h1 { grid-row: auto; }
  .workspace-intro h1 br { display: none; }
}
@media (max-width: 768px) {
  html { scroll-padding-top: 76px; }
  body.astroApp { padding-bottom: calc(var(--mobile-dock-h, 68px) + 10px + env(safe-area-inset-bottom, 0px)); }
  .header-inner { min-height: 64px; padding: 0 17px; gap: 10px; }
  .brand { font-size: 22px; gap: 9px; }
  .brand-mark { width: 29px; height: 29px; }
  .header-nav { display: none; }
  .header-actions { gap: 2px; }
  .header-icon { width: 36px; height: 40px; }
  .header-icon svg { width: 21px; height: 21px; }
  #pointsWidget { gap: 0; }
  #pointsWidget [data-login-badge] { display: none !important; }
  #pointsWidget #btnPointsOpen { padding: 6px 9px; min-height: 34px; }
  .astroApp #mainContent { width: calc(100% - 32px); padding-bottom: 28px; }
  .workspace-intro { display: block; padding: 25px 6px 24px; min-height: 0; }
  .workspace-intro h1 { font-size: clamp(27px, 7.8vw, 36px); line-height: 1.55; letter-spacing: .035em; }
  .intro-copy { font-size: 11px; line-height: 1.9; margin: 13px 0 0; max-width: 340px; }
  .intro-copy br { display: none; }
  .journey { display: none; }
  .analysis-workspace { display: block; }
  .profile-panel { padding: 20px; }
  .panel-heading h2 { font-size: 21px; }
  .panel-heading p { font-size: 12px; }
  .profile-toolbar { gap: 6px; }
  .profile-toolbar #profileSelect { font-size: 12px; }
  .astroApp #profileForm { gap: 18px; }
  .astroApp #profileForm .ui-field > label { font-size: 13px; }
  .astroApp #profileForm :is(.ui-control, .ui-control-deep, input[type='date'], input[type='time']) { font-size: 16px; min-height: 44px; }
  .astroApp #profileForm .ui-field-help label { font-size: 11px; max-width: 116px; }
  .astroApp #profileForm .field-birthTime { gap: 0 10px; }
  .settings-disclosure > summary { min-height: 46px; font-size: 12px; }
  .consent-panel { padding: 12px; }
  #privacyConsentDesc { font-size: 11px; }
  .consent-panel > label { min-height: 28px; align-items: center; }
  .astroApp #profileForm .consent-panel label > span { font-size: 12px; }
  #btnAnalyze { min-height: 52px; }
  .results-panel { padding: 19px 15px 24px; margin-top: 20px; min-height: 480px; }
  .astroApp[data-mobile-view='results'] .results-panel { margin-top: 18px; }
  .results-heading h2 { font-size: 20px; }
  .expand-button { display: none; }
  .astroApp #resultsTabs [data-tabbar-wrap] { display: block !important; }
  .result-tab-list { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  .astroApp .tabBtn { min-height: 47px; font-size: 12px; padding: 9px 2px; letter-spacing: -.02em; }
  .analysis-empty { min-height: 440px; padding: 15px 0 0; }
  .analysis-empty-art { width: 158px; height: 158px; margin-bottom: 13px; }
  .analysis-empty h3 { font-size: 20px; letter-spacing: 0; }
  .analysis-empty-description { font-size: 12px; max-width: 290px; }
  .analysis-disciplines { margin: 25px 0; }
  .analysis-disciplines > div { flex-direction: column; padding: 0 8px; gap: 9px; text-align: center; }
  .discipline-symbol { width: 32px; height: 32px; }
  .analysis-disciplines strong { font-size: 12px; white-space: normal; }
  .analysis-disciplines p { display: none; }
  .analysis-empty-tip { padding-top: 20px; font-size: 11px; }
  .signup-band { padding: 22px 32px; gap: 9px; flex-direction: column; align-items: center; justify-content: center; text-align: center; }
  .signup-band > div { font-size: 12px; justify-content: center; }
  .signup-band .signup-icon { display: none; }
  .signup-band p { font-size: 11px; }
  .signup-band .text-button { font-size: 12px; min-height: 30px; }
  .signup-band .dismiss-promo { top: 8px; right: 6px; transform: none; min-width: 32px; min-height: 32px; }
  .signup-note { font-size: 9px; }
  .notice-band { gap: 14px; padding: 14px 0; }
  .studio-section { padding-top: 22px; }
  .studio-section h2 { font-size: 20px; }
  .studio-section-heading { align-items: center; text-align: center; }
  .studio-section-actions { justify-content: center; align-self: center; }
  .studio-section-heading > .min-w-0 { width: 100%; }
  .site-footer { width: 100%; margin-inline: auto; padding-inline: 24px; }
  .astroApp #mobileDock { display: block; background: var(--astro-panel); padding: 7px max(12px, env(safe-area-inset-right, 0px)) max(7px, env(safe-area-inset-bottom, 0px)) max(12px, env(safe-area-inset-left, 0px)); box-shadow: 0 -4px 18px #21382b0c; border-top: 1px solid var(--astro-line); z-index: 46; }
  .astroApp:not([data-mobile-dock-ready='true']) { --mobile-dock-h: 0px; }
  .astroApp:not([data-mobile-dock-ready='true']) #mobileDock { display: none; }
  .mobileDockActions { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 6px; }
  .astroApp .mobileDockBtn { padding: 5px 3px; min-height: 53px; border: 0; border-radius: 7px; background: none; box-shadow: none; color: var(--astro-muted); font-size: 10px; font-weight: 500; }
  .astroApp .mobileDockBtnInner { flex-direction: column; gap: 3px; }
  .astroApp .mobileDockBtnIcon svg { width: 19px; height: 19px; }
  .astroApp .mobileDockBtn.is-active { color: var(--astro-gold); background: #476e5c0a; }
  .astroApp .mobileDockBtn:focus-visible { outline-offset: -2px; }
  body.astroApp[data-mobile-view='results'] .workspace-intro,
  body.astroApp[data-mobile-view='other'] .workspace-intro { display: none; }
  body.astroApp[data-mobile-view='profile'] #signupPromo { display: flex !important; }
  body.astroApp[data-mobile-view='profile'] footer { display: block !important; }
  .astroApp[data-workspace-wide='true'][data-mobile-view='profile'] #profileSection { display: block; }
  body.astroApp[data-mobile-view='results'] #noticeTicker { display: none; }
  .astroApp [id$='Modal'] :is(input, select, textarea) { font-size: 16px; }
  .astroApp #resultsTabs :is(input, select, textarea) { font-size: 16px; }
}
@media (max-width: 370px) {
  .header-inner { padding: 0 11px; gap: 4px; }
  .brand { font-size: 19px; gap: 7px; }
  .brand-mark { width: 25px; height: 25px; }
  .header-icon { width: 31px; }
  .astroApp #mainContent { width: calc(100% - 24px); }
  .profile-panel { padding: 17px; }
  .profile-save svg { display: none; }
  .astroApp #profileForm .field-birthTime { grid-template-columns: minmax(0, 1fr); gap: 7px; }
  .astroApp #profileForm .ui-field-help label { max-width: none; }
  .result-tab-list { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .astroApp .tabBtn { font-size: 12px; }
  .analysis-empty h3 { font-size: 18px; }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  .astroApp *, .astroApp *::before, .astroApp *::after { scroll-behavior: auto !important; animation: none !important; transition: none !important; }
}

/* Shared feature components: a single theme for dynamically rendered screens. */
.astroApp .astro-button { min-height: 42px; border: 1px solid transparent; border-radius: 7px; font-size: 14px; font-weight: 500; line-height: 1.5; letter-spacing: 0; box-shadow: none; transition: background .15s, border-color .15s; }
.astroApp .astro-button-primary { background: var(--astro-gold); color: #ffffff; border-color: var(--astro-gold); }
.astroApp .astro-button-primary:hover:not(:disabled) { background: var(--astro-gold-hover); border-color: var(--astro-gold-hover); }
.astroApp .astro-button-secondary { background: var(--astro-input); color: var(--astro-text); border-color: var(--astro-line); }
.astroApp .astro-button-secondary:hover:not(:disabled) { background: var(--astro-raised); border-color: #a2b2a8; }
.astroApp .astro-button-danger { background: #9b4555; color: #fff; border-color: #9b4555; }
.astroApp .astro-button-danger-outline { color: #a13e52; }
.astroApp .astro-control { min-height: 43px; border: 1px solid var(--astro-line); border-radius: 6px; padding: 10px 12px; background: var(--astro-input); color: var(--astro-text); font-size: 14px; line-height: 1.5; box-shadow: none; }
.astroApp .astro-control:focus { border-color: var(--astro-gold); outline: 2px solid #476e5c30; outline-offset: 2px; }
.astroApp .astro-surface { border: 1px solid var(--astro-line-soft); border-radius: 9px; background: var(--astro-panel); box-shadow: none; }
.astroApp .astro-subsection { border: 0; border-top: 1px solid var(--astro-line-soft); border-radius: 0; background: transparent; }
.astroApp .astro-tooltip { border: 1px solid var(--astro-line); border-radius: 6px; background: #fffffff5; color: var(--astro-text); font-size: 12px; line-height: 1.7; box-shadow: 0 8px 24px #21382b16; }
.astroApp .astro-disclosure { border: 1px solid var(--astro-line-soft); border-radius: 7px; background: transparent; }
.astroApp .astro-disclosure > summary { min-height: 44px; padding: 11px 14px; font-size: 13px; font-weight: 500; }
.astroApp .astro-badge { border: 1px solid; border-radius: 5px; padding: 2px 7px; font-size: 11px; font-weight: 500; letter-spacing: 0; line-height: 1.5; }
.astroApp .astro-badge-cost { border-color: #d3c4ab; background: #476e5c08; color: #816430; }
.astroApp .astro-badge-free { border-color: #c3d5ca; background: #79b6a008; color: #365f4a; }
.astroApp .astro-subtab { min-height: 44px; border: 1px solid var(--astro-line); border-radius: 6px; background: transparent; color: var(--astro-muted); font-size: 13px; font-weight: 500; box-shadow: none; }
.astroApp .astro-subtab.is-selected { background: #476e5c0e; border-color: var(--astro-gold); color: var(--astro-gold); }
.astroApp .astro-modal-shell { background: var(--astro-panel); border: 1px solid #d5ddd7; border-radius: 14px; box-shadow: 0 24px 100px #21382b26; }
.astroApp .astro-modal-header { background: var(--astro-panel); border-bottom: 1px solid var(--astro-line); padding: 20px 24px; }
.astroApp .astro-modal-header h2, .astroApp .astro-modal-header > div:first-child > div:first-child { font-family: var(--astro-serif); font-size: 22px; font-weight: 500; color: var(--astro-text); letter-spacing: .02em; }
.astroApp .astro-modal-accent { height: 2px; background: #476e5c55; flex-shrink: 0; }
.astroApp .astro-modal-backdrop { background: #263c2b66; backdrop-filter: blur(5px); }
.astroApp [id$='Modal'] :is(button, summary) { font-weight: 500; }
.astroApp [id$='Modal'] [class*='text-[10px]'], .astroApp [id$='Modal'] [class*='text-[11px]'] { font-size: 12px; line-height: 1.75; }
.astroApp [id$='Modal'] :is(.text-slate-500, .text-slate-400) { color: var(--astro-muted); }
.astroApp [id$='Modal'] .astro-button-primary { background: var(--astro-gold); color: #ffffff; box-shadow: none; }
.astroApp [id$='Modal'] .astro-button-secondary { background: var(--astro-input); color: var(--astro-text); border-color: var(--astro-line); }
.astroApp #resultsTabs .astro-button { font-weight: 500; min-height: 42px; }
.astroApp #resultsTabs .astro-button-primary { background: var(--astro-gold); color: #ffffff; box-shadow: none; }
.astroApp #resultsTabs .astro-button-secondary { background: var(--astro-input); color: var(--astro-text); border-color: var(--astro-line); }
.astroApp #resultsTabs .introDetails { padding: 0; border: 0; border-bottom: 1px solid var(--astro-line-soft); border-radius: 0; background: transparent; margin-bottom: 16px; }
.astroApp #resultsTabs .introDetails > summary { min-height: 42px; padding: 8px 0; font-size: 12px; color: var(--astro-muted); font-weight: 400; }
.astroApp #resultsTabs .introDetails > div { padding: 0 0 16px; margin: 0; font-size: 14px; line-height: 1.9; }
.astroApp #resultsTabs [class*='font-extrabold'], .astroApp #resultsTabs [class*='font-black'] { font-weight: 600; }
.astroApp #resultsTabs :is(.text-slate-500, .text-slate-400) { color: var(--astro-muted); }
.astroApp #resultsTabs :is(.text-purple-200, .text-purple-300, .text-indigo-200) { color: #476e5c; }
.astroApp #resultsTabs :is(input[type='checkbox'], input[type='radio'], input[type='range']) { accent-color: var(--astro-gold); }
.astroApp #resultsTabs :is(input[type='date'], input[type='time']) { color-scheme: light; background: var(--astro-input); border-color: var(--astro-line); min-height: 43px; }
.astroApp #resultsTabs button.bg-purple-600:not(.tabBtn) { background: var(--astro-gold); color: #ffffff; border-color: var(--astro-gold); box-shadow: none; }
.astroApp #resultsTabs button.bg-purple-600:not(.tabBtn):hover { background: var(--astro-gold-hover); }

/* The completed analysis is a reading workspace with a narrow contents rail. */
.workspace-profile-summary { display: flex; align-items: center; flex-wrap: wrap; gap: 8px 20px; margin-left: 20px; color: var(--astro-muted); font-size: 13px; }
.results-heading .expand-button { margin-left: auto; flex-shrink: 0; }
.results-heading { justify-content: flex-start; }
.astroApp[data-workspace-wide='true'] .workspace-intro { display: none; }
.astroApp[data-workspace-wide='true'] .analysis-workspace { margin-top: 24px; }
.astroApp[data-workspace-wide='true'] .results-panel { padding: 0; background: transparent; border: 0; }
.astroApp[data-workspace-wide='true'] .results-heading { min-height: 48px; margin-bottom: 16px; }
.astroApp[data-workspace-wide='true'] .results-heading h2 { font-size: 27px; }
.astroApp #resultsTabs .tabBtn { min-height: 46px; font-weight: 400; }
.tab-label-compact { display: none; }
@media (min-width: 1024px) {
  .astroApp[data-workspace-wide='true'] .result-tab-list { grid-template-columns: repeat(8, minmax(0, 1fr)); }
  .astroApp[data-workspace-wide='true'] .tabBtn:nth-child(-n+4) { border-bottom: 0; }
}
.astroApp .analysis-overview { padding: 22px 24px; border: 1px solid var(--astro-line); border-radius: 8px; background: var(--astro-panel); }
.astroApp .overview-facts { margin: 0; }
.astroApp .overview-facts > div { padding: 0 30px; }
.astroApp .overview-facts > div:first-child { padding-left: 0; }
.astroApp .overview-facts dt { margin-bottom: 8px; font-size: 13px; }
.astroApp .overview-facts dd { font-size: 20px; font-weight: 400; }
.astroApp .overview-facts .overview-note { font-size: 12px; line-height: 1.6; }
.data-actions { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 12px; align-items: start; }
.data-export-toolbar { border: 1px solid var(--astro-line); border-radius: 7px; padding: 7px 16px; min-height: 48px; background: var(--astro-panel); }
.data-actions .data-upgrade { background: var(--astro-panel); border-color: var(--astro-line); border-radius: 7px; }
.data-actions .data-upgrade > summary { min-height: 48px; padding: 9px 14px; }
.data-actions .data-upgrade small { display: none; }
.data-actions:has(.data-upgrade[open]) { grid-template-columns: minmax(0, 1fr); }
.data-actions:not(:has(.data-upgrade)) { grid-template-columns: minmax(0, 1fr); }
.data-reading-layout { display: grid; grid-template-columns: 220px minmax(0, 1fr); gap: 24px; align-items: start; }
.astroApp #dataPaneToc { grid-column: auto; max-height: none; overflow: visible; min-width: 0; }
.astroApp #dataPaneContent { grid-column: auto; min-width: 0; border: 1px solid var(--astro-line); border-radius: 8px; background: var(--astro-panel); overflow: hidden; }
.data-index { border: 1px solid var(--astro-line); border-radius: 8px; background: var(--astro-panel); }
.data-index-heading { padding: 16px 18px 10px; }
.data-index-title { font-family: var(--astro-serif); font-size: 21px; }
.data-index-body { padding: 0 9px 12px; }
.data-index-links { display: flex; flex-direction: column; gap: 2px; }
.astroApp #dataPaneToc .data-index-link { display: flex; justify-content: space-between; align-items: center; gap: 10px; border: 0; padding: 9px; border-radius: 5px; color: var(--astro-muted); font-size: 13px; line-height: 1.7; text-decoration: none; }
.astroApp #dataPaneToc .data-index-link:hover, .astroApp #dataPaneToc .data-index-link[aria-current='location'] { color: var(--astro-gold); background: #476e5c09; }
.data-index-link img { opacity: .65; flex-shrink: 0; }
.data-index-link.is-locked { color: #728078; }
.astroApp #dataPaneContent .data-reading-section { border: 0; border-bottom: 1px solid var(--astro-line); border-radius: 0; background: transparent; box-shadow: none; padding: 0 24px; margin: 0; scroll-margin-top: 8px; }
.astroApp #dataPaneContent .data-reading-section:last-child { border-bottom: 0; }
.astroApp #dataPaneContent .data-reading-section > .data-section-heading { padding: 18px 0 12px; height: auto; background: transparent; border: 0; }
.data-section-title { font-family: var(--astro-serif); font-size: 22px; font-weight: 500; color: var(--astro-text); line-height: 1.6; }
.astroApp #dataPaneContent .data-reading-section > [data-sec-body] { padding: 0 0 24px; background: transparent; border-radius: 0; }
.astroApp #dataPaneContent [data-sec-body] > :is(div, section) { border-radius: 5px; }
.astroApp #dataPaneContent [data-sec-body] .grid > div[class*='rounded-xl'][class*='border-slate-800'] { background: transparent; border: 0; border-bottom: 1px solid var(--astro-line-soft); border-radius: 0; padding: 12px 4px; }
.astroApp #dataPaneContent .text-xs { font-size: 13px; line-height: 1.8; }
.astroApp #dataPaneContent .text-sm { font-size: 14px; line-height: 1.85; }
.astroApp #dataPaneContent :is(table, th, td) { font-size: 14px; line-height: 1.7; }
.astroApp #dataPaneContent :is(th, td) { padding: 12px 14px; border-color: var(--astro-line-soft); }
.astroApp #dataPaneContent thead { background: #ffffff03; }
.astroApp #dataPaneContent tbody tr:hover { background: #ffffff04; }
.profile-facts { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 32px; }
.profile-facts > div { display: grid; grid-template-columns: 100px minmax(0, 1fr); align-items: baseline; border-bottom: 1px solid var(--astro-line-soft); padding: 11px 0; font-size: 14px; gap: 16px; }
.profile-facts dt { color: var(--astro-muted); }
.profile-facts dd { margin: 0; color: var(--astro-text); overflow-wrap: anywhere; }
.astroApp #dataPaneContent .data-locked-section > .data-section-heading { display: flex; align-items: center; gap: 12px; padding: 18px 0; }
.data-locked-section .data-section-title { font-family: var(--astro-sans); font-size: 14px; flex: 1; }
.data-locked-section .data-lock-label { font-size: 11px; color: var(--astro-muted); }
.data-locked-section img { flex-shrink: 0; opacity: .55; }
.astroApp #resultsTabs .dataSecHdrBtn { min-width: 34px; min-height: 34px; border-radius: 5px; color: var(--astro-muted); }
.astroApp #resultsTabs .dataSecHdrBtn:hover { color: var(--astro-gold); background: #476e5c0c; }

/* 四柱推命 / 年運チャート */
.astroApp #dataPaneContent .shichu-life-map {
  margin-top: 20px;
  padding: 18px;
  border: 1px solid var(--astro-line);
  border-radius: 8px;
  background: #f5f8f6;
}
.astroApp .shichu-life-map-eyebrow {
  color: var(--astro-gold);
  font-size: 11px;
  font-weight: 600;
  letter-spacing: .12em;
}
.astroApp .shichu-life-map-title {
  margin-top: 4px;
  color: var(--astro-text);
  font-family: var(--astro-serif);
  font-size: 18px;
  font-weight: 500;
  line-height: 1.65;
}
.astroApp .shichu-life-map-current {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 9px 12px;
  border: 1px solid var(--astro-line-soft);
  border-radius: 6px;
  background: var(--astro-panel);
}
.astroApp .shichu-life-map-panel {
  margin-top: 14px;
  padding: 14px;
  border: 1px solid var(--astro-line-soft);
  border-radius: 7px;
  background: #ffffff;
}
.astroApp .shichu-life-map-chart {
  position: relative;
  width: 100%;
  height: clamp(280px, 30vw, 340px);
  min-width: 0;
  touch-action: pan-y;
}
.astroApp .shichu-life-map-chart > svg {
  display: block;
  width: 100%;
  height: 100%;
  min-width: 0;
}
.astroApp .shichu-life-map input[type='range'] { accent-color: var(--astro-gold); }
.astroApp .shichu-life-map--empty {
  display: flex;
  align-items: flex-start;
  gap: 14px;
}
.astroApp .shichu-life-map-empty-icon {
  display: grid;
  place-items: center;
  width: 34px;
  height: 34px;
  flex: 0 0 34px;
  border: 1px solid #b5a078;
  border-radius: 50%;
  color: var(--astro-gold);
  font-size: 17px;
}
.astroApp .shichu-life-map-empty-title {
  margin-top: 3px;
  color: var(--astro-text);
  font-size: 14px;
  font-weight: 600;
}
.astroApp .shichu-life-map-empty-copy {
  margin: 7px 0 0;
  color: var(--astro-muted);
  font-size: 12px;
  line-height: 1.9;
}

/* AI controls, conversation, glossary, and shared feature toolbars. */
.astroApp #aiChatLayout { gap: 20px; }
.astroApp #aiChatPaneManage > .astro-surface { border: 0; border-radius: 0; padding: 16px 0; background: transparent; }
.astroApp #aiChatPaneManage > .astro-surface + .astro-surface { border-top: 1px solid var(--astro-line); }
.astroApp #aiChatPaneManage .astro-subsection { padding: 16px 0 0; }
.astroApp #aiChatPaneManage { border-right: 1px solid var(--astro-line); padding-right: 20px; }
.astroApp #aiChatPaneChat { gap: 0; border: 1px solid var(--astro-line); border-radius: 9px; background: var(--astro-panel); }
.astroApp #aiChatPaneChat > .astro-surface { border: 0; border-radius: 0; background: transparent; box-shadow: none; }
.astroApp #aiChatPaneChat > .astro-surface:first-child { border-bottom: 1px solid var(--astro-line); padding: 14px 20px; }
.astroApp #aiChatMsgsPane { padding: 12px; }
.astroApp #aiChatInputPane { border-top: 1px solid var(--astro-line); padding: 16px; flex-shrink: 0; }
.astroApp #aiChatInput { background: var(--astro-input); border-color: var(--astro-line); border-radius: 7px; font-size: 15px; padding: 12px 14px; line-height: 1.75; }
.astroApp #aiChatInput:focus { border-color: var(--astro-gold); box-shadow: none; }
.astroApp #aiChatSuggestions > button { border: 1px solid var(--astro-line); background: transparent; color: var(--astro-muted); border-radius: 5px; font-size: 12px; min-height: 32px; box-shadow: none; }
.astroApp #aiChatSessionList > div { border-color: var(--astro-line-soft); border-radius: 6px; box-shadow: none; }
.astroApp #aiChatSessionList [class*='border-purple'] { border-color: #998563; background: #476e5c0a; }
.astroApp #aiChatLayout [class*='text-[10px]'], .astroApp #aiChatLayout [class*='text-[11px]'] { font-size: 12px; line-height: 1.65; }
.astroApp #aiChatLayout :is(.text-purple-200, .text-purple-300) { color: var(--astro-gold); }
.astroApp #aiChatMsgs .astro-message-row { width: 100%; align-items: flex-start; gap: 10px; }
.astroApp #aiChatMsgs .astro-message-avatar { width: 36px; height: 36px; border-radius: 50%; background: var(--astro-input); border: 1px solid var(--astro-line); box-shadow: none; color: var(--astro-muted); }
.astroApp #aiChatMsgs .astro-message-avatar svg { width: 25px; height: 25px; }
.astroApp #aiChatMsgs .astro-message-bubble { max-width: min(78%, 760px); border-radius: 8px; border-color: var(--astro-line); background: var(--astro-panel); box-shadow: none; padding: 12px 14px; }
.astroApp #aiChatMsgs .flex-row-reverse .astro-message-bubble { background: var(--astro-input); }
.astroApp #aiChatMsgs .astro-message-bubble > .pointer-events-none { display: none; }
.astroApp #aiChatMsgs .astro-message-meta { flex-wrap: wrap; gap: 3px 10px; }
.astroApp #aiChatMsgs .astro-message-meta > div:first-child { color: var(--astro-gold); white-space: normal; }
.astroApp #aiChatMsgs .mdView { font-size: 14px; line-height: 1.85; }
.astroApp #aiPaneSelect, .astroApp #timingPaneSelect, .astroApp #compatPaneSelect { padding-right: 20px; border-right: 1px solid var(--astro-line); }
.astroApp :is(#aiPaneSelect, #timingPaneSelect, #compatPaneSelect) > div[class*='rounded-2xl'] { background: transparent; border: 0; border-radius: 0; padding: 0 0 20px; border-bottom: 1px solid var(--astro-line-soft); }
.astroApp :is(#aiPaneSelect, #timingPaneSelect, #compatPaneSelect) label { font-size: 13px; line-height: 1.7; margin-bottom: 6px; color: var(--astro-muted); }
.astroApp :is(#aiPaneSelect, #timingPaneSelect, #compatPaneSelect) select { min-height: 42px; }
.astroApp #glossPaneToc { border: 1px solid var(--astro-line); border-radius: 8px; background: var(--astro-panel); padding: 20px; }
.astroApp #glossPaneContent { font-size: 15px; line-height: 1.9; }
.astroApp #glossPaneContent :is(h2, h3) { font-family: var(--astro-serif); color: var(--astro-text); font-weight: 500; }
.astroApp #glossPaneContent h2 { font-size: 25px; }
.astroApp #glossPaneContent h3 { font-size: 21px; }
.astroApp #glossPaneContent > section { background: transparent; box-shadow: none; border-radius: 0; border: 0; border-top: 1px solid var(--astro-line); padding: 24px 0; }
.astroApp #resultsTabs .chartToolBtn { border-color: var(--astro-line); background: var(--astro-input); color: var(--astro-text); box-shadow: none; border-radius: 6px; }
.astroApp #chartLayerPanel { background: transparent; border-color: var(--astro-line); border-radius: 8px; box-shadow: none; }
.astroApp #chartLayerPanel .chartLayerChk { font-size: 12px; min-height: 32px; }
.feature-empty { min-height: 290px; display: flex; flex-direction: column; align-items: center; justify-content: center; text-align: center; padding: 36px 20px; gap: 16px; }
.feature-empty > svg { color: var(--astro-gold); }
.astroApp #resultsTabs .feature-empty h3 { font: 25px/1.6 var(--astro-serif); color: var(--astro-text); }
.feature-empty p { font-size: 14px; line-height: 1.9; color: var(--astro-muted); }
.astroApp #aiPaneResult:has(#aiOut:not(:empty)) #aiEmpty { display: none; }
.astroApp #aiPaneResult > div { border-color: var(--astro-line); border-radius: 8px; background: var(--astro-panel); }
.astroApp #aiChatMsgs:has(.aiChatWelcome) { display: grid; place-items: center; }
.astroApp #chartPaneAspects { height: auto; align-self: start; overflow: visible; }
.astroApp #chartPaneAspects > div { flex: none; border-radius: 8px; border-color: var(--astro-line); box-shadow: none; }
.astroApp #chartPaneAspects [class*='border-purple'] { border-color: var(--astro-line); background: transparent; }
.astroApp :is(#timingPaneResult, #compatPaneResult) > div { border-radius: 8px; border-color: var(--astro-line); background: var(--astro-panel); box-shadow: none; }
.astroApp :is(#timingOut, #compatOut) :is(table, th, td) { font-size: 13px; line-height: 1.75; }
.astroApp :is(#timingOut, #compatOut) :is(th, td) { padding: 11px 12px; border-color: var(--astro-line-soft); }
.astroApp :is(#timingOut, #compatOut) .text-xs { font-size: 13px; line-height: 1.85; }
.feature-gate { display: grid; grid-template-columns: minmax(0, 1.3fr) minmax(0, 1fr); gap: 48px; padding: 42px; border: 1px solid var(--astro-line); border-radius: 9px; background: var(--astro-panel); }
.feature-gate-eyebrow { color: var(--astro-gold); font-size: 12px; letter-spacing: .07em; }
.astroApp #resultsTabs .feature-gate h3 { margin: 16px 0 14px; font-family: var(--astro-serif); font-size: clamp(23px, 2vw, 30px); line-height: 1.6; font-weight: 400; }
.feature-gate p { font-size: 14px; line-height: 1.9; color: var(--astro-muted); }
.feature-gate ul { margin-top: 24px; display: grid; gap: 14px; font-size: 14px; color: var(--astro-text); }
.feature-gate li { display: flex; gap: 12px; }
.feature-gate li::before { content: '✓'; color: var(--astro-gold); }
.feature-gate-action { padding-left: 36px; border-left: 1px solid var(--astro-line); display: flex; flex-direction: column; gap: 12px; }
.feature-gate-price { font-family: var(--astro-serif); color: var(--astro-gold); font-size: 29px; }
.feature-gate-price span { font-family: var(--astro-sans); font-size: 12px; color: var(--astro-muted); }
.feature-gate-action p { font-size: 12px; }
.feature-gate-action .astro-button { width: 100%; min-height: 44px; }
.feature-gate-status { margin-top: 4px; }
.astroApp #globalHelpModal .help-content { padding: 24px; font-size: 14px; line-height: 1.85; }
.astroApp #globalHelpModal .help-content > div { border: 0; border-radius: 0; box-shadow: none; background: transparent; padding: 20px 0; margin: 0; border-bottom: 1px solid var(--astro-line-soft); }
.astroApp #globalHelpModal .help-content > div:first-child { padding-top: 0; }
.astroApp #globalHelpModal .help-content > details { background: transparent; border-color: var(--astro-line); border-radius: 7px; }
.astroApp #globalHelpModal .help-content .text-xs { font-size: 13px; line-height: 1.85; }
.astroApp #globalHelpModal .help-content :is(.text-purple-300, .text-indigo-200, .text-amber-200) { color: var(--astro-gold); }
.astroApp #globalHelpModal .help-content > div > .grid > div { background: transparent; border: 0; border-left: 1px solid var(--astro-line); border-radius: 0; }
.astroApp #globalHelpModal #btnGlobalHelpClose { min-height: 40px; white-space: nowrap; flex-shrink: 0; background: var(--astro-input); border-color: var(--astro-line); }
.astroApp #astroToast { top: 80px; bottom: auto !important; left: auto; right: 20px; width: max-content; max-width: min(420px, calc(100vw - 32px)); border: 1px solid var(--astro-line); border-left: 3px solid #476e5c; border-radius: 7px; background: #fffffff5; color: var(--astro-text); font-size: 13px; line-height: 1.7; box-shadow: 0 8px 24px #21382b16; }
.astroApp #astroToast.border-pink-600 { border-left-color: #a13e52; }
.astroApp #astroToast.border-amber-500 { border-left-color: var(--astro-gold); }

/* Account and purchase tasks have equal visual weight in a readable modal. */
.astroApp #astroPointsModal .points-modal-layout { max-width: 960px; }
.points-modal-header-actions { flex-shrink: 0; }
.astroApp #astroPointsModal .points-modal-header-actions button { flex-shrink: 0; min-width: 40px; min-height: 40px; white-space: nowrap; border-radius: 6px; background: var(--astro-input); border-color: var(--astro-line); }
.points-modal-content { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 20px; padding: 24px; align-items: start; }
.points-modal-content > [data-points-account-card] { grid-column: 2; grid-row: 1 / span 4; }
.points-modal-content > :is([data-points-balance-card], [data-points-buy-card], [data-points-costs], [data-points-history]) { grid-column: 1; }
.points-modal-content > :is([data-status], [data-admin-panel]) { grid-column: 1 / -1; }
.points-modal-content > [data-status]:empty { display: none; }
.astroApp #astroPointsModal :is([data-points-balance-card], [data-points-buy-card], [data-points-account-card]) { background: transparent; border: 0; border-radius: 0; box-shadow: none; padding: 0; }
.astroApp #astroPointsModal [data-points-account-card] { padding-left: 24px; border-left: 1px solid var(--astro-line); }
.astroApp #astroPointsModal [data-points-balance-card] { padding-bottom: 18px; border-bottom: 1px solid var(--astro-line); }
.astroApp #astroPointsModal [data-points-balance-card] .rounded-full { border: 0; background: none; color: var(--astro-muted); padding: 0; }
.astroApp #astroPointsModal [data-points-balance-card] .text-3xl { font-family: var(--astro-serif); font-weight: 400; color: var(--astro-gold); }
.astroApp #astroPointsModal [data-points-account-card] > div:first-child > div:first-child { font-family: var(--astro-serif); font-size: 21px; font-weight: 400; }
.astroApp #astroPointsModal [data-points-account-card] input { background: var(--astro-input) !important; border-color: var(--astro-line) !important; box-shadow: none; }
.astroApp #astroPointsModal [data-points-account-card] input:focus { border-color: var(--astro-gold) !important; box-shadow: none; }
.astroApp #astroPointsModal [data-auth-form] > .grid:first-child { grid-template-columns: minmax(0, 1fr); gap: 16px; }
.astroApp #astroPointsModal [data-auth-form] > .grid:last-child { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.astroApp #astroPointsModal [data-auth-form] > .grid:last-child [data-logout] { grid-column: 1 / -1; }
.astroApp #astroPointsModal[data-account-state='guest'] :is([data-logout], [data-points-account-delete]) { display: none; }
.astroApp #astroPointsModal[data-account-state='member'] :is([data-login], [data-signup], [data-points-account-reset]) { display: none; }
.astroApp #astroPointsModal[data-account-state='member'] [data-auth-form] > .mt-2 { display: none; }
.astroApp #astroPointsModal :is([data-points-account-reset], [data-points-account-delete]) { background: transparent; border-color: var(--astro-line-soft); border-radius: 7px; }
.astroApp #astroPointsModal [data-points-account-delete] { border-color: #ddbcc2; }
.astroApp #astroPointsModal [data-points-costs] .rounded-xl::before { display: none; }
.astroApp #astroPointsModal [data-packs] { gap: 10px; }
.astroApp #astroPointsModal [data-packs] button[data-pack] { padding: 16px; border-radius: 7px; transform: none; transition: background .15s; background: var(--astro-input); box-shadow: none; border-color: var(--astro-line) !important; }
.astroApp #astroPointsModal [data-packs] button[data-pack][data-pack-best='1'] { border-color: #a7874e !important; }
.astroApp #astroPointsModal [data-packs] button[data-pack]:hover { background: var(--astro-raised); transform: none; }
.astroApp #astroPointsModal [data-packs] [data-pack-glow] { display: none; }
.astroApp #astroPointsModal [data-packs] button[data-pack] [data-pack-tag] { border-radius: 4px; border-color: #d3c4ab; background: #476e5c0a; color: var(--astro-gold); box-shadow: none; font-size: 10px; padding: 1px 5px; }
.astroApp #astroPointsModal [data-packs] .text-lg { font-family: var(--astro-serif); font-size: 24px; font-weight: 400; line-height: 1.5; }

@media (min-width: 1024px) {
  .astroApp #dataPaneToc { position: sticky; top: 85px; max-height: calc(100dvh - 115px); overflow-y: auto; scrollbar-width: thin; scrollbar-color: var(--astro-line) transparent; }
  .astroApp #aiChatLayout { grid-template-columns: 280px minmax(0, 1fr); }
  .astroApp #tab-ai > div:last-child { grid-template-columns: 320px minmax(0, 1fr); }
  .astroApp :is(#tab-timing, #tab-compat) > div:last-child { grid-template-columns: 320px minmax(0, 1fr); }
  .astroApp :is(#timingPaneSelect, #timingPaneResult, #compatPaneSelect, #compatPaneResult) { grid-column: auto; }
  .astroApp #aiPaneSelect, .astroApp #aiPaneResult { grid-column: auto; }
  .astroApp[data-workspace-wide='true'] #tab-chart [data-chart-wrap] { width: min(100%, max(440px, calc(100dvh - 350px))); margin-inline: auto; }
}
@container (max-width: 900px) {
  .astroApp #dataPaneToc { position: static; max-height: none; }
  .data-reading-layout { grid-template-columns: minmax(0, 1fr); }
  .data-index-links { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .profile-facts { grid-template-columns: minmax(0, 1fr); }
  .astroApp .overview-facts > div { padding-right: 10px; padding-left: 16px; }
  .astroApp .overview-facts dd { font-size: 16px; }
}
@media (max-width: 1023px) {
  .data-reading-layout { grid-template-columns: minmax(0, 1fr); }
  .astroApp :is(#aiPaneSelect, #timingPaneSelect, #compatPaneSelect, #aiChatPaneManage) { padding-right: 0; border-right: 0; }
  .astroApp #aiChatPaneManage > .astro-surface { max-height: none; overflow: visible; }
  .workspace-profile-summary { margin-left: 0; }
  .results-heading { flex-wrap: wrap; }
  .workspace-profile-summary { order: 3; flex-basis: 100%; }
}
@media (max-width: 768px) {
  .astroApp #astroToast { top: 76px; left: 16px; right: 16px; width: auto; margin: 0; }
  .feature-gate { grid-template-columns: minmax(0, 1fr); gap: 24px; padding: 24px 20px; }
  .feature-gate-action { border: 0; border-top: 1px solid var(--astro-line); padding: 24px 0 0; }
  .feature-gate ul { font-size: 13px; }
  .astroApp #globalHelpModal .help-content { padding: 20px; }
  .astroApp #astroPointsModal .astro-modal-header h2 { font-size: 18px; }
  .astroApp[data-workspace-wide='true'] .analysis-workspace { margin-top: 20px; }
  .astroApp[data-workspace-wide='true'] .results-heading { margin-bottom: 12px; }
  .astroApp[data-workspace-wide='true'] .results-heading h2 { font-size: 22px; }
  .workspace-profile-summary { gap: 3px 12px; font-size: 12px; line-height: 1.7; }
  .astroApp #resultsTabs .tabBtn { font-size: 12px; min-height: 45px; padding: 10px 2px; }
  .astroApp .result-tab-list { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  .tab-label-full { display: none; }
  .tab-label-compact { display: inline; }
  .astroApp .analysis-overview { padding: 0 16px; }
  .astroApp .overview-facts { display: block; margin: 0; }
  .astroApp .overview-facts > div, .astroApp .overview-facts > div:first-child { display: grid; grid-template-columns: 66px minmax(0, 1fr); gap: 1px 12px; padding: 12px 0; border: 0; }
  .astroApp .overview-facts > div + div { border-top: 1px solid var(--astro-line-soft); }
  .astroApp .overview-facts dt { grid-row: span 2; margin: 3px 0 0; font-size: 12px; }
  .astroApp .overview-facts dd { font-size: 15px; line-height: 1.7; }
  .astroApp .overview-facts .overview-note { font-size: 11px; margin: 0; }
  .data-actions { grid-template-columns: minmax(0, 1fr); gap: 8px; }
  .data-export-toolbar { padding: 5px 12px; min-height: 42px; }
  .data-actions .data-upgrade > summary { min-height: 44px; font-size: 12px; }
  .astroApp #dataPaneContent .data-reading-section { padding: 0 15px; }
  .astroApp #dataPaneContent .data-reading-section > .data-section-heading { padding: 14px 0 10px; }
  .data-section-title { font-size: 20px; }
  .data-section-heading .dataSecHdrBtn { min-width: 28px !important; width: 28px; }
  .data-section-heading a.dataSecHdrBtn { display: none; }
  .profile-facts { grid-template-columns: minmax(0, 1fr); }
  .profile-facts > div { grid-template-columns: 76px minmax(0, 1fr); font-size: 13px; gap: 10px; padding: 11px 0; }
  .astroApp #dataPaneContent :is(table, th, td) { font-size: 12px; }
  .astroApp #dataPaneContent :is(th, td) { padding: 10px 9px; }
  .astroApp :is(#timingOut, #compatOut) :is(table, th, td) { font-size: 12px; }
  .astroApp :is(#timingOut, #compatOut) :is(th, td) { padding: 9px 8px; }
  .astroApp #dataPaneContent .data-locked-section > .data-section-heading { gap: 8px; }
  .data-locked-section .data-section-title { font-size: 13px; }
  .data-lock-label { display: none; }
  .data-index-links { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .astroApp #dataPaneContent .shichu-life-map { margin-top: 14px; padding: 12px; }
  .astroApp .shichu-life-map-title { font-size: 16px; }
  .astroApp .shichu-life-map-current { width: 100%; justify-content: flex-start; }
  .astroApp .shichu-life-map-current .text-right { text-align: left; }
  .astroApp .shichu-life-map-panel { padding: 8px; }
  .astroApp .shichu-life-map-chart { height: clamp(250px, 75vw, 292px); }
  .astroApp .shichu-life-map--empty { padding: 14px; }
  .astroApp .shichu-life-map-empty-icon { width: 30px; height: 30px; flex-basis: 30px; }
  .astroApp #resultsTabs .astro-subtab { min-height: 43px; font-size: 13px; padding: 9px; }
  .astroApp #resultsTabs .astro-control { font-size: 16px; }
  .astroApp #aiChatMsgsPane { min-height: 240px; height: 42dvh; }
  .astroApp #aiChatInputPane { padding: 12px; }
  .astroApp #aiChatInput { font-size: 16px; }
  .astroApp #aiChatMsgs .astro-message-avatar { width: 30px; height: 30px; }
  .astroApp #aiChatMsgs .astro-message-avatar svg { width: 21px; height: 21px; }
  .astroApp #aiChatMsgs .astro-message-bubble { max-width: calc(100% - 40px); padding: 10px 12px; }
  .astroApp #btnAiChatSend { justify-content: center; width: 100%; min-height: 44px; }
  .astroApp #aiChatSuggestions { flex-wrap: wrap; overflow: visible; }
  .astroApp #aiChatSuggestions > button { white-space: normal; }
  .astroApp .astro-modal-header { padding: 17px 18px; }
  .astroApp .astro-modal-header h2, .astroApp .astro-modal-header > div:first-child > div:first-child { font-size: 20px; }
  .astroApp .astro-modal-shell { max-height: 90dvh; border-radius: 12px; }
  .points-modal-content { display: flex; flex-direction: column; padding: 20px; gap: 24px; }
  .points-modal-content > * { width: 100%; flex-shrink: 0; }
  .astroApp #astroPointsModal [data-points-account-card] { border: 0; padding: 0 0 20px; border-bottom: 1px solid var(--astro-line); }
  .astroApp #astroPointsModal[data-account-state='guest'] [data-points-account-card] { order: -1; }
  .astroApp #astroPointsModal [data-packs] button[data-pack] { padding: 12px; }
  .astroApp #astroPointsModal [data-packs] .text-lg { font-size: 23px; }
  .astroApp [id$='Modal'] .astro-control { font-size: 16px; }
  .astroApp[data-active-tab='chat'][data-mobile-view='results'] :is(.workspace-intro, .results-heading) { display: none !important; }
  .astroApp[data-active-tab='chat'][data-mobile-view='results'] .analysis-workspace { margin-top: 12px; }
  .astroApp[data-active-tab='chat'][data-mobile-view='results'] .results-panel { padding: 0; border: 0; background: transparent; }
  .astroApp #tab-chat:has(#aiChatPaneChat:not(.hidden)) > .introDetails { display: none; }
  .astroApp #aiChatLayout:has(#aiChatPaneChat:not(.hidden)) { grid-template-rows: auto minmax(0, 1fr); gap: 14px; height: var(--chat-available-height, calc(100dvh - 200px)); }
  .astroApp #aiChatPaneChat { max-height: 100%; overflow: hidden; }
  .astroApp #aiChatPaneChat > .astro-surface:first-child { flex-shrink: 0; padding: 10px 12px; }
  .astroApp #aiChatMsgsPane { flex: 1; min-height: 0; height: auto; padding: 6px; }
  .astroApp #aiChatMsgs { scrollbar-gutter: auto; }
  .astroApp .aiChatWelcome { padding: 16px 8px; gap: 5px; }
  .astroApp .aiChatWelcomeIcon { width: 40px; height: 40px; }
  .astroApp .aiChatWelcomeTitle { font-size: 19px; }
  .astroApp .aiChatWelcomeArrow { display: none; }
  .astroApp .ai-chat-compose-row { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 8px; align-items: end; }
  .astroApp #btnAiChatSend { width: auto; padding: 12px; min-height: 56px; }
  .astroApp #btnAiChatSend svg { width: 16px; height: 16px; }
  .astroApp #aiChatSuggestions { flex-wrap: nowrap; overflow-x: auto; margin-bottom: 6px; }
  .astroApp #aiChatSuggestions:empty { display: none; }
  .astroApp #aiChatSuggestions > button { white-space: nowrap; flex-shrink: 0; }
  .astroApp #aiChatInputPane [aria-label='Ctrl+Enterで送信、Enterで改行'] { visibility: hidden; }
}

/* Reading surfaces share the same typography as the observatory workspace. */
.astroApp[data-active-tab='chat'] #tab-chat > .introDetails { display: none; }
.astroApp[data-active-tab='chat'] .analysis-workspace { margin-top: 12px; }
.astroApp #aiChatPaneChat > .astro-surface:first-child { padding: 10px 14px; }
.astroApp .ai-chat-room-meta { display: flex; align-items: center; gap: 12px; margin-top: 2px; font-size: 11px; line-height: 1.5; }
.astroApp .ai-chat-room-info, .astroApp .ai-chat-room-copy { flex: 1; min-width: 0; }
.astroApp .ai-chat-room-actions { flex: 0 0 auto; }
.astroApp #aiChatStatus { flex: 1; min-width: 0; }
.astroApp #aiChatPointsBadge { margin-left: auto; font-size: 11px; }
.astroApp #aiChatLayout .aiChatIconBtn { width: 36px; height: 36px; padding: 8px; }
.astroApp #aiChatInputPane { padding: 10px 14px; }
.astroApp #aiChatSuggestions { margin-bottom: 6px; flex-wrap: nowrap; }
.astroApp #aiChatSuggestions > button { flex-shrink: 0; white-space: nowrap; }
.astroApp #aiChatMsgs { overflow-anchor: none; scroll-behavior: auto; }
.astroApp[data-active-tab='chat'] { overflow-anchor: none; }
.astroApp #aiChatMsgs .astro-message-row:not(.flex-row-reverse) .astro-message-bubble { width: min(78%, 760px); }
.astroApp #aiChatMsgs [data-ai-pending-text] [hidden] { display: none !important; }
@media (max-width: 768px) {
  .astroApp[data-active-tab='chat'] .analysis-workspace { margin-top: 6px; }
  .astroApp #aiChatPaneChat > .astro-surface:first-child { padding: 8px 10px; }
  .astroApp #aiChatInputPane { padding: 8px 10px; }
  .astroApp #aiChatLayout:has(#aiChatPaneChat:not(.hidden)) { gap: 8px; }
  .astroApp #aiChatMsgs .astro-message-row:not(.flex-row-reverse) .astro-message-bubble { width: calc(100% - 40px); }
  .astroApp .ai-chat-room-meta { gap: 8px; }
  .astroApp #aiChatPaneChat { min-width: 0; min-height: 0; }
  .astroApp #aiChatMsgsPane { flex: 1 1 0; min-height: 40px; }
  .astroApp #aiChatInput { max-height: var(--chat-input-max-height, 140px); line-height: 1.5; padding: 10px 12px; }
  .astroApp #aiChatInputPane { min-width: 0; }
  .astroApp #aiChatLayout[data-chat-typing='true'] { grid-template-rows: minmax(0, 1fr); }
  .astroApp #aiChatLayout[data-chat-typing='true'] > .ai-chat-mobile-tabs,
  .astroApp #aiChatLayout[data-chat-typing='true'] #aiChatSuggestions { display: none; }
  .astroApp #aiChatLayout[data-chat-tight='true'] .ai-chat-room-header { display: none; }
  .astroApp #aiChatLayout[data-chat-minimal='true'] #aiChatMsgsPane { display: none; }
  .astroApp #aiChatLayout[data-chat-minimal='true'] #aiChatInput { min-height: 44px; max-height: 44px; }
  .astroApp #aiChatLayout[data-chat-minimal='true'] #btnAiChatSend { min-height: 44px; padding-block: 10px; }
}

/* Native page scrolling keeps the mobile conversation painted during keyboard focus. */
.ai-chat-hide-keyboard { display: none; }
.ai-chat-room-options { display: block; }
.ai-chat-room-options-menu { display: flex; gap: 6px; }
.ai-chat-room-options > summary, .ai-chat-room-option-label, .ai-chat-points-action { display: none; }
@media (max-width: 768px) {
  body.astroApp[data-mobile-chat-frame='1'] {
    overflow: visible !important; min-height: 0; height: auto;
    padding: 0 0 var(--chat-dock-height, var(--mobile-dock-h, 72px));
    scroll-padding: 0; margin: 0;
  }
  body.astroApp[data-mobile-chat-frame='1'] #appViewport {
    position: static !important; height: auto !important; min-height: 0;
    overflow: visible !important;
  }
  body.astroApp[data-mobile-chat-frame='1'] #appScroll { display: none; }
  body.astroApp[data-mobile-chat-frame='1'] #mobileDock {
    position: fixed !important; top: auto !important; bottom: 0 !important;
  }
  .astroApp #aiChatLayout[data-mobile-chat-frame='1'] {
    position: relative; top: auto; left: auto; width: 100%; max-width: 100%; margin-block: 8px;
    display: grid; grid-template-columns: minmax(0, 1fr); grid-template-rows: 56px minmax(0, 1fr);
    --chat-safe-top: env(safe-area-inset-top, 0px); --chat-safe-left: env(safe-area-inset-left, 0px); --chat-safe-right: env(safe-area-inset-right, 0px);
    padding: var(--chat-safe-top) max(8px, var(--chat-safe-right)) 0 max(8px, var(--chat-safe-left));
    gap: 8px; min-height: 0; overflow: hidden;
    background: var(--astro-bg); box-sizing: border-box; animation: none; transform: none;
  }
  .astroApp #aiChatLayout[data-mobile-chat-frame='1'] > .ai-chat-mobile-tabs { display: grid; min-width: 0; gap: 8px; }
  .astroApp #aiChatLayout[data-mobile-chat-frame='1'] > .ai-chat-mobile-tabs button { min-height: 44px; min-width: 0; padding: 8px; }
  .astroApp #aiChatLayout[data-mobile-chat-frame='1'][data-chat-typing='true'] > .ai-chat-mobile-tabs { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) 44px; }
  .astroApp #aiChatLayout[data-mobile-chat-frame='1'][data-chat-typing='true'] .ai-chat-hide-keyboard {
    display: grid; place-items: center; border: 1px solid var(--astro-line); border-radius: 8px;
    background: var(--astro-panel); color: var(--astro-text);
  }
  .astroApp #aiChatLayout[data-mobile-chat-frame='1']:has(#aiChatPaneChat:not(.hidden)) > .ai-chat-mobile-tabs { grid-template-columns: 44px minmax(0, 1fr); }
  .astroApp #aiChatLayout[data-mobile-chat-frame='1'][data-chat-typing='true']:has(#aiChatPaneChat:not(.hidden)) > .ai-chat-mobile-tabs { grid-template-columns: 44px minmax(0, 1fr) 44px; }
  .astroApp #aiChatLayout[data-mobile-chat-frame='1']:has(#aiChatPaneChat:not(.hidden)) #btnAiChatTabChat,
  .astroApp #aiChatLayout[data-mobile-chat-frame='1']:has(#aiChatPaneChat:not(.hidden)) #btnAiChatTabManage > span { display: none; }
  .astroApp #aiChatLayout[data-mobile-chat-frame='1'] #btnAiChatTabManage { order: 0; align-self: center; }
  .astroApp #aiChatLayout[data-mobile-chat-frame='1'] .ai-chat-room-header { order: 1; display: block; align-self: center; padding: 4px 6px; min-width: 0; border: 0; box-shadow: none; background: transparent; }
  .astroApp #aiChatLayout[data-mobile-chat-frame='1'] #btnAiChatHideKeyboard { order: 2; align-self: center; }
  .astroApp #aiChatLayout[data-mobile-chat-frame='1']:has(#aiChatPaneManage:not(.hidden)) .ai-chat-room-header { display: none; }
  .astroApp #aiChatLayout[data-mobile-chat-frame='1'] .ai-chat-room-header .aiFlameIcon { display: none; }
  .astroApp #aiChatLayout[data-mobile-chat-frame='1'][data-chat-typing='true'] .ai-chat-room-meta { display: none; }
  .astroApp #aiChatLayout[data-mobile-chat-frame='1'] .ai-chat-room-options { position: relative; display: block; }
  .astroApp #aiChatLayout[data-mobile-chat-frame='1'] .ai-chat-room-options > summary { display: grid; place-items: center; list-style: none; cursor: pointer; width: 44px; height: 44px; border: 1px solid var(--astro-line); border-radius: 8px; background: var(--astro-panel); }
  .astroApp #aiChatLayout[data-mobile-chat-frame='1'] .ai-chat-room-options > summary::-webkit-details-marker { display: none; }
  .astroApp #aiChatLayout[data-mobile-chat-frame='1'] .ai-chat-room-options-menu { display: none; }
  .astroApp #aiChatLayout[data-mobile-chat-frame='1'] .ai-chat-room-options[open] .ai-chat-room-options-menu { position: absolute; top: 48px; right: 0; z-index: 70; display: grid; min-width: 172px; padding: 4px; border: 1px solid var(--astro-line); border-radius: 10px; background: var(--astro-panel); box-shadow: 0 8px 22px #21382b18; }
  .astroApp #aiChatLayout[data-mobile-chat-frame='1'] .ai-chat-room-options-menu .aiChatIconBtn { width: 100%; justify-content: flex-start; gap: 8px; padding: 10px; }
  .astroApp #aiChatLayout[data-mobile-chat-frame='1'] .ai-chat-room-options-menu { max-height: calc(var(--chat-available-height) - 72px); overflow-y: auto; }
  .astroApp #aiChatLayout[data-mobile-chat-frame='1'] .ai-chat-points-action { display: block; min-height: 44px; text-align: left; padding: 10px; border: 0; background: transparent; color: var(--astro-text); }
  .astroApp #aiChatLayout[data-mobile-chat-frame='1'] .ai-chat-room-option-label { display: inline; white-space: nowrap; }
  .astroApp #aiChatLayout[data-mobile-chat-frame='1'] #btnAiChatStop:disabled { display: none; }
  .astroApp #aiChatLayout[data-mobile-chat-frame='1'] #aiChatPaneChat { gap: 8px; min-height: 0; height: 100%; }
  .astroApp #aiChatLayout[data-mobile-chat-frame='1'] #aiChatMsgsPane { flex: 1 1 0; min-height: 40px; }
  .astroApp #aiChatLayout[data-mobile-chat-frame='1'] #aiChatMsgs { overscroll-behavior-y: contain; -webkit-overflow-scrolling: touch; }
  .astroApp #aiChatLayout[data-mobile-chat-frame='1'] #aiChatInputPane { flex: 0 0 auto; padding: 8px; }
  .astroApp #aiChatLayout[data-mobile-chat-frame='1'] #aiChatInput { font-size: 16px; min-width: 0; min-height: 48px; max-height: min(112px, var(--chat-input-max-height, 112px)); scroll-margin-block: 16px; }
  .astroApp #aiChatLayout[data-mobile-chat-frame='1'] #btnAiChatSend { min-height: 48px; min-width: 48px; justify-content: center; }
  .astroApp #aiChatLayout[data-mobile-chat-frame='1'] .aiChatIconBtn { width: 44px; height: 44px; }
  .astroApp #aiChatLayout[data-mobile-chat-frame='1'] .ai-chat-room-actions { gap: 2px; }
  .astroApp #aiChatLayout[data-mobile-chat-frame='1'][data-chat-typing='true'] #aiChatSuggestions,
  .astroApp #aiChatLayout[data-mobile-chat-frame='1'][data-chat-tight='true'] #aiChatSuggestions { display: none; }
  .astroApp #aiChatLayout[data-mobile-chat-frame='1'][data-chat-minimal='true'] #aiChatInput { min-height: 44px; max-height: 44px; }
  .astroApp #aiChatLayout[data-mobile-chat-frame='1'][data-chat-minimal='true'] #btnAiChatSend { min-height: 44px; }
  .astroApp #aiChatLayout[data-mobile-chat-frame='1'] #aiChatPaneManage { min-height: 0; height: 100%; overflow-y: auto; overscroll-behavior-y: contain; }
  .astroApp #aiChatLayout[data-mobile-chat-frame='1'] #aiChatPaneManage > .astro-surface { flex-shrink: 0; max-height: none; }
  .astroApp #aiChatLayout[data-mobile-chat-frame='1'] #aiChatPaneManage > .astro-surface:first-child { overflow: visible; }
  .astroApp #aiChatLayout[data-mobile-chat-frame='1'] #aiChatSessionList { max-height: 360px; }
  .astroApp #aiChatLayout[data-mobile-chat-frame='1'] #aiChatMsgs { padding: 8px; }
  .astroApp #aiChatLayout[data-mobile-chat-frame='1'] #aiChatMsgs .mdView { font-size: 16px; line-height: 1.8; }
  .astroApp #aiChatLayout[data-mobile-chat-frame='1'] #aiChatMsgs .astro-message-row:not(.flex-row-reverse) { position: relative; width: 100%; }
  .astroApp #aiChatLayout[data-mobile-chat-frame='1'] #aiChatMsgs .astro-message-row:not(.flex-row-reverse) .astro-message-avatar { position: absolute; z-index: 1; top: 10px; left: 10px; width: 26px; height: 26px; }
  .astroApp #aiChatLayout[data-mobile-chat-frame='1'] #aiChatMsgs .astro-message-row:not(.flex-row-reverse) .astro-message-bubble { width: 100%; max-width: 100%; padding: 10px; }
  .astroApp #aiChatLayout[data-mobile-chat-frame='1'] #aiChatMsgs .astro-message-row:not(.flex-row-reverse) .astro-message-meta { padding-left: 34px; min-height: 28px; }
  .astroApp #aiChatLayout[data-mobile-chat-frame='1'][data-chat-compact='true'] { grid-template-rows: 44px minmax(0, 1fr); gap: 4px; }
  .astroApp #aiChatLayout[data-mobile-chat-frame='1'][data-chat-compact='true'] .ai-chat-room-header { padding: 0; }
  .astroApp #aiChatLayout[data-mobile-chat-frame='1'][data-chat-compact='true'] #aiChatPaneChat { gap: 4px; }
  .astroApp #aiChatLayout[data-mobile-chat-frame='1'][data-chat-compact='true'] #aiChatInputPane { padding: 4px; }
  .astroApp #aiChatLayout[data-mobile-chat-frame='1'][data-chat-compact='true'] #aiChatInput { min-height: 44px; max-height: 44px; padding: 8px 10px; }
  .astroApp #aiChatLayout[data-mobile-chat-frame='1'][data-chat-compact='true'] #btnAiChatSend { min-height: 44px; padding-block: 8px; }
}

/* Account and balance changes occupy the same header space before and after login. */
.astroApp #pointsWidget { width: 248px; min-height: 42px; flex: 0 0 248px; }
.astroApp #pointsWidget [data-login-badge] { width: 120px; min-width: 120px; padding-inline: 8px; justify-content: center; white-space: nowrap; }
.astroApp #pointsWidget #btnPointsOpen { width: 118px; flex: 0 0 118px; display: inline-flex; align-items: center; justify-content: center; gap: 4px; }
.astroApp #pointsWidget [data-points-value] { font-variant-numeric: tabular-nums; }
.astroApp .fade-in-up { animation: none; transform: none; }
@media (min-width: 769px) {
  html { scrollbar-gutter: stable; }
  .astroApp #appScroll { scrollbar-gutter: stable; }
}
@media (min-width: 769px) and (max-width: 1199px) {
  html { scroll-padding-top: 112px; }
  .astroApp .header-inner { flex-wrap: wrap; padding-block: 8px; row-gap: 0; column-gap: 16px; }
  .astroApp .header-nav { display: flex; order: 3; flex-basis: 100%; justify-content: center; }
}
@media (max-width: 768px) {
  .astroApp #pointsWidget { width: 112px; min-height: 36px; flex: 0 0 112px; }
  .astroApp #pointsWidget #btnPointsOpen { width: 112px; flex-basis: 112px; }
}
@media (max-width: 480px) {
  .astroApp .header-inner { display: grid; grid-template-columns: minmax(0, 1fr); min-height: 80px; padding: 6px 14px; row-gap: 4px; }
  .astroApp .header-inner .brand { justify-self: start; }
  .astroApp .header-actions { justify-self: end; margin-left: 0; }
}

.astroApp .astro-prose, .astroApp .mdView {
  --reading-text: #36473f;
  color: var(--reading-text);
  font-size: 15px;
  line-height: 1.95;
  letter-spacing: .015em;
  overflow-wrap: anywhere;
  text-shadow: none;
}
.astroApp .mdView :is(h1, h2, h3, h4, h5, h6),
.astroApp .mdView .mdH2 {
  display: block; position: static; border: 0; border-radius: 0; padding: 0;
  background: none; box-shadow: none; filter: none; text-shadow: none;
  color: var(--astro-text); line-height: 1.6; letter-spacing: .025em;
  font-weight: 500; text-align: left;
}
.astroApp .mdView :is(h1, h2, h3, h4, h5, h6, .mdSection, pre)::before,
.astroApp .mdView :is(h1, h2, h3, h4, h5, h6, .mdSection)::after { display: none; }
.astroApp .mdView h1 { font-family: var(--astro-serif); font-size: clamp(25px, 2.3vw, 34px); margin: 0 0 24px; }
.astroApp .mdView :is(h2, .mdH2) { font-family: var(--astro-serif); font-size: 24px; margin: 0 0 18px; }
.astroApp .mdView h3 { font-size: 18px; font-weight: 600; margin: 28px 0 12px; }
.astroApp .mdView :is(h4, h5, h6) { font-size: 15px; font-weight: 600; margin: 24px 0 10px; }
.astroApp .mdView .mdIntro { margin: 0 0 28px; }
.astroApp .mdView .mdSection { margin: 0; padding: 28px 0; border: 0; border-top: 1px solid var(--astro-line); border-radius: 0; background: none; box-shadow: none; }
.astroApp .mdView :is(p, li) { color: var(--reading-text); }
.astroApp .mdView p { margin: 0 0 1.15em; }
.astroApp .mdView :is(strong, em) { padding: 0; border: 0; border-radius: 0; background: none; color: var(--astro-text); }
.astroApp .mdView strong { font-weight: 600; }
.astroApp .mdView :is(ul, ol) { margin: 16px 0; padding-left: 1.4em; }
.astroApp .mdView li { margin: 8px 0; padding-left: 3px; }
.astroApp .mdView li::marker { color: var(--astro-gold); }
.astroApp .mdView a { color: var(--astro-gold); text-underline-offset: 4px; }
.astroApp .mdView a:hover { color: var(--astro-gold-hover); }
.astroApp .mdView blockquote { margin: 24px 0; padding: 16px 20px; border-left: 2px solid var(--astro-gold); border-radius: 0 6px 6px 0; background: var(--astro-input); color: var(--astro-muted); }
.astroApp .mdView blockquote p:last-child { margin-bottom: 0; }
.astroApp .mdView hr { margin: 28px 0; border-color: var(--astro-line); }
.astroApp .mdView pre { padding: 16px; border-radius: 6px; border-color: var(--astro-line); background: var(--astro-bg); box-shadow: none; }
.astroApp .mdView code { background: var(--astro-input); border-color: var(--astro-line); color: var(--astro-text); }
.astroApp .mdView pre code { background: transparent; }
.astroApp #resultsTabs .mdView table { font-size: 14px; margin: 20px 0; border: 0; border-radius: 0; table-layout: fixed; }
.astroApp #resultsTabs .mdView :is(th, td) { padding: 12px; line-height: 1.8; border: 0; border-bottom: 1px solid var(--astro-line); background: transparent; color: var(--reading-text); }
.astroApp #resultsTabs .mdView th { background: var(--astro-input); color: var(--astro-text); font-weight: 600; }
.astroApp #resultsTabs .mdView tbody tr:hover td { background: #ffffff03; }
.astroApp .mdView.mdChatLight { --reading-text: #2b3d35; }
.astroApp #aiChatMsgs .mdView :is(h1, h2, .mdH2) { font-family: var(--astro-sans); font-size: 17px; font-weight: 600; }
.astroApp #aiChatMsgs .mdView h3 { font-size: 15px; }
.astroApp #aiChatMsgs .mdView .mdSection { padding: 16px 0; }
.astroApp #aiChatMsgs .mdView .mdSection:last-child { padding-bottom: 0; }
.astroApp .reading-library { padding: 20px 24px; }
.astroApp .reading-toolbar { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 12px 20px; }
.astroApp .reading-toolbar > .min-w-0 { flex: 1 1 230px; }
.astroApp .reading-toolbar > .flex { flex-shrink: 0; }
.astroApp .reading-toolbar .astro-button { font-size: 12px !important; min-height: 38px !important; }
.astroApp .reading-document { padding: 0; overflow: hidden; }
.astroApp .reading-document > .reading-toolbar { padding: 18px 24px; border-bottom: 1px solid var(--astro-line); }
.astroApp .reading-document > #aiStatus { margin: 0; padding: 12px 24px 0; font-size: 12px; }
.astroApp .reading-document > #aiStatus:empty { display: none; }
.astroApp #aiOut { max-width: 84ch; padding: 32px 32px 20px; margin: 0 auto; }
.astroApp #aiOut:empty { display: none; }

/* One quiet chapter index and readable article column for both guide modes. */
.astroApp #tab-glossary .glossary-intro { padding: 10px 0 22px; border-bottom: 1px solid var(--astro-line); }
.astroApp #tab-glossary .glossary-title { display: flex; align-items: baseline; gap: 12px; margin-bottom: 12px; font: 28px/1.65 var(--astro-serif); color: var(--astro-text); }
.astroApp #tab-glossary .glossary-title svg { align-self: center; width: 24px; height: 24px; color: var(--astro-gold); flex-shrink: 0; }
.astroApp #tab-glossary .glossary-intro p { max-width: 88ch; color: var(--astro-muted); font-size: 14px; line-height: 1.9; }
.astroApp #tab-glossary .glossary-mode { display: flex; align-items: center; flex-wrap: wrap; gap: 10px; padding: 0 0 8px; }
.astroApp #tab-glossary .glossary-mode > div { color: var(--astro-muted); font-size: 12px; font-weight: 500; margin-right: 6px; }
.astroApp #glossPaneToc { background: transparent; border: 0; border-right: 1px solid var(--astro-line); border-radius: 0; padding: 4px 20px 16px 0; min-width: 0; }
.astroApp #glossPaneToc h3 { font: 19px/1.6 var(--astro-serif); color: var(--astro-text); }
.astroApp #glossPaneToc h3 svg { display: none; }
.astroApp #glossPaneToc :is(button, .ui-pill-muted) { border: 1px solid var(--astro-line); border-radius: 5px; background: var(--astro-input); color: var(--astro-muted); box-shadow: none; font-size: 11px; font-weight: 500; min-height: 34px; padding: 6px 8px; }
.astroApp #tab-glossary .glossToc { gap: 3px; }
.astroApp #tab-glossary .glossToc a { padding: 9px 10px; border: 0; border-radius: 5px; background: transparent; box-shadow: none; color: var(--astro-muted); font-size: 13px; font-weight: 400; line-height: 1.65; transform: none; }
.astroApp #tab-glossary .glossToc a:is(:hover, .is-active, [aria-current]) { color: var(--astro-gold); background: #476e5c0c; box-shadow: inset 2px 0 var(--astro-gold); filter: none; }
.astroApp #tab-glossary .glossToc a:focus-visible { outline: 2px solid var(--astro-gold); outline-offset: 2px; box-shadow: none; }
.astroApp #glossPaneContent { min-width: 0; border: 1px solid var(--astro-line); border-radius: 9px; padding: 0 28px; background: var(--astro-panel); overflow: hidden; }
.astroApp #glossPaneContent > .gloss-section { margin: 0; padding: 0; border: 0; border-top: 1px solid var(--astro-line); background: transparent; scroll-margin-top: 12px; }
.astroApp #glossPaneContent > .gloss-section:first-child { border-top: 0; }
.astroApp #glossPaneContent .gloss-chapter-title { margin: 0; font-size: inherit; }
.astroApp #glossPaneContent .gloss-section-header { display: flex; align-items: center; justify-content: space-between; gap: 16px; width: 100%; padding: 23px 0; border: 0; border-radius: 0; background: transparent; color: var(--astro-text); text-align: left; font: 23px/1.7 var(--astro-serif); box-shadow: none; }
.astroApp #glossPaneContent .gloss-section-header:hover { color: var(--astro-gold); }
.astroApp #glossPaneContent .gloss-section-header:focus-visible { outline-offset: -2px; }
.astroApp #glossPaneContent .gloss-arrow { flex-shrink: 0; color: var(--astro-gold); transition: transform .15s; }
.astroApp #glossPaneContent [aria-expanded='false'] .gloss-arrow { transform: rotate(-90deg); }
.astroApp #glossPaneContent .gloss-article { padding: 0 0 28px; font-size: 15px; line-height: 1.95; color: var(--reading-text); }
.astroApp #glossPaneContent .gloss-article :is(.text-xs, .text-sm) { font-size: 14px; line-height: 1.9; }
.astroApp #glossPaneContent .gloss-article :is(h4, h5) { color: var(--astro-text); font-size: 17px; font-weight: 600; line-height: 1.7; margin: 24px 0 12px; }
.astroApp #glossPaneContent .gloss-article :is(ul, ol) { padding-left: 1.4em; list-style-position: outside; }
.astroApp #glossPaneContent .gloss-article li { margin: 7px 0; }
.astroApp #glossPaneContent .gloss-article li::marker { color: var(--astro-gold); }
.astroApp #glossPaneContent .gloss-article > [class*='bg-slate-'] { background: transparent; border: 0; border-top: 1px solid var(--astro-line-soft); border-radius: 0; padding: 4px 0 12px; margin-top: 20px; }
.astroApp #glossPaneContent .gloss-article .grid > [class*='bg-slate-'] { border: 1px solid var(--astro-line-soft); background: transparent; border-radius: 6px; box-shadow: none; }
.astroApp #glossPaneContent .gloss-article table { table-layout: fixed; font-size: 13px; }
.astroApp #glossPaneContent .gloss-article :is(th, td) { padding: 11px 10px; border-color: var(--astro-line-soft); line-height: 1.8; overflow-wrap: anywhere; }
.astroApp #glossPaneContent .gloss-article th { background: var(--astro-input); }
.astroApp #glossPaneContent .gloss-article div[class*='rounded'][class*='bg-'] { background: var(--astro-input); border-color: var(--astro-line-soft); border-radius: 6px; box-shadow: none; }
.astroApp #glossPaneContent .gloss-article > div[class*='rounded'][class*='bg-slate'] { background: transparent; border-radius: 0; }
.astroApp #glossPaneContent .gloss-article .gloss-concepts > div[class*='rounded'][class*='bg-'] { border: 0; border-top: 1px solid var(--astro-line); padding: 16px 0; border-radius: 0; background: transparent; text-align: left; }
.astroApp #glossPaneContent .gloss-concepts > div > .text-2xl { display: none; }
.astroApp #glossPaneContent .gloss-concepts .font-bold { color: var(--astro-text); font-size: 16px; font-weight: 600; }
.astroApp #glossPaneContent .gloss-history { list-style: none; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px 12px; padding: 0; margin: 20px 0; }
.astroApp #glossPaneContent .gloss-history li { margin: 0; padding: 0 0 0 12px; border-left: 1px solid var(--astro-line); }
.astroApp #glossPaneContent .gloss-history span { display: block; color: var(--astro-gold); font-size: 12px; margin-bottom: 4px; }
.astroApp #glossPaneContent .gloss-history strong { font-size: 13px; font-weight: 500; color: var(--astro-text); }
.astroApp .gloss-diagram, .astroApp .astro-table-scroll { max-width: 100%; overflow-x: auto; overscroll-behavior-x: contain; scrollbar-width: thin; scrollbar-color: var(--astro-line) transparent; }
.astroApp .gloss-diagram { border-radius: 6px; padding-bottom: 10px; }
.astroApp .gloss-diagram svg { display: block; min-width: 500px; width: 100%; max-width: none; height: auto; }
.astroApp #resultsTabs .astro-table-scroll table:has(tr > :nth-child(5)) { min-width: 560px; table-layout: auto; }
.astroApp #resultsTabs .astro-table-scroll :is(th, td):first-child { min-width: 4.5em; }
.astroApp #tab-glossary .glossAffiliateCard { border: 0; border-top: 1px solid var(--astro-line); border-bottom: 1px solid var(--astro-line); border-radius: 0; background: transparent; box-shadow: none; padding: 18px 0; margin: 0 0 24px; }
.astroApp #tab-glossary .glossAffItem { background: var(--astro-input); border-color: var(--astro-line); border-radius: 6px; box-shadow: none; transform: none; }
.astroApp #tab-glossary :is(.glossAffTitle, .glossAffItemTitle) { font-weight: 500; line-height: 1.7; }
.astroApp #tab-glossary .glossAffItemTitle { color: var(--astro-text); }
.astroApp #tab-glossary .glossAffBtn { color: #fff; background: var(--astro-gold); border: 1px solid var(--astro-gold); border-radius: 6px; box-shadow: none; font-weight: 500; }
.astroApp #tab-glossary .glossAffTitle { color: var(--astro-muted); font-size: 13px; }
.astroApp #tab-glossary .glossAffIcon { color: var(--astro-gold); filter: none; }
.astroApp #tab-glossary :is(.glossAffAdPill, .glossAffBadge) { color: var(--astro-muted); background: transparent; border-color: var(--astro-line); border-radius: 4px; font-weight: 400; }
.astroApp #tab-glossary .glossAffImgWrap { border-radius: 4px; }
.astroApp #globalHelpModal .astro-modal-shell { width: 100%; max-width: 820px; max-height: min(90dvh, 960px); }
.astroApp #globalHelpModal .astro-modal-header { flex-shrink: 0; }
.astroApp #globalHelpModal .help-index { display: flex; gap: 8px; flex-wrap: wrap; padding: 14px 24px; border-bottom: 1px solid var(--astro-line); background: var(--astro-panel); flex-shrink: 0; }
.astroApp #globalHelpModal .help-index button { padding: 8px 12px; min-height: 38px; border: 1px solid var(--astro-line); border-radius: 5px; color: var(--astro-muted); background: transparent; font-size: 12px; white-space: nowrap; }
.astroApp #globalHelpModal .help-index button:is(:hover, [aria-current]) { color: var(--astro-gold); border-color: #b5a078; background: #476e5c08; }
.astroApp #globalHelpModal .help-content { padding: 28px 32px; min-height: 0; overflow-y: auto; font-size: 14px; line-height: 1.95; scroll-behavior: smooth; }
.astroApp #globalHelpModal .help-content > * { scroll-margin-top: 20px; }
.astroApp #globalHelpModal .help-content > div { padding: 24px 0; }
.astroApp #globalHelpModal .help-content :is(.text-xs, [class*='text-[11px]']) { font-size: 14px; line-height: 1.95; }
.astroApp #globalHelpModal .help-content :is(.font-bold, .font-extrabold, .font-semibold, b, strong) { font-weight: 600; }
.astroApp #globalHelpModal .help-content :is(.text-purple-300, .text-pink-300, .text-indigo-200, .text-amber-200, .text-white, .text-slate-100) { color: var(--astro-text); }
.astroApp #globalHelpModal .help-section-title,
.astroApp #globalHelpModal .help-content > div > .font-bold { margin: 0 0 16px; font: 22px/1.65 var(--astro-serif); color: var(--astro-text); }
.astroApp #globalHelpModal .help-content > details { border: 0; border-bottom: 1px solid var(--astro-line); border-radius: 0; margin: 0; }
.astroApp #globalHelpModal .help-content > details > summary { display: flex; align-items: center; gap: 16px; min-height: 60px; padding: 16px 0; border-radius: 0; background: transparent; color: var(--astro-text); font-size: 16px; font-weight: 500; }
.astroApp #globalHelpModal .help-content > details > summary:hover { color: var(--astro-gold); }
.astroApp #globalHelpModal .help-content > details > summary span { display: none !important; }
.astroApp #globalHelpModal .help-content > details > summary::after { content: ''; width: 7px; height: 7px; flex-shrink: 0; margin-left: auto; margin-right: 7px; border-bottom: 1px solid var(--astro-gold); border-right: 1px solid var(--astro-gold); transform: rotate(45deg); }
.astroApp #globalHelpModal .help-content > details[open] > summary::after { transform: rotate(225deg); }
.astroApp #globalHelpModal .help-content > details > div { padding: 0 0 24px; border: 0; }
.astroApp #globalHelpModal .help-content > details > div > div + div { padding-top: 16px; border-top: 1px solid var(--astro-line-soft); }
.astroApp #globalHelpModal .help-content :is(ul, ol) { margin: 14px 0; }
.astroApp #globalHelpModal .help-content li { margin-bottom: 10px; }
.astroApp #globalHelpModal .help-content li::marker { color: var(--astro-gold); }
.astroApp #globalHelpModal .help-introduction:first-child { padding: 0 0 24px; }
.astroApp #globalHelpModal .help-introduction:first-child > .flex { flex-wrap: wrap; gap: 8px 12px; }
.astroApp #globalHelpModal .help-introduction:first-child > .flex > .min-w-0 { flex: 1 1 220px; }
.astroApp #globalHelpModal .help-introduction:first-child .h-7 { display: none; }
.astroApp #globalHelpModal .help-introduction:first-child .rounded-full { border: 1px solid #c3d5ca; border-radius: 4px; padding: 3px 7px; font-size: 11px; font-weight: 500; }
.astroApp #globalHelpModal .help-introduction > .grid { gap: 8px; }
.astroApp #globalHelpModal .help-introduction > .grid > div { padding: 8px 12px; border: 0; border-left: 1px solid var(--astro-line); border-radius: 0; background: transparent; }
.astroApp #globalHelpModal .help-introduction > .grid > div > div { font-size: 12px; line-height: 1.8; }
.astroApp #globalHelpModal #help-features > .space-y-4 > div { border-color: var(--astro-line); padding-left: 16px; }
.astroApp #globalHelpModal #help-features .font-semibold { color: var(--astro-gold); font-size: 15px; }
.astroApp .dialog-content { padding: 24px; }
.astroApp #astroDialogMessage { font-size: 14px; line-height: 1.9; white-space: pre-wrap; overflow-wrap: anywhere; color: #36473f; }
.astroApp .dialog-actions { display: flex; justify-content: flex-end; flex-wrap: wrap; gap: 10px; margin-top: 24px; }
.astroApp .dialog-input:not(:empty) { margin-top: 16px; }
.astroApp #globalSettingsModal .astro-modal-shell > .overflow-y-auto { padding: 24px; }
.astroApp #globalSettingsModal .astro-surface { padding: 0 0 20px; border: 0; border-bottom: 1px solid var(--astro-line); border-radius: 0; background: transparent; }
.astroApp #globalSettingsModal .astro-surface > .text-sm { font: 20px/1.7 var(--astro-serif); }
.astroApp #globalSettingsModal .astro-surface > [class*='text-[11px]'] { font-size: 14px; line-height: 1.9; }
.astroApp.legalPage .header-inner { max-width: 1200px; }
.astroApp.legalPage .legal-back { display: inline-flex; align-items: center; padding: 8px 14px; text-decoration: none; font-size: 12px; white-space: nowrap; }
.astroApp.legalPage .legal-layout { max-width: 960px; margin: auto; padding: 40px 24px 64px; }
.astroApp.legalPage .legal-document { padding: clamp(24px, 5vw, 56px); border: 1px solid var(--astro-line); border-radius: 10px; background: var(--astro-panel); }
.astroApp.legalPage h1 { font: 32px/1.6 var(--astro-serif); margin: 0 0 12px; }
.astroApp.legalPage .legal-intro { margin-bottom: 10px; color: var(--astro-muted); }
.astroApp.legalPage .legal-document h2 { font: 23px/1.7 var(--astro-serif); padding-top: 28px; }
.astroApp.legalPage .legal-document > .space-y-6 > div:first-child { border: 0; border-left: 2px solid var(--astro-gold); border-radius: 0; padding: 16px 20px; background: var(--astro-input); }
.astroApp.legalPage .legal-document :is(p, li) { font-size: 15px; line-height: 1.95; }
.astroApp.legalPage .legal-document li { margin-bottom: 10px; }
.astroApp.legalPage .legal-document :is(b, strong) { font-weight: 600; }
@media (min-width: 1024px) {
  .astroApp #tab-glossary .glossLayout { display: grid; grid-template-columns: 244px minmax(0, 1fr); gap: 28px; }
  .astroApp #glossPaneToc { max-height: calc(100dvh - 105px); overflow-y: auto; top: 82px; scrollbar-width: thin; }
}
@media (max-width: 1023px) {
  .astroApp #glossPaneToc { border-right: 0; padding: 12px 0 20px; max-height: none; }
  .astroApp #tab-glossary .glossToc { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 768px) {
  .astroApp .reading-library { padding: 16px; }
  .astroApp .reading-document > .reading-toolbar { padding: 14px 16px; align-items: flex-start; }
  .astroApp .reading-document > #aiStatus { padding: 12px 16px 0; }
  .astroApp #aiOut { padding: 26px 18px 10px; font-size: 15px; }
  .astroApp .mdView h1 { font-size: 25px; line-height: 1.75; margin-bottom: 22px; }
  .astroApp .mdView :is(h2, .mdH2) { font-size: 22px; line-height: 1.7; }
  .astroApp .mdView h3 { font-size: 17px; }
  .astroApp .mdView .mdSection { padding: 24px 0; }
  .astroApp .mdView blockquote { padding: 13px 15px; }
  .astroApp #resultsTabs .mdView :is(table, th, td) { font-size: 12px; }
  .astroApp #resultsTabs .mdView :is(th, td) { padding: 10px 7px; }
  .astroApp #tab-glossary .glossary-title { font-size: 23px; align-items: flex-start; gap: 9px; }
  .astroApp #tab-glossary .glossary-title svg { margin-top: 9px; align-self: auto; width: 20px; height: 20px; }
  .astroApp #tab-glossary .glossary-intro p { font-size: 13px; }
  .astroApp #glossPaneContent { padding: 0 18px; }
  .astroApp #glossPaneContent .gloss-section-header { font-size: 21px; padding: 20px 0; }
  .astroApp #glossPaneContent .gloss-article { font-size: 15px; }
  .astroApp #glossPaneContent .gloss-article :is(h4, h5) { font-size: 16px; }
  .astroApp #glossPaneContent .gloss-article :is(th, td) { padding: 10px 6px; font-size: 12px; }
  .astroApp #glossPaneContent .gloss-article .grid { grid-template-columns: minmax(0, 1fr); }
  .astroApp #glossPaneContent .gloss-history { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .astroApp #glossPaneContent .gloss-diagram::before { content: '左右にスクロールして図を見る'; display: block; color: var(--astro-muted); font-size: 11px; padding-bottom: 8px; }
  .astroApp #tab-glossary .glossAffGrid { grid-template-columns: minmax(0, 1fr); }
  .astroApp #globalHelpModal .help-content { padding: 22px 20px; }
  .astroApp #globalHelpModal .help-index { padding: 12px 18px; gap: 6px; }
  .astroApp #globalHelpModal .help-index button { padding: 7px 8px; font-size: 11px; min-height: 38px; }
  .astroApp #globalHelpModal .help-section-title { font-size: 21px; }
  .astroApp #globalHelpModal .help-introduction > .grid { grid-template-columns: minmax(0, 1fr); gap: 3px; }
  .astroApp #globalHelpModal .help-introduction > .grid > div { display: grid; grid-template-columns: 56px minmax(0, 1fr); padding: 7px 10px; }
  .astroApp .dialog-content { padding: 20px; }
  .astroApp .dialog-actions { gap: 8px; }
  .astroApp .dialog-actions button { flex: 1 1 110px; }
  .astroApp.legalPage .legal-layout { padding: 24px 14px 40px; }
  .astroApp.legalPage .legal-document { padding: 24px 18px; }
  .astroApp.legalPage h1 { font-size: 27px; overflow-wrap: anywhere; }
  .astroApp.legalPage .legal-document h2 { font-size: 21px; }
  .astroApp.legalPage .brand { font-size: 20px; gap: 7px; }
  .astroApp.legalPage .brand-mark { width: 27px; height: 27px; }
  .astroApp.legalPage .header-inner { gap: 10px; padding-inline: 14px; }
  .astroApp.legalPage .legal-back { padding-inline: 9px; font-size: 11px; }
}

/* White Botanical Observatory: the selected horizontal profile / reading layout. */
.astroApp :is(.text-white, .text-slate-50, .text-slate-100, .text-slate-200, .text-slate-300, [class*='text-slate-50/'], [class*='text-slate-100/'], [class*='text-slate-200/'], [class*='text-slate-300/']) { color: var(--astro-text); }
.astroApp :is(.text-slate-400, .text-slate-500, .text-gray-400, .text-gray-500) { color: var(--astro-muted); }
.astroApp :is([class^='bg-slate-9'], [class*=' bg-slate-9'], [class^='bg-slate-8'], [class*=' bg-slate-8']) { background-color: var(--astro-raised); }
.astroApp :is([class*='border-slate-8'], [class*='border-slate-7'], [class*='border-slate-6']) { border-color: var(--astro-line); }
.astroApp :is(.text-purple-100, .text-purple-200, .text-purple-300, .text-indigo-100, .text-indigo-200, .text-indigo-300, .text-emerald-200, .text-emerald-300, [class*='text-purple-200/'], [class*='text-purple-300/'], [class*='text-indigo-200/'], [class*='text-indigo-300/'], [class*='text-emerald-200/'], [class*='text-emerald-300/']) { color: var(--astro-gold); }
.astroApp :is(.text-amber-100, .text-amber-200, .text-amber-300, .text-yellow-200) { color: #816430; }
.astroApp :is(.text-pink-100, .text-pink-200, .text-pink-300, .text-rose-200, .text-rose-300, [class*='text-rose-200/'], [class*='text-rose-300/']) { color: #a13e52; }
.astroApp :is(.text-blue-200, .text-blue-300, .text-cyan-200, .text-cyan-300) { color: #356a7b; }
.astroApp :is(button, a)[class*='bg-gradient-'] { color: #fff; }
.astroApp .brand-mark, .astroApp .signup-icon, .astroApp .discipline-symbol { color: var(--astro-decor); }
.astroApp .site-header { background: #fffffff5; }
.header-inner { min-height: 58px; padding: 0 56px; }
.brand { color: #2d4b40; font-size: 28px; }
.astroApp #mainContent { width: 100%; max-width: none; padding-bottom: 48px; }
.workspace-intro { display: flex; flex-direction: column; justify-content: center; gap: 0; height: 230px; min-height: 0; padding: 16px 24px; overflow: hidden; isolation: isolate; border-bottom: 1px solid var(--astro-line-soft); }
.workspace-intro h1 { margin: 0; font-size: 48px; line-height: 1.3; letter-spacing: .04em; text-align: center; }
.intro-copy { margin: 14px 0 0; font-size: 14px; line-height: 1.9; text-align: center; }
.intro-art { position: absolute; z-index: -1; top: 0; height: 100%; width: min(29vw, 440px); object-fit: cover; pointer-events: none; }
.intro-art-blossoms { left: 0; width: min(33vw, 480px); object-position: left center; }
.intro-art-celestial { right: 0; width: min(35vw, 520px); object-position: right center; }
.journey { display: none; }
.analysis-workspace { display: block; width: calc(100% - 112px); max-width: 1440px; margin: 0 auto; }
.workspace-panel { border: 0; border-radius: 0; background: #fff; }
.profile-panel { display: grid; grid-template-columns: 310px minmax(0, 1fr); gap: 0 24px; padding: 18px 0 10px; }
.panel-heading h2 { font-size: 27px; line-height: 1.5; letter-spacing: .04em; }
.panel-heading p { margin-top: 4px; font-size: 12px; }
.profile-toolbar { width: 440px; max-width: 100%; border: 0; margin: 0; padding: 0; align-self: center; }
.profile-toolbar #profileSelect { font-size: 13px; min-height: 39px; }
.astroApp #profileForm { grid-column: 1 / -1; grid-template-columns: repeat(4, minmax(0, 1fr)) !important; gap: 15px 32px; margin-top: 22px; }
.astroApp #profileForm .ui-field > label { font-size: 13px; margin-bottom: 7px; }
.astroApp #profileForm .ui-field :is(.ui-control, .ui-shell) { min-height: 40px; background: #fff; font-size: 14px; }
.astroApp #profileForm .field-birthTime { gap: 0 16px; grid-template-columns: minmax(0, 1fr) minmax(105px, 43%); }
.astroApp #profileForm .ui-field-help { margin-top: 0; }
.astroApp #profileForm .ui-field-help label { font-size: 11px; color: var(--astro-muted); }
.astroApp #profileForm #advancedSettings { grid-column: 4; grid-row: 2; }
.astroApp #profileForm #advancedSettings[open] { grid-column: 1 / -1; }
.settings-disclosure > summary { color: var(--astro-muted); font-size: 12px; min-height: 38px; padding: 9px 13px; }
.optional-fields, .advanced-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.profile-consent-row { grid-column: 1 / -1; display: grid; grid-template-columns: minmax(0, 1fr) 272px; gap: 24px; align-items: start; border-top: 1px solid var(--astro-line); padding-top: 16px; }
.consent-panel { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr); gap: 24px; background: transparent; border: 0; border-radius: 0; padding: 0; }
.consent-panel > .consent-copy, .consent-panel > .consent-choices { grid-column: auto; }
.consent-copy > div:first-child { font-size: 12px; font-weight: 600; margin-bottom: 3px; }
#privacyConsentDesc { font-size: 11px; line-height: 1.85; }
.consent-choices { display: grid; grid-template-columns: auto auto; gap: 8px 18px; padding-top: 12px; align-content: center; }
.consent-choices label { display: flex; align-items: flex-start; gap: 8px; margin: 0; font-size: 12px; font-weight: 500; white-space: normal; }
.astroApp #profileForm .consent-choices label > span { margin: 0; padding: 0; font-size: 12px; color: var(--astro-text); }
.consent-choices .ui-check { margin: 1px 0 0; }
#privacyConsentMsg { grid-column: 1 / -1; }
#privacyConsentMsg:empty { display: none; }
.consent-choices #simpleModeNoAIDesc { grid-column: 2; margin: 0; font-size: 10px; line-height: 1.8; }
#btnAnalyze { min-height: 55px; font-size: 17px; font-weight: 500; letter-spacing: .08em; }
.results-panel { display: grid; grid-template-columns: minmax(300px, 25.5%) minmax(0, 1fr); gap: 0 26px; border-top: 1px solid var(--astro-line); padding: 22px 0 12px; min-height: 0; }
.results-heading { margin: 0; align-self: start; min-height: 48px; gap: 10px; }
.results-heading h2 { white-space: nowrap; }
.expand-button { width: 30px; min-width: 30px; min-height: 32px; padding: 6px; }
.result-navigation { min-width: 0; width: 100%; max-width: 640px; }
.result-tab-list { border: 0; border-radius: 0; background: transparent; }
.astroApp #resultsTabs .tabBtn { min-height: 39px; font-size: 13px; padding: 9px 5px; border-bottom: 1px solid var(--astro-line-soft); background: transparent; }
.astroApp #resultsTabs .tabBtn[aria-selected='true'] { background: transparent !important; color: var(--astro-gold) !important; box-shadow: inset 0 -2px var(--astro-gold); }
.astroApp #resultsTabs .tabBtn:hover { background: var(--astro-raised); }
.astroApp .tabPanel { grid-column: 1 / -1; margin-top: 14px; }
.astroApp #resultsTabs .tabPanel:has(> .analysis-empty) { overflow: visible; }
.analysis-empty { display: grid; grid-template-columns: minmax(280px, 36%) minmax(0, 1fr); gap: 16px; align-items: start; min-height: 335px; padding: 0; text-align: center; }
.analysis-empty-art { width: calc(100% + 50px); max-width: none; height: 335px; margin: 0 0 0 -56px; object-fit: cover; object-position: center bottom; mask-image: none; }
.analysis-empty-reading { min-width: 0; padding: 6px 0 0; }
.analysis-empty h3 { font-size: 30px; line-height: 1.7; letter-spacing: .035em; margin-bottom: 8px; }
.analysis-empty-description { max-width: 100%; font-size: 14px; line-height: 1.6; }
.analysis-disciplines { margin: 18px 0 24px; }
.analysis-disciplines > div { gap: 14px; padding: 0 20px; }
.analysis-disciplines strong { font-size: 17px; line-height: 1.5; }
.analysis-disciplines p { font-size: 12px; line-height: 1.7; }
.analysis-empty-tip { font-size: 12px; padding-top: 20px; margin: 0 auto; }
.analysis-empty-tip::before { color: var(--astro-decor); }
.analysis-empty-link { display: inline-flex; margin-top: 13px; font-size: 12px; }
.astroApp[data-workspace-wide='true'] .analysis-workspace { margin-top: 24px; }
.astroApp[data-workspace-wide='true'] .results-panel { display: block; }
.astroApp[data-workspace-wide='true'] .results-heading { flex-wrap: wrap; }
.astroApp[data-workspace-wide='true'] .result-navigation { max-width: none; }
.astroApp .astro-button-primary, .astroApp [id$='Modal'] .astro-button-primary, .astroApp #resultsTabs .astro-button-primary { color: #fff; }
.astroApp .astro-badge-cost { color: #816430; }
.astroApp .astro-badge-free { color: #365f4a; }
.astroApp #astroPointsModal [data-packs] button[data-pack] { background: #fff; }
.astroApp #astroPointsModal [data-packs] button[data-pack]:hover { background: var(--astro-raised); }
.astroApp #astroPointsModal :is([data-points-account-card], [data-points-balance-card], [data-points-buy-card]) { background: #fff; }
.astroApp .custom-scrollbar { scrollbar-color: #bdcac2 transparent; }
.astroApp .custom-scrollbar::-webkit-scrollbar-thumb { background: #bdcac2; }
.astroApp .custom-scrollbar::-webkit-scrollbar-track { background: transparent; }
@media (max-width: 1199px) {
  .header-inner { padding-inline: 24px; }
  .analysis-workspace { width: calc(100% - 48px); }
  .workspace-intro h1 { font-size: 42px; }
  .workspace-intro h1 br { display: block; }
  .intro-art { width: 26vw; }
  .intro-art-blossoms { width: 29vw; }
  .intro-art-celestial { width: 31vw; }
  .profile-panel { grid-template-columns: 290px minmax(0, 1fr); }
  .astroApp #profileForm { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; gap: 20px 28px; }
  .astroApp #profileForm #advancedSettings { grid-column: 1 / -1; grid-row: auto; }
  .profile-consent-row { grid-template-columns: minmax(0, 1fr); }
  #btnAnalyze { width: 272px; justify-self: end; }
  .results-panel { grid-template-columns: minmax(0, 1fr); gap: 12px; }
  .analysis-empty-art { margin-left: -24px; width: calc(100% + 20px); }
  .analysis-empty h3 { font-size: 24px; }
  .analysis-disciplines > div { padding: 0 12px; gap: 9px; }
  .analysis-disciplines strong { font-size: 14px; }
  .analysis-disciplines p { font-size: 11px; }
  .discipline-symbol { width: 38px; height: 38px; }
}
@media (min-width: 769px) and (max-width: 1023px) {
  .workspace-intro h1 { font-size: 36px; }
  .intro-art { width: 210px; height: 140px; }
}
@media (max-width: 768px) {
  .header-inner { min-height: 64px; padding: 6px 14px; gap: 6px 10px; flex-wrap: wrap; }
  .header-actions { margin-left: auto; }
  .brand { font-size: 22px; gap: 8px; }
  .brand-mark { width: 28px; height: 28px; }
  .astroApp #mainContent { width: calc(100% - 28px); padding-bottom: 24px; }
  .workspace-intro { height: 220px; margin: 0 -14px; padding: 58px 18px 18px; }
  .workspace-intro h1 { font-size: 28px; line-height: 1.5; letter-spacing: .03em; }
  .workspace-intro h1 br { display: block; }
  .intro-copy { font-size: 11px; line-height: 1.9; margin-top: 12px; }
  .intro-art { height: 92px; width: 140px; object-fit: cover; }
  .intro-art-celestial { width: 125px; }
  .analysis-workspace { width: 100%; }
  .profile-panel { display: grid; grid-template-columns: minmax(0, 1fr); padding: 23px 4px 24px; }
  .panel-heading h2 { font-size: 24px; }
  .profile-toolbar { width: 100%; max-width: none; margin-top: 16px; gap: 8px; }
  .astroApp #profileForm { grid-template-columns: minmax(0, 1fr) !important; gap: 20px; margin-top: 22px; }
  .astroApp #profileForm .ui-field > label { font-size: 13px; }
  .astroApp #profileForm .ui-field :is(.ui-control, .ui-shell) { font-size: 16px; min-height: 44px; }
  .astroApp #profileForm .field-birthTime { grid-template-columns: minmax(0, 1fr) minmax(105px, 43%); }
  .astroApp #profileForm .ui-field-help label { font-size: 11px; }
  .optional-fields, .advanced-grid { grid-template-columns: minmax(0, 1fr); }
  .profile-consent-row { display: flex; flex-direction: column; gap: 18px; padding-top: 16px; }
  .consent-panel { display: block; }
  .consent-choices { grid-template-columns: minmax(0, 1fr); padding-top: 16px; gap: 13px; }
  .consent-choices #simpleModeNoAIDesc { grid-column: 1; margin-left: 25px; margin-top: -9px; }
  #privacyConsentDesc { font-size: 11px; }
  #btnAnalyze { width: 100%; min-height: 52px; }
  .results-panel { display: block; padding: 20px 4px; }
  .results-heading h2 { font-size: 23px; }
  .result-navigation { margin-top: 14px; }
  .astroApp #resultsTabs .tabBtn { font-size: 12px; min-height: 43px; }
  .analysis-empty { display: flex; flex-direction: column; align-items: center; gap: 0; min-height: 0; padding: 4px 0 20px; }
  .analysis-empty-art { width: 260px; max-width: 100%; height: auto; margin: 0 0 12px; }
  .analysis-empty-reading { width: 100%; padding: 0; }
  .analysis-empty h3 { font-size: 22px; letter-spacing: .01em; }
  .analysis-empty-description { font-size: 12px; max-width: 320px; }
  .analysis-disciplines { margin: 24px 0; }
  .analysis-disciplines > div { padding: 0 8px; gap: 8px; flex-direction: column; text-align: center; }
  .analysis-disciplines strong { font-size: 12px; white-space: normal; }
  .analysis-disciplines p { display: none; }
  .discipline-symbol { width: 34px; height: 34px; }
  .analysis-empty-tip { font-size: 11px; line-height: 1.8; }
  .astroApp[data-workspace-wide='true'] .results-heading h2 { font-size: 23px; }
}
@media (max-width: 370px) {
  .brand { font-size: 19px; }
  .workspace-intro h1 { font-size: 25px; }
  .panel-heading h2, .results-heading h2 { font-size: 22px; }
  .analysis-empty h3 { font-size: 20px; }
}

/* White botanical icon family: consistent strokes, quiet color, visible labels. */
.language-select, .astroApp .language-select {
  /* Reserve separate space for the label and caret, including Safari's picker. */
  box-sizing: border-box; flex: 0 0 112px; width: 112px; min-width: 112px; min-height: 40px;
  padding: 8px 30px 8px 12px; color: #476e5c; background-color: #fff;
  -webkit-appearance: none; appearance: none;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23476e5c' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");
  background-repeat: no-repeat; background-position: right 10px center; background-size: 14px 14px;
  border: 1px solid #d9dfdc; border-radius: 5px;
  font: 14px/1.4 'Segoe UI', Meiryo, sans-serif; white-space: nowrap; text-align: left; cursor: pointer;
}
.language-select:focus-visible { outline: 2px solid #476e5c; outline-offset: 2px; }
html:is([lang='en'],[lang='fr']) .workspace-intro h1 { letter-spacing: -.02em; line-height: 1.25; }
html:is([lang='en'],[lang='fr']) .intro-copy { max-width: 510px; font-size: 13px; }
html:is([lang='en'],[lang='fr']) .astroApp #resultsTabs .tabBtn { letter-spacing: 0; }
html:is([lang='en'],[lang='fr']) .astroApp .ui-label, html:is([lang='en'],[lang='fr']) .astroApp .panel-heading { letter-spacing: 0; }
/* French labels stay readable in the eight-column desktop result navigation. */
html[lang='fr'] .astroApp #resultsTabs .tabBtn { white-space: normal; line-height: 1.4; padding-inline: 7px; }
html[lang='fr'] .astroApp #resultsTabs .tabBtnInner { min-width: 0; gap: 6px; }
html[lang='fr'] .astroApp #resultsTabs .tab-label-full { min-width: 0; white-space: normal; }
html[lang='fr'] .astroApp .aiChatMgmtBtn { min-width: 0; padding-inline: 6px; gap: 4px; font-size: 12px; }
html[lang='fr'] .astroApp .aiChatMgmtBtn svg { flex-shrink: 0; }
html[lang='fr'] .astroApp .aiChatMgmtBtn span { min-width: 0; overflow: hidden; text-overflow: ellipsis; }
@media (max-width: 768px) {
  /* Shared consent controls must leave the app's mobile navigation usable. */
  .astroApp .sc-analytics-settings { bottom: calc(var(--mobile-dock-h, 72px) + 10px); }
  .astroApp .sc-analytics-consent { bottom: calc(var(--mobile-dock-h, 72px) + 12px); }
  .astroApp[data-mobile-chat-frame='1'] .sc-analytics-settings { display: none; }
  .astroApp[data-mobile-chat-frame='1'] .sc-analytics-consent { top: max(12px, env(safe-area-inset-top)); bottom: auto; max-height: 40svh; }
}
@media (max-width: 768px) {
  .language-select, .astroApp .language-select { min-height: 44px; font-size: 16px; }
  .header-actions { gap: 3px; }
  .brand { font-size: 19px; gap: 6px; }
  .brand-mark { width: 24px; height: 24px; }
  .astroApp .header-icon { width: 28px; min-width: 28px; height: 36px; min-height: 36px; padding: 4px; }
  #pointsWidget #btnPointsOpen { display: inline-flex; align-items: center; gap: 4px; white-space: nowrap; }
  html:is([lang='en'],[lang='fr']) .workspace-intro { height: auto; min-height: 236px; padding-bottom: 28px; }
  html:is([lang='en'],[lang='fr']) .workspace-intro h1 { font-size: 29px; }
  html:is([lang='en'],[lang='fr']) .intro-copy { font-size: 12px; line-height: 1.75; }
  html:is([lang='en'],[lang='fr']) .astroApp #resultsTabs .tabBtn { min-width: 0; padding: 8px 6px; }
  .astroApp.legalPage .header-inner { flex-wrap: wrap; height: auto; padding-top: 10px; padding-bottom: 10px; }
}
@media (max-width: 370px) {
  .header-inner { padding-left: 9px; padding-right: 9px; gap: 4px; }
  .brand { font-size: 16px; min-width: 0; }
  .brand > span:last-child { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
  .brand-mark { width: 21px; height: 21px; }
  #pointsWidget #btnPointsOpen { padding-left: 6px; padding-right: 6px; }
  #pointsWidget #btnPointsOpen .text-slate-300 { display: none; }
}
.astro-icon { display: inline-block; flex-shrink: 0; vertical-align: -.15em; overflow: visible; }
.brand-mark img, .signup-icon img { display: block; width: 100%; height: 100%; object-fit: contain; }
.astroApp .header-icon { color: var(--astro-gold); }
.astroApp .header-icon:hover { color: var(--astro-gold-hover); background: var(--astro-raised); }
.astroApp .tabBtn .tabBtnInner { display: inline-flex; align-items: center; gap: 7px; }
.astroApp .tab-icon { width: 17px; height: 17px; opacity: .85; }
.astroApp .tabBtn[aria-selected='true'] .tab-icon { opacity: 1; }
.astroApp .discipline-symbol { color: var(--astro-gold); }
.astroApp .discipline-symbol .symbol-accent { stroke: var(--astro-decor); }
.astroApp .icon-gift { color: #947340; }
.astroApp .icon-success { color: var(--astro-gold); }
.astroApp #astroPointsModal [data-packs] .rounded-full { color: var(--astro-gold) !important; background: var(--astro-raised) !important; border-color: var(--astro-line) !important; }
@media (max-width: 768px) {
  .astroApp .tabBtn .tabBtnInner { gap: 4px; }
  .astroApp .tab-icon { width: 15px; height: 15px; }
  .astroApp .analysis-empty h3 > span { display: inline-block; }
}
@media (max-width: 370px) {
  .astroApp #resultsTabs .tabBtn { min-height: 52px; padding: 6px 2px; }
  .astroApp .tabBtn .tabBtnInner { flex-direction: column; gap: 3px; }
}

/* Final reading and interaction polish across the white observatory. */
.astroApp :is(.text-sky-100, .text-sky-200, .text-sky-300, .text-cyan-400,
  [class*='text-sky-100/'], [class*='text-sky-200/'], [class*='text-sky-300/']) { color: #356a7b; }
.astroApp [class*='text-amber-100/'] { color: #816430; }
.astroApp .custom-scrollbar { scrollbar-color: #bac8bf transparent; }
.astroApp .custom-scrollbar::-webkit-scrollbar-track { background: transparent; }
.astroApp .custom-scrollbar::-webkit-scrollbar-thumb { background: #bac8bf; border-color: transparent; }
.astroApp .custom-scrollbar::-webkit-scrollbar-thumb:hover { background: #849b8d; }
.astroApp :is(.ui-control, .ui-control-deep, .astro-control)::placeholder { color: var(--astro-muted); opacity: 1; }
.astroApp #profileForm .ui-field > label { font-size: 14px; }
.astroApp #profileForm .ui-field :is(.ui-control, .ui-shell) { min-height: 44px; }
.astroApp #profileForm :is(input[type='date'], input[type='time']) { min-height: 44px; }
.astroApp #profileForm .ui-field-help label { font-size: 12px; line-height: 1.6; }
.profile-consent-row { align-items: center; }
#privacyConsentDesc { font-size: 12px; line-height: 1.9; }
#privacyConsentDesc a { color: var(--astro-gold); text-decoration: underline; text-underline-offset: 3px; }
.consent-choices { gap: 8px 16px; }
.consent-choices label { min-height: 32px; align-items: center; }
.consent-choices #simpleModeNoAIDesc { font-size: 11px; }
.settings-disclosure > summary { min-height: 44px; font-size: 13px; }
.astroApp #resultsTabs .tabBtn { min-height: 46px; }
.astroApp #resultsTabs .tabBtn[aria-selected='true'] { font-weight: 500; }
.astroApp #dataPaneContent thead th { background: var(--astro-raised); color: #52655a; font-weight: 600; }
.astroApp #dataPaneContent tbody tr:hover { background: #476e5c06; }
.astroApp #dataPaneContent .grid > div[class*='rounded-'] { padding: 12px 14px !important; }
.astroApp #sec-majorElements [data-sec-body] > .grid > div { background: transparent !important; border: 0 !important; padding: 0 !important; }
.astroApp #sec-majorElements [data-sec-body] > .grid > div + div { padding-top: 14px !important; border-top: 1px solid var(--astro-line-soft) !important; }
.astroApp #chartLayerPanel { padding: 20px; border-radius: 8px; }
.astroApp #chartLayerPanel :is(.chartLayerChk, .chartAspChk) { min-height: 36px; font-size: 13px; line-height: 1.6; color: var(--astro-text); gap: 7px; }
.astroApp #chartLayerPanel input[type='checkbox'] { width: 16px; height: 16px; flex-shrink: 0; accent-color: var(--astro-gold); }
.astroApp #chartLayerPanel select { min-height: 40px; padding: 8px 10px; font-size: 13px; }
.astroApp #chartLayerPanel :is(.text-slate-400, .text-slate-500) { color: var(--astro-muted); }
.astroApp #resultsTabs .chartToolBtn { min-width: 40px; min-height: 40px; padding: 9px; font-size: 13px; }
.astroApp #resultsTabs .chartToolBtn:hover { background: var(--astro-raised); border-color: #a2b2a8; }
.astroApp #tab-chart [data-chart-theme='light'] .astroChartSvg { filter: drop-shadow(0 6px 12px #21382b1a); }
.astroApp #chartPaneAspects > div { padding: 18px; }
.astroApp #chartPaneAspects .text-xs { font-size: 13px; line-height: 1.8; }
.astroApp #aiChatMsgs .flex-row-reverse .astro-message-bubble { background: var(--astro-raised); border-color: #d5e2d9; }
.astroApp #aiChatPaneManage .astro-icon { color: var(--astro-gold); }
.astroApp #aiChatSuggestions > button { min-height: 36px; color: #52655a; }
.astroApp #aiChatSuggestions > button:hover { background: var(--astro-raised); border-color: #a2b2a8; }
.astroApp #btnAiChatJumpLatest { background: var(--astro-panel); border-color: var(--astro-line); color: var(--astro-gold); box-shadow: 0 4px 16px #21382b12; }
.astroApp .feature-gate h3 { text-wrap: balance; }
.astroApp #tab-glossary .glossary-title { text-wrap: balance; }
.astroApp #globalHelpModal .help-index button { min-height: 42px; font-size: 12px; }
.astroApp :is(#astroPointsModal, #globalSettingsModal, #astroinsightGlobalModal, [id$='Modal']) button[data-close],
.astroApp #globalHelpModal #btnGlobalHelpClose { min-width: 44px; min-height: 44px; }
.astroApp #astroPointsModal [data-auth-form] > .grid:last-child button { min-height: 46px; }
.astroApp #astroPointsModal [data-packs] button[data-pack]:focus-visible { outline-offset: 3px; }
.astroApp .studio-section :is(.rounded-3xl, .studioAdCard) { border-radius: 8px; }
.astroApp .studio-featured-link { background: var(--astro-panel); border-color: var(--astro-line); transform: none; }
.astroApp .studio-featured-link:hover { border-color: #a2b2a8; background: var(--astro-raised); transform: none; }
.studio-featured-link > [aria-hidden='true'] { display: none; }
.astroApp .studio-featured-link [class*='bg-gradient-'] { background: var(--astro-gold); color: #fff; border-radius: 5px; }
.astroApp .studio-section :is([data-studio-ads-prev], [data-studio-ads-next]) { min-width: 40px; min-height: 40px; }
.astroApp .site-footer a { min-height: 36px; display: inline-flex; align-items: center; justify-content: center; }

@media (min-width: 769px) and (max-width: 1199px) {
  .consent-panel { grid-template-columns: minmax(0, 1fr); gap: 8px; }
  .consent-choices { grid-template-columns: max-content minmax(0, 1fr); padding-top: 0; }
}
@media (max-width: 768px) {
  .intro-copy { font-size: 12px; }
  .astroApp #profileForm .ui-field-help label { font-size: 12px; }
  #privacyConsentDesc { font-size: 12px; }
  .consent-choices label { min-height: 36px; }
  .profile-consent-row { align-items: stretch; }
  .astroApp #resultsTabs .tabBtn { min-height: 46px; }
  .astroApp #chartLayerPanel { padding: 16px; }
  .astroApp #chartLayerPanel :is(.chartLayerChk, .chartAspChk) { min-height: 40px; }
  .astroApp #chartLayerPanel select { font-size: 16px; min-height: 44px; }
  .astroApp #chartPaneAspects > div { padding: 16px; }
  .astroApp #aiChatInputPane { padding: 10px; }
  .astroApp #aiChatSuggestions { scrollbar-width: none; }
  .astroApp #aiChatSuggestions::-webkit-scrollbar { display: none; }
  .astroApp .feature-gate { padding: 24px 18px; }
  .astroApp #tab-glossary .glossary-title { font-size: 25px; gap: 10px; }
  .astroApp #tab-glossary .glossary-title svg { margin-top: 7px; }
  .glossary-title-copy { min-width: 0; }
  .glossary-subtitle { display: block; margin-top: 6px; font: 14px/1.85 var(--astro-sans); color: var(--astro-muted); }
  .astroApp #globalHelpModal .help-index { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 6px; }
  .astroApp #globalHelpModal .help-index button { min-height: 44px; }
  .astroApp .site-footer a { min-height: 44px; }
}
@media (max-width: 370px) {
  .astroApp #resultsTabs .tabBtn { min-height: 52px; }
}

/* White observatory illustrations: native geometry, readable semantic colors. */
.astroApp #glossPaneContent .gloss-symbol { display: inline-flex; align-items: center; justify-content: center; width: 1.45em; height: 1.45em; margin: 0 .12em; vertical-align: -.32em; color: #476e5c; flex: 0 0 auto; }
.astroApp #glossPaneContent .gloss-symbol svg { display: block; width: 100%; height: 100%; }
.astroApp #glossPaneContent :is(h4,h5) > .gloss-symbol { width: 22px; height: 22px; margin: 0 8px 0 0; vertical-align: -.27em; }
.astroApp #glossPaneContent .gloss-chapter-label { display: flex; align-items: center; gap: 13px; min-width: 0; }
.astroApp #glossPaneContent .gloss-chapter-icon { width: 36px; height: 36px; padding: 8px; margin: 0; border: 1px solid #dce5de; border-radius: 50%; background: #f6f9f5; color: #476e5c; }
.astroApp #glossPaneContent .gloss-chapter-icon svg { width: 20px; height: 20px; }
.astroApp #glossPaneContent .gloss-concepts > div > .text-2xl { display: block; margin-bottom: 10px; }
.astroApp #glossPaneContent .gloss-concepts .gloss-symbol { width: 28px; height: 28px; margin: 0; }
.astroApp #glossPaneContent .gloss-figure { margin: 18px 0 24px; padding: 0; background: #fff; }
.astroApp #glossPaneContent .gloss-figure .gloss-diagram { margin: 0; padding-bottom: 6px; border-radius: 0; background: #fff; }
.astroApp #glossPaneContent .gloss-figure .gloss-diagram::before { content: none; display: none; }
.astroApp #glossPaneContent .gloss-figure svg.gloss-figure-square { display: block; min-width: 0; width: 100%; max-width: 480px; height: auto; margin: 0 auto; }
.astroApp #glossPaneContent .gloss-figure svg.gloss-figure-wide { display: block; width: 100%; min-width: 600px; max-width: none; height: auto; }
.astroApp #glossPaneContent .gloss-figure-angles svg.gloss-figure-square { max-width: 560px; }
.astroApp #glossPaneContent .gloss-figure-caption { margin: 10px auto 0; color: #5c6b63; font-size: 13px; line-height: 1.9; text-align: center; }
.astroApp #glossPaneContent .gloss-figure-hint { display: none; margin-top: 6px; color: #476e5c; font-size: 12px; }
.astroApp #glossPaneContent .gloss-figure-legend { display: grid; grid-template-columns: repeat(auto-fit,minmax(170px,1fr)); gap: 8px 12px; max-width: 480px; margin: 8px auto 0; padding: 14px 0; border-top: 1px solid #e5ebe6; list-style: none; font-size: 13px; line-height: 1.65; color: #45584c; }
.astroApp #glossPaneContent .gloss-figure-legend li { display: flex; align-items: center; gap: 8px; margin: 0; }
.astroApp #glossPaneContent .gloss-figure-legend .gloss-symbol { width: 22px; height: 22px; margin: 0; }
.astroApp #glossPaneContent .gloss-key { width: 24px; height: 0; flex: 0 0 auto; border-top: 2px solid #476e5c; }
.astroApp #glossPaneContent .gloss-key-hard { border-color: #a55c4d; }
.astroApp #glossPaneContent .gloss-key-conjunction { border-color: #947543; border-top-style: dashed; }
.astroApp #glossPaneContent .overflow-x-auto > table:has(tr > :nth-child(5)) { min-width: 640px; table-layout: auto; }
.astroApp #glossPaneContent .gloss-article [class*='text-yellow-'],
.astroApp #glossPaneContent .gloss-article [class*='text-amber-'],
.astroApp #glossPaneContent .gloss-article [class*='text-orange-'] { color: #8b7041; }
.astroApp #glossPaneContent .gloss-article [class*='text-green-'],
.astroApp #glossPaneContent .gloss-article [class*='text-emerald-'],
.astroApp #glossPaneContent .gloss-article [class*='text-lime-'],
.astroApp #glossPaneContent .gloss-article [class*='text-teal-'] { color: #476e5c; }
.astroApp #glossPaneContent .gloss-article [class*='text-blue-'],
.astroApp #glossPaneContent .gloss-article [class*='text-sky-'],
.astroApp #glossPaneContent .gloss-article [class*='text-cyan-'] { color: #4e7485; }
.astroApp #glossPaneContent .gloss-article [class*='text-red-'],
.astroApp #glossPaneContent .gloss-article [class*='text-pink-'],
.astroApp #glossPaneContent .gloss-article [class*='text-fuchsia-'] { color: #a55c4d; }
.astroApp #glossPaneContent .gloss-article [class*='text-purple-'],
.astroApp #glossPaneContent .gloss-article [class*='text-indigo-'],
.astroApp #glossPaneContent .gloss-article [class*='text-violet-'] { color: #53685b; }
@media (max-width: 600px) {
  .astroApp #glossPaneContent .gloss-chapter-label { gap: 10px; }
  .astroApp #glossPaneContent .gloss-chapter-icon { width: 32px; height: 32px; padding: 6px; }
  .astroApp #glossPaneContent .gloss-figure-hint { display: block; }
  .astroApp #glossPaneContent .gloss-figure-legend { grid-template-columns: 1fr; }
}

/* Reading controls: clear choices first, supporting content on demand. */
.astroApp #tab-ai .ai-reading-switch { gap: 4px; padding: 4px; border: 1px solid var(--astro-line-soft); border-radius: 9px; background: var(--astro-raised); }
.astroApp #tab-ai .ai-reading-switch .astro-subtab { min-height: 48px; margin: 0; border-color: transparent; border-radius: 6px; background: transparent; line-height: 1.45; color: var(--astro-muted); }
.astroApp #tab-ai .ai-reading-switch .astro-subtab.is-selected { border-color: #c3d5ca; background: #fff; color: var(--astro-gold); box-shadow: 0 1px 4px #21382b0b; font-weight: 600; }
.astroApp #aiPaneSelect .ai-reading-controls { padding: 20px 0; }
.astroApp #aiPaneSelect .ai-reading-controls > .space-y-3 { margin-top: 0; }
.astroApp #aiPaneSelect .ai-reading-controls > .space-y-3 > * + * { margin-top: 20px; }
.astroApp #aiPaneSelect .introDetails { margin-top: 18px; padding: 0; border-top: 1px solid var(--astro-line-soft); border-bottom: 0; }
.astroApp #aiPaneSelect .introDetails > summary { min-height: 44px; padding: 12px 0; color: var(--astro-muted); }
.astroApp #aiPaneSelect .introDetails[open] > summary { color: var(--astro-gold); }
.astroApp #aiPaneSelect .introDetails > .mt-3 { margin-top: 4px; padding-bottom: 16px; }
.astroApp #tab-ai .astro-choice-trigger { display: flex; align-items: center; justify-content: space-between; gap: 12px; min-height: 48px; padding: 12px 14px; margin-top: 6px; background: #fff; border-color: #c7d5cc; color: var(--astro-text); line-height: 1.5; }
.astroApp #tab-ai .astro-choice-trigger:hover { background: var(--astro-raised); border-color: #8ba796; }
.astroApp #tab-ai .astro-choice-trigger[aria-expanded='true'] { border-color: var(--astro-gold); box-shadow: 0 0 0 2px #476e5c12; }
.astroApp #tab-ai .astro-choice-label { min-width: 0; white-space: normal; overflow-wrap: anywhere; }
.astroApp #tab-ai .astro-choice-caret { flex: 0 0 18px; color: var(--astro-gold); transition: transform .15s; }
.astroApp #tab-ai .astro-choice-trigger[aria-expanded='true'] .astro-choice-caret { transform: rotate(180deg); }
.astroApp #resultsTabs #tab-ai { overflow: visible; }
.astroApp #tab-ai :is(#aiScenarioMenu,#aiModeMenu) { max-height: min(320px, var(--choice-menu-max-height, 320px)); overflow-y: auto; overscroll-behavior: contain; border-color: #bdcfc2; border-radius: 8px; background: #fff; padding: 5px; box-shadow: 0 10px 28px #21382b18; }
.astroApp #tab-ai :is(#aiScenarioMenu,#aiModeMenu)[data-placement='above'] { top: auto; bottom: calc(100% + 8px); margin-top: 0; }
.astroApp #tab-ai .astro-choice-option { min-height: 44px; padding: 11px 10px; border: 1px solid transparent; background: #fff; color: var(--astro-text); font-size: 13px; line-height: 1.5; }
.astroApp #tab-ai .astro-choice-option[aria-checked='true'] { background: #edf4ee; border-color: #c3d5ca; color: var(--astro-gold); font-weight: 600; }
.astroApp #tab-ai .astro-choice-option:hover:not([aria-disabled='true']) { background: var(--astro-raised); }
.astroApp #tab-ai .astro-choice-option .ml-auto { flex-shrink: 0; white-space: nowrap; }
.astroApp #tab-ai :is(.astro-choice-trigger,.astro-choice-option,.ai-reading-switch button,.reading-library summary):focus-visible { outline: 2px solid var(--astro-gold); outline-offset: 2px; }
.astroApp #btnAiRun { width: 100%; min-height: 52px; margin-top: 24px; padding: 14px 12px; font-size: 15px; line-height: 1.5; letter-spacing: .02em; }
.astroApp details.reading-library { padding: 0; border-color: var(--astro-line-soft); background: var(--astro-raised); }
.astroApp details.reading-library > summary { min-height: 48px; padding: 13px 20px; cursor: pointer; list-style-position: inside; color: var(--astro-gold); font-size: 13px; font-weight: 500; }
.astroApp details.reading-library[open] { background: #fff; }
.astroApp details.reading-library[open] > summary { border-bottom: 1px solid var(--astro-line-soft); }
.astroApp .reading-library-body { display: grid; gap: 14px; padding: 16px 20px 20px; }
.astroApp .reading-library-body > select { margin: 0; min-height: 44px; }
.astroApp .reading-library-actions { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 10px; }
.astroApp .reading-library-actions .astro-button { min-height: 44px; }
.astroApp #btnAiSavedDelete:not(:disabled) { color: #9c5546; }
.astroApp #tab-ai .reading-toolbar .astro-button { min-height: 44px !important; }
.astroApp #btnAiStop:disabled { display: none; }
.astroApp #btnAiStop:not(:disabled) { color: #9c5546; border-color: #d8bcb5; }
.astroApp #resultsTabs .tabBtn[aria-selected='true'] { background: #476e5c0b !important; }
.astroApp .profile-toolbar :is(#profileSelect,#btnProfileSave,.profile-manager > summary) { min-height: 44px; }
.astroApp .profile-manager > summary { min-width: 44px; justify-content: center; }

@media (max-width: 768px) {
  .astroApp[data-active-tab='ai'][data-mobile-view='results'] .analysis-workspace { margin-top: 12px; }
  .astroApp[data-active-tab='ai'][data-mobile-view='results'] .results-panel { margin-top: 0; padding-top: 0; }
  .astroApp[data-active-tab='ai'][data-mobile-view='results'] #tab-ai { margin-top: 0; }
  .astroApp #tab-ai .ai-reading-switch .astro-subtab { padding: 10px 6px; font-size: 12px; }
  .astroApp #aiPaneSelect .ai-reading-controls { padding: 8px 0 0; }
  .astroApp #tab-ai .astro-choice-trigger { font-size: 16px; }
  .astroApp #tab-ai .astro-choice-option { font-size: 14px; }
  .astroApp #tab-ai .reading-library-body > select { font-size: 16px; }
  .astroApp details.reading-library > summary { padding: 13px 16px; }
  .astroApp .reading-library-body { padding: 14px 16px 16px; }
}

/* Let the first desktop visit focus on profile entry before revealing tools. */
@media (min-width: 769px) {
  .astroApp:not([data-workspace-unlocked='true']) .header-nav [data-workspace-tab],
  .astroApp:not([data-workspace-unlocked='true']) #resultsTabs .result-navigation,
  .astroApp[data-workspace-unlocked='true'][data-mobile-view='profile'] #resultsTabs { display: none; }
  .astroApp .analysis-disciplines strong { white-space: normal; }
}

/* All result destinations stay available in a compact, two-row mobile menu. */
@media (max-width: 768px) {
  .astroApp .result-navigation {
    position: sticky;
    top: var(--results-nav-top, 80px);
    z-index: 44;
    max-width: none;
    padding-block: 6px;
    background: var(--astro-panel);
  }
  .astroApp .result-navigation .result-tab-list { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); }
  .astroApp .result-navigation .tabBtn { min-width: 0; min-height: 50px; padding: 7px 3px; font-size: 11px; line-height: 1.5; letter-spacing: -.02em; border-bottom: 1px solid var(--astro-line-soft); background: transparent; }
  .astroApp .result-navigation .tabBtnInner { flex-direction: column; gap: 3px; min-width: 0; width: 100%; }
  .astroApp .result-navigation .tab-icon { width: 17px; height: 17px; }
  .astroApp .result-navigation .tab-label-compact { display: inline; white-space: nowrap; }
  .astroApp .result-navigation .tab-label-full { display: none; }
  .astroApp .result-navigation .tabBtn[aria-selected='true'] { background: #476e5c0b !important; color: var(--astro-gold) !important; box-shadow: inset 0 -2px var(--astro-gold); }
  .astroApp .result-navigation[data-mobile-chat-navigation='1'] { top: 0; margin: 0; padding: 6px max(8px, env(safe-area-inset-right)) 6px max(8px, env(safe-area-inset-left)); border-bottom: 1px solid var(--astro-line); z-index: 46; }
  body.astroApp[data-mobile-view='results'] #tab-other #studioAds:not(.hidden) { display: block !important; }
}
@media (max-width: 768px) and (max-height: 450px) {
  .astroApp .result-navigation[data-mobile-chat-navigation='1'] { padding-block: 3px; }
  .astroApp .result-navigation[data-mobile-chat-navigation='1'] .tabBtn { min-height: 44px; padding-block: 3px; font-size: 10.5px; line-height: 1.4; }
  .astroApp .result-navigation[data-mobile-chat-navigation='1'] .tabBtnInner { gap: 2px; }
  .astroApp .result-navigation[data-mobile-chat-navigation='1'] .tab-icon { width: 16px; height: 16px; }
}


/* A small shared context line leaves the report itself more room. */
.astroApp .results-heading,
.astroApp[data-workspace-wide='true'] .results-heading { min-height: 28px; margin: 0 0 8px; gap: 4px 12px; }
.astroApp .results-heading h2,
.astroApp[data-workspace-wide='true'] .results-heading h2 { margin: 0; font-size: 18px; line-height: 1.5; }
.astroApp .workspace-profile-summary { margin-left: 0; gap: 0; flex-basis: auto; font-size: 12px; line-height: 1.5; min-width: 0; max-width: 100%; }
.astroApp .workspace-profile-summary [data-profile-context] { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.astroApp[data-workspace-wide='true'] .analysis-workspace { margin-top: 12px; }

@media (max-width: 768px) {
  /* The app has one viewport-sized shell. Profile entry scrolls inside it;
     reports scroll below their context and tabs. Keep native chat editing in
     its existing normal document so Safari can reveal the focused composer. */
  html:has(> body.astroApp:not(.legalPage):not([data-mobile-chat-frame='1'])) { height: 100%; overflow: hidden; overscroll-behavior-y: none; scroll-padding-top: 0; }
  body.astroApp:not(.legalPage):not([data-mobile-chat-frame='1']) { height: 100svh; height: 100dvh; min-height: 0 !important; margin: 0; padding: 0 !important; overflow: hidden !important; overscroll-behavior-y: none; }
  body.astroApp:not(.legalPage):not([data-mobile-chat-frame='1']) #appViewport { position: relative !important; inset: auto !important; height: 100% !important; min-height: 0; overflow: hidden !important; }
  body.astroApp:not(.legalPage):not([data-mobile-chat-frame='1']) #appScroll { height: 100%; overflow-x: hidden; overflow-y: auto; overscroll-behavior-y: contain; -webkit-overflow-scrolling: touch; scrollbar-gutter: auto; scrollbar-width: none; padding-bottom: var(--mobile-dock-h, 0px); scroll-padding-top: calc(var(--results-nav-top, 80px) + 8px); scroll-padding-bottom: calc(var(--mobile-dock-h, 0px) + 16px); }
  body.astroApp:not(.legalPage):not([data-mobile-chat-frame='1']) #appScroll::-webkit-scrollbar { display: none; }
  body.astroApp:not(.legalPage):not([data-mobile-chat-frame='1']) #mobileDock { position: absolute !important; inset: auto 0 0 !important; }
  body.astroApp[data-mobile-view='results']:not([data-mobile-chat-frame='1']) #appScroll { display: flex; flex-direction: column; overflow: hidden; }
  body.astroApp[data-mobile-view='results']:not([data-mobile-chat-frame='1']) .site-header { flex: 0 0 auto; }
  body.astroApp[data-mobile-view='results']:not([data-mobile-chat-frame='1']) #mainContent { display: flex; flex-direction: column; flex: 1 1 0; min-height: 0; width: 100%; padding: 8px 12px 0; }
  body.astroApp[data-mobile-view='results']:not([data-mobile-chat-frame='1']) .analysis-workspace { display: flex; flex-direction: column; flex: 1 1 0; min-height: 0; width: 100%; margin: 0 !important; }
  body.astroApp[data-mobile-view='results']:not([data-mobile-chat-frame='1']) #resultsTabs { display: flex; flex-direction: column; flex: 1 1 0; min-height: 0; width: 100%; padding: 0; margin: 0; gap: 0; }
  .astroApp .results-heading,
  .astroApp[data-workspace-wide='true'] .results-heading { flex: 0 0 auto; align-self: stretch; min-height: 0; margin-bottom: 6px; gap: 1px; }
  .astroApp .results-heading h2,
  .astroApp[data-workspace-wide='true'] .results-heading h2 { font-size: 15px; line-height: 1.4; }
  .astroApp .workspace-profile-summary { flex-basis: 100%; font-size: 11px; line-height: 1.5; }
  body.astroApp[data-mobile-view='results']:not([data-mobile-chat-frame='1']) #resultsTabs > .result-navigation { position: relative; top: auto; flex: 0 0 auto; margin: 0; padding-block: 4px; }
  .astroApp .result-navigation .tabBtn,
  .astroApp #resultsTabs .result-navigation .tabBtn { min-height: 44px; padding: 5px 2px; font-size: 11px; line-height: 1.5; }
  .astroApp .result-navigation .tab-icon { width: 16px; height: 16px; }
  body.astroApp[data-mobile-view='results']:not([data-mobile-chat-frame='1']) #resultsTabs > .tabPanel { flex: 1 1 0; min-height: 0; margin-top: 8px !important; padding-bottom: 12px; overflow-x: hidden; overflow-y: auto !important; overscroll-behavior-y: contain; -webkit-overflow-scrolling: touch; scroll-padding-block: 8px 20px; }
}
@media (max-width: 768px) and (max-height: 450px) {
  .astroApp .result-navigation[data-mobile-chat-navigation='1'] { padding-block: 0; }
}
@media (min-width: 480px) and (max-width: 768px) and (max-height: 450px) {
  .astroApp:not(.legalPage) .header-inner { display: flex; flex-wrap: nowrap; min-height: 48px; padding: 2px 12px; gap: 8px; }
  .astroApp:not(.legalPage) .brand { font-size: 18px; gap: 6px; }
  .astroApp:not(.legalPage) .brand-mark { width: 24px; height: 24px; }
  .astroApp .results-heading { gap: 1px 12px; }
  .astroApp .workspace-profile-summary { flex-basis: auto; }
  .astroApp .result-navigation .result-tab-list { grid-template-columns: repeat(8, minmax(0, 1fr)); }
  .astroApp .result-navigation .tabBtn,
  .astroApp #resultsTabs .result-navigation .tabBtn { font-size: 10.5px; }
  .astroApp #mobileDock { padding-block: 4px; }
  .astroApp .mobileDockBtn { min-height: 44px; }
  .astroApp .mobileDockBtnInner { flex-direction: row; gap: 6px; }
}
