.transaction-intro{position:relative}.manual-add{position:absolute;right:0;bottom:2px;width:auto;padding:0 18px}
.need-want-card{display:grid;grid-template-columns:1.25fr auto;gap:12px 28px;align-items:center;margin:0 0 12px;padding:18px 20px;border:1px solid var(--line);border-radius:16px;background:var(--card);box-shadow:var(--shadow)}
.need-want-card h3{margin:4px 0;font:800 20px Manrope}.need-want-card p{margin:0;color:var(--muted);font-size:13px}.need-want-totals{display:flex;gap:24px}.need-want-totals span{display:grid;grid-template-columns:auto auto;gap:3px 7px;align-items:center;color:var(--muted);font-size:12px}.need-want-totals strong{grid-column:2;color:var(--ink);font:800 18px Manrope}.need-want-totals i{grid-row:1/3;width:11px;height:34px;border-radius:8px}.need-swatch{background:#2f7cf6}.want-swatch{background:#a96cf4}.need-want-track{grid-column:1/-1;display:flex;height:10px;overflow:hidden;border-radius:99px;background:var(--line)}.need-want-track i{background:#2f7cf6}.need-want-track b{background:#a96cf4}.transaction-filters{grid-template-columns:1.4fr repeat(5,1fr) auto}.priority-chip{display:inline-flex;align-items:center;width:max-content;margin-top:4px;padding:3px 7px;border-radius:999px;font-size:10px;font-style:normal;font-weight:800}.priority-chip.need{background:#ddecff;color:#2458bd}.priority-chip.want{background:#efe3ff;color:#7542b9}
.day-actions{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin-top:14px}.plan-choice{min-height:46px;border:1px solid var(--line);border-radius:11px;background:var(--card);color:var(--ink);font-weight:800;cursor:pointer}.plan-choice.expense{border-color:color-mix(in srgb,var(--coral) 50%,var(--line));color:var(--coral)}.plan-choice.income{border-color:color-mix(in srgb,#16815d 50%,var(--line));color:#16815d}.full-button{width:100%;margin-top:8px}
.day-dialog{position:relative}.day-dialog-close{position:absolute;top:16px;right:16px;z-index:2;display:grid;place-items:center;width:44px;height:44px;border:1px solid var(--line);border-radius:50%;background:var(--card);color:var(--ink);font-size:28px;line-height:1;cursor:pointer}.day-dialog-close:hover{background:color-mix(in srgb,var(--ink) 6%,var(--card))}.day-dialog #dayContent{padding-right:44px}.day-close-button{min-height:50px;border:1px solid var(--line);border-radius:11px;background:var(--card);font-size:15px;font-weight:800;cursor:pointer}
.manual-dialog{width:min(620px,calc(100% - 24px));padding:24px!important;background:var(--card);color:var(--ink)}.quick-money{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:3px 0 15px}.quick-money button{min-height:42px;border:1px solid var(--line);border-radius:11px;background:color-mix(in srgb,var(--green) 7%,var(--card));color:var(--ink);font-weight:800;cursor:pointer}.receipt-upload{position:relative;display:grid!important;gap:8px;padding:14px;border:1px dashed color-mix(in srgb,var(--green) 55%,var(--line));border-radius:12px;background:color-mix(in srgb,var(--green) 5%,var(--card));cursor:pointer}.receipt-upload input{position:absolute;width:1px;height:1px;opacity:0}.receipt-upload span{padding:8px;color:var(--green);font-weight:800;text-align:center}.receipt-upload>small{color:var(--muted);font-size:10px;font-weight:600;line-height:1.4;text-align:center}.receipt-upload img{width:100%;max-height:210px;object-fit:contain;border-radius:8px;background:#fff}.receipt-thumb{display:block;width:100%;max-height:260px;margin-top:10px;object-fit:contain;border-radius:12px;border:1px solid var(--line);background:#fff}.priority-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:12px 0}.priority-actions button{min-height:42px;border:1px solid var(--line);border-radius:10px;background:var(--card);color:var(--ink);font-weight:800;cursor:pointer}.priority-actions button.active{border-color:var(--green);box-shadow:0 0 0 2px color-mix(in srgb,var(--green) 18%,transparent)}
.receipt-scan-state{margin:-5px 0 14px;padding:11px 13px;border-radius:10px;background:#eef4ff;color:#2458bd;font-size:12px;font-weight:750}.receipt-scan-state.error{background:#fff0ec;color:#ad4035}.receipt-review{margin:0 0 14px;padding:14px;border:1px solid #cddbf7;border-radius:13px;background:#f5f8ff}.receipt-review-head{display:flex;align-items:start;justify-content:space-between;gap:12px}.receipt-review-head strong{display:block;margin-top:3px;font:800 15px Manrope}.receipt-review-head>span{padding:4px 7px;border-radius:999px;background:#dfefe5;color:#167454;font-size:10px;font-weight:800}.receipt-review>p{margin:7px 0 11px;color:var(--muted);font-size:11px;line-height:1.45}.receipt-items{display:grid;gap:7px;max-height:190px;overflow:auto}.receipt-item{display:grid;margin:0;grid-template-columns:20px minmax(0,1fr) auto;gap:8px;align-items:center;padding:9px 10px;border:1px solid #dbe4f7;border-radius:9px;background:var(--card)}.receipt-item input{width:16px;height:16px;margin:0}.receipt-item span{min-width:0}.receipt-item b,.receipt-item small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.receipt-item b{font-size:12px}.receipt-item small{margin-top:2px;color:var(--muted);font-size:10px}.receipt-item>strong{font-size:12px}.manual-dialog label:not(.receipt-upload)>small{justify-self:end;color:var(--muted);font-weight:600}.manual-dialog select:disabled{background:#f1f4f8;color:var(--ink);opacity:1;cursor:not-allowed}
.receipt-usage{margin:-3px 0 10px;padding:9px 12px;border:1px solid #d8e2f5;border-radius:10px;background:#f8faff;color:#51617d;font-size:11px;font-weight:750}.receipt-usage.premium{border-color:#e8c75d;background:linear-gradient(135deg,#fffbea,#fff1b8);color:#664600}.receipt-usage.low{border-color:#efb5a7;background:#fff3ef;color:#9a3f32}.receipt-upgrade{width:100%;margin:-3px 0 14px;padding:10px;border:1px solid #e4bd42;border-radius:10px;background:#fff7d5;color:#684900;font-weight:850;cursor:pointer}.receipt-upgrade[hidden]{display:none!important}
.receipt-photo-list{display:grid;gap:8px;margin:10px 0}.receipt-photo-card{display:grid;grid-template-columns:54px minmax(0,1fr) auto;gap:10px;align-items:center;padding:8px;border:1px solid #dbe4f7;border-radius:11px;background:#f8faff}.receipt-photo-card img{width:54px;height:64px;object-fit:cover;border-radius:7px;background:#fff}.receipt-photo-card strong,.receipt-photo-card small{display:block}.receipt-photo-card small{max-width:240px;margin-top:3px;overflow:hidden;color:var(--muted);font-size:10px;text-overflow:ellipsis;white-space:nowrap}.receipt-photo-card>span{display:flex;gap:5px}.receipt-photo-card button{display:grid;place-items:center;width:31px;height:31px;padding:0;border:1px solid #ccd7ed;border-radius:8px;background:var(--card);color:var(--ink);cursor:pointer}.receipt-photo-card button:last-child{color:#af453d}.receipt-photo-card button:disabled{opacity:.35;cursor:not-allowed}.receipt-photo-actions{display:grid;grid-template-columns:1fr 1.35fr;gap:8px;margin:9px 0 14px}.receipt-photo-actions[hidden]{display:none!important}.receipt-photo-actions button{min-height:42px;border-radius:10px;font-weight:800}.receipt-photo-actions button[hidden]{display:none!important}.receipt-detail-pages{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:10px;margin-top:10px}.receipt-detail-pages figure{margin:0}.receipt-detail-pages .receipt-thumb{margin:0}.receipt-detail-pages figcaption{text-align:center;color:var(--muted);font-size:11px;margin-top:4px}
@media(max-width:1100px){.transaction-filters{grid-template-columns:repeat(3,1fr)}}
@media(max-width:720px){.transaction-intro{padding-bottom:56px}.manual-add{left:0;right:auto;bottom:3px}.need-want-card{grid-template-columns:1fr;padding:15px}.need-want-totals{justify-content:space-between}.need-want-track{grid-column:1}.day-actions{grid-template-columns:1fr}.manual-dialog{padding:18px!important}.receipt-upload img{max-height:170px}.receipt-items{max-height:150px}.receipt-photo-actions{grid-template-columns:1fr}.receipt-photo-card small{max-width:130px}}

/* Fast capture entry point */
@media(max-width:720px){
  .sidebar .add-button{
    position:fixed;
    z-index:9;
    right:16px;
    bottom:78px;
    width:58px;
    height:58px;
    min-height:58px;
    display:grid;
    place-items:center;
    margin:0;
    padding:0;
    border:2px solid rgba(255,255,255,.86);
    border-radius:50%;
    font-size:0;
    box-shadow:0 14px 32px rgba(31,77,190,.34);
  }
  .sidebar .add-button::before{content:"+";font-size:30px;line-height:1;font-weight:700}
  #manualTransactionDialog{
    width:min(560px,calc(100% - 16px));
    max-height:calc(100dvh - 16px);
    overflow-y:auto;
    overscroll-behavior:contain;
  }
  #manualTransactionDialog form{padding:16px}
  #manualTransactionDialog .quick-money{grid-template-columns:1fr 1fr}
  #manualTransactionDialog .dialog-head{
    position:sticky;
    z-index:3;
    top:-16px;
    margin:-16px -16px 12px;
    padding:16px 16px 0;
    background:var(--card);
  }
  #manualTransactionDialog .dialog-actions{
    position:sticky;
    z-index:3;
    bottom:-16px;
    margin:10px -16px -16px;
    padding:10px 16px 16px;
    background:linear-gradient(180deg,rgba(255,255,255,0),var(--card) 24%);
  }
}

/* Receipt scan progress, bulk selection, and saved-item confirmation */
.receipt-scan-state{display:flex;align-items:center;gap:10px}
.receipt-scan-state.scanning{background:linear-gradient(100deg,#edf3ff 20%,#f8fbff 45%,#edf3ff 70%);background-size:220% 100%;animation:receipt-shimmer 1.5s ease-in-out infinite}
.receipt-scan-state.scanning::before{content:"";flex:0 0 auto;width:17px;height:17px;border:3px solid #c9d8fb;border-top-color:#3565ec;border-radius:50%;animation:receipt-spin .8s linear infinite}
.receipt-selection{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:0 0 9px}
.receipt-selection button{min-height:34px;padding:0 13px;border:1px solid #b9cbee;border-radius:9px;background:#fff;color:#2859c5;font-weight:800;cursor:pointer}
.receipt-selection button:disabled{opacity:.55;cursor:not-allowed}
.receipt-selection span{color:var(--muted);font-size:11px;font-weight:700}
.transaction-row.just-added{animation:receipt-saved-row 2.4s ease-out}
.day.just-added{animation:receipt-saved-day 2.4s ease-out}
@keyframes receipt-spin{to{transform:rotate(360deg)}}
@keyframes receipt-shimmer{0%,100%{background-position:100% 0}50%{background-position:0 0}}
@keyframes receipt-saved-row{0%{background:#dff8ea;box-shadow:inset 4px 0 #16815d}100%{background:transparent;box-shadow:inset 0 0 transparent}}
@keyframes receipt-saved-day{0%{background:#dff8ea;box-shadow:inset 0 0 0 3px #16815d}100%{background:var(--card)}}
@media(prefers-reduced-motion:reduce){.receipt-scan-state.scanning,.receipt-scan-state.scanning::before,.transaction-row.just-added,.day.just-added{animation:none}}
