/* Health Wealth Capital prototype. Private-wealth aesthetic: dark, quiet,
   ivory type, a restrained champagne accent, serif figures, thin rules.
   System fonts only (brief A4; no paid typeface). */

:root {
  --bg: #07090f;
  --page: #0b0f18;
  --surface: #111724;
  --surface-2: #161d2c;
  --ivory: #efe9dc;
  --muted: #9aa3b2;
  --faint: #5f6878;
  --gold: #c8a96a;
  --gold-soft: rgba(200, 169, 106, 0.18);
  --rule: rgba(200, 169, 106, 0.22);
  --debit: #d08a8a;
  --credit: #d9d2c0;
  --warn: #d6b26a;
  --serif: ui-serif, "Iowan Old Style", "Palatino Linotype", Palatino, Georgia, serif;
  --sans: ui-sans-serif, -apple-system, "SF Pro Text", "Helvetica Neue", Helvetica, Arial, sans-serif;
}

* { box-sizing: border-box; }
html, body { margin: 0; padding: 0; background: var(--bg); color: var(--ivory); font-family: var(--sans); font-size: 15px; line-height: 1.45; -webkit-font-smoothing: antialiased; }
button, input, select { font: inherit; color: inherit; }
a { color: var(--gold); }

.page { min-height: 100vh; display: flex; flex-direction: column; }

.prototype-banner {
  display: flex; gap: 16px; align-items: center; justify-content: space-between;
  padding: 12px 20px; background: #1a1409; border-bottom: 1px solid var(--rule);
  color: #e9dcc0; font-size: 13px;
}
.prototype-banner__text { max-width: 900px; }
.prototype-banner strong { color: var(--gold); letter-spacing: 0.04em; text-transform: uppercase; font-size: 12px; }

.stage { flex: 1; display: flex; gap: 24px; justify-content: center; align-items: flex-start; padding: 24px 16px 48px; }

.phone {
  width: 390px; height: 844px; background: var(--page); border-radius: 44px;
  border: 1px solid #262c3a; box-shadow: 0 30px 80px rgba(0,0,0,0.6), inset 0 0 0 6px #05070c;
  display: flex; flex-direction: column; overflow: hidden; position: relative;
}
@media (max-width: 460px) {
  .phone { width: 100%; height: auto; min-height: 100vh; border-radius: 0; border: none; box-shadow: none; }
  .stage { padding: 0; }
  .tab-bar { position: sticky; bottom: 0; z-index: 2; }
}

.app-header { padding: 28px 24px 14px; border-bottom: 1px solid var(--rule); }
.wordmark { font-family: var(--serif); font-size: 15px; letter-spacing: 0.32em; text-transform: uppercase; color: var(--gold); }
.app-header__sub { margin-top: 6px; color: var(--muted); font-size: 12px; letter-spacing: 0.06em; }
.sep { color: var(--faint); padding: 0 4px; }

.app-main { flex: 1; overflow-y: auto; padding: 8px 20px 24px; scroll-behavior: smooth; }
.tab-panel[hidden] { display: none; }

.eyebrow { font-size: 11px; letter-spacing: 0.18em; text-transform: uppercase; color: var(--muted); margin: 14px 0 6px; }

.balance-block { padding: 18px 0 10px; text-align: left; }
.balance { font-family: var(--serif); font-size: 44px; line-height: 1.05; letter-spacing: -0.01em; color: var(--ivory); font-variant-numeric: tabular-nums; }
.balance-caption { margin-top: 8px; color: var(--muted); font-size: 12px; }

.card { background: var(--surface); border: 1px solid var(--rule); border-radius: 14px; padding: 16px; margin: 12px 0; }
.card__head { display: flex; justify-content: space-between; align-items: baseline; gap: 12px; }
.card__title { font-family: var(--serif); font-size: 15px; letter-spacing: 0.04em; color: var(--ivory); }
.card__title--section { margin: 18px 0 8px; }
.card__meta { color: var(--muted); font-size: 12px; }
.card--details summary { cursor: pointer; list-style: none; }
.card--details summary::-webkit-details-marker { display: none; }
.card--details summary::after { content: "+"; float: right; color: var(--gold); }
.card--details[open] summary::after { content: "\2212"; }

