:root {
  /*
   * Compatibility aliases for original NUMERA components.
   * Their values now come from the active universal palette.
   */
  --line:var(--border);
  --shadow:var(--surface-shadow);
  --hero-fill:var(--strong-surface);
}

* { box-sizing:border-box; }

html,body {
  margin:0;
  min-height:100%;
  font-family:Inter,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  background:var(--surface-2);
  color:var(--text);
}

button,input {
  font:inherit;
}

button {
  cursor:pointer;
}

body {
  overflow-x:hidden;
}

.ambient {
  position:fixed;
  width:420px;
  height:420px;
  border-radius:50%;
  filter:blur(100px);
  opacity:.08;
  pointer-events:none;
}

.ambient-a {
  top:-180px;
  right:-100px;
  background:var(--ambient-a);
}

.ambient-b {
  bottom:-220px;
  left:-100px;
  background:var(--ambient-b);
}

[hidden] {
  display:none !important;
}

.auth-view {
  min-height:100vh;
  display:grid;
  place-items:center;
  padding:32px 18px;
}

.auth-card {
  width:min(470px,100%);
  padding:36px;
  background:var(--surface);
  border:1px solid var(--border);
  border-radius:34px;
  box-shadow:var(--shadow);
  position:relative;
  z-index:1;
}

.brand {
  display:flex;
  justify-content:center;
  margin-bottom:18px;
}

.brand img,
.app-brand img {
  width:112px;
  height:auto;
}

.eyebrow {
  font-size:11px;
  font-weight:800;
  letter-spacing:.16em;
  color:var(--muted);
  margin:20px 0 8px;
}

h1 {
  font-size:42px;
  line-height:1.02;
  letter-spacing:-.055em;
  margin:0;
}

.lead {
  color:var(--muted);
  line-height:1.6;
  margin:14px 0 24px;
}

.orb {
  height:175px;
  position:relative;
  display:grid;
  place-items:center;
}

.orb-core {
  width:120px;
  height:120px;
  border-radius:50%;
  background:var(--object-surface);
  box-shadow:var(--object-shadow);
}

.orb-label {
  position:absolute;
  padding:7px 11px;
  border-radius:999px;
  background:var(--surface);
  border:1px solid var(--line);
  box-shadow:var(--surface-shadow);
  font-size:10px;
  font-weight:800;
  letter-spacing:.08em;
}

.orb-numa { top:14px; left:24%; }
.orb-connect { right:7%; top:72px; }
.orb-private { left:7%; bottom:30px; }

.auth-tabs {
  display:grid;
  grid-template-columns:1fr 1fr;
  padding:4px;
  background:var(--surface-2);
  border-radius:16px;
  margin-bottom:18px;
}

.tab {
  border:0;
  background:transparent;
  padding:11px;
  border-radius:12px;
  color:var(--muted);
  font-weight:700;
}

.tab.active {
  background:var(--surface);
  color:var(--text);
  box-shadow:var(--surface-shadow);
}

label {
  display:grid;
  gap:7px;
  color:var(--text-secondary);
  font-size:13px;
  font-weight:700;
  margin:14px 0;
}

input {
  width:100%;
  border:1px solid var(--line);
  background:var(--surface-soft);
  border-radius:14px;
  padding:13px 14px;
  outline:none;
}

input:focus {
  border-color:var(--border-strong);
  box-shadow:var(--focus-ring);
}

.check {
  display:flex;
  align-items:flex-start;
  gap:9px;
  font-weight:500;
}

.check input {
  width:auto;
  margin-top:3px;
}

.primary {
  width:100%;
  border:0;
  border-radius:15px;
  padding:14px;
  color:var(--strong-text);
  background:var(--strong-surface);
  box-shadow:var(--strong-shadow);
  font-weight:800;
}

.primary:hover {
  transform:translateY(-1px);
}

.divider {
  display:flex;
  align-items:center;
  gap:12px;
  margin:22px 0 14px;
  color:var(--muted);
  font-size:12px;
}

.divider::before,
.divider::after {
  content:"";
  height:1px;
  background:var(--line);
  flex:1;
}

.socials {
  display:grid;
  gap:9px;
}

.social {
  border:1px solid var(--line);
  background:var(--surface);
  border-radius:14px;
  padding:12px;
  font-weight:700;
  color:var(--text);
}

.google-mark {
  font-weight:900;
  margin-right:7px;
}

.apple-mark {
  margin-right:7px;
}

.back-link {
  display:block;
  text-align:center;
  margin-top:20px;
  color:var(--muted);
  text-decoration:none;
  font-size:13px;
}

.error {
  color:var(--danger-text);
  background:var(--danger-bg);
  border:1px solid var(--danger-border);
  padding:10px 12px;
  border-radius:12px;
  font-size:13px;
}

.app-header {
  position:sticky;
  top:0;
  z-index:10;
  min-height:72px;
  display:flex;
  align-items:center;
  gap:22px;
  padding:12px 24px;
  background:var(--header-surface);
  border-bottom:1px solid var(--line);
  backdrop-filter:blur(18px);
}

.app-brand img {
  width:92px;
}

.app-header nav {
  display:flex;
  gap:5px;
  flex:1;
  overflow-x:auto;
}

.app-header nav button {
  border:0;
  background:transparent;
  padding:9px 11px;
  border-radius:10px;
  color:var(--muted);
  white-space:nowrap;
}

.app-header nav button:hover {
  background:var(--surface-2);
  color:var(--text);
}

.avatar {
  width:40px;
  height:40px;
  border-radius:50%;
  border:1px solid var(--line);
  background:var(--strong-surface);
  color:var(--strong-text);
  font-weight:800;
}

.customer-content {
  width:min(1180px,100%);
  margin:0 auto;
  padding:42px 22px 70px;
}

.hero {
  background:var(--surface);
  border:1px solid var(--border);
  border-radius:32px;
  padding:36px;
  box-shadow:var(--shadow);
}

.eyebrow-small {
  color:var(--muted);
  font-size:11px;
  font-weight:800;
  letter-spacing:.15em;
}

.hero h2 {
  font-size:42px;
  letter-spacing:-.045em;
  margin:10px 0;
}

.hero p {
  color:var(--muted);
  line-height:1.6;
}

.grid {
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:16px;
  margin-top:18px;
}

.card {
  background:var(--surface);
  border:1px solid var(--border);
  border-radius:24px;
  padding:24px;
  box-shadow:var(--shadow);
}

.card h3 {
  margin:0 0 8px;
}

.card p {
  color:var(--muted);
  line-height:1.55;
}

.status {
  display:inline-flex;
  padding:6px 9px;
  border-radius:999px;
  background:var(--success-bg);
  color:var(--success-text);
  font-size:11px;
  font-weight:800;
}

.location-box {
  display:flex;
  justify-content:space-between;
  gap:16px;
  align-items:center;
  margin-top:18px;
  padding:18px;
  background:var(--surface-2);
  border-radius:18px;
}

.secondary {
  border:1px solid var(--line);
  background:var(--surface);
  border-radius:12px;
  padding:10px 14px;
  font-weight:750;
}

.list {
  display:grid;
  gap:10px;
}

.row {
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:16px;
  padding:15px 0;
  border-bottom:1px solid var(--line);
}

.muted {
  color:var(--muted);
}

