/* Original bundled fonts, same-origin assets only; no Google Fonts/imports. */
@font-face {
  font-family: "Puls Inter";
  src: url("/manus-storage/puls-a414b48aa577ef2c_c6069f35.ttf") format("truetype");
  font-style: normal;
  font-weight: 400;
  font-display: swap;
}
@font-face {
  font-family: "Puls Inter";
  src: url("/manus-storage/puls-f30e9d2574c3bec5_35baf92b.ttf") format("truetype");
  font-style: normal;
  font-weight: 600;
  font-display: swap;
}
@font-face {
  font-family: "Puls Fraunces";
  src: url("/manus-storage/puls-9f03c0fe70d1670d_536f72a9.ttf") format("truetype");
  font-style: normal;
  font-weight: 600;
  font-display: swap;
}

#account-shell,
#puls-toolbar,
.puls-account {
  --puls-navy: #0d1b2e;
  --puls-gold: #e9c46a;
  --puls-paper: #faf7f0;
  --puls-surface: #fffdf8;
  --puls-line: #dfd9ce;
  --puls-muted: #5b626a;
  --puls-error: #9e342a;
  --puls-success: #285a44;
  color: var(--puls-navy);
  font-family: "Puls Inter", "Inter_400Regular", Inter, sans-serif;
  font-size: 14px;
  line-height: 1.55;
  font-synthesis: none;
  -webkit-text-size-adjust: 100%;
}
.puls-account *,
.puls-account *::before,
.puls-account *::after { box-sizing: border-box; }
#account-shell[hidden],
#puls-toolbar[hidden],
#root[hidden],
#root[data-puls-access="blocked"],
.puls-account [hidden] { display: none !important; }
#root { width: 100%; max-width: 480px; margin-inline: auto; }
#account-shell {
  width: min(100%, 480px);
  margin: 0 auto;
  padding: 20px 16px 28px;
  background: var(--puls-paper);
  min-height: 100svh;
}
#puls-toolbar {
  width: min(100%, 480px);
  margin: 0 auto;
  padding: 9px 12px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  background: var(--puls-paper);
  border-bottom: 1px solid var(--puls-line);
}
.puls-brand {
  display: flex;
  align-items: center;
  gap: 10px;
  margin: 0 0 26px;
  min-height: 40px;
}
.puls-brand__word {
  font-family: "Puls Fraunces", "Fraunces_600SemiBold", Fraunces, Georgia, serif;
  font-size: 34px;
  font-weight: 600;
  line-height: 1;
  letter-spacing: -1px;
}
.puls-brand__ecg { width: 59px; height: 28px; color: var(--puls-gold); flex: 0 0 auto; }
.puls-brand__caption { margin-left: auto; color: var(--puls-muted); font-size: 11px; letter-spacing: .07em; text-transform: uppercase; }
.puls-card {
  padding: 24px 21px;
  background: var(--puls-surface);
  border: 1px solid var(--puls-line);
  border-radius: 18px;
  box-shadow: 0 4px 18px rgb(13 27 46 / 3%);
}
.puls-title,
.puls-subtitle {
  font-family: "Puls Fraunces", "Fraunces_600SemiBold", Fraunces, Georgia, serif;
  font-weight: 600;
  letter-spacing: -.025em;
  color: var(--puls-navy);
}
.puls-title { margin: 0 0 10px; font-size: clamp(27px, 7vw, 33px); line-height: 1.16; }
.puls-subtitle { margin: 0 0 10px; font-size: 23px; line-height: 1.25; }
.puls-intro { margin: 0 0 22px; color: var(--puls-muted); }
.puls-small,
.puls-hint { font-size: 12px; color: var(--puls-muted); line-height: 1.65; }
.puls-small { margin: 9px 0 14px; }
.puls-hint { display: block; margin-top: 5px; }
.puls-eyebrow { font-size: 11px; letter-spacing: .05em; text-transform: uppercase; color: var(--puls-muted); }
.puls-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  width: 100%;
  min-height: 46px;
  padding: 11px 16px;
  border: 1px solid var(--puls-navy);
  border-radius: 10px;
  background: var(--puls-navy);
  color: #fffdf8;
  font: inherit;
  font-size: 13px;
  font-weight: 400;
  text-align: center;
  text-decoration: none;
  line-height: 1.35;
  cursor: pointer;
  transition: background-color 140ms ease, border-color 140ms ease;
  touch-action: manipulation;
}
.puls-button:hover:not(:disabled) { background: #20334b; border-color: #20334b; }
.puls-button--gold { background: var(--puls-gold); border-color: var(--puls-gold); color: var(--puls-navy); }
.puls-button--gold:hover:not(:disabled) { background: #e2b852; border-color: #e2b852; }
.puls-button--secondary { background: transparent; color: var(--puls-navy); border-color: var(--puls-line); }
.puls-button--secondary:hover:not(:disabled) { background: #f2ede3; border-color: #b6afa2; }
.puls-button--text,
.puls-button--toolbar,
.puls-button--tab { background: transparent; color: var(--puls-navy); border-color: transparent; }
.puls-button--text { width: auto; padding: 8px 5px; text-decoration: underline; text-underline-offset: 3px; }
.puls-button--toolbar { width: auto; min-height: 38px; padding: 8px 10px; font-size: 12px; }
.puls-button--text:hover:not(:disabled),
.puls-button--toolbar:hover:not(:disabled),
.puls-button--tab:hover:not(:disabled) { background: #f0eade; border-color: transparent; }
.puls-button:disabled { opacity: .48; cursor: not-allowed; }
.puls-account :where(button, a, input, select, textarea, summary, [tabindex]):focus-visible {
  outline: 3px solid #a17e28;
  outline-offset: 3px;
}
.puls-account :where(p, dd, a, li, .puls-notice) { overflow-wrap: anywhere; }
.puls-link { color: var(--puls-navy); text-decoration: underline; text-decoration-color: #bfa76d; text-underline-offset: 3px; }
.puls-link:hover { text-decoration-color: var(--puls-navy); }
.puls-tabs { display: flex; gap: 5px; padding: 4px; margin: 0 0 20px; border-radius: 11px; background: #f0ece3; }
.puls-button--tab { min-height: 39px; padding: 9px 10px; }
.puls-button--tab[aria-pressed="true"] { background: var(--puls-surface); box-shadow: 0 1px 5px rgb(13 27 46 / 7%); }
.puls-field { margin-bottom: 16px; }
.puls-field > label { display: block; margin-bottom: 6px; font-size: 12px; }
.puls-field input,
.puls-field select,
.puls-field textarea {
  width: 100%;
  min-height: 46px;
  border: 1px solid #cac4b9;
  border-radius: 9px;
  padding: 11px 12px;
  background: #fffefa;
  color: var(--puls-navy);
  font: inherit;
  font-size: 16px;
  line-height: 1.4;
}
.puls-field textarea { min-height: 90px; resize: vertical; }
.puls-field select { padding-right: 28px; }
.puls-field input:disabled,
.puls-field textarea:disabled,
.puls-field select:disabled { background: #f2eee7; opacity: .65; }
.puls-password { display: flex; gap: 6px; align-items: center; }
.puls-password input { flex: 1; min-width: 0; }
.puls-password .puls-button { flex: 0 0 auto; font-size: 11px; }
.puls-check { display: flex; align-items: flex-start; gap: 10px; margin: 15px 0; font-size: 12px; line-height: 1.55; cursor: pointer; }
.puls-check input { flex: 0 0 auto; width: 18px; height: 18px; margin: 1px 0 0; accent-color: var(--puls-navy); }
.puls-check:has(input:disabled) { color: var(--puls-muted); cursor: not-allowed; }
.puls-notice { margin: 13px 0; padding: 12px 13px; border: 1px solid #d8d6cd; border-left: 3px solid #87909c; border-radius: 8px; background: #f2f2ed; font-size: 12px; line-height: 1.6; }
.puls-notice--warning { background: #fbf3de; border-color: #e4d6af; border-left-color: #9b7b34; }
.puls-notice--error { color: var(--puls-error); background: #fbefeb; border-color: #e7c9be; border-left-color: var(--puls-error); }
.puls-notice--success { color: var(--puls-success); background: #edf4ed; border-color: #c9ddcd; border-left-color: var(--puls-success); }
.puls-messages:empty { display: none; }
.puls-footer { display: flex; flex-direction: column; align-items: center; gap: 8px; padding: 22px 8px 5px; text-align: center; font-size: 11px; color: var(--puls-muted); }
.puls-footer .puls-link { display: inline-block; padding: 5px 0; }
.puls-details { margin: 16px 0; padding: 12px 0; border-top: 1px solid var(--puls-line); font-size: 12px; }
.puls-details summary { cursor: pointer; padding: 5px 0; }
.puls-details ul { padding-left: 18px; }
.puls-summary { margin: 16px 0 20px; }
.puls-kv { display: flex; align-items: baseline; justify-content: space-between; gap: 14px; padding: 9px 0; border-bottom: 1px solid #ebe6dc; font-size: 12px; }
.puls-kv dt { flex: 0 0 35%; color: var(--puls-muted); }
.puls-kv dd { margin: 0; text-align: right; }
.puls-section { margin-top: 23px; padding-top: 23px; border-top: 1px solid var(--puls-line); }
.puls-legal-links { display: flex; flex-wrap: wrap; gap: 7px 13px; font-size: 11px; padding: 6px 0; }
.puls-plan-list { display: flex; flex-direction: column; gap: 10px; margin: 16px 0 13px; }
.puls-plan { padding: 15px; border-radius: 11px; border: 1px solid var(--puls-line); background: #f9f5eb; }
.puls-plan h3,
.puls-payment h3 { margin: 0 0 4px; font: inherit; font-size: 15px; color: var(--puls-navy); }
.puls-plan .puls-small { margin: 0 0 12px; }
.puls-actions { display: flex; flex-wrap: wrap; gap: 9px; margin-top: 19px; }
.puls-actions > .puls-button { flex: 1 1 140px; }
.puls-actions > .puls-button--text { flex: 1 1 100%; }
.puls-payment { margin: 12px 0 0; padding: 14px; border: 1px solid var(--puls-line); border-radius: 10px; }
.puls-payment .puls-small { margin: 4px 0; }
.puls-payment__status { font-size: 12px; margin: 7px 0; }
.puls-inline-actions { display: flex; flex-wrap: wrap; gap: 12px; font-size: 12px; margin: 9px 0; }
.puls-cancel-review { padding-top: 15px; }
body.puls-account-modal-open { overflow: hidden; }
.puls-overlay { position: fixed; inset: 0; z-index: 2147483000; display: flex; align-items: flex-start; justify-content: center; overflow-y: auto; overscroll-behavior: contain; padding: 24px 12px; background: rgb(13 27 46 / 55%); }
.puls-dialog { width: min(100%, 480px); flex: 0 0 auto; padding: 11px 12px 13px; border-radius: 20px; background: var(--puls-paper); box-shadow: 0 18px 70px rgb(13 27 46 / 22%); outline: none; }
.puls-dialog__top { display: flex; justify-content: space-between; align-items: center; gap: 12px; padding: 0 8px 7px; }
.puls-dialog__top .puls-button { min-height: 38px; }
.puls-dialog .puls-card { padding: 21px 18px; }
.puls-account [aria-busy="true"] { cursor: progress; }

@media (max-width: 359px) {
  #account-shell { padding-inline: 10px; }
  .puls-card { padding: 20px 16px; }
  .puls-brand__caption { font-size: 9px; }
  .puls-overlay { padding: 10px 6px; }
  .puls-dialog { padding-inline: 7px; }
  .puls-dialog .puls-card { padding: 18px 14px; }
  .puls-kv { gap: 9px; }
}
@media (min-width: 700px) {
  #account-shell { min-height: auto; margin-block: 24px; border: 1px solid var(--puls-line); border-radius: 22px; }
  .puls-overlay { padding-top: 42px; padding-bottom: 42px; }
}
@media (prefers-reduced-motion: reduce) {
  .puls-account *, .puls-account *::before, .puls-account *::after { transition: none !important; scroll-behavior: auto !important; }
}
