:root{--bg0:#000;--bg1:#0b1526;--bg2:#121d2c;--line:#4db2ff38;--text:#f2f7ff;--muted:#8fa3bb;--accent:#4db2ff;--accent2:#65b9ff;--accent-deep:#2a7fd4;--warn:#ffc857;--danger:#ff7b7b;--card:#0b1526eb;--navy:#163251;--radius:16px;color:var(--text);background:var(--bg0);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;font-family:Sora,Segoe UI,sans-serif;line-height:1.5}*{box-sizing:border-box;margin:0;padding:0}html,body,#root{min-height:100%}body{background-color:#0000;background-image:radial-gradient(80% 45% at 50% -8%,#4db2ff2e,#0000 55%),radial-gradient(60% 40% at 90% 20%,#2a7fd41f,#0000 50%),linear-gradient(#05080f 0%,#000 45%,#070d16 100%);background-position:0 0,0 0,0 0;background-repeat:repeat,repeat,repeat;background-size:auto,auto,auto;background-attachment:fixed;background-origin:padding-box,padding-box,padding-box;background-clip:border-box,border-box,border-box}a{color:inherit;text-decoration:none}button,input{font:inherit}.app-shell{max-width:480px;min-height:100vh;margin:0 auto;padding:16px 16px 88px;position:relative}.brand{letter-spacing:.08em;background:linear-gradient(90deg,#9ad4ff,#4db2ff 50%,#65b9ff);color:#0000;-webkit-background-clip:text;background-clip:text;font-family:Orbitron,Sora,sans-serif;font-size:1.15rem;font-weight:700}.panel{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);padding:16px;box-shadow:0 10px 28px #00000059}.muted{color:var(--muted);font-size:.875rem}.row{justify-content:space-between;align-items:center;gap:12px;display:flex}.stack{flex-direction:column;gap:12px;display:flex}.btn{cursor:pointer;border:none;border-radius:999px;padding:12px 18px;font-weight:600;transition:transform .15s,opacity .15s,box-shadow .2s}.btn:active{transform:scale(.98)}.btn:disabled{opacity:.45;cursor:not-allowed}.btn-primary{color:#fff;text-shadow:0 1px 2px #0003;background:linear-gradient(#65b9ff 0%,#3fa9f5 48%,#2a7fd4 100%);box-shadow:0 10px 26px #4db2ff59}.btn-ghost{color:var(--muted);background:#1632518c;border:1px solid #4db2ff2e}.btn-block{width:100%}.input{border:1px solid var(--line);width:100%;color:var(--text);background:#00000073;border-radius:12px;outline:none;padding:12px 14px}.input:focus{border-color:#4db2ffbf;box-shadow:0 0 0 3px #4db2ff29}.tag{color:#7ec8ff;background:#4db2ff24;border-radius:999px;align-items:center;gap:6px;padding:4px 10px;font-size:.75rem;font-weight:600;display:inline-flex}.tabbar{-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);z-index:50;background:#080e18f0;border:1px solid #4db2ff29;border-radius:999px;grid-template-columns:repeat(3,1fr);gap:4px;width:min(448px,100% - 24px);padding:8px;display:grid;position:fixed;bottom:12px;left:50%;transform:translate(-50%);box-shadow:0 12px 30px #0006}.tabbar a{text-align:center;color:var(--muted);border-radius:999px;padding:10px 8px;font-size:.8rem;font-weight:600}.tabbar a.active{color:#65b9ff;text-shadow:0 0 10px #65b9ff73;background:#4db2ff1f;box-shadow:0 0 16px #4db2ff38}.wheel-wrap{aspect-ratio:1;width:min(320px,86vw);margin:8px auto 18px;position:relative}.wheel-wrap:before{content:"";pointer-events:none;z-index:0;background:radial-gradient(circle,#4db2ff38,#0000 68%);border-radius:50%;position:absolute;inset:-10px}.wheel{z-index:1;background:conic-gradient(from 0deg, #4db2ff 0 40deg, #163251 40deg 80deg, #4db2ff 80deg 120deg, #163251 120deg 160deg, #4db2ff 160deg 200deg, #163251 200deg 240deg, #4db2ff 240deg 280deg, #163251 280deg 320deg, #2a5a8a 320deg 360deg);border:3px solid #65b9ffbf;border-radius:50%;place-items:center;width:100%;height:100%;animation:28s linear infinite idleSpin;display:grid;position:relative;box-shadow:0 0 0 8px #0b1526,0 0 0 10px #65b9ff59,0 0 42px #4db2ff59,inset 0 0 36px #00000059}.wheel.spinning{animation:1.2s cubic-bezier(.2,.7,.2,1) fastSpin}.wheel-labels{pointer-events:none;z-index:1;border-radius:50%;position:absolute;inset:0}.wheel-slice{width:0;height:0;transform:rotate(calc(var(--i) * 40deg + 20deg));position:absolute;top:50%;left:50%}.wheel-slice-inner{width:76px;transform:rotate(calc(-1 * (var(--i) * 40deg + 20deg)));text-align:center;flex-direction:column;align-items:center;gap:2px;line-height:1.15;display:flex;position:absolute;top:-118px;left:-38px}.wheel-slice-inner .seat-no{color:#fff;text-shadow:0 1px 2px #00000080;font-family:Orbitron,sans-serif;font-size:.72rem;font-weight:700}.wheel-slice-inner .seat-addr{color:#ffffffeb;text-shadow:0 1px 2px #0000008c;text-overflow:ellipsis;white-space:nowrap;max-width:74px;font-family:IBM Plex Mono,monospace;font-size:.58rem;overflow:hidden}.wheel-slice-inner.empty .seat-no{color:#ffffff8c}.wheel-slice-inner.mine .seat-no,.wheel-slice-inner.mine .seat-addr{color:#b8e4ff}.wheel-center{z-index:2;text-align:center;color:#0b1a2e;background:radial-gradient(circle at 40% 35%,#e8f5ff 0%,#9ad4ff 35%,#4db2ff 70%,#2a7fd4 100%);border:2px solid #ffffff8c;border-radius:50%;place-items:center;width:42%;height:42%;font-family:Orbitron,sans-serif;font-size:.85rem;line-height:1.25;display:grid;position:relative;box-shadow:0 0 24px #4db2ff73}.wheel-center .muted{color:#0b1a2eb8}.pointer{border-left:10px solid #0000;border-right:10px solid #0000;border-top:18px solid var(--accent);filter:drop-shadow(0 2px 8px #4db2ff99);z-index:3;width:0;height:0;position:absolute;top:-6px;left:50%;transform:translate(-50%)}@keyframes idleSpin{to{transform:rotate(360deg)}}@keyframes fastSpin{0%{transform:rotate(0)}to{transform:rotate(1080deg)}}.stat-grid{grid-template-columns:repeat(2,1fr);gap:10px;display:grid}.stat{border:1px solid var(--line);background:#121d2ce6;border-radius:12px;padding:12px}.stat .label{color:var(--muted);font-size:.75rem}.stat .value{color:#65b9ff;margin-top:4px;font-family:Orbitron,sans-serif;font-size:1.05rem}.list-item{border-bottom:1px solid var(--line);justify-content:space-between;gap:10px;padding:12px 0;display:flex}.list-item:last-child{border-bottom:none}.toast{border:1px solid var(--line);color:var(--text);z-index:140;background:#121d2c;border-radius:12px;max-width:90vw;padding:10px 16px;animation:.2s fadeIn;position:fixed;top:16px;left:50%;transform:translate(-50%);box-shadow:0 12px 28px #00000059}@keyframes fadeIn{0%{opacity:0;transform:translate(-50%,-8px)}to{opacity:1;transform:translate(-50%)}}.seat-grid{grid-template-columns:repeat(3,1fr);gap:8px;margin-top:12px;display:grid}.seat{aspect-ratio:1.2;color:var(--muted);background:#ffffff08;border:1px dashed #4db2ff38;border-radius:12px;place-items:center;font-size:.72rem;display:grid}.seat.filled{color:#9ad4ff;background:#4db2ff1f;border-style:solid;border-color:#4db2ff73}.modal-mask{z-index:80;background:#0009;place-items:center;padding:16px;display:grid;position:fixed;inset:0}.modal{border:1px solid var(--line);background:#121d2c;border-radius:16px;width:min(400px,100%);padding:18px}.recharge-overlay{z-index:120;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#030a16d1;place-items:center;padding:20px;animation:.2s fadeInOverlay;display:grid;position:fixed;inset:0}@keyframes fadeInOverlay{0%{opacity:0}to{opacity:1}}.recharge-overlay-card{border:1px solid var(--line);background:linear-gradient(#152338 0%,#0e1828 100%);border-radius:18px;flex-direction:column;align-items:center;width:min(360px,100%);padding:28px 22px 20px;display:flex;box-shadow:0 20px 50px #00000073}.recharge-spinner{border:3px solid #4db2ff33;border-top-color:#4db2ff;border-radius:50%;width:42px;height:42px;animation:.8s linear infinite spinWait}@keyframes spinWait{to{transform:rotate(360deg)}}.recharge-result-icon{border-radius:50%;place-items:center;width:48px;height:48px;font-size:1.4rem;font-weight:700;display:grid}.recharge-result-icon.ok{color:#2ecc71;background:#2ecc7126;border:1px solid #2ecc7166}.recharge-result-icon.fail{color:#ff7b7b;background:#ff63631f;border:1px solid #ff636359}