@media (max-width:850px) {
  .app-header {
    align-items:flex-start;
    flex-wrap:wrap;
  }

  .app-header nav {
    order:3;
    width:100%;
  }

  .grid {
    grid-template-columns:1fr;
  }

  .hero h2 {
    font-size:34px;
  }
}

@media (max-width:560px) {
  .auth-card {
    padding:25px 20px;
    border-radius:26px;
  }

  .auth-view {
    padding:15px;
  }

  h1 {
    font-size:35px;
  }

  .customer-content {
    padding:24px 14px 50px;
  }

  .hero,
  .card {
    padding:22px;
  }

  .location-box {
    align-items:flex-start;
    flex-direction:column;
  }
}

/* ===== NUMERA UNIVERSAL THEME START ===== */

/*
 * NUMERA customer web theme contract
 *
 * No gradients.
 * Light = dimensional white.
 * Dark = dimensional black.
 *
 * Explicit Light/Dark use data-theme.
 * System removes data-theme; prefers-color-scheme takes over.
 */

:root,
:root[data-theme="light"] {
  color-scheme:light;

  --page:#f5f6f8;
  --surface:#ffffff;
  --surface-soft:#f8f9fb;
  --surface-2:#eef1f6;
  --surface-3:#e5e9f0;

  --text:#0f1422;
  --text-secondary:#30394c;
  --muted:#657087;

  --border:#d9dee7;
  --border-strong:#7b8799;

  --header-surface:rgba(255,255,255,.94);

  --danger-text:#b42318;
  --danger-bg:#fff1f0;
  --danger-border:#f5c5c0;

  --success-text:#17663b;
  --success-bg:#edf7f1;

  --strong-shadow:
    0 12px 24px rgba(17,24,39,.18);

  --strong-surface:#111827;
  --strong-text:#ffffff;

  --ambient-a:#d9dde3;
  --ambient-b:#b8bec8;

  --object-surface:#f4f6f8;

  --page-shadow:
    0 18px 48px rgba(15,20,34,.10);

  --surface-shadow:
    0 8px 20px rgba(24,31,48,.08),
    inset 0 1px 0 rgba(255,255,255,.95);

  --raised-shadow:
    10px 10px 24px rgba(15,20,34,.10),
    -10px -10px 24px rgba(255,255,255,.92);

  --object-shadow:
    inset 10px 10px 20px rgba(15,20,34,.10),
    inset -10px -10px 20px rgba(255,255,255,.96),
    0 16px 36px rgba(15,20,34,.12);

  --focus-ring:
    0 0 0 3px rgba(15,20,34,.16);
}


:root[data-theme="dark"] {
  color-scheme:dark;

  --page:#08090b;
  --surface:#101216;
  --surface-soft:#14171c;
  --surface-2:#181c22;
  --surface-3:#20252d;

  --text:#f5f7fa;
  --text-secondary:#d4d9e1;
  --muted:#9ba5b3;

  --border:#292f38;
  --border-strong:#596473;

  --header-surface:rgba(16,18,22,.94);

  --danger-text:#ffb4ab;
  --danger-bg:#321714;
  --danger-border:#71352f;

  --success-text:#8fddb0;
  --success-bg:#102a1d;

  --strong-shadow:
    0 12px 28px rgba(0,0,0,.38);

  --strong-surface:#f2f4f7;
  --strong-text:#0b0d10;

  --ambient-a:#171a20;
  --ambient-b:#20242b;

  --object-surface:#171a20;

  --page-shadow:
    0 20px 60px rgba(0,0,0,.42);

  --surface-shadow:
    0 10px 28px rgba(0,0,0,.38),
    inset 0 1px 0 rgba(255,255,255,.045);

  --raised-shadow:
    10px 10px 24px rgba(0,0,0,.34),
    -8px -8px 22px rgba(255,255,255,.025);

  --object-shadow:
    inset 10px 10px 22px rgba(0,0,0,.38),
    inset -8px -8px 18px rgba(255,255,255,.035),
    0 16px 40px rgba(0,0,0,.34);

  --focus-ring:
    0 0 0 3px rgba(255,255,255,.18);
}


/*
 * System mode:
 * applyTheme('system') removes data-theme,
 * therefore this media query becomes authoritative.
 */
@media (prefers-color-scheme: dark) {
  :root:not([data-theme]) {
    color-scheme:dark;

    --page:#08090b;
    --surface:#101216;
    --surface-soft:#14171c;
    --surface-2:#181c22;
    --surface-3:#20252d;

    --text:#f5f7fa;
    --text-secondary:#d4d9e1;
    --muted:#9ba5b3;

    --border:#292f38;
    --border-strong:#596473;

    --strong-surface:#f2f4f7;
    --strong-text:#0b0d10;

    --ambient-a:#171a20;
    --ambient-b:#20242b;

    --object-surface:#171a20;

    --page-shadow:
      0 20px 60px rgba(0,0,0,.42);

    --surface-shadow:
      0 10px 28px rgba(0,0,0,.38),
      inset 0 1px 0 rgba(255,255,255,.045);

    --raised-shadow:
      10px 10px 24px rgba(0,0,0,.34),
      -8px -8px 22px rgba(255,255,255,.025);

    --object-shadow:
      inset 10px 10px 22px rgba(0,0,0,.38),
      inset -8px -8px 18px rgba(255,255,255,.035),
      0 16px 40px rgba(0,0,0,.34);

    --focus-ring:
      0 0 0 3px rgba(255,255,255,.18);
  }
}


/* Base document follows the theme tokens. */

html,
body {
  background:var(--page);
  color:var(--text);
}


/*
 * Existing surfaces already using these original NUMERA
 * variables now automatically inherit the current theme.
 */

body,
button,
input,
select,
textarea {
  color:var(--text);
}

input,
select,
textarea {
  background:var(--surface);
  border-color:var(--border);
}

input::placeholder,
textarea::placeholder {
  color:var(--muted);
}


/* Accessible focus without introducing blue branding. */

button:focus-visible,
a:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible {
  outline:none;
  box-shadow:var(--focus-ring);
}


/*
 * Controls should inherit current NUMERA palette rather
 * than browser-default blue accents.
 */

button,
[role="button"] {
  accent-color:var(--text);
}


/*
 * The ambient dimensional elements remain neutral.
 * No blue/purple branding and no gradients.
 */

.ambient-a {
  background:var(--ambient-a);
}

.ambient-b {
  background:var(--ambient-b);
}


/*
 * Explicit theme buttons visually reflect the current choice.
 * JS still remains the source of preference persistence.
 */

:root[data-theme="light"] [data-theme="light"],
:root[data-theme="dark"] [data-theme="dark"] {
  border-color:var(--text);
  background:var(--surface-2);
}



:root:not([data-theme]) [data-theme="system"] {
  border-color:var(--text);
  background:var(--surface-2);
}

/*
 * Smooth theme changes without animating layout.
 */

body,
main,
section,
article,
aside,
nav,
header,
footer,
button,
input,
select,
textarea {
  transition:
    background-color .18s ease,
    color .18s ease,
    border-color .18s ease,
    box-shadow .18s ease;
}

@media (prefers-reduced-motion: reduce) {
  body,
  main,
  section,
  article,
  aside,
  nav,
  header,
  footer,
  button,
  input,
  select,
  textarea {
    transition:none;
  }
}

/* ===== NUMERA UNIVERSAL THEME END ===== */

/* ===== NUMERA COOKIE + HUMAN SECURITY ===== */

