/* Shared product presentation. Browser and native use the same visual roles. */
:root {
  --ink:#232620; --ink-strong:var(--ink); --action:var(--ink); --muted:#62675e;
  --paper:#f7f7f2; --wash:#f0f1ea; --line:#e7e9e1; --surface:#fff;
  --accent:#f5d94e; --accent-soft:#fcf6d9; --accent-hover:#eed044;
  --control-radius:16px; --control-depth:0 1px 0 #d4bb3f;
  --space-section:28px; --text-body:16px; --text-meta:13px;
  --brand-yellow:var(--accent); --brand-soft:var(--accent-soft); --brand-ink:var(--ink);
  --positive:#38765a; --negative:#a64b39; --radius:24px; --space-page:24px; --icon-size:22px;
  font-family:-apple-system,BlinkMacSystemFont,'Segoe UI','Noto Sans KR','Apple SD Gothic Neo',sans-serif;
  color:var(--ink); background:var(--paper);
}
body { background:var(--paper); color:var(--ink); font-size:15px; line-height:1.5; }
button,input,select,textarea { font:inherit; }
h1,h2,h3,h4 { color:var(--ink); font-weight:700; word-break:keep-all; }
h1 { font-size:28px; line-height:1.3; letter-spacing:-.045em; }
h2 { font-size:20px; line-height:1.4; letter-spacing:-.035em; }
h3 { font-size:17px; line-height:1.45; letter-spacing:-.025em; }
strong,b { font-weight:600; }
small,.small,.form-help { font-size:13px; line-height:1.6; }
.form-help,.small.muted,.muted { color:var(--muted); }
.eyebrow { font-size:12px; line-height:1.5; letter-spacing:.02em; font-weight:600; }
.number,.transaction-amount,.asset-main-amount,.today-budget>strong { font-variant-numeric:tabular-nums; }
.money-unit { display:inline-block; margin-left:3px; font-size:.56em; line-height:1; font-weight:500; letter-spacing:-.015em; }
.icon,img.icon { width:var(--icon-size); height:var(--icon-size); opacity:1; }
.brand,.steps-brand { font-family:Arial,sans-serif; font-weight:700; letter-spacing:-.055em; }
.brand-dot { color:var(--ink); }
.brand-area .brand { font-size:27px; }
.brand-area p { font-size:12px; line-height:1.6; }