.fineprint { color: var(--muted); font-size: 12px; margin: 10px 0 0; line-height: 1.45; }

.banner { border-radius: 14px; padding: 14px 16px; margin: 12px 0; border: 1px solid var(--rule); background: var(--gold-soft); }
.banner__label { font-size: 11px; letter-spacing: 0.16em; text-transform: uppercase; color: var(--gold); }
.banner__text { margin: 6px 0 0; font-size: 13px; }
.banner__actions { margin-top: 10px; }
.banner--missed { background: rgba(208, 138, 138, 0.12); border-color: rgba(208, 138, 138, 0.35); }
.banner--missed .banner__label { color: var(--debit); }
.banner--reached { background: rgba(217, 210, 192, 0.08); }
.banner--unresolved { background: rgba(214, 178, 106, 0.1); border-color: rgba(214, 178, 106, 0.4); }

.goal-figures { margin: 8px 0 6px; }
.goal-figure { font-family: var(--serif); font-size: 26px; margin-right: 8px; font-variant-numeric: tabular-nums; }
.goal-sub { color: var(--muted); font-size: 12px; }
.progress { height: 4px; background: #222a3a; border-radius: 2px; overflow: hidden; margin: 10px 0 12px; }
.progress__bar { height: 100%; background: var(--gold); width: 0; transition: width 300ms ease; }
.kv { display: grid; grid-template-columns: 1fr 1fr; gap: 8px 16px; margin: 0; }
.kv div { display: flex; flex-direction: column; }
.kv dt { color: var(--muted); font-size: 11px; letter-spacing: 0.08em; text-transform: uppercase; }
.kv dd { margin: 0; font-size: 13px; font-variant-numeric: tabular-nums; }

.chip { display: inline-block; padding: 2px 8px; border-radius: 999px; font-size: 10.5px; letter-spacing: 0.08em; text-transform: uppercase; border: 1px solid var(--rule); color: var(--muted); white-space: nowrap; }
.chip--sim { color: var(--gold); border-color: var(--gold); }
.chip--warn { color: var(--warn); border-color: rgba(214, 178, 106, 0.5); }
.chip--bad { color: var(--debit); border-color: rgba(208, 138, 138, 0.5); }
.chip--ok { color: var(--credit); }

.button { border: 1px solid var(--gold); background: transparent; color: var(--gold); border-radius: 999px; padding: 9px 16px; letter-spacing: 0.08em; text-transform: uppercase; font-size: 12px; cursor: pointer; white-space: nowrap; }
.button:hover { background: var(--gold-soft); }
.button--primary { background: var(--gold); color: #10120a; }
.button--primary:hover { background: #d7b97c; }
.button--ghost { border-color: var(--rule); color: var(--muted); }
.button--small { padding: 6px 12px; font-size: 11px; }
.button--text { border: none; padding: 4px 6px; text-transform: none; letter-spacing: 0; font-size: 12px; }

.card--entry .entry-row { display: grid; grid-template-columns: 1fr 1.3fr auto; gap: 8px; align-items: center; margin-top: 10px; }
.card--entry .entry-row--secondary { grid-template-columns: auto 1fr; margin-top: 8px; }
.card--entry input[type="text"], .card--entry select, .card--entry input[type="date"], .controls input, .controls select {
  background: var(--surface-2); border: 1px solid #2a3344; border-radius: 10px; padding: 10px 12px; color: var(--ivory); min-width: 0; width: 100%;
}
.card--entry input:focus, .card--entry select:focus, .controls input:focus, .controls select:focus { outline: 1px solid var(--gold); }
.entry-date { color: var(--muted); font-size: 12px; display: flex; gap: 8px; align-items: center; }
.entry-date input { width: auto; padding: 6px 8px; font-size: 12px; }
.entry-hint { color: var(--muted); font-size: 11.5px; text-align: right; }
.entry-message { min-height: 18px; margin: 8px 0 0; font-size: 12.5px; color: var(--warn); }
.entry-message.is-ok { color: var(--credit); }

.statement-list { list-style: none; margin: 8px 0 0; padding: 0; }
.statement-list li { display: grid; grid-template-columns: 1fr auto; gap: 4px 12px; padding: 9px 0; border-bottom: 1px solid rgba(255,255,255,0.05); }
.statement-list li:last-child { border-bottom: none; }
.statement-list .label { font-size: 13.5px; }
.statement-list .amount { color: var(--muted); font-size: 12px; grid-column: 1; }
.statement-list .dollars { grid-column: 2; grid-row: 1 / span 2; align-self: center; font-family: var(--serif); font-size: 15px; font-variant-numeric: tabular-nums; }
.statement-list .dollars.is-debit { color: var(--debit); }
.statement-list .dollars.is-none { color: var(--faint); font-family: var(--sans); font-size: 12px; }
.statement-list .chip { margin-left: 6px; }

.widget { background: linear-gradient(160deg, #141b2a, #0a0e17); border: 1px solid var(--rule); border-radius: 22px; width: 170px; height: 170px; padding: 18px; display: flex; flex-direction: column; justify-content: space-between; margin: 10px auto 0; }
.widget__label { font-family: var(--serif); font-size: 9px; letter-spacing: 0.28em; text-transform: uppercase; color: var(--gold); }
.widget__balance { font-family: var(--serif); font-size: 26px; font-variant-numeric: tabular-nums; }
.widget-meta { display: flex; justify-content: space-between; align-items: center; margin-top: 12px; font-size: 12px; color: var(--muted); gap: 8px; }

.rates { width: 100%; border-collapse: collapse; font-size: 11.5px; margin-top: 10px; }
.rates th, .rates td { text-align: left; padding: 6px 4px; border-bottom: 1px solid rgba(255,255,255,0.06); vertical-align: top; }
.rates th { color: var(--muted); font-weight: normal; font-size: 10.5px; letter-spacing: 0.08em; text-transform: uppercase; }
.rates td:nth-child(4) { color: var(--muted); }

.ledger-head { padding-top: 4px; }
.reconcile { font-size: 12px; color: var(--muted); margin: 8px 0 4px; }
.ledger-list { margin-top: 8px; }
.ledger-week { font-size: 11px; letter-spacing: 0.14em; text-transform: uppercase; color: var(--gold); margin: 18px 0 6px; display: flex; justify-content: space-between; gap: 8px; }
.ledger-week span:last-child { color: var(--muted); letter-spacing: 0.04em; text-transform: none; }
.ledger-year { font-family: var(--serif); font-size: 13px; color: var(--ivory); margin: 16px 0 6px; padding: 10px 12px; border: 1px dashed var(--rule); border-radius: 10px; }
.ledger-day { border: 1px solid rgba(255,255,255,0.06); border-radius: 12px; margin: 6px 0; background: var(--surface); }
.ledger-day__row { width: 100%; display: grid; grid-template-columns: 1fr auto; gap: 2px 12px; padding: 10px 14px; background: transparent; border: none; text-align: left; cursor: pointer; }
.ledger-day__date { font-size: 13.5px; }
.ledger-day__sub { color: var(--muted); font-size: 11.5px; grid-column: 1; }
.ledger-day__dollars { grid-column: 2; grid-row: 1 / span 2; align-self: center; font-family: var(--serif); font-variant-numeric: tabular-nums; }
.ledger-day__dollars.is-debit { color: var(--debit); }
.ledger-day.is-today { border-color: var(--rule); }
.ledger-day__detail { border-top: 1px solid rgba(255,255,255,0.06); padding: 8px 14px 12px; }
.ledger-grid { list-style: none; margin: 0; padding: 0; }
.ledger-grid li { display: grid; grid-template-columns: 1fr auto; gap: 2px 10px; padding: 7px 0; border-bottom: 1px solid rgba(255,255,255,0.04); font-size: 12.5px; }
.ledger-grid .meta { grid-column: 1; color: var(--muted); font-size: 11.5px; }
.ledger-grid .dollars { grid-column: 2; grid-row: 1 / span 2; align-self: center; font-family: var(--serif); font-variant-numeric: tabular-nums; }
.ledger-grid .dollars.is-debit { color: var(--debit); }
.ledger-grid .dollars.is-none { color: var(--faint); font-family: var(--sans); font-size: 11.5px; }
.posting { grid-column: 1 / -1; display: flex; gap: 8px; align-items: center; font-size: 11.5px; color: var(--muted); margin-top: 4px; flex-wrap: wrap; }
.posting input { width: 80px; padding: 4px 6px; border-radius: 6px; background: var(--surface-2); border: 1px solid #2a3344; }
.posting .button--text { color: var(--gold); }
.posting-message { color: var(--warn); font-size: 11.5px; }
.feed-history { color: var(--faint); font-size: 11px; margin-top: 2px; }
.ledger-foot { text-align: center; padding: 12px 0 4px; }

.reward-progress { margin-top: 8px; }
.reward-frame { margin-top: 12px; aspect-ratio: 4 / 5; border-radius: 14px; border: 1px solid var(--rule); background: radial-gradient(ellipse at 50% 35%, #2a2d3a 0%, #0d111b 70%); display: flex; align-items: center; justify-content: center; text-align: center; padding: 24px; color: var(--muted); font-size: 12px; }
.reward-frame strong { display: block; color: var(--gold); font-family: var(--serif); letter-spacing: 0.1em; text-transform: uppercase; font-size: 11px; margin-bottom: 8px; }
.reward-quiet { margin-top: 12px; padding: 20px; border: 1px dashed var(--rule); border-radius: 14px; color: var(--muted); font-size: 12.5px; text-align: center; }
.reward-list .reward-week { display: grid; grid-template-columns: 1fr auto; gap: 2px 12px; padding: 10px 12px; border: 1px solid rgba(255,255,255,0.06); border-radius: 12px; margin: 6px 0; background: var(--surface); font-size: 12.5px; }
.reward-week .meta { grid-column: 1; color: var(--muted); font-size: 11.5px; }
.reward-week .chip { grid-column: 2; grid-row: 1 / span 2; align-self: center; }

.tab-bar { display: grid; grid-template-columns: repeat(3, 1fr); border-top: 1px solid var(--rule); background: #090c14; padding: 10px 8px 22px; }
.tab { background: transparent; border: none; color: var(--muted); padding: 10px 4px; font-size: 11px; letter-spacing: 0.16em; text-transform: uppercase; cursor: pointer; }
.tab[aria-selected="true"] { color: var(--gold); }

.controls { width: 360px; background: var(--surface); border: 1px solid var(--rule); border-radius: 18px; padding: 18px; font-size: 13px; }
.controls[hidden] { display: none; }
.controls h3 { font-family: var(--serif); font-weight: normal; font-size: 13px; letter-spacing: 0.08em; text-transform: uppercase; color: var(--gold); margin: 0 0 8px; }
.controls__group { border-top: 1px solid var(--rule); padding: 14px 0; }
.controls__row { display: flex; gap: 8px; align-items: center; margin: 8px 0; flex-wrap: wrap; }
.controls__row label { display: flex; gap: 6px; align-items: center; color: var(--muted); }
.controls__result { color: var(--credit); font-size: 12px; margin: 6px 0 0; min-height: 16px; }
.plain-list { list-style: none; margin: 0; padding: 0; font-size: 12px; color: var(--muted); max-height: 180px; overflow: auto; }
.plain-list li { padding: 3px 0; border-bottom: 1px solid rgba(255,255,255,0.04); display: flex; justify-content: space-between; gap: 8px; }
@media (max-width: 820px) { .stage { flex-direction: column; align-items: center; } .controls { width: 100%; max-width: 390px; } }
@media (max-width: 460px) {
  .prototype-banner { flex-direction: column; align-items: stretch; gap: 8px; padding: 10px 14px; font-size: 11.5px; line-height: 1.35; }
  .prototype-banner .button { align-self: flex-start; }
}