.numera-human-verification {
  display:grid;
  gap:10px;
  margin:18px 0;
  padding:15px;
  border:1px solid var(--border);
  border-radius:16px;
  background:var(--surface-soft);
}

.numera-human-copy {
  display:flex;
  justify-content:space-between;
  gap:12px;
  align-items:baseline;
}

.numera-human-copy strong {
  color:var(--text);
  font-size:13px;
}

.numera-human-copy small {
  color:var(--muted);
  font-size:11px;
}

.numera-turnstile {
  min-height:65px;
}

.numera-human-error {
  margin:0;
  color:var(--danger-text);
  font-size:12px;
}

.numera-cookie-banner {
  position:fixed;
  z-index:10000;
  left:22px;
  right:22px;
  bottom:22px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:24px;
  width:min(1120px,calc(100% - 44px));
  margin:0 auto;
  padding:20px;
  border:1px solid var(--border);
  border-radius:22px;
  background:var(--surface);
  color:var(--text);
  box-shadow:var(--page-shadow);
}

.numera-cookie-copy {
  max-width:720px;
}

.numera-cookie-copy strong {
  display:block;
  font-size:16px;
  margin-bottom:5px;
}

.numera-cookie-copy p {
  margin:0;
  color:var(--muted);
  line-height:1.55;
  font-size:13px;
}

.numera-cookie-copy a,
.numera-cookie-modal a {
  color:var(--text);
  font-weight:750;
}

.numera-cookie-eyebrow {
  margin:0 0 6px !important;
  color:var(--muted) !important;
  font-size:9px !important;
  font-weight:900;
  letter-spacing:.16em;
}

.numera-cookie-actions {
  display:flex;
  gap:8px;
  flex-wrap:wrap;
  justify-content:flex-end;
}

.numera-cookie-actions button,
.numera-cookie-modal button,
.numera-cookie-launcher {
  border:1px solid var(--border);
  background:var(--surface-soft);
  color:var(--text);
  border-radius:12px;
  padding:10px 13px;
  font:inherit;
  font-size:12px;
  font-weight:800;
  cursor:pointer;
}

.numera-cookie-actions
  .numera-cookie-primary,
.numera-cookie-modal
  .numera-cookie-primary {
  border-color:var(--strong-surface);
  background:var(--strong-surface);
  color:var(--strong-text);
}

.numera-cookie-modal-backdrop {
  position:fixed;
  z-index:10020;
  inset:0;
  display:grid;
  place-items:center;
  padding:24px;
  background:rgba(0,0,0,.42);
}

.numera-cookie-modal {
  width:min(600px,100%);
  max-height:min(760px,90vh);
  overflow:auto;
  padding:24px;
  border:1px solid var(--border);
  border-radius:24px;
  background:var(--surface);
  color:var(--text);
  box-shadow:var(--page-shadow);
}

.numera-cookie-modal-head {
  display:flex;
  justify-content:space-between;
  align-items:flex-start;
  gap:20px;
}

.numera-cookie-modal-head h2 {
  margin:0;
}

.numera-cookie-close {
  width:38px;
  height:38px;
  padding:0 !important;
  display:grid;
  place-items:center;
  font-size:20px !important;
}

.numera-cookie-description {
  color:var(--muted);
  line-height:1.55;
}

.numera-cookie-row {
  display:flex;
  grid-template-columns:none;
  flex-direction:row;
  align-items:center;
  justify-content:space-between;
  gap:24px;
  margin:0;
  padding:16px 0;
  border-top:1px solid var(--border);
}

.numera-cookie-row span {
  display:grid;
  gap:4px;
}

.numera-cookie-row small {
  color:var(--muted);
  font-weight:500;
  line-height:1.4;
}

.numera-cookie-row input {
  width:20px;
  height:20px;
  flex:0 0 auto;
}

.numera-cookie-modal-actions {
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:14px;
  margin-top:18px;
  padding-top:18px;
  border-top:1px solid var(--border);
}

.numera-cookie-launcher {
  position:fixed;
  z-index:9000;
  left:16px;
  bottom:16px;
  padding:8px 10px;
  background:var(--surface);
  box-shadow:var(--surface-shadow);
  opacity:.82;
}

@media (max-width:760px) {
  .numera-cookie-banner {
    left:12px;
    right:12px;
    bottom:12px;
    width:calc(100% - 24px);
    align-items:stretch;
    flex-direction:column;
  }

  .numera-cookie-actions {
    justify-content:stretch;
  }

  .numera-cookie-actions button {
    flex:1;
  }

  .numera-human-copy {
    display:grid;
  }
}

/* ===== END NUMERA COOKIE + HUMAN SECURITY ===== */

/* ===== WEBSITE SOCIAL AUTH LOCK ===== */

.numera-social-lock {
  display:grid;
  gap:10px;
}

.numera-social-disabled {
  display:flex;
  align-items:center;
  justify-content:flex-start;
  gap:12px;
  width:100%;
  cursor:not-allowed !important;
  opacity:.56;
  filter:none;
  box-shadow:none;
}

.numera-social-disabled > span:last-child {
  display:grid;
  gap:2px;
  text-align:left;
}

.numera-social-disabled small {
  color:var(--muted);
  font-size:10px;
  font-weight:650;
}

.numera-social-lock-note {
  margin:4px 0 0;
  color:var(--muted);
  font-size:11px;
  line-height:1.5;
  text-align:center;
}

/* ===== END WEBSITE SOCIAL AUTH LOCK ===== */

/* ===== DEVELOPMENT PREVIEW ===== */

.numera-development-notice {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:20px;
  margin:0 0 22px;
  padding:16px 18px;
  border:1px solid var(--border);
  border-radius:18px;
  background:var(--surface-soft);
  color:var(--text);
  box-shadow:var(--surface-shadow);
}

.numera-development-notice.compact {
  margin-bottom:18px;
  padding:13px 15px;
}

.numera-development-copy {
  display:flex;
  align-items:flex-start;
  gap:13px;
}

.numera-development-copy strong {
  display:block;
  margin-bottom:3px;
  font-size:13px;
}

.numera-development-copy p {
  margin:0;
  color:var(--muted);
  font-size:11px;
  line-height:1.5;
}

.numera-preview-pill {
  flex:0 0 auto;
  display:inline-flex;
  align-items:center;
  min-height:24px;
  padding:0 9px;
  border:1px solid var(--border);
  border-radius:999px;
  background:var(--surface);
  color:var(--text);
  font-size:9px;
  font-weight:900;
  letter-spacing:.11em;
}

.numera-development-actions {
  display:flex;
  flex:0 0 auto;
  align-items:center;
  gap:8px;
}

.numera-development-actions a {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:34px;
  padding:0 11px;
  border:1px solid var(--border);
  border-radius:10px;
  background:var(--surface);
  color:var(--text);
  text-decoration:none;
  font-size:11px;
  font-weight:800;
}

/* ===== TEST PAYMENTS ===== */

.numera-test-payment-notice {
  display:flex;
  align-items:flex-start;
  gap:13px;
  margin:0 0 22px;
  padding:16px 18px;
  border:1px solid var(--border);
  border-radius:18px;
  background:var(--surface-soft);
  color:var(--text);
  box-shadow:var(--surface-shadow);
}

.numera-test-payment-notice.compact {
  margin:12px 0 18px;
  padding:13px 14px;
}

.numera-test-payment-notice strong {
  display:block;
  margin-bottom:4px;
  font-size:13px;
}

