body.quick-capture-open {
  overflow: hidden;
  overscroll-behavior: none;
}

.quick-spending-overlay {
  z-index: 95;
  align-items: end;
  padding: max(12px, env(safe-area-inset-top)) 12px 0;
}

.quick-spending-sheet {
  position: relative;
  display: flex;
  width: min(620px, 100%);
  max-height: calc(100dvh - max(12px, env(safe-area-inset-top)));
  flex-direction: column;
  overflow: hidden;
  padding: 0;
  border-radius: 22px 22px 0 0;
}

.quick-spending-head {
  display: grid;
  grid-template-columns: 76px 1fr 76px;
  align-items: start;
  padding: 20px 20px 16px;
  border-bottom: 1px solid var(--line);
  background: var(--card);
  text-align: center;
}

.quick-spending-head > div { grid-column: 2; }
.quick-spending-head .eyebrow { margin: 0 0 5px; }
.quick-spending-head h2 { margin: 0; font-size: 22px; letter-spacing: -.8px; }
.quick-spending-head p:last-child { margin: 7px -42px 0; color: var(--muted); font-size: 11px; line-height: 1.45; }

.quick-spending-cancel {
  min-width: 64px;
  min-height: 44px;
  margin: -8px 0 0 -8px;
  padding: 8px;
  color: var(--forest-2);
  font-size: 14px;
  font-weight: 700;
  text-align: left;
}

.quick-spending-form {
  display: flex;
  min-height: 0;
  flex: 1;
  flex-direction: column;
  overflow: auto;
  background: var(--card);
  -webkit-overflow-scrolling: touch;
}

.quick-spending-fields {
  display: grid;
  gap: 16px;
  padding: 20px;
}

.quick-spending-fields label,
.quick-spending-optional label {
  display: grid;
  gap: 7px;
  color: #66756c;
  font-size: 12px;
  font-weight: 800;
}

.quick-spending-fields input,
.quick-spending-fields select,
.quick-spending-fields textarea {
  width: 100%;
  min-height: 48px;
  padding: 12px;
  border: 1px solid var(--line);
  border-radius: 10px;
  background: var(--paper);
  color: var(--ink);
  font: 500 16px/1.35 'Manrope', sans-serif;
}

.quick-spending-fields textarea { min-height: 90px; resize: vertical; }
.quick-spending-fields :focus-visible { border-color: var(--accent); outline: 3px solid rgba(76,145,116,.18); outline-offset: 1px; }
.quick-spending-fields [aria-invalid="true"] { border-color: #a04f43; }

.quick-spending-more {
  padding-top: 4px;
  border-top: 1px solid var(--line);
}

.quick-spending-more summary {
  display: flex;
  min-height: 48px;
  align-items: center;
  justify-content: space-between;
  color: var(--forest-2);
  cursor: pointer;
  font-size: 13px;
  font-weight: 800;
}

.quick-spending-more summary span { color: var(--muted); font-size: 10px; font-weight: 600; }
.quick-spending-optional { display: grid; gap: 16px; padding-top: 12px; }
.quick-spending-optional .checkbox-field { display: flex; }

.quick-spending-form .modal-error,
.quick-spending-offline {
  margin: 0 20px 12px;
}

.quick-spending-offline {
  padding: 10px 12px;
  border-radius: 9px;
  background: #f5ece5;
  color: #8a5547;
  font-size: 12px;
}

.quick-spending-footer {
  position: sticky;
  display: block;
  bottom: 0;
  padding: 12px 20px calc(12px + env(safe-area-inset-bottom));
  border-top: 1px solid var(--line);
  background: color-mix(in srgb, var(--card) 94%, transparent);
  backdrop-filter: blur(12px);
  font-size: initial;
}

.quick-spending-footer::before { content: none; }

.quick-spending-footer .primary-btn {
  width: 100%;
  min-height: 50px;
  margin: 0;
  font-size: 14px;
}

.quick-spending-form[aria-busy="true"] { cursor: progress; }

.quick-capture-discard {
  position: absolute;
  z-index: 2;
  inset: 0;
  display: grid;
  place-items: center;
  padding: 20px;
  background: rgba(20,45,38,.42);
}

.quick-capture-discard[hidden] { display: none; }

.quick-capture-discard > div {
  width: min(390px, 100%);
  padding: 22px;
  border: 1px solid var(--line);
  border-radius: 16px;
  background: var(--card);
  box-shadow: 0 24px 70px rgba(20,45,38,.24);
}

.quick-capture-discard h3 { margin: 5px 0 7px; font-size: 19px; }
.quick-capture-discard p:not(.eyebrow) { margin: 0 0 18px; color: var(--muted); font-size: 12px; }
.quick-capture-discard > div > div { display: flex; justify-content: flex-end; gap: 10px; }
.quick-capture-discard button { min-height: 44px; }

@media (min-width: 781px) {
  .quick-spending-overlay { align-items: center; padding: 24px; }
  .quick-spending-sheet { max-height: min(760px, calc(100dvh - 48px)); border-radius: 22px; }
}

@media (max-width: 420px) {
  .quick-spending-overlay { padding-right: 0; padding-left: 0; }
  .quick-spending-sheet { width: 100%; }
  .quick-spending-head { padding-right: 16px; padding-left: 16px; }
  .quick-spending-fields { padding: 18px 16px; }
  .quick-spending-form .modal-error,
  .quick-spending-offline { margin-right: 16px; margin-left: 16px; }
  .quick-spending-footer { padding-right: 16px; padding-left: 16px; }
}

@media (prefers-reduced-motion: reduce) {
  .quick-spending-sheet { animation: none; }
  .quick-spending-form { scroll-behavior: auto; }
}
