@import "https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800&display=swap";
:root{--bg:#f5f5fa;--card-bg:#fff;--hero-bg:#1a1836;--hero-bg-deep:#14122a;--purple:#6c5ce7;--purple-deep:#4834d4;--purple-soft:#edebfb;--ink:#1a1a2e;--text-muted:#8b8aa3;--hero-label:#a9a2e8;--hero-text-muted:#7b78a8;--line:#ededf3;--green:#16a34a;--rust:#dc2626}*{box-sizing:border-box}html,body{background:var(--bg);color:var(--ink);margin:0;padding:0;font-family:Inter,sans-serif}h1,h2,h3{letter-spacing:-.01em;margin:0 0 .4em;font-family:Inter,sans-serif;font-weight:700}.mono{font-variant-numeric:tabular-nums}a{color:inherit}.shell{max-width:480px;min-height:100vh;margin:0 auto;padding:0 20px 120px;position:relative}.topbar{padding:max(20px, env(safe-area-inset-top) + 14px) 0 18px 0;justify-content:space-between;align-items:center;display:flex}.topbar .brand{align-items:center;gap:10px;text-decoration:none;display:flex}.topbar .brand-icon-img{border-radius:9px;flex-shrink:0;display:block}.topbar .brand-name{color:var(--ink);font-size:18px;font-weight:800}.bottom-nav{background:var(--card-bg);border-top:1px solid var(--line);padding:8px 12px max(26px, env(safe-area-inset-bottom) + 14px) 12px;z-index:1000;justify-content:space-around;display:flex;position:fixed;bottom:0;left:0;right:0}.bottom-nav a{color:var(--text-muted);border-radius:12px;flex-direction:column;align-items:center;gap:3px;padding:6px 14px;font-size:11px;font-weight:600;text-decoration:none;display:flex}.bottom-nav a.active{color:var(--purple);background:var(--purple-soft)}.page-subtitle{color:var(--text-muted);margin:6px 0 28px;font-size:14px}.hero-card{background:var(--hero-bg);background:linear-gradient(160deg, var(--hero-bg), var(--hero-bg-deep));color:#fff;border-radius:20px;margin-bottom:24px;padding:22px 22px 18px}.hero-label{letter-spacing:.06em;color:var(--hero-label);margin-bottom:8px;font-size:11px;font-weight:700}.hero-value{letter-spacing:-.02em;font-size:38px;font-weight:800;line-height:1}.hero-caption{color:var(--hero-text-muted);margin-top:8px;font-size:12px}.hero-divider{border-top:1px solid #ffffff1f;margin:16px 0}.hero-stats{gap:28px;display:flex}.hero-stat{align-items:center;gap:8px;display:flex}.hero-stat-icon{background:#ffffff1a;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:30px;height:30px;display:flex}.hero-stat-label{color:var(--hero-text-muted);font-size:11px}.hero-stat-value{font-size:15px;font-weight:700}.section-header{justify-content:space-between;align-items:baseline;margin-bottom:12px;display:flex}.section-header h2{margin:0;font-size:17px}.section-header .count{color:var(--text-muted);font-size:13px}.card-row{background:var(--card-bg);border-radius:16px;align-items:center;gap:12px;margin-bottom:10px;padding:14px 16px;display:flex;box-shadow:0 1px 2px #1412320a}.card-row-avatar{color:#fff;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:40px;height:40px;font-size:13px;font-weight:700;display:flex}.card-row-body{flex:1;min-width:0}.card-row-name{margin-bottom:2px;font-size:14px;font-weight:700}.card-row-sub{color:var(--text-muted);font-size:12px}.card-row-right{text-align:right;flex-shrink:0}.card-row-amount{font-size:15px;font-weight:700}.card-row-note{color:var(--text-muted);font-size:11px}.card-row-chevron{color:var(--text-muted);flex-shrink:0}.panel{background:var(--card-bg);border-radius:16px;margin-bottom:20px;padding:20px;box-shadow:0 1px 2px #1412320a}.field-row{flex-direction:column;gap:6px;margin-bottom:16px;display:flex}.field-row label{color:var(--text-muted);font-size:13px;font-weight:500}input,select{border:1px solid var(--line);background:var(--bg);color:var(--ink);border-radius:10px;padding:11px 13px;font-family:Inter,sans-serif;font-size:15px}input:focus,select:focus,button:focus{outline:2px solid var(--purple);outline-offset:1px}button{background:var(--purple);color:#fff;cursor:pointer;border:none;border-radius:12px;width:fit-content;padding:12px 20px;font-family:Inter,sans-serif;font-size:14px;font-weight:600}button:hover{background:var(--purple-deep)}button.secondary{background:var(--purple-soft);color:var(--purple-deep);border:none}.two-col-row{gap:16px;display:flex}.empty-state{color:var(--text-muted);padding:24px 0;font-size:14px}.hint{color:var(--text-muted);margin-top:4px;font-size:12px}.footer-note{color:var(--text-muted);text-align:center;margin-top:24px;font-size:12px;line-height:1.5}.ledger{border-top:1px solid var(--line)}.ledger-row{border-bottom:1px solid var(--line);grid-template-columns:1.6fr .8fr .8fr .8fr;align-items:center;gap:12px;padding:14px 4px;display:grid}.ledger-row.head{color:var(--text-muted);border-bottom:1px solid var(--ink);font-size:12px}.card-name{font-weight:600}.card-issuer{color:var(--text-muted);font-size:13px}.num{font-variant-numeric:tabular-nums;text-align:right}.num.points{color:var(--purple-deep)}.num.cash{color:var(--green)}.reward-bubble-wrapper{background:0 0!important;border:none!important}.reward-bubble{color:#fff;border:2px solid var(--card-bg);border-radius:50%;justify-content:center;align-items:center;width:34px;height:34px;font-size:11px;font-weight:700;display:flex;box-shadow:0 1px 4px #00000059}@media (max-width:640px){.two-col-row{flex-direction:column;gap:0}}
