:root{--bg:#fff;--surface:#fff;--surface-2:#f5f5f7;--surface-3:#ececee;--text:#0a0a0c;--text-dim:#6b6b73;--text-faint:#9a9aa2;--border:#e6e6ea;--accent:#0a0a0c;--accent-fg:#fff;--money:#12a150;--money-bg:#e7f7ee;--bubble-me:#0a0a0c;--bubble-me-fg:#fff;--bubble-them:#f0f0f2;--bubble-them-fg:#0a0a0c;--danger:#e5484d;--radius:14px;--radius-lg:20px;--shadow-lg:0 20px 60px -10px #0000002e, 0 4px 12px -2px #00000014;--safe-top:env(safe-area-inset-top,0px);--safe-bottom:env(safe-area-inset-bottom,0px);color:var(--text);background:var(--bg);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizelegibility;-webkit-tap-highlight-color:transparent;font-family:-apple-system,BlinkMacSystemFont,Inter,Segoe UI,Roboto,sans-serif;font-size:16px;line-height:1.4}@media (prefers-color-scheme:dark){:root{--bg:#0b0b0e;--surface:#141418;--surface-2:#1c1c21;--surface-3:#26262c;--text:#f5f5f7;--text-dim:#a1a1a8;--text-faint:#6e6e76;--border:#26262c;--accent:#fff;--accent-fg:#0a0a0c;--money:#30d97e;--money-bg:#30d97e1f;--bubble-me:#fff;--bubble-me-fg:#0a0a0c;--bubble-them:#1f1f25;--bubble-them-fg:#f5f5f7}}*{box-sizing:border-box}html,body{height:100%}body{background:var(--bg);overscroll-behavior-y:none;margin:0}#root{justify-content:center;min-height:100svh;display:flex}button{font:inherit;color:inherit;cursor:pointer;-webkit-tap-highlight-color:transparent;background:0 0;border:0;padding:0}input,textarea{font:inherit;color:inherit;appearance:none;background:0 0;border:0;outline:0;padding:0}textarea{resize:none}h1,h2,h3,p{margin:0}.app{background:var(--bg);border-inline:1px solid var(--border);flex-direction:column;width:100%;max-width:480px;min-height:100svh;display:flex;position:relative}@media (width<=520px){.app{border-inline:0}}.topbar{z-index:5;padding:calc(var(--safe-top) + 10px) 16px 10px;background:color-mix(in srgb, var(--bg) 88%, transparent);-webkit-backdrop-filter:saturate(160%)blur(14px);border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;gap:12px;display:flex;position:sticky;top:0}.topbar .brand{letter-spacing:-.02em;font-size:18px;font-weight:700}.topbar .title{font-size:15px;font-weight:600}.topbar .sub{color:var(--text-dim);margin-top:1px;font-size:12px}.iconbtn{width:36px;height:36px;color:var(--text);border-radius:10px;justify-content:center;align-items:center;display:inline-flex}.iconbtn:active{background:var(--surface-2)}.shimmer{background:linear-gradient(90deg, var(--surface-2) 25%, var(--surface-3,#ffffff1f) 50%, var(--surface-2) 75%);background-size:200% 100%;animation:1.4s ease-in-out infinite shimmerSlide}@keyframes shimmerSlide{0%{background-position:200% 0}to{background-position:-200% 0}}.profile{flex-direction:column;gap:16px;padding:20px 20px 24px;display:flex}.avatar{color:#fff;letter-spacing:-.02em;background:linear-gradient(135deg,#ffb38a 0%,#ff6fa3 50%,#8a5bff 100%);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:88px;height:88px;font-size:34px;font-weight:600;display:flex;box-shadow:0 8px 24px -10px #8a5bff99}.profile .row{align-items:center;gap:16px;display:flex}.profile h1{letter-spacing:-.01em;font-size:22px;font-weight:600}.profile .handle{color:var(--text-dim);margin-top:2px;font-size:14px}.profile .bio{color:var(--text);font-size:15px;line-height:1.5}.stats{grid-template-columns:1fr 1fr;gap:10px;display:grid}.stat{background:var(--surface-2);border-radius:var(--radius);padding:12px 14px}.stat .label{color:var(--text-dim);text-transform:uppercase;letter-spacing:.04em;font-size:12px}.stat .value{letter-spacing:-.01em;margin-top:2px;font-size:18px;font-weight:600}.cta{background:var(--accent);width:100%;color:var(--accent-fg);border-radius:14px;justify-content:center;align-items:center;gap:8px;padding:15px 16px;font-size:16px;font-weight:600;transition:transform 80ms,opacity .2s;display:inline-flex}.cta:active{transform:scale(.985)}.cta:disabled{opacity:.5}.secondary{background:var(--surface-2);width:100%;color:var(--text);border-radius:12px;padding:13px 16px;font-size:15px;font-weight:500}.section-title{color:var(--text-dim);text-transform:uppercase;letter-spacing:.06em;margin:8px 0 10px;padding:0 20px;font-size:13px;font-weight:600}.recent{flex-direction:column;gap:10px;padding:0 20px 24px;display:flex}.recent-item{border:1px solid var(--border);border-radius:12px;align-items:center;gap:12px;padding:12px;display:flex}.recent-item .dot{color:#fff;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:36px;height:36px;font-size:13px;font-weight:600;display:flex}.recent-item .txt{flex:1;min-width:0}.recent-item .name{white-space:nowrap;text-overflow:ellipsis;font-size:14px;font-weight:500;overflow:hidden}.recent-item .meta{color:var(--text-dim);margin-top:1px;font-size:12px}.recent-item .amount{color:var(--money);background:var(--money-bg);border-radius:999px;padding:3px 8px;font-size:13px;font-weight:600}.sheet-backdrop{-webkit-backdrop-filter:blur(4px);z-index:50;background:#0009;animation:.18s fadeIn;position:fixed;inset:0}.sheet.sheet-centered{z-index:51;background:var(--bg);width:calc(100% - 32px);max-width:380px;padding:22px 22px calc(20px + env(safe-area-inset-bottom,0px));border-radius:18px;max-height:90dvh;animation:.18s cubic-bezier(.22,1,.36,1) centerPop;position:fixed;top:50%;bottom:auto;left:50%;overflow-y:auto;transform:translate(-50%,-50%);box-shadow:0 24px 60px #00000047}@keyframes centerPop{0%{opacity:0;transform:translate(-50%,-48%)scale(.96)}to{opacity:1;transform:translate(-50%,-50%)scale(1)}}.sheet.sheet-full{z-index:51;background:var(--bg);width:100%;max-width:480px;height:100%;max-height:100dvh;box-shadow:none;padding:calc(18px + var(--safe-top,0px)) 20px calc(20px + var(--safe-bottom));border-radius:0;animation:.22s cubic-bezier(.22,1,.36,1) fadeIn;position:fixed;inset:0 0 0 50%;overflow-y:auto;transform:translate(-50%)}.sheet{z-index:51;background:var(--bg);width:100%;max-width:480px;padding:10px 20px calc(20px + var(--safe-bottom));border-top-left-radius:22px;border-top-right-radius:22px;max-height:90svh;animation:.22s cubic-bezier(.22,1,.36,1) slideUp;position:fixed;bottom:0;left:50%;overflow-y:auto;transform:translate(-50%);box-shadow:0 -14px 32px #00000038}.sheet .grip{background:var(--surface-3);border-radius:99px;width:40px;height:4px;margin:6px auto 14px}.sheet h2{letter-spacing:-.01em;margin-bottom:4px;font-size:19px;font-weight:600}.sheet p.desc{color:var(--text-dim);margin-bottom:18px;font-size:14px}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{transform:translate(-50%,100%)}to{transform:translate(-50%)}}.phone-input{background:var(--surface-2);letter-spacing:.02em;border:1.5px solid #0000;border-radius:12px;width:100%;padding:14px 16px;font-size:17px;transition:border-color .15s}.phone-input:focus{border-color:var(--accent)}.code-row{justify-content:center;gap:10px;margin:6px 0 18px;display:flex}.code-cell{background:var(--surface-2);border:1.5px solid #0000;border-radius:12px;flex:1;justify-content:center;align-items:center;max-width:52px;min-height:58px;font-size:24px;font-weight:600;transition:border-color .15s,background .15s,box-shadow .15s;display:flex}.code-cell.is-active{border-color:var(--accent,#6f8cff);box-shadow:0 0 0 3px color-mix(in srgb, var(--accent,#6f8cff) 18%, transparent)}.auth-cancel{width:100%;color:var(--text-dim);cursor:pointer;background:0 0;border:none;margin-top:6px;padding:10px;font-size:14px;font-weight:500;display:block}.auth-cancel:hover{color:var(--text)}.code-caret{background:var(--accent,#6f8cff);border-radius:1px;width:2px;height:26px;animation:1s steps(2,jump-none) infinite codeCaretBlink;display:inline-block}@keyframes codeCaretBlink{50%{opacity:0}}.hint{color:var(--text-faint);text-align:center;margin-top:8px;font-size:12px}.formgrid{flex-direction:column;gap:12px;display:flex}.mode-list{flex-direction:column;gap:10px;display:flex}.mode-card{border:1.5px solid var(--border);text-align:left;border-radius:14px;align-items:flex-start;gap:14px;padding:14px;transition:border-color .15s,background .15s;display:flex}.mode-card:active{background:var(--surface-2)}.mode-card.selected{border-color:var(--accent);background:color-mix(in srgb, var(--accent) 4%, transparent)}.mode-card .ic{background:var(--surface-2);border-radius:10px;flex-shrink:0;justify-content:center;align-items:center;width:38px;height:38px;display:flex}.mode-card .ttl{font-size:15px;font-weight:600}.mode-card .sub{color:var(--text-dim);margin-top:2px;font-size:13px;line-height:1.35}.chat-pick-list{flex-direction:column;gap:8px;margin-top:2px;display:flex}.chat-pick-item{background:var(--surface-2);text-align:left;border-radius:12px;align-items:center;gap:12px;padding:12px;display:flex}.chat-pick-item:active{background:var(--surface-3)}.chat-pick-item .pill{background:var(--surface-3);width:36px;height:36px;color:var(--text-dim);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-size:14px;font-weight:600;display:flex}.chat-pick-item .body{flex:1;min-width:0}.chat-pick-item .alias{font-size:14px;font-weight:600}.chat-pick-item .last{color:var(--text-dim);white-space:nowrap;text-overflow:ellipsis;font-size:13px;overflow:hidden}.chat-screen{background:var(--bg);z-index:20;flex-direction:column;max-width:480px;margin:0 auto;animation:.22s cubic-bezier(.22,1,.36,1) slideInRight;display:flex;position:fixed;inset:0}@keyframes slideInRight{0%{transform:translate(100%)}to{transform:translate(0)}}.messages{-webkit-overflow-scrolling:touch;flex-direction:column;flex:1;gap:6px;padding:16px 14px 10px;display:flex;overflow-y:auto}.msg{word-wrap:break-word;white-space:pre-wrap;border-radius:18px;max-width:78%;padding:10px 14px;font-size:15px;line-height:1.35}.msg.me{background:var(--bubble-me);color:var(--bubble-me-fg);border-bottom-right-radius:6px;align-self:flex-end}.msg.them{background:var(--bubble-them);color:var(--bubble-them-fg);border-bottom-left-radius:6px;align-self:flex-start}.msg+.msg.me,.msg+.msg.them{margin-top:2px}.offer-chip{background:var(--money-bg);color:var(--money);border-radius:999px;align-self:flex-end;align-items:center;gap:6px;margin-top:4px;padding:5px 10px 5px 8px;font-size:13px;font-weight:600;display:inline-flex}.divider{text-align:center;color:var(--text-faint);text-transform:uppercase;letter-spacing:.08em;margin:14px 0 6px;font-size:11px}.composer{padding:10px 12px calc(10px + var(--safe-bottom));background:color-mix(in srgb, var(--bg) 92%, transparent);-webkit-backdrop-filter:saturate(160%)blur(14px);border-top:1px solid var(--border);align-items:flex-end;gap:8px;display:flex;position:sticky;bottom:0}.composer textarea{background:var(--surface-2);border-radius:20px;flex:1;min-height:40px;max-height:120px;padding:10px 14px;font-size:16px;line-height:1.35}.send{background:var(--accent);width:40px;height:40px;color:var(--accent-fg);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;transition:transform 80ms,opacity .2s;display:inline-flex}.send:disabled{opacity:.35}.send:active:not(:disabled){transform:scale(.94)}.offer-amount{text-align:center;letter-spacing:-.03em;margin:10px 0 6px;font-size:48px;font-weight:600}.offer-amount .cursor{background:var(--accent);vertical-align:-6px;width:2px;height:38px;margin-left:2px;animation:1s step-end infinite blink;display:inline-block}@keyframes blink{50%{opacity:0}}.offer-preview{background:var(--surface-2);color:var(--text-dim);border-radius:12px;max-height:84px;margin-bottom:16px;padding:12px 14px;font-size:14px;line-height:1.4;position:relative;overflow:hidden}.offer-preview:after{content:"";background:linear-gradient(to bottom, transparent, var(--surface-2));pointer-events:none;height:26px;position:absolute;bottom:0;left:0;right:0}.quick-amounts{flex-wrap:wrap;justify-content:center;gap:8px;margin-bottom:14px;display:flex}.quick-amounts button{background:var(--surface-2);border-radius:999px;padding:8px 14px;font-size:14px;font-weight:500}.quick-amounts button.active{background:var(--accent);color:var(--accent-fg)}.keypad{grid-template-columns:repeat(3,1fr);gap:6px;margin-bottom:16px;display:grid}.keypad button{background:0 0;border-radius:12px;padding:14px 0;font-size:22px;font-weight:500;transition:background .12s}.keypad button:active{background:var(--surface-2)}.below-min{text-align:center;color:var(--danger);margin-bottom:10px;font-size:13px}.link-bar{color:var(--text-faint);align-items:center;gap:8px;padding:8px 20px 0;font-size:12px;display:flex}.link-bar .dot{background:#30d97e;border-radius:50%;width:6px;height:6px;box-shadow:0 0 0 3px #30d97e33}.menu-wrap{position:relative}.menu-trigger{background:var(--surface-2);color:var(--text);border-radius:999px;align-items:center;gap:6px;min-height:36px;padding:4px 8px 4px 6px;transition:background .15s;display:inline-flex}.menu-trigger:active{background:var(--surface-3)}.menu-avatar{color:#fff;letter-spacing:0;background:linear-gradient(135deg,#ffb38a 0%,#ff6fa3 50%,#8a5bff 100%);border-radius:50%;justify-content:center;align-items:center;width:26px;height:26px;font-size:11px;font-weight:600;display:inline-flex}.menu-caret{color:var(--text-dim);margin-right:2px;display:inline-flex}.menu-scrim{z-index:30;position:fixed;inset:0}.menu{z-index:31;background:var(--surface);border:1px solid var(--border);min-width:200px;box-shadow:var(--shadow-lg);transform-origin:100% 0;border-radius:12px;padding:6px;animation:.14s menuIn;position:absolute;top:calc(100% + 6px);right:0}@keyframes menuIn{0%{opacity:0;transform:scale(.97)}to{opacity:1;transform:scale(1)}}.menu-item{width:100%;color:var(--text);text-align:left;border-radius:8px;align-items:center;gap:10px;padding:10px 12px;font-size:14px;font-weight:500;display:flex}.menu-item:active{background:var(--surface-2)}.menu-item.danger{color:var(--danger)}.menu-sep{background:var(--border);height:1px;margin:4px}.field{flex-direction:column;gap:6px;display:flex}.field-label{color:var(--text-dim);text-transform:uppercase;letter-spacing:.06em;padding-left:2px;font-size:12px;font-weight:600}.field-input{background:var(--surface-2);border:1.5px solid #0000;border-radius:12px;align-items:center;gap:4px;padding:12px 14px;transition:border-color .15s;display:flex}.field-input:focus-within{border-color:var(--accent)}.field-input input,.field-input textarea{color:var(--text);background:0 0;border:0;outline:0;flex:1;width:100%;font-size:16px}.field-input textarea{resize:none;min-height:60px;line-height:1.4}.field-prefix{color:var(--text-dim);font-size:16px;font-weight:500}.field-textarea{align-items:flex-start}.credit-mark{color:var(--money);vertical-align:-2px;flex-shrink:0;margin-right:3px}.balance-bar{color:var(--text-dim);border-top:1px solid var(--border);background:var(--bg);justify-content:space-between;align-items:center;gap:10px;padding:8px 14px;font-size:12px;display:flex}.balance-pill{background:var(--money-bg);color:var(--money);border-radius:999px;align-items:center;gap:4px;padding:4px 10px;font-size:13px;font-weight:600;display:inline-flex}.balance-pill .balance-label{color:var(--money);opacity:.85;margin-left:2px;font-weight:500}.balance-meta{text-align:right;text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.offer-amount{justify-content:center;align-items:center;gap:4px;display:flex}.offer-amount .credit-mark{color:var(--money);margin-right:0}.offer-sub{text-align:center;color:var(--text-dim);margin-bottom:14px;font-size:13px}.offer-sub strong{color:var(--text)}.offer-sub .short{color:var(--danger)}.quick-amounts button{align-items:center;gap:2px;display:inline-flex}.balance-row{background:var(--surface-2);border-radius:12px;justify-content:space-between;align-items:center;margin-bottom:14px;padding:12px 14px;display:flex}.balance-row .balance-label{color:var(--text-dim);font-size:13px}.balance-row .balance-value{align-items:center;font-size:18px;font-weight:600;display:inline-flex}.topup-status{text-align:center;color:var(--text-dim);min-height:20px;margin-bottom:14px;font-size:13px}.topup-status .status{align-items:center;gap:2px;display:inline-flex}.topup-status .status.ok{color:var(--money);font-weight:500}.topup-status .status.warn{color:var(--danger)}.pack-list{flex-direction:column;gap:8px;margin-bottom:14px;display:flex}.pack{border:1.5px solid var(--border);text-align:left;background:0 0;border-radius:14px;justify-content:space-between;align-items:center;padding:14px;transition:border-color .15s,background .15s;display:flex}.pack:active{background:var(--surface-2)}.pack.selected{border-color:var(--accent);background:color-mix(in srgb, var(--accent) 4%, transparent)}.pack-main{flex-direction:column;gap:4px;display:flex}.pack-credits{color:var(--text);align-items:center;font-size:18px;font-weight:600;display:inline-flex}.pack-label{color:var(--text-dim);align-items:center;gap:6px;font-size:13px;display:inline-flex}.badge{letter-spacing:.04em;text-transform:uppercase;background:var(--surface-2);color:var(--text-dim);border-radius:999px;padding:2px 6px;font-size:10px;font-weight:600;display:inline-block}.badge.ok{background:var(--money-bg);color:var(--money)}.pack-price{color:var(--text);font-size:16px;font-weight:600}.pay-mock{background:var(--surface-2);border-radius:12px;margin-bottom:14px;padding:12px 14px}.pay-row{color:var(--text-dim);justify-content:space-between;align-items:center;font-size:14px;display:flex}.pay-card{color:var(--text);font-weight:500}.credits-card{background:var(--money-bg);border-radius:14px;justify-content:space-between;align-items:center;gap:12px;padding:14px 16px;display:flex}.credits-card-left{flex-direction:column;gap:2px;min-width:0;display:flex}.credits-label{text-transform:uppercase;letter-spacing:.06em;color:var(--money);font-size:12px;font-weight:600}.credits-value{color:var(--text);letter-spacing:-.02em;align-items:center;font-size:26px;font-weight:600;display:inline-flex}.credits-value .credit-mark{color:var(--money)}.credits-meta{color:var(--text-dim);font-size:12px}.credits-btn{background:var(--accent);color:var(--accent-fg);border-radius:999px;flex-shrink:0;padding:10px 16px;font-size:14px;font-weight:600}.credits-btn:active{transform:scale(.96)}.trigger-credits{background:var(--money-bg);color:var(--money);border-radius:999px;align-items:center;gap:2px;padding:3px 8px 3px 6px;font-size:12px;font-weight:600;display:inline-flex}.menu-balance{color:var(--text-dim);text-transform:uppercase;letter-spacing:.06em;justify-content:space-between;align-items:center;padding:8px 12px;font-size:12px;font-weight:600;display:flex}.menu-balance-value{color:var(--text);text-transform:none;letter-spacing:0;align-items:center;font-size:14px;display:inline-flex}.toast{left:50%;bottom:calc(24px + var(--safe-bottom));background:var(--text);color:var(--bg);z-index:100;box-shadow:var(--shadow-lg);border-radius:999px;padding:10px 16px;font-size:14px;font-weight:500;animation:.18s fadeIn;position:fixed;transform:translate(-50%)}
