:root {
  --navy: #102f52;
  --ink: #17324d;
  --muted: #6d8090;
  --blue: #1474b8;
  --teal: #12a9a1;
  --mint: #dff5ef;
  --paper: #f8fbfc;
  --line: #dce7eb;
  --white: #fff;
  --shadow: 0 20px 55px rgba(16, 47, 82, .1);
}
* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; color: var(--ink); background: var(--paper); font: 15px/1.6 "DM Sans", sans-serif; }
body::before { content: ""; position: fixed; inset: 0; pointer-events: none; opacity: .28; background-image: radial-gradient(#c7dbe0 .7px, transparent .7px); background-size: 19px 19px; mask-image: linear-gradient(to bottom, #000, transparent 55%); }
.page-noise { position: absolute; inset: 0 0 auto; height: 680px; z-index: -1; background: linear-gradient(112deg, #ecfaf8 0%, #f9fcfc 42%, #edf5fa 100%); clip-path: polygon(0 0,100% 0,100% 82%,73% 90%,40% 80%,0 91%); }
.section-wrap { width: min(1140px, calc(100% - 48px)); margin: auto; }
.site-header { height: 80px; width: min(1280px, calc(100% - 48px)); margin: auto; display: flex; align-items: center; justify-content: space-between; gap: 24px; }
.brand { display: flex; align-items: center; gap: 10px; color: var(--navy); text-decoration: none; font: 700 20px "Space Grotesk", sans-serif; letter-spacing: -.8px; }
.brand > span:last-child span { color: var(--teal); }
.brand-mark { width: 32px; height: 44px; display: block; object-fit: contain; }
.main-nav { display: flex; gap: 34px; margin-left: auto; margin-right: 35px; }
.main-nav a, .text-button { color: var(--muted); text-decoration: none; font-size: 13px; font-weight: 600; }
.main-nav a:hover, .text-button:hover { color: var(--blue); }
.header-actions { display: flex; align-items: center; gap: 22px; }
.button { border: 0; border-radius: 7px; background: var(--navy); color: white; padding: 13px 19px; font: 700 13px "DM Sans", sans-serif; cursor: pointer; transition: .2s ease; box-shadow: 0 9px 18px rgba(16,47,82,.12); }
.button:hover { background: var(--teal); transform: translateY(-2px); }
.button span { margin-left: 15px; font-size: 17px; line-height: 0; }
.button-small { padding: 10px 15px; text-decoration: none; }
.button-outline { color: var(--navy); border: 1px solid var(--line); background: transparent; box-shadow: none; }
.menu-button { display: none; min-width: 44px; min-height: 44px; padding: 0; border: 0; background: none; color: var(--navy); font-size: 22px; cursor: pointer; touch-action: manipulation; }
.hero { min-height: 530px; padding: 88px 0 82px; display: grid; grid-template-columns: 1.1fr .9fr; gap: 80px; align-items: center; }
.eyebrow, .mini-label, .card-kicker { color: var(--blue); font-size: 10px; font-weight: 700; letter-spacing: 1.8px; }
.eyebrow { display: flex; align-items: center; gap: 9px; margin: 0 0 19px; }
.eyebrow-dot { width: 7px; height: 7px; background: var(--teal); border-radius: 50%; box-shadow: 0 0 0 5px #d9f5ef; }
h1, h2, h3, p { margin-top: 0; }
h1, h2 { font-family: "Space Grotesk", sans-serif; letter-spacing: -2px; line-height: 1.05; }
h1 { max-width: 600px; margin-bottom: 24px; font-size: clamp(47px, 6vw, 76px); color: var(--navy); }
h1 span, h2 span { color: var(--teal); }
.hero-lede { max-width: 470px; margin-bottom: 30px; color: var(--muted); font-size: 16px; }
.hero-proof { display: flex; align-items: center; gap: 13px; color: var(--muted); font-size: 11px; font-weight: 600; }
.avatar-stack { display: flex; padding-left: 8px; }.avatar-stack span { display: grid; place-items: center; width: 27px; height: 27px; margin-left: -8px; color: white; border: 2px solid #f0faf9; border-radius: 50%; background: var(--blue); font-size: 8px; }.avatar-stack span:nth-child(2) { background: #e69363; }.avatar-stack span:nth-child(3) { background: #78a6a5; }.avatar-stack span:last-child { color: var(--navy); background: #d8efeb; }
.upload-card { padding: 24px; border: 1px solid rgba(255,255,255,.9); border-radius: 13px; background: rgba(255,255,255,.86); box-shadow: var(--shadow); }.upload-card-top { display: flex; justify-content: space-between; margin-bottom: 16px; }.mini-label { color: var(--teal); }.file-limit { color: #a0afb6; font-size: 11px; }.drop-zone { padding: 34px 14px 28px; text-align: center; border: 1px dashed #a6cfd0; border-radius: 8px; background: #f5fbfa; cursor: pointer; transition: .2s; }.drop-zone:hover, .drop-zone.is-dragging { background: #e8f8f4; border-color: var(--teal); }.upload-icon { display: grid; place-items: center; width: 43px; height: 43px; margin: 0 auto 12px; border-radius: 50%; background: var(--mint); }.upload-icon svg { width: 21px; fill: none; stroke: var(--teal); stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; }.drop-zone h2 { margin-bottom: 2px; font: 700 17px "Space Grotesk", sans-serif; letter-spacing: -.5px; }.drop-zone p { margin: 0 0 9px; color: var(--muted); font-size: 12px; }.drop-zone small { color: #9aadb2; font-size: 10px; }.inline-link { padding: 0; border: 0; background: none; color: var(--blue); font: inherit; cursor: pointer; text-decoration: underline; }.analyze-button { width: 100%; margin-top: 14px; }.analyze-button:disabled { opacity: .45; cursor: not-allowed; transform: none; }.privacy-note { margin: 15px 0 0; color: #91a2aa; text-align: center; font-size: 10px; }.privacy-note span { color: var(--teal); font-size: 15px; vertical-align: -1px; }.selected-file { display: flex; align-items: center; gap: 10px; padding: 12px; margin-top: 12px; border: 1px solid var(--line); border-radius: 7px; }.selected-file strong { display: block; max-width: 260px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 12px; }.selected-file small { color: var(--muted); font-size: 10px; }.selected-file button { margin-left: auto; border: 0; background: none; color: var(--muted); font-size: 20px; cursor: pointer; }.file-chip { padding: 5px 6px; border-radius: 4px; color: var(--blue); background: #e7f2fa; font-size: 9px; font-weight: 700; }.error-message { min-height: 0; margin: 8px 0 0; color: #c55252; text-align: center; font-size: 11px; }
.logo-strip { display: flex; align-items: center; justify-content: space-between; padding: 32px 0 72px; border-top: 1px solid var(--line); color: #9aabb3; font-size: 11px; }.logo-strip strong { color: #91a4ad; font: 700 16px "Space Grotesk", sans-serif; letter-spacing: -1px; }.logo-strip strong:first-of-type { color: var(--navy); }.logo-strip strong:last-child span { color: var(--teal); }
.feature-section { padding: 38px 0 105px; }.section-heading { max-width: 580px; margin-bottom: 45px; }.section-heading h2 { margin-bottom: 18px; font-size: clamp(35px, 4vw, 53px); }.section-heading > p:last-child { color: var(--muted); }.feature-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }.feature-card { min-height: 340px; padding: 28px; border: 1px solid var(--line); border-radius: 10px; background: rgba(255,255,255,.75); }.feature-wide { display: grid; grid-template-columns: .9fr 1.1fr; grid-column: 1/-1; align-items: center; min-height: 300px; background: #e7f7f2; border-color: #d7eee8; }.feature-card h3 { margin: 15px 0 10px; font: 700 25px/1.12 "Space Grotesk", sans-serif; letter-spacing: -1px; }.feature-card p { max-width: 245px; color: var(--muted); font-size: 12px; }.card-kicker { color: var(--blue); }.card-kicker.teal { color: var(--teal); }.card-kicker.navy { color: var(--navy); }.insight-preview { padding: 25px; border-radius: 9px; background: white; box-shadow: 0 14px 30px rgba(40,101,99,.08); }.insight-preview span { color: var(--muted); font-size: 9px; letter-spacing: 1.5px; }.insight-preview strong { display: block; margin: 5px 0 20px; font: 600 18px "Space Grotesk", sans-serif; }.insight-preview strong b { color: var(--teal); }.sparkline { display: flex; align-items: end; gap: 7px; height: 45px; border-bottom: 1px solid var(--line); }.sparkline i { width: 12px; height: 18px; border-radius: 3px 3px 0 0; background: #a9dfd4; }.sparkline i:nth-child(2) { height: 27px; }.sparkline i:nth-child(3) { height: 22px; }.sparkline i:nth-child(4) { height: 35px; }.sparkline i:nth-child(5) { height: 30px; }.sparkline i:nth-child(6) { height: 39px; background: var(--teal); }.sparkline i:nth-child(7) { height: 43px; background: var(--blue); }.sparkline small { display: block; margin-top: 10px; color: var(--muted); font-size: 9px; }.sparkline small b { color: var(--teal); }.chart-preview { display: flex; align-items: end; gap: 12px; height: 130px; padding: 20px 15px 25px 30px; margin: 30px 0 22px; position: relative; border-bottom: 1px solid #c9dade; background: repeating-linear-gradient(to top, transparent 0 31px, #e7eff1 32px); }.chart-preview i { display: block; width: 18px; border-radius: 3px 3px 0 0; background: #b5dfdf; }.chart-preview i:nth-of-type(3n) { background: var(--teal); }.chart-axis { position: absolute; color: #9aaeb4; font-size: 8px; }.chart-axis.y { left: 4px; top: 2px; }.chart-axis.x { left: 28px; bottom: 4px; }.donut-preview { display: grid; place-items: center; width: 135px; height: 135px; margin: 27px auto 20px; position: relative; border-radius: 50%; background: conic-gradient(var(--teal) 0 73%, #dfeff0 73%); }.donut-preview::after { content: ""; position: absolute; inset: 16px; border-radius: 50%; background: white; }.donut-preview span { z-index: 1; font: 700 22px "Space Grotesk", sans-serif; }.donut-preview small { display: block; color: var(--muted); font: 9px "DM Sans", sans-serif; text-align: center; }.feature-card:last-child h3, .feature-card:last-child p { text-align: center; margin-left: auto; margin-right: auto; }
.steps-section { padding: 100px 0; background: var(--navy); color: white; }.steps-section .section-heading { margin-bottom: 55px; }.steps-section .eyebrow { color: #6fd4cb; }.steps-section .section-heading h2 { color: white; }.steps-section .section-heading > p:last-child { color: #adc2ce; }.steps-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 75px; }.step { border-top: 1px solid #476078; padding-top: 20px; }.step b { color: #6fd4cb; font-size: 11px; }.step h3 { margin: 22px 0 7px; font: 600 25px "Space Grotesk", sans-serif; }.step p { max-width: 210px; color: #a9bdc8; font-size: 13px; }
.pricing-section { padding: 105px 0 120px; }.section-heading.compact { margin-bottom: 45px; }.pricing-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 16px; }.pricing-grid article { padding: 28px; border: 1px solid var(--line); border-radius: 9px; background: white; }.pricing-grid article > span { color: var(--blue); font-size: 10px; font-weight: 700; letter-spacing: 1.5px; }.pricing-grid article strong { display: inline-block; margin: 25px 4px 20px 0; font: 700 43px "Space Grotesk", sans-serif; }.pricing-grid article > small { color: var(--muted); }.pricing-grid article p { margin: 9px 0; color: var(--muted); font-size: 12px; }.pricing-grid article .button { width: 100%; margin-top: 20px; }.pricing-featured { border: 2px solid var(--teal) !important; position: relative; box-shadow: var(--shadow); }.pricing-featured > span { color: var(--teal) !important; }.pricing-featured > span b { margin-left: 9px; padding: 4px 6px; border-radius: 3px; color: var(--teal); background: var(--mint); font-size: 8px; }.site-footer { padding: 45px 0; border-top: 1px solid var(--line); background: white; }.site-footer .section-wrap { display: grid; grid-template-columns: auto 1fr 2fr; align-items: center; gap: 18px 28px; }.site-footer p, .site-footer small { color: var(--muted); font-size: 11px; }.site-footer p { text-align: center; }.site-footer small { grid-column: 1 / -1; text-align: right; }.footer-links { display: flex; justify-content: flex-end; flex-wrap: wrap; gap: 8px 16px; }.footer-links a { color: var(--muted); font-size: 11px; text-decoration: none; }.footer-links a:hover { color: var(--blue); }
.policy-page { width: min(900px, calc(100% - 48px)); margin: 45px auto 90px; padding: clamp(24px, 5vw, 58px); border: 1px solid var(--line); border-radius: 12px; background: rgba(255,255,255,.94); box-shadow: var(--shadow); }.policy-page h1 { max-width: none; margin: 0 0 12px; font-size: clamp(38px, 5vw, 56px); }.policy-page .policy-updated, .policy-page .policy-intro { color: var(--muted); }.policy-page .policy-updated { margin-bottom: 32px; font-size: 12px; }.policy-index { display: flex; flex-wrap: wrap; gap: 10px; padding: 18px; margin-bottom: 38px; border-radius: 8px; background: #f2f8f8; }.policy-index a { color: var(--blue); font-size: 12px; font-weight: 600; }.policy-section { padding: 28px 0; border-top: 1px solid var(--line); scroll-margin-top: 24px; }.policy-section h2 { margin-bottom: 16px; color: var(--navy); font-size: 27px; letter-spacing: -1px; }.policy-section h3 { margin: 22px 0 8px; color: var(--navy); font: 700 16px "Space Grotesk", sans-serif; }.policy-section p, .policy-section li { color: var(--muted); font-size: 14px; }.policy-section ul { padding-left: 22px; }.policy-section li + li { margin-top: 7px; }.policy-section a { color: var(--blue); }.policy-back { color: var(--blue); font-size: 13px; font-weight: 600; text-decoration: none; }
.section-heading.compact > .pricing-intro { color: var(--muted); }
#subscription-management[hidden], #cancel-subscription[hidden] { display: none; }
.currency-pricing { display: grid; gap: 42px; }.currency-label { display: block; margin-bottom: 15px; color: var(--navy); font-size: 11px; font-weight: 700; letter-spacing: 2px; }
.dashboard { padding: 74px 0 100px; }.dashboard[hidden] { display: none; }.dashboard-header { display: flex; align-items: end; justify-content: space-between; margin-bottom: 30px; }.dashboard-header h2 { margin: 0; font-size: 43px; }.stats-grid { display: grid; grid-template-columns: repeat(5,1fr); gap: 12px; margin-bottom: 16px; }.stat-card, .dash-panel { padding: 21px; border: 1px solid var(--line); border-radius: 9px; background: white; }.stat-card small { display: block; color: var(--muted); font-size: 10px; }.stat-card strong { display: block; margin-top: 11px; color: var(--navy); font: 700 25px "Space Grotesk", sans-serif; }.stat-card span { color: var(--teal); font-size: 18px; }.dashboard-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }.wide-panel { grid-column: 1/-1; }.panel-heading { display: flex; justify-content: space-between; align-items: start; margin-bottom: 21px; }.panel-heading h3 { margin: 7px 0 0; font: 700 19px "Space Grotesk", sans-serif; }.quality-score { color: var(--teal); font: 700 35px "Space Grotesk", sans-serif; }.quality-bar { height: 9px; overflow: hidden; border-radius: 9px; background: #e5eeee; }.quality-bar span { display: block; width: 0; height: 100%; border-radius: inherit; background: linear-gradient(90deg, var(--blue), var(--teal)); transition: width 1s ease; }.dash-panel > p { margin: 14px 0 0; color: var(--muted); font-size: 12px; }.missing-row { display: grid; grid-template-columns: 100px 1fr 35px; align-items: center; gap: 10px; margin: 12px 0; font-size: 11px; }.missing-row > div { height: 6px; border-radius: 5px; background: #e9f0f0; }.missing-row i { display: block; height: 100%; border-radius: inherit; background: var(--teal); }.missing-row b { text-align: right; font-size: 10px; }.insights-list { display: grid; grid-template-columns: repeat(3,1fr); gap: 10px; }.insight-item { padding: 14px; border-left: 3px solid var(--teal); background: #f4fbfa; font-size: 12px; }.charts-grid { display: grid; grid-template-columns: repeat(2,1fr); gap: 15px; }.plot { min-height: 300px; }.table-search { width: 160px; padding: 9px 11px; border: 1px solid var(--line); border-radius: 5px; outline: 0; font: 11px "DM Sans", sans-serif; }.table-scroll { overflow: auto; }.data-table { width: 100%; border-collapse: collapse; font-size: 11px; white-space: nowrap; }.data-table th { color: var(--muted); background: #f5f9fa; font-size: 10px; text-align: left; }.data-table th, .data-table td { padding: 11px 12px; border-bottom: 1px solid #edf2f3; }.download-bar { display: flex; align-items: center; justify-content: space-between; gap: 20px; padding: 24px 28px; margin-top: 16px; border-radius: 9px; background: var(--mint); }.download-bar strong, .download-bar span { display: block; }.download-bar strong { font: 700 18px "Space Grotesk", sans-serif; }.download-bar span { color: var(--muted); font-size: 12px; }
@media (max-width: 800px) { .main-nav, .header-actions { display: none; }.site-header.is-menu-open { position: relative; z-index: 20; }.site-header.is-menu-open .main-nav { position: absolute; top: calc(100% - 2px); right: 0; z-index: 1; display: flex; flex-direction: column; gap: 0; min-width: 210px; margin: 0; padding: 8px 0; border: 1px solid var(--line); border-radius: 8px; background: white; box-shadow: var(--shadow); }.site-header.is-menu-open .main-nav a { display: block; padding: 10px 16px; }.menu-button { display: grid; place-items: center; }.hero { grid-template-columns: 1fr; gap: 40px; padding: 60px 0; }.hero-copy { max-width: 620px; }.logo-strip { flex-wrap: wrap; gap: 20px; }.feature-wide { grid-template-columns: 1fr; gap: 20px; }.steps-grid, .pricing-grid { gap: 15px; }.stats-grid { grid-template-columns: repeat(3,1fr); }.site-footer .section-wrap { grid-template-columns: 1fr; gap: 10px; }.site-footer p, .site-footer small { grid-column: auto; text-align: left; }.footer-links { justify-content: flex-start; }.charts-grid, .insights-list { grid-template-columns: 1fr; } }
@media (max-width: 520px) { .section-wrap, .site-header { width: min(100% - 30px, 1140px); }.hero { padding-top: 44px; }.hero h1 { font-size: 47px; }.feature-grid, .dashboard-grid, .pricing-grid { grid-template-columns: 1fr; }.feature-wide, .wide-panel { grid-column: auto; }.steps-grid { grid-template-columns: 1fr; gap: 25px; }.stats-grid { grid-template-columns: repeat(2,1fr); }.dashboard-header { align-items: start; flex-direction: column; gap: 20px; }.dashboard-header h2 { font-size: 35px; }.download-bar { align-items: start; flex-direction: column; }.logo-strip { justify-content: flex-start; }.logo-strip span { width: 100%; } }

.text-button { border: 0; padding: 0; background: transparent; cursor: pointer; }
.usage-badge { padding: 6px 9px; border: 1px solid #bfe6df; border-radius: 999px; color: var(--teal); background: #effaf7; font-size: 10px; font-weight: 700; white-space: nowrap; }
.overview-panel { padding: 22px; background: rgba(255,255,255,.9); box-shadow: 0 14px 35px rgba(16,47,82,.06); }
.overview-panel .overview-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; }
.overview-panel .summary-card { min-height: 92px; padding: 15px; border: 1px solid var(--line); border-radius: 9px; background: #fbfefe; }
.overview-panel .summary-icon { display: block; margin-bottom: 5px; color: var(--teal); font-size: 17px; }
.auth-modal { position: fixed; inset: 0; z-index: 20; display: grid; place-items: center; padding: 20px; background: rgba(16,47,82,.42); }
.auth-modal[hidden], .payment-modal[hidden] { display: none; }
.auth-dialog { position: relative; width: min(100%, 430px); max-height: calc(100vh - 40px); overflow-y: auto; padding: 34px; border: 1px solid var(--line); border-radius: 13px; background: #fff; box-shadow: 0 24px 70px rgba(16,47,82,.25); }
.auth-dialog [hidden] { display: none !important; }
.auth-dialog h2 { margin: 0 0 10px; color: var(--navy); font-size: 32px; }
.auth-dialog > p:not(.eyebrow):not(.auth-message) { color: var(--muted); font-size: 13px; }
.auth-dialog #auth-subtitle:empty { display: none; }
.auth-close { position: absolute; top: 14px; right: 18px; border: 0; background: none; color: var(--muted); font-size: 25px; cursor: pointer; }
.auth-tabs { display: flex; gap: 20px; margin: 24px 0 18px; border-bottom: 1px solid var(--line); }
.auth-tabs:has(.auth-tab[hidden]) { display: none; }
.auth-tab { padding: 0 0 10px; border: 0; border-bottom: 2px solid transparent; background: none; color: var(--muted); font: 700 12px "DM Sans", sans-serif; cursor: pointer; }
.auth-tab.is-active { border-bottom-color: var(--teal); color: var(--navy); }
.auth-dialog label { display: block; margin: 13px 0; color: var(--navy); font-size: 11px; font-weight: 700; }
.auth-dialog input { display: block; width: 100%; margin-top: 6px; padding: 11px 12px; border: 1px solid var(--line); border-radius: 6px; color: var(--ink); font: inherit; }
.auth-dialog input:focus, .auth-dialog select:focus { outline: 2px solid #bfe6df; border-color: var(--teal); }
.auth-dialog form .button { width: 100%; margin-top: 10px; }
.auth-forgot-link { display: block; margin: 2px 0 12px; }
.auth-message { min-height: 20px; margin: 15px 0 0; color: #b33a35; font-size: 12px; }
.auth-dialog .button:disabled { opacity: .65; cursor: wait; }
.auth-link { margin-top: 15px; padding: 0; border: 0; background: transparent; color: var(--blue); font: 600 11px "DM Sans", sans-serif; cursor: pointer; text-decoration: underline; }
.auth-options { display: grid; gap: 10px; margin-top: 24px; }
.auth-provider { display: flex; align-items: center; justify-content: center; gap: 11px; width: 100%; min-height: 46px; padding: 10px 14px; border: 1px solid var(--line); border-radius: 7px; color: var(--navy); background: #fff; font: 700 12px "DM Sans", sans-serif; cursor: pointer; transition: .2s ease; }
.auth-provider:hover { border-color: #b8cbd3; background: #f8fbfc; }
.provider-icon { display: block; width: 19px; height: 19px; flex: 0 0 19px; }
.auth-email-choice { width: 100%; min-height: 46px; margin-top: 2px; }
.auth-provider-row { display: grid; grid-template-columns: 1fr; gap: 10px; }
.auth-divider { display: flex; align-items: center; gap: 12px; margin: 17px 0 14px; color: #9aabb3; font-size: 10px; font-weight: 700; letter-spacing: 1.3px; }
.auth-divider::before, .auth-divider::after { content: ""; height: 1px; flex: 1; background: var(--line); }
.auth-divider span { padding: 0 2px; }
.auth-switch { margin: 19px 0 0; color: var(--muted); text-align: center; font-size: 11px; }
.auth-switch .auth-link { margin: 0 0 0 4px; font-size: inherit; }
.auth-switch[hidden], .auth-social-login[hidden], .auth-options[hidden] { display: none; }
@media (max-width: 440px) { .auth-dialog { padding: 28px 22px; }.auth-provider-row .auth-provider { justify-content: flex-start; padding-left: 18px; } }
.field-hint { display: block; margin-top: 5px; color: var(--muted); font-size: 10px; font-weight: 400; }
.payment-modal { position: fixed; inset: 0; z-index: 21; display: grid; place-items: center; padding: 20px; background: rgba(16,47,82,.42); }
.payment-dialog { position: relative; width: min(100%, 540px); padding: 38px; border: 1px solid var(--line); border-radius: 16px; background: #fff; box-shadow: 0 24px 70px rgba(16,47,82,.25); }
.payment-dialog h2 { margin: 0 0 10px; color: var(--navy); font-size: 30px; }
.payment-dialog > p:not(.eyebrow):not(.payment-message) { color: var(--muted); font-size: 13px; }
.checkout-plan-card { display: flex; align-items: center; justify-content: space-between; gap: 18px; margin: 25px 0; padding: 20px; border: 1px solid var(--line); border-radius: 11px; background: linear-gradient(120deg, #f1fbf9, #f5f9fc); }
.checkout-plan-label { color: var(--navy); font: 700 14px "Space Grotesk", sans-serif; }
.checkout-plan-card #payment-amount { margin: 6px 0 0; color: var(--ink); font-size: 15px; font-weight: 600; }
.checkout-plan-badge { flex: 0 0 auto; padding: 6px 9px; border-radius: 20px; background: #dff5ef; color: #16766c; font-size: 9px; font-weight: 700; letter-spacing: .7px; }
.checkout-methods { margin: 23px 0; }
.checkout-section-title { margin: 0 0 10px; color: var(--navy); font-size: 12px; font-weight: 700; }
.checkout-methods ul { display: flex; flex-wrap: wrap; gap: 8px; margin: 0; padding: 0; list-style: none; }
.checkout-methods li { padding: 7px 11px; border: 1px solid var(--line); border-radius: 7px; background: #fff; color: var(--ink); font-size: 11px; font-weight: 600; }
.payment-dialog form > .button { width: 100%; margin-top: 10px; }
.payment-note { margin: 15px 0; color: var(--muted); font-size: 11px; }
.payment-message { min-height: 20px; margin: 14px 0 0; color: var(--teal); font-size: 12px; }
.checkout-security-note { margin: 18px 0 0; color: var(--muted); font-size: 10px; line-height: 1.6; text-align: center; }
@media (max-width: 540px) { .payment-dialog { padding: 30px 22px; } .checkout-plan-card { align-items: flex-start; flex-direction: column; gap: 10px; } }
@media (max-width: 800px) { .overview-panel .overview-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }

/* Analysis workspace */
.dashboard { width: min(1220px, calc(100% - 48px)); padding-top: 72px; }
.dashboard-header { margin-bottom: 32px; }
.dashboard-header .eyebrow { margin-bottom: 14px; }
.dashboard-header h2 { max-width: 760px; color: var(--navy); font-size: clamp(38px, 5vw, 60px); line-height: 1.02; }
.dashboard-content { display: flex; flex-direction: column; gap: 18px; }
.analysis-panel { padding: 25px; border: 1px solid #dce7eb; border-radius: 14px; background: rgba(255,255,255,.9); box-shadow: 0 14px 35px rgba(16,47,82,.055); }
.panel-header { display: flex; align-items: flex-start; justify-content: space-between; gap: 18px; margin-bottom: 18px; }
.panel-header h3 { margin: 7px 0 0; color: var(--navy); font: 700 25px/1.12 "Space Grotesk", sans-serif; letter-spacing: -.7px; }
.overview-panel { padding: 26px; }
.overview-panel .overview-grid { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 14px; }
.overview-panel .summary-card { min-width: 0; min-height: 154px; padding: 17px; border: 1px solid #e1ebee; border-radius: 12px; background: #fff; box-shadow: 0 8px 20px rgba(16,47,82,.045); }
.overview-panel .summary-icon { display: grid; place-items: center; width: 39px; height: 39px; margin-bottom: 16px; border-radius: 10px; background: #e6f8f4; font-size: 18px; }
.overview-panel .summary-card small { display: block; overflow: hidden; color: #748a9a; font-size: 10px; font-weight: 700; letter-spacing: 1px; text-overflow: ellipsis; text-transform: uppercase; white-space: nowrap; }
.overview-panel .summary-card strong { display: block; margin-top: 10px; overflow-wrap: anywhere; color: var(--navy); font: 700 20px/1.2 "Space Grotesk", sans-serif; }
.table-scroll { max-height: 390px; overflow: auto; border: 1px solid #e1ebee; border-radius: 10px; background: #fff; }
.data-table, .mini-table { min-width: 680px; border-collapse: separate; border-spacing: 0; }
.data-table th, .mini-table th { position: sticky; top: 0; z-index: 1; background: #f1f7f8; color: #23445d; font-size: 10px; font-weight: 700; letter-spacing: .9px; text-transform: uppercase; }
.data-table td, .mini-table td { color: #35556c; font-size: 12px; }
.data-table th, .data-table td, .mini-table th, .mini-table td { padding: 12px 13px; border-bottom: 1px solid #edf2f4; text-align: left; vertical-align: middle; }
.data-table tbody tr:last-child td, .mini-table tbody tr:last-child td { border-bottom: 0; }
.data-table tbody tr:hover td, .mini-table tbody tr:hover td { background: #f8fcfc; }
.panel-tools .table-search { min-width: 170px; padding: 10px 12px; border: 1px solid #dce7eb; border-radius: 7px; color: var(--ink); background: #fff; font: 12px "DM Sans", sans-serif; }
.cleaning-actions { display: flex; flex-wrap: wrap; gap: 10px; margin-bottom: 18px; }
.cleaning-actions .button { padding: 10px 13px; font-size: 11px; }
.missing-table-wrap { overflow: auto; border: 1px solid #e1ebee; border-radius: 10px; }
.missing-table-wrap .mini-table { min-width: 520px; }
.missing-visual { margin-top: 20px; }
.charts-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
.charts-grid .plot, .heatmap-panel .plot, .graph-output .plot { min-height: 330px; overflow: hidden; border: 1px solid #e1ebee; border-radius: 11px; background: #fff; }
.charts-grid .plot .js-plotly-plot, .heatmap-panel .plot .js-plotly-plot, .graph-output .plot .js-plotly-plot { width: 100% !important; }
.heatmap-panel { margin-top: 16px; }
.quality-panel { background: linear-gradient(110deg, #f2fbf8, #fff); }
.quality-score-wrap { min-height: 125px; display: grid; grid-template-columns: 150px 1fr; align-items: center; gap: 34px; }
.quality-score-ring { width: 108px; height: 108px; flex: 0 0 108px; }
.quality-copy { width: 100%; }
.quality-copy h4 { margin: 13px 0 3px; color: var(--navy); font: 700 20px "Space Grotesk", sans-serif; }
.custom-graph-controls { display: grid; grid-template-columns: 1fr 1fr 1fr auto; align-items: end; gap: 13px; margin-bottom: 18px; }
.custom-graph-controls label { color: var(--muted); font-size: 11px; font-weight: 700; }
.custom-graph-controls select { display: block; width: 100%; margin-top: 6px; padding: 11px 12px; border: 1px solid #dce7eb; border-radius: 7px; color: var(--ink); background: #fff; font: 12px "DM Sans", sans-serif; }
.graph-output { overflow: hidden; border: 1px solid #e1ebee; border-radius: 11px; background: #fff; }
.download-bar { margin-top: 22px; padding: 21px 25px; border: 1px solid #ccebe4; border-radius: 12px; background: #e5f7f2; }
.download-bar strong { display: block; color: var(--navy); font: 700 17px "Space Grotesk", sans-serif; }
.download-bar span { color: var(--muted); font-size: 12px; }
@media (max-width: 980px) { .overview-panel .overview-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }.custom-graph-controls { grid-template-columns: 1fr 1fr; }.custom-graph-controls .button { min-height: 42px; } }
@media (max-width: 680px) { .dashboard { width: min(100% - 30px, 1220px); padding-top: 45px; }.analysis-panel, .overview-panel { padding: 18px; }.overview-panel .overview-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }.overview-panel .summary-card { min-height: 130px; padding: 13px; }.overview-panel .summary-icon { margin-bottom: 11px; }.panel-header { flex-direction: column; gap: 8px; }.panel-tools, .panel-tools .table-search { width: 100%; }.charts-grid { grid-template-columns: 1fr; }.charts-grid .plot, .heatmap-panel .plot, .graph-output .plot { min-height: 280px; }.custom-graph-controls { grid-template-columns: 1fr; }.quality-score-wrap { align-items: flex-start; flex-direction: column; } }

/* Data quality and action states */
.quality-score-ring { --quality-score: 0%; background: conic-gradient(var(--teal) var(--quality-score), #dfecef 0); box-shadow: 0 0 0 1px rgba(18,169,161,.05); }
.quality-score-ring::after { content: ""; position: absolute; inset: -8px; border: 1px solid rgba(18,169,161,.18); border-radius: 50%; }
.quality-copy .quality-bar { height: 12px; padding: 2px; background: #dfecef; }
.quality-copy .quality-bar span { border-radius: 7px; }
.missing-visual { display: grid; gap: 15px; padding: 18px; border: 1px solid #e1ebee; border-radius: 10px; background: #fbfefe; }
.missing-bar-row { display: grid; gap: 7px; }
.missing-meta { display: flex; justify-content: space-between; gap: 15px; color: var(--navy); font-size: 12px; }
.missing-meta b { color: var(--navy); font-size: 12px; }
.missing-meta small { color: var(--muted); font-size: 10px; font-weight: 500; }
.missing-bar { height: 8px; overflow: hidden; border-radius: 8px; background: #e7eff2; }
.missing-bar i { display: block; height: 100%; min-width: 0; border-radius: inherit; background: linear-gradient(90deg, var(--blue), var(--teal)); }
.insights-list { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 14px; }
.insight-item { position: relative; min-height: 126px; padding: 20px 18px 18px 48px; border: 1px solid #dcefeb; border-left: 3px solid var(--teal); border-radius: 10px; background: linear-gradient(135deg, #f1fbf8, #fbfefe); color: #234b63; font-size: 13px; line-height: 1.55; }
.insight-item::before { content: "i"; position: absolute; top: 18px; left: 16px; display: grid; place-items: center; width: 21px; height: 21px; border-radius: 50%; color: white; background: var(--teal); font: 700 13px "Space Grotesk", sans-serif; }
.insight-item:nth-child(2) { border-left-color: var(--blue); background: linear-gradient(135deg, #f1f8fc, #fbfefe); }
.insight-item:nth-child(2)::before { background: var(--blue); }
.insight-item:nth-child(3) { border-left-color: #6a78c8; background: linear-gradient(135deg, #f4f5fc, #fbfefe); }
.insight-item:nth-child(3)::before { background: #6a78c8; }
.insight-item:nth-child(4) { border-left-color: #e39a5c; background: linear-gradient(135deg, #fff8f0, #fffefe); }
.insight-item:nth-child(4)::before { background: #e39a5c; }
.duplicate-summary { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; margin-bottom: 16px; }
.dup-card { position: relative; min-height: 118px; padding: 19px; border: 1px solid #dce7eb; border-radius: 11px; background: linear-gradient(135deg, #fbfefe, #f3faf9); }
.dup-card .dup-icon { position: absolute; top: 18px; right: 18px; display: grid; place-items: center; width: 25px; height: 25px; border-radius: 50%; color: var(--teal); background: #dff5ef; font-weight: 700; }
.dup-card strong { display: block; margin: 5px 0 4px; color: var(--navy); font: 700 34px "Space Grotesk", sans-serif; }
.dup-card > span:last-child { color: var(--muted); font-size: 11px; }
.recommendations-list { display: grid; gap: 12px; }
.recommendation { display: flex; align-items: center; gap: 14px; min-height: 66px; padding: 14px 16px; border: 1px solid #dce7eb; border-radius: 10px; background: #fff; }
.recommendation p { flex: 1; margin: 0; color: #3d6077; font-size: 13px; line-height: 1.45; }
.recommendation.high-priority { border-left: 4px solid #e96c67; background: #fffafa; }
.recommendation.medium-priority { border-left: 4px solid var(--blue); background: #fafdff; }
.recommendation.low-priority { border-left: 4px solid var(--teal); background: #f7fcfb; }
.recommendation.high-priority span { color: #c94e4a; background: #fde7e5; }
.recommendation.medium-priority span { color: var(--blue); background: #e6f2fb; }
.recommendation.low-priority span { color: var(--teal); background: #dff5ef; }
@media (max-width: 1050px) { .insights-list { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 680px) { .insights-list, .duplicate-summary { grid-template-columns: 1fr; }.quality-score-wrap { grid-template-columns: 1fr; gap: 20px; }.recommendation { align-items: flex-start; flex-direction: column; gap: 8px; } }

.quality-score-wrap { grid-template-columns: 160px 1fr; gap: 34px; }
.quality-score-ring { position: relative; width: 150px; height: 150px; flex-basis: 150px; display: grid; place-items: center; border-radius: 50%; background: conic-gradient(from -90deg, var(--blue) 0%, var(--teal) var(--quality-score), #deebef var(--quality-score) 100%) !important; box-shadow: none; transition: background .6s ease; }
.quality-score-ring::before { content: ""; position: absolute; inset: 14px; border-radius: 50%; background: #fff; }
.quality-score-ring::after { inset: -1px; border: 0; }
.quality-score-ring strong { position: relative; z-index: 1; color: var(--navy); font: 700 29px/1 "Space Grotesk", sans-serif; letter-spacing: -1.4px; white-space: nowrap; }
.register-location { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.register-location[hidden] { display: none; }
.auth-dialog select { display: block; width: 100%; margin-top: 6px; padding: 11px 12px; border: 1px solid var(--line); border-radius: 6px; color: var(--ink); background: #fff; font: inherit; }
@media (max-width: 680px) { .quality-score-wrap { grid-template-columns: 1fr; gap: 20px; }.quality-score-ring { width: 145px; height: 145px; flex-basis: 145px; }.register-location { grid-template-columns: 1fr; gap: 0; } }

.workspace-switcher { display: grid; grid-template-columns: 1fr 1fr; gap: 5px; margin-bottom: 18px; padding: 5px; border-radius: 8px; background: #edf5f5; }
.workspace-tab { padding: 10px 12px; border: 0; border-radius: 5px; background: transparent; color: var(--muted); font: 700 11px "DM Sans", sans-serif; cursor: pointer; }
.workspace-tab.is-active { color: var(--navy); background: white; box-shadow: 0 2px 8px rgba(16,47,82,.08); }
.compare-workspace[hidden], #single-analysis-workspace[hidden] { display: none; }
.compare-intro { display: flex; align-items: end; justify-content: space-between; gap: 16px; margin: 5px 0 20px; }
.compare-intro h2 { margin: 7px 0 0; color: var(--navy); font-size: 27px; }
.compare-file-grid { display: grid; grid-template-columns: 1fr 30px 1fr; align-items: center; gap: 9px; }
.compare-file-card { display: flex; min-width: 0; min-height: 154px; flex-direction: column; padding: 17px; border: 1px dashed #9bc8ca; border-radius: 9px; background: #f5fbfa; cursor: pointer; transition: .2s ease; }
.compare-file-card:hover, .compare-file-card:focus-within { border-color: var(--teal); background: #eaf8f5; transform: translateY(-2px); }
.compare-file-index { color: var(--teal); font: 700 10px "Space Grotesk", sans-serif; letter-spacing: 1px; }
.compare-file-card strong { margin-top: 17px; color: var(--navy); font: 700 15px "Space Grotesk", sans-serif; }
.compare-file-name { display: block; overflow: hidden; margin-top: 5px; color: var(--muted); font-size: 11px; text-overflow: ellipsis; white-space: nowrap; }
.compare-file-action { margin-top: auto; color: var(--blue); font-size: 10px; font-weight: 700; }
.compare-file-action b { margin-left: 4px; font-size: 13px; }
.compare-arrow { display: grid; place-items: center; width: 28px; height: 28px; border-radius: 50%; color: var(--teal); background: var(--mint); font-weight: 700; }
.compare-result { margin-top: 20px; padding: 17px; border: 1px solid #ccebe4; border-radius: 9px; background: #f4fbf9; }
.compare-result-heading { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; margin-bottom: 13px; }
.compare-result-heading strong { color: var(--navy); font: 700 13px "Space Grotesk", sans-serif; }
.compare-summary { display: grid; grid-template-columns: repeat(4, 1fr); gap: 7px; }
.compare-summary > div { padding: 10px; border: 1px solid #dcefeb; border-radius: 6px; background: white; }
.compare-summary small { display: block; color: var(--muted); font-size: 9px; line-height: 1.2; }
.compare-summary strong { display: block; margin-top: 5px; color: var(--navy); font: 700 20px "Space Grotesk", sans-serif; }
.compare-change-list { display: grid; gap: 6px; margin-top: 12px; }
.compare-change-list p { margin: 0; color: var(--muted); font-size: 11px; }
.compare-change-item { display: grid; gap: 3px; padding: 9px 10px; border-left: 3px solid var(--teal); background: white; }
.compare-change-item strong { color: var(--navy); font-size: 10px; }
.compare-change-item span { overflow: hidden; color: var(--muted); font-size: 10px; text-overflow: ellipsis; white-space: nowrap; }
@media (max-width: 600px) { .compare-file-grid { grid-template-columns: 1fr; }.compare-arrow { margin: -3px auto; transform: rotate(90deg); }.compare-summary { grid-template-columns: repeat(2, 1fr); }.compare-intro { align-items: start; flex-direction: column; gap: 5px; } }

.analysis-domain-label { display: block; margin-bottom: 15px; color: var(--navy); font-size: 11px; font-weight: 700; }
.analysis-domain-label select { display: block; width: 100%; margin-top: 6px; padding: 11px 12px; border: 1px solid var(--line); border-radius: 6px; color: var(--ink); background: white; font: 13px "DM Sans", sans-serif; }
.analysis-domain-label select:focus, .ask-data-controls input:focus { outline: 2px solid #bfe6df; border-color: var(--teal); }
.domain-focus-header { align-items: end; }
.domain-mode-control { display: flex; align-items: end; gap: 9px; }
.domain-mode-control .analysis-domain-label { width: 190px; margin: 0; }
.domain-mode-control .button { white-space: nowrap; }
#domain-focus-error:empty { display: none; }
.domain-focus-list { display: grid; gap: 8px; margin: 0; padding: 0; list-style: none; }
.domain-focus-list li { padding: 11px 13px; border-left: 3px solid var(--teal); background: #f4fbfa; color: #35556c; font-size: 12px; }
.ask-data-form > label { display: block; margin-bottom: 6px; color: var(--navy); font-size: 11px; font-weight: 700; }
.question-suggestion-picker { display: block; margin: 0 0 13px; color: var(--navy); font-size: 11px; font-weight: 700; }
.question-suggestion-picker select { display: block; width: 100%; height: 8rem; margin-top: 6px; padding: 5px 8px; overflow-y: auto; border: 1px solid var(--line); border-radius: 7px; color: var(--ink); background: white; font: 12px/1.45 "DM Sans", sans-serif; }
.question-suggestion-picker option { padding: 3px 5px; }
.question-suggestion-picker select:focus { outline: 2px solid #bfe6df; border-color: var(--teal); }
.ask-data-controls { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 10px; }
.ask-data-controls input { min-width: 0; padding: 12px 13px; border: 1px solid var(--line); border-radius: 7px; color: var(--ink); background: white; font: 13px "DM Sans", sans-serif; }
.ask-data-controls .button { min-width: 120px; }
.ask-data-controls .button:disabled { opacity: .6; cursor: progress; }
#ask-data-error:empty { display: none; }
.ask-data-result { margin-top: 24px; padding-top: 23px; border-top: 1px solid var(--line); }
.ask-data-result[hidden], .ask-data-chart[hidden] { display: none; }
.ask-answer-block p { margin: 8px 0 0; color: var(--navy); font: 600 17px/1.5 "Space Grotesk", sans-serif; }
.ask-calculation { margin: 17px 0 0; padding: 12px 14px; border-left: 3px solid var(--blue); background: #f1f7fa; color: #35556c; font-size: 12px; }
.ask-data-chart { width: 100%; height: 280px; min-width: 0; min-height: 0; margin-top: 14px; overflow: hidden; }
.ask-evidence { margin-top: 18px; }
.ask-evidence h4 { margin: 0; color: var(--navy); font: 700 16px "Space Grotesk", sans-serif; }
.ask-evidence > p { margin: 3px 0 12px; color: var(--muted); font-size: 10px; }
@media (max-width: 600px) { .domain-focus-header { align-items: start; flex-direction: column; }.domain-mode-control { width: 100%; align-items: end; }.domain-mode-control .analysis-domain-label { flex: 1; width: auto; }.ask-data-controls { grid-template-columns: 1fr; }.ask-data-controls .button { width: 100%; }.ask-data-chart { height: 240px; } }
