.btn-demo { display: inline-flex; align-items: center; gap: 8px; padding: 9px 14px; color: #574815; border: 1px solid #e5d795; border-radius: 9px; background: #f9edb5; font-size: 12px; }
.btn-demo:hover { color: #3c3210; border-color: #d9c66d; background: #f5e49b; }
.welcome-actions { flex-wrap: wrap; justify-content: flex-end; }
.client-access-banner { display: flex; align-items: center; gap: 16px; margin-bottom: 22px; padding: 17px 20px; color: #fff; border-radius: 15px; background: linear-gradient(112deg, #123f3a, #1a665c 67%, #1d7467); box-shadow: 0 14px 32px rgba(22,93,84,.16); }
.client-access-icon { display: grid; width: 43px; height: 43px; flex: 0 0 auto; place-items: center; color: var(--brand-dark); border-radius: 12px; background: var(--lime); font-size: 20px; }
.client-access-copy { display: flex; min-width: 0; flex: 1; flex-direction: column; }
.client-access-copy span { color: #b9ddd5; font-size: 8px; font-weight: 700; letter-spacing: .11em; }
.client-access-copy strong { margin-top: 3px; font: 700 14px "Manrope", sans-serif; }
.client-access-copy small { margin-top: 3px; color: #c3d8d4; font-size: 9px; }
.client-report-progress { width: 110px; }
.client-report-progress > span { display: block; margin-bottom: 5px; color: #c5dad6; font-size: 8px; text-align: right; }
.client-report-progress > span strong { color: #fff; }
.client-report-progress > div { height: 4px; overflow: hidden; border-radius: 4px; background: rgba(255,255,255,.16); }
.client-report-progress i { display: block; width: 25%; height: 100%; border-radius: inherit; background: var(--lime); transition: width .25s ease; }
.client-access-banner .btn-light { display: inline-flex; align-items: center; gap: 8px; padding: 9px 13px; color: var(--brand-dark); border-radius: 8px; background: #fff; font-size: 10px; font-weight: 700; }

.report-workspace-dialog { padding: 0; }
.report-preview { position: relative; height: 100vh; height: 100dvh; overflow: hidden; border-radius: 0; background: #f7f9f7; box-shadow: none; }
.preview-header { position: relative; z-index: 3; display: flex; height: 72px; flex: 0 0 72px; align-items: center; gap: 13px; padding: 10px 16px; border-bottom: 1px solid var(--line); background: #fff; }
.report-back-button { display: grid; width: 38px; height: 38px; padding: 0; place-items: center; color: #62716e; border: 1px solid var(--line); border-radius: 9px; background: #fff; }
.preview-file-heading { min-width: 0; }
.preview-file-heading > div { display: flex; align-items: center; gap: 6px; }
.preview-file-heading h2 { margin: 4px 0 0; overflow: hidden; font: 700 13px "Manrope", sans-serif; text-overflow: ellipsis; white-space: nowrap; }
.preview-file-heading p { margin: 2px 0 0; color: #8a9794; font-size: 8px; }
.report-type-pill, .secure-view-pill { display: inline-flex; align-items: center; gap: 4px; padding: 3px 6px; border-radius: 4px; font-size: 7px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; }
.report-type-pill { color: var(--brand); background: var(--brand-light); }
.secure-view-pill { color: #5d6a67; background: #eff2f0; }
.preview-actions { display: flex; align-items: center; gap: 7px; }
.preview-actions .icon-button.active { color: #886915; border-color: #e8d689; background: #fff8d7; }
.preview-actions .btn-close { margin-left: 2px; }
.mobile-contents-trigger { min-width: 0; max-width: 250px; height: 42px; flex: 1; align-items: center; gap: 9px; padding: 6px 9px; color: var(--ink); border: 1px solid var(--line); border-radius: 10px; background: #f7f9f7; text-align: left; }
.mobile-contents-trigger > i:first-child { display: grid; width: 28px; height: 28px; flex: 0 0 auto; place-items: center; color: var(--brand); border-radius: 7px; background: var(--brand-light); }
.mobile-contents-trigger > span { display: flex; min-width: 0; flex: 1; flex-direction: column; line-height: 1.15; }
.mobile-contents-trigger small { color: #8b9895; font-size: 6px; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; }
.mobile-contents-trigger strong { margin-top: 3px; overflow: hidden; font-size: 9px; text-overflow: ellipsis; white-space: nowrap; }
.mobile-contents-trigger > i:last-child { color: #8a9794; font-size: 9px; transition: transform .2s ease; }
.mobile-contents-trigger.active > i:last-child { transform: rotate(180deg); }

.report-preview-layout { display: grid; height: calc(100vh - 72px); height: calc(100dvh - 72px); min-height: 0; grid-template-columns: 216px minmax(0,1fr) 268px; }
.preview-index { display: flex; min-height: 0; padding: 24px 14px 16px; border-right: 1px solid var(--line); background: #fbfcfb; flex-direction: column; justify-content: space-between; }
.preview-index .nav-label { display: block; margin: 0 9px 10px; }
.report-section-nav { display: grid; width: 100%; grid-template-columns: 25px 1fr 12px; align-items: center; gap: 7px; margin-bottom: 4px; padding: 10px 9px; color: #74827f; border: 0; border-radius: 9px; background: transparent; text-align: left; }
.report-section-nav > span:first-child { display: grid; width: 23px; height: 23px; place-items: center; color: #92a09d; border-radius: 6px; background: #edf1ee; font-size: 7px; font-weight: 700; }
.section-nav-copy { display: flex; min-width: 0; flex-direction: column; }
.report-section-nav strong { font-size: 9px; }
.report-section-nav small { margin-top: 2px; color: #a2aca9; font-size: 7px; }
.report-section-nav > i { opacity: 0; font-size: 8px; }
.report-section-nav:hover { color: var(--ink); background: #f1f4f2; }
.report-section-nav.active { color: var(--brand-dark); background: #e5f0eb; }
.report-section-nav.active > span:first-child { color: #fff; background: var(--brand); }
.report-section-nav.active small { color: #718a85; }
.report-section-nav.active > i { opacity: 1; }
.report-section-nav:focus-visible { outline: 2px solid rgba(22,93,84,.32); outline-offset: 1px; }
.report-index-footer { display: flex; gap: 10px; padding: 0 5px; flex-direction: column; }
.verified-stamp, .access-stamp { display: flex; align-items: center; gap: 8px; padding-top: 11px; color: #70807d; border-top: 1px solid var(--line); }
.verified-stamp > i, .access-stamp > i { color: var(--brand); font-size: 15px; }
.verified-stamp > div, .access-stamp > div { display: flex; flex-direction: column; }
.verified-stamp strong, .access-stamp strong { font-size: 8px; }
.verified-stamp small, .access-stamp small { margin-top: 1px; color: #9aa5a2; font-size: 6px; }

.preview-page { min-width: 0; padding: 32px clamp(24px,4vw,56px) 56px; overflow-y: auto; scroll-behavior: smooth; background: #f7f9f7; }
.report-section { display: none; width: min(100%, 900px); margin: 0 auto; }
.report-section.active { display: block; animation: reportFade .28s ease both; }
@keyframes reportFade { from { opacity: 0; transform: translateY(5px); } to { opacity: 1; transform: translateY(0); } }
.preview-brand { display: flex; align-items: center; gap: 8px; padding-bottom: 20px; border-bottom: 1px solid var(--line); }
.preview-brand strong { font: 800 10px "Manrope", sans-serif; letter-spacing: .04em; }
.preview-brand strong span { color: var(--brand); }
.preview-brand > small { margin-left: auto; color: #9ba5a3; font-size: 7px; font-weight: 700; letter-spacing: .08em; }
.preview-eyebrow { margin: 28px 0 8px; color: var(--brand); font-size: 8px; font-weight: 800; letter-spacing: .14em; }
.preview-page h3 { margin: 0; color: var(--ink); font-size: clamp(24px,2.6vw,34px); font-weight: 700; letter-spacing: -.045em; line-height: 1.2; }
.preview-page h4 { margin: 0; font: 700 13px "Manrope", sans-serif; letter-spacing: -.025em; }
.preview-summary { max-width: 690px; margin: 13px 0 0; color: #657572; font-size: 11px; line-height: 1.75; }
.report-hero { display: grid; grid-template-columns: 1fr 145px; gap: 30px; align-items: center; }
.conviction-score { display: flex; align-items: center; padding: 16px 13px; border: 1px solid var(--line); border-radius: 13px; background: #fff; flex-direction: column; }
.conviction-score > span { color: #909c99; font-size: 6px; font-weight: 800; letter-spacing: .1em; }
.score-ring { display: grid; width: 74px; height: 74px; margin: 10px 0 8px; place-items: center; border: 7px solid #dfeee8; border-top-color: var(--brand); border-right-color: var(--brand); border-radius: 50%; transform: rotate(18deg); }
.score-ring strong, .score-ring small { grid-area: 1 / 1; transform: rotate(-18deg); }
.score-ring strong { margin-top: -7px; font: 800 23px "Manrope", sans-serif; }
.score-ring small { margin: 21px 0 0 25px; color: #87938f; font-size: 7px; }
.conviction-score > b { color: #3b775b; font-size: 8px; }
.preview-metrics { display: grid; grid-template-columns: repeat(3,1fr); margin: 24px 0 18px; border: 1px solid var(--line); border-radius: 11px; background: #fff; overflow: hidden; }
.preview-metrics > button { position: relative; display: flex; padding: 15px 17px; color: inherit; border: 0; border-right: 1px solid var(--line); background: #fff; flex-direction: column; text-align: left; transition: .15s ease; }
.preview-metrics > button:last-child { border-right: 0; }
.preview-metrics > button:hover { background: #f9fbfa; }
.preview-metrics span { color: #8a9794; font-size: 8px; }
.preview-metrics strong { margin: 3px 0 2px; font: 700 20px "Manrope", sans-serif; }
.preview-metrics small { color: #87928f; font-size: 7px; }
.preview-metrics small.positive { color: #43805f; }
.metric-arrow { position: absolute; top: 15px; right: 15px; color: #a8b2af; font-size: 9px; }
.meridian-take { display: flex; align-items: center; gap: 12px; margin-bottom: 18px; padding: 14px; border: 1px solid #dbe8e3; border-radius: 11px; background: #edf6f2; }
.meridian-take > span { display: grid; width: 34px; height: 34px; flex: 0 0 auto; place-items: center; color: var(--brand-dark); border-radius: 9px; background: var(--lime); }
.meridian-take > div { flex: 1; }
.meridian-take strong { font-size: 9px; }
.meridian-take p { margin: 3px 0 0; color: #61736f; font-size: 8px; line-height: 1.55; }
.ask-about-button { white-space: nowrap; }
.report-grid-two { display: grid; grid-template-columns: 1.2fr .8fr; gap: 16px; }
.report-card { border: 1px solid var(--line); border-radius: 13px; background: #fff; }
.report-card-header { display: flex; align-items: flex-start; justify-content: space-between; gap: 15px; padding: 16px 17px 13px; }
.report-card-header .panel-kicker { margin-bottom: 4px; }
.data-source { color: #899692; font-size: 7px; white-space: nowrap; }
.data-source i { color: var(--brand); }
.signal-list { padding: 0 17px 8px; }
.signal-list > div { display: grid; grid-template-columns: 28px 1fr auto; gap: 9px; align-items: center; padding: 10px 0; border-top: 1px solid #edf0ed; }
.signal-icon { display: grid; width: 27px; height: 27px; place-items: center; border-radius: 7px; font-size: 10px; }
.signal-icon.positive { color: #36785a; background: #e3f1e8; }
.signal-icon.watch { color: #98732f; background: #f6edd8; }
.signal-list > div > div { display: flex; flex-direction: column; }
.signal-list strong { font-size: 8px; }
.signal-list small { margin-top: 2px; color: #8b9794; font-size: 7px; }
.signal-list b { color: #4b7b62; font-size: 7px; }
.signal-list > div:last-child b { color: #91753c; }
.recommendation-card { padding: 18px; color: #fff; background: linear-gradient(145deg, #173d39, #205c54); }
.recommendation-card .panel-kicker { color: #a8cdc5; }
.recommendation-card h4 { margin: 11px 0 9px; color: #fff; font-size: 15px; line-height: 1.4; }
.recommendation-card p { color: #b9d0cb; font-size: 8px; line-height: 1.6; }
.recommendation-card .btn { margin-top: 8px; color: #fff; border-color: #4a766f; background: #2d6860; }

.section-heading { display: flex; justify-content: space-between; gap: 20px; margin-bottom: 22px; }
.section-heading .preview-eyebrow { margin-top: 0; }
.section-heading h3 { max-width: 730px; }
.section-heading p:last-child { max-width: 650px; margin: 10px 0 0; color: #768481; font-size: 10px; line-height: 1.6; }
.section-number { color: #dfe5e1; font: 800 45px "Manrope", sans-serif; }
.market-chart-card { margin-bottom: 16px; padding-bottom: 5px; }
.chart-control-header { align-items: flex-start; }
.chart-feature-value { display: flex; align-items: center; gap: 10px; margin-top: 7px; }
.chart-feature-value strong { font: 700 24px "Manrope", sans-serif; }
.chart-feature-value span { padding: 4px 7px; color: #37775a; border-radius: 5px; background: #e6f2ea; font-size: 7px; font-weight: 700; }
.chart-metric-switch, .comp-filter, .scenario-presets { display: inline-flex; padding: 3px; border: 1px solid var(--line); border-radius: 8px; background: #f5f7f5; }
.chart-metric-switch button, .comp-filter button, .scenario-presets button { padding: 6px 10px; color: #84918e; border: 0; border-radius: 5px; background: transparent; font-size: 8px; font-weight: 700; }
.chart-metric-switch button.active, .comp-filter button.active, .scenario-presets button.active { color: var(--brand-dark); background: #fff; box-shadow: 0 1px 5px rgba(25,56,52,.1); }
.interactive-market-chart { position: relative; height: 225px; margin: 4px 18px 0 44px; }
.market-y-labels { position: absolute; top: 0; bottom: 24px; left: -35px; display: flex; justify-content: space-between; color: #a2adaa; font-size: 7px; flex-direction: column; }
.market-chart-grid { position: absolute; inset: 0 0 24px; display: flex; justify-content: space-between; flex-direction: column; }
.market-chart-grid i { border-top: 1px dashed #e3e8e4; }
.market-bars { position: absolute; inset: 0 0 24px; display: flex; align-items: flex-end; gap: 12px; }
.market-bars button { position: relative; width: 100%; height: calc(var(--bar) - 3px); max-width: 66px; padding: 0; border: 0; border-radius: 5px 5px 1px 1px; background: #dceae5; transition: .22s ease; }
.market-bars button:hover, .market-bars button.active { background: var(--brand); transform: translateY(-2px); }
.market-bars button span { position: absolute; right: 0; bottom: -20px; left: 0; color: #9aa5a2; font-size: 7px; white-space: nowrap; }
.market-bars button.active span { color: var(--brand); font-weight: 700; }
.chart-hover-value { position: absolute; top: 5px; right: 5px; padding: 5px 7px; color: #fff; border-radius: 6px; background: var(--ink); font-size: 7px; font-weight: 700; }
.chart-source { padding: 5px 18px 12px; color: #a0aaa7; font-size: 6px; }
.market-driver-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 12px; margin-bottom: 16px; }
.market-driver-grid article { display: flex; gap: 10px; padding: 14px; border: 1px solid var(--line); border-radius: 11px; background: #fff; }
.driver-icon { display: grid; width: 31px; height: 31px; flex: 0 0 auto; place-items: center; border-radius: 8px; }
.driver-icon.green { color: #34745a; background: #e1f0e7; }
.driver-icon.amber { color: #936d2d; background: #f7edd8; }
.driver-icon.blue { color: #466da9; background: #e7eef9; }
.market-driver-grid article > div { display: flex; flex-direction: column; }
.market-driver-grid small { color: #96a19e; font-size: 6px; font-weight: 700; letter-spacing: .08em; }
.market-driver-grid strong { margin-top: 3px; font-size: 9px; }
.market-driver-grid p { margin: 4px 0 0; color: #83908d; font-size: 7px; line-height: 1.5; }
.submarket-card { overflow: hidden; }
.submarket-table { border-top: 1px solid var(--line); }
.submarket-row { display: grid; grid-template-columns: 1.25fr .7fr .7fr 1.2fr; align-items: center; min-height: 46px; padding: 0 17px; border-bottom: 1px solid #edf0ed; color: #677572; font-size: 8px; }
.submarket-row:last-child { border-bottom: 0; }
.submarket-row.header { min-height: 32px; color: #9ba6a3; background: #f8faf8; font-size: 6px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; }
.submarket-row.featured { background: #f2f8f5; }
.submarket-row > span:first-child { display: flex; flex-direction: column; }
.submarket-row small { margin-top: 2px; color: var(--brand); font-size: 6px; }
.submarket-row > span:last-child { display: grid; grid-template-columns: 1fr 34px; align-items: center; gap: 7px; }
.submarket-row > span:last-child i { display: block; width: var(--score); height: 5px; max-width: 100%; border-radius: 5px; background: var(--brand); }
.submarket-row > span:last-child b { font-size: 7px; }

.comp-toolbar { display: flex; align-items: center; justify-content: space-between; margin-bottom: 12px; }
.comp-explorer { overflow: hidden; }
.comp-map { position: relative; height: 255px; overflow: hidden; border-bottom: 1px solid var(--line); background-color: #eaf0e9; background-image: linear-gradient(30deg, rgba(255,255,255,.65) 12%, transparent 12.5%, transparent 87%, rgba(255,255,255,.65) 87.5%), linear-gradient(150deg, rgba(255,255,255,.48) 12%, transparent 12.5%, transparent 87%, rgba(255,255,255,.48) 87.5%); background-size: 64px 38px; }
.map-road { position: absolute; display: block; background: #fff; box-shadow: 0 0 0 1px #dfe5df; transform-origin: center; }
.road-one { top: 48%; left: -5%; width: 110%; height: 11px; transform: rotate(-8deg); }
.road-two { top: -10%; left: 54%; width: 12px; height: 125%; transform: rotate(14deg); }
.road-three { top: -15%; left: 25%; width: 7px; height: 130%; transform: rotate(-24deg); }
.map-park { position: absolute; top: 12%; left: 8%; width: 23%; height: 28%; border-radius: 45% 30% 55% 25%; background: #cfe1cd; }
.map-label { position: absolute; z-index: 1; color: #98a59f; font-size: 6px; font-weight: 700; letter-spacing: .12em; }
.label-one { top: 35%; left: 57%; transform: rotate(14deg); }
.label-two { right: 8%; bottom: 12%; font-size: 8px; }
.map-pin { position: absolute; z-index: 2; top: var(--y); left: var(--x); display: grid; width: 25px; height: 25px; padding: 0; place-items: center; color: #fff; border: 3px solid #fff; border-radius: 50% 50% 50% 5px; background: var(--brand); box-shadow: 0 4px 10px rgba(25,56,52,.2); transform: translate(-50%,-50%) rotate(-45deg); }
.map-pin span { font-size: 7px; font-weight: 800; transform: rotate(45deg); }
.map-pin:hover, .map-pin.active { color: var(--ink); background: var(--lime); transform: translate(-50%,-55%) rotate(-45deg) scale(1.12); }
.map-detail { position: absolute; z-index: 3; right: 15px; bottom: 15px; display: flex; width: 190px; padding: 12px; border: 1px solid rgba(255,255,255,.7); border-radius: 10px; background: rgba(255,255,255,.93); box-shadow: 0 8px 22px rgba(25,56,52,.12); backdrop-filter: blur(8px); flex-direction: column; }
.map-detail > span { color: var(--brand); font-size: 6px; font-weight: 800; letter-spacing: .1em; }
.map-detail strong { margin-top: 3px; font-size: 10px; }
.map-detail small { margin-top: 2px; color: #899592; font-size: 7px; }
.map-detail > div { display: flex; justify-content: space-between; margin-top: 8px; padding-top: 8px; border-top: 1px solid var(--line); }
.map-detail b { font-size: 8px; }
.map-detail em { color: #7f8c89; font-size: 7px; font-style: normal; }
.comp-table-wrap { overflow-x: auto; }
.comp-table { width: 100%; border-collapse: collapse; font-size: 8px; white-space: nowrap; }
.comp-table th { padding: 10px 13px; color: #98a39f; background: #f8faf8; font-size: 6px; letter-spacing: .06em; text-transform: uppercase; }
.comp-table td { padding: 11px 13px; color: #6d7b78; border-top: 1px solid #edf0ed; }
.comp-table tr:hover td { background: #fafcfb; }
.comp-table td:first-child { color: var(--ink); }
.comp-number { display: inline-grid; width: 19px; height: 19px; margin-right: 7px; place-items: center; color: #fff; border-radius: 6px; background: var(--brand); font-size: 6px; }
.match-score { padding: 4px 6px; color: #5d713f; border-radius: 5px; background: #edf2df; font-weight: 700; }
.match-score.high { color: #367359; background: #e3f1e8; }

.scenario-presets { margin-bottom: 14px; }
.scenario-layout { display: grid; grid-template-columns: minmax(260px,.85fr) minmax(320px,1.15fr); gap: 15px; margin-bottom: 15px; }
.scenario-controls { padding: 18px; }
.scenario-control { margin-bottom: 22px; }
.scenario-control > div:first-child { display: flex; align-items: center; justify-content: space-between; }
.scenario-control label { color: #4f605d; font-size: 9px; font-weight: 700; }
.scenario-control output { color: var(--brand); font: 700 11px "Manrope", sans-serif; }
.scenario-control input[type="range"] { width: 100%; height: 4px; margin: 13px 0 4px; accent-color: var(--brand); cursor: pointer; }
.range-labels { display: flex; justify-content: space-between; color: #a0aaa7; font-size: 6px; }
.assumption-note { display: flex; gap: 8px; padding: 10px; color: #778582; border-radius: 8px; background: #f2f5f3; font-size: 7px; line-height: 1.5; }
.assumption-note i { color: var(--brand); }
.scenario-results { display: grid; gap: 11px; }
.scenario-value-card { padding: 18px; color: #fff; border-radius: 13px; background: var(--ink); }
.scenario-value-card > span { color: #9eb2ae; font-size: 7px; font-weight: 700; letter-spacing: .1em; }
.scenario-value-card > strong { display: block; margin: 5px 0 3px; font: 700 30px "Manrope", sans-serif; }
.scenario-value-card > small { color: #b8d58d; font-size: 7px; }
.value-meter { position: relative; height: 5px; margin-top: 17px; border-radius: 5px; background: #3b5551; }
.value-meter i { display: block; width: 55%; height: 100%; border-radius: inherit; background: linear-gradient(90deg, #e8aa85, var(--lime)); transition: width .2s ease; }
.value-meter b { position: absolute; top: -4px; left: 32%; width: 2px; height: 13px; background: #fff; opacity: .65; }
.value-scale { display: flex; justify-content: space-between; margin-top: 5px; color: #809793; font-size: 6px; }
.scenario-result-grid { display: grid; grid-template-columns: repeat(2,1fr); gap: 9px; }
.scenario-result-grid > div { display: flex; padding: 12px; border: 1px solid var(--line); border-radius: 10px; background: #fff; flex-direction: column; }
.scenario-result-grid span { color: #84918e; font-size: 7px; }
.scenario-result-grid strong { margin-top: 4px; font: 700 16px "Manrope", sans-serif; }
.scenario-result-grid small { margin-top: 2px; color: #9ca6a3; font-size: 6px; }
.scenario-insight { display: flex; align-items: flex-start; gap: 9px; padding: 10px 12px; color: #5e6f6b; border: 1px solid #dce8e3; border-radius: 9px; background: #eff6f2; }
.scenario-insight > i { color: var(--brand); }
.scenario-insight p { margin: 0; font-size: 7px; line-height: 1.5; }
.sensitivity-card { padding-bottom: 16px; overflow: hidden; }
.sensitivity-grid { display: grid; grid-template-columns: 70px repeat(4,1fr); gap: 4px; padding: 0 17px; }
.sensitivity-grid > * { display: grid; min-height: 30px; place-items: center; border-radius: 5px; font-size: 7px; }
.sensitivity-grid b { color: #7d8a87; background: #f4f6f4; }
.sensitivity-grid i { font-style: normal; }
.sensitivity-grid i.risk { color: #985d50; background: #f7e5df; }
.sensitivity-grid i.watch { color: #886d33; background: #f7efd9; }
.sensitivity-grid i.good { color: #3f755b; background: #e6f1e8; }
.sensitivity-grid i.great { color: #285e49; background: #d6eadc; }
.sensitivity-grid i.active { box-shadow: 0 0 0 2px var(--brand); font-weight: 800; }

.report-section-footer { margin-top: 26px; padding-top: 20px; border-top: 1px solid var(--line); }
.report-next-section { display: grid; width: 100%; min-height: 82px; grid-template-columns: 42px minmax(0,1fr) auto; align-items: center; gap: 14px; padding: 15px 17px; color: var(--ink); border: 1px solid #cfe0da; border-radius: 14px; background: linear-gradient(115deg, #f4faf7, #fff); box-shadow: 0 7px 20px rgba(25,56,52,.05); text-align: left; transition: .18s ease; }
.report-next-section:hover { border-color: #9fbeb5; background: linear-gradient(115deg, #edf7f3, #fbfdfc); box-shadow: 0 10px 24px rgba(25,56,52,.09); transform: translateY(-1px); }
.report-next-section:focus-visible { outline: 3px solid rgba(22,93,84,.2); outline-offset: 2px; }
.next-section-number { display: grid; width: 40px; height: 40px; place-items: center; color: #fff; border-radius: 11px; background: var(--brand); font: 800 10px "Manrope", sans-serif; }
.next-section-copy { display: flex; min-width: 0; flex-direction: column; }
.next-section-copy > small { color: var(--brand); font-size: 7px; font-weight: 800; letter-spacing: .13em; }
.next-section-copy > strong { margin-top: 3px; font: 700 14px "Manrope", sans-serif; }
.next-section-copy > span { margin-top: 3px; overflow: hidden; color: #7b8986; font-size: 9px; text-overflow: ellipsis; white-space: nowrap; }
.next-section-action { display: inline-flex; align-items: center; gap: 9px; color: var(--brand); font-size: 9px; font-weight: 700; }
.next-section-action > i { display: grid; width: 34px; height: 34px; place-items: center; color: #fff; border-radius: 10px; background: var(--brand); transition: transform .18s ease; }
.report-next-section:hover .next-section-action > i { transform: translateX(3px); }

.report-tools-rail { display: flex; min-height: 0; border-left: 1px solid var(--line); background: #fbfcfb; flex-direction: column; }
.rail-scroll { flex: 1; min-height: 0; padding: 16px; overflow-y: auto; }
.rail-card { margin-bottom: 11px; padding: 13px; border: 1px solid var(--line); border-radius: 11px; background: #fff; }
.rail-card-title { display: grid; grid-template-columns: 31px 1fr 12px; gap: 8px; align-items: center; }
.rail-icon { display: grid; width: 30px; height: 30px; place-items: center; border-radius: 8px; }
.rail-icon.secure { color: var(--brand); background: var(--brand-light); }
.rail-card-title > div { display: flex; flex-direction: column; }
.rail-card-title strong, .rail-card-heading strong { font-size: 9px; }
.rail-card-title small { margin-top: 2px; color: #919c99; font-size: 7px; }
.rail-card-title > i { color: #4d9468; font-size: 10px; }
.access-details { margin-top: 12px; }
.access-details > div { display: flex; justify-content: space-between; padding: 6px 0; border-top: 1px solid #edf0ed; font-size: 7px; }
.access-details span { color: #8d9996; }
.access-details strong { color: #50605d; }
.rail-card-heading { display: flex; align-items: center; justify-content: space-between; }
.progress-card .rail-card-heading span { color: var(--brand); font-size: 8px; font-weight: 700; }
.report-progress { height: 5px; margin: 10px 0 5px; border-radius: 5px; background: #e5ebe7; }
.report-progress i { display: block; width: 25%; height: 100%; border-radius: inherit; background: var(--brand); transition: width .25s ease; }
.progress-card > small { color: #909c99; font-size: 7px; }
.ai-badge { padding: 3px 5px; color: #765f13; border-radius: 4px; background: #f7edbd; font-size: 6px; font-weight: 700; }
.ask-card > p { margin: 8px 0; color: #83908d; font-size: 7px; line-height: 1.5; }
.question-chips { display: flex; gap: 5px; margin-bottom: 8px; flex-wrap: wrap; }
.question-chips button { padding: 5px 7px; color: #64736f; border: 1px solid var(--line); border-radius: 6px; background: #f8faf8; font-size: 6px; }
.rail-input { display: flex; padding: 4px 4px 4px 8px; border: 1px solid var(--line); border-radius: 8px; background: #fff; }
.rail-input:focus-within { border-color: #91b0aa; box-shadow: 0 0 0 3px rgba(22,93,84,.07); }
.rail-input input { min-width: 0; flex: 1; border: 0; outline: 0; font-size: 7px; }
.rail-input button { display: grid; width: 24px; height: 24px; padding: 0; place-items: center; color: #fff; border: 0; border-radius: 6px; background: var(--brand); }
.report-answer { display: grid; grid-template-columns: 23px 1fr; gap: 7px; margin-top: 8px; padding: 8px; border-radius: 8px; background: #eef6f2; }
.report-answer > span { display: grid; width: 22px; height: 22px; place-items: center; color: var(--brand); border-radius: 6px; background: #fff; }
.report-answer p { margin: 0; color: #5c6e6a; font-size: 7px; line-height: 1.5; }
.notes-card .rail-card-heading span { display: grid; width: 18px; height: 18px; place-items: center; color: var(--brand); border-radius: 5px; background: var(--brand-light); font-size: 7px; }
.report-note-list { margin: 9px 0; }
.report-note { padding: 8px; border-radius: 7px; background: #f5f7f5; }
.report-note + .report-note { margin-top: 6px; }
.report-note p { margin: 0; color: #5f6f6c; font-size: 7px; line-height: 1.5; }
.report-note small { display: block; margin-top: 4px; color: #9ba5a2; font-size: 6px; }
.notes-card textarea { width: 100%; padding: 8px; border: 1px solid var(--line); border-radius: 7px; outline: 0; resize: none; font-size: 7px; }
.notes-card textarea:focus { border-color: #91b0aa; }
.notes-card .btn { margin-top: 6px; padding: 7px; font-size: 7px; }
.report-review-footer { padding: 12px 16px; border-top: 1px solid var(--line); background: #fff; text-align: center; }
.report-review-footer .btn { padding: 9px; }
.report-review-footer span { display: block; margin-top: 5px; color: #9aa5a2; font-size: 6px; }

.mobile-report-actions { position: absolute; z-index: 6; right: 12px; bottom: calc(12px + env(safe-area-inset-bottom)); left: 228px; display: grid; grid-template-columns: repeat(3,1fr); gap: 6px; padding: 6px; border: 1px solid rgba(223,229,225,.9); border-radius: 14px; background: rgba(255,255,255,.94); box-shadow: 0 12px 32px rgba(25,56,52,.15); backdrop-filter: blur(14px); }
.mobile-report-actions button { position: relative; display: flex; min-height: 44px; align-items: center; justify-content: center; gap: 7px; padding: 6px 10px; color: #667572; border: 0; border-radius: 9px; background: transparent; font-size: 9px; font-weight: 700; }
.mobile-report-actions button:hover, .mobile-report-actions button.active { color: var(--brand-dark); background: #e9f3ef; }
.mobile-report-actions button:focus-visible, .mobile-tool-sheet button:focus-visible { outline: 2px solid rgba(22,93,84,.38); outline-offset: 1px; }
.mobile-report-actions button > i { font-size: 14px; }
.mobile-report-actions button > b { display: grid; width: 16px; height: 16px; place-items: center; color: var(--brand); border-radius: 5px; background: var(--brand-light); font-size: 7px; }
.mobile-tool-sheet { position: absolute; z-index: 7; right: 12px; bottom: calc(74px + env(safe-area-inset-bottom)); left: 228px; max-height: min(430px,65dvh); padding: 17px; overflow-y: auto; border: 1px solid var(--line); border-radius: 16px; background: #fff; box-shadow: 0 22px 55px rgba(25,56,52,.22); opacity: 0; pointer-events: none; transform: translateY(16px); transition: .22s ease; }
.mobile-tool-sheet.show { opacity: 1; pointer-events: auto; transform: translateY(0); }
.mobile-tool-sheet[data-open-panel="contents"] { max-height: min(560px,calc(100dvh - 152px)); }
.mobile-tool-sheet-header { display: flex; align-items: center; justify-content: space-between; margin-bottom: 13px; }
.mobile-tool-sheet-header > div { display: flex; flex-direction: column; }
.mobile-tool-sheet-header span { color: var(--brand); font-size: 7px; font-weight: 800; letter-spacing: .1em; }
.mobile-tool-sheet-header h4 { margin: 3px 0 0; font: 700 16px "Manrope", sans-serif; }
.mobile-tool-sheet-header button { display: grid; width: 34px; height: 34px; padding: 0; place-items: center; color: #74817f; border: 1px solid var(--line); border-radius: 9px; background: #fff; }
.mobile-contents-progress { margin-bottom: 11px; padding: 11px 12px; border-radius: 10px; background: #f3f6f4; }
.mobile-contents-progress > div:first-child { display: flex; align-items: center; justify-content: space-between; color: #84918e; font-size: 8px; }
.mobile-contents-progress strong { color: var(--ink); font-size: 8px; }
.mobile-contents-progress-bar { height: 5px; margin-top: 8px; overflow: hidden; border-radius: 5px; background: #dfe7e3; }
.mobile-contents-progress-bar i { display: block; width: 25%; height: 100%; border-radius: inherit; background: var(--brand); transition: width .25s ease; }
.mobile-contents-list { display: grid; gap: 6px; }
.mobile-content-nav { display: grid; width: 100%; min-height: 59px; grid-template-columns: 34px minmax(0,1fr) 24px; align-items: center; gap: 10px; padding: 9px 10px; color: #687773; border: 1px solid var(--line); border-radius: 11px; background: #fff; text-align: left; transition: .16s ease; }
.mobile-content-nav:hover { color: var(--ink); border-color: #bfd0cb; background: #f8faf8; }
.mobile-content-number { display: grid; width: 32px; height: 32px; place-items: center; color: #879491; border-radius: 8px; background: #eef2ef; font-size: 8px; font-weight: 800; }
.mobile-content-copy { display: flex; min-width: 0; flex-direction: column; }
.mobile-content-copy strong { color: var(--ink); font-size: 10px; }
.mobile-content-copy small { margin-top: 3px; color: #929e9b; font-size: 8px; }
.mobile-content-state { display: grid; width: 22px; height: 22px; place-items: center; color: #abb5b2; border-radius: 50%; font-size: 10px; }
.mobile-content-nav.viewed:not(.active) .mobile-content-state { color: #4f9472; }
.mobile-content-nav.active { color: var(--brand-dark); border-color: #b8d4cb; background: #e8f2ee; box-shadow: 0 5px 14px rgba(25,56,52,.06); }
.mobile-content-nav.active .mobile-content-number { color: #fff; background: var(--brand); }
.mobile-content-nav.active .mobile-content-state { color: var(--brand); background: #fff; }
.mobile-contents-security { display: flex; align-items: center; gap: 9px; margin-top: 12px; padding-top: 11px; color: var(--brand); border-top: 1px solid var(--line); }
.mobile-contents-security > i { font-size: 15px; }
.mobile-contents-security > span { display: flex; flex-direction: column; }
.mobile-contents-security strong { color: var(--ink); font-size: 8px; }
.mobile-contents-security small { margin-top: 2px; color: #929e9b; font-size: 7px; }
.mobile-tool-panel > p { margin: 0 0 10px; color: #7d8b88; font-size: 9px; }
.mobile-question-chips { display: flex; gap: 7px; margin-bottom: 11px; overflow-x: auto; }
.mobile-question-chips button { min-height: 34px; padding: 7px 10px; color: #5f6e6b; border: 1px solid var(--line); border-radius: 8px; background: #f8faf8; font-size: 8px; white-space: nowrap; }
.mobile-tool-input { display: flex; padding: 5px 5px 5px 11px; border: 1px solid var(--line); border-radius: 10px; }
.mobile-tool-input:focus-within { border-color: #91b0aa; box-shadow: 0 0 0 3px rgba(22,93,84,.07); }
.mobile-tool-input input { min-width: 0; min-height: 35px; flex: 1; border: 0; outline: 0; font-size: 10px; }
.mobile-tool-input button { display: grid; width: 35px; height: 35px; padding: 0; place-items: center; color: #fff; border: 0; border-radius: 8px; background: var(--brand); }
.mobile-report-answer { display: grid; grid-template-columns: 29px 1fr; gap: 9px; margin-top: 11px; padding: 11px; border-radius: 9px; background: #eef6f2; }
.mobile-report-answer > span { display: grid; width: 28px; height: 28px; place-items: center; color: var(--brand); border-radius: 7px; background: #fff; }
.mobile-report-answer p { margin: 0; color: #596c68; font-size: 9px; line-height: 1.55; }
.mobile-note-list { display: grid; gap: 7px; max-height: 180px; margin-bottom: 11px; overflow-y: auto; }
.mobile-tool-panel textarea { width: 100%; padding: 10px; border: 1px solid var(--line); border-radius: 9px; outline: 0; resize: none; font-size: 10px; }
.mobile-tool-panel textarea:focus { border-color: #91b0aa; box-shadow: 0 0 0 3px rgba(22,93,84,.07); }
.mobile-tool-panel .btn { min-height: 42px; margin-top: 7px; }

.service-options { display: grid; grid-template-columns: repeat(3,1fr); gap: 9px; }
.service-options label { position: relative; cursor: pointer; }
.service-options input { position: absolute; opacity: 0; pointer-events: none; }
.service-options span { display: flex; min-height: 122px; padding: 14px; border: 1px solid var(--line); border-radius: 11px; flex-direction: column; transition: .18s ease; }
.service-options span > i { margin-bottom: 13px; color: var(--brand); font-size: 21px; }
.service-options span strong { font-size: 10px; }
.service-options span small { margin-top: 5px; color: #899592; font-size: 8px; line-height: 1.4; }
.service-options input:checked + span { border-color: var(--brand); background: #f0f7f4; box-shadow: 0 0 0 2px rgba(22,93,84,.08); }
.response-time { color: #82908d; font-size: 9px; }
.response-time i { margin-right: 4px; color: var(--brand); }

.toast { color: var(--ink); border-radius: 12px; background: #fff; box-shadow: var(--shadow); }
.toast-body { display: flex; align-items: center; gap: 10px; padding: 13px; }
.toast-icon { display: grid; width: 31px; height: 31px; flex: 0 0 auto; place-items: center; color: #fff; border-radius: 8px; background: var(--brand); }
.toast-body > div { display: flex; flex-direction: column; }
.toast-body strong { font-size: 10px; }
.toast-body p { margin: 2px 0 0; color: #84918e; font-size: 8px; }

