:root{--purple:#6521e6;--purple2:#4b16cd;--ink:#1b172a;--muted:#77728e;--danger:#d51d31;--stable-vh:1vh}
*{box-sizing:border-box}
html,body{margin:0;width:100%;height:100%;overflow:hidden}
body{background:#f4f0fc;font-family:-apple-system,BlinkMacSystemFont,"PingFang SC","Microsoft YaHei","Segoe UI",sans-serif;color:var(--ink);-webkit-tap-highlight-color:transparent;-webkit-text-size-adjust:100%}
button,input{font:inherit}button{cursor:pointer}
.app-shell{width:100%;max-width:560px;height:var(--app-height,100svh);min-height:520px;margin:0 auto;background:linear-gradient(155deg,#f8f5ff,#f0eaff);overflow:hidden;box-shadow:0 0 36px #32137e1a}
main{height:100%;padding:max(10px,env(safe-area-inset-top)) 12px max(10px,env(safe-area-inset-bottom));display:grid;grid-template-rows:auto auto auto auto minmax(0,1fr);gap:clamp(7px,1.2svh,12px);overflow:hidden}
.keyboard-pan main{transform:translate3d(0,calc(0px - var(--keyboard-pan,0px)),0);transition:transform .18s ease-out}
.account-card,.step-card,.mode{background:rgba(255,255,255,.97);box-shadow:0 7px 20px #4c229416;border:1px solid #ebe5f5}
.account-card{min-height:clamp(72px,11svh,94px);display:grid;grid-template-columns:auto 1.15fr 1px 1fr auto;align-items:center;gap:clamp(7px,2.2vw,14px);border-radius:20px;padding:clamp(9px,1.6svh,14px) 12px}
.tron-logo{display:grid;place-items:center;width:clamp(43px,6.8svh,56px);height:clamp(43px,6.8svh,56px);border-radius:14px;background:linear-gradient(145deg,#fff,#eee5ff);border:1px solid #d5c4f7;box-shadow:0 5px 12px #6021d32b}.tron-logo svg{width:73%;height:73%;fill:#e92035;filter:drop-shadow(0 2px 2px #b30e2530)}
.identity{min-width:0;line-height:1.42}.identity strong,.identity span{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:clamp(12px,1.9svh,16px)}.identity b{font-weight:700}.identity span{margin-top:3px}.account-divider{height:70%;background:#6b30db}.balance-block{min-width:0;white-space:nowrap}.balance-block span{display:block;font-size:clamp(10px,1.55svh,13px)}.balance-block strong{display:block;margin-top:3px;color:#5320cd;font-size:clamp(12px,2svh,17px)}.balance-block strong b{font-size:clamp(18px,3svh,26px)}
.recharge-btn{border:0;border-radius:14px;background:linear-gradient(135deg,#7a3bef,#4a13cf);color:#fff;font-weight:800;padding:clamp(10px,1.7svh,15px) clamp(11px,3vw,18px);box-shadow:0 7px 14px #5316d33b}
.step-card{border-radius:19px;padding:clamp(9px,1.45svh,13px) 13px}.step-title{display:flex;align-items:center;gap:9px;min-width:0}.step-title i{font-style:normal;display:grid;place-items:center;flex:0 0 clamp(30px,4.5svh,38px);height:clamp(30px,4.5svh,38px);border-radius:10px;background:linear-gradient(145deg,#7835ee,#4f13d2);color:#fff;font-size:clamp(16px,2.4svh,20px);font-weight:800;box-shadow:0 4px 9px #6422df35}.step-title h2{font-size:clamp(14px,2.15svh,18px);margin:0;white-space:nowrap}.step-title span{font-size:clamp(9px,1.42svh,12px);color:#514b65;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.input-row{display:flex;margin-top:clamp(7px,1.15svh,11px);height:clamp(42px,6.2svh,52px);border:1px solid #c9c1d9;background:#fff;border-radius:14px;overflow:hidden}.input-row input,.sheet input{min-width:0;flex:1;border:0;background:transparent;padding:0 13px;font-size:16px;color:var(--ink);outline:0}.input-row input::placeholder{color:#938da6;font-size:clamp(11px,3vw,13px)}.input-row input:disabled{background:#f7f5fa;color:#aaa}.input-row:focus-within{border-color:#7131e4;box-shadow:0 0 0 3px #6e2ce415}.input-row button{display:grid;place-items:center;width:48px;border:0;border-left:1px solid #eee8f7;background:#faf7ff;color:#5f1edb;font-size:13px;font-weight:800}.input-row button svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.hint-dot,.suggestion{margin:clamp(6px,1svh,9px) 0 0;font-size:clamp(9px,1.4svh,12px);color:#514c61}.hint-dot:before,.suggestion:before{content:"";display:inline-block;width:8px;height:8px;border-radius:50%;background:#9f96c3;margin-right:9px}.hint-dot.ok:before{background:#24a36a}.hint-dot.warn:before{background:#e39325}.suggestion{display:flex;align-items:center;gap:8px}.suggestion b{color:#5c1bd8}
.warning-card{min-height:clamp(54px,8.5svh,74px);display:flex;align-items:center;gap:12px;border:1px solid #f0bfc3;background:#fff7f7;border-radius:18px;padding:clamp(8px,1.25svh,12px) 13px;color:var(--danger)}.warning-card p{margin:0;font-size:clamp(9px,1.44svh,12px);font-weight:650;line-height:1.5}.warn-icon{display:grid;place-items:center;flex:0 0 27px;height:25px;background:#e32035;color:#fff;clip-path:polygon(50% 0,100% 100%,0 100%);font-weight:900;padding-top:7px;font-size:13px}
.payment-section{min-height:0;display:grid;grid-template-rows:auto 1fr auto auto;gap:clamp(6px,.9svh,9px)}.payment-section>h2{display:flex;align-items:center;gap:10px;font-size:clamp(15px,2.15svh,19px);line-height:1;margin:0 3px;font-weight:850}.payment-section>h2 span{display:block;width:24px;height:5px;border-radius:5px;background:linear-gradient(90deg,#6421df,transparent)}.payment-section>h2 span:last-child{transform:scaleX(-1)}
.modes{min-height:0;display:grid;grid-template-columns:1fr 1fr;align-items:stretch;gap:10px}.mode{position:relative;min-height:clamp(90px,13.5svh,116px);display:flex;align-items:center;gap:clamp(7px,2vw,11px);text-align:left;border-radius:20px;padding:11px;color:var(--ink);overflow:hidden}.mode[data-mode="free"]{min-height:clamp(90px,13.5svh,116px)}.mode.active{border:2px solid #6420dd;background:linear-gradient(145deg,#fff,#f2eaff);padding:10px}.pay-icon{display:grid;place-items:center;width:clamp(40px,6.2svh,52px);height:clamp(40px,6.2svh,52px);flex:0 0 clamp(40px,6.2svh,52px);border-radius:14px;background:linear-gradient(145deg,#efe6ff,#e2d2ff);color:#6322dd}.pay-icon svg{width:62%;height:62%;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.mode-copy{display:flex;flex-direction:column;gap:clamp(2px,.4svh,4px);min-width:0}.mode-copy strong{font-size:clamp(14px,2.1svh,18px);white-space:nowrap}.mode-copy small{font-size:clamp(9px,1.45svh,12px);line-height:1.26;white-space:nowrap}.mode-copy small b{color:#5b1ad2;font-size:1.12em}.selected{display:none;position:absolute;right:-1px;top:-1px;width:38px;height:36px;border-radius:0 19px 0 27px;background:linear-gradient(145deg,#792df0,#5415d0);color:#fff;font-style:normal;text-align:center;padding:5px 0 0 11px;font-size:19px}.mode.active .selected{display:block}
.validity-row{display:grid;grid-template-columns:1fr 1fr;gap:8px;font-size:clamp(8px,1.35svh,11px)}.validity-row span{min-height:clamp(40px,5.5svh,48px);display:flex;align-items:center;justify-content:center;gap:5px;white-space:nowrap;text-align:center;border:1px solid #ddd3ee;background:#fff;border-radius:999px;padding:clamp(7px,1svh,10px) 4px;color:#312b42;box-shadow:0 5px 14px #4c229410;font-weight:700}.validity-row svg{width:clamp(16px,2.5svh,21px);height:clamp(16px,2.5svh,21px);flex:0 0 auto;fill:none;stroke:#5d1bd5;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.validity-row b{color:#5c19d4;font-size:1.1em}
.primary{width:100%;min-height:clamp(50px,7.3svh,62px);border:0;border-radius:16px;padding:12px;background:linear-gradient(110deg,#7a36ef,#5015d1);color:#fff;font-weight:850;font-size:clamp(14px,2.1svh,17px);box-shadow:0 9px 20px #5018cc3d}.primary:disabled{opacity:.55}
.modal{position:fixed;z-index:10;inset:0;background:#24143d80;display:flex;align-items:flex-end;justify-content:center}.modal.hidden,.hidden{display:none!important}.sheet{position:relative;width:100%;max-width:560px;background:#fff;border-radius:25px 25px 0 0;padding:24px 20px max(28px,env(safe-area-inset-bottom));max-height:92svh;overflow:auto}.sheet h2{font-size:21px;margin:0 0 18px}.sheet label{display:block;margin:12px 0 7px;font-size:13px;font-weight:750}.sheet input{width:100%;height:50px;border:1px solid #d3cae4;border-radius:14px;margin-bottom:10px}.close{position:absolute;right:16px;top:14px;border:0;background:#f0e9ff;color:#5e1bd8;border-radius:50%;width:36px;height:36px;font-size:23px}.amount-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:9px;margin:2px 0 16px}.amount-grid button{height:48px;border:1px solid #d6c8ef;border-radius:13px;background:#f8f5ff;color:#5b1bd1;font-weight:800}.amount-grid button.active{background:#6421dc;color:#fff;border-color:#6421dc}.qr{display:block;width:180px;height:180px;margin:5px auto 15px;border-radius:14px}.sheet p{text-align:center;color:var(--muted);font-size:13px}.copy-line{display:block;width:100%;border:1px dashed #7b43de;background:#f7f3ff;color:#5a1bcf;border-radius:13px;padding:12px;margin:8px 0;font-weight:750;word-break:break-all}.copy-line.address{font-size:11px}.ghost{width:100%;border:0;background:transparent;color:var(--muted);padding:14px}.countdown{color:var(--danger)!important;font-weight:750}.address-list{display:grid;gap:10px;min-height:80px}.address-item{display:grid;grid-template-columns:1fr auto;align-items:center;gap:8px;border:1px solid #ddd4ec;border-radius:15px;padding:11px;background:#faf8ff}.address-select{min-width:0;border:0;background:transparent;text-align:left;color:#292238}.address-select strong,.address-select span{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.address-select strong{font-size:13px}.address-select span{font-size:11px;color:#77728e;margin-top:4px}.address-delete{width:39px;height:39px;border:0;border-radius:11px;background:#fff0f1;color:#d32337;font-size:18px}.empty{text-align:center;color:#8a8497;padding:25px 0}.toast{position:fixed;z-index:20;left:50%;bottom:30px;transform:translateX(-50%);background:#211735f2;color:#fff;padding:12px 18px;border-radius:14px;font-size:13px;max-width:88%;text-align:center;box-shadow:0 8px 24px #1b102c40}
.recharge-notice{display:flex;align-items:flex-start;gap:10px;margin:-4px 0 14px;padding:11px 12px;border:1px solid #efbdc4;border-radius:14px;background:#fff4f5;color:#c91d32}.recharge-notice span{display:grid;place-items:center;flex:0 0 22px;height:22px;border-radius:50%;background:#d92338;color:#fff;font-size:13px;font-weight:900}.recharge-notice p{margin:1px 0 0!important;text-align:left!important;color:#c91d32!important;font-size:12px!important;font-weight:750;line-height:1.45}
.compact-sheet{padding-bottom:max(18px,env(safe-area-inset-bottom))}.save-address-preview{font-size:11px!important;word-break:break-all;background:#f7f3ff;border:1px dashed #b59ae5;border-radius:13px;padding:12px;color:#5b506f!important}.success-sheet{text-align:center;padding-top:20px}.success-sheet h2{margin:9px 0 3px;font-size:23px}.success-icon{display:grid;place-items:center;width:56px;height:56px;margin:0 auto;border-radius:50%;background:linear-gradient(145deg,#7a36ef,#5015d1);color:#fff;font-size:31px;font-weight:900;box-shadow:0 10px 24px #5d20da45}.success-energy{margin:0!important;color:#5d20d5!important;font-weight:800;font-size:16px!important}.success-validity{margin:11px 0 4px!important;color:#6f6780!important;font-size:12px!important}.countdown-ring{position:relative;width:126px;height:126px;margin:0 auto 12px}.countdown-ring svg{width:100%;height:100%;transform:rotate(-90deg)}.countdown-ring circle{fill:none;stroke-width:8}.ring-track{stroke:#eee8f8}.ring-progress{stroke:#6421df;stroke-linecap:round;stroke-dasharray:301.593;stroke-dashoffset:0;transition:stroke-dashoffset .6s linear;filter:drop-shadow(0 3px 4px #6421df35)}.ring-content{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center}.ring-content b{color:#5520c8;font-size:25px;line-height:1;font-variant-numeric:tabular-nums}.ring-content span{margin-top:6px;color:#8a8298;font-size:10px}.success-address-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;align-items:center;text-align:left;border:1px solid #e1d8ef;background:#faf8ff;border-radius:15px;padding:10px 10px 10px 12px;margin:9px 0}.success-address-row>div{min-width:0}.success-address-row label{display:flex;align-items:center;gap:7px;margin:0 0 5px;color:#776e88;font-size:11px;font-weight:700}.inline-copy-status{color:#5b1ad3;font-size:10px;font-weight:800;white-space:nowrap}.success-address-row code{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#30283d;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:10px}.success-address-row button{height:38px;min-width:54px;border:0;border-radius:11px;background:#ede4ff;color:#5b1ad3;font-size:12px;font-weight:800}.success-sheet>.primary{margin-top:12px}
@media(max-width:390px){.account-card{grid-template-columns:auto 1.05fr 1px .95fr auto;gap:6px;padding-left:8px;padding-right:8px}.recharge-btn{padding-left:10px;padding-right:10px}.step-card{padding-left:10px;padding-right:10px}.step-title{gap:7px}.mode{padding-left:7px;padding-right:7px}.mode.active{padding-left:6px;padding-right:6px}.validity-row{gap:5px}}
/* Compact layout is selected from Telegram's stable height. The software keyboard must not toggle it. */
.compact-height .app-shell{min-height:0}.compact-height main{padding-top:6px;gap:5px}.compact-height .account-card{min-height:58px;padding-top:5px;padding-bottom:5px}.compact-height .tron-logo{width:38px;height:38px}.compact-height .step-card{padding-top:6px;padding-bottom:6px}.compact-height .step-title i{width:27px;height:27px;flex-basis:27px}.compact-height .input-row{height:38px;margin-top:5px}.compact-height .hint-dot,.compact-height .suggestion{margin-top:4px}.compact-height .warning-card{min-height:45px;padding-top:5px;padding-bottom:5px}.compact-height .warning-card p{line-height:1.35}.compact-height .pay-icon{width:33px;height:33px;flex-basis:33px}.compact-height .mode,.compact-height .mode[data-mode="free"]{min-height:72px}.compact-height .validity-row span{min-height:32px;padding:4px 2px}.compact-height .validity-row svg{width:15px;height:15px}.compact-height .primary{min-height:44px;padding:9px}

/* Use the first stable Mini App viewport for sizing, so focusing an input cannot shrink the page. */
main{gap:clamp(7px,calc(var(--stable-vh)*1.2),12px)}
.account-card{min-height:clamp(72px,calc(var(--stable-vh)*11),94px);padding-top:clamp(9px,calc(var(--stable-vh)*1.6),14px);padding-bottom:clamp(9px,calc(var(--stable-vh)*1.6),14px)}
.tron-logo{width:clamp(43px,calc(var(--stable-vh)*6.8),56px);height:clamp(43px,calc(var(--stable-vh)*6.8),56px)}
.identity strong,.identity span{font-size:clamp(12px,calc(var(--stable-vh)*1.9),16px)}.balance-block span{font-size:clamp(10px,calc(var(--stable-vh)*1.55),13px)}.balance-block strong{font-size:clamp(12px,calc(var(--stable-vh)*2),17px)}.balance-block strong b{font-size:clamp(18px,calc(var(--stable-vh)*3),26px)}
.recharge-btn{padding-top:clamp(10px,calc(var(--stable-vh)*1.7),15px);padding-bottom:clamp(10px,calc(var(--stable-vh)*1.7),15px)}
.step-card{padding-top:clamp(9px,calc(var(--stable-vh)*1.45),13px);padding-bottom:clamp(9px,calc(var(--stable-vh)*1.45),13px)}
.step-title i{flex-basis:clamp(30px,calc(var(--stable-vh)*4.5),38px);height:clamp(30px,calc(var(--stable-vh)*4.5),38px);font-size:clamp(16px,calc(var(--stable-vh)*2.4),20px)}.step-title h2{font-size:clamp(14px,calc(var(--stable-vh)*2.15),18px)}.step-title span{font-size:clamp(9px,calc(var(--stable-vh)*1.42),12px)}
.input-row{margin-top:clamp(7px,calc(var(--stable-vh)*1.15),11px);height:clamp(42px,calc(var(--stable-vh)*6.2),52px)}
.hint-dot,.suggestion{margin-top:clamp(6px,var(--stable-vh),9px);font-size:clamp(9px,calc(var(--stable-vh)*1.4),12px)}
.warning-card{min-height:clamp(54px,calc(var(--stable-vh)*8.5),74px);padding-top:clamp(8px,calc(var(--stable-vh)*1.25),12px);padding-bottom:clamp(8px,calc(var(--stable-vh)*1.25),12px)}.warning-card p{font-size:clamp(9px,calc(var(--stable-vh)*1.44),12px)}
.payment-section{gap:clamp(6px,calc(var(--stable-vh)*.9),9px)}.payment-section>h2{font-size:clamp(15px,calc(var(--stable-vh)*2.15),19px)}
.mode,.mode[data-mode="free"]{min-height:clamp(90px,calc(var(--stable-vh)*13.5),116px)}
.pay-icon{width:clamp(40px,calc(var(--stable-vh)*6.2),52px);height:clamp(40px,calc(var(--stable-vh)*6.2),52px);flex-basis:clamp(40px,calc(var(--stable-vh)*6.2),52px)}
.mode-copy{gap:clamp(2px,calc(var(--stable-vh)*.4),4px)}.mode-copy strong{font-size:clamp(14px,calc(var(--stable-vh)*2.1),18px)}.mode-copy small{font-size:clamp(9px,calc(var(--stable-vh)*1.45),12px)}
.validity-row{font-size:clamp(8px,calc(var(--stable-vh)*1.35),11px)}.validity-row span{min-height:clamp(40px,calc(var(--stable-vh)*5.5),48px);padding-top:clamp(7px,var(--stable-vh),10px);padding-bottom:clamp(7px,var(--stable-vh),10px)}.validity-row svg{width:clamp(16px,calc(var(--stable-vh)*2.5),21px);height:clamp(16px,calc(var(--stable-vh)*2.5),21px)}
.primary{min-height:clamp(50px,calc(var(--stable-vh)*7.3),62px);font-size:clamp(14px,calc(var(--stable-vh)*2.1),17px)}

.dispatch-sheet{padding-top:20px}.dispatch-sheet h2{margin:9px 0 3px}.waiting-icon{font-size:28px;line-height:1;padding-bottom:12px}.waiting-ring svg{animation:waiting-ring-spin 1.05s linear infinite}.waiting-progress{stroke-dasharray:82 220;stroke-dashoffset:0;transition:none}.dispatch-sheet>.primary{margin-top:12px}@keyframes waiting-ring-spin{from{transform:rotate(-90deg)}to{transform:rotate(270deg)}}