.numera-test-payment-notice p {
  margin:0;
  color:var(--muted);
  font-size:11px;
  line-height:1.5;
}

.numera-test-payment-pill,
.numera-payment-test-badge {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  flex:0 0 auto;
  min-height:24px;
  padding:0 9px;
  border:1px solid var(--border);
  border-radius:999px;
  background:var(--strong-surface);
  color:var(--strong-text);
  font-size:9px;
  font-weight:900;
  letter-spacing:.12em;
}

.numera-payment-test-badge {
  margin-left:auto;
}

@media (max-width:760px) {
  .numera-development-notice {
    align-items:stretch;
    flex-direction:column;
  }

  .numera-development-copy {
    flex-direction:column;
  }

  .numera-development-actions {
    width:100%;
  }

  .numera-development-actions a {
    flex:1;
  }

  .numera-test-payment-notice {
    flex-direction:column;
  }
}

/* ===== END DEVELOPMENT PREVIEW ===== */

/* ===== MFA LOGIN ===== */

.numera-mfa-field input {
  width:100%;
  min-height:54px;
  margin-top:8px;
  padding:0 16px;
  border:1px solid var(--border);
  border-radius:14px;
  background:var(--surface);
  color:var(--text);
  font:inherit;
  font-size:18px;
  font-weight:750;
  letter-spacing:.08em;
  outline:none;
  box-shadow:var(--surface-shadow);
}

.numera-mfa-field input:focus {
  border-color:var(--text);
}

.numera-mfa-expiry {
  margin:10px 0 16px;
  color:var(--muted);
  font-size:11px;
  line-height:1.5;
}

.numera-mfa-help {
  margin:14px 0 0;
  color:var(--muted);
  font-size:11px;
  line-height:1.55;
  text-align:center;
}

/* ===== END MFA LOGIN ===== */

/* ===== EMAIL VERIFICATION ===== */

.numera-verification-orb {
  display:flex;
  align-items:center;
  justify-content:center;
  width:72px;
  height:72px;
  margin:22px auto;
  border:1px solid var(--border);
  border-radius:50%;
  background:var(--surface-soft);
  color:var(--text);
  box-shadow:var(--surface-shadow);
}

.numera-verification-orb span {
  font-size:26px;
  font-weight:900;
}

.numera-verification-copy {
  margin:0 0 20px;
  padding:15px 16px;
  border:1px solid var(--border);
  border-radius:16px;
  background:var(--surface-soft);
}

.numera-verification-copy strong {
  display:block;
  margin-bottom:5px;
  font-size:13px;
}

.numera-verification-copy p {
  margin:0;
  color:var(--muted);
  font-size:11px;
  line-height:1.55;
}

.numera-verification-actions {
  display:grid;
  gap:10px;
}

.numera-verification-help {
  margin:14px 0 0;
  color:var(--muted);
  font-size:11px;
  line-height:1.5;
  text-align:center;
}

/* ===== END EMAIL VERIFICATION ===== */

/* ===== PASSWORD RECOVERY ===== */

.numera-auth-recovery-row {
  display:flex;
  justify-content:flex-end;
  margin:-4px 0 4px;
}

.numera-recovery-orb {
  display:flex;
  align-items:center;
  justify-content:center;
  width:72px;
  height:72px;
  margin:22px auto;
  border:1px solid var(--border);
  border-radius:50%;
  background:var(--surface-soft);
  color:var(--text);
  box-shadow:var(--surface-shadow);
}

.numera-recovery-orb span {
  font-size:24px;
  font-weight:900;
}

.numera-recovery-copy {
  margin:0 0 20px;
  padding:15px 16px;
  border:1px solid var(--border);
  border-radius:16px;
  background:var(--surface-soft);
}

.numera-recovery-copy strong {
  display:block;
  margin-bottom:5px;
  font-size:13px;
}

.numera-recovery-copy p {
  margin:0;
  color:var(--muted);
  font-size:11px;
  line-height:1.55;
}

.numera-recovery-actions {
  display:grid;
  gap:10px;
}

/* ===== END PASSWORD RECOVERY ===== */

/* ===== AUTHENTICATED SECURITY CENTER ===== */

.numera-security-overlay {
  position:fixed;
  inset:0;
  z-index:10000;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:24px;
  background:rgba(0,0,0,.42);
  backdrop-filter:blur(12px);
}

.numera-security-modal {
  width:min(620px,100%);
  max-height:min(820px,90vh);
  overflow:auto;
  border:1px solid var(--border);
  border-radius:24px;
  background:var(--surface);
  color:var(--text);
  box-shadow:
    0 30px 80px rgba(0,0,0,.24),
    var(--surface-shadow);
}

.numera-security-modal-head {
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:20px;
  padding:24px 24px 18px;
  border-bottom:1px solid var(--border);
}

.numera-security-modal-head h2 {
  margin:3px 0 5px;
}

.numera-security-close {
  flex:0 0 auto;
  width:38px;
  height:38px;
  border:1px solid var(--border);
  border-radius:50%;
  background:var(--surface-soft);
  color:var(--text);
  font:inherit;
  font-size:22px;
  line-height:1;
  cursor:pointer;
}

.numera-security-modal-body {
  padding:22px 24px 26px;
}

.numera-security-form {
  display:grid;
  gap:16px;
}

.numera-security-form label {
  display:grid;
  gap:8px;
  font-size:12px;
  font-weight:760;
}

.numera-security-form input {
  width:100%;
  min-height:52px;
  padding:0 15px;
  border:1px solid var(--border);
  border-radius:14px;
  background:var(--surface-soft);
  color:var(--text);
  font:inherit;
  outline:none;
}

.numera-security-form input:focus {
  border-color:var(--text);
}

.numera-password-rules {
  display:flex;
  flex-wrap:wrap;
  gap:7px;
}

.numera-password-rules span {
  padding:6px 9px;
  border:1px solid var(--border);
  border-radius:999px;
  color:var(--muted);
  font-size:10px;
}

.numera-security-actions {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:10px;
  margin-top:4px;
}

.numera-session-list {
  display:grid;
  gap:10px;
}

.numera-session-card {
  display:grid;
  grid-template-columns:auto 1fr auto;
  align-items:center;
  gap:14px;
  padding:15px;
  border:1px solid var(--border);
  border-radius:16px;
  background:var(--surface-soft);
}

.numera-session-card.current {
  box-shadow:inset 0 0 0 1px var(--border);
}

.numera-session-icon {
  display:grid;
  place-items:center;
  width:36px;
  height:36px;
  border:1px solid var(--border);
  border-radius:50%;
}

.numera-session-copy {
  min-width:0;
}

.numera-session-title {
  display:flex;
  align-items:center;
  gap:8px;
  flex-wrap:wrap;
}

.numera-session-copy p,
.numera-session-copy small {
  display:block;
  margin:4px 0 0;
  color:var(--muted);
  font-size:11px;
  line-height:1.45;
}

.numera-session-current {
  padding:4px 7px;
  border:1px solid var(--border);
  border-radius:999px;
  font-size:8px;
  font-weight:850;
  letter-spacing:.08em;
}

.numera-session-action span {
  color:var(--muted);
  font-size:10px;
}

.numera-security-footnote {
  margin:16px 0 0;
  color:var(--muted);
  font-size:10px;
  line-height:1.55;
}

.numera-deletion-warning {
  padding:15px 16px;
  border:1px solid var(--border);
  border-radius:16px;
  background:var(--surface-soft);
}

