:root {
  --ink: #142033;
  --muted: #687487;
  --line: #dbe1e8;
  --soft: #f4f6f8;
  --paper: #ffffff;
  --nav: #0a1725;
  --teal: #14a88f;
  --teal-dark: #087a69;
  --gold: #bd8d22;
  --danger: #b6453e;
  --radius: 6px;
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  color: var(--ink);
  background: var(--soft);
}

* { box-sizing: border-box; }
body { margin: 0; background: var(--soft); color: var(--ink); }
button, input, select { font: inherit; }
button { cursor: pointer; }
.hidden { display: none !important; }

.public-access { min-height: 100vh; background: #071522; color: #f7f4ed; }
.public-access-header { min-height: 84px; padding: 0 clamp(24px, 6vw, 96px); display: flex; align-items: center; justify-content: space-between; border-bottom: 1px solid #203345; }
.public-access-header .account-brand { padding: 0; }
.public-access-header nav { display: flex; align-items: center; gap: 28px; }
.public-access-header nav a { color: #aeb9c4; text-decoration: none; font-size: 14px; }
.public-access-header nav a:hover { color: #fff; }
.public-access-header nav .public-start { min-height: 42px; padding: 0 20px; display: inline-flex; align-items: center; border: 1px solid #40cdb6; color: #071d19; background: #40cdb6; font-weight: 750; }
.public-access-main { width: min(1240px, calc(100% - 48px)); margin: 0 auto; min-height: calc(100vh - 84px); display: grid; grid-template-columns: minmax(0, 1fr) minmax(440px, .82fr); gap: clamp(48px, 8vw, 120px); align-items: center; padding: 72px 0; }
.public-access-copy { min-width: 0; }
.public-access-copy h1 { max-width: 700px; margin: 18px 0 24px; font: 500 clamp(48px, 6.2vw, 90px)/.96 Georgia, serif; letter-spacing: 0; overflow-wrap: break-word; }
.public-access-copy > p { max-width: 660px; color: #b4c0cc; font-size: clamp(18px, 2vw, 24px); line-height: 1.55; }
.public-access-copy ul { margin: 34px 0 0; padding: 28px 0 0; border-top: 1px solid #274052; display: grid; gap: 13px; color: #cbd4dc; list-style: none; }
.public-access-copy li { position: relative; padding-left: 22px; }
.public-access-copy li::before { content: ""; position: absolute; left: 0; top: .58em; width: 7px; height: 7px; background: #40cdb6; }
.public-access-panel { align-self: center; min-width: 0; }
.public-access-panel .account-status,
.public-access-panel .account-login { margin: 0; max-width: none; }
.public-access-panel .account-status { background: #0e2030; border-color: #2b4153; color: #fff; }
.public-access-panel .account-status p { color: #9fadb9; }
.public-access-panel .account-login { padding: clamp(30px, 4vw, 48px); color: var(--ink); }
.public-access-panel .account-login h2 { font-size: clamp(34px, 4vw, 50px); }
.public-access-panel .account-login form { grid-template-columns: 1fr; }
.public-access-panel .legacy-access form { grid-template-columns: 1fr auto; }
.public-access-offer { margin: 26px 0 0; padding-top: 20px; border-top: 1px solid var(--line); font-size: 13px; }
.public-access-offer a { color: var(--teal-dark); font-weight: 750; }
.free-step { color: var(--teal-dark); font-size: .875rem; font-weight: 700; }
.free-choice { min-width: 0; margin: 20px 0; padding: 16px; border: 1px solid var(--line); background: #f5faf9; }
.free-choice legend { padding: 0 6px; font-size: 1rem; font-weight: 700; }
.free-choice label { display: flex; align-items: center; gap: 10px; margin: 10px 0; font-size: .875rem; cursor: pointer; }
.account-login .free-choice input { flex: 0 0 auto; width: 18px; height: 18px; margin: 0; padding: 0; accent-color: var(--teal-dark); }
.free-choice:focus-within { border-color: var(--teal-dark); }
#freeResearchForm { margin-bottom: 24px; padding-bottom: 20px; border-bottom: 1px solid var(--line); }
#freeResearchForm small { font-size: .875rem; line-height: 1.5; color: var(--muted); }
#freeAccountForm { margin-top: 20px; }
#freeResearchMessage:empty, #accountSignupMessage:empty { display: none; }
@media (max-width: 900px) {
  .public-access-main:has(#accountSignupForm:not(.hidden)) .public-access-panel { order: -1; }
}
.free-selection { display: flex; flex-wrap: wrap; gap: 12px; align-items: center; padding: 16px; margin: 18px 0; border-left: 3px solid var(--teal); background: #eef7f5; }
.free-selection strong { flex: 1 1 200px; overflow-wrap: anywhere; font-size: 1rem; line-height: 1.5; }
.free-selection button { padding: 0; border: 0; background: none; color: var(--teal-dark); text-decoration: underline; font-size: .875rem; }
#freeResearchForm select { width: 100%; min-height: 46px; padding: 10px 12px; border: 1px solid var(--line); background: white; }
.free-report-panel { margin: 24px 0; padding: clamp(20px, 3vw, 32px); border: 1px solid #b8d6d0; border-top: 3px solid var(--teal); background: white; }
.free-report-panel h2 { margin: 8px 0 16px; font: 500 30px Georgia, serif; }
.free-report-panel p { line-height: 1.6; overflow-wrap: anywhere; }
.free-report-panel form { display: grid; grid-template-columns: minmax(160px, 2fr) repeat(2, minmax(140px, 1fr)); gap: 16px; }
.free-report-panel label { display: grid; gap: 8px; min-width: 0; font-size: .875rem; }
.free-report-panel input, .free-report-panel select { width: 100%; min-height: 46px; padding: 10px 12px; border: 1px solid var(--line); background: white; }
.free-report-panel button { grid-column: 1 / -1; justify-self: start; min-height: 46px; padding: 12px 20px; border: 0; background: var(--teal-dark); color: white; font-weight: 700; }
@media (max-width: 700px) { .free-report-panel form { grid-template-columns: 1fr; } }

.account-shell { min-height: 100vh; display: grid; grid-template-columns: 252px minmax(0, 1fr); }
.account-sidebar { position: sticky; top: 0; height: 100vh; padding: 28px 20px; background: var(--nav); color: #fff; display: flex; flex-direction: column; }
.account-brand { display: flex; gap: 12px; align-items: center; color: #fff; text-decoration: none; padding: 0 8px 34px; }
.account-brand > span { width: 38px; height: 38px; display: grid; place-items: center; border: 1px solid #2f495e; color: #47d4bc; font-family: Georgia, serif; font-size: 24px; }
.account-brand strong, .account-brand small { display: block; }
.account-brand strong { font-family: Georgia, serif; font-size: 22px; }
.account-brand small { color: #8999aa; margin-top: 2px; font-size: 11px; text-transform: uppercase; letter-spacing: 0; }
.account-sidebar nav { display: grid; gap: 6px; }
.account-nav { width: 100%; min-height: 46px; border: 0; padding: 0 12px; background: transparent; color: #9daab7; text-align: left; display: grid; grid-template-columns: 30px 1fr; align-items: center; border-left: 2px solid transparent; }
.account-nav span { font: 11px ui-monospace, SFMono-Regular, Consolas, monospace; color: #607284; }
.account-nav:hover, .account-nav.is-active { color: #fff; background: #122537; border-left-color: var(--teal); }
.account-sidebar-foot { margin-top: auto; padding: 20px 10px 0; border-top: 1px solid #223649; display: grid; gap: 7px; overflow-wrap: anywhere; }
.account-sidebar-foot small { color: #6f8193; text-transform: uppercase; font-size: 10px; }
.account-sidebar-foot strong { font-size: 12px; font-weight: 600; }
.account-sidebar-foot button { padding: 0; border: 0; background: transparent; color: #47d4bc; font-size: 12px; margin-top: 10px; text-align: left; }

.account-main { min-width: 0; }
.account-topbar { min-height: 104px; padding: 24px clamp(24px, 5vw, 72px); background: var(--paper); border-bottom: 1px solid var(--line); display: flex; align-items: center; justify-content: space-between; }
.account-topbar h1 { margin: 3px 0 0; font-family: Georgia, serif; font-size: clamp(28px, 3vw, 40px); font-weight: 500; }
.account-kicker { color: var(--gold); font: 700 11px ui-monospace, SFMono-Regular, Consolas, monospace; text-transform: uppercase; letter-spacing: 0; }
.icon-button { width: 40px; height: 40px; border: 1px solid var(--line); background: #fff; color: var(--ink); font-size: 21px; }
.icon-button:hover { border-color: var(--teal); color: var(--teal-dark); }
.topbar-actions { display: flex; align-items: center; gap: 10px; }
.account-logout, .account-password-setup { min-height: 40px; padding: 0 13px; border: 1px solid var(--line); background: #fff; color: var(--ink); font-size: 12px; font-weight: 700; }
.account-logout:hover, .account-password-setup:hover { border-color: var(--teal-dark); color: var(--teal-dark); }
.account-password-setup { border-color: var(--teal-dark); color: var(--teal-dark); }
.account-primary-action { min-height: 40px; padding: 0 14px; border: 1px solid var(--teal-dark); background: var(--teal); color: #06251f; font-size: 12px; font-weight: 750; }

.account-status, .account-login, .account-view { margin: 36px clamp(24px, 5vw, 72px); }
.account-status { padding: 22px 24px; border: 1px solid var(--line); background: #fff; }
.account-status strong, .account-status p { display: block; margin: 0; }
.account-status p { color: var(--muted); margin-top: 5px; }
.account-status.is-error { border-color: #e4b8b4; color: var(--danger); }
.account-status button { margin-top: 16px; min-height: 44px; padding: 10px 18px; border: 1px solid var(--teal-dark); border-radius: var(--radius); color: var(--teal-dark); background: var(--paper); font-weight: 700; }
.account-login { max-width: 700px; padding: 42px; background: #fff; border: 1px solid var(--line); }
.account-login h2 { font: 500 38px/1.05 Georgia, serif; margin: 10px 0 14px; }
.account-login p { color: var(--muted); }
.account-login form { display: grid; grid-template-columns: 1fr 1fr auto; gap: 10px; align-items: end; margin-top: 22px; }
.account-login label { min-width: 0; }
.account-login input { margin-top: 7px; width: 100%; height: 46px; border: 1px solid var(--line); padding: 0 12px; }
.account-login button, .launch-selector-band button, .launch-save-band button { min-height: 46px; border: 1px solid var(--teal-dark); background: var(--teal); color: #06251f; padding: 0 18px; font-weight: 750; }
.form-message { min-height: 20px; }
.auth-tabs, .auth-mode-tabs { display: flex; gap: 0; margin-top: 26px; border-bottom: 1px solid var(--line); }
.auth-tabs button, .auth-mode-tabs button { min-height: 42px; border: 0; border-bottom: 2px solid transparent; background: transparent; color: var(--muted); padding: 0 18px; }
.auth-tabs button.is-active, .auth-mode-tabs button.is-active { border-bottom-color: var(--teal-dark); color: var(--ink); }
.confirm-password { grid-column: 1 / 3; }
.auth-links { margin-top: 14px; }
.auth-links { display: flex; flex-wrap: wrap; gap: 12px 18px; }
.verification-panel { margin-top: 22px; padding: 20px; border: 1px solid #b6d9d0; background: #edf7f3; }
.verification-panel strong { display: block; color: var(--teal-dark); }
.verification-panel p { line-height: 1.5; overflow-wrap: anywhere; }
.verification-panel small { display: block; margin-top: 14px; color: var(--muted); line-height: 1.5; }
.verification-actions { display: flex; flex-wrap: wrap; gap: 10px; }
.verification-actions button { flex: 1 1 170px; padding: 10px 12px; font-size: 14px; }
.verification-actions button:last-child { background: #fff; color: var(--teal-dark); }
.account-login button:disabled { opacity: .6; cursor: wait; }
.auth-links button { min-height: 0; padding: 0; border: 0; background: transparent; color: var(--teal-dark); font-size: 12px; text-decoration: underline; }
.legacy-access { margin-top: 28px; padding-top: 20px; border-top: 1px solid var(--line); }
.legacy-access summary { cursor: pointer; color: var(--muted); font-size: 13px; font-weight: 700; }
.legacy-access p { font-size: 13px; }
.legacy-access form { grid-template-columns: 1fr auto; }

.password-dialog { width: min(520px, calc(100% - 32px)); padding: 0; border: 1px solid var(--line); border-radius: 0; color: var(--ink); background: #fff; }
.password-dialog::backdrop { background: rgba(5, 15, 25, .72); }
.password-dialog form { position: relative; padding: 42px; display: grid; gap: 17px; }
.plan-required-content { position: relative; padding: 42px; display: grid; gap: 17px; }
.password-dialog h2 { margin: 0; font: 500 38px/1.05 Georgia, serif; }
.password-dialog p { margin: 0; color: var(--muted); line-height: 1.55; }
.password-dialog label { display: grid; gap: 7px; color: var(--muted); font-size: 12px; }
.password-dialog input { width: 100%; height: 46px; padding: 0 12px; border: 1px solid var(--line); }
.dialog-close { position: absolute; top: 14px; right: 14px; width: 36px; height: 36px; border: 0; background: transparent; color: var(--muted); font-size: 24px; }
.dialog-submit { min-height: 48px; border: 1px solid var(--teal-dark); background: var(--teal); color: #06251f; font-weight: 750; }
.dialog-link { display: inline-flex; align-items: center; justify-content: center; width: fit-content; padding: 0 24px; text-decoration: none; }
.research-dialog select, .research-dialog textarea, .topup-dialog select { width: 100%; padding: 11px 12px; border: 1px solid var(--line); background: #fff; color: var(--ink); }
.research-dialog textarea { resize: vertical; min-height: 84px; }

.billing-overview { margin: 28px 0 0; padding: 22px; display: grid; grid-template-columns: minmax(220px, 1fr) 180px minmax(300px, auto); gap: 24px; align-items: center; border: 1px solid #284156; background: var(--nav); color: #fff; }
.billing-plan-copy { display: grid; gap: 5px; }
.billing-plan-copy > strong { font: 500 24px Georgia, serif; }
.billing-plan-copy small { color: #9eacb9; }
.billing-credit-count { padding-left: 24px; border-left: 1px solid #284156; }
.billing-credit-count span, .billing-credit-count strong { display: block; }
.billing-credit-count span { color: #9eacb9; font-size: 11px; }
.billing-credit-count strong { margin-top: 4px; font: 650 30px ui-monospace, Consolas, monospace; }
.billing-actions { display: flex; justify-content: flex-end; gap: 8px; flex-wrap: wrap; }
.billing-actions button, .billing-plan-link { min-height: 42px; padding: 10px 14px; border: 1px solid #466177; background: transparent; color: #dfe7ed; font-size: 14px; font-weight: 750; }
.billing-plan-link { display: inline-flex; align-items: center; text-decoration: none; }
.billing-plan-link:focus-visible { outline: 2px solid #fff; outline-offset: 4px; }
.billing-actions #billingUseCredit, .billing-actions .billing-plan-link { border-color: #40cdb6; background: #40cdb6; color: #06251f; }
.billing-actions button:disabled { opacity: .5; cursor: not-allowed; }
.billing-next-step { margin: 0; padding: 16px 22px; border: 1px solid var(--line); border-top: 0; background: #fff; font-size: 16px; line-height: 1.65; }
.credit-policy { margin: 0 0 24px; padding: 16px 22px; border: 1px solid var(--line); border-top: 0; background: #fff; }
.credit-policy summary { cursor: pointer; font-size: 16px; font-weight: 650; line-height: 1.6; }
.credit-policy summary:focus-visible { outline: 2px solid var(--teal-dark); outline-offset: 6px; }
.credit-policy-content { max-width: 900px; padding-top: 8px; }
.credit-policy-content p { margin: 12px 0 0; font-size: 16px; line-height: 1.65; }

.view-intro { display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(280px, .8fr); gap: 48px; align-items: end; padding-bottom: 28px; border-bottom: 1px solid var(--line); }
.view-intro h2 { margin: 8px 0 0; font: 500 clamp(30px, 4vw, 48px)/1.04 Georgia, serif; max-width: 780px; }
.view-intro p { margin: 0; color: var(--muted); line-height: 1.65; }
.summary-strip { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); border: 1px solid var(--line); background: #fff; margin: 28px 0; }
.summary-strip div { padding: 20px 22px; border-right: 1px solid var(--line); }
.summary-strip div:last-child { border-right: 0; }
.summary-strip span, .summary-strip strong { display: block; }
.summary-strip span { color: var(--muted); font-size: 12px; }
.summary-strip strong { font: 600 27px ui-monospace, SFMono-Regular, Consolas, monospace; margin-top: 5px; }

.report-list, .simulation-list { border-top: 1px solid var(--ink); }
.report-row, .simulation-row { display: grid; grid-template-columns: minmax(220px, 1.4fr) minmax(110px, .55fr) minmax(110px, .55fr) minmax(160px, .75fr); gap: 18px; align-items: center; min-height: 90px; padding: 18px 4px; border-bottom: 1px solid var(--line); }
.report-row:hover, .simulation-row:hover { background: #edf2f3; }
.report-primary strong, .report-primary span, .simulation-primary strong, .simulation-primary span { display: block; }
.report-primary strong, .simulation-primary strong { font-size: 16px; }
.report-primary span, .simulation-primary span, .report-cell span { color: var(--muted); font-size: 12px; margin-top: 5px; }
.report-cell strong { display: block; font-size: 13px; }
.status-badge { display: inline-flex; align-items: center; min-height: 26px; padding: 0 9px; border: 1px solid var(--line); color: var(--muted); font: 700 10px ui-monospace, Consolas, monospace; text-transform: uppercase; }
.status-badge.ready { border-color: #9ad6c8; color: var(--teal-dark); background: #eefaf7; }
.row-actions { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 8px; }
.row-actions a, .row-actions button { min-height: 34px; padding: 0 11px; border: 1px solid var(--ink); color: var(--ink); background: transparent; text-decoration: none; display: inline-flex; align-items: center; font-size: 12px; font-weight: 700; }
.row-actions .primary { border-color: var(--teal-dark); color: var(--teal-dark); }
.empty-list { padding: 44px 0; color: var(--muted); border-bottom: 1px solid var(--line); }

.launch-selector-band { display: grid; grid-template-columns: minmax(210px, 1.35fr) minmax(190px, .9fr) minmax(240px, 1.15fr) auto; gap: 12px; align-items: end; padding: 24px; margin: 28px 0; background: var(--nav); color: #fff; }
.launch-selector-band label { display: grid; gap: 7px; color: #9daab7; font-size: 11px; text-transform: uppercase; }
.launch-selector-band select { height: 44px; width: 100%; border: 1px solid #375064; background: #102335; color: #fff; padding: 0 11px; }
.launch-selector-band button { height: 44px; }
.launch-empty { min-height: 260px; display: grid; place-content: center; text-align: center; border: 1px dashed #bec7d0; background: #fff; }
.launch-empty strong { font: 500 26px Georgia, serif; }
.launch-empty p { color: var(--muted); max-width: 620px; }
.launch-context { display: grid; grid-template-columns: 1.25fr 1fr 1.35fr .7fr .7fr; background: #fff; border: 1px solid var(--line); }
.launch-context div { min-height: 90px; padding: 20px; border-right: 1px solid var(--line); }
.launch-context div:last-child { border-right: 0; }
.launch-context span, .launch-context strong { display: block; }
.launch-context span { font-size: 11px; color: var(--muted); text-transform: uppercase; }
.launch-context strong { margin-top: 8px; font-size: 14px; }
.launch-input-section, .launch-output-section, .launch-table-section { margin-top: 34px; padding-top: 30px; border-top: 1px solid var(--ink); }
.section-heading { display: grid; grid-template-columns: 130px minmax(0, .8fr) minmax(280px, .8fr); gap: 20px; align-items: start; margin-bottom: 26px; }
.section-heading > span { color: var(--gold); font: 700 11px ui-monospace, Consolas, monospace; text-transform: uppercase; }
.section-heading h3 { font: 500 28px/1.1 Georgia, serif; margin: 0; }
.section-heading p { margin: 0; color: var(--muted); line-height: 1.5; }
.launch-field-actions { display: flex; justify-content: flex-end; margin: -4px 0 14px; }
.launch-field-actions button { min-height: 36px; padding: 0 12px; border: 1px solid var(--teal-dark); color: var(--teal-dark); background: transparent; font-weight: 700; }
.launch-form-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); border-top: 1px solid var(--line); border-left: 1px solid var(--line); }
.lab-field { min-height: 184px; padding: 18px; background: #fff; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.lab-field > label:first-child { display: block; min-height: 34px; color: var(--muted); font-size: 12px; }
.lab-field input { width: 100%; height: 43px; padding: 0 9px; border: 1px solid #b9c3cd; color: var(--ink); font: 650 16px ui-monospace, Consolas, monospace; }
.lab-field input[readonly] { border-color: #9ad6c8; background: #eefaf7; color: var(--teal-dark); }
.lab-reference { display: flex; justify-content: space-between; gap: 8px; margin-top: 10px; font-size: 10px; color: var(--muted); }
.lab-reference strong { color: var(--teal-dark); font-weight: 700; text-align: right; }
.lab-reference-mode { display: flex; align-items: center; gap: 7px; min-height: 26px; margin-top: 12px; color: var(--muted); font-size: 11px; cursor: pointer; }
.lab-reference-mode input { width: 15px; height: 15px; padding: 0; accent-color: var(--teal-dark); }
.lab-reference-mode input:disabled { cursor: not-allowed; }
.lab-reference-mode span { line-height: 1.2; }
.uses-reference .lab-reference-mode { color: var(--teal-dark); }
.launch-metrics { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); background: #fff; border: 1px solid var(--line); }
.launch-metrics article { min-height: 106px; padding: 18px; border-right: 1px solid var(--line); }
.launch-metrics article:nth-child(5n) { border-right: 0; }
.launch-metrics span, .launch-metrics strong { display: block; }
.launch-metrics span { color: var(--muted); font-size: 11px; }
.launch-metrics strong { margin-top: 10px; font: 650 22px ui-monospace, Consolas, monospace; }
.cash-chart { margin-top: 20px; min-height: 260px; padding: 18px; border: 1px solid var(--line); background: #fff; overflow: hidden; }
.cash-chart svg { width: 100%; height: 230px; }
.cash-chart text { fill: var(--muted); font-size: 10px; font-family: ui-monospace, Consolas, monospace; }
.cash-table-wrap { overflow-x: auto; border: 1px solid var(--line); background: #fff; }
.cash-table-wrap table { width: 100%; min-width: 1100px; border-collapse: collapse; font-size: 12px; }
.cash-table-wrap th, .cash-table-wrap td { padding: 12px 11px; border-bottom: 1px solid var(--line); text-align: right; white-space: nowrap; }
.cash-table-wrap th:first-child, .cash-table-wrap td:first-child { text-align: left; }
.cash-table-wrap th { color: var(--muted); font-size: 10px; text-transform: uppercase; background: #f8f9fa; }
.cash-table-wrap td { font-family: ui-monospace, Consolas, monospace; }
.cash-table-wrap tr:last-child td { border-bottom: 0; }
.launch-save-band { margin: 30px 0 60px; padding: 22px; display: grid; grid-template-columns: minmax(260px, 1fr) auto minmax(150px, auto); gap: 12px; align-items: end; border: 1px solid var(--line); background: #fff; }
.launch-save-band label { display: grid; gap: 7px; color: var(--muted); font-size: 11px; text-transform: uppercase; }
.launch-save-band input { height: 46px; border: 1px solid var(--line); padding: 0 11px; }
.launch-save-band span { font-size: 12px; color: var(--teal-dark); }

.account-language { display: flex; align-items: center; gap: 7px; color: var(--muted); font-size: 12px; }
.account-language select { max-width: 150px; min-height: 36px; padding: 0 8px; border: 1px solid var(--line); border-radius: 4px; background: #fff; color: var(--ink); }
.account-language select:focus-visible { outline: 2px solid var(--teal-dark); outline-offset: 2px; }
.account-locale-message { margin: 0 40px; color: var(--muted); font-size: 12px; }
.account-locale-message:empty { display: none; }
@media (max-width: 480px) { .public-access-header nav { flex-wrap: wrap; gap: 8px; padding: 10px 0; } .public-access-header .account-language > span { display: none; } .account-locale-message { margin: 0 20px; } }

/* Launch Lab v3 */
.launch-toolbar { margin: 28px 0 12px; min-height: 58px; padding: 12px 16px; border: 1px solid #284156; background: var(--nav); color: #fff; display: flex; align-items: center; justify-content: space-between; gap: 20px; }
.launch-toolbar div { display: grid; gap: 3px; }
.launch-toolbar strong { font-size: 13px; }
.launch-toolbar span { color: #9eacb9; font-size: 11px; }
.launch-toolbar button { min-height: 34px; padding: 0 12px; border: 1px solid #466177; background: transparent; color: #dfe7ed; font-size: 11px; font-weight: 750; }
.launch-context div { min-height: 72px; padding: 15px 17px; }
.launch-context strong { margin-top: 6px; }
.guides-hidden .lab-explainer { display: none !important; }
.launch-assumption-sections { border-top: 1px solid var(--ink); }
.assumption-group { background: #fff; border-bottom: 1px solid var(--ink); }
.assumption-group > header { padding: 22px 0; display: grid; grid-template-columns: 42px minmax(220px, .8fr) minmax(300px, 1fr); gap: 18px; align-items: start; }
.assumption-number { width: 30px; height: 30px; display: grid; place-items: center; border: 1px solid var(--ink); color: var(--ink); font: 750 12px ui-monospace, Consolas, monospace; }
.assumption-group h4 { margin: 0; font: 500 24px/1.1 Georgia, serif; }
.assumption-group header strong { display: block; margin-top: 5px; font-size: 13px; }
.assumption-group header p { margin: 0; color: var(--muted); font-size: 13px; line-height: 1.55; }
.compact-field-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); border-top: 1px solid var(--line); border-left: 1px solid var(--line); }
.lab-field { min-height: 0; padding: 14px; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.lab-field-label { min-height: 22px; display: flex; align-items: center; justify-content: space-between; gap: 8px; }
.lab-field-label label { color: var(--muted); font-size: 11px; }
.lab-field-label span { padding: 3px 6px; background: #eaf7f4; color: var(--teal-dark); font: 700 9px ui-monospace, Consolas, monospace; text-transform: uppercase; }
.uses-custom .lab-field-label span, .uses-custom.phase-input small { background: #fff4dc; color: #806019; }
.lab-input-shell { height: 42px; margin-top: 7px; display: grid; grid-template-columns: minmax(0, 1fr) auto 30px; align-items: center; border: 1px solid #b9c3cd; background: #fff; }
.lab-input-shell:focus-within { border-color: var(--teal-dark); box-shadow: inset 0 0 0 1px var(--teal-dark); }
.lab-input-shell input { width: 100%; height: 38px; padding: 0 8px; border: 0; outline: 0; color: var(--ink); background: transparent; font: 700 15px ui-monospace, Consolas, monospace; }
.lab-input-shell > span { color: var(--muted); font-size: 10px; }
.lab-input-shell button, .phase-input button { width: 28px; height: 28px; border: 0; background: transparent; color: var(--teal-dark); font-size: 16px; line-height: 1; }
.lab-input-shell button:disabled, .phase-input button:disabled { color: #bac2ca; cursor: not-allowed; }
.phase-table { overflow-x: auto; border-top: 1px solid var(--line); }
.phase-table-head, .phase-row { min-width: 1050px; display: grid; grid-template-columns: minmax(170px, 1.1fr) 220px repeat(3, minmax(145px, .8fr)) 130px; gap: 12px; align-items: center; }
.phase-table-head { min-height: 38px; padding: 0 14px; background: #f4f6f8; color: var(--muted); font: 700 9px ui-monospace, Consolas, monospace; text-transform: uppercase; }
.phase-row { min-height: 74px; padding: 10px 14px; border-top: 1px solid var(--line); }
.phase-name { display: grid; gap: 3px; }
.phase-name strong { font-size: 13px; }
.phase-name span { color: var(--muted); font-size: 10px; }
.phase-period { display: grid; grid-template-columns: 1fr 14px 1fr; gap: 5px; align-items: center; }
.phase-period > span { color: var(--muted); text-align: center; }
.phase-input { position: relative; min-width: 0; height: 42px; display: grid; grid-template-columns: minmax(0, 1fr) auto 28px; align-items: center; border: 1px solid #b9c3cd; background: #fff; }
.phase-input:focus-within { border-color: var(--teal-dark); }
.phase-input input { min-width: 0; width: 100%; height: 38px; padding: 0 7px; border: 0; outline: 0; background: transparent; font: 700 13px ui-monospace, Consolas, monospace; }
.phase-input > span { color: var(--muted); font-size: 9px; }
.phase-input small { position: absolute; top: -8px; right: 3px; padding: 1px 4px; background: #eaf7f4; color: var(--teal-dark); font: 700 8px ui-monospace, Consolas, monospace; text-transform: uppercase; }
.phase-row output { font: 750 16px ui-monospace, Consolas, monospace; color: var(--ink); text-align: right; }
.launch-decision { margin-top: 18px; padding: 24px 26px; background: var(--nav); color: #fff; border-left: 4px solid var(--teal); }
.launch-decision > span { color: #71d7c5; font: 700 10px ui-monospace, Consolas, monospace; text-transform: uppercase; }
.launch-decision h4 { margin: 9px 0 7px; font: 500 26px/1.12 Georgia, serif; }
.launch-decision p { margin: 0; color: #b8c4ce; line-height: 1.58; font-size: 13px; }
.launch-chart-grid { margin-top: 18px; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
.chart-panel { min-width: 0; background: #fff; border: 1px solid var(--line); }
.chart-panel header { min-height: 72px; padding: 15px 18px; display: flex; justify-content: space-between; gap: 12px; border-bottom: 1px solid var(--line); }
.chart-panel header span { color: var(--gold); font: 700 9px ui-monospace, Consolas, monospace; text-transform: uppercase; }
.chart-panel h4 { margin: 4px 0 0; font: 500 20px Georgia, serif; }
.chart-panel header small { max-width: 140px; color: var(--muted); text-align: right; font-size: 10px; line-height: 1.4; }
.chart-panel .cash-chart { margin: 0; min-height: 245px; padding: 14px; border: 0; }
.cash-detail { border: 1px solid var(--line); background: #fff; }
.cash-detail summary { min-height: 48px; padding: 0 16px; display: flex; align-items: center; justify-content: space-between; cursor: pointer; color: var(--ink); font-size: 12px; font-weight: 750; }
.cash-detail summary::after { content: "+"; font-size: 18px; color: var(--teal-dark); }
.cash-detail[open] summary::after { content: "−"; }
.cash-detail .cash-table-wrap { border: 0; border-top: 1px solid var(--line); }

@media (max-width: 1050px) {
  .public-access-main { grid-template-columns: 1fr; gap: 48px; align-items: start; }
  .public-access-copy h1 { max-width: 820px; }
  .public-access-panel { width: min(680px, 100%); }
  .account-shell { grid-template-columns: 200px minmax(0, 1fr); }
  .account-sidebar { padding-inline: 12px; }
  .account-nav { min-height: 48px; grid-template-columns: 22px minmax(0, 1fr); font-size: .875rem; padding: 10px 8px; }
  .account-nav span { font-size: .75rem; }
  .account-sidebar-foot { display: none; }
  .billing-overview { grid-template-columns: 1fr 150px; }
  .billing-actions { grid-column: 1 / -1; justify-content: flex-start; }
  .launch-form-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .compact-field-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .launch-selector-band { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .launch-context { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .launch-context div:nth-child(2) { border-right: 0; }
  .launch-context div:nth-child(-n+2) { border-bottom: 1px solid var(--line); }
}

@media (max-width: 760px) {
  .public-access-header { min-height: 72px; padding: 0 20px; }
  .public-access-header nav { gap: 14px; }
  .public-access-header nav a:not(.public-start) { display: none; }
  .public-access-main { width: min(100% - 40px, 680px); padding: 54px 0; }
  .public-access-copy h1 { font-size: 44px; }
  .public-access-copy > p { font-size: 18px; }
  .account-shell { display: block; }
  .account-sidebar { position: static; width: 100%; height: auto; padding: 16px; display: grid; grid-template-columns: 1fr; gap: 16px; align-items: center; }
  .account-brand { padding: 0; }
  .account-brand div { display: block; }
  .account-sidebar nav { display: flex; flex-wrap: wrap; gap: 8px; }
  .account-nav { width: auto; flex: 1 1 130px; grid-template-columns: minmax(0, 1fr); min-height: 44px; padding: 10px 12px; border: 1px solid #2f495e; border-radius: var(--radius); font-size: .875rem; }
  .account-nav span { display: none; }
  .account-nav.is-active { border-color: var(--teal); }
  .account-sidebar-foot { display: none; }
  .account-topbar { min-height: 86px; padding: 18px 20px; align-items: flex-start; flex-direction: column; gap: 14px; }
  .topbar-actions { width: 100%; flex-wrap: wrap; }
  .topbar-actions button { min-width: 0; flex: 1 1 140px; }
  .account-status, .account-login, .account-view { margin: 24px 20px; }
  .view-intro { grid-template-columns: 1fr; gap: 16px; }
  .billing-overview { grid-template-columns: 1fr; }
  .billing-credit-count { padding: 16px 0 0; border-left: 0; border-top: 1px solid #284156; }
  .billing-actions { grid-column: auto; }
  .summary-strip { grid-template-columns: 1fr; }
  .summary-strip div { border-right: 0; border-bottom: 1px solid var(--line); }
  .report-row, .simulation-row { grid-template-columns: 1fr; gap: 8px; }
  .row-actions { justify-content: flex-start; }
  .launch-selector-band { grid-template-columns: 1fr; }
  .launch-form-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .assumption-group > header { grid-template-columns: 36px 1fr; }
  .assumption-group > header p { grid-column: 2; }
  .compact-field-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .launch-chart-grid { grid-template-columns: 1fr; }
  .phase-table { overflow: visible; }
  .phase-table-head { display: none; }
  .phase-row { min-width: 0; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; padding: 15px 12px; }
  .phase-name { grid-column: 1 / -1; }
  .phase-period { grid-column: 1 / -1; }
  .phase-input { height: 56px; padding-top: 13px; }
  .phase-input::before { content: attr(data-label); position: absolute; left: 7px; top: 4px; color: var(--muted); font-size: 8px; text-transform: uppercase; }
  .phase-row output { grid-column: 1 / -1; padding-top: 5px; text-align: left; }
  .phase-row output::before { content: attr(data-label) "  "; color: var(--muted); font: 700 9px ui-monospace, Consolas, monospace; text-transform: uppercase; }
  .section-heading { grid-template-columns: 1fr; gap: 8px; }
  .launch-metrics { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .launch-metrics article:nth-child(5n) { border-right: 1px solid var(--line); }
  .launch-metrics article:nth-child(2n) { border-right: 0; }
  .launch-save-band { grid-template-columns: 1fr; }
}

@media (max-width: 480px) {
  .public-access-panel .account-login { padding: 28px 20px; }
  .public-access-panel .legacy-access form { grid-template-columns: 1fr; }
  .password-dialog form { padding: 38px 22px 26px; }
  .account-brand small { display: none; }
  .launch-form-grid, .launch-context { grid-template-columns: 1fr; }
  .compact-field-grid, .launch-metrics { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .launch-toolbar { align-items: flex-start; }
  .launch-toolbar span { display: none; }
  .assumption-group > header { padding: 18px 0; }
  .phase-row { grid-template-columns: 1fr; }
  .phase-period { grid-column: 1; }
  .launch-context div, .launch-context div:nth-child(2) { border-right: 0; border-bottom: 1px solid var(--line); }
  .account-login { padding: 28px 20px; }
  .account-login form, .legacy-access form { grid-template-columns: 1fr; }
  .confirm-password { grid-column: auto; }
}

.sandbox-checkout, .sandbox-orders { margin: 20px 0; padding: 20px; border: 1px solid var(--line); border-radius: 14px; min-width: 0; }
.sandbox-checkout { background: #f4f8fb; border-color: #bdd3e0; }
.sandbox-checkout h3, .sandbox-orders h3 { margin: 0 0 10px; font-size: 18px; }
.sandbox-checkout p, .sandbox-orders p { margin: 8px 0 14px; line-height: 1.6; }
.sandbox-checkout form { display: grid; grid-template-columns: minmax(160px, 2fr) minmax(100px, 1fr) minmax(130px, 1fr); gap: 12px; }
.sandbox-checkout label { display: grid; gap: 7px; min-width: 0; font-size: 12px; font-weight: 700; }
.sandbox-checkout input, .sandbox-checkout select { width: 100%; min-width: 0; box-sizing: border-box; padding: 11px; border: 1px solid #bdd3e0; border-radius: 7px; background: white; font: inherit; }
.sandbox-checkout button { grid-column: 1 / -1; justify-self: start; }
.sandbox-checkout button, .sandbox-orders button { padding: 11px 16px; border: 1px solid #34566a; border-radius: 7px; background: #153f53; color: white; font: inherit; cursor: pointer; white-space: normal; }
.sandbox-checkout button:disabled, .sandbox-orders button:disabled { opacity: .55; cursor: default; }
.sandbox-order-row { display: flex; align-items: center; justify-content: space-between; gap: 18px; padding: 16px 0; border-top: 1px solid var(--line); }
.sandbox-order-row > div { display: grid; gap: 7px; min-width: 0; overflow-wrap: anywhere; }
.sandbox-order-row small { color: var(--muted); }
.sandbox-order-row button { flex-shrink: 0; max-width: 40%; }
@media (max-width: 720px) {
  .sandbox-checkout form { grid-template-columns: 1fr; }
  .sandbox-checkout button { width: 100%; }
  .sandbox-order-row { align-items: stretch; flex-direction: column; }
  .sandbox-order-row button { max-width: 100%; }
}
.welcome-purchase { margin: 1.5rem 0; padding: clamp(1.25rem, 3vw, 2rem); border: 1px solid var(--line); border-top: 3px solid var(--teal); border-radius: var(--radius); background: var(--paper); color: var(--ink); box-shadow: 0 8px 28px #0a172509; }
.commercial-activity { margin: 1.5rem 0; padding: clamp(1rem, 3vw, 1.75rem); border: 1px solid var(--line); border-radius: var(--radius); background: var(--paper); font-size: 1rem; }
.commercial-activity header { display: flex; align-items: center; justify-content: space-between; gap: 1rem; }
.commercial-activity h3 { margin: .4rem 0; font-size: 1.25rem; }
.commercial-activity p { line-height: 1.6; }
.commercial-activity button, .commercial-request-row a { padding: .7rem 1rem; min-height: 44px; border: 1px solid var(--teal-dark); border-radius: var(--radius); color: var(--teal-dark); background: white; font: inherit; text-decoration: none; cursor: pointer; }
.commercial-activity button:disabled { opacity: .55; cursor: wait; }
.commercial-activity :focus-visible { outline: 3px solid var(--teal); outline-offset: 3px; }
.commercial-request-row { display: flex; justify-content: space-between; align-items: center; gap: 1.25rem; border-top: 1px solid var(--line); margin-top: 1rem; padding: 1rem 0 0; }
.commercial-request-row > div { display: grid; gap: .5rem; min-width: 0; overflow-wrap: anywhere; }
.commercial-request-row small { font-size: .875rem; color: var(--muted); }
.commercial-request-row p { margin: 0; }
.commercial-request-row a { flex-shrink: 0; }
.commercial-request-row.needs-review { border-left: 3px solid #a6551b; padding-left: 1rem; }
@media (max-width: 720px) { .commercial-activity header, .commercial-request-row { align-items: stretch; flex-direction: column; } }
.welcome-purchase-heading { display: flex; align-items: center; justify-content: space-between; gap: 1rem; }
.welcome-purchase h2 { margin: .65rem 0; font: 500 clamp(1.7rem, 2.5vw, 2.25rem)/1.15 Georgia, serif; }
.welcome-price { flex-shrink: 0; padding: .8rem 1.2rem; border-radius: var(--radius); background: var(--nav); color: #47d4bc; font-size: clamp(2rem, 4vw, 2.5rem); font-weight: 700; white-space: nowrap; }
.welcome-purchase p { font-size: 1rem; line-height: 1.6; }
.welcome-purchase form { display: grid; grid-template-columns: 2fr 1fr 1fr; gap: 1rem; margin-top: 1.25rem; }
.welcome-purchase label { display: grid; gap: .5rem; min-width: 0; font-size: .875rem; font-weight: 600; }
.welcome-purchase label[hidden] { display: none; }
.welcome-purchase input, .welcome-purchase select { width: 100%; min-width: 0; min-height: 48px; padding: .85rem; border: 1px solid var(--line); border-radius: var(--radius); background: white; font: inherit; font-size: 1rem; }
.welcome-purchase button, .welcome-report-link { width: fit-content; min-height: 48px; padding: .9rem 1.2rem; border: 1px solid var(--teal-dark); border-radius: var(--radius); background: var(--teal-dark); color: white; font: inherit; font-weight: 700; cursor: pointer; text-decoration: none; }
.welcome-report-link:not([hidden]) { display: inline-flex; align-items: center; margin-top: .75rem; }
#welcomeReconcile { color: var(--teal-dark); background: white; }
.welcome-purchase button:disabled { opacity: .55; cursor: wait; }
.welcome-purchase form:has(#welcomeCurrencyField:not([hidden])) > button { grid-column: 2 / -1; align-self: end; width: 100%; min-height: 52px; }
.welcome-purchase :focus-visible { outline: 3px solid var(--teal); outline-offset: 3px; }
@media (max-width: 720px) { .welcome-purchase form { grid-template-columns: 1fr; } .welcome-purchase-heading { align-items: flex-start; flex-wrap: wrap; } .welcome-purchase form button, .welcome-purchase form:has(#welcomeCurrencyField:not([hidden])) > button { grid-column: 1 / -1; width: 100%; } }
.prewelcome-checkout { display: grid; gap: 1rem; }
.prewelcome-checkout.hidden { display: none; }
.prewelcome-checkout h2 { margin: 0; font: 500 clamp(1.8rem, 4vw, 2.65rem)/1.05 Georgia, serif; color: var(--nav); }
.prewelcome-checkout p { margin: 0; line-height: 1.55; }
.prewelcome-checkout form { display: grid; grid-template-columns: 1fr 1fr; gap: .85rem; }
.prewelcome-checkout label { display: grid; gap: .4rem; min-width: 0; font-size: .84rem; font-weight: 700; }
.prewelcome-checkout input, .prewelcome-checkout select { width: 100%; min-width: 0; min-height: 48px; padding: .8rem; border: 1px solid var(--line); border-radius: var(--radius); background: #fff; color: var(--ink); font: inherit; }
.prewelcome-checkout button { min-height: 50px; padding: .85rem 1.1rem; border: 1px solid var(--teal-dark); border-radius: var(--radius); background: var(--teal-dark); color: #fff; font: inherit; font-weight: 800; cursor: pointer; }
.prewelcome-checkout form button { grid-column: 1 / -1; }
.prewelcome-checkout button:disabled { opacity: .58; cursor: wait; }
.prewelcome-checkout small { color: var(--muted); line-height: 1.45; }
.prewelcome-checkout :focus-visible { outline: 3px solid var(--teal); outline-offset: 3px; }
.public-access:has(#preWelcomePanel:not(.hidden)) .public-access-header nav { display: none; }
@media (max-width: 720px) { .prewelcome-checkout form { grid-template-columns: 1fr; } .prewelcome-checkout form button { grid-column: 1; } }
/* Commercial controls extend the existing research workspace, not a second landing. */
.commercial-purchase { margin: 1.5rem 0; padding: clamp(1.25rem, 3vw, 2rem); border: 1px solid #bdd3dd; border-radius: 1.25rem; background: #f5f9fb; }
.commercial-purchase > header { display: flex; justify-content: space-between; align-items: end; gap: 1.5rem; flex-wrap: wrap; }
.commercial-purchase h2 { margin: .4rem 0; font-size: clamp(1.3rem, 2vw, 1.75rem); line-height: 1.3; }
.commercial-purchase p { font-size: 1rem; line-height: 1.6; }
.commercial-purchase label { display: grid; gap: .5rem; font-size: .95rem; }
.commercial-purchase select { min-width: 12rem; padding: .8rem 1rem; background: white; border: 1px solid #a7bec8; border-radius: .6rem; font: inherit; }
.commercial-plan-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 1rem; margin-top: 1.5rem; }
.commercial-plan-card { display: flex; flex-direction: column; gap: .7rem; padding: 1.4rem; background: white; border: 1px solid #d0dde2; border-radius: 1rem; min-width: 0; }
.commercial-plan-card h3 { margin: 0; font-size: 1.05rem; }
.commercial-plan-card .commercial-price { font-size: clamp(1.6rem, 2.2vw, 2rem); font-weight: 700; line-height: 1.25; white-space: nowrap; }
.commercial-plan-card p { margin: 0; }
.commercial-plan-card small { font-size: .9rem; line-height: 1.5; }
.commercial-plan-card button { margin-top: auto; padding: .85rem; background: #173e4f; color: white; border: 0; border-radius: .6rem; font: inherit; cursor: pointer; }
.commercial-plan-card button:disabled { opacity: .55; cursor: not-allowed; }
.commercial-topup-quote { font-size: 1.25rem; font-weight: 700; padding: 1rem; background: #eef5f3; border-radius: .6rem; }
.commercial-purchase button:focus-visible, .commercial-purchase select:focus-visible { outline: 3px solid #e77535; outline-offset: 3px; }
@media (max-width: 1150px) { .commercial-plan-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 600px) { .commercial-plan-grid { grid-template-columns: 1fr; } .commercial-purchase > header, .commercial-purchase label, .commercial-purchase select { width: 100%; } }

/* The public entry shares the same blue/coral identity as the workspace. */
.public-access {
  --ink: #151822; --muted: #60667b; --line: #dfe3ed;
  --teal: #3155f5; --teal-dark: #2949d7; --gold: #3155f5; --radius: 14px;
  background: #f7f8fc; color: var(--ink);
}
.public-access-header { background: #fff; border-color: var(--line); padding: 18px clamp(20px,5vw,72px); gap: 24px; }
.public-access .account-brand { color: var(--ink); flex-shrink: 0; }
.public-access .account-brand > span { border: 0; border-radius: 12px; width: 40px; height: 42px; background: #3155f5; color: #fff; font: 700 28px/1 Georgia,serif; }
.public-access .account-brand strong { font: 780 25px/1.2 Inter,ui-sans-serif,system-ui,sans-serif; letter-spacing: -.7px; }
.public-access .account-brand small { color: var(--muted); text-transform: none; }
.public-access-header nav { gap: 16px; flex-wrap: wrap; justify-content: flex-end; }
.public-access-header nav a { color: #414a6b; }
.public-access-header nav a:hover { color: #2949d7; }
.public-access-header nav .public-start { background: #ff795e; border-color: #ed7055; color: #211b22; border-radius: 10px; }
.public-access-main { width: min(1240px,calc(100% - 48px)); min-height: calc(100vh - 126px); grid-template-columns: minmax(0,1fr) minmax(380px,.88fr); gap: clamp(28px,4vw,64px); padding: 40px 0; align-items: stretch; }
.public-access-copy { border-radius: 24px; background: #3155f5; color: #fff; padding: clamp(28px,4vw,54px); display: flex; flex-direction: column; justify-content: center; }
.public-access-copy .account-kicker { color: #fff; letter-spacing: .12em; }
.public-access-copy h1 { margin: 24px 0; font: 760 clamp(2.3rem,4vw,3.6rem)/1.06 Inter,ui-sans-serif,system-ui,sans-serif; letter-spacing: -.045em; }
.public-access-copy > p { color: #edf0ff; font-size: clamp(1rem,1.5vw,1.2rem); line-height: 1.6; }
.public-access-copy ul { border-color: #ffffff45; color: #fff; line-height: 1.6; }
.public-access-copy li { padding-left: 24px; }
.public-access-copy li::before { width: 9px; height: 9px; background: #ffb7a7; border-radius: 50%; }
.public-access-panel .account-login { border-radius: 20px; padding: clamp(24px,3vw,42px); box-shadow: 0 12px 38px #232c5b08; }
.public-access-panel .account-login h2 { font: 740 clamp(1.8rem,2.5vw,2.4rem)/1.15 Inter,ui-sans-serif,system-ui,sans-serif; letter-spacing: -.035em; }
.public-access-panel .account-login label { font-size: .9rem; font-weight: 600; }
.public-access-panel .account-login input { height: 50px; border-radius: 10px; background: #fbfcff; }
.public-access-panel .account-login form { gap: 17px; }
.public-access-panel .account-login form button { border-radius: 10px; background: #3155f5; color: #fff; min-height: 50px; }
.public-access .auth-mode-tabs { border-radius: 12px; padding: 4px; background: #f1f3fc; border: 1px solid var(--line); gap: 4px; }
.public-access .auth-mode-tabs button { border: 0; border-radius: 8px; background: transparent; color: #515a76; }
.public-access .auth-mode-tabs button.is-active { background: #fff; color: #2949d7; box-shadow: 0 2px 8px #232c5b10; }
.public-access .auth-links button { color: #2949d7; background: transparent; border: 0; padding: 0; min-height: 40px; text-align: left; }
.public-access-panel .account-status { border-radius: 16px; background: #fff; color: var(--ink); border-color: var(--line); }
.public-access-panel .account-status p { color: var(--muted); }
.public-access :is(button,a,select,input):focus-visible { outline: 3px solid #2949d7; outline-offset: 4px; }
@media (max-width: 900px) {
  .public-access-main { grid-template-columns: minmax(0,1fr); max-width: 620px; gap: 24px; padding: 24px 0; }
  .public-access-panel { order: -1; }
  .public-access-copy { padding: 32px; }
  .public-access-copy h1 { font-size: clamp(2rem,7vw,3rem); }
}
@media (max-width: 480px) {
  .public-access-header { padding: 16px; gap: 16px; align-items: flex-start; }
  .public-access-header nav { gap: 8px; }
  .public-access-header nav .public-start { font-size: .8125rem; padding: 0 12px; min-height: 38px; }
  .public-access .account-brand { gap: 8px; }
  .public-access .account-brand strong { font-size: 22px; }
  .public-access .account-brand small { display: none; }
  .public-access-main { width: calc(100% - 28px); }
  .public-access-panel .account-login { padding: 24px 20px; border-radius: 16px; }
  .public-access-copy { padding: 28px 24px; border-radius: 16px; }
}

/* NichLab workspace — the landing's vivid identity, at working-surface density. */
.account-shell {
  --ink: #151822; --muted: #60667b; --line: #dfe3ed; --soft: #f7f8fc;
  --nav: #191d38; --teal: #3155f5; --teal-dark: #2949d7; --gold: #3155f5;
  --radius: 14px; --coral: #ff795e;
  grid-template-columns: 240px minmax(0, 1fr);
  font-size: 1rem; line-height: 1.5; background: var(--soft); color: var(--ink);
}
.account-shell :is(button, a, select, input):focus-visible { outline: 3px solid #526bff; outline-offset: 4px; }
.account-shell :is(button, a) { transition: background-color .18s ease, border-color .18s ease, box-shadow .18s ease; }
.account-shell button:disabled { cursor: not-allowed; }
.account-shell :is(.launch-selector-band, .launch-save-band) button,
.account-shell .dialog-submit { color: #fff; }
.account-sidebar { padding: 30px 18px 24px; overflow-y: auto; }
.account-shell .account-brand { padding: 0 10px 38px; gap: 12px; }
.account-shell .account-brand > span { border: 0; border-radius: 12px; width: 40px; height: 42px; background: #3155f5; color: #fff; font: 700 28px/1 Georgia, serif; box-shadow: inset -5px -4px 0 #ffffff12; }
.account-shell .account-brand strong { font: 780 25px/1.2 Inter, ui-sans-serif, system-ui, sans-serif; letter-spacing: -.7px; }
.account-shell .account-brand small { color: #b4bddb; font-size: .75rem; text-transform: none; }
.account-nav { border: 0; border-radius: 10px; min-height: 50px; padding: 12px; font-size: .9375rem; line-height: 1.4; color: #c0c8e2; grid-template-columns: 28px minmax(0,1fr); }
.account-nav span { color: #a7b2d6; font-size: .75rem; }
.account-nav:hover { background: #252c51; }
.account-nav.is-active { background: #3155f5; box-shadow: 0 6px 18px #0b102d33; }
.account-nav.is-active span { color: #d7deff; }
.account-sidebar-foot { padding: 20px 10px 0; border-color: #ffffff25; }
.account-sidebar-foot small { color: #aab5d6; font-size: .75rem; }
.account-sidebar-foot strong { font-size: .875rem; color: #f6f8ff; }
.account-sidebar-foot button { color: #ff9c87; font-size: .875rem; }
.account-topbar { min-height: 100px; padding: 24px clamp(22px,3vw,48px); background: transparent; border: 0; gap: 24px; flex-wrap: wrap; }
.account-topbar h1 { font: 760 clamp(1.65rem,2.4vw,2.1rem)/1.2 Inter,ui-sans-serif,system-ui,sans-serif; letter-spacing: -.8px; }
.account-kicker { font: 700 .75rem/1.5 Inter,ui-sans-serif,system-ui,sans-serif; letter-spacing: .07em; }
.account-topbar .account-kicker { color: var(--muted); }
.topbar-actions { flex-wrap: wrap; gap: 10px; }
.account-language { font-size: .875rem; }
.account-language select { min-height: 42px; max-width: 160px; border-radius: 10px; padding: 7px 10px; }
.account-logout, .icon-button { min-height: 42px; border-radius: 10px; font-size: .875rem; }
.icon-button { font-size: 22px; }
.account-primary-action { min-height: 44px; border: 1px solid #ed7055; border-radius: 10px; background: var(--coral); color: #211b22; font-size: .875rem; padding: 10px 16px; }
.account-primary-action:hover { background: #ff8d76; box-shadow: 0 4px 14px #f2765f24; }
.account-locale-message { margin: 0 clamp(22px,3vw,48px) 12px; font-size: .875rem; }
.account-view, .account-shell .account-status { margin: 12px clamp(22px,3vw,48px) 36px; }
#researchView { display: flex; flex-direction: column; gap: 18px; }
#researchView > * { min-width: 0; }
#researchView > .view-intro { padding: 8px 0 0; border: 0; display: flex; align-items: center; justify-content: space-between; gap: 24px; }
#researchView .view-intro .account-kicker { display: none; }
#researchView .view-intro h2 { font: 720 1.25rem/1.4 Inter,ui-sans-serif,system-ui,sans-serif; margin: 0; max-width: 30ch; }
#researchView .view-intro p { font-size: .875rem; line-height: 1.5; max-width: 42ch; }
.billing-overview { margin: 0; border: 1px solid var(--line); border-radius: 16px; background: #fff; color: var(--ink); padding: 22px 24px; gap: 20px; grid-template-columns: minmax(0,1fr) minmax(140px,.55fr) auto; box-shadow: 0 3px 16px #232c5b05; }
.billing-plan-copy > strong { font: 730 1.3rem/1.3 Inter,ui-sans-serif,system-ui,sans-serif; margin: 7px 0; }
.billing-plan-copy small { color: var(--muted); font-size: .875rem; line-height: 1.5; }
.billing-credit-count { padding: 0 0 0 22px; border-color: var(--line); }
.billing-credit-count span { color: var(--muted); font-size: .875rem; }
.billing-credit-count strong { color: #2949d7; font: 730 2rem/1.2 Inter,ui-sans-serif,system-ui,sans-serif; font-variant-numeric: tabular-nums; margin-top: 6px; }
.billing-actions { gap: 8px; }
.billing-actions:empty { display: none; }
.billing-actions :is(a,button) { min-height: 42px; padding: 10px 14px; border-radius: 10px; border-color: #d7ddf1; color: #2949d7; background: #f4f6ff; font-size: .875rem; }
.account-shell #billingUseCredit { background: #3155f5; color: #fff; }
.account-shell #billingUseCredit:disabled, .account-shell .account-primary-action:disabled { background: #eef0f7; color: #697086; border-color: #dce1ed; opacity: 1; }
.billing-next-step { margin: 0; padding: 0 4px; background: transparent; border: 0; color: var(--muted); font-size: .875rem; line-height: 1.5; }
.credit-policy { margin: 0; padding: 12px 4px; border: 0; background: transparent; color: var(--muted); }
.credit-policy summary { font-size: .875rem; font-weight: 500; }
.credit-policy-content { background: #fff; border: 1px solid var(--line); border-radius: 12px; padding: 8px 18px 18px; margin-top: 14px; }
.summary-strip { margin: 0; background: transparent; border: 0; gap: 14px; }
.summary-strip div { padding: 14px 18px; border: 1px solid var(--line); border-radius: 12px; background: #fff; display: flex; align-items: center; justify-content: space-between; gap: 16px; }
.summary-strip div:last-child { border-right: 1px solid var(--line); }
.summary-strip span { font-size: .875rem; }
.summary-strip strong { font: 730 1.6rem/1.1 Inter,ui-sans-serif,system-ui,sans-serif; margin: 0; font-variant-numeric: tabular-nums; }
.report-list { display: grid; gap: 16px; border: 0; }
.report-row { position: relative; min-height: 138px; padding: 24px; border: 1px solid var(--line); border-radius: 14px; background: #fff; grid-template-columns: minmax(0,1.5fr) minmax(100px,.6fr) auto; gap: 16px 24px; box-shadow: 0 4px 20px #26356504; overflow-wrap: anywhere; }
.report-row::before { content: ""; position: absolute; left: 0; top: 24px; bottom: 24px; width: 4px; border-radius: 0 4px 4px 0; background: #3155f5; }
.report-row:hover { background: #fff; border-color: #bcc7f2; box-shadow: 0 8px 26px #26356509; }
.report-primary strong { font-size: 1.2rem; line-height: 1.4; letter-spacing: -.3px; }
.report-primary span { font-size: .75rem; line-height: 1.5; }
.report-cell strong { font-size: .875rem; }
.report-cell span { font-size: .75rem; }
.report-row .row-actions { grid-column: 1/-1; justify-content: flex-start; border-top: 1px solid #edf0f7; padding-top: 16px; }
.row-actions :is(a,button) { min-height: 42px; border: 1px solid #dce1f3; border-radius: 9px; padding: 8px 14px; font-size: .875rem; background: #f6f7fe; color: #2949d7; }
.row-actions a:hover { background: #3155f5; color: white; border-color: #3155f5; }
.row-actions button:disabled { color: #60667b; background: #f4f5f9; border-color: #e4e6ee; }
.row-actions small { align-self: center; color: var(--muted); font-size: .8125rem; }
.status-badge { border-radius: 6px; font: 650 .8125rem/1.4 Inter,ui-sans-serif,system-ui,sans-serif; text-transform: none; padding: 5px 10px; }
.status-badge.ready { color: #246441; background: #eff8f2; border-color: #c6e2d0; }
.empty-list { border: 1px dashed #c4cce7; border-radius: 14px; background: #fff; padding: 40px 24px; font-size: 1rem; text-align: center; }
.account-shell .account-status { border-radius: 14px; }
.account-shell .commercial-plan-card button { background: #3155f5; }
/* Dialogs live beside the workspace, not inside it. Keep their palette/focus explicit. */
:is(.research-dialog, .topup-dialog, .plan-required-dialog) {
  --ink: #151822; --muted: #60667b; --line: #dfe3ed; --gold: #3155f5;
  width: min(560px, calc(100% - 32px)); max-height: calc(100dvh - 32px);
  border: 1px solid #dfe3ed; border-radius: 16px; color: #151822;
  font: 1rem/1.5 Inter,ui-sans-serif,system-ui,sans-serif;
  box-shadow: 0 24px 80px #0b102d33;
}
:is(.research-dialog, .topup-dialog, .plan-required-dialog)::backdrop { background: #111831aa; }
:is(.research-dialog, .topup-dialog) form, .plan-required-dialog .plan-required-content { padding: 34px 28px 28px; gap: 16px; }
:is(.research-dialog, .topup-dialog, .plan-required-dialog) h2 { font: 750 clamp(1.5rem,3vw,1.8rem)/1.2 Inter,ui-sans-serif,system-ui,sans-serif; letter-spacing: -.5px; }
:is(.research-dialog, .topup-dialog, .plan-required-dialog) p { font-size: 1rem; }
:is(.research-dialog, .topup-dialog, .plan-required-dialog) label { font-size: .875rem; }
:is(.research-dialog, .topup-dialog) :is(input, select, textarea) { font: inherit; font-size: 1rem; border-radius: 9px; }
:is(.research-dialog, .topup-dialog, .plan-required-dialog) .dialog-submit { background: #3155f5; color: #fff; border: 1px solid #2949d7; border-radius: 10px; padding: 11px 16px; font: 650 1rem/1.4 Inter,ui-sans-serif,system-ui,sans-serif; }
:is(.research-dialog, .topup-dialog, .plan-required-dialog) .dialog-submit:disabled { background: #eef0f7; color: #697086; border-color: #dce1ed; cursor: not-allowed; }
:is(.research-dialog, .topup-dialog, .plan-required-dialog) :is(button, a, input, select, textarea):focus-visible { outline: 3px solid #526bff; outline-offset: 3px; }
.topup-dialog .commercial-topup-quote { background: #eef1ff; color: #2949d7; font-size: 1.25rem; }
@media (max-width: 480px) {
  :is(.research-dialog, .topup-dialog) form, .plan-required-dialog .plan-required-content { padding: 40px 20px 22px; }
}
@media (prefers-reduced-motion: no-preference) {
  .account-shell .report-row { animation: workspace-enter .28s ease-out both; }
  .account-shell .report-row:nth-child(2) { animation-delay: .045s; }
  .account-shell .report-row:nth-child(3) { animation-delay: .09s; }
  @keyframes workspace-enter { from { opacity: 0; transform: translateY(5px); } to { opacity: 1; transform: none; } }
}
@media (prefers-reduced-motion: reduce) { .account-shell *, .account-shell *::before, .account-shell *::after { animation: none!important; transition: none!important; scroll-behavior: auto!important; } }
@media (max-width: 1100px) {
  .account-shell { grid-template-columns: 208px minmax(0,1fr); }
  .billing-overview { grid-template-columns: minmax(0,1fr) 150px; }
  .billing-actions { grid-column: 1/-1; }
  .account-topbar { gap: 16px; }
}
@media (max-width: 800px) {
  .account-shell { display: block; }
  .account-sidebar { position: static; height: auto; padding: 16px 20px; gap: 16px; }
  .account-shell .account-brand { padding: 0; }
  .account-sidebar nav { display: flex; flex-wrap: wrap; gap: 8px; }
  .account-sidebar-foot { display: none; }
  .account-nav { flex: 1 1 160px; width: auto; display: flex; align-items: center; gap: 10px; }
  .account-topbar { padding: 24px 20px 14px; }
  .account-view, .account-shell .account-status { margin: 10px 20px 28px; }
  #researchView > .view-intro { align-items: flex-start; flex-direction: column; gap: 6px; }
  #researchView .view-intro p { max-width: none; }
  .summary-strip { gap: 8px; grid-template-columns: repeat(3,minmax(0,1fr)); }
  .summary-strip div { padding: 12px; display: grid; gap: 8px; }
  .report-row { grid-template-columns: minmax(0,1fr) auto; padding: 20px; }
  .report-row .report-primary { grid-column: 1/-1; }
}
@media (max-width: 480px) {
  .billing-overview { padding: 18px; gap: 14px; grid-template-columns: minmax(0,1fr); }
  .billing-credit-count { padding: 14px 0 0; border: 0; border-top: 1px solid var(--line); display: flex; align-items: center; justify-content: space-between; gap: 10px; }
  .billing-credit-count strong { margin: 0; }
  .billing-actions { flex-wrap: wrap; }
  .summary-strip { grid-template-columns: 1fr; }
  .summary-strip div { display: flex; }
  .report-row { gap: 14px; }
  .topbar-actions .account-language { width: 100%; justify-content: space-between; }
  .topbar-actions .icon-button { flex: 0 0 42px; }
  .row-actions small { flex-basis: 100%; }
}

/* Customer workspace: the report comes first; commerce stays one deliberate step away. */
.account-shell #researchView { gap: 22px; }
.account-shell #researchView > .public-access-offer:empty { display: none; }
.account-shell #researchView > .welcome-purchase.is-paid {
  margin: 0; padding: clamp(24px, 3vw, 36px); border: 1px solid #3155f5;
  border-left: 5px solid #ff795e; border-radius: 18px; background: #191d38;
  color: #fff; box-shadow: 0 15px 36px #151b421c;
}
.account-shell .welcome-purchase.is-paid .account-kicker { color: #9caaff; }
.account-shell .welcome-purchase.is-paid h2 {
  margin: 8px 0 0; color: #fff; font: 750 clamp(1.55rem, 2.4vw, 2.1rem)/1.2 Inter, ui-sans-serif, system-ui, sans-serif;
  letter-spacing: -.025em;
}
.account-shell .welcome-purchase.is-paid .welcome-research-subject {
  margin: 16px 0 0; color: #fff; font-size: 1.125rem; font-weight: 650;
  overflow-wrap: anywhere;
}
.account-shell .welcome-purchase.is-paid #welcomeStatus {
  margin: 18px 0 0; padding: 14px 16px; border-left: 3px solid #65ddc6;
  border-radius: 0 9px 9px 0; background: #ffffff0d; color: #e8edff;
  font-size: 1rem; line-height: 1.5;
}
.account-shell .welcome-purchase.is-paid.needs-review #welcomeStatus { border-left-color: #ffb09d; }
.account-shell .welcome-purchase.is-paid #welcomeStatus:empty { display: none; }
.account-shell .welcome-purchase.is-paid .welcome-report-link {
  margin-top: 16px; border: 0; border-radius: 9px; background: #ff795e; color: #191d38;
}
.account-shell .welcome-purchase.is-paid .welcome-report-link[hidden] { display: none; }
.account-shell #researchView > .view-intro { padding-top: 8px; }
.account-shell #researchView > .summary-strip { margin-top: -4px; }
.account-shell #researchView > .summary-strip.hidden { display: none; }
.account-shell .empty-list { padding: 28px 24px; text-align: left; color: #60667b; }
.account-management { margin: 4px 0 0; border: 1px solid #dce1f0; border-radius: 14px; background: #fff; }
.account-management > summary {
  display: flex; align-items: center; justify-content: space-between; gap: 16px;
  min-height: 74px; padding: 18px 24px; cursor: pointer; list-style: none;
  color: #181d37; font-size: 1rem; font-weight: 700;
}
.account-management > summary::-webkit-details-marker { display: none; }
.account-management > summary::after { content: "+"; order: 3; color: #3155f5; font-size: 1.35rem; line-height: 1; }
.account-management[open] > summary::after { content: "−"; }
.account-management > summary small { margin-left: auto; color: #60667b; font-size: .875rem; font-weight: 500; text-align: right; }
.account-management > summary:focus-visible { outline: 3px solid #526bff; outline-offset: 3px; }
.account-management-content { display: grid; gap: 18px; padding: 20px 24px 26px; border-top: 1px solid #dfe3ed; }
.account-management .billing-overview { padding: 0; border: 0; border-radius: 0; box-shadow: none; }
.account-management .credit-policy { padding: 0; }
.account-management .commercial-purchase { margin: 0; border-radius: 12px; }
.account-shell .account-topbar { min-height: 90px; }
@media (max-width: 720px) {
  .account-management > summary { flex-wrap: wrap; padding: 18px; }
  .account-management > summary small { order: 4; width: 100%; margin: -8px 0 0; text-align: left; }
  .account-management-content { padding: 18px; }
  .account-shell .welcome-purchase.is-paid { padding: 22px; }
}

/* Research workspace: the public site's restraint, not an admin console. */
.account-shell { display: block; background: #f8faff; }
.account-shell .account-sidebar {
  position: static; height: auto; min-height: 76px; padding: 0 clamp(20px, 4vw, 64px);
  overflow: visible; display: flex; flex-direction: row; align-items: center; gap: clamp(24px, 5vw, 72px);
  color: #151822; background: #fff; border-bottom: 1px solid #e5e8f1;
}
.account-shell .account-brand { flex: 0 0 auto; padding: 0; color: #151822; gap: 10px; }
.account-shell .account-brand > span { width: 36px; height: 36px; border-radius: 9px; font-size: 25px; box-shadow: none; }
.account-shell .account-brand strong { font-size: 1.35rem; letter-spacing: -.045em; }
.account-shell .account-brand small, .account-shell .account-sidebar-foot, .account-shell .account-nav span { display: none; }
.account-shell .account-sidebar nav { display: flex; align-self: stretch; align-items: stretch; gap: 26px; }
.account-shell .account-nav {
  display: block; width: auto; min-height: 0; padding: 0 2px; border: 0; border-bottom: 2px solid transparent;
  border-radius: 0; background: transparent; box-shadow: none; color: #60667b; font-size: .91rem; font-weight: 600; white-space: nowrap;
}
.account-shell .account-nav:hover { background: transparent; color: #2949d7; }
.account-shell .account-nav.is-active { background: transparent; box-shadow: none; border-bottom-color: #3155f5; color: #151822; }
.account-shell .account-main { max-width: 1168px; margin: 0 auto; padding: 0 clamp(20px, 3vw, 40px) 72px; }
.account-shell .account-topbar { min-height: 0; margin: 0; padding: 38px 0 25px; gap: 20px; }
.account-shell .account-topbar .account-kicker { display: none; }
.account-shell .account-topbar h1 { margin: 0; font-size: clamp(1.7rem, 2.5vw, 2.1rem); font-weight: 760; }
.account-shell .account-view, .account-shell .account-status { margin: 0; }
.account-shell .account-locale-message { margin: 0 0 12px; }
.account-shell .account-locale-message:empty { display: none; }
.account-shell #researchView { gap: 22px; }
.account-shell #researchView > .welcome-purchase.is-paid {
  display: grid; grid-template-columns: minmax(0, 1fr) minmax(240px, .75fr);
  grid-template-rows: auto auto auto; gap: 6px 32px; align-items: center;
  padding: clamp(28px, 3vw, 38px); border: 1px solid #dfe5f2; border-radius: 18px;
  background: #fff; color: #151822; box-shadow: 0 12px 36px #25376508;
}
.account-shell .welcome-purchase.is-paid .welcome-purchase-heading { grid-column: 1; align-self: end; }
.account-shell .welcome-purchase.is-paid .welcome-purchase-heading .account-kicker { display: none; }
.account-shell .welcome-purchase.is-paid h2 {
  margin: 0; color: #3155f5; font: 750 .78rem/1.4 Inter, ui-sans-serif, system-ui, sans-serif;
  letter-spacing: .08em; text-transform: uppercase;
}
.account-shell .welcome-purchase.is-paid .welcome-research-subject {
  grid-column: 1; margin: 4px 0 0; color: #151822; font-size: clamp(1.6rem, 2.7vw, 2.25rem);
  font-weight: 760; line-height: 1.16; letter-spacing: -.035em;
}
.account-shell .welcome-purchase.is-paid .welcome-research-market {
  grid-column: 1; margin: 0; color: #60667b; font-size: .9rem; font-weight: 550;
}
.account-shell .welcome-purchase.is-paid #welcomeStatus {
  grid-column: 2; grid-row: 1 / 4; margin: 0; padding: 18px 20px;
  border: 1px solid #dfe5f2; border-radius: 12px; background: #f5f7ff;
  color: #303b5a; font-size: .94rem; line-height: 1.5;
}
.account-shell .welcome-purchase.is-paid.needs-review #welcomeStatus {
  border-color: #f5d3c9; background: #fff8f5; color: #6c3932;
}
.account-shell .welcome-purchase.is-paid .welcome-report-link { grid-column: 1; }
.account-shell .account-management { margin: 0; border-color: #dfe5f2; border-radius: 14px; box-shadow: none; }
.account-shell .account-management > summary { min-height: 66px; padding: 15px 22px; font-size: .98rem; }
.account-shell .account-management > summary::after { font-size: 1.2rem; }
.account-shell .account-management > summary small { font-size: .83rem; }
.account-shell .account-management[open] > summary small { display: none; }
.account-shell .account-management-content { display: flex; flex-direction: column; gap: 18px; padding: 24px; }
.account-shell .account-management .billing-overview {
  display: grid; grid-template-columns: minmax(0,1fr) minmax(110px,.35fr) auto;
  align-items: center; gap: 22px; padding: 0; box-shadow: none;
}
.account-shell .account-management .billing-plan-copy .account-kicker { display: none; }
.account-shell .account-management .billing-plan-copy > strong { margin: 0; font-size: 1.12rem; }
.account-shell .account-management .billing-plan-copy small { font-size: .82rem; }
.account-shell .account-management .billing-credit-count { padding: 0 0 0 22px; }
.account-shell .account-management .billing-credit-count strong { margin-top: 0; font-size: 1.55rem; }
.account-shell .account-management .billing-plan-link { border: 0; background: #ff795e; color: #151822; font-weight: 750; }
.account-shell .account-management .billing-next-step { order: 2; padding: 0; font-size: .82rem; }
.account-shell .account-management:not(.plan-list-open) .billing-next-step { display: none; }
.account-shell .account-management .credit-policy { order: 3; padding: 14px 0 0; border-top: 1px solid #e8ebf3; }
.account-shell .account-management .credit-policy summary { color: #4e5d80; font-size: .85rem; font-weight: 650; }
.account-shell .account-management .commercial-purchase { order: 1; }
.account-shell .account-management:not(.plan-list-open) .commercial-purchase:not(.has-pending) { display: none; }
.account-shell .account-management .commercial-purchase {
  padding: 22px 0 0; border: 0; border-top: 1px solid #e8ebf3; border-radius: 0; background: transparent;
}
.account-shell .commercial-purchase > header { align-items: center; }
.account-shell .commercial-purchase h2 { margin: 5px 0 0; font-size: 1.35rem; letter-spacing: -.02em; }
.account-shell .commercial-purchase > p { max-width: 62ch; margin: 12px 0 0; color: #60667b; font-size: .86rem; }
.account-shell .commercial-purchase label { font-size: .82rem; color: #4e5d80; }
.account-shell .commercial-plan-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; margin-top: 18px; }
.account-shell .commercial-plan-card { gap: 8px; padding: 18px; border-color: #dfe5f2; border-radius: 12px; box-shadow: none; }
.account-shell .commercial-plan-card h3 { color: #3155f5; font-size: .82rem; text-transform: uppercase; letter-spacing: .06em; }
.account-shell .commercial-plan-card .commercial-price { color: #151822; font-size: 1.7rem; }
.account-shell .commercial-plan-card p { font-weight: 700; }
.account-shell .commercial-plan-card small { color: #60667b; font-size: .8rem; }
.account-shell .commercial-plan-card button { background: #3155f5; border-radius: 8px; }
@media (max-width: 760px) {
  .account-shell .account-sidebar { flex-wrap: wrap; gap: 0; padding: 15px 20px 0; }
  .account-shell .account-sidebar nav { width: 100%; gap: 16px; min-height: 48px; overflow-x: auto; flex-wrap: nowrap; }
  .account-shell .account-nav { flex: 0 0 auto; }
  .account-shell .account-topbar { padding: 28px 0 20px; align-items: flex-start; }
  .account-shell #researchView > .welcome-purchase.is-paid { grid-template-columns: 1fr; gap: 6px; }
  .account-shell .welcome-purchase.is-paid #welcomeStatus { grid-column: 1; grid-row: auto; margin-top: 12px; }
  .account-shell .account-management .billing-overview { grid-template-columns: minmax(0,1fr) auto; }
  .account-shell .account-management .billing-actions { grid-column: 1 / -1; justify-content: flex-start; }
}
@media (max-width: 700px) { .account-shell .commercial-plan-grid { grid-template-columns: 1fr; } }
@media (max-width: 540px) {
  .account-shell .account-topbar { flex-direction: column; gap: 16px; }
  .account-shell .topbar-actions { width: 100%; justify-content: space-between; }
  .account-shell .account-management-content { padding: 20px; }
  .account-shell .account-management .billing-overview { gap: 12px; }
  .account-shell .account-management .billing-credit-count { padding-left: 14px; }
}

/* A report is the useful object; duplicate dashboard counters are not. */
.account-shell #researchView > .view-intro,
.account-shell #researchView > .summary-strip { display: none; }
.account-shell .report-row {
  min-height: 96px; padding: 20px 24px; border-radius: 12px;
  grid-template-columns: minmax(0, 1fr) minmax(110px, .27fr) auto auto;
  align-items: center; gap: 14px 24px; box-shadow: none;
}
.account-shell .report-row::before { display: none; }
.account-shell .report-row .report-primary { grid-column: auto; }
.account-shell .report-row .report-primary strong { font-size: 1.06rem; }
.account-shell .report-row .row-actions {
  grid-column: auto; justify-content: flex-end; border: 0; padding: 0; margin: 0;
}
.account-shell .report-row .row-actions :is(a, button) { white-space: nowrap; }
@media (max-width: 760px) {
  .account-shell .report-row { grid-template-columns: minmax(0, 1fr) auto; }
  .account-shell .report-row .report-primary { grid-column: 1 / -1; }
  .account-shell .report-row .row-actions { grid-column: 1 / -1; justify-content: flex-start; }
}

/* Shared identity with the published NichLab landing. Applied to the
   private product-decision release only; the frozen public asset tree stays put. */
:root,
.public-access,
.account-shell {
  --ink: #151822;
  --muted: #515969;
  --line: #dfe3ed;
  --soft: #f7f8fc;
  --teal: #3155f5;
  --teal-dark: #2949d7;
  --gold: #3155f5;
  --coral: #ff795e;
  font-family: "DM Sans", Arial, sans-serif;
}
body, button, input, select, textarea { font-family: "DM Sans", Arial, sans-serif; }
.public-access,
.account-shell { background: #f7f8fc; color: #151822; }
.public-access-copy { background: #3155f5; }
.public-access .account-brand,
.account-shell .account-brand { gap: 9px; color: #151822; }
.public-access .account-brand .account-brand-mark,
.account-shell .account-brand .account-brand-mark {
  position: relative;
  display: grid;
  place-items: center;
  flex: none;
  width: 34px;
  height: 36px;
  border: 0;
  border-radius: 8px;
  background: #3155f5;
  box-shadow: none;
  color: #fff;
  font: 400 25px/1 "DM Serif Display", Georgia, serif;
}
.account-brand-mark > span {
  position: absolute;
  top: 6px;
  right: 5px;
  width: 5px;
  height: 5px;
  border-radius: 50%;
  background: #ff795e;
}
.public-access .account-brand strong,
.account-shell .account-brand strong {
  color: #151822;
  font: 700 22px/1 "DM Sans", Arial, sans-serif;
  letter-spacing: -.04em;
}
.account-brand strong > span { color: #3155f5; }
.public-access .account-brand small,
.account-shell .account-brand small { display: none; }
.public-access-header,
.account-shell .account-sidebar { border-color: #dfe3ed; }
.account-shell .account-sidebar { background: #fff; }
.account-shell .account-nav.is-active { border-bottom-color: #3155f5; }
.account-shell .account-nav:hover { color: #2949d7; }
.account-shell .account-topbar h1 { color: #151822; font-family: "DM Sans", Arial, sans-serif; }
.public-access-panel .account-login h2,
.public-access-copy h1 { font-family: "DM Sans", Arial, sans-serif; }
.account-shell :is(button, a, select, input):focus-visible,
.public-access :is(button, a, select, input):focus-visible {
  outline-color: #3155f5;
}
