:root{--p:#7c3aed;--pd:#6d28d9;--l:#f5f3ff;--b:#e5e7eb;--t:#111827;--m:#6b7280;--bg:#f9fafb;--sp:cubic-bezier(.22,1,.36,1);--sg:cubic-bezier(.34,1.38,.64,1)}
button,input,select,textarea{font-family:inherit}
*{box-sizing:border-box;margin:0;-webkit-tap-highlight-color:transparent}
html{-webkit-text-size-adjust:100%;text-size-adjust:100%;overflow-x:hidden;overflow-anchor:none}body{overflow-anchor:none}html,body{touch-action:pan-x pan-y}button,select,label{touch-action:manipulation}img,svg,canvas,video{max-width:100%}
body{font:14px/1.5 Inter,"Plus Jakarta Sans",ui-sans-serif,system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;background:var(--bg);color:var(--t);padding:env(safe-area-inset-top) env(safe-area-inset-right) 100px env(safe-area-inset-left);overflow-x:hidden;overflow-wrap:anywhere;min-height:calc(100vh / var(--ds-zoom,1));min-height:calc(100dvh / var(--ds-zoom,1))}
.w{max-width:480px;margin:0 auto;padding:14px 16px;display:grid;gap:12px}
.card{background:#fff;border:1px solid var(--b);border-radius:16px;padding:16px;box-shadow:0 1px 2px rgba(17,24,39,.04)}
.hero{position:relative;overflow:hidden;background:linear-gradient(135deg,var(--p),var(--pd));color:#fff;border:0;box-shadow:0 8px 22px rgba(124,58,237,.28)}
.hero>*{position:relative;z-index:1}
.hero::after{content:"";position:absolute;right:-34px;top:-34px;width:130px;height:130px;border-radius:50%;background:rgba(255,255,255,.13);pointer-events:none}
.row{display:flex;flex-wrap:wrap;align-items:center;gap:8px;justify-content:space-between}
.badge{display:inline-block;padding:3px 10px;border-radius:99px;font-size:11px;font-weight:700;background:rgba(255,255,255,.2)}
.pill{display:inline-flex;align-items:center;gap:5px;font-size:11px;font-weight:600;padding:3px 10px;border-radius:99px;background:var(--l);color:var(--p);border:1px solid #ddd6fe}
.pts{font-size:38px;font-weight:800;line-height:1.1;margin:6px 0 2px;letter-spacing:-.01em}
.bar{height:8px;border-radius:9px;background:rgba(255,255,255,.28);overflow:hidden;margin-top:10px}
.bar i{display:block;height:100%;background:#fff;border-radius:9px;transition:width .7s var(--sp)}
.sm{font-size:12px;opacity:.92}.mu{color:var(--m);font-size:12px}
h3{font-size:15px;font-weight:700;margin-bottom:4px}
.top{display:flex;align-items:center;gap:10px;padding:2px 0}.tt{flex:1;min-width:0}
.brand{font-weight:800;font-size:16px;letter-spacing:.16em;color:var(--p);line-height:1.25}
.ds-brand{display:grid}.ds-brand>span{grid-area:1/1;align-self:center;animation:6s ease-in-out infinite}
.ds-brand .a{animation-name:ba}.ds-brand .b{animation-name:bb;white-space:normal}
.qr{display:grid;place-items:center;padding:14px;background:#fff;border:1px solid var(--b);border-radius:16px;margin:10px 0}
.qr canvas,.qr img{max-width:100%;height:auto}
.code{font:800 22px ui-monospace,Menlo,monospace;letter-spacing:.14em;color:var(--p);text-align:center}
.btn{display:flex;align-items:center;justify-content:center;text-align:center;width:100%;min-height:46px;border:1px solid transparent;border-radius:12px;background:var(--p);color:#fff;font-family:inherit;font-size:14px;font-weight:700;line-height:1.2;padding:10px 14px;cursor:pointer;box-shadow:0 1px 2px rgba(124,58,237,.3);transition:transform .16s,background .2s}
.btn:hover{background:var(--pd)}.btn:active{transform:scale(.96)}.btn:disabled{opacity:.45}
.btn.o{background:#fff;color:var(--t);border:1px solid var(--b);box-shadow:none}.btn.o:hover{background:var(--bg)}
.btn.rd{background:#fef2f2;color:#dc2626;border:1px solid #fecaca;box-shadow:none}.btn.dg{background:#dc2626}
.days{display:grid;grid-template-columns:repeat(7,1fr);gap:6px;margin:12px 0}
.d{border:1px solid var(--b);background:var(--bg);border-radius:12px;padding:8px 2px;text-align:center;font-size:11px;font-weight:700;color:var(--m)}
.d b{display:block;font-size:15px;color:var(--p)}.d.on{background:var(--p);color:#fff;border-color:var(--p)}.d.on b{color:#fff}
.d.g{background:#fffbeb;border-color:#fde68a;color:#92400e}.d.g b{color:#d97706}
.li{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 0;border-top:1px solid #f3f4f6}
.li:first-of-type{border-top:0}.li span:first-child{min-width:0;flex:1}
.pos{color:#059669;font-weight:800;white-space:nowrap}.neg{color:#dc2626;font-weight:800;white-space:nowrap}
.lb{display:block;font-weight:600;font-size:12px;margin:12px 0 4px;color:#374151}
.in{width:100%;min-height:46px;border:1px solid var(--b);border-radius:12px;padding:10px 14px;font:inherit;font-size:16px;background:#fff;color:var(--t);outline:0;transition:border-color .2s,box-shadow .2s}
.in:focus{border-color:var(--p);box-shadow:0 0 0 3px rgba(124,58,237,.16)}
.in:disabled{background:var(--bg);color:var(--m);opacity:1;-webkit-text-fill-color:var(--m)}
.sw{display:flex;flex-wrap:wrap;gap:8px}


.chips{display:grid;gap:8px;margin:0 0 18px;text-align:left}.chips div{display:flex;align-items:center;gap:10px;min-height:44px;background:var(--l);border:1px solid #ddd6fe;border-radius:12px;padding:10px 12px;color:var(--p);font-weight:600}
.d{position:relative}.d i{display:block;font-style:normal;font-size:9px;font-weight:600;opacity:.8;margin-top:2px}
.d.now{background:#fff;border-color:var(--p);box-shadow:0 0 0 3px rgba(124,58,237,.16)}
.d.ms{background:#fef2f2;border-color:#fecaca;color:#dc2626}.d.ms b{color:#dc2626}.d.pre{opacity:.5}
.al{display:flex;gap:10px;align-items:flex-start;border-radius:14px;padding:10px 12px;font-size:12px;font-weight:600;line-height:1.45;background:#fffbeb;border:1px solid #fde68a;color:#92400e}
.al.red{background:#fef2f2;border-color:#fecaca;color:#b91c1c}.al svg{flex:none;margin-top:1px}
.alw{display:grid;gap:8px;margin:2px 0 12px}
nav button.dt span{position:relative}nav button.dt span::after{content:"";position:absolute;top:-2px;right:-5px;width:9px;height:9px;border-radius:50%;background:#ef4444;border:2px solid #fff}
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:10px}.grid2 .btn{flex-direction:column;gap:2px;font-size:13px;padding:10px 8px}
.dot{display:inline-block;width:8px;height:8px;border-radius:50%;background:var(--p);margin-right:6px;position:relative}.dot::after{content:"";position:absolute;inset:0;border-radius:50%;background:var(--p);animation:pg 1.4s infinite}
.sk{background:linear-gradient(90deg,#eceef2,#f6f7f9,#eceef2);background-size:200% 100%;animation:shim 1.2s linear infinite;border-radius:10px}
nav{position:fixed;left:0;right:0;bottom:0;z-index:5;background:rgba(255,255,255,.94);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-top:1px solid var(--b);padding:6px 10px calc(6px + env(safe-area-inset-bottom))}
.in2{position:relative;max-width:480px;margin:0 auto}
#nb{position:relative;z-index:1;display:grid;grid-template-columns:repeat(5,1fr)}
.ds-ind{position:absolute;left:0;top:0;z-index:0;border-radius:14px;background:var(--l);pointer-events:none;will-change:transform,width;transition:transform .42s var(--sg),width .42s var(--sg),height .2s}.ds-ind.no{transition:none}
nav button{border:0;background:none;padding:7px 2px;font-family:inherit;font-size:11px;font-weight:600;color:var(--m);display:grid;gap:2px;justify-items:center;transition:color .28s,transform .16s}
nav button span{display:grid}nav button:active{transform:scale(.94)}nav button.on{color:var(--p)}nav button.pp span{animation:dsBump .34s var(--sp)}
.ov{position:fixed;inset:0;z-index:20;display:flex;align-items:flex-end;justify-content:center;background:rgba(17,24,39,.45);animation:dsScrimIn .26s ease backwards}
.ov .card{width:100%;max-width:480px;border-radius:24px 24px 0 0;border-bottom:0;text-align:center;padding:10px 20px calc(20px + env(safe-area-inset-bottom));max-height:calc(92vh / var(--ds-zoom,1));max-height:calc(92dvh / var(--ds-zoom,1));overflow:auto;animation:dsSheetIn .33s var(--sp) backwards}
.ov .card::before{content:"";display:block;width:40px;height:4px;border-radius:9px;background:var(--b);margin:0 auto 14px}
.toast.lv{animation:dsToastOut .21s ease forwards;pointer-events:none}
.toast{position:fixed;left:50%;bottom:calc(92px + env(safe-area-inset-bottom));transform:translateX(-50%);background:#111827;color:#fff;padding:10px 16px;border-radius:14px;max-width:90%;z-index:30;text-align:center;font-weight:600;font-size:13px;animation:dsToastIn .32s var(--sp) backwards}
.fl{animation:flt 2.4s ease-in-out infinite}
.pg{display:grid;gap:12px;transform-origin:50% 40vh}
.anim .pg>*{animation:dsItemIn .3s var(--sp) backwards}
.anim .pg>:nth-child(2){animation-delay:.04s}.anim .pg>:nth-child(3){animation-delay:.08s}.anim .pg>:nth-child(4){animation-delay:.12s}.anim .pg>:nth-child(n+5){animation-delay:.16s}
.anim .d{animation:dsPop .4s var(--sp) backwards}
html[data-ds-dir] .pg,html[data-ds-dir] .hero{will-change:transform,opacity}.hero{transform-origin:50% 50%}
html[data-ds-dir] .pg.enter,html[data-ds-dir] .hero.enter{animation:dsEnter .46s var(--sp)}
html[data-ds-dir] .pg.out-n,html[data-ds-dir] .hero.out-n{animation:dsOutN .13s cubic-bezier(.4,0,1,1) forwards}
html[data-ds-dir] .pg.out-p,html[data-ds-dir] .hero.out-p{animation:dsOutP .13s cubic-bezier(.4,0,1,1) forwards}
@keyframes dsEnter{from{opacity:var(--ds-o,.4);transform:var(--ds-t,none)}}
@keyframes dsOutN{to{opacity:.15;transform:translate3d(calc(var(--ds-dx,56px)*-.7),0,0) scale(.95)}}
@keyframes dsOutP{to{opacity:.15;transform:translate3d(calc(var(--ds-dx,56px)*.7),0,0) scale(1.04)}}
@keyframes dsIndStretch{35%{scale:1.07 .93}}
.ds-ind.go{animation:dsIndStretch .42s ease}
@keyframes dsItemIn{from{opacity:0;transform:translateY(10px) scale(.97)}}
@keyframes dsPop{from{opacity:0;transform:scale(.8)}}
@keyframes dsBump{0%{transform:scale(1)}40%{transform:scale(1.25)}100%{transform:scale(1)}}
@keyframes dsSheetIn{from{transform:translateY(100%)}}
@keyframes dsScrimIn{from{background:rgba(17,24,39,0)}}
@keyframes dsToastIn{from{opacity:0;transform:translate(-50%,26px) scale(.95)}}
@keyframes flt{0%,100%{transform:translateY(0)}50%{transform:translateY(-6px)}}
@keyframes pg{0%{transform:scale(1);opacity:.8}70%,100%{transform:scale(2.4);opacity:0}}
@keyframes shim{to{background-position:-200% 0}}
@keyframes ba{0%,44%{opacity:1}50%,94%{opacity:0}100%{opacity:1}}
@keyframes bb{0%,44%{opacity:0}50%,94%{opacity:1}100%{opacity:0}}
body{background:#f8f5ff linear-gradient(180deg,#fff 0,#faf7ff 35%,#f3ecff 100%) fixed}
.card{border-radius:24px;border:1px solid #efe9fd;box-shadow:0 8px 30px rgba(124,58,237,.09),0 2px 8px rgba(17,24,39,.04)}
.hero{border:0;box-shadow:0 12px 30px rgba(124,58,237,.3)}
.btn{border-radius:16px}.in{border-radius:14px}
nav{border-radius:22px 22px 0 0;border-top:0;background:#fff;box-shadow:0 -8px 30px rgba(17,24,39,.07),0 -2px 8px rgba(17,24,39,.04)}
.ds-ind{background:var(--p);border-radius:16px;box-shadow:0 6px 14px rgba(124,58,237,.35)}
nav button{font-size:10.5px;font-weight:700;padding:8px 2px}nav button.on{color:#fff}
.ct{display:flex;align-items:center;gap:12px;margin-bottom:10px}.ct h3{margin:0}.ct .mu{margin-top:1px}
.ib{flex:none;width:44px;height:44px;border-radius:14px;background:#f5f3ff;border:1px solid #e9e1fb;color:var(--p);display:grid;place-items:center}
.ib.av{border-radius:50%;background:linear-gradient(135deg,var(--p),var(--pd));border:0;color:#fff;font-weight:800;font-size:15px}
.sub{font-size:12px;color:var(--m);margin-top:1px}
.ov.lv{animation:dsScrimOut .22s ease forwards;pointer-events:none}
.ov.lv .card{animation:dsSheetOut .24s cubic-bezier(.5,0,.9,.4) forwards}
.ov.ctr{align-items:center;padding:20px}.ov.ctr .card{max-width:340px;border-radius:24px;border-bottom:1px solid #efe9fd;padding:24px 20px 18px;animation:dsPopIn .29s var(--sp) backwards}.ov.ctr .card::before{display:none}
.ov .grid2{margin-top:18px}
.ov.ctr.lv .card{animation:dsPopOut .2s cubic-bezier(.4,0,1,1) forwards}
.ds-num{animation:dsNumIn .28s var(--sp)}
@keyframes dsSheetOut{to{transform:translateY(100%)}}
@keyframes dsScrimOut{to{background-color:rgba(17,24,39,0)}}
@keyframes dsPopIn{from{opacity:0;transform:translateY(22px) scale(.94)}}
@keyframes dsPopOut{to{opacity:0;transform:translateY(14px) scale(.95)}}
@keyframes dsToastOut{to{opacity:0;transform:translate(-50%,14px) scale(.95)}}
@keyframes dsNumIn{from{opacity:.2;transform:translateY(7px)}to{opacity:1;transform:none}}
html.lk,html.lk body{overflow:hidden}.ov,.ov .card{overscroll-behavior:contain}
.bar2{height:8px;border-radius:9px;background:#ede9fe;overflow:hidden;margin:10px 0 12px}.bar2 i{display:block;height:100%;background:linear-gradient(90deg,var(--p),#a78bfa);border-radius:9px;transition:width .7s var(--sp)}
.pn{position:relative;overflow:hidden;border-radius:20px;padding:16px;color:#fff;background:linear-gradient(135deg,#7c3aed,#a78bfa);box-shadow:0 8px 22px rgba(124,58,237,.25);margin-bottom:12px}
.pn::after{content:"";position:absolute;right:-30px;top:-34px;width:120px;height:120px;border-radius:50%;background:rgba(255,255,255,.12);pointer-events:none}.pn>*{position:relative;z-index:1}
.pn .lb2{font-size:11px;font-weight:700;letter-spacing:.07em;text-transform:uppercase;opacity:.92}
.pn .big{font-size:32px;font-weight:800;line-height:1.15;margin:4px 0 2px}.pn .big small{font-size:13px;font-weight:600;opacity:.88}
.pn .tl{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:12px}.pn .tl>div{background:rgba(255,255,255,.18);border-radius:14px;padding:8px 4px;text-align:center;font-size:11px;font-weight:600}.pn .tl b{display:block;font-size:17px;line-height:1.3}
.qs{display:grid;gap:10px;margin:0 0 12px}
.q{position:relative;display:flex;align-items:center;gap:12px;padding:12px 14px;border-radius:18px;border:1px solid #efe9fd;background:#fff;box-shadow:0 2px 10px rgba(124,58,237,.06);transition:background .35s,border-color .35s,box-shadow .35s}
.q .qm{flex:1;min-width:0}.q .qt{font-size:13px;font-weight:700;line-height:1.3;color:var(--t)}
.q .qp{height:6px;border-radius:9px;background:#ede9fe;overflow:hidden;margin:7px 0 5px}.q .qp i{display:block;height:100%;transform-origin:left;background:linear-gradient(90deg,var(--p),#a78bfa);border-radius:9px;transition:width .7s var(--sp),background .4s}
.q .qi{font-size:11px;white-space:nowrap;color:var(--m);font-weight:600}
.qb{flex:none;width:80px;min-height:36px;padding:0 6px;display:flex;align-items:center;justify-content:center;border-radius:12px;border:1px solid #e9e1fb;background:#f5f3ff;color:#a78bfa;font-family:inherit;font-size:12.5px;font-weight:700;transition:transform .16s,background .25s,color .25s,box-shadow .25s}
.q.rd{border-color:#c4b5fd;box-shadow:0 0 0 3px rgba(124,58,237,.12),0 4px 14px rgba(124,58,237,.12)}.q.rd .qb{background:var(--p);border-color:var(--p);color:#fff;box-shadow:0 4px 12px rgba(124,58,237,.35)}.q.rd .qb:active{transform:scale(.93)}
.qok{flex:none;width:80px;min-height:36px;display:flex;align-items:center;justify-content:center;gap:3px;border-radius:12px;background:#ecfdf5;border:1px solid #a7f3d0;color:#059669;font-size:12px;font-weight:700;animation:dsPop .4s var(--sp)}
.q.cl{background:#f7fffb;border-color:#bbf7d0;box-shadow:0 2px 10px rgba(5,150,105,.06)}.q.cl .qp i{background:#34d399}
.q.fin{background:#fffbeb;border-color:#fde68a}.q.fin .qi{color:#b45309}.q.fin.rd{border-color:#fbbf24;box-shadow:0 0 0 3px rgba(245,158,11,.16),0 4px 14px rgba(245,158,11,.16)}.q.fin.rd .qb{background:#f59e0b;border-color:#f59e0b;box-shadow:0 4px 12px rgba(245,158,11,.4)}.q.fin.cl{background:#f7fffb;border-color:#bbf7d0}.q.fin.cl .qi{color:var(--m)}
.q.just{animation:dsJust .55s var(--sp)}
.fx{position:absolute;right:16px;top:2px;font-size:15px;font-weight:800;color:#059669;pointer-events:none;animation:dsFloat 1s var(--sp) forwards}
html[data-ds-dir] .pg.enter .q,.anim .pg .q{animation:dsItemIn .42s var(--sp) calc(var(--i,0)*45ms + 90ms) backwards}
html[data-ds-dir] .pg.enter .qp i,.anim .qp i,html[data-ds-dir] .pg.enter .pn .bar i,.anim .pn .bar i{animation:dsGrow .85s var(--sp) calc(var(--i,0)*45ms + 180ms) backwards}
html[data-ds-dir] .pg.enter .q.rd .qb,.anim .q.rd .qb{animation:dsBump .55s var(--sp) calc(var(--i,0)*45ms + 600ms) backwards}
html[data-ds-dir] .pg.enter .pn .big span,.anim .pn .big span,html[data-ds-dir] .pg.enter .pn .tl b,.anim .pn .tl b{animation:dsNumIn .5s var(--sp) .25s backwards}
@keyframes dsGrow{from{transform:scaleX(0)}}
@keyframes dsFloat{0%{opacity:0;transform:translateY(10px) scale(.9)}18%{opacity:1}100%{opacity:0;transform:translateY(-36px) scale(1.12)}}
@keyframes dsJust{0%{transform:scale(1)}35%{transform:scale(1.025)}100%{transform:scale(1)}}
.al.info{background:var(--l);border-color:#ddd6fe;color:var(--pd)}
@media(prefers-reduced-motion:reduce){*,*::after{animation:none!important;transition:none!important}}