.numera-deletion-warning.compact {
  margin-top:2px;
}

.numera-deletion-warning strong {
  display:block;
  margin-bottom:5px;
}

.numera-deletion-warning p {
  margin:0;
  color:var(--muted);
  font-size:11px;
  line-height:1.55;
}

.numera-deletion-facts {
  display:grid;
  gap:8px;
  margin:14px 0 18px;
}

.numera-deletion-facts span {
  color:var(--muted);
  font-size:11px;
}

.numera-danger-button {
  border:1px solid currentColor;
  background:var(--text);
  color:var(--surface);
}

@media (max-width:640px) {
  .numera-security-overlay {
    align-items:flex-end;
    padding:0;
  }

  .numera-security-modal {
    max-height:92vh;
    border-radius:24px 24px 0 0;
  }

  .numera-security-actions {
    grid-template-columns:1fr;
  }

  .numera-session-card {
    grid-template-columns:auto 1fr;
  }

  .numera-session-action {
    grid-column:2;
  }
}

/* ===== END AUTHENTICATED SECURITY CENTER ===== */

/* ===== PRIVATE NUMBER SEARCH / PURCHASE ===== */

.numera-number-search-head {
  display:flex;
  justify-content:space-between;
  align-items:flex-start;
  gap:22px;
}

.numera-number-search-head h2 {
  margin:4px 0 6px;
}

.numera-number-search-head p {
  margin:0;
  color:var(--muted);
}

.numera-number-price {
  flex:0 0 auto;
  display:grid;
  gap:3px;
  text-align:right;
}

.numera-number-price strong {
  font-size:17px;
}

.numera-number-price span {
  color:var(--muted);
  font-size:10px;
}

.numera-number-search-form {
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  align-items:end;
  gap:10px;
  margin-top:20px;
}

.numera-number-search-form label {
  display:grid;
  gap:7px;
  font-size:11px;
  font-weight:750;
}

.numera-number-search-form input {
  width:100%;
  min-height:50px;
  padding:0 15px;
  border:1px solid var(--border);
  border-radius:14px;
  background:var(--surface-soft);
  color:var(--text);
  font:inherit;
  text-transform:uppercase;
  outline:none;
}

.numera-number-search-form input:focus {
  border-color:var(--text);
}

.numera-number-search-note {
  margin:10px 0 0;
  color:var(--muted);
  font-size:10px;
}

.numera-number-list {
  display:grid;
  gap:10px;
  margin-top:16px;
}

.numera-number-row {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
  padding:15px;
  border:1px solid var(--border);
  border-radius:16px;
  background:var(--surface-soft);
}

.numera-number-main {
  min-width:0;
}

.numera-number-main strong {
  display:block;
  font-size:15px;
}

.numera-number-main > span {
  display:block;
  margin-top:4px;
  color:var(--muted);
  font-size:10px;
}

.numera-number-capabilities {
  display:flex;
  flex-wrap:wrap;
  gap:5px;
  margin-top:8px;
}

.numera-number-capabilities b {
  padding:4px 7px;
  border:1px solid var(--border);
  border-radius:999px;
  font-size:8px;
  letter-spacing:.05em;
}

.numera-number-choice {
  flex:0 0 auto;
  display:flex;
  align-items:center;
  gap:10px;
}

.numera-number-choice > span {
  color:var(--muted);
  font-size:10px;
}

.numera-number-confirmation h2 {
  margin:4px 0 7px;
  font-size:24px;
}

.numera-number-confirmation > p {
  color:var(--muted);
}

.numera-number-confirmation-grid {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:10px;
  margin:18px 0;
}

.numera-number-confirmation-grid > div {
  padding:14px;
  border:1px solid var(--border);
  border-radius:14px;
  background:var(--surface-soft);
}

.numera-number-confirmation-grid span,
.numera-number-confirmation-grid strong {
  display:block;
}

.numera-number-confirmation-grid span {
  color:var(--muted);
  font-size:9px;
  margin-bottom:5px;
}

.numera-number-confirm-actions {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:10px;
}

@media (max-width:640px) {
  .numera-number-search-head,
  .numera-number-row {
    align-items:stretch;
    flex-direction:column;
  }

  .numera-number-price {
    text-align:left;
  }

  .numera-number-search-form,
  .numera-number-confirmation-grid,
  .numera-number-confirm-actions {
    grid-template-columns:1fr;
  }

  .numera-number-choice {
    justify-content:space-between;
  }
}

/* ===== END PRIVATE NUMBER SEARCH / PURCHASE ===== */

/* ===== CONNECT WEB PAYWALL ===== */

.numera-connect-paywall {
  display:grid;
  grid-template-columns:
    repeat(2,minmax(0,1fr));
  gap:14px;
  margin:18px 0 30px;
}

.numera-connect-paywall-card {
  display:grid;
  gap:18px;
  min-height:420px;
  padding:24px;
  border:1px solid #dce1e9;
  border-radius:28px;
  background:#ffffff;
  color:#151820;
  box-shadow:
    0 24px 44px rgba(0,0,0,.16),
    0 7px 14px rgba(0,0,0,.07),
    inset 0 1px 0 rgba(255,255,255,.95);
}

.numera-connect-paywall-card.active {
  box-shadow:
    inset 0 0 0 1px #dce1e9,
    0 24px 44px rgba(0,0,0,.16),
    0 7px 14px rgba(0,0,0,.07);
}

.numera-connect-paywall-top {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
}

.numera-connect-emblem {
  display:grid;
  place-items:center;
  width:46px;
  height:46px;
  border:1px solid #e1e6ee;
  border-radius:50%;
  background:#f5f6f9;
  color:#151820;
  font-weight:900;
  box-shadow:
    0 7px 14px rgba(0,0,0,.10),
    inset 0 1px 0 #ffffff;
}

.numera-connect-active-pill {
  padding:6px 9px;
  border:1px solid var(--border);
  border-radius:999px;
  font-size:9px;
  font-weight:850;
  letter-spacing:.08em;
}

.numera-connect-paywall-card h2 {
  margin:5px 0 8px;
  font-size:25px;
}

.numera-connect-paywall-copy {
  margin:0;
  color:#515b69;
  line-height:1.55;
}

.numera-connect-price {
  display:flex;
  align-items:flex-end;
  gap:8px;
}

.numera-connect-price strong {
  font-size:27px;
  letter-spacing:-.04em;
}

.numera-connect-price span {
  padding-bottom:4px;
  color:#515b69;
  font-size:11px;
}

.numera-connect-feature-list {
  display:grid;
  gap:9px;
}

.numera-connect-feature-list span {
  color:#424a56;
  font-size:12px;
  line-height:1.5;
  text-transform:none;
}

.numera-connect-subscribe {
  align-self:end;
  border-radius:16px;
  box-shadow:
    0 11px 23px rgba(0,0,0,.20),
    0 4px 7px rgba(0,0,0,.09);
}


/* NUMERA_CONNECT_PREMIUM_3D_CTA_V1 */

/*
 * Scoped to the eSIM Connect paywall.
 * Retains the existing site palette and all gradient assets.
 * Mirrors the approved dimensional mobile purchase control.
 */

