/* Account-only workspace. Shared checkout and public pages keep their layout. */
.extension-start { display: flex; align-items: center; gap: 16px; padding: 16px 20px; margin-bottom: 24px; border: 1px solid #d9e3f2; border-radius: 9px; background: #f0f5fd; }
.extension-start-icon { display: grid; place-items: center; flex: 0 0 36px; height: 36px; border: 1px solid #d1def4; border-radius: 9px; color: #245fbc; background: #fff; font-size: 23px; font-weight: 700; }
.extension-start-copy { flex: 1; min-width: 0; }
.extension-start-copy h2 { margin: 0 0 4px; color: #263248; font-size: 15px; font-weight: 600; line-height: 1.4; letter-spacing: 0; }
.extension-start-copy p { max-width: 690px; margin: 0; color: #58677c; font-size: 13px; line-height: 1.5; }
.extension-start-actions { display: flex; flex-direction: column; align-items: center; flex: 0 0 auto; gap: 3px; }
.extension-install-link { display: inline-flex; align-items: center; justify-content: center; gap: 10px; min-height: 40px; padding: 9px 16px; border-radius: 7px; background: #1769e8; color: #fff; font-size: 13px; font-weight: 600; white-space: nowrap; }
.extension-install-link:hover { color: #fff; background: #105acb; text-decoration: none; }
.extension-open-link { display: inline-flex; align-items: center; gap: 4px; min-height: 28px; color: #506685; font-size: 11px; }
@media (max-width: 700px) {
  .extension-start { flex-wrap: wrap; align-items: flex-start; gap: 10px 12px; padding: 16px; margin-bottom: 20px; }
  .extension-start-icon { flex-basis: 30px; height: 30px; border-radius: 7px; font-size: 20px; }
  .extension-start-copy { flex-basis: calc(100% - 42px); }
  .extension-start-copy h2 { font-size: 14px; }
  .extension-start-copy p { font-size: 12px; }
  .extension-start-actions { width: 100%; gap: 0; }
  .extension-install-link { width: 100%; min-height: 44px; }
  .extension-open-link { min-height: 40px; font-size: 12px; }
}
body:has(#portal:not([hidden])) {
  --portal-ink: #243248;
  --portal-muted: #617087;
  --portal-line: #e1e5eb;
  color: var(--portal-ink);
  background: #f6f8fb;
  font-size: 14px;
  line-height: 1.5;
}
body:has(#portal:not([hidden])) .shell { max-width: 1400px; padding: 0 32px; }
body:has(#portal:not([hidden])) header { padding: 18px 0; border-color: var(--portal-line); }
body:has(#portal:not([hidden])) header nav { gap: 24px; font-size: 14px; }
body:has(#portal:not([hidden])) #referrals-link { display: none; }
body:has(#portal:not([hidden])) .brand { font-size: 16px; gap: 10px; }
body:has(#portal:not([hidden])) .mark { width: 30px; height: 30px; font-size: 20px; border-radius: 8px; }
body:has(#portal:not([hidden])) main { padding: 24px 0 12px; }
/* Keep the page heading available to assistive technology. */
body:has(#portal:not([hidden])) #account-heading { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
body:has(#portal:not([hidden])) #invite-manual { margin: 20px 0 0 224px; font-size: 12px; }
body:has(#portal:not([hidden])) footer { margin-left: 224px; padding: 16px 0 24px; border-top: 1px solid var(--portal-line); font-size: 12px; color: var(--portal-muted); }
.portal { display: grid; grid-template-columns: 196px minmax(0,1fr); align-items: start; gap: 28px; min-height: 490px; }
.portal-sidebar { position: sticky; top: 24px; min-width: 0; }
.portal-content, #portal-pages, #portal-pages > section { min-width: 0; }
.portal-sidebar .workspace { background: none; border: 0; border-bottom: 1px solid var(--portal-line); border-radius: 0; padding: 0 0 18px; margin: 0 0 18px; }
.portal-sidebar .workspace > label { font-size: 12px; color: var(--portal-muted); }
.portal-sidebar .workspace select { width: 100%; min-width: 0; margin: 5px 0 10px; font-size: 14px; min-height: 40px; padding: 7px 9px; }
.portal-sidebar .workspace-meta { display: flex; flex-wrap: wrap; gap: 7px; align-items: center; font-size: 12px; line-height: 1.5; color: var(--portal-muted); }
.portal-sidebar .workspace-meta #access { width: 100%; }
.portal-sidebar #paid-cabinets, .portal-sidebar #cancel-renewal, .portal-sidebar #renewal-note { display: none; }
.portal-tabs { display: flex; flex-direction: column; gap: 3px; padding: 0; margin: 0; background: none; border-radius: 0; overflow: visible; }
.portal-tabs button { display: flex; align-items: center; gap: 10px; flex: none; width: 100%; text-align: left; padding: 10px 11px; min-height: 42px; border: 0; border-radius: 7px; font-size: 14px; font-weight: 500; color: #57657a; background: transparent; box-shadow: none; }
.portal-tabs button:hover { background: #edf0f5; color: var(--portal-ink); }
.portal-tabs [aria-current=page] { color: #145cc5; background: #e9f0fd; font-weight: 600; box-shadow: none; }
.portal-tabs .rnp-beta { margin-left: auto; font-size: 10px; padding: 1px 5px; background: #e9edf3; color: #657083; font-weight: 500; }
.portal-seller { display: block; margin: 22px 11px 0; font-size: 13px; color: var(--portal-muted); }
.portal h2 { font-size: 22px; line-height: 1.35; font-weight: 650; letter-spacing: -.02em; margin: 0 0 12px; }
.portal h3 { font-size: 16px; font-weight: 600; margin: 16px 0 6px; }
.portal p { margin-top: 8px; margin-bottom: 8px; }
.portal .muted { font-size: 14px; color: var(--portal-muted); line-height: 1.5; }
.portal .fine { font-size: 12px; color: var(--portal-muted); }
.portal .eyebrow { font-size: 11px; font-weight: 500; letter-spacing: .035em; color: var(--portal-muted); }
.portal .tag { padding: 4px 8px; font-size: 12px; font-weight: 500; background: #eef3f9; color: #536d8b; border-radius: 4px; }
.portal button { font-size: 14px; min-height: 40px; padding: 8px 13px; border-radius: 7px; }
.portal button:not(.primary):not([aria-current=page]):not(.on) { border-color: #d6dde7; }
.portal input, .portal select { font-size: 14px; min-height: 42px; padding: 8px 10px; border-radius: 7px; border-color: #ced6e1; }
.portal label { font-size: 13px; color: #58667a; }
.portal input[type=checkbox] { min-height: 16px; height: 16px; width: 16px; }
.portal .check { font-size: 13px; gap: 9px; }
.portal .card { border-color: var(--portal-line); border-radius: 10px; padding: 20px; margin-top: 16px; box-shadow: none; }
.portal .notice { border-radius: 7px; font-size: 13px; padding: 10px 12px; }
.portal-section-head { margin: 0 0 16px; align-items: center; gap: 16px; }
.portal-section-head h2 { margin: 0; }
.portal-section-head .muted { margin: 5px 0 0; }
.portal-period { gap: 10px 16px; margin: 0 0 20px; font-size: 13px; color: var(--portal-muted); }
.portal-period > span:empty { display: none; }
.portal-period .tag { color: #32705b; background: #eaf4ef; }
.portal-store-grid { display: block; border: 1px solid var(--portal-line); border-radius: 9px; overflow: hidden; background: white; }
.portal .portal-store { display: grid; grid-template-columns: minmax(200px,1.3fr) minmax(150px,1fr) auto auto; gap: 16px; align-items: center; margin: 0; padding: 20px; border: 0; border-radius: 0; }
.portal .portal-store + .portal-store { border-top: 1px solid var(--portal-line); }
.portal-store-name { min-width: 0; }
.portal .portal-store h3 { margin: 0 0 4px; font-size: 15px; overflow-wrap: anywhere; }
.portal-store-name .muted { font-size: 12px; margin: 0; }
.portal-store-state { display: flex; flex-direction: column; flex-wrap: nowrap; gap: 4px; margin: 0; font-size: 13px; line-height: 1.45; }
.portal-store-state .connected { color: #477361; }
.portal-store-plan { justify-self: start; }
.portal-actions { flex-wrap: wrap; justify-content: flex-end; gap: 6px; max-width: 240px; }
.portal .portal-actions button { font-size: 13px; min-height: 36px; padding: 7px 11px; }
.portal .portal-empty { padding: 30px; }
.portal .portal-connect { margin-top: 20px; }
.portal-connect .section-head { margin-bottom: 18px; gap: 12px; }
.portal-connect h2 { font-size: 21px; }
.portal-form-grid { gap: 14px; }
.portal-connect .portal-wide { margin: 0; }
.portal-connect details { margin-top: 16px; }
.portal-connect summary, .portal-help summary { font-size: 12px; cursor: pointer; color: #456588; }
.portal-key-consent { margin: 18px 0; }
.portal-help { margin: 10px 0 20px; max-width: 680px; }
.portal-help p { font-size: 12px; }
.portal .portal-alert { display: flex; align-items: center; flex-direction: row; padding: 16px 18px; margin-top: 10px; }
.portal-alert strong { font-size: 15px; font-weight: 600; }
.portal-alert .muted { font-size: 13px; }
.portal-toggle { min-width: 130px; }
.portal .portal-toggle.on { background: #f1f7f3; border-color: #d7e5db; color: #397256; }
.portal .member { padding: 12px 0; }
.portal .member strong { font-size: 14px; font-weight: 600; }
.portal .member small { font-size: 12px; }
.portal .member button { min-height: 36px; font-size: 13px; }
.portal-member-access { padding: 16px 0; }
.portal-member-access:last-child { padding-bottom: 0; }
.portal-access-picks { gap: 8px 18px; margin: 12px 0; }
.portal #team-note:empty { display: none; }
.portal #portal-settings > .profile { max-width: 760px; }
.portal #portal-settings > .card { max-width: 760px; }
.portal-news { margin-top: 22px; }
.portal-news > h2 { margin: 0 0 6px; font-size: 17px; }
.portal-news > .muted { margin: 0 0 16px; }
.portal-news #marketing-status { margin: 12px 0 0; }
.portal-news #marketing-status[data-state="on"] { color: #14775b; }
.portal-news #marketing-status[data-state="error"] { color: #b33b37; }
/* Partner data uses the same working scale, without promotional decoration. */
.portal .ref-top { grid-template-columns: minmax(0,1.7fr) minmax(210px,1fr); gap: 14px; align-items: stretch; }
.portal .ref-top .card { padding: 20px; }
.portal .ref-rate { color: var(--portal-ink); border-color: var(--portal-line); background: #fff; }
.portal .ref-rate:after { display: none; }
.portal .ref-rate p { color: var(--portal-muted); font-size: 13px; max-width: 240px; }
.portal .ref-rate h2 { font-size: 15px; margin: 7px 0; font-weight: 500; }
.portal .ref-number, .portal .ref-number span { font-size: 28px; font-weight: 600; letter-spacing: -.025em; }
.portal .ref-code-row, .portal .ref-link-row { margin: 10px 0 14px; gap: 8px; }
.portal .ref-code-row input { font-size: 15px; font-weight: 600; background: #f6f8fb; }
.portal .ref-link-row input { font-size: 13px; }
.portal .ref-benefit { flex-direction: row; flex-wrap: wrap; align-items: baseline; gap: 4px 8px; }
.portal .ref-benefit strong { font-size: 15px; font-weight: 600; color: var(--portal-ink); }
.portal .ref-benefit span { font-size: 12px; color: var(--portal-muted); }
.portal .ref-stats { gap: 14px; }
.portal .ref-stats p { font-size: 12px; margin: 0 0 7px; }
.portal .ref-stats strong, .portal .balance-number { font-size: 22px; font-weight: 600; letter-spacing: -.02em; font-variant-numeric: tabular-nums; }
.portal .ref-balance { padding: 20px; background: #fff; border-color: var(--portal-line); }
.portal .ref-balance button { min-height: 36px; }
.portal .ref-operation { padding: 12px 0; font-size: 13px; }
.portal .ref-operation strong { font-size: 14px; }
.portal .ref-empty { padding: 18px 0; font-size: 13px; }
.portal .ref-rules { font-size: 13px; }
.portal .ref-intro { gap: 14px; font-size: 12px; }
.portal .ref-intro span { padding: 10px 14px; }
.portal .ref-panel dialog { border-radius: 12px; padding: 22px; }
/* Numbers remain readable; supporting copy does not compete with the report. */
.portal .rnp-controls { gap: 10px; margin: 16px 0 12px; }
.portal .rnp-controls label { min-width: 120px; font-size: 12px; }
.portal .rnp-kpis strong, .portal .rnp-v2 .rnp-kpi strong { font-size: 21px; }
.portal .rnp-kpis > div { padding: 14px 16px; }
.portal .rnp-v2 .rnp-kpi { min-height: 82px; }
.portal .rnp-table-heading h3, .portal .rnp-stores h3 { font-size: 14px; }
.portal .rnp-table-wrap { border-radius: 8px; }
.portal .rnp-stores > .muted { font-size: 12px; }
@media (max-width: 1180px) {
  .portal { grid-template-columns: 180px minmax(0,1fr); gap: 24px; }
  body:has(#portal:not([hidden])) #invite-manual, body:has(#portal:not([hidden])) footer { margin-left: 204px; }
  .portal .portal-store { grid-template-columns: minmax(160px,1fr) minmax(140px,1fr) auto; gap: 12px; }
  .portal-store-plan { grid-column: 1; }
  .portal-actions { grid-column: 3; grid-row: 1 / span 2; }
}
@media (max-width: 900px) {
  body:has(#portal:not([hidden])) .shell { padding: 0 20px; }
  .portal { grid-template-columns: 160px minmax(0,1fr); gap: 20px; }
  body:has(#portal:not([hidden])) #invite-manual, body:has(#portal:not([hidden])) footer { margin-left: 180px; }
  .portal-tabs button { padding: 10px 8px; font-size: 13px; }
  .portal .portal-store { grid-template-columns: minmax(0,1fr) auto; gap: 10px; padding: 16px; }
  .portal-store-state { grid-column: 1; }
  .portal-store-plan { grid-column: 2; grid-row: 1; }
  .portal-actions { grid-column: 2; grid-row: 2; max-width: 170px; }
  .portal .ref-top { grid-template-columns: 1fr; }
  .portal .ref-rate { display: grid; grid-template-columns: auto 1fr; align-items: center; column-gap: 12px; }
  .portal .ref-rate p { grid-column: 1/-1; max-width: none; }
  .portal .invite-fields { grid-template-columns: 1fr; }
}
@media (max-width: 700px) {
  body:has(#portal:not([hidden])) .shell { padding: 0 16px; }
  body:has(#portal:not([hidden])) header { padding: 14px 0; gap: 12px; }
  body:has(#portal:not([hidden])) header nav { font-size: 12px; gap: 14px; }
  body:has(#portal:not([hidden])) main { padding-top: 16px; }
  .portal { display: block; min-height: 0; }
  .portal-sidebar { position: static; margin-bottom: 20px; }
  .portal-sidebar .workspace { padding: 0; margin-bottom: 14px; border: 0; }
  .portal-sidebar .workspace > label { display: none; }
  .portal-sidebar .workspace select { max-width: 240px; margin: 0 0 8px; font-size: 14px; min-height: 40px; }
  .portal-sidebar .workspace-meta { gap: 8px; }
  .portal-sidebar .workspace-meta #access { width: auto; }
  .portal-tabs { flex-direction: row; flex-wrap: nowrap; overflow-x: auto; padding-bottom: 5px; gap: 4px; }
  .portal-tabs button { width: auto; min-height: 40px; padding: 9px 11px; font-size: 13px; }
  .portal-tabs .rnp-beta { margin-left: 4px; }
  .portal-seller { display: none; }
  .portal h2 { font-size: 21px; }
  .portal button { min-height: 40px; }
  .portal input, .portal select { min-height: 42px; font-size: 16px; }
  .portal input[type=checkbox] { min-height: 18px; width: 18px; height: 18px; }
  .portal .card { padding: 16px; }
  .portal-section-head { flex-direction: row; align-items: center; gap: 10px; margin-bottom: 14px; }
  .portal-section-head .primary { font-size: 12px; padding: 8px 10px; }
  .portal-period { gap: 8px 12px; margin-bottom: 12px; }
  .portal-period a { margin-left: 0; }
  .portal .portal-actions button { min-height: 36px; }
  .portal-store-grid { border-radius: 8px; }
  .portal .portal-alert { gap: 12px; padding: 14px; }
  .portal-alert .muted { font-size: 11px; }
  .portal-toggle { min-width: 105px; }
  .portal .portal-toggle { padding: 8px; font-size: 12px; }
  .portal .ref-stats { gap: 8px; }
  .portal .ref-stats .card { padding: 13px 10px; }
  .portal .ref-stats strong { font-size: 19px; }
  .portal .ref-stats p { font-size: 11px; }
  .portal .ref-link-row input, .portal .ref-code-row input { font-size: 16px; }
  .portal .ref-rate { display: block; }
  .portal .rnp-controls label { flex-basis: calc(50% - 10px); min-width: 0; }
  .portal .rnp-controls label:first-child { flex-basis: 100%; }
  .portal .rnp-controls input, .portal .rnp-controls select { font-size: 14px; }
  .portal .rnp-kpis > div { padding: 12px; }
  .portal .rnp-kpis strong, .portal .rnp-v2 .rnp-kpi strong { font-size: 20px; }
  body:has(#portal:not([hidden])) #invite-manual, body:has(#portal:not([hidden])) footer { margin-left: 0; }
}
@media (prefers-reduced-motion: reduce) { .portal * { scroll-behavior: auto !important; } }
.portal .portal-sidebar .workspace { padding: 0 0 18px; margin: 0 0 18px; border-radius: 0; background: transparent; }
.portal #ref-dashboard { display: grid; grid-template-columns: minmax(0,1.65fr) minmax(230px,1fr); gap: 14px; margin-top: 16px; }
.portal #ref-dashboard > .ref-top { display: contents; }
.portal #ref-dashboard .card { margin: 0; }
.portal #ref-dashboard .ref-code-card { grid-row: span 2; }
.portal #ref-dashboard .ref-stats { display: block; border: 1px solid var(--portal-line); border-radius: 9px; background: #fff; overflow: hidden; }
.portal #ref-dashboard .ref-stats .card { border: 0; border-radius: 0; padding: 13px 18px; display: flex; align-items: baseline; justify-content: space-between; gap: 12px; }
.portal #ref-dashboard .ref-stats .card + .card { border-top: 1px solid var(--portal-line); }
.portal #ref-dashboard .ref-stats p { margin: 0; }
.portal #ref-dashboard .ref-stats strong { font-size: 18px; white-space: nowrap; }
.portal #ref-dashboard > .ref-balance, .portal #ref-dashboard > .ref-history, .portal #ref-dashboard > .ref-rules { grid-column: 1/-1; }
@media (max-width: 900px) {
  .portal #ref-dashboard { grid-template-columns: 1fr; }
  .portal #ref-dashboard .ref-code-card { grid-row: auto; }
}
@media (max-width: 700px) {
  .portal .portal-sidebar .workspace { padding: 0; margin: 0 0 14px; }
}
.portal-tabs button[aria-current=page]:hover { color: #145cc5; background: #e9f0fd; }
@media (max-width: 700px) {
  .portal-tabs { scrollbar-width: none; }
  .portal-tabs::-webkit-scrollbar { display: none; }
}

/* Clear hierarchy and verified extension state. */
.extension-start-copy h2 { font-size: 16px; }
.extension-start-copy p { font-size: 14px; max-width: 760px; }
.extension-start-actions { gap: 4px; }
.extension-start[data-state="connected"] { background: #fff; border-color: #e0e6ef; padding: 14px 18px; }
.extension-start[data-state="connected"] .extension-start-icon { border-color: #d2e5db; background: #edf7f1; color: #297151; font-size: 19px; }
.extension-start[data-state="connected"] .extension-start-copy h2 { font-size: 15px; }
.extension-start[data-state="connected"] .extension-start-copy p { font-size: 13px; max-width: 720px; }
.extension-start[data-state="connected"] .extension-start-actions { flex-direction: row; gap: 14px; }
.extension-start-secondary { white-space: nowrap; }
.extension-state-action { background: #1769e8; color: #fff; border: 1px solid #1769e8; border-radius: 7px; min-height: 40px; padding: 9px 16px; font-size: 13px; font-weight: 600; }
.extension-state-action:hover { background: #105acb; }
.extension-start-secondary { color: #617087; font-size: 12px; padding: 3px; }
.portal-icon { width: 18px; height: 18px; flex: 0 0 18px; fill: none; stroke: currentColor; stroke-width: 1.65; stroke-linecap: round; stroke-linejoin: round; }
.portal-tab-label { white-space: nowrap; }
.portal .portal-tabs .rnp-beta { font-size: 10px; padding: 2px 5px; margin-left: auto; }
.portal-section-head .eyebrow { font-size: 10px; letter-spacing: .08em; margin: 0 0 5px; color: #738097; }
.portal-store-overview { display: flex; align-items: center; gap: 28px; padding: 15px 0 18px; border-top: 1px solid var(--portal-line); }
.portal-store-overview > div { display: flex; align-items: baseline; gap: 9px; }
.portal-store-overview strong { font-size: 17px; font-weight: 600; color: var(--portal-ink); font-variant-numeric: tabular-nums; white-space: nowrap; }
.portal-store-overview span { font-size: 12px; color: var(--portal-muted); }
.portal .portal-store { row-gap: 12px; padding: 18px 20px; }
.portal-store-name { display: flex; align-items: center; gap: 12px; }
.portal-store-symbol { display: grid; place-items: center; flex: 0 0 36px; height: 36px; background: #edf2fa; border: 1px solid #e0e7f2; border-radius: 9px; font-size: 16px; font-weight: 600; color: #526989; }
.portal-store-plan[data-kind="ready"] { background: #edf6f0; color: #356d51; }
.portal-store-plan[data-kind="attention"] { background: #fff5e8; color: #966022; }
.portal-store-state .needs-setup { color: #896b49; }
.portal-store-details { grid-column: 1 / -1; display: flex; align-items: center; flex-wrap: wrap; gap: 6px 18px; color: var(--portal-muted); font-size: 12px; padding-top: 11px; border-top: 1px solid #edf0f5; }
.portal button.portal-inline-action { min-height: 28px; margin: -3px 0 -3px auto; padding: 3px 0; color: #49658a; background: transparent; border: 0; border-radius: 3px; font-size: 12px; }
.portal button.portal-inline-action:hover { text-decoration: underline; }
.portal .portal-report-button { background: #eff4fd; color: #245caa; border-color: #d9e4f6; }
.portal .portal-empty { padding: 32px; max-width: none; }
.portal-empty > .portal-icon { width: 28px; height: 28px; color: #6383ae; }
.portal-empty h3 { margin: 12px 0 6px; font-size: 18px; }
.portal-empty p { max-width: 540px; }
.portal .portal-connect { padding: 24px; scroll-margin-top: 20px; }
.portal-connect .section-head { align-items: start; }
.portal-connect .section-head .eyebrow { margin: 0 0 5px; font-size: 10px; letter-spacing: .08em; }
.portal-connect-intro { color: var(--portal-muted); font-size: 14px; max-width: 760px; }
/* Connect each source to its fields: obtain on the left, paste on the right. */
.portal .portal-connect-step { padding: 0; margin-top: 18px; border: 1px solid #d7e1ee; border-radius: 10px; overflow: hidden; }
.portal .portal-step-heading { display: flex; align-items: center; gap: 12px; margin: 0; padding: 15px 20px; background: #eff4fb; border-bottom: 1px solid #dce5f0; }
.portal-step-heading > div { flex: 1; min-width: 0; }
.portal .portal-step-number { display: inline-flex; align-items: center; justify-content: center; flex: 0 0 32px; width: 32px; height: 32px; border-radius: 8px; background: #2465cc; color: #fff; font-size: 15px; font-weight: 650; }
.portal .portal-step-heading h3 { margin: 0; color: #1e304a; font-size: 17px; line-height: 1.3; font-weight: 700; }
.portal .portal-step-heading p { margin: 3px 0 0; font-size: 12px; color: #596b84; }
.portal-api-type { flex: none; padding: 4px 8px; border: 1px solid #cedcef; border-radius: 4px; color: #36577f; background: #fff; font-size: 11px; font-weight: 600; }
.portal-step-layout { display: grid; grid-template-columns: 215px minmax(0,1fr); }
.portal-key-source { padding: 20px 18px; background: #f7f9fc; border-right: 1px solid #e2e8f0; min-width: 0; }
.portal-key-source > strong { display: block; color: #293d59; font-size: 13px; font-weight: 650; }
.portal .portal-key-source > p { margin: 5px 0 14px; font-size: 12px; color: #5e6d82; }
.portal-key-source > small { display: block; margin-top: 10px; font-size: 11px; line-height: 1.55; color: #596b84; }
.portal .portal-source-action { display: flex; align-items: center; justify-content: space-between; gap: 6px; min-height: 38px; padding: 8px 10px; border: 1px solid #b9cdec; border-radius: 6px; background: #e7effc; color: #1454ae; font-size: 12px; line-height: 1.4; font-weight: 650; text-decoration: none; }
.portal .portal-source-action:hover { background: #dbe8fc; border-color: #8faedb; }
.portal .portal-source-action:focus-visible { outline: 3px solid #7fa8e5; outline-offset: 2px; }
.portal-step-fields { padding: 20px; min-width: 0; }
.portal .portal-fields-title { margin: 0 0 15px; color: #263b57; font-size: 13px; font-weight: 650; }
.portal .portal-step-fields label { color: #283c58; font-weight: 600; font-size: 12px; }
.portal .portal-step-fields input { margin-top: 0; background: #fff; border-color: #bfcbdc; font-size: 13px; }
.portal .portal-connect .portal-field-heading { min-height: 26px; }
.portal .portal-step-fields input::placeholder { color: #7b889b; opacity: 1; }
.portal .portal-connect .portal-api-guide { padding: 3px 6px; background: #f0f5fc; border-radius: 4px; font-size: 11px; }
.portal .portal-connect .portal-api-guide:hover { background: #e5eefb; text-decoration: none; }
.portal .portal-connect .portal-field-hint { font-size: 11px; }
.portal-field-hint { display: block; color: #718097; font-size: 12px; margin-top: 5px; }
.portal .portal-key-help { margin-top: 14px; font-size: 13px; }
.portal-key-help summary { font-size: 13px; }
.portal-key-help p { color: var(--portal-muted); font-size: 13px; }
.portal .portal-ads-step { margin-top: 14px; }
.portal-step-body { padding: 0; }
.portal-step-body .portal-connect-intro { margin: 0 0 8px; font-size: 13px; }
.portal-api-link { display: inline-block; margin-bottom: 18px; font-size: 13px; }
.portal-connect-footer { margin-top: 20px; padding-top: 2px; border-top: 1px solid #e1e7ef; }
.portal .portal-key-consent { max-width: 760px; font-size: 13px; }
.portal-submit-row { display: flex; align-items: center; gap: 16px; }
.portal-submit-row > span { font-size: 12px; color: var(--portal-muted); }
.portal [data-form-status]:not([hidden]) { color: #9d432f; background: #fff5f1; padding: 10px 12px; border-radius: 6px; font-size: 13px; }
@media (max-width: 1180px) {
  .portal .portal-store { grid-template-columns: minmax(190px,1fr) minmax(150px,1fr) auto; }
  .portal-store-plan { grid-column: 1; grid-row: 2; }
  .portal .portal-store-details { grid-column: 1 / -1; grid-row: 3; }
  .portal-store-overview { gap: 18px; }
  .portal-store-overview > div { flex-direction: column; gap: 2px; }
}
@media (max-width: 900px) {
  .extension-start[data-state="connected"] .extension-start-actions { flex-direction: column; gap: 4px; }
  .portal-tabs button { gap: 7px; }
  .portal .portal-tabs .rnp-beta { font-size: 9px; padding: 1px 3px; }
  .portal .portal-store { grid-template-columns: minmax(0,1fr) auto; padding: 18px; }
  .portal-store-plan { grid-column: 2; grid-row: 1; }
  .portal-store-state { grid-column: 1; grid-row: 2; }
  .portal-actions { grid-column: 2; grid-row: 2; max-width: none; }
  .portal-step-layout { grid-template-columns: 190px minmax(0,1fr); }
  .portal .portal-step-fields .portal-form-grid { grid-template-columns: minmax(0,1fr); }
}
@media (max-width: 700px) {
  .extension-start-copy h2 { font-size: 15px; }
  .extension-start-copy p { font-size: 13px; }
  .extension-state-action { width: 100%; min-height: 44px; }
  .extension-start-secondary { min-height: 32px; display: inline-flex; align-items: center; }
  .extension-start[data-state="connected"] { gap: 10px; padding: 14px; }
  .extension-start[data-state="connected"] .extension-start-copy p { font-size: 12px; }
  .portal-tabs button { gap: 7px; }
  .portal-tabs .portal-icon { width: 16px; height: 16px; flex-basis: 16px; }
  .portal-section-head .eyebrow { display: none; }
  .portal-section-head .muted { font-size: 13px; }
  .portal-store-overview { gap: 12px; justify-content: space-between; padding: 14px 0; }
  .portal-store-overview > div { flex: 1; }
  .portal-store-overview strong { font-size: 16px; }
  .portal-store-overview span { font-size: 11px; }
  .portal .portal-store { grid-template-columns: minmax(0,1fr); gap: 12px; padding: 16px; }
  .portal-store-plan { grid-column: 1; grid-row: 2; margin-left: 48px; }
  .portal-store-state { grid-row: 3; flex-direction: row; flex-wrap: wrap; gap: 6px 16px; font-size: 12px; }
  .portal .portal-actions { grid-column: 1; grid-row: 4; justify-content: flex-start; max-width: none; }
  .portal .portal-actions button { min-height: 40px; }
  .portal .portal-store-details { grid-row: 5; gap: 4px; align-items: flex-start; flex-direction: column; }
  .portal button.portal-inline-action { margin: 0; min-height: 32px; }
  .portal .portal-connect { padding: 16px; }
  .portal-connect .section-head h2 { font-size: 19px; }
  .portal-connect-intro { font-size: 13px; }
  .portal .portal-step-heading { padding: 14px; gap: 10px; flex-wrap: wrap; }
  .portal .portal-step-heading h3 { font-size: 16px; }
  .portal-api-type { margin-left: 0; }
  .portal-step-layout { grid-template-columns: minmax(0,1fr); }
  .portal-key-source { padding: 14px; border-right: 0; border-bottom: 1px solid #e2e8f0; }
  .portal .portal-key-source > p { margin-bottom: 10px; }
  .portal-key-source > small { margin-top: 8px; }
  .portal .portal-source-action { min-height: 42px; justify-content: center; }
  .portal-step-fields { padding: 16px 14px; }
  .portal-form-grid { grid-template-columns: minmax(0,1fr); }
  .portal-submit-row { flex-direction: column; align-items: stretch; gap: 8px; }
  .portal-submit-row > span { text-align: center; }
}

.portal [data-form-status][data-state="checking"] { background: #eef4ff; color: #335f98; }

/* Explicit connection paths; free co-investment never requires advertising credentials. */
/* One primary onboarding route; explicit free links remain supported. */
.portal-connect-purpose{margin:20px 0 16px;padding:18px 20px;border:1px solid #d7e4f5;border-radius:10px;background:#f5f8fd}
.portal-connect-purpose .eyebrow{font-size:10px;letter-spacing:.09em;margin:0 0 8px;color:#516987}
.portal-connect-purpose h3{font-size:19px;line-height:1.3;margin:0 0 8px;color:#20344e}
.portal-connect-purpose>p:not(.eyebrow){font-size:13px;line-height:1.55;color:#5b6d85;margin:0;max-width:850px}
.portal-connect-route{list-style:none;display:flex;flex-wrap:wrap;gap:10px 24px;padding:0;margin:18px 0 0}
.portal-connect-route li{display:flex;align-items:center;gap:8px;font-size:12px;color:#526680}.portal-connect-route b{font-weight:inherit}
.portal-connect-route span{display:grid;place-items:center;width:23px;height:23px;border-radius:50%;font-size:11px;background:#e6edf7;color:#4e6583}
.portal-connect-route [aria-current=step]{font-weight:650;color:#1766db}.portal-connect-route [aria-current=step] span{background:#1766db;color:white}
.portal-connect-purpose [data-upgrade-connection]{margin-top:12px}.portal-connect-route[hidden],.portal .portal-ads-step[hidden],.portal-connect-purpose [data-upgrade-connection][hidden]{display:none}
@media(max-width:580px){.portal-connect-purpose{padding:16px}.portal-connect-purpose h3{font-size:17px}.portal-connect-route{display:grid;gap:10px}}

/* 2026-10-24: clear controls and compact connected state. */
.portal-menu-toggle{display:none}
.portal .portal-toggle{display:inline-flex;align-items:center;justify-content:flex-start;gap:9px;min-width:148px;min-height:44px;border:0;background:transparent;padding:8px;color:#42546b;font-size:13px}
.portal .portal-toggle.on{background:transparent;color:#245a46}.portal-switch-track{width:36px;height:22px;flex:none;border-radius:14px;background:#a2acba;position:relative}.portal-switch-track::after{content:'';position:absolute;width:18px;height:18px;border-radius:50%;background:white;left:2px;top:2px;box-shadow:0 1px 2px #1f293733;transition:transform .15s ease}.portal-toggle[aria-checked=true] .portal-switch-track{background:#237958}.portal-toggle[aria-checked=true] .portal-switch-track::after{transform:translateX(14px)}.portal-toggle:disabled{opacity:.6}
.portal-alert>div{min-width:0}.portal-alert .portal-inline-action{font-size:12px;padding:4px 0}
@media(max-width:700px){
 .portal .portal-menu-toggle{display:flex;align-items:center;justify-content:space-between;width:100%;min-height:44px;padding:10px 12px;border:1px solid #d4deec;border-radius:8px;background:white;color:#25364e;font-size:14px;text-align:left}
 .portal .portal-tabs{display:none;overflow:visible;flex-direction:column;width:100%;padding:6px;margin:6px 0 0;background:#fff;border:1px solid #dce3ed;border-radius:9px}
 .portal.portal-menu-open .portal-tabs{display:flex}.portal .portal-tabs button{width:100%;min-height:44px;font-size:14px}.portal .portal-tabs .rnp-beta{margin-left:auto}
 .extension-start[data-state=connected]{gap:8px;padding:10px 12px;margin-bottom:14px;align-items:center}
 .extension-start[data-state=connected] .extension-start-icon{flex-basis:26px;height:26px;font-size:16px}
 .extension-start[data-state=connected] .extension-start-copy h2{font-size:13px;margin:0}
 .extension-start[data-state=connected] .extension-start-copy p,.extension-start[data-state=connected] .extension-start-secondary{display:none}
 .extension-start[data-state=connected] .extension-start-actions{width:auto;margin:0;flex:0 0 100%}.extension-start[data-state=connected] .extension-state-action{min-height:40px}
 .portal .portal-alert{align-items:start;gap:8px;flex-wrap:wrap}.portal .portal-toggle{padding:4px 0;min-height:44px}
}
@media(prefers-reduced-motion:reduce){.portal-switch-track::after{transition:none}}


@media(max-width:700px){
 body:has(#portal:not([hidden])) .extension-start{padding:12px;margin-bottom:16px;gap:8px;align-items:center}
 body:has(#portal:not([hidden])) .extension-start-icon{width:26px;height:26px;flex-basis:26px;font-size:16px}
 body:has(#portal:not([hidden])) .extension-start-copy h2{font-size:13px;margin:0}
 body:has(#portal:not([hidden])) .extension-start-copy p,body:has(#portal:not([hidden])) .extension-open-link{display:none}
 body:has(#portal:not([hidden])) .extension-start-actions{margin:0;width:100%}
 body:has(#portal:not([hidden])) .extension-install-link{min-height:36px;padding:7px 12px;font-size:12px}
}
