:root {
    --ink: #182033;
    --muted: #667085;
    --paper: #f5f6fa;
    --card: #ffffff;
    --line: #e7e9f0;
    --navy: #111936;
    --indigo: #4f46e5;
    --purple: #7c3aed;
    --gold: #dba63b;
    --green: #16845b;
    --red: #c2414b;
    --amber: #b7791f;
    --shadow: 0 18px 50px rgba(26, 31, 54, .08);
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; scroll-padding-top: 130px; }
body { margin: 0; background: var(--paper); color: var(--ink); font-family: "Plus Jakarta Sans", "Noto Sans Sinhala", sans-serif; font-size: 16px; line-height: 1.6; }
a { color: inherit; }
.container { max-width: 1240px; }

.app-navbar { min-height: 72px; background: rgba(17, 25, 54, .96); backdrop-filter: blur(18px); box-shadow: 0 8px 28px rgba(0, 0, 0, .12); }
.navbar-brand { display: flex; align-items: center; gap: 12px; font-weight: 700; letter-spacing: -.02em; }
.navbar-brand small { display: block; margin-top: 1px; color: #aab2d2; font-size: 9px; font-weight: 500; letter-spacing: .12em; text-transform: uppercase; }
.brand-mark { display: grid; width: 38px; height: 38px; border: 1px solid rgba(255,255,255,.22); border-radius: 12px; place-items: center; background: linear-gradient(135deg, rgba(124,58,237,.55), rgba(79,70,229,.3)); }

.hero-section { position: relative; overflow: hidden; padding: 100px 0 110px; background: linear-gradient(135deg, #111936 0%, #202658 52%, #482678 100%); color: #fff; }
.hero-section::before, .hero-section::after { position: absolute; content: ""; border-radius: 50%; filter: blur(2px); }
.hero-section::before { top: -260px; right: -170px; width: 610px; height: 610px; border: 1px solid rgba(255,255,255,.12); box-shadow: 0 0 0 70px rgba(255,255,255,.025), 0 0 0 150px rgba(255,255,255,.018); }
.hero-section::after { bottom: -140px; left: 8%; width: 300px; height: 300px; background: radial-gradient(circle, rgba(219,166,59,.16), transparent 65%); }
.hero-section .container { position: relative; z-index: 1; }
.eyebrow, .section-kicker { color: #b8bdfd; font-size: 12px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; }
.eyebrow i { margin-right: 7px; color: #f2c96f; }
.hero-copy-column { padding-right: clamp(0px, 2vw, 28px); }
.hero-section h1 { max-width: 680px; margin: 22px 0 22px; font-family: "Noto Sans Sinhala", "Plus Jakarta Sans", sans-serif; font-size: clamp(42px, 5vw, 62px); font-weight: 700; line-height: 1.18; letter-spacing: -.045em; }
.hero-section h1 span { color: #c4b5fd; }
.hero-copy { max-width: 650px; color: #cbd0e3; font-size: 17px; line-height: 1.8; }
.feature-pills { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 24px; }
.feature-pills span { padding: 9px 13px; border: 1px solid rgba(255,255,255,.13); border-radius: 999px; color: #e6e8f2; background: rgba(255,255,255,.06); font-size: 12px; }
.feature-pills i { margin-right: 5px; color: #70d6ac; }
.traditional-intro { display: flex; align-items: center; gap: 14px; }
.traditional-intro small, .traditional-intro strong { display: block; font-family: "Noto Sans Sinhala", sans-serif; }
.traditional-intro small { margin-bottom: 3px; color: #f0cf87; font-size: 12px; }
.traditional-intro strong { color: #f7f3ff; font-size: 15px; font-weight: 600; }
.ola-mark { position: relative; display: grid; flex: 0 0 56px; width: 56px; height: 56px; border: 1px solid rgba(240,207,135,.55); border-radius: 50%; place-items: center; background: rgba(76,48,29,.3); color: #ffe6a9; font-family: "Noto Sans Sinhala", sans-serif; font-size: 15px; }
.ola-mark i { position: absolute; inset: 6px; border: 1px dashed rgba(255,230,169,.35); border-radius: 50%; }
.heritage-card { display: flex; align-items: center; gap: 18px; max-width: 490px; margin-top: 26px; padding: 15px 18px; border: 1px solid rgba(240,207,135,.28); border-radius: 18px; background: linear-gradient(135deg, rgba(219,166,59,.13), rgba(255,255,255,.055)); box-shadow: inset 0 1px 0 rgba(255,255,255,.06); }
.heritage-chart { flex: 0 0 82px; width: 82px; height: 82px; overflow: visible; fill: none; stroke: #e5c77f; stroke-width: 1.3; }
.heritage-chart circle { fill: rgba(229,199,127,.08); }
.heritage-chart .chart-star { fill: #e5c77f; stroke: none; }
.heritage-card strong, .heritage-card span { display: block; font-family: "Noto Sans Sinhala", sans-serif; }
.heritage-card strong { margin-bottom: 5px; color: #fff7e5; font-size: 14px; }
.heritage-card span { color: #cbd0e3; font-size: 12px; line-height: 1.65; }

.form-panel { padding: 32px; border: 1px solid rgba(255,255,255,.18); border-radius: 24px; background: rgba(255,255,255,.98); box-shadow: 0 30px 80px rgba(0,0,0,.3); color: var(--ink); }
.form-panel h2 { margin: 4px 0 0; font-family: "Noto Sans Sinhala", sans-serif; font-size: 28px; font-weight: 700; }
.form-panel .section-kicker { color: var(--indigo); }
.engine-state { display: inline-flex; align-items: center; gap: 7px; padding: 7px 10px; border-radius: 999px; font-size: 11px; font-weight: 700; }
.engine-state i { font-size: 7px; }
.engine-state.online { background: #eaf8f1; color: var(--green); }
.engine-state.offline { background: #fff0f1; color: var(--red); }
.form-label { margin-bottom: 7px; color: #454c60; font-size: 12px; font-weight: 700; }
.form-control, .form-select { min-height: 48px; border: 1px solid #dfe2eb; border-radius: 11px; color: var(--ink); font-size: 14px; }
.form-control:focus, .form-select:focus { border-color: #8b82ec; box-shadow: 0 0 0 .22rem rgba(79,70,229,.12); }
.form-hint { display: flex; gap: 8px; margin: 18px 0; color: var(--muted); font-size: 11px; line-height: 1.55; }
.btn-generate { min-height: 52px; border: 0; border-radius: 12px; background: linear-gradient(135deg, var(--indigo), var(--purple)); font-weight: 700; box-shadow: 0 12px 28px rgba(79,70,229,.25); }
.btn-generate:hover { background: linear-gradient(135deg, #4338ca, #6d28d9); transform: translateY(-1px); }
.engine-busy-note{display:none;align-items:center;gap:10px;margin:15px 0;padding:12px;border-radius:11px;background:#fff4df;color:#855b13;font-size:12px}.engine-busy-note.show{display:flex}.character-summary-card{border-top:4px solid var(--gold);background:linear-gradient(135deg,#fffdf8,#fff)}.character-summary-card .card-title>i{font-size:30px;color:var(--gold)}.character-summary-card .lead-copy{max-width:1100px}.character-summary-loading{display:flex;align-items:center;gap:14px;margin:8px 0 20px;padding:16px;border:1px solid #eadfbe;border-radius:14px;background:#fffaf0;color:#6f561b}.character-summary-loading div{display:flex;flex-direction:column}.character-summary-loading small{margin-top:3px;color:#7d7461}.character-profile-copy h4{margin:25px 0 9px;color:#33246d;font-family:"Noto Sans Sinhala",sans-serif;font-size:17px;font-weight:800}.character-profile-copy h4:first-child{margin-top:4px}.character-profile-copy p{margin:0;color:#50596c;font-size:14px;line-height:1.9}.character-profile-copy ul{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:0 0 8px;padding:0;list-style:none}.character-profile-copy li{padding:12px;border:1px solid #eee7da;border-radius:12px;background:#fff;color:#50596c;font-size:13px;line-height:1.7}
.package-option em{margin-top:.45rem;color:#696174;font-size:.82rem;font-style:normal;line-height:1.5}

.capability-section { padding: 70px 0; }
.capability-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 22px; }
.capability-grid article { padding: 27px; border: 1px solid var(--line); border-radius: 18px; background: var(--card); box-shadow: var(--shadow); }
.capability-grid i { display: grid; width: 44px; height: 44px; margin-bottom: 20px; border-radius: 12px; background: #eeecff; color: var(--indigo); font-size: 20px; place-items: center; }
.capability-grid h3 { font-size: 17px; font-weight: 700; }
.capability-grid p { margin: 0; color: var(--muted); font-size: 13px; line-height: 1.7; }

.report-hero { padding: 53px 0 32px; background: linear-gradient(130deg, #111936, #282052 60%, #4d2674); color: #fff; }
.report-heading { display: flex; justify-content: space-between; align-items: flex-start; gap: 25px; }
.report-heading h1 { margin: 8px 0; font-size: clamp(34px, 5vw, 52px); font-weight: 700; letter-spacing: -.045em; }
.report-heading p { margin: 0; color: #c8cbe0; font-size: 13px; }
.report-actions { display: flex; gap: 9px; }
.report-actions form { display: inline-flex; }
.report-actions .btn { min-width: 110px; border-radius: 10px; font-size: 13px; font-weight: 700; }
.report-facts { display: grid; grid-template-columns: repeat(6, 1fr); gap: 1px; overflow: hidden; margin-top: 35px; border: 1px solid rgba(255,255,255,.12); border-radius: 15px; background: rgba(255,255,255,.12); }
.report-facts div { padding: 18px 20px; background: rgba(17,25,54,.72); }
.report-facts span { display: block; margin-bottom: 5px; color: #abb1ce; font-size: 10px; letter-spacing: .08em; text-transform: uppercase; }
.report-facts strong { font-size: 14px; }
.package-option:has(input[data-package="ANNUAL"]) small { font-size: 0; }
.package-option:has(input[data-package="ANNUAL"]) small::after { content: "වචන 1,200–1,600 · මාස 12 වෙන වෙනම · PDF download"; font-size: .82rem; }
.report-nav { position: sticky; top: 72px; z-index: 20; border-bottom: 1px solid var(--line); background: rgba(255,255,255,.96); backdrop-filter: blur(12px); }
.report-nav .container { display: flex; overflow-x: auto; gap: 5px; padding-top: 8px; padding-bottom: 8px; }
.report-nav a { flex: 0 0 auto; padding: 9px 13px; border-radius: 8px; color: #52596c; font-size: 12px; font-weight: 700; text-decoration: none; }
.report-nav a:hover { background: #efedff; color: var(--indigo); }
.report-body { padding-bottom: 60px; }
.report-section { padding-top: 55px; }
.section-heading { display: flex; justify-content: space-between; align-items: end; gap: 30px; margin-bottom: 22px; }
.section-heading .section-kicker { color: var(--indigo); }
.section-heading h2 { margin: 6px 0 0; font-size: 29px; font-weight: 700; letter-spacing: -.035em; }
.section-heading > p { max-width: 560px; margin: 0; color: var(--muted); font-size: 14px; line-height: 1.65; text-align: right; }

.report-card { overflow: hidden; padding: 25px; border: 1px solid var(--line); border-radius: 18px; background: var(--card); box-shadow: 0 10px 35px rgba(25,30,54,.055); }
.card-title { display: flex; justify-content: space-between; align-items: flex-start; gap: 15px; margin-bottom: 22px; }
.card-title span { color: var(--indigo); font-size: 11px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; }
.card-title h3 { margin: 3px 0 0; font-size: 19px; font-weight: 700; }
.card-title small { color: var(--muted); font-size: 12px; }
.svg-frame { display: grid; min-height: 440px; overflow: hidden; padding: 12px; border: 1px solid #eadfc9; border-radius: 18px; background: linear-gradient(145deg, #faf6ed, #f1e8d8); place-items: center; }
.svg-frame svg { display: block; width: min(100%, 700px); height: auto; filter: drop-shadow(0 14px 24px rgba(66, 47, 22, .08)); }
.varga-svg { min-height: 540px; }
.chart-legend { display: flex; flex-wrap: wrap; justify-content: center; gap: 8px 16px; margin-top: 14px; color: #706453; font-size: 11px; }
.chart-legend span { display: inline-flex; align-items: center; gap: 5px; white-space: nowrap; }
.chart-legend i { display: inline-grid; font-style: normal; place-items: center; }
.legend-house { width: 10px; height: 10px; border: 2px solid #8a6a38; border-radius: 2px; }
.legend-sign { width: 10px; height: 10px; border-radius: 50%; background: #26365f; }
.legend-planet { width: 18px; height: 9px; border: 1px solid #dbc9a6; border-radius: 9px; background: #fff; }
.legend-asc { min-width: 25px; height: 14px; padding: 0 4px; border-radius: 8px; background: #26365f; color: #fff; font-size: 7px; font-weight: 700; }
.lead-copy { color: #525a6d; font-size: 16px; line-height: 1.85; }
.mini-stat-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 10px; margin: 22px 0; }
.mini-stat-grid div { padding: 16px; border-radius: 12px; background: #f6f5ff; }
.mini-stat-grid strong, .mini-stat-grid span { display: block; }
.mini-stat-grid strong { color: var(--indigo); font-size: 24px; }
.mini-stat-grid span { color: var(--muted); font-size: 12px; }
.subheading, .group-heading { margin: 25px 0 12px; font-size: 16px; font-weight: 700; }
.group-heading { margin-top: 32px; font-size: 21px; }
.data-list { margin: 0; }
.data-list > div { display: flex; justify-content: space-between; gap: 20px; padding: 10px 0; border-bottom: 1px solid #edf0f5; }
.data-list > div:last-child { border: 0; }
.data-list dt { color: var(--muted); font-size: 13px; font-weight: 600; }
.data-list dd { margin: 0; font-size: 13px; font-weight: 700; text-align: right; }
.technical-list > div { align-items: flex-start; }
.technical-list dd { max-width: 60%; overflow-wrap: anywhere; }

.report-table { width: 100%; border-collapse: collapse; font-size: 13px; }
.report-table th { padding: 11px 12px; border-bottom: 1px solid #dfe3eb; color: #697083; font-size: 11px; letter-spacing: .06em; text-align: left; text-transform: uppercase; white-space: nowrap; }
.report-table td { padding: 12px; border-bottom: 1px solid #edf0f5; vertical-align: top; }
.report-table tbody tr:last-child td { border-bottom: 0; }
.report-table tbody tr:hover { background: #fafaff; }
.report-table.compact td { padding: 9px 10px; }
.tag { display: inline-flex; padding: 5px 8px; border-radius: 999px; background: #eeecff; color: var(--indigo); font-size: 9px; font-weight: 700; }
.tag-good { background: #e9f7f0; color: var(--green); }
.tag-warn { background: #fff3dd; color: var(--amber); }

.chart-tabs { display: flex; flex-wrap: wrap; gap: 7px; margin-bottom: 24px; border-bottom: 1px solid var(--line); padding-bottom: 14px; }
.chart-tabs button { padding: 9px 13px; border: 0; border-radius: 8px; background: #f3f4f8; color: #62697a; font-size: 12px; font-weight: 700; }
.chart-tabs button.active { background: var(--indigo); color: #fff; }

.profile-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 10px; }
.profile-grid div { padding: 15px; border: 1px solid var(--line); border-radius: 11px; background: #fafbfc; }
.profile-grid span, .profile-grid strong { display: block; }
.profile-grid span { margin-bottom: 5px; color: var(--muted); font-size: 11px; }
.profile-grid strong { color: var(--navy); font-size: 15px; }
.century-stats { display: grid; grid-template-columns: repeat(4, 1fr); gap: 10px; margin-bottom: 18px; }
.century-stats div { padding: 15px; border-radius: 11px; background: #f3f1ff; }
.century-stats strong, .century-stats span { display: block; }
.century-stats strong { color: var(--indigo); font-size: 24px; }
.century-stats span { color: var(--muted); font-size: 11px; }
.century-panel details { margin-top: 12px; border: 1px solid var(--line); border-radius: 12px; background: #fff; }
.century-panel summary { cursor: pointer; padding: 14px 16px; color: var(--navy); font-size: 14px; font-weight: 700; }
.century-panel details[open] summary { border-bottom: 1px solid var(--line); background: #fafaff; }
.century-scroll { max-height: 620px; overflow: auto; }
.century-scroll thead { position: sticky; top: 0; z-index: 1; background: #fff; }

.timing-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 18px; }
.timing-card { position: relative; overflow: hidden; padding: 24px; border-radius: 17px; background: linear-gradient(145deg, #17203d, #2b2459); color: #fff; box-shadow: var(--shadow); }
.timing-card::after { position: absolute; right: -35px; bottom: -55px; width: 140px; height: 140px; border: 1px solid rgba(255,255,255,.12); border-radius: 50%; content: ""; }
.timing-card > span { color: #bbbff2; font-size: 10px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; }
.timing-card h3 { margin: 9px 0; font-size: 18px; font-weight: 700; line-height: 1.45; }
.timing-card p { position: relative; z-index: 1; margin: 0; color: #c9cce0; font-size: 13px; line-height: 1.65; }
.theme-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 11px; }
.theme-item { display: grid; grid-template-columns: 1fr auto; gap: 4px 10px; padding: 14px; border: 1px solid var(--line); border-left: 3px solid var(--amber); border-radius: 10px; }
.theme-item.rating-positive { border-left-color: var(--green); }
.theme-item.rating-negative { border-left-color: var(--red); }
.theme-item strong, .theme-item span { display: block; }
.theme-item strong { font-size: 12px; }
.theme-item span, .theme-item small { color: var(--muted); font-size: 11px; }
.theme-item b { color: var(--indigo); font-size: 15px; }
.theme-item small { grid-column: 1 / -1; }
.cycle-status { display: flex; gap: 13px; padding: 16px; border-radius: 12px; background: #f6f7fa; }
.cycle-status + .cycle-status { margin-top: 10px; }
.cycle-status > i { color: var(--green); font-size: 20px; }
.cycle-status.active { background: #fff5e7; }
.cycle-status.active > i { color: var(--amber); }
.cycle-status span, .cycle-status strong, .cycle-status small { display: block; }
.cycle-status span { color: var(--muted); font-size: 9px; text-transform: uppercase; }
.cycle-status strong { margin: 2px 0; font-size: 12px; }
.cycle-status small { color: var(--muted); font-size: 11px; line-height: 1.55; }
.score-row { display: grid; grid-template-columns: 125px 1fr 30px; align-items: center; gap: 9px; margin: 9px 0; font-size: 12px; }
.score-row > div { height: 5px; overflow: hidden; border-radius: 5px; background: #eceef3; }
.score-row i { display: block; height: 100%; border-radius: 5px; background: linear-gradient(90deg, var(--indigo), #9c7fea); }
.score-row b { text-align: right; }

.house-strength-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 9px; }
.house-strength-grid div { padding: 14px; border: 1px solid var(--line); border-radius: 10px; }
.house-strength-grid span, .house-strength-grid strong, .house-strength-grid small { display: block; }
.house-strength-grid span { color: var(--muted); font-size: 9px; }
.house-strength-grid strong { margin: 4px 0; color: var(--indigo); font-size: 21px; }
.house-strength-grid small { font-size: 9px; }
.method-note { margin-top: 20px; padding: 12px; border-radius: 9px; background: #f7f7fa; color: var(--muted); font-size: 12px; line-height: 1.65; }

.insight-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; }
.insight-card { padding: 22px; border: 1px solid var(--line); border-top: 3px solid #acb1bd; border-radius: 14px; background: #fff; box-shadow: 0 8px 25px rgba(25,30,54,.04); }
.insight-card.positive { border-top-color: var(--green); }
.insight-card.caution { border-top-color: var(--amber); }
.insight-top { display: flex; justify-content: space-between; color: var(--muted); font-size: 9px; text-transform: uppercase; }
.insight-top b { color: var(--indigo); }
.insight-card h3 { margin: 12px 0 8px; font-size: 16px; font-weight: 700; }
.insight-card h4 { margin-top: 15px; font-size: 10px; }
.insight-card p, .insight-card li, .insight-card small { color: var(--muted); font-size: 13px; line-height: 1.7; }
.insight-card ul { padding-left: 18px; }

.prediction-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 17px; }
.prediction-card { padding: 23px; border: 1px solid var(--line); border-left: 4px solid var(--amber); border-radius: 14px; background: #fff; }
.prediction-card.rating-positive { border-left-color: var(--green); }
.prediction-card.rating-negative { border-left-color: var(--red); }
.prediction-score { display: flex; justify-content: space-between; align-items: center; }
.prediction-score span { color: var(--muted); font-size: 9px; font-weight: 700; text-transform: uppercase; }
.prediction-score strong { display: grid; width: 37px; height: 37px; border-radius: 50%; background: #f0efff; color: var(--indigo); font-size: 11px; place-items: center; }
.prediction-card h3 { margin: 14px 0 8px; font-size: 16px; }
.prediction-card > p { min-height: 51px; color: #596174; font-size: 13px; line-height: 1.7; }
.prediction-card details { padding: 9px 0; border-top: 1px solid #edf0f5; }
.prediction-card summary { cursor: pointer; color: #454d60; font-size: 13px; font-weight: 700; }
.prediction-card li { margin: 5px 0; color: var(--muted); font-size: 12px; line-height: 1.6; }
.guidance { display: flex; gap: 9px; margin-top: 12px; padding: 12px; border-radius: 9px; background: #f7f7fa; color: #5f6678; font-size: 12px; line-height: 1.6; }
.guidance i { color: var(--indigo); }
.disclaimer { display: flex; gap: 14px; margin-top: 25px; padding: 19px; border: 1px solid #dfe2eb; border-radius: 13px; background: #fff; color: var(--muted); }
.disclaimer i { color: var(--green); font-size: 22px; }
.disclaimer p { margin: 0; font-size: 13px; line-height: 1.7; }

.app-footer { padding: 28px 0; border-top: 1px solid rgba(255,255,255,.1); background: #111936; color: #aeb8ca; font-size: 12px; }
.footer-grid{display:grid;grid-template-columns:1fr auto 1fr;align-items:start;gap:28px}.footer-grid>div{display:flex;flex-direction:column;gap:5px}.footer-grid strong{color:#fff;font-size:16px}.footer-grid nav{display:flex;flex-wrap:wrap;justify-content:center;gap:10px 18px}.footer-grid a{color:#d9def0;text-decoration:none}.footer-grid a:hover{color:#f0cf87}.footer-contact{align-items:flex-end}
.legal-hero{padding:58px 0 42px;color:#fff;background:linear-gradient(130deg,#111936,#282052 60%,#4d2674)}.legal-hero span{color:#f0cf87;font-size:12px;font-weight:700;letter-spacing:.12em;text-transform:uppercase}.legal-hero h1{margin:8px 0;font-size:clamp(34px,5vw,52px);font-weight:750}.legal-hero p{margin:0;color:#d6daeb}.legal-page{padding:48px 0 72px;background:#f5f7fb}.legal-card{max-width:920px;margin:auto;padding:clamp(24px,5vw,54px);border:1px solid #e1e5ed;border-radius:20px;background:#fff;box-shadow:0 18px 50px rgba(25,31,67,.08)}.legal-card h2{margin:34px 0 12px;color:#241b56;font-size:21px}.legal-card h2:first-child{margin-top:0}.legal-card p,.legal-card li{color:#50596c;font-size:15px;line-height:1.85}.legal-card li+li{margin-top:7px}.business-contact{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:14px 0 0;font-style:normal}.business-contact div{padding:14px;border:1px solid #e5e8ef;border-radius:12px;background:#fafbfe}.business-contact span,.business-contact strong{display:block}.business-contact span{margin-bottom:5px;color:#7b8497;font-size:12px}.business-contact strong{color:#2d3550;font-size:14px;line-height:1.6}.business-contact a{color:#5136a8}
.loading-overlay { position: fixed; inset: 0; z-index: 9999; display: none; align-items: center; justify-content: center; padding: 25px; background: rgba(13,19,43,.86); backdrop-filter: blur(9px); }
.loading-overlay.show { display: flex; }
.loading-card { max-width: 430px; padding: 35px; border-radius: 20px; background: #fff; text-align: center; box-shadow: 0 35px 90px rgba(0,0,0,.35); }
.loading-card h2 { margin: 22px 0 8px; font-size: 20px; }
.loading-card p { margin: 0; color: var(--muted); font-size: 11px; line-height: 1.6; }
.orbit-loader { position: relative; width: 58px; height: 58px; margin: auto; border: 2px solid #dedcfb; border-radius: 50%; animation: spin 1.2s linear infinite; }
.orbit-loader span { position: absolute; top: -5px; left: 22px; width: 11px; height: 11px; border-radius: 50%; background: var(--indigo); box-shadow: 0 0 18px rgba(79,70,229,.7); }
@keyframes spin { to { transform: rotate(360deg); } }

@media (max-width: 991px) {
    .hero-section { padding: 70px 0; }
    .hero-copy-column { padding-right: calc(var(--bs-gutter-x) * .5); }
    .report-heading, .section-heading { align-items: flex-start; flex-direction: column; }
    .section-heading > p { text-align: left; }
    .report-facts { grid-template-columns: repeat(2, 1fr); }
    .timing-grid, .insight-grid, .prediction-grid { grid-template-columns: repeat(2, 1fr); }
    .theme-grid { grid-template-columns: repeat(2, 1fr); }
    .profile-grid { grid-template-columns: repeat(2, 1fr); }
    .svg-frame { min-height: 320px; padding: 8px; }
}

@media (max-width: 767px) {
    .footer-grid{grid-template-columns:1fr}.footer-grid nav{justify-content:flex-start}.footer-contact{align-items:flex-start}.business-contact{grid-template-columns:1fr}
    .hero-section h1 { margin-top: 20px; font-size: clamp(35px, 10vw, 44px); line-height: 1.22; }
    .hero-copy { font-size: 15px; line-height: 1.75; }
    .traditional-intro strong { font-size: 13px; }
    .heritage-card { gap: 14px; padding: 13px; }
    .heritage-chart { flex-basis: 68px; width: 68px; height: 68px; }
    .character-profile-copy ul { grid-template-columns: 1fr; }
    .form-panel { padding: 23px; }
    .capability-grid, .timing-grid, .insight-grid, .prediction-grid, .theme-grid { grid-template-columns: 1fr; }
    .report-heading { gap: 18px; }
    .report-actions { width: 100%; }
    .report-actions form, .report-actions .btn { flex: 1; }
    .report-facts { grid-template-columns: 1fr 1fr; }
    .report-facts div { padding: 14px; }
    .report-nav { top: 72px; }
    .report-card { padding: 18px; }
    .house-strength-grid { grid-template-columns: repeat(3, 1fr); }
    .score-row { grid-template-columns: 100px 1fr 25px; }
    .chart-legend { gap: 7px 11px; }
    .profile-grid, .century-stats { grid-template-columns: 1fr 1fr; }
}

@media print {
    .app-navbar, .report-nav, .report-actions, .app-footer { display: none !important; }
    body { background: #fff; }
    .report-section { break-inside: avoid; }
    .report-card { box-shadow: none; }
    .svg-frame { min-height: 0; padding: 0; border: 0; background: #fff; break-inside: avoid; }
    .svg-frame svg { max-width: 165mm; filter: none; }
    .chart-legend { break-inside: avoid; }
}
.location-summary {
    display: flex;
    align-items: center;
    gap: .65rem;
    min-height: 48px;
    padding: .75rem 1rem;
    border: 1px solid #dfe3ee;
    border-radius: .8rem;
    background: #f8f9fc;
    color: #526078;
    font-size: .9rem;
}

.location-summary i { color: #5548ee; font-size: 1.1rem; }
