:root{font-family:Inter,"Segoe UI",Arial,sans-serif;color:#23202a;background:#f7f7fa;font-synthesis:none;font-size:16px}*{box-sizing:border-box}body{margin:0;min-height:100dvh;display:flex;flex-direction:column}header{height:88px;padding:0 5%;display:flex;align-items:center;justify-content:space-between;gap:20px;background:white;border-bottom:1px solid #e9e7ee}.brand{display:flex;align-items:center;gap:12px;text-decoration:none;color:inherit;font-size:1.2rem}.brand strong{font-weight:750}.monogram{background:#a50064;color:white;border-radius:12px;display:grid;place-items:center;width:44px;height:44px;font-size:1rem;font-weight:800}.connection{font-size:.875rem;color:#706b77;display:flex;align-items:center;gap:8px}.connection:before{content:"";width:7px;height:7px;background:#aaa;border-radius:50%}.connection.live:before{background:#208353}.connection.warning:before{background:#c08015}main{width:90%;max-width:1680px;margin:44px auto 36px;flex:1}.heading{display:flex;align-items:end;justify-content:space-between;gap:20px;margin-bottom:26px}.eyebrow{font-size:.75rem;letter-spacing:.14em;font-weight:750;color:#a50064;margin:0 0 10px}h1{font-size:clamp(1.8rem,3vw,2.5rem);letter-spacing:-.035em;margin:0;font-weight:750}.count{font-size:.875rem;color:#77717f;padding-bottom:6px;font-variant-numeric:tabular-nums}.gallery{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px}.photo{margin:0;background:#fff;border:1px solid #e7e4ec;border-radius:16px;overflow:hidden;min-width:0;animation:arrive .25s ease-out}.photo a{position:relative;display:flex;align-items:center;justify-content:center;aspect-ratio:3/4;background:#eeedf2;padding:10px}.photo img{width:100%;height:100%;object-fit:contain;display:block}.photo .new{position:absolute;top:16px;left:16px;background:#a50064;color:white;font-size:.75rem;font-weight:650;padding:6px 10px;border-radius:6px;box-shadow:0 2px 8px #0002}.photo figcaption{padding:18px;display:flex;gap:10px;align-items:center;justify-content:space-between;color:#69636f;font-size:.875rem}.photo time{font-variant-numeric:tabular-nums}.photo .number{color:#aba5b0;font-size:.75rem}.empty{border:1px dashed #d6cfde;border-radius:18px;text-align:center;min-height:380px;display:flex;flex-direction:column;align-items:center;justify-content:center;background:white;padding:28px}.empty[hidden]{display:none}.empty-mark{color:#a50064;background:#f9eaf3;width:60px;height:60px;display:grid;place-items:center;font-size:2.3rem;border-radius:18px}.empty h2{font-size:1.2rem;margin:22px 0 4px}.empty p{line-height:1.7;color:#77717f;max-width:340px}.notice{color:#82727b;font-size:.875rem;line-height:1.6;margin-top:20px}.notice:empty{display:none}footer{border-top:1px solid #e5e1e9;padding:23px 5%;display:flex;justify-content:space-between;gap:16px;color:#847e8b;font-size:.8rem;line-height:1.5}a:focus-visible{outline:3px solid #a50064;outline-offset:3px}@keyframes arrive{from{opacity:.6;transform:translateY(5px)}to{opacity:1;transform:translateY(0)}}@media(min-width:1500px){.photo a{aspect-ratio:1/1.2}}@media(max-width:850px){header{height:76px}.brand{font-size:1rem}.gallery{gap:14px}.photo figcaption{padding:13px;font-size:.8rem}.photo .number{display:none}.photo a{padding:6px}main{margin-top:30px}}@media(max-width:650px){header{padding:0 5%;gap:12px}.brand{gap:8px}.monogram{width:36px;height:36px;border-radius:10px;font-size:.875rem}.connection{font-size:.75rem}.gallery{grid-template-columns:1fr;gap:22px}.photo a{aspect-ratio:auto;min-height:220px}.photo img{max-height:72dvh;width:100%;height:auto;object-fit:contain}.photo figcaption{padding:16px;font-size:.875rem}.heading{margin-bottom:22px}.empty{min-height:350px}footer{flex-direction:column;gap:4px}.count{white-space:nowrap}}@media(prefers-reduced-motion:reduce){.photo{animation:none}}
/* Compact Telegram strip and live transaction report. */
header{height:74px}main{margin-top:28px}.heading{margin-bottom:18px}h1{font-size:1.75rem}.eyebrow{margin-bottom:7px}.photo a{aspect-ratio:auto;height:clamp(150px,18vw,260px);min-height:0}.photo img{height:100%;max-height:100%;width:100%;object-fit:contain}.photo figcaption{padding:12px 16px}.empty{min-height:200px}.transactions{margin-top:38px}.transaction-heading{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:18px}.transaction-heading h2{font-size:1.65rem;letter-spacing:-.025em;margin:0}.transaction-day{font-size:.875rem;color:#78717f;margin:9px 0 0}.transaction-connection{display:flex;align-items:flex-end;flex-direction:column;gap:7px}.transaction-status{font-size:.875rem;display:flex;align-items:center;gap:7px}.transaction-status:before{content:"";width:7px;height:7px;border-radius:50%;background:#aaa}.transaction-status.live{color:#267249}.transaction-status.live:before{background:#278b55}.transaction-status.warning{color:#91631b}.transaction-status.warning:before{background:#bd831f}#transaction-sync{font-size:.8125rem;color:#847b8b;font-variant-numeric:tabular-nums}.transaction-scroll{overflow:auto;max-height:650px;border:1px solid #e2dce7;background:#fff;border-radius:12px;scrollbar-width:thin}.transaction-scroll:focus-visible{outline:2px solid #a50064;outline-offset:3px}.transaction-table{width:100%;border-collapse:separate;border-spacing:0;min-width:780px;font-size:.9375rem;text-align:left}.transaction-table th{background:#f8f4f8;padding:17px 20px;position:sticky;top:0;z-index:1;font-size:.875rem;font-weight:650;color:#5d4b60;border-bottom:1px solid #e7dfe9;white-space:nowrap}.transaction-table td{padding:13px 20px;border-bottom:1px solid #eeebf1;line-height:1.45}.transaction-table tr:last-child td{border-bottom:0}.transaction-table tbody tr:hover{background:#fcf9fc}.transaction-time{font-variant-numeric:tabular-nums;white-space:nowrap}.transaction-time time{display:block;font-weight:600}.transaction-time span{display:block;font-size:.75rem;color:#938895;margin-top:2px}.transaction-id{color:#845075;font-variant-numeric:tabular-nums}.transaction-phone{font-variant-numeric:tabular-nums;white-space:nowrap}.transaction-amount{text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums}.transaction-table td.transaction-amount{font-weight:650}.status-badge{display:inline-block;border-radius:5px;padding:4px 9px;font-size:.8125rem;line-height:1.3;white-space:nowrap}.status-badge.success{background:#e8f5ec;color:#25804e}.status-badge.failed{background:#fdebf0;color:#b52d55}.status-badge.pending{background:#fff3d7;color:#976406}.status-badge.refund,.status-badge.unknown{background:#efedf8;color:#736099}.transaction-footnote{font-size:.8125rem;color:#8b8190;margin-top:13px}.transaction-warning{padding:10px 14px;background:#fff4db;color:#886019;border-radius:8px;font-size:.875rem;line-height:1.5}.transaction-warning:empty{display:none}.transaction-table .transactions-empty{text-align:center;color:#817486;padding:50px 20px}.transaction-new{animation:highlight 2s ease-out}@keyframes highlight{from{background:#fbe4f1}to{background:white}}@media(max-width:850px){.transaction-table td,.transaction-table th{padding:12px 15px}.transaction-heading h2{font-size:1.45rem}}@media(max-width:650px){.gallery{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.photo{border-radius:9px}.photo a{height:140px;padding:4px;min-height:0}.photo img{height:100%;max-height:100%}.photo figcaption{padding:9px 6px;font-size:.75rem;line-height:1.45}.photo .new{top:6px;left:6px;font-size:.75rem;padding:3px 5px}.transaction-heading{align-items:flex-start;gap:12px}.transaction-heading h2{font-size:1.3rem}.transaction-status{font-size:.8125rem}#transaction-sync{font-size:.75rem}.transaction-day{font-size:.8125rem}.transactions{margin-top:28px}.transaction-scroll{max-height:70dvh}.transaction-footnote{line-height:1.6}h1{font-size:1.5rem}}@media(prefers-reduced-motion:reduce){.transaction-new{animation:none}}
/* Two independent vertically stacked image/report pairs. */
#pairs{display:flex;flex-direction:column;gap:32px}.pair{background:#fff;border:1px solid #e6deea;border-radius:16px;overflow:hidden}.pair-heading{padding:17px 24px;border-bottom:1px solid #eee7f0;display:flex;justify-content:space-between;align-items:center;gap:16px}.pair-rank{color:#a50064;font-weight:700;font-size:.9375rem}.posted{color:#7b7181;font-size:.875rem;font-variant-numeric:tabular-nums}.pair .photo{border:0;border-radius:0;animation:none}.photo-frame{height:clamp(225px,27vw,390px);background:#f1eff4;display:flex;align-items:center;justify-content:center;padding:12px}.pair .photo a{height:100%;width:100%;padding:0;background:none;aspect-ratio:auto;min-height:0;display:flex;align-items:center;justify-content:center}.pair .photo img{width:auto;max-width:100%;height:100%;object-fit:contain}.image-status{color:#897b8b;font-size:.9375rem}.pair .transactions{padding:24px;margin:0}.pair .transaction-heading h2{font-size:1.4rem}.pair .transaction-scroll{max-height:430px}.transaction-sync{font-size:.8125rem;color:#847b8b}.empty p{max-width:540px}.pair .transaction-footnote{margin-bottom:0}@media(max-width:650px){.photo-frame{height:210px;padding:8px}.pair-heading{padding:14px 16px}.pair .transactions{padding:16px 12px}.pair .transaction-heading h2{font-size:1.15rem}.pair .transaction-heading{flex-wrap:wrap}.pair .transaction-connection{align-items:flex-start}.pair .transaction-scroll{max-height:400px}.posted{font-size:.8125rem}#pairs{gap:24px}}
/* Revenue from MoMo's statistics endpoint; another 50% increase in image height. */
.photo-frame{height:clamp(337.5px,40.5vw,585px)}.revenue{margin:24px 24px 0;border:1px solid #f1d9e8;border-radius:16px;padding:12px;background:#fff;box-shadow:0 4px 20px #a5006408}.revenue-title{margin:0;padding:15px 20px;background:#fbedf5;border-radius:9px;color:#8c0056;font-size:1.1rem;letter-spacing:.035em}.revenue-metrics{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(0,1fr);padding:26px 12px 20px}.revenue-metric{display:flex;flex-direction:column;align-items:center;gap:10px;min-width:0}.revenue-metric+.revenue-metric{border-left:1px solid #ebdfea}.revenue-label{font-size:1.1rem;color:#736375}.revenue-amount,.revenue-count{font-size:clamp(1.8rem,3.8vw,3.5rem);font-weight:800;line-height:1.15;color:#24202a;font-variant-numeric:tabular-nums;overflow-wrap:anywhere;text-align:center;padding:0 8px}.revenue-sync{margin:0;text-align:center;font-size:.85rem;padding:4px 8px 10px;color:#817186}.revenue-sync.live{color:#267249}.revenue-sync.warning{color:#91631b}@media(max-width:650px){.photo-frame{height:315px}.revenue{margin:16px 12px 0;padding:8px}.revenue-title{font-size:1rem;padding:12px}.revenue-metrics{padding:22px 0 16px;grid-template-columns:minmax(0,1.8fr) minmax(0,1fr)}.revenue-label{font-size:.9375rem}.revenue-amount,.revenue-count{font-size:clamp(1.35rem,5.2vw,2rem);padding:0 4px}.revenue-sync{font-size:.75rem}}
.pair-heading{flex-wrap:wrap}.pair-heading .posted{line-height:1.6;text-align:right}.pair-rank{white-space:nowrap}@media(max-width:650px){.pair-heading{gap:4px 12px}.pair-heading .posted{flex:1 1 220px}}
.photo-actions{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:12px 20px;padding:16px 20px;background:#fff;border-bottom:1px solid #eee7f0}.qr-download{display:inline-flex;align-items:center;justify-content:center;min-height:48px;padding:12px 26px;border-radius:10px;background:#a50064;color:#fff;text-decoration:none;font-size:1rem;font-weight:750;line-height:1.4;touch-action:manipulation}.qr-download:hover{background:#870052}.qr-download:active{background:#700044}.qr-download[aria-disabled="true"]{opacity:.45;pointer-events:none}.download-hint{font-size:.875rem;color:#7b7181}@media(max-width:650px){.photo-actions{padding:14px 16px;gap:9px}.qr-download{width:100%;min-height:50px}.download-hint{text-align:center;font-size:.8125rem}}
