:root{--primary: #8849f9;--on-primary: #ffffff;--primary-ink: #8849f9;--font-fallback: "Roboto", system-ui, -apple-system, "Segoe UI", sans-serif;--font-family: var(--font-fallback);--primary-strong: color-mix(in srgb, var(--primary) 78%, black);--primary-soft: color-mix(in srgb, var(--primary) 10%, white);--bg: #f4f3f8;--surface: #ffffff;--text: #1f1f29;--text-muted: #6b6b7b;--border: #e7e6ee;--radius-lg: 20px;--radius-md: 12px;--shadow: 0 1px 2px rgba(20, 16, 40, .04), 0 8px 24px rgba(20, 16, 40, .08);--earned: #17803d;--earned-bg: #e7f6ec;--used: #5b3fd6;--used-bg: #efebfd;--expired: #a15c07;--expired-bg: #fdf1df;--reversed: #b42318;--reversed-bg: #fdecea;--returned: #1d64c4;--returned-bg: #e8f0fc;--adjusted: #545463;--adjusted-bg: #efeff3;--canceled: #8a8a99;--canceled-bg: #f1f1f4;color-scheme:light;font-family:var(--font-family);line-height:1.5;font-weight:400;color:var(--text);background-color:var(--bg);font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*,*:before,*:after{box-sizing:border-box}body{margin:0;min-width:320px;min-height:100vh;background-color:var(--bg)}h1,h2,h3,p,ul{margin:0}ul{padding:0;list-style:none}button,input{font:inherit}.page{position:relative;min-height:100vh;display:flex;flex-direction:column;align-items:center;padding:40px 16px 32px}.page:before{content:"";position:absolute;inset:0 0 auto;height:260px;background:linear-gradient(160deg,var(--primary) 0%,var(--primary-strong) 100%);z-index:0}.content{position:relative;z-index:1;width:100%;max-width:560px;display:flex;flex-direction:column;gap:16px}.card{background:var(--surface);border-radius:var(--radius-lg);box-shadow:var(--shadow);padding:28px 24px}.brand{display:flex;flex-direction:column;align-items:center;text-align:center;gap:8px;margin-bottom:24px}.brand-logo{max-height:56px;max-width:200px;object-fit:contain;margin-bottom:8px}.brand-icon{width:56px;height:56px;border-radius:16px;display:grid;place-items:center;background:var(--primary-soft);color:var(--primary-ink);margin-bottom:8px;overflow:hidden}.brand-icon img{width:100%;height:100%;object-fit:cover}.brand-program{font-size:.8rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--primary-ink)}.brand h1{font-size:1.5rem;line-height:1.25;font-weight:700;color:var(--text)}.search-form{display:flex;flex-direction:column;gap:8px}.search-form label{font-size:.875rem;font-weight:500;color:var(--text-muted)}.input-wrapper{position:relative;display:flex;align-items:center;color:var(--text-muted)}.input-wrapper svg{position:absolute;left:14px;pointer-events:none}.input-wrapper input{width:100%;padding:14px 14px 14px 44px;border:1.5px solid var(--border);border-radius:var(--radius-md);font-size:1rem;color:var(--text);background:var(--surface);transition:border-color .2s ease,box-shadow .2s ease}.input-wrapper input::placeholder{color:#a3a3b2}.input-wrapper input:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 4px color-mix(in srgb,var(--primary) 18%,transparent)}.search-form button{margin-top:8px;display:inline-flex;align-items:center;justify-content:center;gap:10px;padding:14px 24px;border:none;border-radius:var(--radius-md);background:var(--primary);color:var(--on-primary);font-size:1rem;font-weight:700;cursor:pointer;transition:background-color .2s ease,transform .1s ease}.search-form button:hover:not(:disabled){background:var(--primary-strong)}.search-form button:active:not(:disabled){transform:translateY(1px)}.search-form button:focus-visible{outline:3px solid color-mix(in srgb,var(--primary) 40%,transparent);outline-offset:2px}.search-form button:disabled{background:#d9d8e2;color:#8a8a99;cursor:not-allowed}.spinner{width:16px;height:16px;border:2px solid currentColor;border-right-color:transparent;border-radius:50%;animation:spin .7s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.alert{margin-top:8px;padding:12px 14px;border-radius:var(--radius-md);background:var(--reversed-bg);color:var(--reversed);font-size:.9rem;font-weight:500}.balance-card{background:linear-gradient(135deg,var(--primary) 0%,var(--primary-strong) 100%);color:var(--on-primary);text-align:center}.balance-greeting{font-size:1rem;font-weight:500;margin-bottom:12px}.balance-label{font-size:.8rem;font-weight:500;letter-spacing:.06em;text-transform:uppercase;opacity:.85}.balance-value{font-size:2.5rem;line-height:1.15;font-weight:700;letter-spacing:-.02em;margin-top:4px;overflow-wrap:anywhere}.balance-points{display:inline-block;margin-top:10px;padding:4px 12px;border-radius:999px;background:color-mix(in srgb,var(--on-primary) 16%,transparent);font-size:.85rem;font-weight:500}.balance-expiring{margin-top:20px;padding:12px 16px;border-radius:var(--radius-md);background:color-mix(in srgb,var(--on-primary) 12%,transparent);text-align:left;font-size:.9rem}.balance-expiring-title{display:flex;align-items:center;gap:6px;font-weight:700;margin-bottom:4px}.balance-expiring li{padding-left:22px}.history-title{font-size:1.15rem;font-weight:700;margin-bottom:16px}.filters{display:flex;gap:8px;overflow-x:auto;padding-bottom:4px;margin:0 -24px 8px;padding-inline:24px;scrollbar-width:none}.filters::-webkit-scrollbar{display:none}.filter-chip{flex-shrink:0;padding:6px 14px;border-radius:999px;border:1.5px solid var(--border);background:var(--surface);color:var(--text-muted);font-size:.85rem;font-weight:500;cursor:pointer;transition:all .15s ease}.filter-chip:hover{border-color:var(--primary);color:var(--primary-ink)}.filter-chip[aria-pressed=true]{background:var(--primary);border-color:var(--primary);color:var(--on-primary)}.filter-chip:focus-visible{outline:3px solid color-mix(in srgb,var(--primary) 40%,transparent);outline-offset:2px}.history-month{font-size:.75rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--text-muted);margin:20px 0 4px}.entries>li+li{border-top:1px solid var(--border)}.entry{--kind-color: var(--earned);--kind-bg: var(--earned-bg);display:flex;gap:12px;padding:14px 0}.entry--used{--kind-color: var(--used);--kind-bg: var(--used-bg)}.entry--expired{--kind-color: var(--expired);--kind-bg: var(--expired-bg)}.entry--reversed{--kind-color: var(--reversed);--kind-bg: var(--reversed-bg)}.entry--returned{--kind-color: var(--returned);--kind-bg: var(--returned-bg)}.entry--adjusted{--kind-color: var(--adjusted);--kind-bg: var(--adjusted-bg)}.entry--canceled{--kind-color: var(--canceled);--kind-bg: var(--canceled-bg)}.entry--canceled .entry-title,.entry--canceled .entry-amount{color:var(--text-muted)}.entry--canceled .entry-amount,.entry--canceled .entry-points{text-decoration:line-through}.entry-icon{flex-shrink:0;width:40px;height:40px;border-radius:12px;display:grid;place-items:center;background:var(--kind-bg);color:var(--kind-color)}.entry-body{flex:1;min-width:0;display:flex;flex-direction:column;gap:4px}.entry-row{display:flex;justify-content:space-between;align-items:baseline;gap:12px}.entry-title{font-weight:500;font-size:.95rem;line-height:1.35;overflow-wrap:anywhere}.entry-amount{flex-shrink:0;font-weight:700;font-size:.95rem;white-space:nowrap;color:var(--text)}.entry-amount--credit{color:var(--earned)}.entry-row--meta{align-items:center;font-size:.8rem;color:var(--text-muted)}.entry-meta{display:inline-flex;align-items:center;flex-wrap:wrap;gap:8px}.entry-badge{padding:2px 8px;border-radius:6px;background:var(--kind-bg);color:var(--kind-color);font-size:.72rem;font-weight:700;letter-spacing:.02em;text-transform:uppercase}.entry-points{flex-shrink:0;white-space:nowrap}.entry-details{display:flex;flex-wrap:wrap;gap:4px 14px;margin-top:2px;font-size:.8rem;color:var(--text-muted)}.entry-details li{display:inline-flex;align-items:center;gap:5px;overflow-wrap:anywhere}.entry-details svg{flex-shrink:0}.entry-hint{font-size:.8rem;color:var(--text-muted);font-style:italic}.empty{padding:24px 0 8px;text-align:center;color:var(--text-muted)}.footer{position:relative;z-index:1;margin-top:24px}.footer a{display:inline-flex;align-items:center;gap:6px;color:var(--primary-ink);font-weight:500;text-decoration:none}.footer a:hover{text-decoration:underline}@media (max-width: 480px){.page{padding-top:24px}.card{padding:24px 18px}.filters{margin-inline:-18px;padding-inline:18px}.balance-value{font-size:2.1rem}}