.numera-connect-paywall-card button.numera-connect-subscribe {
  width:100%;
  min-height:52px;
  border:1px solid #17191f;
  border-radius:16px;
  background:#17191f;
  color:#ffffff;
  font-size:12px;
  font-weight:900;
  letter-spacing:.09em;
  box-shadow:
    0 7px 0 #b3bbc7,
    0 17px 24px rgba(0,0,0,.19),
    inset 0 1px 0 rgba(255,255,255,.18);
  transition:
    transform .15s ease,
    box-shadow .15s ease;
}

.numera-connect-paywall-card button.numera-connect-subscribe:not(:disabled):active {
  transform:translateY(4px);
  box-shadow:
    0 3px 0 #b3bbc7,
    0 9px 16px rgba(0,0,0,.16);
}

.numera-connect-paywall-card button.numera-connect-subscribe:focus-visible {
  outline:3px solid #777f8d;
  outline-offset:4px;
}

.numera-connect-paywall-card button.numera-connect-subscribe:disabled {
  opacity:.55;
  transform:none;
}

@media (prefers-reduced-motion:reduce) {
  .numera-connect-paywall-card button.numera-connect-subscribe {
    transition:none;
  }
}

.numera-connect-owned {
  align-self:end;
  display:grid;
  gap:5px;
  padding:13px 14px;
  border:1px solid #e1e6ee;
  border-radius:14px;
  background:#f5f6f9;
  color:#151820;
}

.numera-connect-owned span {
  color:#515b69;
  font-size:11px;
}

.numera-connect-country-grid {
  display:grid;
  grid-template-columns:
    repeat(3,minmax(0,1fr));
  gap:10px;
}

.numera-connect-country-card {
  display:flex;
  align-items:center;
  gap:12px;
  padding:14px;
  border:1px solid var(--border);
  border-radius:16px;
  background:var(--surface);
}

.numera-connect-country-card > div {
  min-width:0;
}

.numera-connect-country-card strong,
.numera-connect-country-card span {
  display:block;
}

.numera-connect-country-card span {
  margin-top:3px;
  color:var(--muted);
  font-size:10px;
}

.numera-connect-data-heading {
  margin-top:32px;
}

.numera-connect-data-grid {
  display:grid;
  grid-template-columns:
    repeat(3,minmax(0,1fr));
  gap:10px;
}

.numera-connect-data-card {
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:16px;
  padding:16px;
  border:1px solid var(--border);
  border-radius:17px;
  background:var(--surface);
}

.numera-connect-data-card h3 {
  margin:4px 0;
  font-size:20px;
}

.numera-connect-data-card span {
  color:var(--muted);
  font-size:10px;
}

.numera-connect-data-price {
  flex:0 0 auto;
  text-align:right;
}

.numera-connect-data-price strong,
.numera-connect-data-price span {
  display:block;
}

.numera-connect-app-handoff {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:24px;
  padding:18px 20px;
  margin:14px 0 24px;
  border:1px solid var(--border);
  border-radius:18px;
  background:var(--surface-soft);
}

.numera-connect-app-handoff p {
  margin:4px 0 0;
  color:var(--muted);
  line-height:1.5;
}

.numera-connect-web-limit {
  max-width:220px;
  padding:9px 11px;
  border:1px solid var(--border);
  border-radius:12px;
  font-size:10px;
  font-weight:750;
  text-align:right;
}

.numera-connect-checkout-summary {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:10px;
  margin-bottom:16px;
}

.numera-connect-checkout-summary > div {
  padding:14px;
  border:1px solid var(--border);
  border-radius:14px;
  background:var(--surface-soft);
}

.numera-connect-checkout-summary span,
.numera-connect-checkout-summary strong {
  display:block;
}

.numera-connect-checkout-summary span {
  margin-bottom:5px;
  color:var(--muted);
  font-size:9px;
}

.numera-connect-payment-methods {
  display:grid;
  gap:9px;
}

.numera-connect-payment-method {
  width:100%;
  display:grid;
  grid-template-columns:auto 1fr auto;
  align-items:center;
  gap:12px;
  padding:14px;
  border:1px solid var(--border);
  border-radius:15px;
  background:var(--surface-soft);
  color:var(--text);
  text-align:left;
  cursor:pointer;
}

.numera-connect-payment-method strong,
.numera-connect-payment-method small {
  display:block;
}

.numera-connect-payment-method small {
  margin-top:3px;
  color:var(--muted);
}

.numera-connect-no-card {
  display:grid;
  gap:10px;
  padding:16px;
  border:1px solid var(--border);
  border-radius:15px;
  background:var(--surface-soft);
}

.numera-connect-no-card p {
  margin:0;
  color:var(--muted);
}

.numera-connect-verification {
  display:grid;
  gap:12px;
}

.numera-connect-verification p {
  margin:0;
  color:var(--muted);
  font-size:11px;
  line-height:1.55;
}

.numera-connect-payment-progress {
  display:flex;
  align-items:center;
  gap:13px;
  padding:18px;
  border:1px solid var(--border);
  border-radius:16px;
  background:var(--surface-soft);
}

.numera-connect-payment-progress p {
  margin:0;
  color:var(--muted);
}

.numera-connect-progress-dot {
  width:13px;
  height:13px;
  flex:0 0 auto;
  border:2px solid var(--border);
  border-top-color:var(--text);
  border-radius:50%;
  animation:
    numera-connect-spin .85s
    linear infinite;
}

@keyframes numera-connect-spin {
  to {
    transform:rotate(360deg);
  }
}

@media (max-width:860px) {
  .numera-connect-paywall,
  .numera-connect-country-grid,
  .numera-connect-data-grid {
    grid-template-columns:1fr;
  }

  .numera-connect-app-handoff {
    align-items:flex-start;
    flex-direction:column;
  }

  .numera-connect-web-limit {
    max-width:none;
    text-align:left;
  }
}

@media (max-width:640px) {
  .numera-connect-checkout-summary {
    grid-template-columns:1fr;
  }

  .numera-connect-data-card {
    align-items:flex-start;
    flex-direction:column;
  }

  .numera-connect-data-price {
    text-align:left;
  }
}


/* NUMERA_WEB_PAYWALL_CONTRAST_V1 */
.numera-connect-paywall-card .numera-eyebrow,
.numera-connect-paywall-card h2,
.numera-connect-paywall-card .numera-connect-price strong {
  color:#151820;
}

.numera-connect-paywall-card .numera-connect-active-pill {
  color:#151820;
  background:#f5f6f9;
  border-color:#e1e6ee;
}

/* ===== END CONNECT WEB PAYWALL ===== */

