/* Cash entry uses the same amount field and controls for both directions. */
.cash-entry-form {
  --cash-ink:var(--expense);
  --cash-tint:var(--expense-soft);
  --cash-border:color-mix(in srgb,var(--cash-ink) 24%,var(--surface));
}
.cash-entry-form.cash-income {
  --cash-ink:var(--income);
  --cash-tint:var(--income-soft);
}
.cash-entry-form .form-fields { gap:20px; }
.cash-amount-panel { padding:0; border:0; background:transparent; }
.cash-amount-title { display:block; color:var(--text); font-size:var(--type-note); font-weight:var(--weight-semibold); }
.cash-entry-form .expense-currency { --amount-focus:var(--cash-ink); padding-block:2px 4px; }
.cash-entry-form .expense-currency input[name=amount] { width:0; box-shadow:none; }
.cash-entry-form .expense-currency input.long-amount { font-size:var(--type-entry-amount-compact); }
.cash-entry-form .expense-currency input::placeholder { color:var(--text-sub); opacity:1; }
.cash-entry-form .expense-currency b { font-size:var(--type-money-unit); font-weight:var(--weight-semibold); }
.cash-amount-error { display:block; color:var(--danger); font-size:var(--type-caption); line-height:1.5; }
.cash-amount-error[hidden],.cash-entry-form .cash-presets[hidden] { display:none; }
.cash-entry-form .expense-groups { padding:0; }
.cash-entry-form .expense-groups legend { width:100%; padding:0 0 8px; font-size:var(--type-note); font-weight:var(--weight-semibold); }
.cash-category-heading { display:flex; width:100%; min-height:32px; justify-content:space-between; align-items:center; gap:8px; }
.cash-entry-form .expense-all-categories { float:none; min-height:44px; margin-block:-6px; padding:4px; }
.cash-entry-form .expense-chips { grid-template-columns:repeat(3,minmax(0,1fr)); gap:6px; }
.cash-entry-form .expense-chips .expense-chip span { font-size:var(--type-note); line-height:1.4; padding:6px; }
.cash-entry-form.cash-expense .expense-chip>span { display:flex; flex-direction:column; align-items:center; justify-content:center; gap:6px; min-height:64px; padding:8px 5px; }
.cash-expense .expense-chip .icon { width:var(--icon-base); height:var(--icon-base); }
.cash-entry-form.cash-income .expense-chips { grid-template-columns:repeat(3,minmax(0,1fr)); }
.cash-entry-form .expense-chip input:checked+span { color:var(--cash-ink); border-color:var(--cash-ink); background:var(--cash-tint); }
.cash-method legend small { margin-inline-start:4px; color:var(--text-sub); font-size:var(--type-caption); font-weight:var(--weight-regular); }
.cash-method-options { display:grid; grid-template-columns:minmax(0,1fr); padding:0; }
.cash-payment-picker { min-width:0; margin:0; }
.cash-payment-picker select { width:100%; min-height:48px; font-size:max(1rem,16px); }
.cash-method-tabs { display:grid; grid-template-columns:repeat(auto-fit,minmax(min(100%,3.9rem),1fr)); gap:4px; background:var(--neutral-soft); border-radius:12px; padding:4px; }
.cash-method-tabs label { position:relative; margin:0; min-width:0; cursor:pointer; }
.cash-method-tabs input { position:absolute; opacity:0; width:1px; height:1px; }
.cash-method-tabs span { display:flex; align-items:center; justify-content:center; min-height:44px; padding:8px 2px; border-radius:9px; font-size:var(--type-caption); color:var(--text-sub); text-align:center; overflow-wrap:anywhere; }
.cash-method-tabs input:checked+span { color:var(--cash-ink); background:var(--surface); font-weight:var(--weight-semibold); box-shadow:0 1px 3px #33232a0a; }
.cash-method-tabs input:focus-visible+span { outline:2px solid var(--cash-ink); outline-offset:2px; }
.cash-card-choice { display:grid; grid-template-columns:minmax(0,1fr) 44px; align-items:center; gap:8px; margin-top:12px; }
.cash-card-choice[hidden],.cash-card-configure[hidden] { display:none; }
.cash-card-register { width:44px; min-height:44px; padding:0; display:flex; align-items:center; justify-content:center; border-radius:12px; }
.cash-card-register .icon { width:var(--icon-small); height:var(--icon-small); }
.cash-card-configure { min-height:44px; }
.cash-method>[data-selected-card-note] { margin:8px 0 0; }
.cash-card-plan,.cash-credit-terms { min-width:0; margin:0; padding:0; border:0; }
.cash-card-plan,.cash-plan-locked { display:grid; gap:12px; padding:0; border-radius:0; background:transparent; }
.cash-plan-locked { padding:14px; border-radius:12px; background:var(--neutral-soft); }
.cash-credit-terms { display:grid; grid-template-columns:minmax(0,1fr); gap:14px; }
.cash-billing { min-width:0; border-top:1px solid var(--line); border-bottom:1px solid var(--line); }
.cash-billing>summary { display:grid; grid-template-columns:minmax(0,1fr) 16px; align-items:center; gap:12px; min-height:52px; padding:10px 0; list-style:none; cursor:pointer; font-size:var(--type-note); font-weight:var(--weight-semibold); }
.cash-billing>summary .cash-fold-heading { display:flex; align-items:baseline; justify-content:space-between; flex-wrap:wrap; gap:4px 12px; }
.cash-billing>summary .cash-fold-heading>small { margin-inline-start:auto; text-align:right; }
.cash-billing>summary::-webkit-details-marker { display:none; }
.cash-fold-heading { display:grid; gap:4px; min-width:0; }
.cash-fold-heading>span { display:flex; align-items:center; gap:6px; }
.cash-fold-heading>small { text-align:start; overflow-wrap:anywhere; color:var(--text-sub); font-size:var(--type-caption); font-weight:var(--weight-medium); line-height:1.5; }
.cash-billing>summary>.icon { width:var(--icon-small); height:var(--icon-small); color:var(--text-sub); }
.cash-billing[open]>summary>.icon { transform:rotate(180deg); }
.cash-billing-fields { display:grid; gap:14px; padding:8px 0 16px; }
.cash-first-due,.cash-credit-terms .cash-day-note { grid-column:1 / -1; min-width:0; }
.cash-first-due>label { margin:0; }
.cash-card-plan .field-hint { margin:0; color:var(--text-sub); }
.cash-plan-locked h3,.cash-plan-locked p,.cash-plan-preview { margin:0; }
.cash-plan-locked p,.cash-plan-preview,.cash-plan-schedule { font-size:var(--type-note); }
.cash-plan-preview { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:4px 12px; padding:12px; border:0; border-radius:12px; background:var(--neutral-soft); font-variant-numeric:tabular-nums; }
.cash-plan-preview>span { color:var(--text-sub); font-size:var(--type-caption); }
.cash-plan-preview>strong { grid-column:2; grid-row:1 / 3; align-self:center; text-align:right; color:var(--text); font-size:var(--type-body); font-weight:var(--weight-semibold); overflow-wrap:anywhere; }
.cash-plan-preview strong small { margin-inline-start:3px; font-size:var(--type-note); font-weight:var(--weight-regular); }
.cash-plan-preview>p { grid-column:1 / -1; margin:5px 0 0; font-size:var(--type-caption); color:var(--text-sub); }
.cash-plan-schedule summary { display:flex; align-items:center; justify-content:space-between; gap:12px; min-height:48px; list-style:none; color:var(--cash-ink); font-weight:var(--weight-semibold); cursor:pointer; }
.cash-plan-schedule summary::-webkit-details-marker { display:none; }
.cash-plan-schedule summary>.icon { width:var(--icon-small); height:var(--icon-small); color:var(--text-sub); }
.cash-plan-schedule[open] summary>.icon { transform:rotate(180deg); }
.cash-plan-schedule ol { display:grid; gap:4px; padding:0; margin:0; list-style:none; }
.cash-plan-schedule li { display:flex; flex-wrap:wrap; align-items:baseline; justify-content:space-between; gap:2px 10px; font-variant-numeric:tabular-nums; }
.cash-card-plan[hidden],.cash-credit-terms[hidden],.cash-plan-preview[hidden],.cash-plan-schedule[hidden] { display:none; }
.cash-entry-form .expense-fold { margin:0; border-top:1px solid var(--line); }
.cash-extra-fields { display:grid; gap:0; min-width:0; }
.cash-entry-form .expense-fold+.expense-fold { margin-top:0; }
.cash-entry-form .expense-fold summary {
  display:grid; grid-template-columns:minmax(0,1fr) 16px; align-items:center; gap:12px; min-height:64px; padding:12px 0; list-style:none; font-size:var(--type-note);
}
.cash-entry-form .expense-fold summary::-webkit-details-marker { display:none; }
.cash-entry-form .expense-fold summary>.cash-fold-heading { display:grid; gap:4px; }
.cash-entry-form .expense-fold summary>span .icon { width:var(--icon-small); height:var(--icon-small); color:var(--muted); }
.cash-entry-form .expense-fold summary small { min-width:0; margin:0; font-size:var(--type-caption); text-align:start; overflow-wrap:anywhere; }
.cash-entry-form .expense-fold summary>.icon { width:var(--icon-small); height:var(--icon-small); color:var(--text-sub); }
.cash-entry-form .expense-fold[open]>summary>.icon { transform:rotate(180deg); }
.cash-entry-form .expense-fold>div { padding:8px 0 14px; }
.cash-entry-form .expense-conditions>div { grid-template-columns:1fr; }
.cash-entry-form .cash-presets>div { gap:0; }
.cash-presets button { display:flex; align-items:center; gap:10px; width:100%; min-height:52px; padding:6px 8px; text-align:start; border-radius:8px; color:var(--text); background:transparent; }
.cash-presets button:active { background:var(--neutral-soft); }
.cash-presets button>.icon { width:var(--icon-base); height:var(--icon-base); color:var(--cash-ink); }
.cash-presets button span { display:grid; gap:2px; min-width:0; }
.cash-presets button b { text-overflow:ellipsis; overflow:hidden; white-space:nowrap; font-size:var(--type-note); }
.cash-presets button small { font-size:var(--type-caption); color:var(--text-sub); }
.cash-presets button strong { margin-inline-start:auto; font-size:var(--type-note); font-weight:var(--weight-semibold); font-variant-numeric:tabular-nums; }
.cash-account-plan { display:grid; gap:12px; min-width:0; margin:0; padding:0; border:0; background:transparent; }
.cash-account-plan[hidden],.cash-account-preview[hidden] { display:none; }
.cash-account-plan .field-hint { margin:0; color:var(--text-sub); }
.cash-optional { margin-inline-start:4px; color:var(--text-sub); font-size:var(--type-caption); font-weight:var(--weight-regular); }
.cash-account-preview { display:grid; gap:6px; padding-top:9px; border-top:1px solid var(--line); font-size:var(--type-note); line-height:1.55; }
.cash-account-preview p { display:flex; align-items:baseline; justify-content:space-between; flex-wrap:wrap; gap:3px 12px; margin:0; }
.cash-account-preview b { margin-inline-start:auto; font-variant-numeric:tabular-nums; }
.cash-account-preview .cash-account-after { color:var(--cash-ink); }
.cash-account-preview .cash-account-status { font-size:var(--type-caption); color:var(--text-sub); }
.cash-account-preview.cash-account-warning,.cash-account-warning .cash-account-status { color:var(--danger); }
@media(max-width:355px){
  .cash-entry-form .expense-chips { grid-template-columns:repeat(3,minmax(0,1fr)); }
  .cash-entry-form .expense-fold summary { gap:5px; }
}
@media(max-width:340px) {
 .cash-plan-preview { grid-template-columns:minmax(0,1fr); }
 .cash-plan-preview>strong { grid-column:1; grid-row:auto; text-align:left; }
}
