/* InvoTake design system. The original camera/crop/export behavior stays in index.html. */
:root {
  color-scheme: light;
  --bg:#f3f5f7; --card:#ffffff; --row-alt:#f7f8fa; --ink:#151c27;
  --muted:#596779; --line:#dfe4eb; --header:#ffffff; --header-ink:#151c27;
  --accent:#d82e25; --accent-hover:#bd241d; --accent-ink:#ffffff; --danger:#b92323;
  --thumb:#edf0f4; --success:#187247; --success-bg:#eaf6ef;
  --warning:#865000; --warning-bg:#fff3df; --selected:#fff1f0; --focus:#ba281f;
  --radius:12px; --link:#b52a22;
}
:root[data-theme="dark"] {
  color-scheme:dark;
  --bg:#11161d; --card:#1b232e; --row-alt:#202b37; --ink:#f3f5f9;
  --muted:#aab6c6; --line:#374351; --header:#161e28; --header-ink:#f3f5f9;
  --accent:#da362d; --accent-hover:#bf2d25; --danger:#ffaaaa; --thumb:#293544;
  --success:#80dfae; --success-bg:#193c30; --warning:#ffd18c; --warning-bg:#41311c;
  --selected:#35232a; --focus:#ff9a91; --link:#ffaaa2;
}
@media(prefers-color-scheme:dark) { :root:not([data-theme="light"]) {
  color-scheme:dark;
  --bg:#11161d; --card:#1b232e; --row-alt:#202b37; --ink:#f3f5f9;
  --muted:#aab6c6; --line:#374351; --header:#161e28; --header-ink:#f3f5f9;
  --accent:#da362d; --accent-hover:#bf2d25; --danger:#ffaaaa; --thumb:#293544;
  --success:#80dfae; --success-bg:#193c30; --warning:#ffd18c; --warning-bg:#41311c;
  --selected:#35232a; --focus:#ff9a91; --link:#ffaaa2;
} }
[hidden], #sum[hidden] { display:none!important; }
html { scroll-behavior:smooth; scroll-padding-top:130px; }
body { font-family:"Sora",system-ui,-apple-system,"Segoe UI",sans-serif; font-size:14px; line-height:1.6; padding-bottom:calc(112px + env(safe-area-inset-bottom)); }
body[data-tab] { padding-bottom:24px; }
h1,h2,h3,p { margin-top:0; }
h1 { font-size:clamp(1.65rem,3.2vw,2.35rem); line-height:1.23; font-weight:650; letter-spacing:-.045em; text-wrap:balance; margin-bottom:8px; overflow-wrap:anywhere; }
h2 { margin:0 0 16px; text-transform:none; letter-spacing:-.025em; color:var(--ink); font-size:1.15rem; line-height:1.4; }
h3 { font-size:1rem; letter-spacing:-.02em; }
p { text-wrap:pretty; }
small,.subtle { color:var(--muted); font-size:.8rem; }
a { color:var(--link); text-underline-offset:4px; }
button,input,select { font:inherit; }
/* App feel on phones: no tap flash, no text selection on controls, no bounce, no long-press menus on pictures */
html { -webkit-tap-highlight-color:transparent; -webkit-text-size-adjust:100%; }
body { overscroll-behavior-y:none; }
button,nav,header,summary,label,.tabs,.claim-metrics,.collection-heading,.page-heading,.thumb,.footer-content { -webkit-user-select:none; user-select:none; }
button,a { touch-action:manipulation; }
img { -webkit-touch-callout:none; }
button { min-height:44px; padding:10px 16px; border-radius:8px; transition:background .16s,border-color .16s,transform .16s; }
button:hover { background:var(--row-alt); border-color:var(--muted); }
button:active { transform:translateY(1px); }
button:disabled { cursor:not-allowed; opacity:.5; }
button.primary { background:var(--accent); border-color:var(--accent); color:var(--accent-ink); }
button.primary:hover:not(:disabled) { background:var(--accent-hover); border-color:var(--accent-hover); }
:focus-visible { outline:3px solid var(--focus); outline-offset:3px; }
input,select,textarea { border-radius:8px; min-height:44px; padding:10px 12px; font-size:16px; } /* 16px: iPhone zooms into smaller fields and stays zoomed */
input:focus,select:focus { outline:2px solid var(--focus); outline-offset:1px; }
input[type=checkbox] { width:20px; min-height:20px; height:20px; accent-color:var(--accent); }
label { font-size:.8rem; margin-top:14px; color:var(--muted); }
.icon { width:20px; height:20px; display:inline-block; vertical-align:middle; flex-shrink:0; }
[data-icon] { display:inline-flex; align-items:center; }
.skip-link { position:fixed; top:8px; left:12px; z-index:40; background:var(--card); padding:12px; transform:translateY(-150%); }
.skip-link:focus { transform:none; }
#top { border-bottom:1px solid var(--line); }
#top::before { content:""; position:absolute; top:0; left:0; right:0; height:env(safe-area-inset-top); background:#151c27; } /* installed app: the clock sits on this */
header { max-width:1440px; margin:auto; display:flex; justify-content:space-between; padding:16px 32px 8px; gap:16px; }
.brand { display:inline-flex; align-items:center; gap:10px; color:var(--ink); text-decoration:none; }
.brand img { width:52px; height:auto; }
.brand strong { font-size:1.5rem; letter-spacing:-.04em; }
.header-tools { display:flex; align-items:center; gap:12px; }
header #help,header #theme { color:var(--muted); border:0; margin:0; min-width:44px; min-height:44px; display:inline-grid; place-items:center; padding:8px; }
.user-badge { width:36px; height:36px; display:grid; place-items:center; background:var(--row-alt); border:1px solid var(--line); border-radius:50%; color:var(--muted); font-size:.85rem; font-weight:600; }
nav.tabs { max-width:1440px; margin:auto; gap:24px; padding:0 32px; }
nav.tabs button { flex:none; border:0; border-bottom:3px solid transparent; border-radius:0; color:var(--muted); padding:12px 4px; background:transparent; font-size:.85rem; }
nav.tabs button.on { background:transparent; border-color:var(--accent); color:var(--ink); }
nav.tabs .short { display:none; }
#strip { position:absolute; bottom:0; background:var(--accent); height:2px; }
main { max-width:1440px; padding:28px 32px 0; }
header,nav.tabs,main { padding-left:max(32px,env(safe-area-inset-left)); padding-right:max(32px,env(safe-area-inset-right)); }
body[data-tab] main > #reviewScreen { display:none; }
body[data-tab="review"] main > #reviewScreen { display:block; }
body[data-tab="review"] #tabPrev,body[data-tab="review"] #tabRates { display:none; }
.page-heading { margin:12px 0 24px; }
.page-heading p:not(.eyebrow) { color:var(--muted); margin-bottom:0; }
.eyebrow { font-size:.7rem; font-weight:600; letter-spacing:.12em; text-transform:uppercase; color:var(--muted); margin-bottom:8px; }
.claim-heading { display:flex; align-items:center; justify-content:space-between; gap:24px; }
.claim-heading > div { min-width:0; }
.details-button { flex-shrink:0; }
.claim-metrics { display:grid; grid-template-columns:1.2fr .75fr 1fr; background:var(--card); border:1px solid var(--line); border-radius:var(--radius); padding:24px; margin-bottom:20px; }
.claim-metrics > div { min-width:0; padding:0 24px; border-left:1px solid var(--line); }
.claim-metrics > div:first-child { padding-left:0; border:0; }
.claim-metrics span,.review-totals span { display:block; color:var(--muted); font-size:.8rem; margin-bottom:6px; }
.claim-metrics strong { display:block; font-size:1.65rem; line-height:1.25; font-weight:600; letter-spacing:-.035em; font-variant-numeric:tabular-nums; }
.claim-metrics .metric-status { font-size:.9rem; letter-spacing:0; padding-top:7px; }
.metric-status.has-issues { color:var(--warning); }
.metric-status.ready { color:var(--success); }
.card { border-radius:var(--radius); padding:24px; margin-top:0; margin-bottom:20px; box-shadow:none; }
.claim-settings { display:grid; grid-template-columns:1fr 1fr; gap:16px; margin-bottom:20px; align-items:start; }
.claim-settings .card { margin:0; padding:16px 20px; }
.claim-settings:not(:has(details[open])) { display:none; }
.claim-settings details:not([open]) { display:none; }
.claim-settings:has(details[open]) { grid-template-columns:1fr; }
details summary { gap:12px; align-items:center; font-size:.85rem; flex-wrap:wrap; }
details summary small { flex:1; overflow:hidden; white-space:nowrap; text-overflow:ellipsis; max-width:100%; }
details[open] { border-color:var(--muted); }
details[open] summary { margin-bottom:10px; }
.capture-actions { grid-template-columns:max-content max-content max-content; margin:0 0 24px; gap:12px; }
.capture-actions button { display:flex; align-items:center; justify-content:center; gap:10px; padding:12px 20px; }
.capture-actions small { font-size:.72rem; }
#imports:empty { display:none; }
#imports { margin-bottom:16px; }
#status { margin:0; }
#status:empty { display:none; }
#status:not(:empty) { margin:0 0 20px; padding:12px 16px; background:var(--row-alt); border:1px solid var(--line); border-radius:8px; }
#status.err { background:var(--warning-bg); color:var(--warning); border-color:var(--warning); }
.receipt-workspace { display:grid; grid-template-columns:minmax(0,1fr); gap:20px; align-items:start; }
.receipt-collection { order:1; min-width:0; }
.receipt-editor { order:2; min-width:0; display:none; }
.receipt-editor.editing { display:block; }
.collection-heading,.editor-heading { display:flex; align-items:center; justify-content:space-between; gap:12px; margin-bottom:16px; }
.collection-heading h2,.editor-heading h2 { margin:0; }
.count-badge { display:inline-grid; place-items:center; font-size:.7rem; color:var(--muted); background:var(--row-alt); border:1px solid var(--line); border-radius:6px; padding:2px 7px; margin-left:8px; vertical-align:middle; }
.text-button { background:transparent; border:0; color:var(--link); padding:8px 0; font-size:.8rem; min-height:44px; text-align:left; }
.text-button:hover { background:transparent; text-decoration:underline; }
.receipt-filters { display:grid; grid-template-columns:minmax(0,1fr) 160px; gap:12px; margin-bottom:16px; }
.search-field { display:flex; align-items:center; border:1px solid var(--line); border-radius:8px; padding-left:12px; color:var(--muted); background:var(--card); }
.search-field input { border:0; background:transparent; }
.search-field:focus-within { outline:2px solid var(--focus); outline-offset:1px; }
.search-field input:focus { outline:none; }
#list li { padding:16px 0; grid-template-columns:20px 48px minmax(0,1fr) auto 36px; gap:12px; border-top:1px solid var(--line); border-radius:0; background:transparent; position:relative; cursor:default; }
#list li:first-child { border-top:0; }
#list li:nth-child(even) { background:transparent; }
#list li.selected { background:var(--selected); box-shadow:inset 3px 0 var(--accent); padding-left:10px; padding-right:10px; border-radius:8px; }
#list li:hover:not(.empty) { background:var(--row-alt); }
#list li.selected:hover { background:var(--selected); }
.thumb,#list li > .pic { width:48px; height:60px; border-radius:5px; }
.thumb { object-fit:cover; }
.missing-thumb { display:grid; place-items:center; cursor:default; color:var(--muted); }
.receipt-open { border:0; padding:0; min-height:44px; width:100%; text-align:left; border-radius:4px; background:transparent; }
.receipt-open:hover { background:transparent; }
.desc { font-size:.85rem; white-space:normal; overflow-wrap:anywhere; display:block; line-height:1.45; }
.meta { font-size:.7rem; opacity:1; display:block; margin-top:4px; }
.amt { font-size:.95rem; }
.amt small { display:block; font-size:.65rem; margin:2px 0; }
.status-badge { display:inline-flex; align-items:center; gap:6px; padding:4px 8px; font-size:.65rem; font-weight:500; border-radius:5px; color:var(--success); background:var(--success-bg); letter-spacing:0; white-space:normal; }
.status-badge.warning { color:var(--warning); background:var(--warning-bg); }
.row-status { display:block; text-align:right; margin-top:6px; }
.del { min-width:36px; min-height:44px; font-size:1rem; }
.list-info { color:var(--muted); font-size:.72rem; margin:12px 0 0; }
#list li.empty { display:block; padding:36px 8px; border:0; }
.empty h3 { color:var(--ink); margin-bottom:8px; font-size:1.15rem; }
.empty p { max-width:360px; margin:0 auto 16px; }
.empty .icon { width:40px; height:40px; margin-bottom:12px; color:var(--accent); }
.empty .hand { display:none; }
.editor-empty { text-align:center; padding:60px 12px; color:var(--muted); }
.editor-empty > span .icon { width:48px; height:48px; margin-bottom:16px; }
.editor-empty p { max-width:280px; margin:0 auto; font-size:.8rem; }
#preview { max-height:340px; min-height:120px; margin:0; background:var(--row-alt); padding:12px; border:1px solid var(--line); }
#form.card { padding:0; margin:16px 0 0; border:0; background:transparent; }
#form .grid { gap:0 12px; }
.editor-note { padding:10px 12px; background:var(--warning-bg); color:var(--warning); border-radius:6px; font-size:.75rem; margin:12px 0 0; }
.claim-secondary { display:flex; justify-content:space-between; align-items:center; gap:16px; }
.device-note { display:flex; align-items:center; gap:8px; color:var(--muted); font-size:.75rem; margin:8px 0; }
.device-note .icon { width:16px; height:16px; }
.credit { margin:24px 0 8px; }
#claimFooter { padding:16px max(20px,env(safe-area-inset-right)) max(16px,env(safe-area-inset-bottom)) max(20px,env(safe-area-inset-left)); }
.footer-content { max-width:1376px; margin:auto; display:flex; justify-content:space-between; align-items:center; gap:20px; }
.footer-content strong { font-size:.85rem; display:block; }
.footer-content small { display:block; font-size:.75rem; }
.footer-content button { min-width:210px; }
.export-workspace { display:grid; grid-template-columns:minmax(0,1fr); gap:20px; align-items:start; }
.review-totals { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:16px; padding:16px 0 24px; border-bottom:1px solid var(--line); }
.review-totals strong { font-size:1.15rem; font-weight:600; letter-spacing:-.035em; font-variant-numeric:tabular-nums; overflow-wrap:anywhere; }
.review-details { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px; margin:20px 0 0; }
.review-details dt { font-size:.7rem; color:var(--muted); }
.review-details dd { font-size:.85rem; margin:4px 0 0; overflow-wrap:anywhere; }
.check-row { display:flex; align-items:center; gap:12px; padding:12px 0; border-bottom:1px solid var(--line); }
.check-mark { display:grid; place-items:center; width:24px; height:24px; flex-shrink:0; border-radius:50%; color:var(--success); background:var(--success-bg); }
.check-row.warning .check-mark { color:var(--warning); background:var(--warning-bg); }
.check-row > div { flex:1; min-width:0; }
.check-row strong { display:block; font-size:.8rem; font-weight:500; }
.check-row small { display:block; font-size:.7rem; }
.check-row .text-button { flex-shrink:0; }
.file-option { display:flex; align-items:center; gap:12px; color:var(--ink); border:1px solid var(--line); border-radius:8px; padding:16px; cursor:pointer; margin:12px 0; background:var(--row-alt); }
.file-option.primary { text-align:left; } .file-option.primary small { color:#fff; opacity:.85; } .file-option.primary .file-symbol { background:#fff; border-color:#fff; }
.file-option b { display:block; font-size:.85rem; }
.file-option small { display:block; margin-top:4px; }
.file-symbol { display:grid; place-items:center; width:40px; height:44px; background:var(--card); border:1px solid var(--line); border-radius:5px; font-size:.55rem; font-weight:600; color:var(--accent); }
.full-width { width:100%; }
.archive-card p { margin-bottom:16px; }
.back-link { margin-bottom:8px; }
#reviewClaimName { color:var(--muted); font-size:.85rem; }
.subtle { margin:14px 0; }
#exportFeedback:empty { display:none; }
#reviewScreen .page-heading { margin-top:0; }
#tabPrev > h2 { font-size:.8rem; color:var(--muted); font-weight:400; }
#prevBulk { margin-bottom:12px; grid-template-columns:repeat(4,minmax(0,1fr)); }
#prevList li { border-bottom:1px solid var(--line); padding:16px; }
#prevList .desc { font-size:.9rem; }
#prevDetail .kv { gap:8px; }
.toast { position:fixed; bottom:calc(110px + env(safe-area-inset-bottom)); left:50%; transform:translateX(-50%); background:var(--ink); color:var(--bg); border-radius:8px; padding:8px 16px; z-index:5; display:flex; align-items:center; gap:16px; max-width:calc(100% - 32px); box-shadow:0 8px 24px #0002; }
.toast button { border:0; background:transparent; color:inherit; padding:6px; text-decoration:underline; }
.toast .x { text-decoration:none; opacity:.7; margin-left:-8px; }
/* Close / new claim dialog */
dialog { border:0; border-radius:16px; padding:22px; width:min(100% - 32px, 380px); background:var(--card); color:var(--ink); box-shadow:0 30px 60px -20px #000a; }
dialog::backdrop { background:rgba(6,11,22,.6); }
/* Archived-claim popup: fixed head and foot, the middle scrolls */
#prevDlg { padding:0; max-height:min(85vh, 85dvh); }
#prevDlg[open] { display:flex; flex-direction:column; }
#prevDetail { display:contents; }
.dlg-head { display:flex; align-items:center; justify-content:space-between; gap:12px; padding:16px 18px; border-bottom:1px solid var(--line); flex-shrink:0; }
.dlg-head b { font-size:1.15rem; line-height:1.3; overflow:hidden; text-overflow:ellipsis; }
.dlg-x { flex-shrink:0; width:36px; height:36px; border-radius:50%; border:0; padding:0; background:var(--row-alt); color:var(--ink); font-size:1rem; }
.dlg-body { overflow:auto; padding:12px 18px; min-height:0; outline:none; -webkit-overflow-scrolling:touch; }
#prevDetail .kv { grid-template-columns:auto 1fr; gap:4px 14px; font-size:.9rem; margin:0 0 10px; } #prevDetail .kv span:nth-child(odd) { white-space:nowrap; }
.rlist { list-style:none; margin:0; padding:0; border-top:1px solid var(--line); }
.rlist li { display:grid; grid-template-columns:22px auto 1fr auto; gap:8px; align-items:baseline; padding:7px 0; border-bottom:1px solid var(--line); font-size:.85rem; }
.rlist .n { color:var(--muted); font-variant-numeric:tabular-nums; } .rlist li > span:nth-child(2) { white-space:nowrap; font-variant-numeric:tabular-nums; } .rlist .d { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; } .rlist .a { font-weight:600; white-space:nowrap; font-variant-numeric:tabular-nums; }
.dlg-foot { padding:12px 18px calc(12px + env(safe-area-inset-bottom)); border-top:1px solid var(--line); flex-shrink:0; margin:0; }
.dlg-foot button { padding:10px 8px; font-size:.85rem; }
dialog h2 { margin:0 0 6px; font-size:1.2rem; } dialog p { margin:0; }
.dlg-actions { display:grid; gap:8px; margin-top:16px; }
.heading-actions { display:flex; gap:8px; flex-shrink:0; }
.details-button { display:inline-flex; align-items:center; gap:6px; padding:10px 14px; border:1px solid var(--line); border-radius:9px; background:var(--card); color:var(--ink); font-size:.85rem; }
/* Camera and crop screens */
#camView, #cropView { font-family:Sora,system-ui,sans-serif; }
#camView .camClose, #cropView .camClose { width:44px; height:44px; background:rgba(255,255,255,.18); backdrop-filter:blur(8px); font-size:1.2rem; }
#camView .shutter { width:82px; height:82px; border:4px solid #fff; background:radial-gradient(circle,var(--accent) 56%,transparent 60%); padding:0; box-shadow:0 10px 30px -8px var(--accent); }
#camView .camCancel { background:rgba(255,255,255,.18); backdrop-filter:blur(8px); border-radius:999px; padding:10px 18px; font-weight:600; font-size:.9rem; bottom:calc(46px + env(safe-area-inset-bottom)); }
#camView small, #cropView small { font-size:.85rem; color:#e2e8f0; }
#cropView .actions button, #cropView #retakeBtn { border-radius:10px; font-weight:600; min-height:48px; }
#cropView .actions button.primary { background:var(--accent); border-color:var(--accent); color:#fff; }
#cropView .actions button.light, #cropView #retakeBtn { background:rgba(255,255,255,.92); color:#151c27; border-color:transparent; }
.auth-page { padding:0; min-height:100dvh; display:grid; place-items:center; background:#060b16; color:#e5e7eb; overflow-x:hidden; }
.auth-page .blobs { position:fixed; inset:0; z-index:-1; filter:blur(70px); opacity:.55; overflow:hidden; }
.auth-page .blobs i { position:absolute; width:46vmax; height:46vmax; border-radius:50%; animation:drift 22s ease-in-out infinite alternate; }
.auth-page .blobs i:nth-child(1) { background:#e5352b; top:-20vmax; left:-15vmax; }
.auth-page .blobs i:nth-child(2) { background:#3b82f6; bottom:-20vmax; right:-15vmax; animation-delay:-8s; }
.auth-page .blobs i:nth-child(3) { background:#f472b6; top:40%; left:50%; width:30vmax; height:30vmax; animation-delay:-15s; }
@keyframes drift { to { transform:translate(12vmax,8vmax) scale(1.2); } }
.auth-page .brand { color:#fff; }
.auth-page .brand img { width:72px; }
.auth-page .tagline { font-family:"Great Vibes",cursive; font-size:2.2rem; color:#f472b6; text-align:center; margin:-22px 0 22px; line-height:1.1; }
.auth-page .auth-form { box-shadow:0 30px 60px -20px #000; }
.auth-page .credit { color:#94a3b8; } .auth-page .credit a { color:#cbd5e1; }
.auth-container { width:min(100%,460px); padding:32px 20px; margin:auto; }
.auth-container > .brand { display:flex; justify-content:center; margin:0 0 32px; }
.auth-form { padding:32px; }
.auth-form h1 { font-size:1.8rem; }
.auth-form input { width:100%; box-sizing:border-box; }
.auth-form button { margin-top:24px; }
.auth-form .subtle:last-child { margin-bottom:0; }
.auth-page * { box-sizing:border-box; }
@media(min-width:1000px) {
  .receipt-workspace { grid-template-columns:minmax(0,1.5fr) minmax(350px,1fr); }
  .receipt-editor { display:block; position:sticky; top:140px; max-height:calc(100dvh - 240px); min-height:300px; overflow-y:auto; }
  .receipt-editor #preview { max-height:240px; }
  .export-workspace { grid-template-columns:minmax(0,1.4fr) minmax(360px,1fr); }
}
@media(min-width:1600px) { main { padding-top:40px; } }
@media(max-width:767px) {
  body { padding-bottom:calc(150px + env(safe-area-inset-bottom)); }
  header { padding:12px 20px 4px; }
  .brand strong { font-size:1.2rem; }
  .brand img { width:40px; }
  .header-tools { gap:4px; }
  .user-badge { display:none; }
  nav.tabs { padding:0 16px; gap:8px; }
  nav.tabs button { flex:1; font-size:.85rem; padding:12px 0; }
  nav.tabs .long { display:none; }
  nav.tabs .short { display:inline; }
  main { padding:20px 20px 0; }
  header,nav.tabs,main { padding-left:max(20px,env(safe-area-inset-left)); padding-right:max(20px,env(safe-area-inset-right)); }
  .page-heading { margin:8px 0 20px; }
  .claim-heading { align-items:flex-start; gap:12px; }
  .details-button { padding:8px 12px; font-size:.78rem; }
  .heading-actions { flex-wrap:wrap; justify-content:flex-start; }
  .claim-heading { flex-wrap:wrap; }
  .claim-heading p:not(.eyebrow) { font-size:.75rem; }
  .claim-metrics { grid-template-columns:1fr 1.3fr; padding:20px; row-gap:16px; }
  .claim-metrics > div:first-child { grid-column:1/-1; border-bottom:1px solid var(--line); padding-bottom:16px; }
  .claim-metrics > div:nth-child(2) { border:0; padding:0; }
  .claim-metrics > div:nth-child(3) { padding:0 0 0 16px; }
  .claim-metrics strong { font-size:1.55rem; }
  .claim-metrics > div:nth-child(2) strong { font-size:1.2rem; }
  .claim-metrics .metric-status { font-size:.72rem; padding-top:4px; }
  .claim-metrics span { font-size:.7rem; }
  .claim-settings { grid-template-columns:1fr; gap:10px; }
  .claim-settings .card { padding:12px 16px; }
  .capture-actions { grid-template-columns:1fr 1fr; }
  .capture-actions .manage-rates { grid-column:1/-1; justify-content:flex-start; padding:0; min-height:32px; font-size:.7rem; }
  .capture-actions button { padding:12px 6px; gap:8px; font-size:.8rem; }
  .capture-actions small { display:none; }
  .card { padding:16px; }
  .receipt-filters { grid-template-columns:minmax(0,1fr); gap:8px; }
  .receipt-filters select { font-size:.75rem; }
  h2 { font-size:1.05rem; }
  .collection-heading { gap:8px; }
  .collection-heading .text-button { font-size:.7rem; }
  #list li { grid-template-columns:40px minmax(0,1fr) auto 28px; gap:8px; padding:14px 0; }
  #list .n { display:none; }
  .thumb,#list li > .pic { width:40px; height:52px; }
  .desc { font-size:.75rem; }
  .meta { font-size:.6rem; }
  .amt { font-size:.8rem; }
  .del { min-width:28px; padding:6px; }
  .row-status .status-badge { font-size:.55rem; padding:3px 5px; }
  .claim-secondary { flex-wrap:wrap; gap:4px; }
  .claim-secondary button { font-size:.7rem; padding-right:0; }
  .footer-content { flex-direction:column; gap:12px; align-items:stretch; }
  .footer-content > div { display:flex; align-items:center; justify-content:space-between; gap:12px; }
  .footer-content strong { font-size:.75rem; }
  .footer-content small { font-size:.65rem; max-width:45%; text-align:right; }
  .footer-content button { width:100%; }
  .review-totals { grid-template-columns:1fr; gap:12px; }
  .review-totals > div { display:flex; justify-content:space-between; gap:12px; align-items:center; }
  .review-totals span { margin:0; }
  .review-totals strong { font-size:1rem; text-align:right; }
  .review-details { grid-template-columns:1fr 1fr; }
  #prevBulk { grid-template-columns:1fr 1fr; }
  #prevList li { grid-template-columns:24px minmax(0,1fr); }
  #prevList .amt { grid-column:2; text-align:left; }
  .calc { grid-template-columns:minmax(0,1fr) 76px 16px 76px; gap:4px; }
  .calc input,.calc select { padding:8px; }
  #prevDetail .kv { grid-template-columns:90px minmax(0,1fr); }
}
@media(max-width:359px) {
  main { padding-left:12px; padding-right:12px; }
  header { padding-left:12px; padding-right:12px; }
  .card { padding:12px; }
  .brand strong { font-size:1.05rem; }
  .claim-heading { display:block; }
  .heading-actions { margin-top:8px; }
  #list li { grid-template-columns:32px minmax(0,1fr) auto 24px; gap:6px; }
  .thumb,#list li > .pic { width:32px; height:44px; }
  .amt { font-size:.72rem; }
}
@media(prefers-reduced-motion:reduce) {
  html { scroll-behavior:auto; }
  *,*::before,*::after { animation:none!important; transition:none!important; }
}
