@import url("https://fonts.googleapis.com/css2?family=Fraunces:opsz,wght@9..144,500;9..144,600&family=IBM+Plex+Mono:wght@400;500;600;700&family=Inter:wght@400;500;600;700;800&display=swap");*{box-sizing:border-box}body,html{margin:0;min-height:100%}body{--navy:#1e2a38;--navy-soft:#2a3b4e;--paper:#fbf8f2;--paper-muted:#f3ecdc;--paper-line:#ded6c4;--stamp-red:#b0362c;--brass:#9c7a3c;--moss:#4b6b4f;--ink-muted:#6b7280;--ledger-bg:#e7e2d6;background:var(--ledger-bg);color:var(--navy);font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}button,input,select,textarea{font:inherit}button{-webkit-tap-highlight-color:transparent}.appNav{background:var(--ledger-bg);padding:16px 16px 0}.appNavInner{background:var(--navy);border-radius:18px 18px 0 0;display:flex;gap:8px;margin:0 auto;min-height:52px;max-width:760px;padding:8px}.appNavLink{align-items:center;border:1px solid transparent;border-radius:10px 10px 4px 4px;color:hsla(40,53%,97%,.72);display:flex;font-size:14px;font-weight:700;gap:7px;padding:9px 13px;position:relative;text-decoration:none}.appNavLink.active{background:transparent;border-color:transparent;box-shadow:none;color:var(--paper)}.appNavLink.active:after{background:var(--brass);border-radius:999px;bottom:2px;content:"";height:3px;left:13px;position:absolute;right:13px}.signOutButton{background:transparent;cursor:pointer;margin-left:auto}.authLoading,.authPage{align-items:center;background:var(--ledger-bg);color:var(--ink-muted);display:flex;justify-content:center;min-height:100vh;padding:24px}.authPanel{background:var(--paper);border:1px solid var(--paper-line);border-radius:14px;box-shadow:0 8px 24px rgba(24,34,47,.06);display:grid;grid-gap:12px;gap:12px;max-width:380px;padding:22px;width:100%}.authEyebrow{color:var(--brass);font-family:IBM Plex Mono,monospace;font-size:12px;font-weight:800;letter-spacing:.08em;margin:0;text-transform:uppercase}.authPanel h1{color:var(--navy);font-family:Fraunces,Georgia,serif;font-size:28px;line-height:1.1;margin:0}.authPanel p{color:var(--ink-muted);font-size:14px;line-height:1.45;margin:0}.authPanel input{background:#fffdf8;border:1px solid var(--paper-line);border-radius:8px;color:var(--navy);font-size:15px;outline:none;padding:12px;width:100%}.authPanel button{background:var(--navy);border:none;border-radius:8px;color:var(--paper);cursor:pointer;font-size:15px;font-weight:800;padding:12px}.authModeRow{display:grid;grid-gap:8px;gap:8px;grid-template-columns:repeat(2,minmax(0,1fr))}.authPanel .authLinkButton,.authPanel .authModeRow button{background:#fffdf8;border:1px solid var(--paper-line);color:var(--navy)}.authPanel .authModeRow button.active{background:var(--navy);border-color:var(--navy);color:var(--paper)}.authPanel .authLinkButton{background:transparent;border:none;padding:4px;text-decoration:underline}.authPanel button:disabled{cursor:default;opacity:.55}.authError,.authStatus{border-radius:8px;font-size:13px;font-weight:700;padding:10px 12px}.authError{background:#f8e4df;color:var(--stamp-red)}.authStatus{background:#e4eddf;color:var(--moss)}@media (max-width:420px){.appNav{padding-inline:10px}.appNavInner{max-width:none}.appNavLink{flex:1 1;justify-content:center;padding-inline:10px}.signOutButton{margin-left:0}}.page{--page:var(--ledger-bg);--surface:var(--paper);--surface-muted:var(--paper-muted);--border:var(--paper-line);--border-strong:#c8bea7;--ink:var(--navy);--muted:var(--ink-muted);--muted-strong:#4d5560;--primary:var(--navy);--success:var(--moss);--success-soft:#e4eddf;--danger:var(--stamp-red);--danger-soft:#f8e4df;--accent:var(--brass);--shadow:0 14px 32px rgba(30,42,56,.08);min-height:100vh;background:var(--page);padding:24px 16px 48px}.loadingText{color:var(--muted);font-size:14px;padding-top:60px;text-align:center}.container{margin:0 auto;max-width:760px}.pinPage{align-items:center;display:flex;justify-content:center}.pinPanel{margin:0 auto;max-width:360px;width:100%}.pinInput{background:var(--surface);border:1px solid var(--border);border-radius:8px;color:var(--ink);font-size:26px;letter-spacing:.2em;margin:20px 0 10px;outline:none;padding:12px 14px;text-align:center;width:100%}.pinError{color:var(--danger);font-size:13px;font-weight:700;margin-bottom:10px;text-align:center}.keypad{display:grid;grid-gap:8px;gap:8px;grid-template-columns:repeat(3,minmax(0,1fr));margin-bottom:12px}.keypad button{background:var(--surface);border:1px solid var(--border);border-radius:8px;color:var(--ink);cursor:pointer;font-size:18px;font-weight:700;min-height:52px}.keypad button:nth-child(10),.keypad button:nth-child(12){color:var(--muted);font-size:13px;font-weight:700}.header{background:var(--navy);border-radius:0 0 18px 18px;color:var(--paper);margin-bottom:0;padding:26px 26px 54px}.billAmount,.billMeta,.debtFields span,.formField span,.input[type=date],.ledgerEyebrow,.paymentInput,.settingsGrid span,.summaryLabel{font-family:IBM Plex Mono,monospace}.ledgerEyebrow{color:var(--brass);font-size:12px;font-weight:700;letter-spacing:.12em;margin:0 0 8px;text-transform:uppercase}.title{color:var(--paper);font-family:Fraunces,Georgia,serif;font-size:clamp(30px,5vw,48px);font-weight:500;letter-spacing:0;margin:0}.subtitle{color:hsla(40,53%,97%,.72);font-size:14px;margin:4px 0 0}.summaryRow{display:flex;gap:10px;margin:-30px 18px 18px;position:relative;z-index:1}.summaryCard{background:var(--surface);border:1px dashed var(--border);border-radius:10px;flex:1 1;padding:14px 16px;box-shadow:var(--shadow)}.summaryLabel{color:var(--muted);font-size:11px;letter-spacing:.05em;margin-bottom:4px;text-transform:uppercase}.summaryValue{color:var(--ink);font-family:Fraunces,Georgia,serif;font-size:24px;font-weight:500}.paidValue{color:var(--success)}.balancePanel{background:var(--surface);border:1px solid var(--border);border-radius:8px;box-shadow:var(--shadow);display:grid;grid-gap:10px;gap:10px;margin-bottom:16px;padding:12px}.balanceHeader{align-items:flex-start;display:flex;gap:10px;justify-content:space-between}.balanceTitle{align-items:center;color:var(--ink);display:flex;font-size:14px;font-weight:800;gap:6px}.balanceHeader p,.reminderNote{color:var(--muted);font-size:12px;line-height:1.35;margin:4px 0 0}.balanceWarning{background:#fff6db;border:1px solid #ead37c;border-radius:999px;color:#755d00;flex-shrink:0;font-size:12px;font-weight:800;padding:5px 8px}.settingsGrid{display:grid;grid-gap:8px;gap:8px;grid-template-columns:repeat(3,minmax(0,1fr)) auto}.settingsGrid label{display:grid;grid-gap:4px;gap:4px;min-width:0}.debtFields span,.formField span,.settingsGrid span{color:var(--muted);font-size:10px;font-weight:800;letter-spacing:.05em;text-transform:uppercase}.settingsGrid input{background:var(--surface-muted);border:1px solid var(--border);border-radius:8px;color:var(--ink);min-width:0;outline:none;padding:9px 10px;width:100%}.settingsGrid button{align-self:end;background:var(--primary);border:1px solid var(--primary);border-radius:8px;color:var(--surface);cursor:pointer;font-size:13px;font-weight:800;padding:9px 12px}.reminderNote{gap:6px;margin:0}.errorBanner,.reminderNote{align-items:center;display:flex}.errorBanner{background:var(--danger-soft);border-radius:8px;color:var(--danger);flex-wrap:wrap;font-size:13px;gap:8px;margin-bottom:10px;padding:10px 12px}.errorText{flex:1 1;min-width:180px}.retryButton{background:none;border:none;color:var(--danger);cursor:pointer;flex-shrink:0;font-size:13px;font-weight:700;padding:0;text-decoration:underline}.filterScroller{display:flex;flex-wrap:wrap;gap:0;margin:6px 0 -1px;overflow:visible;padding:0 8px;position:relative;z-index:2}.filterChip{background:#efe7d8;border:1px solid var(--border);border-bottom:none;border-radius:10px 10px 0 0;color:var(--muted-strong);cursor:pointer;flex:0 0 auto;font-size:13px;font-weight:600;line-height:1.2;margin-right:-1px;padding:10px 13px 11px;white-space:nowrap}.filterChip.active{border-color:var(--border);color:var(--primary);position:relative;z-index:3}.filterChip.active,.list{background:var(--surface)}.list{display:flex;flex-direction:column;border:1px solid var(--border);border-radius:0 10px 10px 10px;box-shadow:var(--shadow);gap:0;margin-bottom:16px;overflow:hidden}.emptyState{padding:32px 16px;text-align:center}.emptyState.compact{background:var(--surface);border:1px solid var(--border);border-radius:8px;padding:20px 16px}.emptyText{color:var(--muted);font-size:14px;line-height:1.5;margin:0}.billRow{align-items:center;background:var(--surface);border:none;border-bottom:1px solid var(--border);border-radius:0;display:flex;gap:12px;min-height:58px;padding:12px 14px;box-shadow:none}.billRow.isPaid{opacity:.55}.billGroup{display:flex;flex-direction:column;gap:6px}.checkButton{align-items:center;background:var(--surface);border:2px solid var(--border-strong);border-radius:50%;cursor:pointer;display:flex;flex-shrink:0;height:24px;justify-content:center;padding:0;width:24px}.checkButton.checked{background:var(--paper);border-color:var(--stamp-red)}.addButton:disabled,.checkButton:disabled,.closeButton:disabled,.deleteButton:disabled,.editBillButton:disabled,.resetLink:disabled,.settingsGrid button:disabled{cursor:default;opacity:.5}.editBillButton{align-items:center;background:none;border:none;color:inherit;cursor:pointer;display:flex;gap:12px;padding:0;text-align:left}.billInfo,.editBillButton{flex:1 1;min-width:0}.billNameRow{align-items:center;display:flex;gap:6px}.billName{color:var(--ink);font-size:15px;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.categoryDot{border-radius:50%;flex-shrink:0;height:6px;width:6px}.billMeta{color:var(--muted);font-size:12px;margin-top:2px}.pastDue{color:var(--danger);font-weight:600}.paymentProgress{color:var(--accent);font-weight:600}.debtMeta{color:var(--muted-strong);font-weight:700}.billAmount{color:var(--ink);flex-shrink:0;font-size:15px;font-weight:700}.amountStack{align-items:flex-end;display:flex;flex-direction:column;flex-shrink:0;gap:4px;min-width:86px}.inkStamp{border:1px solid var(--stamp-red);border-radius:3px;color:var(--stamp-red);display:inline-block;font-family:IBM Plex Mono,monospace;font-size:10px;font-weight:700;letter-spacing:.08em;line-height:1;opacity:.78;padding:3px 5px;text-transform:uppercase;transform:rotate(-7deg)}.closeButton,.deleteButton{background:none;border:none;cursor:pointer;padding:4px}.deleteButton{flex-shrink:0}.paymentEditor{align-items:center;background:var(--surface);display:grid;grid-gap:8px;gap:8px;grid-template-columns:minmax(0,1fr) auto auto;padding:10px}.paymentEditor,.paymentInput{border:1px solid var(--border);border-radius:8px}.paymentInput{background:var(--surface-muted);color:var(--ink);font-size:15px;min-width:0;outline:none;padding:10px 11px;width:100%}.paymentButton,.paymentCancel{border-radius:8px;cursor:pointer;font-size:13px;font-weight:700;padding:10px 12px}.paymentButton{background:var(--primary);border:1px solid var(--primary);color:var(--surface)}.paymentCancel{background:none;border:1px solid var(--border);color:var(--muted)}.fab{align-items:center;background:var(--primary);border:none;border-radius:8px;color:var(--surface);cursor:pointer;display:flex;font-size:15px;font-weight:600;gap:8px;justify-content:center;padding:14px;width:100%}.formCard{background:var(--surface);border:1px solid var(--border);border-radius:8px;display:flex;flex-direction:column;gap:10px;padding:16px;box-shadow:var(--shadow)}.formHeader{align-items:center;display:flex;justify-content:space-between;margin-bottom:2px}.formTitle{color:var(--ink);font-size:15px;font-weight:700}.formRow{display:grid;grid-gap:10px;gap:10px;grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.formField{display:grid;grid-gap:5px;gap:5px;min-width:0}.debtFields{display:grid;grid-gap:10px;gap:10px;grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.debtFields label{display:grid;grid-gap:5px;gap:5px;min-width:0}.input,.select{background:var(--surface-muted);border:1px solid var(--border);border-radius:8px;color:var(--ink);font-size:15px;min-width:0;outline:none;padding:11px 12px;width:100%}.checkboxRow{align-items:center;color:var(--muted-strong);display:flex;font-size:14px;gap:8px;line-height:1.3;padding:2px 0}.checkboxRow input{accent-color:var(--primary);height:16px;width:16px}.addButton{background:var(--primary);border:none;border-radius:8px;color:var(--surface);cursor:pointer;font-size:15px;font-weight:600;margin-top:4px;padding:12px}.resetLink{background:none;border:none;color:var(--muted);cursor:pointer;display:block;font-size:13px;margin:16px auto 0;text-decoration:underline}@media (max-width:360px){.page{padding-inline:12px}.filterScroller{padding-inline:4px}.billRow{gap:9px;padding-inline:10px}.billAmount{font-size:14px}.amountStack{min-width:72px}.debtFields,.settingsGrid{grid-template-columns:minmax(0,1fr)}}.listingPage{--page:var(--ledger-bg);--surface:var(--paper);--surface-muted:var(--paper-muted);--border:var(--paper-line);--border-strong:#c8bea7;--ink:var(--navy);--muted:var(--ink-muted);--muted-strong:#4d5560;--primary:var(--navy);--accent:var(--brass);--success:var(--moss);--danger:var(--stamp-red);--danger-soft:#f8e4df;--shadow:0 14px 32px rgba(30,42,56,.08);background:var(--page);min-height:calc(100vh - 52px);padding:24px 16px 56px}.listingContainer{margin:0 auto;max-width:760px}.listingHeader{align-items:flex-start;background:var(--navy);border-radius:0 0 18px 18px;display:flex;justify-content:space-between;margin-bottom:0;padding:26px 26px 54px}.eyebrow{color:var(--accent);font-size:12px;font-weight:800;letter-spacing:.08em;margin:0 0 5px;text-transform:uppercase}.listingTitle{color:var(--paper);font-family:Fraunces,Georgia,serif;font-size:clamp(30px,5vw,44px);font-weight:500;letter-spacing:0;line-height:1.1;margin:0}.listingSubtitle{color:hsla(40,53%,97%,.72);font-size:14px;line-height:1.45;margin:7px 0 0;max-width:560px}.listingError{margin-bottom:12px}.salesDashboard{display:grid;grid-gap:8px;gap:8px;grid-template-columns:repeat(5,minmax(0,1fr));margin:-30px 18px 12px;position:relative;z-index:1}.salesDashboard div{background:var(--surface);border:1px dashed var(--border);border-radius:10px;box-shadow:var(--shadow);min-width:0;padding:10px}.salesDashboard span{color:var(--muted);display:block;font-size:10px;font-weight:800;letter-spacing:.06em;margin-bottom:4px;text-transform:uppercase;font-family:IBM Plex Mono,monospace}.salesDashboard strong{color:var(--ink);display:block;font-size:14px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.listingToolbar{display:flex;justify-content:flex-end;margin-bottom:12px}.listingComposer{background:var(--surface);border:1px solid var(--border);border-radius:8px;box-shadow:var(--shadow);display:grid;grid-gap:12px;gap:12px;padding:14px}.photoDrop{align-items:center;background:var(--surface-muted);border:1px dashed var(--border-strong);border-radius:8px;color:var(--muted-strong);cursor:pointer;display:flex;font-size:14px;font-weight:700;gap:9px;justify-content:center;min-height:82px;padding:16px}.photoDrop input{display:none}.photoGrid{display:grid;grid-gap:8px;gap:8px;grid-template-columns:repeat(auto-fill,minmax(86px,1fr))}.photoThumb{aspect-ratio:1;border-radius:8px;overflow:hidden;position:relative}.photoThumb img{height:100%;object-fit:cover;width:100%}.photoThumb button{align-items:center;background:rgba(24,34,47,.78);border:none;border-radius:999px;color:#fff;cursor:pointer;display:flex;height:24px;justify-content:center;padding:0;position:absolute;right:6px;top:6px;width:24px}.listingNotes{background:var(--surface-muted);border:1px solid var(--border);border-radius:8px;color:var(--ink);font-size:15px;line-height:1.45;min-height:94px;outline:none;padding:12px;resize:vertical;width:100%}.platformPicker{display:flex;flex-wrap:wrap;gap:8px}.platformPicker button{background:var(--surface);border:1px solid var(--border);border-radius:999px;color:var(--muted-strong);cursor:pointer;font-size:13px;font-weight:800;padding:8px 11px}.platformPicker button.active{background:var(--primary);border-color:var(--primary);color:var(--surface)}.platformPicker button:disabled{cursor:default;opacity:.55}.platformPicker.compact{background:var(--surface-muted);border:1px solid var(--border);border-radius:8px;padding:8px}.platformPicker.compact button{font-size:12px;padding:7px 9px}.generateButton{align-items:center;background:var(--primary);border:none;border-radius:8px;color:var(--surface);cursor:pointer;display:flex;font-size:15px;font-weight:700;gap:8px;justify-content:center;padding:13px}.cardControls select:disabled,.generateButton:disabled,.iconTextButton:disabled{cursor:default;opacity:.55}.statusScroller{display:flex;flex-wrap:wrap;gap:0;margin:16px 0 -1px;overflow:visible;padding:0 8px;position:relative;z-index:2}.statusChip{background:#efe7d8;border:1px solid var(--border);border-bottom:none;border-radius:10px 10px 0 0;color:var(--muted-strong);cursor:pointer;flex:0 0 auto;font-size:13px;font-weight:700;margin-right:-1px;padding:10px 13px 11px}.statusChip.active{background:var(--surface);border-color:var(--border);color:var(--primary);position:relative;z-index:3}.listingList{background:var(--surface);border:1px solid var(--border);border-radius:0 10px 10px 10px;box-shadow:var(--shadow);display:grid;grid-gap:12px;gap:12px;padding:12px}.listingList .emptyState.compact{align-items:center;display:flex;gap:8px;justify-content:center}.listingCard{background:var(--surface);border:1px solid var(--border);border-radius:8px;box-shadow:var(--shadow);display:grid;grid-gap:12px;gap:12px;padding:14px}.cardSelectRow{align-items:center;display:flex;gap:8px;justify-content:space-between}.cardSelectRow label{align-items:center;color:var(--muted-strong);display:flex;font-size:13px;font-weight:700;gap:7px}.cardSelectRow input{accent-color:var(--primary)}.profitBadge,.staleBadge{background:#fff6db;border:1px solid #ead37c;border-radius:999px;color:#755d00;flex-shrink:0;font-size:12px;font-weight:800;padding:5px 8px}.profitBadge{align-self:center;background:#dff5ef;border-color:#a7dccd;color:var(--success)}.profitBadge.loss{background:var(--danger-soft);border-color:#f2b8af;color:var(--danger)}.listingCardTop{display:grid;grid-gap:12px;gap:12px;grid-template-columns:132px minmax(0,1fr)}.itemPhotoStrip{display:flex;gap:6px;max-width:132px;overflow-x:auto;padding-bottom:2px;position:relative;scrollbar-width:thin}.listingStatusStamp{background:hsla(40,53%,97%,.9);border:1px solid var(--stamp-red);border-radius:3px;color:var(--stamp-red);font-family:IBM Plex Mono,monospace;font-size:9px;font-weight:700;left:6px;letter-spacing:.06em;line-height:1;opacity:.82;padding:3px 5px;position:absolute;text-transform:uppercase;top:6px;transform:rotate(-7deg);z-index:2}.itemPhoto{aspect-ratio:1;background:var(--surface-muted);border:1px solid var(--border);border-radius:8px;flex:0 0 62px;height:auto;object-fit:cover;width:62px}.itemPhoto.placeholder{align-items:center;color:var(--muted);display:flex;justify-content:center}.listingMain{min-width:0}.listingMetaRow{color:var(--muted);display:flex;flex-wrap:wrap;font-size:12px;gap:8px;margin-bottom:5px;font-family:IBM Plex Mono,monospace}.listingMain h2{color:var(--ink);font-size:17px;line-height:1.28;margin:0 0 8px}.priceBand{color:var(--success);font-size:18px;font-weight:800;font-family:IBM Plex Mono,monospace}.priceBand small{color:var(--ink);font-weight:800}.priceBand small,.priceBand span{display:block;font-size:12px;line-height:1.35;margin-top:2px}.priceBand span{color:var(--muted);font-weight:600}.cardControls{display:grid;grid-gap:8px;gap:8px;grid-template-columns:minmax(0,1fr) auto auto auto}.cardControls select{color:var(--ink);min-width:0;outline:none}.cardControls select,.iconTextButton{background:var(--surface-muted);border:1px solid var(--border);border-radius:8px;padding:9px 10px}.iconTextButton{align-items:center;color:var(--muted-strong);cursor:pointer;display:inline-flex;font-size:13px;font-weight:700;gap:6px;justify-content:center;text-decoration:none;white-space:nowrap}.financePanel{background:var(--surface-muted);border:1px solid var(--border);border-radius:8px;display:grid;grid-gap:8px;gap:8px;grid-template-columns:repeat(3,minmax(0,1fr)) auto auto;padding:10px}.financePanel label{display:grid;grid-gap:4px;gap:4px;min-width:0}.financePanel label span{color:var(--muted);font-size:11px;font-weight:800;letter-spacing:.04em;text-transform:uppercase}.financePanel input{background:var(--surface);color:var(--ink);min-width:0;padding:9px 10px}.copyBlock,.financePanel input{border:1px solid var(--border);border-radius:8px}.copyBlock{background:#fffdf8;border-left:4px solid var(--brass);padding:10px}.copyHeader{align-items:center;display:flex;justify-content:space-between;margin-bottom:6px}.copyHeader>span{color:var(--muted);font-size:11px;font-weight:800;letter-spacing:.06em;text-transform:uppercase}.copyBlock p{color:var(--ink);font-size:14px;line-height:1.45;margin:0;white-space:pre-wrap}.specificsBlock{background:var(--surface-muted);border:1px solid var(--border);border-radius:8px;display:grid;grid-gap:9px;gap:9px;padding:10px}.specificsHeader{align-items:flex-start;display:flex;gap:8px;justify-content:space-between}.specificsHeader span{color:var(--muted);font-size:11px;font-weight:800;letter-spacing:.06em;text-transform:uppercase}.specificsHeader small{color:var(--muted);font-size:11px;font-weight:700;line-height:1.3;text-align:right}.specificsBlock p{color:var(--muted-strong);font-size:13px;line-height:1.35;margin:0}.specificsGrid{display:grid;grid-gap:7px;gap:7px;grid-template-columns:repeat(2,minmax(0,1fr))}.specificRow{background:var(--surface);border:1px solid var(--border);border-radius:8px;display:grid;grid-gap:3px;gap:3px;min-width:0;padding:8px}.specificRow span{color:var(--muted);font-size:10px;font-weight:800;letter-spacing:.05em;text-transform:uppercase}.specificRow strong{color:var(--ink);font-size:13px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.specificRow em{color:var(--success);font-size:13px;font-style:normal;font-weight:800;overflow-wrap:anywhere}.tagRow{display:flex;flex-wrap:wrap;gap:7px}.tagRow span{background:#e7eefb;border:1px solid #c7d7f2;border-radius:999px;color:#294c87;font-size:12px;font-weight:700;padding:6px 9px}.spin{animation:spin .85s linear infinite}@keyframes spin{to{transform:rotate(1turn)}}@media (max-width:560px){.listingPage{padding-inline:12px}.salesDashboard{grid-template-columns:repeat(2,minmax(0,1fr))}.salesDashboard div:last-child{grid-column:1/-1}.listingToolbar{justify-content:stretch}.listingToolbar .iconTextButton{width:100%}.listingCardTop{grid-template-columns:96px minmax(0,1fr)}.itemPhotoStrip{max-width:96px}.itemPhoto{flex-basis:44px;width:44px}.cardControls,.financePanel,.specificsGrid{grid-template-columns:minmax(0,1fr)}}font-family:Fraunces,Georgia,serif;font-weight:500;.sourcingPage{--page:var(--ledger-bg);--surface:var(--paper);--surface-muted:var(--paper-muted);--border:var(--paper-line);--border-strong:#c8bea7;--ink:var(--navy);--muted:var(--ink-muted);--muted-strong:#4d5560;--primary:var(--navy);--accent:var(--brass);--success:var(--moss);--danger:var(--stamp-red);--danger-soft:#f8e4df;--shadow:0 14px 32px rgba(30,42,56,.08);background:var(--page);min-height:calc(100vh - 52px);padding:24px 16px 56px}.sourcingContainer{margin:0 auto;max-width:760px}.sourcingHeader{align-items:flex-start;background:var(--navy);border-radius:0 0 18px 18px;display:flex;gap:12px;justify-content:space-between;margin-bottom:0;padding:26px 26px 54px}.sourcingTitle{color:var(--paper);font-family:Fraunces,Georgia,serif;font-size:clamp(30px,5vw,44px);font-weight:500;letter-spacing:0;line-height:1.1;margin:0}.sourcingSubtitle{color:hsla(40,53%,97%,.72);font-size:14px;line-height:1.45;margin:7px 0 0}.addWatchButton,.scanButton{align-items:center;background:var(--primary);border:none;border-radius:8px;color:var(--paper);cursor:pointer;display:flex;flex-shrink:0;font-size:14px;font-weight:800;gap:7px;justify-content:center;padding:11px 12px}.addWatchButton:disabled,.scanButton:disabled{cursor:default;opacity:.55}.sourcingStats{display:grid;grid-gap:8px;gap:8px;grid-template-columns:repeat(3,minmax(0,1fr));margin:-30px 18px 12px;position:relative;z-index:1}.hitCard,.sourcingNotice,.sourcingStats div,.watchComposer,.watchRow{background:var(--surface);border:1px solid var(--border);border-radius:8px;box-shadow:var(--shadow)}.sourcingStats div{border-style:dashed;padding:10px}.sourcingStats span{color:var(--muted);display:block;font-size:10px;font-weight:800;letter-spacing:.06em;margin-bottom:4px;text-transform:uppercase;font-family:IBM Plex Mono,monospace}.sourcingStats strong{color:var(--ink);font-family:Fraunces,Georgia,serif;font-size:18px;font-weight:500}.sourcingNotice{color:var(--muted-strong);font-size:13px;font-weight:700;padding:10px 12px}.sourcingError,.sourcingNotice{margin-bottom:12px}.watchComposer{margin-bottom:18px;padding:14px}.watchComposer,.watchGrid{display:grid;grid-gap:10px;gap:10px}.watchGrid{grid-template-columns:minmax(0,1fr) minmax(0,1fr) 120px}.sourcingInput{background:var(--surface-muted);border:1px solid var(--border);border-radius:8px;color:var(--ink);font-size:14px;min-width:0;outline:none;padding:11px 12px}.sourcingInput.main{font-size:15px}.hitList,.watchList{display:grid;grid-gap:8px;gap:8px;margin-top:18px}.hitList h2,.watchList h2{color:var(--ink);font-size:16px;margin:0 0 4px}.watchRow{align-items:center;display:flex;gap:12px;justify-content:space-between;padding:12px}.hitMain h3,.watchRow strong{color:var(--ink)}.watchRow span{color:var(--muted);display:block;font-size:12px;margin-top:3px;font-family:IBM Plex Mono,monospace}.watchToggle{background:var(--surface-muted);border:1px solid var(--border);border-radius:999px;color:var(--muted-strong);cursor:pointer;font-size:12px;font-weight:800;padding:8px 10px}.watchToggle.active{background:#dff5ef;border-color:#a7dccd;color:var(--success)}.hitCard{display:grid;grid-gap:12px;gap:12px;grid-template-columns:96px minmax(0,1fr);padding:12px}.hitCard.seen{opacity:.72}.hitImage{aspect-ratio:1;background:var(--surface-muted);border:1px solid var(--border);border-radius:8px;object-fit:cover;width:96px}.hitImage.placeholder{align-items:center;justify-content:center}.hitImage.placeholder,.hitMeta{color:var(--muted);display:flex}.hitMeta{flex-wrap:wrap;font-size:12px;gap:8px;font-family:IBM Plex Mono,monospace}.hitMain h3{font-size:16px;line-height:1.3;margin:5px 0}.hitMain>strong{color:var(--success);display:block;font-size:18px;margin-bottom:8px;font-family:IBM Plex Mono,monospace}.hitActions{display:flex;flex-wrap:wrap;gap:8px}.hitActions a,.hitActions button{align-items:center;background:var(--surface-muted);border:1px solid var(--border);border-radius:8px;color:var(--muted-strong);cursor:pointer;display:inline-flex;font-size:13px;font-weight:800;gap:6px;padding:8px 10px;text-decoration:none}@media (max-width:560px){.sourcingPage{padding-inline:12px}.sourcingHeader{display:grid}.scanButton{width:100%}.hitCard,.sourcingStats,.watchGrid{grid-template-columns:minmax(0,1fr)}.hitImage{width:100%}}