/* Zoho Books page only. Loaded via `extra: crm, p-books`. Every class is scoped with .pxb- */

/* ---------- hero: the ledger ---------- */
.pxb-hero .pxb-hero__grid { grid-template-columns: minmax(0, 1.02fr) minmax(0, .98fr); }
.pxb-hero .crm-sub { max-width: 36ch; }
.pxb-tops { display: flex; flex-wrap: wrap; gap: 8px; margin: 22px 0 0; padding: 0; list-style: none; max-width: 560px; }
.pxb-tops li { display: inline-flex; align-items: center; gap: 8px; padding: 8px 13px 8px 9px; border-radius: 999px; background: #fff; border: 1px solid #DCE7EF; font: 600 13.5px/1.25 var(--f-body); color: #082238; box-shadow: 0 10px 20px -16px rgba(8,34,56,.5); }
.pxb-tops svg { flex: none; width: 22px; height: 22px; padding: 3px; border-radius: 7px; background: #E6F0FA; fill: none; stroke: #226DB4; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }

.pxb-ledger { position: relative; margin: 0; padding: 14px 6px 10px; perspective: 1400px; }
.pxb-defs { position: absolute; width: 0; height: 0; }
.pxb-paper { position: relative; padding: 24px 26px 28px; border-radius: 6px 6px 0 0; background: #FFFDF7 repeating-linear-gradient(180deg, transparent 0 31px, rgba(34,109,180,.06) 31px 32px); border: 1px solid #ECE6D6; box-shadow: 0 50px 90px -45px rgba(8,34,56,.55), 0 2px 0 rgba(255,255,255,.8) inset; transform: rotate(-1.2deg); transform-origin: 50% 100%; will-change: transform; }
.pxb-paper::after { content: ""; position: absolute; left: -1px; right: -1px; bottom: -9px; height: 10px; background: linear-gradient(135deg, #FFFDF7 33%, transparent 33%) 0 0 / 14px 10px, linear-gradient(225deg, #FFFDF7 33%, transparent 33%) 0 0 / 14px 10px; filter: drop-shadow(0 2px 1px rgba(8,34,56,.08)); }
.pxb-paper__top { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding-bottom: 14px; border-bottom: 2px solid #082238; }
.pxb-paper__top div { display: flex; align-items: center; gap: 10px; }
.pxb-paper__top b { font: 800 20px/1 var(--f-display); letter-spacing: .14em; text-transform: uppercase; color: #082238; }
.pxb-paper__no { font: 600 13px/1 ui-monospace, SFMono-Regular, Menlo, monospace; color: #334155; }
.pxb-paper__no em { margin-left: 8px; padding: 3px 8px; border-radius: 999px; background: #F3F7F9; font: 600 11px/1 var(--f-body); font-style: normal; color: #5B6B7F; }
.pxb-paper__meta { display: grid; grid-template-columns: 1.4fr 1fr 1fr; gap: 12px; margin: 14px 0 6px; }
.pxb-paper__meta dt { font: 700 10.5px/1 var(--f-body); letter-spacing: .08em; text-transform: uppercase; color: #94A3B8; }
.pxb-paper__meta dd { margin: 5px 0 0; font: 600 13.5px/1.35 var(--f-body); color: #082238; }
.pxb-paper__lines { width: 100%; margin-top: 8px; border-collapse: collapse; font-size: 13.5px; font-variant-numeric: tabular-nums; }
.pxb-paper__lines td { padding: 8px 4px; border-bottom: 1px dashed #E2DCCB; color: #334155; transition: background .5s, color .5s; }
.pxb-paper__lines td:last-child { text-align: right; white-space: nowrap; font-weight: 600; color: #082238; }
.pxb-paper__tax td { color: #64748B; }
.pxb-paper__tot td { border-bottom: 3px double #082238; font: 800 16px/1.2 var(--f-display); color: #082238; }
.pxb-paper__foot { display: flex; align-items: center; justify-content: space-between; gap: 10px; margin-top: 16px; }
.pxb-pay { display: inline-flex; align-items: center; gap: 8px; padding: 9px 14px; border-radius: 10px; background: #226DB4; color: #F0F6FC; font: 500 12.5px/1 var(--f-body); }
.pxb-pay b { color: #fff; font-weight: 700; }
.pxb-pay i { width: 14px; height: 10px; border-radius: 2px; border: 1.5px solid #fff; border-top-width: 3px; }
.pxb-paper__status { font: 600 12.5px/1 var(--f-body); color: #B45309; transition: color .4s; }
.pxb-stamp { position: absolute; left: 44%; bottom: 52px; display: grid; justify-items: center; padding: 8px 16px 7px; border: 4px double #15803D; border-radius: 10px; color: #15803D; filter: url(#pxb-ink); opacity: 0; transform: scale(2.3) rotate(-4deg); transition: opacity .18s ease, transform .38s cubic-bezier(.2,1.5,.4,1); pointer-events: none; mix-blend-mode: multiply; }
.pxb-stamp b { font: 800 36px/1 var(--f-display); letter-spacing: .16em; }
.pxb-stamp small { font: 700 11px/1.2 var(--f-body); letter-spacing: .06em; text-transform: uppercase; }

.pxb-feed { position: relative; margin: 26px 0 0 28px; padding: 14px 16px 12px; border-radius: 16px; background: #fff; border: 1px solid #E2E8F0; box-shadow: 0 34px 60px -38px rgba(8,34,56,.6); clip-path: inset(-40px -2px -60px -2px round 16px); will-change: transform; }
.pxb-feed__h { display: flex; justify-content: space-between; margin: 0 0 8px; font: 700 12.5px/1 var(--f-display); color: #082238; }
.pxb-feed__h em { font: 600 11px/1 var(--f-body); font-style: normal; color: #64748B; }
.pxb-feed__row { position: relative; display: grid; grid-template-columns: 42px minmax(0, 1fr) auto auto; align-items: center; gap: 10px; padding: 9px 10px; border-radius: 10px; font: 500 12.5px/1.25 var(--f-body); color: #334155; }
.pxb-feed__row span { color: #64748B; }
.pxb-feed__row b { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font: 600 12px/1.2 ui-monospace, SFMono-Regular, Menlo, monospace; color: #082238; }
.pxb-feed__row i { font-style: normal; font-weight: 700; font-variant-numeric: tabular-nums; color: #082238; }
.pxb-feed__row--old { opacity: .6; }
.pxb-feed__row--new { margin-top: 4px; background: #F7FAFC; transform: translateX(110%); opacity: 0; transition: transform .7s cubic-bezier(.2,.8,.2,1), opacity .4s, background .4s, box-shadow .4s; }
.pxb-feed__row--new i { color: #15803D; }
.pxb-tag { display: inline-flex; align-items: center; gap: 4px; padding: 4px 8px; border-radius: 999px; font: 700 10.5px/1 var(--f-body); font-style: normal; white-space: nowrap; }
.pxb-tag svg { width: 11px; height: 11px; fill: none; stroke: currentColor; stroke-width: 2.4; stroke-linecap: round; stroke-linejoin: round; }
.pxb-tag--ok { background: #DDF4E6; color: #166534; }
.pxb-tag--find { background: #FFF1CC; color: #92400E; }
.pxb-feed__row--new .pxb-tag--snap { display: none; }
.pxb-snap { position: absolute; z-index: 2; right: 34px; top: -24px; display: grid; place-items: center; width: 30px; height: 30px; border-radius: 50%; background: #15803D; color: #fff; box-shadow: 0 0 0 6px rgba(63,185,122,.22); opacity: 0; transform: scale(.3); transition: opacity .3s, transform .45s cubic-bezier(.2,1.6,.4,1); }
.pxb-snap::before { content: ""; position: absolute; bottom: 100%; left: 50%; width: 2px; height: 18px; margin-left: -1px; background: repeating-linear-gradient(180deg, #3FB97A 0 4px, transparent 4px 7px); }
.pxb-snap svg { width: 16px; height: 16px; fill: none; stroke: currentColor; stroke-width: 2.4; stroke-linecap: round; stroke-linejoin: round; }

.pxb-chip { position: absolute; z-index: 3; display: inline-flex; align-items: center; gap: 8px; padding: 9px 14px; border-radius: 999px; background: #082238; color: #fff; font: 600 12.5px/1 var(--f-body); box-shadow: 0 18px 30px -16px rgba(8,34,56,.7); opacity: 0; transform: translateY(10px) scale(.85); transition: opacity .4s, transform .5s cubic-bezier(.2,1.4,.4,1); pointer-events: none; will-change: transform; }
.pxb-chip i { width: 8px; height: 8px; border-radius: 50%; background: #FFB81C; box-shadow: 0 0 0 4px rgba(255,184,28,.25); }
.pxb-chip em { padding: 3px 7px; border-radius: 999px; background: rgba(255,255,255,.14); font: 600 10.5px/1 var(--f-body); font-style: normal; color: #BFD3E2; }
.pxb-chip--tax { right: 18px; top: -4px; }
.pxb-chip--rec { left: -10px; bottom: -14px; background: #FFB81C; color: #082238; }
.pxb-chip--rec i { background: #15803D; box-shadow: 0 0 0 4px rgba(21,128,61,.2); }

/* hero states, set by p-books.js */
.pxb-ledger.is-s1 .pxb-paper__tax td { background: #FFF6DB; color: #082238; }
.pxb-ledger.is-s1 .pxb-chip--tax { opacity: 1; transform: none; }
.pxb-ledger.is-s2 .pxb-pay { animation: pxbPulse 1.1s ease 1; }
.pxb-ledger.is-s3 .pxb-stamp { opacity: .92; transform: scale(1) rotate(-13deg); }
.pxb-ledger.is-s3 .pxb-paper { animation: pxbThump .35s ease .12s 1; }
.pxb-ledger.is-s3 .pxb-paper__status { color: #15803D; }
.pxb-ledger.is-s4 .pxb-feed__row--new { transform: none; opacity: 1; }
.pxb-ledger.is-s5 .pxb-feed__row--new { background: #EAF8EF; box-shadow: 0 0 0 2px #3FB97A inset; transform: translateY(-2px); }
.pxb-ledger.is-s5 .pxb-feed__row--new .pxb-tag--find { display: none; }
.pxb-ledger.is-s5 .pxb-feed__row--new .pxb-tag--snap { display: inline-flex; }
.pxb-ledger.is-s5 .pxb-snap { opacity: 1; transform: none; }
.pxb-ledger.is-s5 .pxb-chip--rec { opacity: 1; transform: none; }
.pxb-ledger.is-s5 .pxb-paper { box-shadow: 0 0 0 2px rgba(63,185,122,.5), 0 50px 90px -45px rgba(8,34,56,.55); }
.pxb-ledger.is-fade .pxb-stamp, .pxb-ledger.is-fade .pxb-chip, .pxb-ledger.is-fade .pxb-snap, .pxb-ledger.is-fade .pxb-feed__row--new { opacity: 0; transition-duration: .5s; }
@keyframes pxbPulse { 30% { box-shadow: 0 0 0 7px rgba(34,109,180,.25); transform: scale(1.04); } }
@keyframes pxbThump { 40% { transform: rotate(-1.2deg) translateY(3px) scale(.995); } }

/* ---------- 01 Why Zoho Books: bento ---------- */
.pxb-edges { position: relative; isolation: isolate; overflow-x: clip; }
.pxb-bento { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); grid-auto-flow: dense; gap: 16px; margin-top: 44px; }
.pxb-edge { position: relative; display: flex; flex-direction: column; padding: 22px; border-radius: 22px; background: #fff; border: 1px solid #E2E8F0; box-shadow: 0 30px 60px -48px rgba(8,34,56,.5); transition: transform .35s cubic-bezier(.2,.7,.1,1), box-shadow .35s, border-color .35s; }
.pxb-edge:hover { transform: translateY(-3px); border-color: #BFD9EE; box-shadow: 0 34px 60px -40px rgba(8,34,56,.5); }
.pxb-edge h3 { margin: 18px 0 8px; font: 700 19px/1.25 var(--f-display); letter-spacing: -.01em; color: #082238; }
.pxb-edge p { margin: 0; font-size: 15px; line-height: 1.55; color: #334155; }
.pxb-edge__chip { align-self: flex-start; margin-top: 14px; padding: 5px 10px; border-radius: 999px; background: #E6F0FA; font: 700 12px/1.2 var(--f-body); color: #1D5A94; }
.pxb-edge__chip--vs { background: #FFF1CC; color: #7C4A03; }
.pxb-edge__vis { position: relative; display: flex; align-items: center; justify-content: center; gap: 10px; min-height: 112px; padding: 14px; border-radius: 16px; background: #F3F7F9; overflow: hidden; }
.pxb-edge--hero { grid-column: span 2; grid-row: span 2; padding: 28px; background: linear-gradient(160deg, #FFFDF7, #fff 60%); }
.pxb-edge--hero h3 { font-size: clamp(22px, 1rem + .8vw, 28px); margin-top: 22px; }
.pxb-edge--hero p { font-size: 16px; }
.pxb-edge--hero .pxb-edge__vis { display: block; padding: 20px 22px; background: #fff; border: 1px solid #ECE6D6; }
.pxb-vis-tax__h { display: flex; justify-content: space-between; gap: 8px; margin: 0 0 14px !important; font: 700 13px/1.2 var(--f-display) !important; color: #082238 !important; }
.pxb-vis-tax__h em { font: 600 11px/1 var(--f-body); font-style: normal; color: #64748B; }
.pxb-vis-tax ul { display: grid; gap: 12px; margin: 0; padding: 0; list-style: none; }
.pxb-vis-tax li { display: grid; grid-template-columns: 110px minmax(0, 1fr) 58px; align-items: center; gap: 12px; font: 600 13.5px/1.2 var(--f-body); color: #334155; }
.pxb-vis-tax li i { display: block; height: 10px; border-radius: 999px; background: #EDF2F6; position: relative; overflow: hidden; }
.pxb-vis-tax li i::before { content: ""; position: absolute; inset: 0 auto 0 0; width: 0; border-radius: inherit; background: linear-gradient(90deg, #226DB4, #00A3D9); transition: width 1.1s cubic-bezier(.2,.7,.1,1); }
.pxb-vis-tax li:nth-child(2) i::before { transition-delay: .15s; } .pxb-vis-tax li:nth-child(3) i::before { transition-delay: .3s; }
.pxb-in .pxb-vis-tax li i::before { width: var(--w); }
.pxb-vis-tax li b { text-align: right; font: 800 14px/1 var(--f-display); color: #082238; font-variant-numeric: tabular-nums; }
.pxb-vis-tax__f { margin: 14px 0 0 !important; padding-top: 12px; border-top: 1px dashed #E2DCCB; font-size: 13px !important; color: #64748B !important; }
.pxb-vis-1099 { flex-direction: column; align-items: flex-start !important; gap: 4px !important; background: #fff !important; border: 1.5px solid #E4B4B4; font-family: var(--f-body); }
.pxb-vis-1099 b { font: 800 16px/1 var(--f-display); letter-spacing: .04em; color: #B91C1C; }
.pxb-vis-1099 span { font-size: 11.5px; color: #64748B; }
.pxb-vis-1099 i { align-self: stretch; margin-top: 4px; padding: 6px 8px; border: 1px solid #F0D2D2; border-radius: 6px; font: 700 18px/1 ui-monospace, SFMono-Regular, Menlo, monospace; font-style: normal; color: #082238; text-align: right; }
.pxb-vis-match { flex-wrap: wrap; }
.pxb-vis-match span { padding: 8px 10px; border-radius: 10px; background: #fff; border: 1px solid #E2E8F0; font: 700 12.5px/1 ui-monospace, SFMono-Regular, Menlo, monospace; color: #082238; transition: transform .7s cubic-bezier(.2,.8,.2,1); }
.pxb-vis-match i { width: 22px; height: 2px; background: repeating-linear-gradient(90deg, #3FB97A 0 4px, transparent 4px 7px); }
.pxb-vis-match em { flex-basis: 100%; text-align: center; font: 700 11px/1 var(--f-body); font-style: normal; color: #92400E; }
.pxb-vis-match span:first-child { transform: translateX(-14px); } .pxb-vis-match span:nth-of-type(2) { transform: translateX(14px); }
.pxb-in .pxb-vis-match span { transform: none; }
.pxb-vis-pay { flex-direction: column; }
.pxb-vis-pay .pxb-pay { padding: 11px 18px; font-size: 14px; box-shadow: 0 14px 24px -14px rgba(34,109,180,.8); }
.pxb-vis-pay small { font: 600 11.5px/1 var(--f-body); color: #5B6B7F; }
.pxb-vis-lock { gap: 6px !important; }
.pxb-vis-lock span { padding: 9px 8px; border-radius: 9px; background: #082238; color: #BFD3E2; font: 700 12px/1 var(--f-body); }
.pxb-vis-lock span.is-open { background: #fff; color: #082238; border: 1.5px dashed #94A3B8; }
.pxb-vis-lock svg { width: 26px; height: 26px; margin-left: 4px; fill: none; stroke: #15803D; stroke-width: 2; stroke-linecap: round; }
.pxb-edge--wide { grid-column: 1 / -1; flex-direction: row; align-items: center; gap: 28px; padding: 26px 30px; background: linear-gradient(135deg, #061A2E, #0A3A63 55%, #07605E); border-color: transparent; color: #BFD3E2; }
.pxb-edge--wide h3 { margin-top: 0; color: #fff; font-size: 22px; }
.pxb-edge--wide p { color: #BFD3E2; max-width: 62ch; }
.pxb-edge--wide .pxb-edge__vis { flex: none; min-height: 0; padding: 16px 18px; background: rgba(255,255,255,.07); }
.pxb-edge--wide .pxb-edge__chip { flex: none; align-self: center; margin: 0 0 0 auto; }
.pxb-vis-seats i { display: grid; place-items: center; width: 34px; height: 34px; margin-left: -12px; border-radius: 50%; border: 2px solid #0A3A63; background: #FFB81C; font: 700 12px/1 var(--f-body); font-style: normal; color: #082238; }
.pxb-vis-seats i:first-child { margin-left: 0; } .pxb-vis-seats i:nth-child(2) { background: #5FD3F3; } .pxb-vis-seats i:nth-child(3) { background: #3FB97A; } .pxb-vis-seats i:nth-child(4) { background: #fff; } .pxb-vis-seats i:nth-child(5) { background: #A5B4FC; }
.pxb-vis-seats b { margin-left: 10px; font: 800 15px/1 var(--f-display); color: #fff; white-space: nowrap; }
.pxb-edges__more { margin: 22px 0 0; max-width: 80ch; font-size: 15.5px; line-height: 1.6; color: #475569; }
.pxb-edges__more a, .pxb-close a { color: #0A6FA8; font-weight: 600; }
.pxb-edge[data-pxb-rv] { opacity: 0; transform: translateY(30px); transition: opacity .7s cubic-bezier(.2,.7,.1,1) var(--d, 0s), transform .8s cubic-bezier(.2,.7,.1,1) var(--d, 0s), box-shadow .35s, border-color .35s; }
.pxb-edge[data-pxb-rv].pxb-in { opacity: 1; transform: none; }
.pxb-edge[data-pxb-rv].pxb-in:hover { transform: translateY(-3px); }

/* ---------- 02 month-end close: stepper ---------- */
.pxb-close { position: relative; isolation: isolate; background: linear-gradient(180deg, #F3F7F9, #fff); }
.pxb-close__pin { margin-top: 40px; }
.pxb-close__rail { display: none; }
.pxb-close__view { width: min(1200px, 100% - 48px); margin-inline: auto; }
.pxb-close__track { display: grid; gap: 18px; margin: 0; padding: 0; list-style: none; }
.pxb-day { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, .9fr); align-items: center; gap: clamp(20px, 4vw, 56px); padding: clamp(22px, 3vw, 40px); border-radius: 26px; background: #fff; border: 1px solid #E2E8F0; box-shadow: 0 40px 80px -60px rgba(8,34,56,.55); }
.pxb-day__n { display: inline-block; padding: 6px 12px; border-radius: 999px; background: #082238; color: #fff; font: 700 12.5px/1 var(--f-body); letter-spacing: .03em; }
.pxb-day h3 { margin: 14px 0 10px; font: 700 clamp(22px, 1rem + .9vw, 30px)/1.2 var(--f-display); letter-spacing: -.02em; color: #082238; }
.pxb-day p { margin: 0; font-size: 16.5px; line-height: 1.6; color: #334155; max-width: 52ch; }
.pxb-day p.pxb-day__in { margin-top: 14px; font: 600 13px/1.3 var(--f-body); color: #226DB4; }
.pxb-day__vis { padding: 20px; border-radius: 20px; background: #F7FAFC; border: 1px solid #E2E8F0; }
.pxb-mini__h { display: flex; justify-content: space-between; gap: 8px; margin: 0 0 12px !important; font: 700 13.5px/1.2 var(--f-display) !important; color: #082238 !important; }
.pxb-mini__h em { font: 600 11px/1 var(--f-body); font-style: normal; color: #64748B; }
.pxb-mini { display: grid; gap: 8px; margin: 0; padding: 0; list-style: none; }
.pxb-mini li { display: flex; justify-content: space-between; align-items: center; gap: 10px; padding: 10px 12px; border-radius: 12px; background: #fff; border: 1px solid #EDF2F6; font: 600 13px/1.25 var(--f-body); color: #082238; }
.pxb-mini li span { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: 12px; }
.pxb-mini li b { flex: none; font-size: 12px; color: #15803D; }
.pxb-mini li b.tag { padding: 4px 8px; border-radius: 999px; background: #E6F0FA; color: #1D5A94; }
.pxb-mini li b.tag--find { background: #FFF1CC; color: #92400E; }
.pxb-mini li.warn b { color: #B45309; }
.pxb-mini__note { margin: 12px 0 0 !important; font-size: 12.5px !important; color: #64748B !important; }
.pxb-recon { display: grid; gap: 8px; margin: 0; }
.pxb-recon div { display: flex; justify-content: space-between; padding: 12px 14px; border-radius: 12px; background: #fff; border: 1px solid #EDF2F6; }
.pxb-recon dt { font: 600 13px/1.2 var(--f-body); color: #475569; }
.pxb-recon dd { margin: 0; font: 800 15px/1.2 var(--f-display); color: #082238; font-variant-numeric: tabular-nums; }
.pxb-recon div.ok { background: #EAF8EF; border-color: #BFE8CF; } .pxb-recon div.ok dd { color: #15803D; }
.pxb-je { width: 100%; border-collapse: collapse; font-size: 13px; font-variant-numeric: tabular-nums; background: #fff; border-radius: 12px; overflow: hidden; }
.pxb-je td { padding: 11px 12px; border-bottom: 1px solid #EDF2F6; color: #082238; }
.pxb-je td + td { text-align: right; width: 90px; font-weight: 700; }
.pxb-je tr:last-child td:first-child { padding-left: 28px; }
.pxb-kpi { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; }
.pxb-kpi div { padding: 12px; border-radius: 12px; background: #fff; border: 1px solid #EDF2F6; }
.pxb-kpi small { display: block; font: 600 11.5px/1.2 var(--f-body); color: #64748B; }
.pxb-kpi b { display: block; margin-top: 6px; font: 800 20px/1 var(--f-display); color: #082238; }
.pxb-lockline { display: flex; align-items: center; gap: 8px; margin: 12px 0 0 !important; padding: 10px 12px; border-radius: 12px; background: #082238; color: #fff !important; font: 600 13px/1 var(--f-body) !important; }
.pxb-lockline svg { width: 18px; height: 18px; fill: none; stroke: #FFB81C; stroke-width: 2; stroke-linecap: round; }

/* horizontal, pinned mode (desktop, motion allowed) */
.pxb-close__pin.is-h { margin-top: 36px; padding: 8px 0 12px; }
.pxb-close__pin.is-h .pxb-close__rail { position: relative; display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 8px; margin: 0 0 22px; padding: 0 0 14px; list-style: none; }
.pxb-close__rail li { display: flex; flex-direction: column; gap: 4px; font: 600 14px/1.2 var(--f-body); color: #94A3B8; transition: color .3s; }
.pxb-close__rail li b { font: 800 12px/1 var(--f-body); letter-spacing: .08em; text-transform: uppercase; }
.pxb-close__rail li.is-on, .pxb-close__rail li.is-past { color: #082238; }
.pxb-close__rail li.is-on b { color: #226DB4; }
.pxb-close__rail li.pxb-close__fill { position: absolute; left: 0; right: 0; bottom: 0; height: 4px; border-radius: 4px; background: #E2E8F0; }
.pxb-close__fill span { display: block; height: 100%; width: 20%; border-radius: inherit; background: linear-gradient(90deg, #1D3F8F, #00A3D9, #00B2A9, #3FB97A); }
.pxb-close__pin.is-h .pxb-close__view { width: 100%; overflow: hidden; }
.pxb-close__pin.is-h .pxb-close__track { display: flex; gap: 0; width: max-content; will-change: transform; }
.pxb-close__pin.is-h .pxb-day { flex: 0 0 auto; width: min(1100px, 100vw - 96px); margin: 0 max(48px, (100vw - 1100px) / 2); box-sizing: border-box; }
.pxb-close__pin.is-h .pxb-day + .pxb-day { margin-left: 0; }

/* ---------- 03 signature: match the bank feed ---------- */
.pxb-mx { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px; margin-top: 40px; }
.pxb-mx__col { padding: 20px; border-radius: 22px; background: rgba(255,255,255,.06); border: 1px solid rgba(255,255,255,.12); }
.pxb-mx__h { display: flex; justify-content: space-between; align-items: center; gap: 8px; margin: 0 0 14px; font: 700 15px/1.2 var(--f-display); color: #fff; }
.pxb-mx__h em { padding: 3px 8px; border-radius: 999px; background: rgba(255,255,255,.1); font: 600 11px/1 var(--f-body); font-style: normal; color: #BFD3E2; }
.pxb-mx__list { display: grid; gap: 10px; margin: 0; padding: 0; list-style: none; }
.pxb-mx__item { position: relative; display: grid; grid-template-columns: 62px minmax(0, 1fr) auto; align-items: center; gap: 12px; width: 100%; padding: 15px 16px; border-radius: 14px; border: 1.5px solid rgba(255,255,255,.1); background: rgba(255,255,255,.07); color: #DCE8F1; text-align: left; cursor: pointer; font: 500 14px/1.3 var(--f-body); transition: border-color .2s, background .2s, transform .2s, opacity .3s; }
.pxb-mx__item:hover { border-color: rgba(95,211,243,.6); transform: translateY(-1px); }
.pxb-mx__item:focus-visible { outline: 2px solid #5FD3F3; outline-offset: 3px; }
.pxb-mx__d { font: 600 12px/1.2 var(--f-body); color: #9FC0D8; }
.pxb-mx__item b { min-width: 0; overflow-wrap: anywhere; font: 600 13px/1.3 ui-monospace, SFMono-Regular, Menlo, monospace; color: #fff; }
.pxb-mx__item i { font: 800 15px/1 var(--f-display); font-style: normal; color: #fff; font-variant-numeric: tabular-nums; white-space: nowrap; }
.pxb-mx__item i.in { color: #7EE2A8; }
.pxb-mx__item[aria-pressed="true"] { border-color: #FFB81C; background: rgba(255,184,28,.12); box-shadow: 0 0 0 4px rgba(255,184,28,.15); }
.pxb-mx__item.is-sug { border-color: #3FB97A; border-style: dashed; }
.pxb-mx__item.is-sug::after { content: "Match found"; position: absolute; right: 12px; top: -10px; padding: 4px 8px; border-radius: 999px; background: #FFB81C; color: #082238; font: 700 10.5px/1 var(--f-body); }
.pxb-mx__item.is-matched { cursor: default; border-color: rgba(63,185,122,.7); background: rgba(63,185,122,.14); transform: none; }
.pxb-mx__item.is-matched::after { content: attr(data-tag); position: absolute; right: 12px; top: -10px; padding: 4px 8px; border-radius: 999px; background: #3FB97A; color: #062A1A; font: 700 10.5px/1 var(--f-body); }
.pxb-mx__item.is-wrong { animation: pxbShake .45s ease; border-color: #F87171; }
@keyframes pxbShake { 20%, 60% { transform: translateX(-5px); } 40%, 80% { transform: translateX(5px); } }
.pxb-mx__bar { grid-column: 1 / -1; display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 14px 24px; padding: 22px 24px; border-radius: 22px; background: rgba(4,18,32,.45); border: 1px solid rgba(255,255,255,.1); }
.pxb-mx__bal { grid-column: 1 / -1; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; margin: 0; }
.pxb-mx__bal div { padding: 12px 14px; border-radius: 14px; background: rgba(255,255,255,.06); }
.pxb-mx__bal dt { font: 600 12px/1.2 var(--f-body); color: #9FC0D8; }
.pxb-mx__bal dd { margin: 6px 0 0; font: 800 clamp(18px, 1rem + .6vw, 24px)/1 var(--f-display); color: #fff; font-variant-numeric: tabular-nums; }
.pxb-mx__diff dd { color: #FFB81C; transition: color .3s; }
.pxb-mx.is-done .pxb-mx__diff { background: rgba(63,185,122,.2); } .pxb-mx.is-done .pxb-mx__diff dd { color: #7EE2A8; }
.pxb-mx__meter { grid-column: 1 / -1; height: 8px; border-radius: 999px; background: rgba(255,255,255,.1); overflow: hidden; }
.pxb-mx__meter span { display: block; width: 0; height: 100%; border-radius: inherit; background: linear-gradient(90deg, #00A3D9, #3FB97A); transition: width .6s cubic-bezier(.2,.7,.1,1); }
.pxb-mx__msg { margin: 0; font-size: 15.5px; line-height: 1.5; color: #DCE8F1; }
.pxb-mx__msg b { color: #fff; }
.pxb-mx__msg.is-err { color: #FCA5A5; }
.pxb-mx__btns { display: flex; flex-wrap: wrap; gap: 10px; justify-content: flex-end; }
.pxb-mx__btns .btn { color: #082238 !important; }
.pxb-mx__reset { padding: 13px 18px; border-radius: 12px; border: 1.5px solid rgba(255,255,255,.25); background: transparent; color: #fff; font: 600 14.5px/1 var(--f-body); cursor: pointer; }
.pxb-mx__reset:hover { border-color: #5FD3F3; }
.pxb-mx__reset:focus-visible, .pxb-mx__btns .btn:focus-visible { outline: 2px solid #5FD3F3; outline-offset: 3px; }

/* ---------- pricing: ledger-paper restyle ---------- */
.pxb-price .crm-vs__wrap { background: #FFFDF7 repeating-linear-gradient(180deg, transparent 0 55px, rgba(34,109,180,.05) 55px 56px); border-color: #ECE6D6; }
.pxb-price .crm-vs__table thead th { background: #F8F4E8; color: #6B5E3C; }
.pxb-price .crm-vs__table tbody th { border-left: 3px solid transparent; }
.pxb-price .crm-vs__table tr.is-zoho th { border-left-color: #226DB4; }
.pxb-price .crm-vs__table td b { font-variant-numeric: tabular-nums; }
.pxb-price .crm-adv__card { border-top: 4px solid #226DB4; }

/* ---------- responsive ---------- */
@media (max-width: 1100px) {
  .pxb-bento { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .pxb-edge--hero { grid-row: auto; }
}
@media (max-width: 980px) {
  .pxb-hero .pxb-hero__grid { grid-template-columns: 1fr; }
  .pxb-ledger { max-width: 560px; width: 100%; margin-inline: auto; }
  .pxb-day { grid-template-columns: 1fr; }
  .pxb-edge--wide { flex-direction: column; align-items: flex-start; gap: 16px; }
  .pxb-edge--wide .pxb-edge__chip { margin: 0; align-self: flex-start; }
  .pxb-mx__bar { grid-template-columns: 1fr; }
  .pxb-mx__btns { justify-content: flex-start; }
}
@media (max-width: 640px) {
  .pxb-tops li { font-size: 13px; }
  .pxb-paper { padding: 18px 16px 22px; transform: none; }
  .pxb-paper__top b { font-size: 16px; letter-spacing: .1em; }
  .pxb-paper__no em { display: none; }
  .pxb-paper__meta { grid-template-columns: 1.3fr 1fr 1fr; gap: 8px; }
  .pxb-paper__meta dd { font-size: 12.5px; }
  .pxb-paper__lines { font-size: 12.5px; }
  .pxb-stamp { left: auto; right: 16px; bottom: 58px; padding: 6px 12px; } .pxb-stamp b { font-size: 28px; }
  .pxb-feed { margin-left: 0; padding: 12px 10px 10px; }
  .pxb-feed__row { grid-template-columns: minmax(0, 1fr) auto; gap: 4px 8px; }
  .pxb-feed__row span { display: none; }
  .pxb-feed__row .pxb-tag { grid-column: 1 / -1; justify-self: start; }
  .pxb-chip--tax { right: 6px; top: -6px; font-size: 11.5px; padding: 8px 11px; }
  .pxb-chip--rec { left: 6px; }
  .pxb-bento { grid-template-columns: 1fr; }
  .pxb-edge--hero { grid-column: auto; padding: 22px; }
  .pxb-vis-tax li { grid-template-columns: 92px minmax(0, 1fr) 52px; gap: 8px; font-size: 12.5px; }
  .pxb-close__view { width: calc(100% - 32px); }
  .pxb-day__vis { padding: 14px; }
  .pxb-kpi b { font-size: 17px; }
  .pxb-mx { grid-template-columns: 1fr; }
  .pxb-mx__col { padding: 14px; }
  .pxb-mx__item { grid-template-columns: minmax(0, 1fr) auto; gap: 4px 10px; padding: 13px; }
  .pxb-mx__d { grid-column: 1 / -1; }
  .pxb-mx__bar { padding: 16px; }
  .pxb-mx__bal { grid-template-columns: 1fr; gap: 8px; }
  .pxb-mx__bal div { display: flex; justify-content: space-between; align-items: baseline; }
  .pxb-mx__bal dd { margin: 0; font-size: 18px; }
}
@media (prefers-reduced-motion: reduce) {
  .pxb-stamp, .pxb-chip, .pxb-snap, .pxb-feed__row--new, .pxb-vis-tax li i::before, .pxb-vis-match span, .pxb-mx__meter span, .pxb-edge { transition: none !important; animation: none !important; }
  .pxb-edge[data-pxb-rv] { opacity: 1; transform: none; }
  .pxb-vis-tax li i::before { width: var(--w); }
  .pxb-vis-match span { transform: none; }
}

/* bento fine-tuning */
.pxb-edge--hero .pxb-edge__vis { flex: 1; display: flex; flex-direction: column; justify-content: center; align-items: stretch; }
.pxb-edge--hero .pxb-vis-tax ul { gap: 20px; }
.pxb-edge--hero .pxb-vis-tax li { font-size: 15px; }
.pxb-edge--hero .pxb-vis-tax li i { height: 14px; }
.pxb-vis-match { gap: 6px !important; padding: 14px 8px !important; }
.pxb-vis-match span { padding: 7px 8px; font-size: 11.5px; }
.pxb-vis-match i { width: 16px; }
@media (max-width: 1100px) { .pxb-edge--hero .pxb-edge__vis { flex: none; } }

/* 24px link targets (RTL-zoho-books-7) */
.pg-faq__links .pg-link, .crm-proof .pg-link, .crm-vs .pg-link, .crm-audit__next a { min-height: 24px; line-height: 24px; }
