.hero { position: relative; overflow: hidden; padding: 78px 0 92px; }
.hero::before { content: ""; position: absolute; width: 520px; height: 520px; right: -260px; top: -120px; border-radius: 50%; background: #e4efd6; }
.hero-grid { position: relative; display: grid; grid-template-columns: 1.08fr .92fr; gap: 60px; align-items: center; }
.hero h1 { max-width: 720px; margin: 22px 0 22px; }
.hero h1 span { color: var(--green); }
.hero-copy > p { max-width: 625px; color: var(--muted); font-size: 1.04rem; }
.hero-actions { display: flex; flex-wrap: wrap; gap: 11px; margin-top: 30px; }
.trust-row { display: flex; flex-wrap: wrap; gap: 16px; margin-top: 31px; color: #5f695f; font-size: .73rem; font-weight: 600; }
.trust-row span { display: inline-flex; align-items: center; gap: 6px; }
.trust-row i { width: 18px; height: 18px; display: grid; place-items: center; border-radius: 50%; background: var(--sage); color: var(--forest); font-style: normal; }
.plant-visual { position: relative; min-height: 520px; display: grid; border: 1px solid rgba(51,87,55,.1); border-radius: 34px; background: #f8f1e6; box-shadow: var(--shadow); overflow: hidden; isolation: isolate; }
.plant-visual::after { content: ""; position: absolute; z-index: 2; inset: 0; pointer-events: none; background: linear-gradient(180deg, rgba(255,255,255,.04) 65%, rgba(31,93,50,.06)); }
.hero-image { position: absolute; z-index: 1; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: 58% 54%; }
.visual-note { position: absolute; z-index: 3; display: flex; align-items: center; gap: 10px; padding: 11px 14px; border: 1px solid rgba(50,90,53,.1); border-radius: 14px; background: rgba(255,255,255,.9); box-shadow: var(--shadow-sm); font-size: .72rem; font-weight: 700; }
.visual-note i { width: 29px; height: 29px; display: grid; place-items: center; border-radius: 10px; background: var(--sage); font-style: normal; }
.note-one { left: 20px; top: 70px; }
.note-two { right: 18px; bottom: 65px; }
.steps-grid { grid-template-columns: repeat(4, 1fr); position: relative; }
.steps-grid::before { content: ""; position: absolute; left: 11%; right: 11%; top: 29px; border-top: 1px dashed #aebda9; }
.step { position: relative; z-index: 1; }
.step-number { width: 58px; height: 58px; display: grid; place-items: center; margin-bottom: 22px; border: 8px solid var(--sage-2); border-radius: 50%; background: var(--forest); color: white; font-family: var(--heading); font-weight: 800; }
.step h3 { margin-bottom: 8px; }
.step p { color: var(--muted); font-size: .82rem; }
.flow { margin-top: 48px; padding: 22px; border-radius: var(--radius); background: var(--forest); color: white; text-align: center; font-family: var(--heading); font-weight: 700; letter-spacing: .01em; }
.flow span { margin: 0 12px; color: #aeda9f; }
.features-grid { grid-template-columns: repeat(6, 1fr); }
.features-grid .feature-card { grid-column: span 2; }
.features-grid .feature-card:nth-child(4) { grid-column: 2 / span 2; }
.difference-panel { padding: 48px; border-radius: var(--radius-lg); background: var(--deep); color: white; }
.difference-top { display: grid; grid-template-columns: 1.1fr .9fr; gap: 70px; align-items: end; }
.difference-top h2 { margin-bottom: 0; }
.difference-top p { color: #b9c9bc; }
.difference-grid { grid-template-columns: repeat(3, 1fr); margin-top: 45px; }
.difference-card { padding: 25px; border: 1px solid rgba(255,255,255,.1); border-radius: 17px; background: rgba(255,255,255,.05); }
.difference-card strong { display: block; margin-bottom: 7px; font-family: var(--heading); }
.difference-card p { margin: 0; color: #b9c9bc; font-size: .8rem; }
.pricing-grid { grid-template-columns: repeat(3, 1fr); align-items: stretch; }
.pricing-disclaimer { margin-top: 28px; }
.final-cta { padding: 78px 0; text-align: center; }
.final-cta-card { position: relative; overflow: hidden; padding: 68px 24px; border-radius: var(--radius-lg); background: #cfe4c5; }
.final-cta-card::before, .final-cta-card::after { content: ""; position: absolute; width: 180px; height: 180px; border: 1px solid rgba(46,125,50,.16); border-radius: 50%; }
.final-cta-card::before { left: -80px; bottom: -90px; }
.final-cta-card::after { right: -60px; top: -95px; }
.final-cta h2 { margin-bottom: 12px; }
.final-cta p { color: #536653; }
.page-header { padding: 68px 0 45px; background: linear-gradient(180deg, #eff5e9, var(--cream)); }
.page-header h1 { max-width: 780px; margin: 15px 0; font-size: clamp(2.5rem,5vw,4.2rem); }
.page-header p { max-width: 690px; color: var(--muted); }
.gallery-layout { padding: 28px 0 95px; }
.filter-bar { display: grid; grid-template-columns: repeat(4, 1fr) auto; gap: 12px; padding: 18px; margin-bottom: 26px; }
.filter-bar label { display: grid; gap: 4px; color: var(--muted); font-size: .65rem; font-weight: 700; }
.filter-bar select { min-height: 42px; padding: 0 10px; border: 1px solid var(--line); border-radius: 10px; background: #fafbf9; color: var(--ink); font-size: .78rem; }
.filter-count { align-self: end; padding: 10px; color: var(--forest); font-size: .75rem; font-weight: 700; white-space: nowrap; }
.ideas-grid { grid-template-columns: repeat(3, 1fr); }
.investment-card { display: flex; flex-direction: column; min-height: 410px; padding: 24px; }
.investment-top { display: flex; justify-content: space-between; gap: 15px; }
.investment-top .idea-icon { margin: 0; }
.investment-card h2 { margin: 20px 0 5px; font-size: 1.35rem; }
.category { color: var(--green); font-size: .7rem; font-weight: 700; text-transform: uppercase; letter-spacing: .08em; }
.idea-facts { display: grid; gap: 8px; margin: 18px 0; }
.idea-fact { display: flex; justify-content: space-between; gap: 14px; padding-bottom: 8px; border-bottom: 1px solid #edf0eb; font-size: .72rem; }
.idea-fact span { color: var(--muted); }
.idea-fact strong { text-align: right; }
.market-fact { color: var(--forest); }
.investment-card > p { color: var(--muted); font-size: .8rem; }
.high-risk-card { border-color: #d5a09a; }
.high-risk-card-warning { margin: 12px 0 4px; padding: 12px 13px; border-left: 3px solid #a84032; border-radius: 0 10px 10px 0; background: #fff0ed; color: #6f312b; font-size: .68rem; line-height: 1.45; }
.high-risk-card-warning strong { display: block; margin-bottom: 3px; color: #862f27; font-size: .62rem; text-transform: uppercase; letter-spacing: .05em; }
.investment-actions { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-top: auto; padding-top: 16px; }
.compare-control { display: flex; align-items: center; gap: 7px; font-size: .72rem; font-weight: 600; cursor: pointer; }
.compare-control input { width: 17px; height: 17px; accent-color: var(--green); }
.compare-drawer { position: fixed; z-index: 80; left: 50%; bottom: 18px; width: min(720px, calc(100% - 32px)); display: flex; align-items: center; justify-content: space-between; gap: 15px; padding: 15px 17px; border: 1px solid #abc7a4; border-radius: 16px; background: var(--deep); color: white; box-shadow: 0 20px 60px rgba(20,50,26,.25); transform: translate(-50%, 150%); transition: transform .3s; }
.compare-drawer.show { transform: translate(-50%, 0); }
.compare-drawer small { color: #bcd0bf; }
.empty-state { grid-column: 1 / -1; padding: 70px 25px; text-align: center; }
.details-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 24px; }
.detail-block { padding: 20px; border-radius: 16px; background: white; }
.detail-block h3 { font-size: .95rem; }
.detail-block p, .detail-block li { color: var(--muted); font-size: .79rem; }
.market-reference { border: 1px solid #c9ddc3; background: #f3f8f0; }
.market-reference .demo-label { margin: 0 0 13px; }
.market-reference p { margin: 0 0 4px; }
.market-reference p strong { color: var(--deep); font-family: var(--heading); font-size: 1.65rem; }
.market-reference small { color: var(--muted); font-size: .68rem; }
.positive-change { color: var(--green); font-weight: 800; }
.negative-change { color: var(--red); font-weight: 800; }
.risk-warning { border-left: 4px solid var(--red); background: var(--red-bg); }
.mini-chart { min-height: 180px; display: flex; align-items: end; gap: 8px; padding: 25px 18px 15px; border-radius: 14px; background: linear-gradient(#f8fbf6 94%, #dce5d8 94%); background-size: 100% 32px; }
.chart-bar { flex: 1; position: relative; min-height: 10px; border-radius: 7px 7px 2px 2px; background: linear-gradient(#64a65d, #2e7d32); animation: growBar .65s ease both; }
.chart-bar span { position: absolute; left: 50%; bottom: -22px; color: var(--muted); font-size: .58rem; transform: translateX(-50%); }
@keyframes growBar { from { height: 0 !important; } }
.comparison-table { width: 100%; border-collapse: collapse; background: white; }
.comparison-table th, .comparison-table td { padding: 14px; border-bottom: 1px solid var(--line); text-align: left; font-size: .76rem; vertical-align: top; }
.comparison-table th { width: 25%; color: var(--muted); }
.agent-section { padding: 35px 0 95px; }
.agent-shell { display: grid; grid-template-columns: .72fr 1.28fr; gap: 30px; align-items: start; }
.agent-aside { position: sticky; top: 105px; padding: 28px; background: var(--deep); color: white; }
.agent-aside h2 { margin: 17px 0 12px; font-size: 1.6rem; }
.agent-aside p { color: #b9c9bc; font-size: .8rem; }
.mini-steps { display: grid; gap: 12px; margin-top: 27px; }
.mini-step { display: flex; gap: 11px; align-items: center; color: #b9c9bc; font-size: .76rem; }
.mini-step i { width: 29px; height: 29px; display: grid; place-items: center; flex: none; border: 1px solid rgba(255,255,255,.25); border-radius: 50%; font-style: normal; transition: color .25s, background .25s, border-color .25s, transform .25s; }
.mini-step.active { color: white; }
.mini-step.active i { border-color: var(--amber); background: var(--amber); color: var(--deep); transform: scale(1.08); }
.mini-step.complete { color: #dce8de; }
.mini-step.complete i { border-color: #bcdcae; background: #d9ebd0; color: var(--forest); }
.agent-main { padding: 32px; }
.agent-main h2 { margin-bottom: 8px; font-size: 1.6rem; }
.agent-form { display: grid; gap: 23px; margin-top: 27px; }
.range-head { display: flex; align-items: center; justify-content: space-between; }
.range-value { padding: 5px 9px; border-radius: 8px; background: var(--sage); color: var(--forest); font-size: .74rem; font-weight: 700; }
input[type="range"] { width: 100%; accent-color: var(--green); }
.choice-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 9px; }
.choice { position: relative; }
.choice input { position: absolute; opacity: 0; }
.choice span { min-height: 54px; display: grid; place-items: center; padding: 8px; border: 1px solid var(--line); border-radius: 12px; background: #fbfcfa; text-align: center; font-size: .74rem; font-weight: 600; cursor: pointer; }
.choice input:checked + span { border-color: var(--green); background: var(--sage); color: var(--forest); box-shadow: inset 0 0 0 1px var(--green); }
.processing { min-height: 560px; display: grid; place-items: center; text-align: center; }
.processing-plant { width: 110px; height: 110px; display: grid; place-items: center; margin: 0 auto 26px; border-radius: 50%; background: var(--sage); font-size: 3rem; animation: pulsePlant 1.5s ease-in-out infinite; }
@keyframes pulsePlant { 50% { transform: scale(1.08); box-shadow: 0 0 0 18px rgba(46,125,50,.06); } }
.processing-list { width: min(100%, 420px); display: grid; gap: 9px; margin-top: 28px; text-align: left; }
.processing-item { display: flex; align-items: center; gap: 10px; padding: 10px 13px; border-radius: 10px; color: #929890; font-size: .77rem; }
.processing-item.active { background: var(--sage-2); color: var(--forest); }
.processing-item.done::before { content: "✓"; }
.processing-item::before { content: "○"; width: 18px; font-weight: 800; }
.result-header { display: flex; align-items: flex-start; justify-content: space-between; gap: 20px; padding-bottom: 24px; border-bottom: 1px solid var(--line); }
.result-header h2 { margin-bottom: 7px; }
.result-stats { grid-template-columns: repeat(3, 1fr); margin: 24px 0; }
.stat { padding: 18px; border-radius: 14px; background: var(--sage-2); }
.stat small, .stat strong { display: block; }
.stat small { color: var(--muted); font-size: .65rem; }
.stat strong { margin-top: 4px; color: var(--forest); font-family: var(--heading); }
.result-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 18px; }
.result-panel { padding: 21px; border: 1px solid var(--line); border-radius: 16px; }
.result-panel h3 { font-size: .92rem; }
.allocation-row { margin-bottom: 14px; }
.allocation-label { display: flex; justify-content: space-between; margin-bottom: 5px; font-size: .72rem; }
.allocation-track { height: 10px; overflow: hidden; border-radius: 9px; background: #e8ece5; }
.allocation-fill { height: 100%; border-radius: inherit; background: var(--green); animation: fillIn .7s ease both; }
@keyframes fillIn { from { width: 0 !important; } }
.result-list { padding-left: 19px; margin: 0; }
.result-list li { margin: 6px 0; color: var(--muted); font-size: .75rem; }
.mission { display: flex; gap: 14px; align-items: center; margin-top: 18px; padding: 19px; border-radius: 15px; background: #fff4d8; }
.mission-icon { width: 42px; height: 42px; display: grid; place-items: center; flex: none; border-radius: 13px; background: white; }
.mission strong, .mission small { display: block; }
.mission small { color: var(--muted); }
.result-actions { display: flex; flex-wrap: wrap; gap: 9px; margin: 24px 0; }

/* Guided financial plan */
.plan-page-header { padding-bottom: 58px; }
.plan-page-header h1 { max-width: 880px; }
.agent-shell.report-mode { grid-template-columns: 1fr; }
.agent-shell.report-mode .agent-aside { position: static; display: grid; grid-template-columns: .7fr 1fr; column-gap: 45px; }
.agent-shell.report-mode .agent-aside > p, .agent-shell.report-mode .aside-privacy { grid-column: 1; }
.agent-shell.report-mode .mini-steps { grid-column: 2; grid-row: 1 / span 4; align-content: center; }
.agent-aside .demo-label { margin-top: 0; background: rgba(255,255,255,.12); color: #d9e8dc; }
.aside-privacy { display: flex; gap: 9px; margin-top: 26px; padding-top: 20px; border-top: 1px solid rgba(255,255,255,.12); color: #b9c9bc; }
.aside-privacy span { color: #9ed091; }
.aside-privacy small { font-size: .68rem; line-height: 1.55; }
.form-progress { margin-bottom: 35px; }
.progress-copy { display: flex; justify-content: space-between; gap: 18px; margin-bottom: 9px; font-size: .72rem; }
.progress-copy strong { color: var(--forest); }
.progress-copy span { color: var(--muted); }
.progress-track { height: 7px; overflow: hidden; border-radius: 99px; background: #e8ece5; }
.progress-track span { display: block; height: 100%; border-radius: inherit; background: var(--green); transition: width .3s ease; }
.step-heading:focus, .review-header:focus, .plan-report-header:focus { outline: none; }
.step-heading .section-label, .review-header .section-label { margin-bottom: 8px; }
.plain-fieldset { padding: 0; margin: 0; border: 0; }
.plain-fieldset legend { margin-bottom: 5px; font-size: .79rem; font-weight: 800; }
.goal-type-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 9px; margin-top: 12px; }
.risk-card-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 10px; margin-top: 13px; }
.selection-card { position: relative; display: block; }
.selection-card input { position: absolute; width: 1px; height: 1px; opacity: 0; }
.selection-card > span { min-height: 76px; display: flex; flex-direction: column; justify-content: center; padding: 14px; border: 1px solid #ccd4c8; border-radius: 13px; background: #fbfcfa; cursor: pointer; transition: border-color .2s, background .2s, transform .2s; }
.risk-card-grid .selection-card > span { min-height: 126px; justify-content: flex-start; }
.selection-card strong { color: var(--ink); font-size: .78rem; }
.selection-card small { margin-top: 6px; color: var(--muted); font-size: .68rem; line-height: 1.45; }
.selection-card:hover > span { transform: translateY(-2px); border-color: #9fba99; }
.selection-card input:checked + span { border-color: var(--green); background: var(--sage-2); box-shadow: inset 0 0 0 1px var(--green); }
.selection-card input:checked + span::before { content: "Selected"; width: fit-content; margin-bottom: 7px; padding: 2px 6px; border-radius: 99px; background: var(--forest); color: white; font-size: .55rem; font-weight: 800; text-transform: uppercase; }
.selection-card input:focus-visible + span { outline: 3px solid #e0a43f; outline-offset: 3px; }
.money-input { position: relative; }
.money-input > span { position: absolute; left: 14px; top: 12px; color: var(--forest); font-weight: 800; }
.money-input input { padding-left: 31px; }
.timeline-presets { display: flex; flex-wrap: wrap; gap: 7px; margin-top: 8px; }
.timeline-presets button { padding: 6px 10px; border: 1px solid var(--line); border-radius: 99px; background: white; color: var(--forest); font-size: .65rem; font-weight: 700; cursor: pointer; }
.deadline-guidance { padding: 19px; border: 1px solid #cadfc4; border-radius: 15px; background: #f1f7ee; }
.deadline-guidance.shortfall { border-color: #e4cf9a; background: var(--amber-bg); }
.deadline-guidance.exact { border-color: #bcd7b5; }
.guidance-label { display: block; margin-bottom: 5px; color: var(--forest); font-size: .62rem; font-weight: 850; letter-spacing: .07em; text-transform: uppercase; }
.deadline-guidance p { margin: 0; color: #4e5b4d; font-size: .76rem; }
.deadline-guidance.shortfall p { color: #695727; }
.pace-options { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; margin-top: 12px; }
.pace-options .selection-card > span { min-height: 105px; }
.deadline-guidance fieldset { margin-top: 15px; }
.deadline-guidance legend { font-size: .72rem; }
.guidance-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin-top: 13px; }
.guidance-actions button { padding: 6px 9px; border: 1px solid #caa653; border-radius: 8px; background: white; color: #6b521b; font-size: .65rem; font-weight: 800; cursor: pointer; }
.guidance-actions span { color: #77683f; font-size: .64rem; }
.budget-split, .budget-split-note { padding: 19px; border: 1px solid #cadfc4; border-radius: 15px; background: #f4f8f2; }
.budget-split-note strong { display: block; color: var(--forest); font-family: var(--heading); font-size: .82rem; }
.budget-split-note p, .budget-split > div:first-child > p { margin: 5px 0 0; color: var(--muted); font-size: .7rem; }
.budget-split h3 { margin-bottom: 0; font-size: 1rem; }
.split-fields { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; margin-top: 16px; }
.split-total { display: flex; justify-content: space-between; gap: 16px; margin-top: 13px; padding: 10px 12px; border-radius: 10px; background: #e4f0df; color: var(--forest); font-size: .68rem; }
.split-total.invalid { background: var(--red-bg); color: #8c3434; }
.form-actions { display: flex; justify-content: flex-end; gap: 9px; margin-top: 5px; }
.privacy-note { display: block; margin-top: -11px; color: var(--muted); font-size: .68rem; text-align: right; }
.review-header { padding-bottom: 24px; border-bottom: 1px solid var(--line); }
.review-list { display: grid; grid-template-columns: 1fr 1fr; gap: 0 28px; margin: 20px 0 30px; }
.review-list > div { position: relative; padding: 15px 68px 15px 0; border-bottom: 1px solid var(--line); }
.review-list dt { color: var(--muted); font-size: .66rem; }
.review-list dd { margin: 2px 0 0; font-family: var(--heading); font-size: .88rem; font-weight: 750; }
.review-list button { position: absolute; right: 0; top: 22px; padding: 3px; border: 0; border-bottom: 1px solid currentColor; background: transparent; color: var(--forest); font-size: .66rem; font-weight: 800; cursor: pointer; }
.review-math { margin-top: 20px; padding: 15px 17px; border-left: 4px solid var(--green); border-radius: 0 12px 12px 0; background: #eef6ea; }
.review-math.misses { border-left-color: var(--amber); background: var(--amber-bg); }
.review-math strong { display: block; font-family: var(--heading); font-size: .8rem; }
.review-math p { margin: 4px 0 0; color: var(--muted); font-size: .7rem; }
.plan-report { display: grid; gap: 22px; }
.plan-report-header { display: flex; align-items: center; justify-content: space-between; gap: 30px; padding: 10px 4px 25px; }
.plan-report-header h2 { margin: 12px 0 7px; font-size: clamp(1.8rem, 4vw, 2.7rem); }
.plan-report-header p { margin: 0; color: var(--muted); }
.education-badge { display: inline-flex; padding: 5px 10px; border-radius: 99px; background: var(--sage); color: var(--forest); font-size: .65rem; font-weight: 800; text-transform: uppercase; letter-spacing: .06em; }
.report-sprout { width: 76px; height: 76px; display: grid; place-items: center; flex: none; border-radius: 24px; background: var(--sage-2); font-size: 2.1rem; }
.result-trust-row { display: grid; grid-template-columns: repeat(4, 1fr); gap: 1px; overflow: hidden; border: 1px solid #cfe0c9; border-radius: 13px; background: #cfe0c9; }
.result-trust-row span { padding: 11px 13px; background: #f4f9f1; color: var(--forest); font-size: .67rem; font-weight: 700; text-align: center; }
.plan-report .result-stats { display: grid; margin: 0; }
.plan-report .stat { border: 1px solid #dbe7d6; background: #f2f7ef; }
.calculation-note { margin: 0; padding: 15px 17px; border-left: 3px solid #88ad7d; border-radius: 0 10px 10px 0; background: #f5f8f3; color: #566056; font-size: .72rem; }
.report-section { padding: 25px; border: 1px solid var(--line); border-radius: 18px; background: white; }
.report-section .section-label { margin-bottom: 8px; font-size: .63rem; }
.report-section h3, .considerations h3, .next-action h3 { margin-bottom: 9px; font-size: 1.2rem; }
.priority-list { display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px; margin-top: 20px; }
.priority-list article { display: flex; gap: 12px; padding: 18px; border-radius: 14px; background: var(--sage-2); }
.priority-list article > span { width: 30px; height: 30px; display: grid; place-items: center; flex: none; border-radius: 50%; background: var(--forest); color: white; font-size: .73rem; font-weight: 800; }
.priority-list small { color: var(--green); font-size: .58rem; font-weight: 800; text-transform: uppercase; letter-spacing: .06em; }
.priority-list h4 { margin: 2px 0 6px; font-size: .83rem; }
.priority-list p { margin: 0; color: var(--muted); font-size: .68rem; line-height: 1.5; }
.report-section-head { display: flex; justify-content: space-between; align-items: end; gap: 20px; }
.allocation-total { color: var(--forest); font-size: .75rem; white-space: nowrap; }
.allocation-bar { height: 18px; display: flex; overflow: hidden; margin: 20px 0; border-radius: 99px; background: #e8ece5; }
.allocation-bar span { height: 100%; }
.allocation-cards { display: grid; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); gap: 11px; }
.allocation-cards article { min-height: 155px; padding: 17px; border: 1px solid var(--line); border-radius: 14px; }
.allocation-dot { width: 9px; height: 9px; display: block; margin-bottom: 11px; border-radius: 50%; background: var(--allocation-color); }
.allocation-cards h4 { margin-bottom: 3px; font-size: .8rem; }
.allocation-cards strong { color: var(--forest); font-size: .7rem; }
.allocation-cards p { margin: 10px 0 0; color: var(--muted); font-size: .67rem; }
.practice-note { display: flex; gap: 13px; margin-top: 14px; padding: 16px; border-radius: 14px; background: #f1f4ee; }
.practice-note strong { font-size: .75rem; }
.practice-note p { margin: 3px 0 0; color: var(--muted); font-size: .68rem; }
.report-icon { width: 38px; height: 38px; display: grid; place-items: center; flex: none; border-radius: 11px; background: white; color: var(--forest); }
.report-icon svg { width: 21px; }
.reasoning ul { display: grid; gap: 9px; padding: 0; margin: 18px 0 0; list-style: none; }
.reasoning li { position: relative; padding: 12px 14px 12px 39px; border-radius: 11px; background: #f6f8f4; color: #4f574f; font-size: .73rem; }
.reasoning li::before { content: "✓"; position: absolute; left: 14px; color: var(--green); font-weight: 900; }
.high-risk-plan-note { padding: 18px 20px; border-left: 4px solid #a84032; border-radius: 0 14px 14px 0; background: #fff0ed; color: #66332e; }
.high-risk-plan-note.eligible { border-left-color: #bd682f; background: #fff3e5; color: #674526; }
.high-risk-plan-note strong { display: block; font-family: var(--heading); font-size: .84rem; }
.high-risk-plan-note p { margin: 5px 0 0; font-size: .72rem; }
.high-risk-education { overflow: hidden; border: 1px solid #ddc0aa; border-radius: 18px; background: white; }
.high-risk-education summary { display: flex; align-items: center; justify-content: space-between; gap: 20px; padding: 20px 22px; color: #643b27; cursor: pointer; list-style: none; }
.high-risk-education summary::-webkit-details-marker { display: none; }
.high-risk-education summary::after { content: "+"; width: 28px; height: 28px; display: grid; place-items: center; flex: none; border-radius: 50%; background: #fff0e6; color: #8d4529; font-size: 1.1rem; font-weight: 800; }
.high-risk-education[open] summary::after { content: "−"; }
.high-risk-education summary span, .high-risk-education summary small { display: block; }
.high-risk-education summary span { font-family: var(--heading); font-size: .92rem; font-weight: 800; }
.high-risk-education summary small { margin-left: auto; color: var(--muted); font-size: .64rem; }
.high-risk-education > div { padding: 0 22px 20px; border-top: 1px solid #eee1d7; }
.modal-body > .high-risk-education { margin-top: 18px; }
.high-risk-education ul { display: grid; grid-template-columns: 1fr 1fr; gap: 8px 28px; padding-left: 18px; margin: 18px 0 0; }
.high-risk-education li { color: var(--muted); font-size: .72rem; }
.plan-feedback { display: grid; grid-template-columns: 1fr auto; gap: 16px 30px; align-items: center; padding: 25px; border: 1px solid #bfd7b7; border-radius: 18px; background: linear-gradient(135deg, #f2f8ef, #e4f0df); }
.plan-feedback .section-label { margin-bottom: 7px; font-size: .63rem; }
.plan-feedback h3 { margin-bottom: 5px; font-size: 1.2rem; }
.plan-feedback p { margin: 0; color: var(--muted); font-size: .72rem; }
.feedback-actions { display: flex; gap: 8px; }
.feedback-status { grid-column: 1 / -1; min-height: 18px; }
.plan-feedback.answered-yes { border-color: #8eb884; box-shadow: inset 4px 0 var(--green); }
.report-section[hidden] { display: none; }
.chart-explorer { margin: 20px 0 8px; padding: 16px; border: 1px solid #cadfc4; border-radius: 14px; background: var(--sage-2); }
.chart-explorer label { color: var(--forest); font-size: .74rem; font-weight: 800; }
.chart-explorer input { margin: 14px 0 8px; }
.chart-detail { display: flex; justify-content: space-between; gap: 15px; margin: 0; color: var(--muted); font-size: .7rem; }
.chart-detail strong { color: var(--forest); }
.contribution-chart { height: 210px; display: flex; align-items: end; gap: 8px; margin: 24px 0 14px; padding: 18px 14px 28px; border-bottom: 1px solid var(--line); background: linear-gradient(to top, rgba(221,234,215,.4) 1px, transparent 1px); background-size: 100% 25%; }
.contribution-column { height: 100%; flex: 1; display: flex; flex-direction: column; align-items: center; justify-content: end; gap: 5px; padding: 3px; border-radius: 8px; cursor: pointer; transition: background .2s, opacity .2s, transform .2s; }
.contribution-column:hover { background: rgba(221,234,215,.6); }
.contribution-column.reached { opacity: .62; }
.contribution-column.selected { opacity: 1; background: #dcebd6; box-shadow: 0 0 0 2px var(--green); transform: translateY(-3px); }
.contribution-column:focus-visible { outline: 3px solid var(--amber); outline-offset: 2px; }
.contribution-track { position: relative; width: min(100%, 38px); height: 130px; display: flex; align-items: end; overflow: hidden; border-radius: 8px 8px 3px 3px; background: #e8eee5; }
.contribution-track i { width: 100%; border-radius: inherit; background: linear-gradient(#6fa867, var(--green)); animation: growBar .65s ease both; }
.contribution-value { color: var(--forest); font-size: .56rem; font-weight: 800; }
.contribution-column small { color: var(--muted); font-size: .56rem; }
.milestone-row { display: grid; grid-template-columns: repeat(4, 1fr); overflow: hidden; border: 1px solid var(--line); border-radius: 12px; }
.milestone-row div { padding: 10px; border-right: 1px solid var(--line); }
.milestone-row div:last-child { border: 0; }
.milestone-row strong, .milestone-row span, .milestone-row small { display: block; }
.milestone-row strong { color: var(--green); font-size: .65rem; }
.milestone-row span { font-size: .7rem; font-weight: 700; }
.milestone-row small { color: var(--muted); font-size: .58rem; }
.report-section > .calculation-note { margin-top: 16px; }
.deadline-report { border-width: 2px; }
.deadline-report.meets { border-color: #b9d6b2; }
.deadline-report.misses { border-color: #e6cb8b; background: #fffcf4; }
.deadline-status { padding: 5px 9px; border-radius: 99px; background: #e4f0df; color: var(--forest); font-size: .65rem; font-weight: 800; white-space: nowrap; }
.deadline-report.misses .deadline-status { background: var(--amber-bg); color: #765616; }
.deadline-facts { display: grid; grid-template-columns: repeat(4, 1fr); gap: 10px; margin-top: 18px; }
.deadline-facts > div { padding: 13px; border-radius: 11px; background: #f5f7f3; }
.deadline-facts small, .deadline-facts strong { display: block; }
.deadline-facts small { color: var(--muted); font-size: .58rem; }
.deadline-facts strong { margin-top: 3px; color: var(--forest); font-family: var(--heading); font-size: .76rem; }
.deadline-message { margin: 13px 0 0; padding-top: 13px; border-top: 1px solid var(--line); color: var(--muted); font-size: .72rem; }
.considerations { display: flex; gap: 16px; padding: 23px; border: 1px solid #ecd49e; border-radius: 18px; background: var(--amber-bg); }
.considerations .report-icon { color: #8b6016; }
.considerations ul { columns: 2; gap: 35px; padding-left: 18px; margin: 12px 0 0; }
.considerations li { break-inside: avoid; margin: 6px 0; color: #695727; font-size: .72rem; }
.next-action { display: flex; align-items: center; justify-content: space-between; gap: 30px; padding: 27px; border-radius: 18px; background: #d9ead2; }
.next-action .section-label { margin-bottom: 8px; }
.next-action h3 { margin-bottom: 6px; }
.next-action p { margin: 0; color: #52634e; font-size: .75rem; }
.next-action-icon { width: 58px; height: 58px; display: grid; place-items: center; flex: none; border-radius: 18px; background: rgba(255,255,255,.65); font-size: 1.7rem; }
.plan-report .result-actions { margin: 0; }
.plan-report > .disclaimer { margin-top: 2px; }
