/* Gifts keeps the shared purple hero; sky accents use light/dark design tokens. */
:root.theme-gifts { --accent: var(--sky); --accent-soft: var(--sky-soft); }
.gift-stack { display: grid; gap: var(--gap); min-width: 0; }
.gift-stack[hidden] { display: none; }
.gift-pair, .gift-three, .gift-figures { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); align-items: stretch; gap: var(--gap); }
.gift-three, .gift-figures { grid-template-columns: repeat(3, minmax(0, 1fr)); grid-auto-rows: 1fr; }
.gift-pair > *, .gift-three > * { min-width: 0; width: 100%; height: 100%; }
.gift-figures { width: 100%; }
.gift-figure { display: grid; grid-template-rows: var(--gift-icon) auto auto; justify-items: center; align-content: center; gap: calc(var(--gap) / 2); height: var(--gift-figure-h); min-width: 0; padding: calc(var(--card-pad) / 2); }
.gift-figure-icon { display: grid; place-items: center; width: var(--gift-icon); height: var(--gift-icon); border-radius: var(--r-xs); color: var(--sky); background: var(--sky-soft); }
.gift-figure-icon svg { width: calc(var(--gift-icon) * 0.625); height: calc(var(--gift-icon) * 0.625); }
.gift-figure--received .gift-figure-icon { color: var(--positive); background: var(--positive-soft); }
.gift-figure-label { color: var(--text-2); font-size: var(--gift-type-sm); }
.gift-figure-value { display: block; width: 100%; text-align: center; font-size: var(--gift-number); line-height: var(--gift-line); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.gift-entry-list { display: grid; gap: var(--gap); }
.gift-date { margin: 0; }
.gift-entry { display: grid; grid-template-columns: var(--gift-touch) minmax(0, 1fr) minmax(0, auto) var(--gap); gap: calc(var(--gap) / 2); align-items: center; min-height: var(--gift-row-h); width: 100%; text-align: left; padding: var(--card-pad); color: var(--text); transition: transform var(--dur-1) var(--ease-out); }
.gift-entry:active { transform: scale(var(--gift-press)); }
.gift-entry > svg { width: var(--gap); height: var(--gap); color: var(--text-3); }
.gift-entry-main { display: grid; min-width: 0; gap: calc(var(--gap) / 4); }
.gift-entry-money { display: grid; justify-items: end; min-width: 0; max-width: calc(var(--gift-touch) * 3); font-size: var(--gift-type-sm); }
.gift-entry-money strong { font-size: var(--gift-type); overflow: hidden; text-overflow: ellipsis; max-width: 100%; }
.gift-entry-money--received { color: var(--positive); }
.gift-entry-money--sent { color: var(--sky); }
.gift-ellipsis { display: block; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.gift-field { margin: 0; min-width: 0; }
.page--gifts .input, .gift-sheet .input { font-size: var(--gift-type); min-height: var(--gift-touch); width: 100%; min-width: 0; }
.page--gifts .badge-icon--sky, .gift-sheet .badge-icon--sky { color: var(--sky); background: var(--sky-soft); }
.gift-error { color: var(--danger); overflow-wrap: anywhere; margin: 0; }
.gift-error:empty { display: none; }
.gift-count, .gift-wrap { margin: 0; overflow-wrap: anywhere; }
.gift-placeholder { min-height: var(--gift-row-h); }
.gift-contact-row { min-height: var(--gift-row-h); }
.gift-breakdown { display: grid; gap: var(--gap); }
.gift-break-row { display: grid; gap: calc(var(--gap) / 2); padding-bottom: var(--gap); border-bottom: var(--gift-border) solid var(--line); }
.gift-break-row:last-child { border: 0; padding-bottom: 0; }
.gift-break-head { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: var(--gap); }
.gift-mini { display: grid; gap: calc(var(--gap) / 4); background: var(--surface-2); border-radius: var(--r-xs); padding: calc(var(--card-pad) / 2); font-size: var(--gift-type-sm); }
.gift-range { min-height: calc(var(--gift-type) * var(--gift-line)); }
.gift-sheet .btn { min-height: var(--gift-touch); }
.gift-sheet .gift-figure { box-shadow: none; background: var(--surface-2); }
@media (prefers-reduced-motion: reduce) { .gift-entry { transition: none; } }
/* Grid gap owns spacing; shared stacked-card margins must not shift equal siblings. */
.gift-figures > .card + .card, .gift-stack > .card + .card { margin-top: 0; }
.page--gifts .card.gift-stack { padding: var(--card-pad); }
.gift-entry { border: 0; }
.gift-sheet textarea.input { padding: var(--card-pad); resize: vertical; }