/* Current customer components share the existing universal theme tokens. */
.numera-auth { min-height:100vh; display:grid; place-items:center; padding:32px 18px; }
.numera-auth-orb { display:none; }
.numera-auth-panel { width:min(470px,100%); padding:36px; background:var(--surface); border:1px solid var(--border); border-radius:34px; box-shadow:var(--surface-shadow); }
.numera-brand { font-weight:800; letter-spacing:.12em; margin-bottom:18px; }
.numera-auth-panel h1 { font-size:clamp(30px,5vw,42px); margin:12px 0; }
.numera-auth-panel .numera-development-notice { flex-wrap:wrap; }
.numera-auth-panel .numera-development-actions { justify-content:flex-start; }
.numera-auth-panel .numera-human-copy { flex-wrap:wrap; }
.numera-auth-panel form > .numera-button { width:100%; }
.numera-auth-divider { color:var(--muted); font-size:11px; margin:22px 0 12px; }
.numera-social-lock { display:grid; gap:8px; }
.numera-social-disabled { width:100%; justify-content:flex-start; text-align:left; }
.numera-social-disabled small { display:block; font-size:11px; font-weight:500; }
.numera-social-lock-note { font-size:12px; color:var(--muted); line-height:1.6; }
.numera-shell { display:grid; grid-template-columns:230px minmax(0,1fr); min-height:100vh; }
.numera-sidebar { position:sticky; top:0; height:100vh; overflow:auto; display:flex; flex-direction:column; gap:24px; padding:24px 16px; background:var(--surface); border-right:1px solid var(--border); }
.numera-brand-button { display:flex; gap:12px; align-items:center; background:none; color:var(--text); border:0; padding:8px; font-weight:800; letter-spacing:.1em; }
.numera-brand-mark,.numera-avatar { border:1px solid var(--border); border-radius:14px; background:var(--strong-surface); color:var(--strong-text); width:40px; height:40px; display:grid; place-items:center; font-weight:800; }
.numera-nav { display:grid; gap:6px; }
.numera-nav-item { width:100%; display:flex; align-items:center; gap:12px; border:1px solid transparent; border-radius:12px; background:transparent; color:var(--muted); text-align:left; padding:12px; white-space:nowrap; }
.numera-nav-item em { font-style:normal; font-weight:700; }
.numera-nav-item.active,.numera-nav-item:hover { background:var(--surface-2); color:var(--text); border-color:var(--border); }
.numera-nav-item i { margin-left:auto; font-style:normal; }
.numera-sidebar-bottom { margin-top:auto; display:grid; gap:12px; }
.numera-profile-mini { display:flex; gap:10px; align-items:center; text-align:left; border:1px solid var(--border); border-radius:14px; background:var(--surface-soft); color:var(--text); padding:12px; }
.numera-profile-mini div { min-width:0; }
.numera-profile-mini strong,.numera-profile-mini small { display:block; overflow-wrap:anywhere; }
.numera-profile-mini small { color:var(--muted); }
.numera-main { min-width:0; }
.numera-topbar { display:flex; justify-content:space-between; align-items:center; gap:12px; padding:16px 24px; border-bottom:1px solid var(--border); background:var(--header-surface); }
.numera-top-route { text-transform:capitalize; font-weight:700; }
.numera-top-actions { display:flex; gap:12px; }
.numera-content { width:min(1180px,100%); margin:auto; padding:32px 24px 80px; }
.numera-page-head,.numera-section-heading { display:flex; align-items:center; justify-content:space-between; gap:16px; margin:22px 0; }
.numera-page-head h1 { font-size:clamp(30px,4vw,42px); margin:8px 0; }
.numera-page-head p,.numera-muted { color:var(--muted); line-height:1.6; }
.numera-eyebrow { color:var(--muted); font-size:11px; font-weight:800; letter-spacing:.15em; }
.numera-card { padding:24px; margin:16px 0; border:1px solid var(--border); border-radius:24px; background:var(--surface); box-shadow:var(--surface-shadow); }
.numera-card p { line-height:1.6; }
.numera-button,.numera-icon-button,.numera-setting-actions button,.numera-payment-actions button { display:inline-flex; align-items:center; justify-content:center; gap:8px; min-height:44px; padding:11px 16px; border:1px solid var(--border); border-radius:12px; background:var(--surface-soft); color:var(--text); font-weight:700; text-decoration:none; }
.numera-button-primary { background:var(--strong-surface); border-color:var(--strong-surface); color:var(--strong-text); box-shadow:var(--strong-shadow); }
button:disabled { cursor:not-allowed; opacity:.65; }
button:focus-visible,a:focus-visible,input:focus-visible { outline:2px solid var(--border-strong); outline-offset:3px; }
.numera-link-button { padding:10px 0; border:0; background:none; color:var(--text); text-decoration:underline; font-size:13px; }
.numera-stat-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:12px; }
.numera-stat { padding:20px; border:1px solid var(--border); border-radius:18px; background:var(--surface); }
.numera-stat span,.numera-stat small { display:block; color:var(--muted); }
.numera-stat strong { display:block; margin-top:8px; font-size:20px; }
.numera-service-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px; }
.numera-service-card { display:flex; align-items:center; gap:16px; padding:22px; text-align:left; color:var(--text); background:var(--surface); border:1px solid var(--border); border-radius:24px; }
.numera-service-card h3 { margin:8px 0; font-size:17px; }
.numera-arrow { margin-left:auto; }
.numera-hero-card { display:flex; align-items:center; justify-content:space-between; gap:20px; flex-wrap:wrap; }
.numera-empty,.numera-loading { padding:32px 16px; text-align:center; color:var(--muted); }
.numera-empty h3 { color:var(--text); }
.numera-empty-mark { display:none; }
.numera-error { padding:20px; border:1px solid var(--danger-border); border-radius:18px; background:var(--danger-bg); color:var(--danger-text); }
.numera-error p { overflow-wrap:anywhere; }
.numera-chat-header { display:flex; align-items:center; gap:12px; padding-bottom:16px; border-bottom:1px solid var(--border); }
.numera-chat-header small { display:block; color:var(--muted); }
.numera-live-dot { margin-left:auto; font-size:11px; color:var(--success-text); }
.numera-chat-messages { display:grid; gap:16px; max-height:60vh; overflow:auto; padding:20px 0; }
.numera-message { max-width:90%; }
.numera-message.user { justify-self:end; }
.numera-message-bubble { white-space:pre-wrap; overflow-wrap:anywhere; padding:14px 16px; border-radius:16px; background:var(--surface-2); }
.numera-message.user .numera-message-bubble { background:var(--strong-surface); color:var(--strong-text); }
.numera-feedback { display:flex; gap:8px; margin-top:8px; }
.numera-feedback button { border:0; background:none; color:var(--muted); font-size:12px; min-height:32px; }
.numera-chat-input { display:flex; gap:10px; }
.numera-chat-input input { min-width:0; }
.numera-communication-message { padding:18px 0; border-bottom:1px solid var(--border); }
.numera-communication-message:last-child { border-bottom:0; }
.numera-communication-heading { display:flex; justify-content:space-between; gap:12px; flex-wrap:wrap; }
.numera-communication-message p { white-space:pre-wrap; overflow-wrap:anywhere; }
.numera-communication-message small { color:var(--muted); }
.numera-setting-row { display:flex; justify-content:space-between; align-items:center; gap:16px; border-bottom:1px solid var(--border); padding:14px 0; }
.numera-setting-row p { color:var(--muted); margin-bottom:0; font-size:13px; }
.numera-toggle { color:var(--muted); font-size:12px; }
.numera-toggle.on { color:var(--success-text); }
.numera-setting-actions,.numera-danger-actions { display:flex; flex-wrap:wrap; gap:10px; }
.numera-settings-section h2 { font-size:22px; }
.numera-consent-row { display:flex; align-items:flex-start; gap:12px; padding:16px 0; border-bottom:1px solid var(--border); }
.numera-consent-row input { flex:none; width:20px; height:20px; margin-top:3px; accent-color:var(--strong-surface); }
.numera-consent-row small { display:block; color:var(--muted); font-weight:400; line-height:1.6; margin-top:5px; }
.numera-table-wrap { overflow-x:auto; }
.numera-table { width:100%; border-collapse:collapse; text-align:left; }
.numera-table th,.numera-table td { padding:12px; border-bottom:1px solid var(--border); }
.numera-payment-method { display:flex; align-items:center; justify-content:space-between; gap:16px; }
.numera-payment-actions { display:flex; flex-wrap:wrap; gap:8px; }
.numera-toast { position:fixed; bottom:24px; left:50%; transform:translateX(-50%); z-index:11000; padding:14px 20px; border:1px solid var(--border); border-radius:14px; background:var(--surface); color:var(--text); box-shadow:var(--surface-shadow); max-width:calc(100% - 32px); opacity:0; pointer-events:none; }
.numera-toast.is-visible { opacity:1; }
.numera-modal-backdrop { position:fixed; inset:0; z-index:100; display:grid; place-items:center; padding:20px; background:rgba(0,0,0,.42); }
.numera-modal { width:min(600px,100%); max-height:90vh; overflow:auto; padding:24px; border-radius:24px; background:var(--surface); color:var(--text); }
.numera-modal-head { display:flex; justify-content:space-between; align-items:center; gap:16px; }
@media(max-width:850px) {
  .numera-shell { grid-template-columns:1fr; }
  .numera-sidebar { position:static; height:auto; padding:12px 16px; gap:12px; border-right:0; border-bottom:1px solid var(--border); }
  .numera-nav { display:flex; overflow-x:auto; }
  .numera-nav-item { width:auto; flex:none; }
  .numera-sidebar-bottom { display:flex; align-items:center; justify-content:space-between; }
  .numera-sidebar-bottom .numera-nav-item { flex:none; }
  .numera-profile-mini { padding:8px; }
  .numera-profile-mini small { display:none; }
  .numera-stat-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media(max-width:560px) {
  .numera-auth { padding:15px; }
  .numera-auth-panel { padding:25px 20px; border-radius:26px; }
  .numera-content { padding:20px 14px 70px; }
  .numera-card { padding:20px; }
  .numera-service-grid { grid-template-columns:1fr; }
  .numera-page-head { align-items:flex-start; flex-wrap:wrap; }
  .numera-topbar { padding:12px 16px; }
  .numera-chat-input { flex-wrap:wrap; }
  .numera-chat-input .numera-button { width:100%; }
}

/* Real branding and product hierarchy, preserving the universal palette. */
.numera-brand { display:flex; align-items:center; gap:12px; color:var(--text); text-decoration:none; }
.numera-brand img,.numera-brand-mark,.numera-numa-avatar { object-fit:contain; background:none; border:0; border-radius:0; }
.numera-topbar { background:var(--surface); }
.numera-development-notice.compact { border:0; border-radius:0; padding:12px 0; box-shadow:none; background:transparent; border-bottom:1px solid var(--border); }
.numera-page-head { margin-top:32px; margin-bottom:28px; }
.numera-card { box-shadow:none; }
.numera-service-card { box-shadow:none; padding:24px; }
.numera-hero-number { font-size:13px; color:var(--muted); }
.numera-table-row,.numera-subscription-row { display:flex; justify-content:space-between; align-items:center; gap:16px; padding:18px 0; border-bottom:1px solid var(--border); }
.numera-table-row small { display:block; margin-top:6px; color:var(--muted); }
.numera-notification { display:flex; gap:16px; padding:18px; border-bottom:1px solid var(--border); }
.numera-notification-mark { display:none; }
.numera-notification p,.numera-notification small { color:var(--muted); }
.numera-number-checkout-note { color:var(--muted); font-size:13px; line-height:1.6; }
@media(prefers-color-scheme:dark) {
  :root:not([data-theme]) { --header-surface:rgba(16,18,22,.94); --danger-text:#ffb4ab; --danger-bg:#321714; --danger-border:#71352f; --success-text:#8fddb0; --success-bg:#102a1d; }
}

.numera-settings-section button,.numera-feedback button,.numera-choice-card { border:1px solid var(--border); border-radius:12px; padding:10px 14px; min-height:40px; background:var(--surface-soft); color:var(--text); }
.numera-settings-section .numera-button-primary { background:var(--strong-surface); color:var(--strong-text); }
.numera-choice-card.selected { border-color:var(--border-strong); }
.numera-payment-choice { display:grid; grid-template-columns:1fr 1fr; gap:12px; margin:18px 0; }
.numera-choice-card small { display:block; margin-top:6px; color:var(--muted); }

/* Desktop account entry: editorial context beside one focused working form. */
.numera-auth-desktop { display:grid; grid-template-columns:minmax(0,1fr) minmax(400px,.8fr); place-items:stretch; padding:0; background:var(--surface); }
.numera-auth-story { display:flex; flex-direction:column; padding:48px clamp(30px,5vw,80px); background:var(--surface-2); border-right:1px solid var(--border); }
.numera-auth-story-copy { margin:48px 0 28px; max-width:550px; }
.numera-auth-story-copy h2 { font-size:clamp(48px,5.5vw,78px); line-height:1.02; letter-spacing:-.065em; margin:18px 0 24px; }
.numera-auth-story-copy > p:last-child { color:var(--muted); font-size:17px; line-height:1.7; max-width:440px; }
.numera-auth-story-photo { position:relative; margin-top:auto; }
.numera-auth-story-photo img { display:block; width:100%; height:260px; object-fit:cover; object-position:65% center; border-radius:5px 50px 5px 5px; }
.numera-auth-story-photo span { position:absolute; left:16px; bottom:16px; background:var(--surface); padding:12px 16px; font-size:10px; letter-spacing:.14em; }
.numera-auth-explore { font-size:13px; font-weight:700; margin-top:24px; }
.numera-auth-desktop .numera-auth-panel { width:min(440px,100%); padding:64px 24px; border:0; border-radius:0; box-shadow:none; margin:auto; background:transparent; }
.numera-auth-desktop .numera-auth-panel > .numera-brand { display:none; }
.numera-auth-desktop .numera-auth-panel h1 { font-size:40px; letter-spacing:-.04em; }
.numera-auth-preview { font-size:11px; color:var(--muted); border-left:2px solid var(--border); padding-left:12px; margin:24px 0; }
.numera-auth-availability { font-size:12px; color:var(--muted); margin:24px 0 12px; line-height:1.7; }
.numera-auth-desktop .numera-human-verification { margin:20px 0; border:0; padding:0; background:transparent; }
.numera-auth-desktop .numera-human-copy { display:block; }
.numera-human-copy small { display:block; margin:6px 0 12px; }
.numera-auth-inline-error { color:var(--danger-text); background:var(--danger-bg); padding:12px; border-radius:8px; font-size:13px; }
@media(max-width:860px) { .numera-auth-desktop { grid-template-columns:1fr; } .numera-auth-story { padding:24px; border-right:0; border-bottom:1px solid var(--border); } .numera-auth-story-copy,.numera-auth-story-photo,.numera-auth-explore { display:none; } .numera-auth-story .numera-brand { margin:0; } .numera-auth-desktop .numera-auth-panel { padding:40px 24px; } }

/* NUMERA gradient text branding */
.brand > span,
.hero h1 > span,
.numera-brand > span,
.numera-brand-button > span {
  background: linear-gradient(
    100deg,
    #008ba8 0%,
    #3465d8 35%,
    #8644c9 68%,
    #cf327f 100%
  );
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
  color: transparent;
}


/* numeraesim visual wordmark; existing account styles are preserved. */
.numera-brand > span, .numera-brand-button > span {
  font-family: 'Space Grotesk', Inter, system-ui, sans-serif;
  font-size: 19px;
  letter-spacing: -.04em;
  text-transform: none;
}