/* Controls: one emphasis level per action, with an explicit focus state. */
.button,.google-button {
  min-height:50px; padding:13px 18px; border:1px solid transparent; border-radius:var(--control-radius);
  background:var(--accent); color:var(--ink); font-size:15px; line-height:1.4; font-weight:600;
  letter-spacing:0; box-shadow:var(--control-depth); transition:background .15s ease,transform .15s ease;
}
.button:hover { background:var(--accent-hover); }
.google-button:hover { background:#343936; }
.button:active:not(:disabled) { transform:translateY(1px); border-bottom-width:1px; }
.button.secondary { border:1px solid transparent; background:var(--wash); color:var(--ink); box-shadow:none; }
.button.secondary:hover { background:#e7eae0; border-color:transparent; }
.button.soft { border:1px solid transparent; background:var(--wash); color:var(--ink); box-shadow:none; }
.button.danger { border-color:transparent; background:#fcf0ec; color:var(--negative); box-shadow:none; }
.button:disabled { color:#747a70; background:#e9ece5; border-color:#e9ece5; box-shadow:none; opacity:1; }
.button .icon { width:18px; height:18px; filter:none; }
.text-button { min-height:44px; padding:10px 0; font-size:13px; line-height:1.45; font-weight:600; color:var(--ink); }
.text-button .icon { width:16px; height:16px; }
.icon-button { min-width:48px; min-height:48px; border-radius:12px; }
.icon-button:hover { background:var(--wash); }
button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,summary:focus-visible { outline:3px solid #578068; outline-offset:3px; }
input:not([type=radio]):not([type=checkbox]),select,textarea,.form-field input,.form-field select,.member-budget-inputs input {
  min-height:48px; border:1px solid var(--line); border-radius:12px; background:#fff;
  color:var(--ink); font-size:16px; line-height:1.5;
}
input::placeholder,textarea::placeholder { color:#717a73; opacity:1; }
.form-field { margin:18px 0; }
.form-field label,.form-field>label,.form-field .between>label { font-size:14px; line-height:1.5; font-weight:600; }
.form-help { margin-top:7px; }
.form-error { color:var(--negative); font-size:14px; line-height:1.5; }
input[aria-invalid=true],select[aria-invalid=true],textarea[aria-invalid=true] { border-color:var(--negative); outline:2px solid var(--negative); outline-offset:1px; }
.tag { padding:5px 8px; border-radius:7px; background:var(--wash); font-size:12px; font-weight:600; }
.tag.orange { background:#f9eee5; color:#915124; }
.progress { height:6px; border-radius:6px; background:var(--wash); }
.progress>span { background:var(--ink); }
.category-icon { width:40px; height:40px; border:0; border-radius:12px; background:var(--wash); }
.category-icon .icon { width:21px; height:21px; }

/* Page chrome: a single title, with brand and session information subordinate. */
.sidebar { background:#fff; border-right:1px solid var(--line); padding-top:32px; }
.nav-caption { font-size:11px; letter-spacing:.06em; }
.nav-button { min-height:48px; font-size:14px; font-weight:600; border:0; border-radius:12px; }
.nav-button[aria-current=page],.nav-button[aria-current=page]:hover { background:var(--accent-soft); border:0; color:var(--ink); }
.nav-button:hover { background:var(--wash); }
.nav-button .icon { width:22px; height:22px; opacity:.8; }
.sidebar-note strong { font-size:13px; font-weight:600; }
.sidebar-note p { font-size:12px; line-height:1.6; }
.main { max-width:1240px; padding:28px 40px 40px; }
.prototype-bar { height:auto; min-height:36px; padding:6px 40px; border:0; color:var(--muted); font-size:12px; line-height:1.45; }
.prototype-bar button,.session-button { min-height:32px; font-size:12px; font-weight:600; }
.topbar,.native-app .topbar { display:flex; flex-direction:row; justify-content:space-between; align-items:center; gap:16px; margin:0 0 28px; }
.topbar :is(h1,h2),.main .topbar :is(h1,h2),.native-app .topbar :is(h1,h2) { font-size:28px; line-height:1.3; font-weight:700; letter-spacing:-.045em; }
.topbar-subtitle { margin-top:6px; font-size:13px; line-height:1.6; }
.topbar-actions { display:flex; flex-direction:row; flex-wrap:nowrap; width:auto; gap:8px; }
.topbar-actions .button { flex:none; min-height:46px; padding:11px 14px; font-size:14px; white-space:nowrap; border-radius:12px; }
.topbar-actions [data-action=add] { background:var(--accent); border-color:var(--accent); color:var(--ink); }
.topbar-actions [data-action=add] .icon { filter:none; }
body[data-view=home] .topbar-actions [data-action=add] { width:46px; padding:12px; background:transparent; border-color:transparent; box-shadow:none; }
body[data-view=home] .topbar-add-label { display:none; }
body:is([data-view=assets],[data-view=plan],[data-view=more],[data-view=policy],[data-view=learn]) .topbar-actions [data-action=add] { display:none; }
.month-toolbar { margin:0 0 20px; padding:0 0 16px; border-bottom:1px solid var(--line); gap:12px; }
.month-picker { gap:4px; }
.month-picker strong { font-size:16px; font-weight:600; letter-spacing:-.02em; min-width:100px; }
.month-picker .icon-button { min-width:40px; min-height:44px; width:40px; height:44px; }
.month-caption { font-size:12px; }
.toolbar-actions { gap:16px; flex-wrap:wrap; }
.toolbar-actions .text-button { font-size:13px; min-height:40px; }
.ledger-tools { position:relative; }
.ledger-tools>summary { display:flex; align-items:center; gap:6px; min-height:44px; padding:8px 10px; border-radius:10px; list-style:none; cursor:pointer; font-size:13px; font-weight:600; }
.ledger-tools>summary::-webkit-details-marker { display:none; }
.ledger-tools>summary .icon { width:18px; height:18px; }
.ledger-tools[open]>summary { background:var(--wash); }
.ledger-tools>div { position:absolute; right:0; top:calc(100% + 6px); z-index:25; display:grid; gap:0; min-width:190px; padding:8px 16px; border:1px solid var(--line); border-radius:16px; background:#fff; box-shadow:0 12px 36px #20232212; }
.ledger-tools>div .text-button { justify-content:flex-start; min-height:48px; white-space:nowrap; }
.card { padding:24px; border:0; border-radius:var(--radius); background:var(--surface); box-shadow:none; }
.card-heading { align-items:center; margin-bottom:18px; gap:12px; }
.card-heading h2 { font-size:20px; }
.card-heading h3 { font-size:17px; }
.card-heading p { margin-top:5px; font-size:13px; line-height:1.6; }
.card-heading .text-button { font-size:13px; flex-shrink:0; }
.empty { padding:32px 16px; font-size:14px; line-height:1.7; }
.footer { font-size:12px; line-height:1.6; padding-top:20px; margin-top:32px; }

/* Today: money and its basis lead; the next action stays in the same area. */
.today-hub { margin-bottom:24px; }
.today-focus { display:grid; grid-template-columns:minmax(0,1.15fr) minmax(0,1fr); gap:28px; padding:24px; border:0; border-radius:var(--radius); background:var(--accent-soft); }
.today-budget { display:flex; flex-direction:column; align-items:flex-start; justify-content:flex-start; gap:0; border:0; padding:0; min-width:0; }
.today-budget-heading { display:flex; align-items:center; justify-content:space-between; gap:12px; width:100%; }
.today-budget-heading>span,.today-budget>span { color:var(--ink); font-size:14px; line-height:1.5; }
.today-budget-heading .text-button { min-height:32px; padding:4px 0; font-size:13px; }
.today-budget>strong { margin:8px 0 12px; font-size:44px; line-height:1.2; font-weight:700; letter-spacing:-.045em; overflow-wrap:anywhere; }
.today-budget>p { margin:3px 0; color:var(--muted); font-size:13px; line-height:1.5; }
.today-budget-meta { display:flex; justify-content:space-between; gap:12px; width:100%; font-size:13px; color:var(--muted); }
.today-budget-meta span { min-width:0; }
.today-budget-meta b { font-weight:600; color:var(--ink); overflow-wrap:anywhere; }
.today-budget-progress { margin:12px 0 10px; width:100%; height:5px; }
.today-budget-progress>span { background:#738870; }
.today-budget .today-budget-planned { display:grid; gap:7px; width:100%; margin:8px 0 0; font-size:12px; line-height:1.5; color:var(--muted); }
.today-budget-planned>div { display:flex; align-items:baseline; justify-content:space-between; gap:16px; }
.today-budget-planned>div>span { min-width:0; }
.today-budget-planned b { min-width:0; font-size:13px; font-weight:600; font-variant-numeric:tabular-nums; text-align:right; overflow-wrap:anywhere; }
.today-budget-planned>div:last-child { color:var(--ink); }
.today-budget .today-budget-basis,.today-budget>small { display:block; margin-top:12px; font-size:var(--text-meta); line-height:1.6; color:var(--muted); max-width:none; }
.today-budget>strong[data-over-budget=true],.today-focus.is-over-budget .today-budget-planned>div:last-child,.plan-overview.is-over-budget .plan-budget-meta>span:last-child,.plan-overview.is-over-budget .plan-budget-meta>span:last-child strong { color:var(--negative); }
.plan-overview.is-over-budget .progress>span { background:var(--negative); }
.today-budget-empty { font-size:20px; line-height:1.5; font-weight:600; }
.today-budget-empty .text-button { margin-top:6px; font-size:14px; }
.today-focus-copy { align-self:center; border-left:1px solid var(--line); padding-left:28px; min-width:0; }
.today-focus-copy .eyebrow { color:var(--muted); font-size:12px; letter-spacing:0; margin:0 0 8px; }
.today-focus h2 { margin:0 0 6px; font-size:20px; line-height:1.4; font-weight:700; letter-spacing:-.03em; }
.today-focus-copy>p:not(.eyebrow) { display:block; max-width:none; color:var(--muted); font-size:13px; line-height:1.6; }
.today-actions { margin-top:16px; }
.today-actions .button { word-break:keep-all; width:100%; min-height:48px; background:var(--accent); border-color:var(--accent); color:var(--ink); font-size:14px; font-weight:600; }
.today-actions .button:hover { background:var(--accent-hover); }
.today-actions .button .icon { filter:none; }
.today-schedule { padding:22px 24px; margin-top:16px; border:1px solid var(--line); border-radius:20px; background:#fff; }
.today-schedule .card-heading { margin-bottom:8px; }
.today-schedule h3 { font-size:18px; }
.today-schedule .card-heading p { font-size:13px; }
.today-schedule ul { margin:8px 0 0; }
.today-schedule li { padding:14px 0; border-top:1px solid var(--line); gap:16px; }
.today-schedule li:first-child { border-top:0; }
.today-schedule-date { margin-bottom:4px; font-size:12px; line-height:1.5; color:var(--muted); }
.today-schedule li strong { font-size:15px; line-height:1.5; font-weight:600; }
.today-schedule-end { max-width:45%; }
.today-schedule-end b { font-size:15px; line-height:1.5; font-variant-numeric:tabular-nums; white-space:nowrap; }
.today-schedule-end .text-button { min-height:36px; padding:6px 0; font-size:13px; }
.today-schedule>.form-help { margin:8px 0 0; font-size:12px; }
.today-more-schedules>summary { font-size:13px; min-height:44px; padding:12px 0; }
.today-next { display:flex; align-items:center; justify-content:space-between; gap:20px; margin-top:16px; padding:20px 2px; border:0; border-top:1px solid var(--line); border-bottom:1px solid var(--line); border-radius:0; background:transparent; }
.today-next .eyebrow { margin:0 0 5px; color:var(--muted); font-size:12px; letter-spacing:0; }
.today-next h3 { margin:0 0 4px; font-size:17px; line-height:1.5; letter-spacing:-.02em; }
.today-next p { margin:0; color:var(--muted); font-size:13px; line-height:1.5; }
.today-next p br { display:none; }
.today-next .button,.today-next .button.secondary { flex-shrink:0; min-height:44px; padding:10px 14px; border:1px solid var(--line); background:#fff; color:var(--ink); font-size:13px; }
.today-plan-link { flex-shrink:0; white-space:nowrap; }
.home-recent { margin-top:var(--space-section); }
.home-recent .card-heading { margin-bottom:8px; }
.home-recent .transaction-row { padding:14px 0; }
.home-secondary { margin-top:12px; border:0; border-radius:20px; background:#fff; overflow:hidden; }
.home-secondary>summary { display:grid; grid-template-columns:40px minmax(0,1fr) 18px; align-items:center; gap:12px; min-height:80px; padding:16px 20px; list-style:none; cursor:pointer; }
.home-secondary>summary::-webkit-details-marker { display:none; }
.home-secondary-icon { display:grid; place-items:center; width:40px; height:40px; border-radius:12px; background:var(--wash); }
.home-secondary>summary strong { display:block; font-size:15px; line-height:1.5; font-weight:600; }
.home-secondary>summary small { display:block; font-size:13px; line-height:1.5; margin-top:3px; color:var(--muted); }
.home-secondary>summary>.icon:last-child { width:18px; height:18px; opacity:.65; }
.home-secondary[open]>summary>.icon:last-child { transform:rotate(180deg); }
.home-secondary>.home-review { margin:0 20px; padding-top:16px; }
.home-secondary .home-review { margin-top:0; padding-bottom:20px; }

/* Records: a quiet summary followed by aligned rows. */
.summary-card>span { color:var(--muted); font-size:13px; }
.summary-card strong { font-size:24px; font-weight:700; letter-spacing:-.03em; font-variant-numeric:tabular-nums; }
.ledger-summary-strip { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:20px; margin:0 0 24px; padding:2px 0 20px; border-bottom:1px solid var(--line); }
.ledger-summary-strip>div,.ledger-summary-strip>section { min-width:0; }
.ledger-summary-strip span,.ledger-summary-strip small { display:block; color:var(--muted); font-size:13px; line-height:1.5; }
.ledger-summary-strip strong { display:block; margin-top:6px; font-size:23px; line-height:1.3; letter-spacing:-.035em; font-weight:700; font-variant-numeric:tabular-nums; overflow-wrap:anywhere; }
.ledger-summary-strip .income { color:var(--positive); }
.ledger-records { padding:20px 24px; }
.ledger-controls { display:flex; align-items:center; gap:8px; flex-wrap:wrap; margin-bottom:12px; }
.ledger-controls input { flex:1 1 200px; min-width:0; padding:11px 14px; }
.ledger-controls select { max-width:180px; padding:10px 32px 10px 12px; font-size:14px; }
.ledger-controls .text-button { min-height:48px; padding-inline:4px; white-space:nowrap; }
.ledger-result-status { display:flex; align-items:center; justify-content:space-between; gap:12px; margin:0 0 8px; padding:4px 0 10px; border-bottom:1px solid var(--line); font-size:13px; color:var(--muted); }
.ledger-result-status .text-button { flex-shrink:0; min-height:44px; padding:8px 0; }
.transaction-row,.ledger-list .transaction-row { flex-wrap:wrap; gap:12px; min-height:76px; padding:16px 0; border-bottom:1px solid var(--line); }
.transaction-list>li:last-child>.transaction-row { border-bottom:0; }
.transaction-info { flex:1 1 6em; min-width:0; }
.transaction-info strong,.ledger-list .transaction-info strong { font-size:var(--text-body); line-height:1.5; font-weight:600; }
.transaction-info small,.ledger-list .transaction-info small { margin-top:3px; font-size:13px; line-height:1.5; color:var(--muted); }
.transaction-amount,.ledger-list .transaction-amount { flex:0 1 auto; min-width:0; max-width:100%; margin-left:auto; white-space:normal; overflow-wrap:anywhere; text-align:right; font-size:var(--text-body); line-height:1.5; font-weight:600; letter-spacing:-.025em; color:var(--ink); }
.transaction-amount.income { color:var(--positive); }
.transaction-amount.transfer { color:#5f6e63; }
.transaction-date { margin-top:3px; font-size:var(--text-meta); line-height:1.5; font-weight:400; color:var(--muted); }
.transaction-info .transaction-state { display:inline-block; margin:0 6px 0 0; padding:1px 5px; border:1px solid #ccd4c8; border-radius:5px; color:var(--muted); background:var(--paper); font-size:12px; line-height:1.5; font-weight:600; white-space:nowrap; vertical-align:baseline; }
.transaction-row[data-future=true] .transaction-date { color:var(--ink); }
.transaction-row .category-icon { background:var(--wash); }
/* Brand logos keep their own colours and ratio on a white tile over the category icon. */
.category-icon.has-logo { position:relative; overflow:hidden; }
.subscription-record-logo { position:absolute; inset:0; width:100%; height:100%; padding:6px; border:1px solid var(--line); border-radius:inherit; background:#fff; object-fit:contain; }
.subscription-record-logo.wide { padding:3px; }
.forecast-detail .subscription-record-logo { border:0; }
.group-date { padding:10px 0; margin-top:16px; font-size:13px; background:transparent; border-radius:0; }
.member-calendar [aria-current=date] strong { background:var(--ink); }

/* Assets and plans show useful values or one clear empty state. */
#assets-view>.card { margin-block:0 20px; }
#assets-view>.card:first-child>.summary-grid { margin:16px 0 0; gap:24px; }
#assets-view .asset-main-amount { margin:8px 0; font-size:30px; line-height:1.3; font-weight:700; letter-spacing:-.04em; }
#assets-view .summary-grid>div>span { font-size:14px; color:var(--muted); }
.asset-basis { margin-top:20px; font-size:13px; color:var(--muted); }
.asset-basis summary { cursor:pointer; min-height:44px; padding:12px 0; font-size:13px; font-weight:600; }
.asset-basis p { line-height:1.6; }
.asset-registration { margin-top:12px; padding-top:8px; border-top:1px solid var(--line); }
.asset-registration summary { padding:12px 0; min-height:48px; font-size:14px; font-weight:600; }
.asset-registration .asset-page-actions { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:10px; margin-top:8px; }
.asset-registration .button { font-size:13px; }
.asset-empty-start { padding:28px; margin:0 0 20px; border:1px solid var(--line); border-radius:20px; background:#fff; }
.asset-empty-start>.icon,.asset-empty-start>.category-icon { margin-bottom:20px; width:48px; height:48px; }
.asset-empty-start h3,.asset-empty-start h2 { margin:0 0 10px; font-size:24px; line-height:1.4; letter-spacing:-.035em; }
.asset-empty-start p { margin:0 0 20px; color:var(--muted); font-size:15px; line-height:1.65; }
.asset-empty-start .button { min-height:50px; background:var(--accent); border-color:var(--accent); color:var(--ink); }
.asset-empty-start .button .icon { filter:none; }
.asset-overview .asset-empty-start { padding:4px 0 8px; margin:0; border:0; border-radius:0; }
.asset-empty-icon { display:grid; place-items:center; width:52px; height:52px; margin-bottom:22px; border-radius:16px; background:var(--wash); }
.asset-empty-icon .icon { width:28px; height:28px; }
.asset-empty-start>small { display:block; margin-top:14px; color:var(--muted); font-size:13px; line-height:1.6; text-align:center; }
.asset-registration>summary,.asset-guide>summary,.plan-budget-tools>summary { display:flex; align-items:center; justify-content:space-between; gap:12px; list-style:none; }
.asset-registration>summary::-webkit-details-marker,.asset-guide>summary::-webkit-details-marker,.plan-budget-tools>summary::-webkit-details-marker { display:none; }
.asset-registration>summary .icon,.asset-guide>summary .icon,.plan-budget-tools>summary .icon { width:18px; height:18px; opacity:.65; }
.asset-guide { margin:0 0 16px; padding:4px 0; border-bottom:1px solid var(--line); }
.asset-guide>summary { min-height:60px; padding:14px 0; font-size:14px; line-height:1.5; font-weight:600; cursor:pointer; }
.asset-guide>.form-help { margin:0 0 8px; }
.asset-sharing-row { display:flex; align-items:center; gap:12px; padding:16px 0; }
.asset-sharing-row>div { flex:1; min-width:0; }
.asset-sharing-row strong { font-size:15px; font-weight:600; }
.asset-sharing-row p { margin-top:4px; color:var(--muted); font-size:13px; line-height:1.5; }
.asset-sharing-row>.text-button { flex-shrink:0; }
.asset-filters { margin:20px 0; gap:8px; }
.asset-filters button,.policy-chip { min-height:44px; padding:10px 14px; border:1px solid var(--line); border-radius:12px; background:#fff; font-size:13px; font-weight:600; }
.asset-filters button[aria-pressed=true],.policy-chip[aria-pressed=true] { border-color:var(--ink); background:var(--ink); color:#fff; }
.asset-management-grid { gap:16px; }
.asset-group>h2 { margin:0 0 12px; font-size:18px; }
.asset-management-item h3 { font-size:17px; }
.asset-management-item p { font-size:13px; line-height:1.6; }
.asset-summary .between { font-size:14px; }
.card-bill { padding:14px; border-radius:12px; background:var(--wash); }
.income-invite,.plan-overview { margin-bottom:20px; gap:24px; background:#fff; }
.income-invite h2,.plan-overview h2 { font-size:22px; line-height:1.4; letter-spacing:-.035em; }
.plan-overview .eyebrow,.income-invite .eyebrow { color:var(--muted); font-size:12px; letter-spacing:0; }
#plan-view .goal-card { display:flex; }
#plan-view .card-heading { flex-wrap:wrap; }
#plan-view .card-heading>div { flex:1 1 11em; min-width:0; overflow-wrap:anywhere; }
#plan-view>.goal-card { position:relative; padding:20px; margin-bottom:16px; }
#plan-view>.goal-card .goal-symbol,#plan-view>.goal-card .eyebrow,#plan-view>.goal-card .goal-heading { display:none; }
#plan-view>.goal-card h2 { font-size:18px; margin:0 0 6px; }
#plan-view>.goal-card .goal-value { font-size:24px; margin:8px 0 0; }
#plan-view>.goal-card .muted { margin:0 0 6px; }
#plan-view>.goal-card .text-button { padding-top:8px; margin-top:0; min-height:44px; }
.recurring-card .recurring-create { display:flex; align-items:center; justify-content:space-between; width:100%; margin-top:4px; }
.recurring-card .recurring-create>span { font-size:22px; font-weight:400; }
.plan-overview>strong,.plan-overview .plan-amount,.plan-budget-amount { display:block; font-size:36px; line-height:1.2; font-weight:700; letter-spacing:-.05em; margin:10px 0 14px; font-variant-numeric:tabular-nums; overflow-wrap:anywhere; }
.plan-overview .progress { margin:16px 0 12px; height:6px; }
.plan-overview .between { font-size:13px; color:var(--muted); }
.plan-budget-meta { display:flex; justify-content:space-between; gap:16px; font-size:13px; color:var(--muted); }
.plan-budget-meta>span { flex:1; min-width:0; }
.plan-budget-meta strong { display:block; margin-top:4px; color:var(--ink); font-size:16px; font-variant-numeric:tabular-nums; overflow-wrap:anywhere; }
.plan-budget-tools { margin-top:18px; border-top:1px solid var(--line); }
.plan-budget-tools>summary { min-height:48px; padding:14px 0; font-size:14px; font-weight:600; cursor:pointer; }
.plan-primary-actions { display:flex; flex-wrap:wrap; gap:8px; }
.plan-primary-actions .button { min-height:46px; font-size:13px; }
.plan-primary-actions [data-action=budget] { flex:1 1 100%; }
.plan-primary-actions .button.secondary { flex:1 1 140px; font-size:13px; line-height:1.5; }
.recurring-presets { display:flex; flex-wrap:wrap; gap:8px; }
.recurring-presets .button { min-height:44px; padding:10px 13px; font-size:14px; }
.member-budget-row { padding:14px 0; gap:12px; border-bottom:1px solid var(--line); }
.member-budget-row strong { font-size:15px; font-weight:600; }
.member-budget-row small { font-size:13px; line-height:1.5; }
.budget-total strong,.goal-value { font-size:30px; line-height:1.3; font-weight:700; overflow-wrap:anywhere; }
.goal-title { font-size:19px; line-height:1.5; }
.goal-meta { font-size:13px; line-height:1.5; }
.budget-recommendation summary,.budget-tools summary { min-height:44px; padding:12px 0; font-size:14px; }

/* Onboarding: a small working example and an unambiguous way to begin. */
.auth-preview { display:none; }
.auth-header { padding:28px 40px; }
.auth-header .brand { font-size:30px; }
.auth-header .text-button { font-size:14px; }
.auth-intro h2 { font-size:46px; line-height:1.3; font-weight:700; letter-spacing:-.05em; }
.auth-intro-copy { font-size:16px; line-height:1.7; }
.auth-benefits strong { font-size:15px; font-weight:600; }
.auth-benefits small { font-size:13px; line-height:1.5; }
.auth-card { padding:32px; border:1px solid var(--line); border-radius:24px; box-shadow:none; }
.auth-card :is(h1,h2) { font-size:30px; line-height:1.3; font-weight:700; letter-spacing:-.045em; }
.auth-step-row { margin-bottom:20px; }
.auth-step-row #auth-step,.auth-step-count { font-size:12px; letter-spacing:0; }
.auth-card-copy { margin:14px 0 22px; font-size:15px; line-height:1.65; }
.auth-card .button,.auth-card .google-button { min-height:52px; font-size:15px; font-weight:600; }
.auth-card .auth-money-example { margin-bottom:0; background:#fff; border:1px solid var(--line); color:var(--ink); }
.auth-example-note,.auth-google-note,.auth-card-footnote,.auth-form-note,.auth-card .form-help { font-size:13px; line-height:1.6; }
.auth-card .form-field label { font-size:14px; font-weight:600; }
.auth-card .form-field input,.auth-card .form-field select { font-size:16px; min-height:50px; border-width:1px; }
.auth-example-note { margin:10px 0 20px; }
.auth-card-footnote { margin-top:22px; }
.auth-divider { margin:24px 0; background:var(--paper); border-color:var(--line); }
.auth-divider span { background:var(--paper); font-size:12px; }
.google-button { border:1px solid var(--ink); background:var(--ink); color:#fff; box-shadow:none; }
.auth-product-preview,.auth-showcase { padding:24px; margin:24px 0; border:0; border-radius:var(--radius); background:var(--accent-soft); }
.auth-product-preview>span { font-size:13px; color:var(--muted); }
.auth-product-preview>strong { display:block; margin:10px 0 18px; font-size:22px; line-height:1.4; font-weight:700; }
.auth-product-preview>div { display:flex; align-items:center; gap:8px; font-size:12px; color:var(--muted); }
.auth-product-preview b { padding:7px 10px; border-radius:8px; background:var(--accent-soft); color:var(--ink); font-size:12px; }
.auth-showcase-heading { display:flex; justify-content:space-between; align-items:center; gap:12px; color:var(--muted); font-size:13px; }
.auth-sample-tag { padding:4px 8px; border-radius:8px; background:#fff9; color:var(--muted); font-size:12px; }
.auth-showcase>strong,.auth-showcase .showcase-amount { display:block; margin:12px 0 20px; font-size:40px; line-height:1.2; font-weight:700; letter-spacing:-.045em; }
.auth-showcase>strong>span { margin-left:3px; font-size:22px; font-weight:400; letter-spacing:-.02em; }
.auth-showcase p,.auth-showcase small { color:var(--muted); font-size:13px; line-height:1.6; }
.auth-showcase-progress { height:5px; margin:0 0 18px; border-radius:5px; background:var(--wash); overflow:hidden; }
.auth-showcase-progress>span { display:block; width:64%; height:100%; border-radius:5px; background:var(--accent); }
.auth-showcase-record { display:flex; align-items:center; gap:12px; padding:0 0 16px; }
.auth-showcase-record>span:not(.category-icon) { flex:1; font-size:14px; font-weight:600; }
.auth-showcase-record small { display:block; margin-top:3px; font-weight:400; }
.auth-showcase-record>b { font-size:14px; white-space:nowrap; font-variant-numeric:tabular-nums; }
.auth-showcase .text-button { display:flex; justify-content:space-between; width:100%; min-height:44px; border-top:1px solid var(--line); padding-top:14px; }
.auth-footer { font-size:12px; line-height:1.6; }

/* Dialogs: shared header, entry type switch and discard prompt. */
dialog { border:1px solid var(--line); border-radius:24px; background:#fff; box-shadow:0 24px 80px #17211724; }
dialog::backdrop { background:#20232266; backdrop-filter:blur(4px); }
dialog .dialog-header { padding:22px 24px 18px; border-bottom:1px solid var(--line); margin:0; gap:12px; }
dialog .dialog-header h2 { font-size:20px; line-height:1.4; font-weight:700; letter-spacing:-.035em; }
dialog .dialog-header .icon-button { min-width:44px; min-height:44px; width:44px; height:44px; margin:-8px -8px -8px 0; border-radius:50%; background:transparent; }
dialog .dialog-header .icon-button:hover { background:var(--wash); }
dialog .dialog-header .icon-button .icon { width:22px; height:22px; }
.quick-entry-progress { color:var(--muted); font-size:13px; font-weight:600; margin-bottom:12px; }
#entry-form .entry-type { border:0; border-radius:12px; background:var(--wash); padding:4px; margin-bottom:20px; gap:4px; }
#entry-form .entry-type label { min-height:44px; font-size:14px; font-weight:600; border:0; border-radius:9px; color:var(--muted); }
#entry-form .entry-type label:has(input:checked) { background:#fff; box-shadow:0 1px 4px #2023220a; color:var(--ink); }
.sheet-discard:not([hidden]) { flex-shrink:0; padding:16px 24px; background:var(--accent-soft); border-bottom:1px solid var(--line); margin:0; }
.sheet-discard p { margin:0 0 12px; font-size:14px; line-height:1.6; }
.sheet-discard .button { min-height:44px; font-size:13px; margin-right:8px; }
#guidance-inputs>p { font-size:14px; margin:12px 0 18px; }
#guidance-inputs .form-field { margin:18px 0; }
#guidance-inputs .form-field>label { font-size:14px; line-height:1.5; }
#guidance-inputs .form-help { font-size:13px; line-height:1.6; }
#guidance-inputs>label { font-size:14px; }
.guidance-input-footer .button { min-height:52px; font-size:15px; }

/* Settings follow a consistent list rhythm. */
.feature-directory { gap:24px; align-items:start; }
.more-section { min-width:0; }
.feature-directory .more-title { margin:0 0 10px; padding-inline:4px; color:var(--muted); font-size:13px; line-height:1.5; font-weight:600; letter-spacing:0; }
.more-section-list { padding:0 20px; border:0; border-radius:20px; background:#fff; }
.feature-directory button,.feature-directory a { position:relative; padding:16px 30px 16px 0; min-height:70px; border-top:1px solid var(--line); font-size:15px; line-height:1.5; font-weight:600; color:var(--ink); }
.more-section-list>:is(button,a):first-child,.more-section-list>[hidden]+:is(button,a) { border-top:0; }
.feature-directory button>span:not(.feature-chevron),.feature-directory a>span:not(.feature-chevron) { display:block; margin-top:4px; color:var(--muted); font-size:13px; line-height:1.5; font-weight:400; }
.feature-directory button:after,.feature-directory a:after { content:none; }
.feature-directory .feature-chevron { position:absolute; right:0; top:50%; transform:translateY(-50%); margin:0; width:18px; height:18px; }
.feature-directory .feature-chevron .icon { width:18px; height:18px; margin:0; opacity:.65; }
.feature-directory button:hover,.feature-directory a:hover { background:transparent; color:#476d55; }
.frugal-management { margin-top:16px; padding-top:4px; border-top:1px solid var(--line); }
.frugal-management>summary { min-height:48px; padding:14px 0; font-size:14px; font-weight:600; cursor:pointer; }
.frugal-shell input:not([type=checkbox]),.frugal-shell select,.frugal-shell textarea { font-size:16px; min-height:48px; }
.frugal-shell .frugal-actions .button { min-height:48px; font-size:14px; }
.frugal-shell .frugal-actions .danger { min-height:44px; }
.frugal-shell .frugal-appbar { display:flex; align-items:center; gap:14px; margin-bottom:16px; }
.frugal-shell .frugal-back { display:grid; place-items:center; width:48px; height:48px; flex-shrink:0; border:1px solid var(--line); border-radius:14px; background:#fff; color:var(--ink); text-decoration:none; font-size:24px; }
.frugal-shell .frugal-appbar .frugal-eyebrow { margin:0 0 4px; font-size:12px; }
.frugal-shell .frugal-appbar h1 { margin:0; font-size:24px; line-height:1.3; letter-spacing:-.035em; }
.frugal-intro { font-size:15px; line-height:1.6; margin:0 0 24px; color:var(--muted); }
.age-page { min-height:100dvh; display:grid; place-items:center; padding:24px; margin:0; }
.age-page .age-card { width:100%; max-width:460px; padding:28px; margin:0; border:0; }
.age-brand { margin:0 0 32px; font-size:28px; font-weight:700; letter-spacing:-.04em; }
.age-card .eyebrow { font-size:13px; letter-spacing:0; color:var(--muted); }
.age-card h1 { font-size:28px; line-height:1.4; letter-spacing:-.035em; margin:12px 0 20px; }
.age-card>p { font-size:15px; line-height:1.7; }
.age-card .age-brand { font-size:28px; line-height:1.3; }
.age-card>label { display:flex; align-items:center; gap:12px; padding:16px 0; margin:20px 0 12px; min-height:52px; font-size:15px; }
.age-card input[type=checkbox] { width:22px; height:22px; accent-color:var(--ink); }
.age-card>a { display:block; min-height:48px; padding:12px 0; text-align:center; font-size:14px; }
.age-content h1,.native-app .auth-card :is(h1,h2) { font-weight:700; }

/* Gimmoney keeps the current value visible and opens detail on request. */
.simple-detail { min-width:0; }
.simple-detail>summary { display:flex; align-items:center; gap:10px; min-height:48px; padding:12px 0; list-style:none; cursor:pointer; font-size:14px; font-weight:600; line-height:1.5; }
.simple-detail>summary::-webkit-details-marker { display:none; }
.simple-detail>summary>:is(.icon,[data-icon]):last-child { flex-shrink:0; width:18px; height:18px; margin-left:auto; opacity:.6; transition:transform 180ms ease; }
.simple-detail[open]>summary>:is(.icon,[data-icon]):last-child { transform:rotate(180deg); }
.simple-detail[open] { padding-bottom:12px; }
.today-budget-detail { width:100%; margin-top:8px; }
.today-budget-detail>summary { color:var(--muted); font-size:13px; }
.today-budget .today-budget-basis { margin-top:0; }
.today-budget>strong { margin-bottom:10px; }
.today-budget .budget-warning,.budget-warning { margin:12px 0 0; color:var(--negative); font-size:13px; line-height:1.6; font-weight:600; }
.today-focus-copy.is-routine { border:0; }
.today-focus-copy.is-routine .today-actions { margin:0; }
.today-next { margin-top:8px; padding:0; border-top:0; }
.today-next .today-plan-link { display:flex; align-items:center; justify-content:space-between; gap:16px; width:100%; min-height:60px; font-size:15px; font-weight:600; white-space:normal; text-align:left; }
.home-secondary>summary { min-height:64px; padding-block:12px; }
.home-secondary>summary small { display:none; }
.ledger-toolbar { display:grid; grid-template-columns:minmax(0,1fr) auto; align-items:start; gap:0 16px; }
.ledger-filters { display:contents; }
.ledger-filters::details-content { grid-column:1 / -1; grid-row:2; min-width:0; }
.ledger-filters>summary { grid-column:1; grid-row:1; justify-self:start; gap:8px; }
.ledger-filters>.ledger-controls { grid-column:1 / -1; grid-row:2; margin:8px 0 16px; }
.filter-count { border-radius:6px; padding:2px 6px; color:#3c6047; background:var(--wash); font-size:12px; font-weight:500; }
#plan-view>.goal-card .card-heading { margin-bottom:0; }
#plan-view>.goal-card .card-heading h2 { margin:0; }
#plan-view>.goal-card .goal-value { margin:8px 0 14px; }
#plan-view>.goal-card #goal-detail { margin-top:8px; }
.plan-secondary { margin-top:0; border:0; border-bottom:1px solid var(--line); border-radius:0; background:transparent; }
.plan-secondary>summary { min-height:64px; padding:16px 4px; }
.plan-secondary>.plan-detail-body,.plan-secondary>.plan-primary-actions { padding:0 20px 8px; }
.plan-secondary .recurring-card { margin:0; border:0; padding:0 20px 8px; }
.plan-secondary .recurring-card>.card-heading { margin-bottom:12px; }
.plan-primary-actions { display:grid; gap:4px; margin:0; }
.plan-primary-actions .text-button { min-height:48px; justify-content:flex-start; text-align:left; }
.auth-card [data-auth=guest] { margin-top:16px; }
.feature-directory { gap:18px; }
.feature-directory button,.feature-directory a { min-height:56px; padding:15px 30px 15px 0; font-size:var(--text-body); }
.feature-directory .more-title { margin-bottom:8px; }
.feature-directory a>span.more-hint { display:inline; margin-left:10px; font-size:12px; font-weight:400; }

@media(max-width:1000px) and (min-width:761px) {
  .main { padding-inline:28px; }
  .today-focus { grid-template-columns:1fr; gap:20px; }
  .today-focus-copy { padding:20px 0 0; border-left:0; border-top:1px solid var(--line); }
  .today-focus-copy.is-routine { display:block; margin-top:8px; padding:0; }
  .today-focus-copy.is-routine .today-actions .button { width:100%; max-width:none; font-size:15px; min-height:50px; }
  .today-actions .button { width:auto; }
}
@media(max-width:760px) {
  :root { --space-page:20px; }
  html { scroll-padding-bottom:calc(10rem + var(--app-safe-bottom)); }
  .main,.native-app .main { padding:12px var(--space-page) calc(5.5em + 24px + var(--app-safe-bottom)); }
  .prototype-bar { min-height:32px; padding:4px var(--space-page); font-size:11px; line-height:1.4; background:transparent; }
  .prototype-bar .session-button { min-height:32px; font-size:12px; }
  .mobile-brand,.native-app .mobile-brand { display:none; }
  .topbar,.native-app .topbar { margin-bottom:24px; gap:12px; }
  .topbar :is(h1,h2),.main .topbar :is(h1,h2),.native-app .topbar :is(h1,h2) { font-size:28px; }
  .topbar-subtitle { display:none; }
  .topbar-actions { width:auto; flex-shrink:0; }
  .topbar-actions .button,.native-app .topbar-actions .button { min-height:44px; padding:10px 12px; font-size:13px; }
  .topbar-actions [data-action=assets] { width:44px; padding:10px; }
  .topbar-asset-label { display:none; }
  .topbar-actions [data-action=assets] [data-icon] { margin:0; }
  .card { padding:22px; border-radius:var(--radius); }
  .card-heading { margin-bottom:16px; }
  .card-heading h2 { font-size:20px; }
  .month-toolbar { margin-bottom:20px; padding-bottom:12px; }
  .month-toolbar>.row { flex-wrap:wrap; gap:2px 12px; }
  .month-caption { display:none; }
  .toolbar-actions { gap:4px 14px; }
  .toolbar-actions .text-button { min-height:40px; font-size:13px; }
  .home-grid,.plan-grid { gap:16px; }
  .today-hub { margin-bottom:20px; }
  .today-focus { display:flex; flex-direction:column; gap:0; padding:24px 22px; border-radius:var(--radius); }
  .today-budget { display:flex; width:100%; align-items:flex-start; padding:0; border:0; }
  .today-budget>* { grid-column:auto; grid-row:auto; }
  .today-budget>strong { margin:12px 0; font-size:40px; }
  .today-budget p br { display:none; }
  .today-budget-meta { font-size:12px; gap:8px; }
  .today-budget .today-budget-basis,.today-budget>small { font-size:var(--text-meta); }
  .today-focus-copy { display:grid; grid-template-columns:minmax(0,1fr) auto; align-items:center; column-gap:12px; width:100%; border-left:0; border-top:1px solid var(--line); padding:16px 0 0; margin-top:16px; }
  .today-focus-copy .eyebrow { grid-column:1; grid-row:1; margin:0 0 4px; }
  .today-focus h2 { grid-column:1; grid-row:2; margin:0; font-size:16px; line-height:1.4; font-weight:600; }
  .today-focus-copy>p:not(.eyebrow) { display:none; }
  .today-actions { grid-column:2; grid-row:1 / 3; margin:0; }
  .today-focus-copy.is-routine { display:block; margin-top:8px; padding:0; }
  .today-focus-copy.is-routine .today-actions .button { width:100%; max-width:none; font-size:15px; min-height:50px; }
  .today-actions .button { width:auto; max-width:132px; min-height:48px; padding:12px; font-size:14px; }
  .today-schedule { margin-top:16px; padding:20px; }
  .today-schedule .card-heading { align-items:flex-start; gap:10px; }
  .today-schedule h3 { font-size:18px; }
  .today-schedule .card-heading p { font-size:12px; }
  .today-schedule-date { font-size:12px; }
  .today-next { gap:16px; padding:0; margin-top:8px; }
  .today-next h3 { font-size:16px; }
  .today-next p { font-size:13px; }
  .today-next .button { width:auto; margin:0; padding:10px 12px; }
  .today-plan-link { font-size:13px; }
  .home-recent { margin-top:var(--space-section); }
  .home-recent .card-heading h2 { font-size:20px; }
  .ledger-summary-strip { grid-template-columns:repeat(auto-fit,minmax(min(100%,5em),1fr)); gap:12px; margin-bottom:16px; padding-bottom:18px; }
  .ledger-summary-strip strong { font-size:16px; line-height:1.4; letter-spacing:-.035em; }
  .ledger-summary-strip span,.ledger-summary-strip small { font-size:12px; }
  #ledger-view .summary-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:10px; }
  #ledger-view .summary-card { padding:14px 10px; margin-bottom:0; }
  #ledger-view .summary-card strong { margin-top:6px; font-size:18px; white-space:normal; overflow-wrap:anywhere; }
  #ledger-view .summary-card>span { font-size:12px; }
  .ledger-records { padding:12px 18px 4px; }
  .ledger-controls { gap:8px; margin-bottom:8px; }
  .ledger-controls input { flex-basis:100%; }
  .ledger-controls select { flex:1 1 12em; max-width:100%; min-width:0; min-height:44px; padding:10px 22px 10px 10px; font-size:13px; }
  .ledger-controls .text-button { min-height:44px; font-size:13px; }
  .transaction-row,.ledger-list .transaction-row { min-height:76px; gap:12px; }
  .transaction-info strong,.ledger-list .transaction-info strong { font-size:var(--text-body); }
  .transaction-info small,.ledger-list .transaction-info small { font-size:var(--text-meta); }
  .transaction-amount,.ledger-list .transaction-amount { font-size:var(--text-body); }
  .transaction-date { font-size:var(--text-meta); }
  .transaction-row .category-icon { width:40px; height:40px; border-radius:14px; }
  #assets-view>.card:first-child>.summary-grid { grid-template-columns:1fr; gap:20px; }
  #assets-view .asset-main-amount { font-size:28px; }
  .asset-empty-start { padding:28px 24px; }
  .asset-overview .asset-empty-start { padding:6px 0 8px; }
  .asset-sharing-row { flex-wrap:wrap; }
  .asset-sharing-row>.text-button { margin-left:52px; min-height:40px; padding:6px 0; }
  .asset-empty-start .button { width:100%; }
  .asset-registration .asset-page-actions { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .asset-filters { flex-wrap:nowrap; overflow-x:auto; padding:2px 0 8px; margin:16px 0; scrollbar-width:thin; }
  .asset-filters button { flex-shrink:0; }
  .asset-management-grid { grid-template-columns:minmax(0,1fr); }
  .income-invite,.plan-overview { display:block; }
  .income-invite h2,.plan-overview h2 { font-size:22px; }
  .plan-primary-actions { width:100%; margin-top:0; gap:4px; }
  .plan-primary-actions .button.secondary { flex-basis:120px; font-size:13px; }
  .plan-overview>strong,.plan-overview .plan-amount,.plan-budget-amount { font-size:36px; }
  #mobile-nav,.native-app #mobile-nav {
    height:auto; min-height:calc(76px + var(--app-safe-bottom)); padding:8px 12px calc(8px + var(--app-safe-bottom));
    gap:4px; background:#fffffff5; border-top:1px solid var(--line); box-shadow:none; backdrop-filter:blur(16px);
  }
  #mobile-nav button,.native-app #mobile-nav button { min-height:58px; padding:5px 0 3px; gap:4px; border-radius:14px; background:transparent; color:var(--muted); font-size:12px; font-weight:400; }
  #mobile-nav button>span { font-size:12px; line-height:1.4; font-weight:400; }
  #mobile-nav .icon { width:22px; height:22px; margin:3px 0; opacity:.7; }
  #mobile-nav button[aria-current=page],.native-app #mobile-nav button[aria-current=page] { color:var(--ink); background:transparent; }
  #mobile-nav button[aria-current=page]>span { font-weight:600; }
  #mobile-nav button[aria-current=page] .icon { opacity:1; background:var(--accent); border-radius:7px; box-shadow:0 0 0 6px var(--accent); }
  .native-app.keyboard-open #mobile-nav { display:none; }
  .toast { bottom:calc(92px + var(--app-safe-bottom)); font-size:14px; }
  #auth-shell .auth-header,.native-app #auth-shell .auth-header { padding:24px 24px 12px; }
  #auth-shell .auth-header .brand { font-size:27px; }
  #auth-shell .auth-header .text-button { font-size:13px; }
  #auth-shell .auth-frame,.native-app #auth-shell .auth-frame { padding:16px 24px calc(28px + var(--app-safe-bottom)); min-height:0; max-width:480px; }
  #auth-shell .auth-card,.native-app #auth-shell .auth-card { padding:0; border:0; border-radius:0; background:transparent; box-shadow:none; }
  #auth-welcome :is(h1,h2),.native-app #auth-welcome :is(h1,h2) { font-size:30px; line-height:1.3; letter-spacing:-.045em; margin:6px 0 16px; }
  .native-app #auth-welcome::before { display:none; }
  .auth-step-row { margin-bottom:16px; }
  .auth-card-copy,.native-app .auth-card-copy { font-size:15px; line-height:1.65; margin:14px 0 22px; }
  .auth-product-preview,.auth-showcase { margin:22px 0; padding:20px; }
  .auth-card .google-button { min-height:52px; border-radius:14px; }
  .auth-example-note,.auth-google-note,.auth-card-footnote { font-size:var(--text-meta); }
  .auth-card-footnote { margin-top:20px; }
  dialog .dialog-header { padding:18px 20px; }
  dialog .dialog-header h2 { font-size:20px; }
  #edit-dialog:not(.native-sheet) { position:fixed; inset:auto 0 0; margin:0; width:100%; max-width:100%; max-height:94dvh; border:0; border-radius:24px 24px 0 0; padding:0 0 var(--app-safe-bottom); }
  #edit-dialog:not(.native-sheet)>#edit-content { padding:18px 20px 20px; }
  #edit-dialog:not(.native-sheet)>.dialog-header { padding:18px 20px; margin:0; }
  .native-app dialog[open]:not(#import-dialog):not(:where(#native-age-dialog)) { padding:0 20px calc(20px + var(--app-safe-bottom)); border:0; border-radius:24px 24px 0 0; }
  .native-app dialog .dialog-header { padding:12px 0 16px; background:#fff; }
  .native-app dialog .sheet-submit-dock:not([hidden]) { padding:16px 0 0; border-top:1px solid var(--line); }
  .native-app dialog .sheet-submit-dock .button { min-height:52px; font-size:15px; }
  .feature-directory { grid-template-columns:1fr; gap:18px; }
  .more-section-list { padding-inline:20px; }
  .feature-directory button,.feature-directory a { min-height:56px; padding:15px 26px 15px 0; }
  .frugal-shell { padding:24px 20px 48px; }
  .frugal-shell header .brand { font-size:24px; }
  .frugal-shell header h1 { font-size:28px; letter-spacing:-.04em; }
  .frugal-shell .card { padding:22px; border-radius:var(--radius); }
  .frugal-shell .frugal-eyebrow { margin-top:24px; }
  .frugal-shell .form-help { font-size:13px; }
  .frugal-shell .frugal-member { padding:16px; border-radius:14px; }
  .age-page { padding:20px; }
  .age-page .age-card { padding:24px 4px; background:transparent; box-shadow:none; }
  .footer { display:none; }
}
@media(max-width:359px) {
  :root { --space-page:16px; }
  .topbar :is(h1,h2),.main .topbar :is(h1,h2),.native-app .topbar :is(h1,h2) { font-size:26px; }
  .topbar-actions .button { padding:10px; font-size:12px; }
  .today-focus,.today-schedule,.card { padding:18px; }
  .today-budget>strong { font-size:36px; }
  .ledger-summary-strip { gap:8px; }
  .ledger-summary-strip strong { font-size:15px; }
  .transaction-row { gap:8px; }
  .transaction-amount { font-size:14px; }
  .auth-product-preview>div { gap:5px; font-size:11px; }
}
/* One visual language: warm value surfaces, quiet rows and tactile actions. */
.button:where(:not(.secondary):not(.soft):not(.danger):not(.apple-signin)):not(:disabled) { box-shadow:var(--control-depth); }
.button.secondary,.button.soft,.button.danger,.button.apple-signin,.google-button { box-shadow:none; }
.button.is-saving:disabled { color:var(--ink); background:var(--accent-soft); border-color:transparent; }
.button:disabled { box-shadow:none; cursor:default; }
.button.is-saving:disabled { cursor:progress; }
.button.apple-signin { background:var(--ink); color:#fff; border-color:var(--ink); }
.button.apple-signin .icon { filter:brightness(0) invert(1); }
button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,summary:focus-visible { outline-color:var(--ink); }
.today-focus.is-over-budget { background:#fcf0e9; }
.today-focus-copy.is-routine { border:0; }
.today-budget-detail>summary { min-height:48px; }
.today-budget-heading .text-button { min-height:44px; }
.today-budget-heading>span { font-weight:600; }
.today-budget-detail>summary,.today-budget-basis { color:var(--muted); }
.today-budget-detail .today-budget-meta,.today-budget .today-budget-planned { font-size:13px; }
.today-budget .today-budget-basis,.plan-overview .small.muted,.ledger-period-note { color:#52584e; font-size:14px; line-height:1.6; }
#plan-goals>.goal-card { margin:0; padding:4px 24px 20px; background:transparent; border-radius:0; }
#plan-goals>.goal-card .goal-value { display:grid; grid-template-columns:minmax(0,1fr); gap:4px; margin:0 0 12px; }
#plan-goals>.goal-card .goal-saved-label { color:var(--muted); font-size:13px; line-height:1.5; font-weight:400; }
#plan-goals>.goal-card .goal-value>strong { font-size:28px; line-height:1.3; font-weight:700; letter-spacing:-.035em; overflow-wrap:normal; }
#plan-goals>.goal-card .goal-value .money-unit { font-size:.56em; color:var(--ink); }
#plan-goals>.goal-card .goal-target-label { color:var(--muted); font-size:14px; line-height:1.5; font-weight:400; }
#plan-goals>.goal-card .progress { margin:0 0 4px; }
#plan-view>.goal-card .progress>span { background:var(--ink); }
.plan-secondary .small { font-size:13px; font-weight:400; }
.feature-directory .more-title { padding-left:0; font-size:13px; margin-bottom:12px; }
.feature-directory { gap:24px; }
.feature-directory button,.feature-directory a { border-top:0; }
.feature-directory button:hover,.feature-directory a:hover { color:var(--ink); }
.auth-showcase .text-button { border-top-color:#e5dba6; }
.auth-showcase-heading { justify-content:flex-start; gap:8px; }
.auth-showcase .auth-sample-tag { font-size:13px; background:#fff9; color:#52584e; }
.auth-card [data-auth=guest] { background:transparent; border-color:transparent; }
.auth-card [data-auth=guest]:hover { background:var(--wash); }
@media(max-width:760px) {
  .prototype-bar { font-size:12px; }
  .topbar,.native-app .topbar { min-height:48px; margin-bottom:20px; }
  .today-focus { padding-top:20px; }
  .home-recent { margin-top:20px; }
  .home-recent .card-heading h2 { font-size:20px; }
  .today-focus-copy.is-routine .today-actions .button { font-size:15px; min-height:50px; }
  .today-budget>strong { margin-top:6px; }
  .ledger-summary-strip { padding-bottom:20px; margin-bottom:16px; }
  .ledger-summary-strip span { font-size:13px; }
  #mobile-nav button { position:relative; isolation:isolate; }
  #mobile-nav button[aria-current=page]::before { content:''; position:absolute; top:2px; left:50%; width:48px; height:34px; transform:translateX(-50%); border-radius:16px; background:var(--accent-soft); z-index:-1; }
  #mobile-nav button[aria-current=page] .icon { background:transparent; border-radius:0; box-shadow:none; }
  #mobile-nav .icon { opacity:.85; }
  .auth-product-preview,.auth-showcase { padding:22px; }
}
@media(prefers-reduced-motion:reduce) {
  *,*::before,*::after { scroll-behavior:auto!important; animation:none!important; transition:none!important; }
}

/* Asset review: lead with money status, then reveal supporting detail. */
.asset-totals { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px 20px; margin:16px 0 20px; }
.asset-totals>div { min-width:0; }
.asset-totals dt { color:var(--muted); font-size:13px; }
.asset-totals dd { margin:4px 0 0; font-size:20px; font-weight:600; overflow-wrap:anywhere; font-variant-numeric:tabular-nums; }
.asset-totals .asset-net { grid-column:1/-1; }
.asset-net dd { font-size:32px; letter-spacing:-.04em; }
.asset-shortfall { background:#fcf0ec; border:1px solid #efd3ca; border-radius:16px; padding:16px; margin:16px 0; }
.asset-shortfall h3 { font-size:16px; margin:0 0 8px; }
.asset-shortfall p { margin:6px 0; }
.asset-shortfall strong,.asset-warning { color:var(--negative); }
.asset-shortfall .text-button { text-decoration:underline; text-underline-offset:3px; }
.asset-cash-summary { border-top:1px solid var(--line); padding-top:16px; }
.asset-cash-summary h3 { margin:0; font-size:16px; }
.asset-cash-summary .asset-facts { grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; }
.asset-cash-summary .asset-facts>div { display:block; }
.asset-cash-minimum { grid-column:1/-1; }
.asset-facts dd small { font-size:12px; color:var(--muted); font-weight:400; display:block; }
.asset-breakdown,.asset-warnings { border-top:1px solid var(--line); }
.asset-breakdown summary,.asset-warnings summary,.asset-legacy-summary>summary,.asset-linked-flows summary,.projection-options summary,.liability-options summary,.snapshot-editor summary { cursor:pointer; min-height:44px; padding:12px 0; font-size:14px; }
.asset-warnings ul { list-style:none; padding:0; margin:0; }
.asset-warnings li { display:flex; align-items:center; justify-content:space-between; gap:16px; border-top:1px solid var(--line); font-size:13px; }
.asset-warnings li>span { min-width:0; overflow-wrap:anywhere; }
.asset-warnings button { flex-shrink:0; }
.asset-financial-overview .asset-page-actions { margin-top:12px; }
.asset-legacy-summary .summary-grid { margin-top:12px; }
#assets-view .asset-overview { padding-block:8px; }
#assets-view .asset-overview:has(.asset-empty-start) { padding-block:24px; }
.asset-linked-flows ul { list-style:none; padding:0; }
.asset-linked-flows li { border-top:1px solid var(--line); padding:12px 0; }
.account-reconciliation .asset-page-actions { gap:8px 16px; }
.card-payment-schedule { background:var(--accent-soft); padding:14px; border-radius:12px; margin:12px 0; }
.card-payment-schedule>strong { display:block; font-size:22px; margin-top:4px; }
.card-payment-schedule p { margin:6px 0 0; }
.snapshot-result { background:var(--wash); padding:12px 16px; border-radius:16px; margin:12px 0; }
.snapshot-result .asset-facts { margin:0; }
.snapshot-result .form-help { margin-bottom:0; }
.snapshot-row { padding:12px 0; border-top:1px solid var(--line); }
.snapshot-row p { margin:0; }
.snapshot-row .asset-page-actions { margin-top:8px; gap:8px 16px; }
#snapshot-history h3 { margin:16px 0 12px; }
.projection-current { margin-top:0; }
.projection-timeline { list-style:none; padding:0; margin:16px 0; }
.projection-timeline li { padding:14px 0; border-top:1px solid var(--line); }
.projection-day { display:flex; flex-wrap:wrap; justify-content:space-between; gap:6px 12px; margin-bottom:12px; }
.projection-day time { font-size:13px; color:var(--muted); }
.projection-event { display:flex; align-items:start; justify-content:space-between; gap:12px; margin:10px 0; }
.projection-event>span { min-width:0; }
.projection-event small { display:block; color:var(--muted); font-size:12px; }
.projection-event strong { flex-shrink:0; font-variant-numeric:tabular-nums; }
.projection-in { color:var(--positive); }
.projection-out { color:var(--negative); }
.goal-funding-card { padding:0 0 20px; margin:0 0 20px; border-bottom:1px solid var(--line); }
.goal-funding-card h3 { margin:0 0 8px; }
.goal-funded { font-size:20px; font-weight:600; margin:8px 0; }
.goal-funding-card progress { display:block; width:100%; height:8px; accent-color:var(--positive); margin:12px 0 20px; border:0; border-radius:8px; background:var(--wash); }
.goal-funding-card progress::-webkit-progress-bar { background:var(--wash); border-radius:8px; }
.goal-funding-card progress::-webkit-progress-value { background:var(--positive); border-radius:8px; }
.goal-funding-card progress::-moz-progress-bar { background:var(--positive); border-radius:8px; }
.goal-allocation-row { background:var(--wash); border-radius:12px; padding:12px; margin:12px 0; }
.goal-allocation-row p { margin:0; }
.goal-allocation-row .asset-page-actions { margin-top:4px; gap:8px 20px; }
.goal-capacity-row { border-top:1px solid var(--line); padding:12px 0; }
.goal-capacity-row h4 { margin:0 0 8px; }
.goal-capacity-row .asset-facts { grid-template-columns:repeat(3,minmax(0,1fr)); margin:0; gap:8px; }
.goal-capacity-row .asset-facts>div { display:block; }
.goal-capacity-row .asset-facts dd { font-size:14px; }
#allocation-capacity { background:var(--wash); padding:12px; border-radius:12px; }
.refund-original { margin-top:0; }
@media(max-width:430px) {
 .asset-net dd { font-size:30px; }
 .asset-totals dd { font-size:18px; }
 .asset-totals .asset-net dd { font-size:30px; }
 .asset-totals { gap:12px; }
 .asset-shortfall { padding:14px; }
 .projection-day { display:block; }
 .projection-day strong { display:block; margin-top:4px; }
}
