:root{--ink:#12141c;--ink-2:#191c28;--card:#1f2333;--card-2:#262b3f;--stroke:#333a52;--coral:#ff6b57;--gold:#e8b84b;--mint:#5ad1a8;--text:#f2efea;--text-dim:#9096ac;--text-faint:#5c6280}*{box-sizing:border-box;margin:0;padding:0;-webkit-tap-highlight-color:transparent}html,body{height:100%;overscroll-behavior:none}html,body{position:fixed;top:0;right:0;bottom:0;left:0;overflow:hidden}body{background:#05060a;font-family:Inter,sans-serif;color:var(--text);display:flex;justify-content:center;padding:32px 12px;min-height:100vh;min-height:100dvh}#root{width:400px;max-width:100%}.phone{width:400px;max-width:100%;height:844px;background:var(--ink);border-radius:36px;border:8px solid #000;box-shadow:0 40px 80px -20px #000000b3;overflow:hidden;position:relative;display:flex;flex-direction:column}@media (max-width: 480px){body{padding:0;display:block}#root{width:100%}.phone{width:100%;min-height:100vh;min-height:100dvh;height:100vh;height:100dvh;border-radius:0;border:none;box-shadow:none;padding-top:env(safe-area-inset-top);padding-bottom:env(safe-area-inset-bottom);padding-left:env(safe-area-inset-left);padding-right:env(safe-area-inset-right)}}@keyframes screenFadeIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes overlayFadeIn{0%{opacity:0}to{opacity:1}}.screen{flex:1;display:flex;flex-direction:column;overflow-y:auto;animation:screenFadeIn .28s ease-out}.modal-fade{animation:overlayFadeIn .2s ease-out}.btn,.chip,.method-card,.ticket,.settings-row,.city-item,.backbtn,.tabbtn,.toggle2 button,.switch,.city-pill,.photo-slot,.avatar,a{transition:transform .12s cubic-bezier(.34,1.56,.64,1),background-color .18s ease,border-color .18s ease,color .18s ease,opacity .18s ease,box-shadow .18s ease}.btn:active,.chip:active,.method-card:active,.ticket:active,.settings-row:active,.city-item:active,.backbtn:active,.tabbtn:active,.toggle2 button:active,.city-pill:active,.photo-slot:active,.avatar:active{transform:scale(.96)}.btn:disabled:active{transform:none}input,textarea,select{transition:border-color .18s ease,box-shadow .18s ease}input:focus,textarea:focus{box-shadow:0 0 0 3px #ff6b5726}input[type=date],input[type=time],input[type=number],select{-webkit-appearance:none;-moz-appearance:none;appearance:none;display:block}h1,h2,h3{font-family:Unbounded,sans-serif;letter-spacing:-.02em}.auth-wrap{padding:36px 26px;flex:1;display:flex;flex-direction:column}.auth-hero{margin-bottom:28px}.auth-hero .mark{width:52px;height:52px;border-radius:16px;background:linear-gradient(135deg,var(--coral),#c73f2e);display:flex;align-items:center;justify-content:center;font-family:Unbounded;font-weight:800;font-size:20px;color:#1a0d09;margin-bottom:18px}.auth-hero h1{font-size:26px;line-height:1.2;margin-bottom:8px}.auth-hero p{color:var(--text-dim);font-size:14px}.method-card{background:var(--card);border:1px solid var(--stroke);border-radius:16px;padding:18px;margin-bottom:12px;cursor:pointer;display:flex;align-items:center;gap:14px}.method-card:hover{border-color:var(--coral)}.field{margin-bottom:14px}.field.invalid input{border-color:#ff8b7d}.field-error{color:#ff8b7d;font-size:11px;margin-top:5px}.field-note{color:#ff8b7d;font-size:11px;line-height:1.5;opacity:.85}label{font-size:12px;color:var(--text-dim);margin-bottom:6px;display:block;font-weight:500}input,textarea,select{width:100%;background:var(--card);border:1px solid var(--stroke);color:var(--text);padding:13px 14px;border-radius:12px;font-family:Inter,sans-serif;font-size:16px;outline:none}input[type=checkbox],input[type=radio]{width:auto;padding:0;border-radius:4px;accent-color:var(--coral);flex-shrink:0}input:focus,textarea:focus{border-color:var(--coral)}textarea{resize:none;min-height:80px}.btn{display:flex;align-items:center;justify-content:center;gap:8px;padding:15px 20px;border-radius:14px;border:none;font-family:Inter,sans-serif;font-weight:600;font-size:15px;cursor:pointer;width:100%}.btn-primary{background:var(--coral);color:#1a0d09}.btn-primary:disabled{opacity:.4;cursor:not-allowed}.btn-ghost{background:var(--card);color:var(--text);border:1px solid var(--stroke)}.backbtn{width:34px;height:34px;border-radius:10px;background:var(--card);border:1px solid var(--stroke);color:var(--text);display:flex;align-items:center;justify-content:center;cursor:pointer;margin-bottom:16px}.chip-row{display:flex;flex-wrap:wrap}.chip{display:inline-flex;align-items:center;gap:6px;padding:9px 14px;border-radius:100px;border:1px solid var(--stroke);background:var(--card);font-size:13px;font-weight:500;color:var(--text-dim);cursor:pointer;margin:0 8px 8px 0}.chip.active{background:var(--coral);border-color:var(--coral);color:#1a0d09}.photo-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:6px}.photo-slot{aspect-ratio:1;border-radius:12px;background:var(--card);border:1px dashed var(--stroke);display:flex;align-items:center;justify-content:center;font-size:15px;cursor:pointer;color:var(--text-dim)}.photo-slot.filled{border-style:solid;border-color:var(--mint);color:var(--mint)}.dob-row{display:flex;gap:8px}.dob-row select{flex:1}.center-msg{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:24px}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.loading-gear{font-size:32px;animation:spin 1.6s linear infinite;margin-bottom:14px;display:inline-block}.app-shell{display:flex;flex-direction:column;height:100%;flex:1}.tab-content{flex:1;overflow-y:auto;display:flex;flex-direction:column}.tabbar{display:flex;border-top:1px solid var(--stroke);background:var(--ink-2);flex-shrink:0;padding:10px 8px}.tabbtn{flex:1;display:flex;flex-direction:column;align-items:center;gap:4px;background:none;border:none;color:var(--text-faint);font-size:10px;cursor:pointer;font-family:Inter;font-weight:600;padding:4px}.tabbtn .ic{display:flex;justify-content:center;margin-bottom:1px}.tabbtn.active{color:var(--coral)}.topbar{padding:18px 20px 12px;display:flex;align-items:center;justify-content:space-between;flex-shrink:0}.topbar h2{font-size:19px}.city-pill{display:flex;align-items:center;gap:6px;background:var(--card);border:1px solid var(--stroke);padding:8px 12px;border-radius:100px;font-size:12px;color:var(--text-dim);cursor:pointer}.map-filters{padding:0 20px 12px;display:flex;gap:8px;overflow-x:auto;flex-shrink:0}.map-canvas{flex:1;position:relative;margin:0 16px 16px;border-radius:24px;overflow:hidden;border:1px solid var(--stroke);min-height:320px}.map-live-frame{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;border:0}.city-item{padding:15px 20px;border-bottom:1px solid #22263a;font-size:14.5px;cursor:pointer;display:flex;justify-content:space-between}.city-item:hover{background:var(--card)}.city-item.active{color:var(--coral);font-weight:600}.ticket{background:var(--card);border:1px solid var(--stroke);border-radius:18px;margin:0 20px 14px;overflow:hidden;animation:screenFadeIn .32s ease-out both}.ticket:nth-of-type(1){animation-delay:.02s}.ticket:nth-of-type(2){animation-delay:.06s}.ticket:nth-of-type(3){animation-delay:.1s}.ticket:nth-of-type(4){animation-delay:.14s}.ticket:nth-of-type(5){animation-delay:.18s}.ticket:nth-of-type(n+6){animation-delay:.2s}.ticket-top{padding:16px 16px 14px}.ticket-cat{font-family:IBM Plex Mono,monospace;font-size:10px;text-transform:uppercase;letter-spacing:.1em;color:var(--gold);margin-bottom:8px;display:flex;align-items:center;gap:6px}.badge18{background:#3a1f1f;color:#ff8b7d;font-size:10px;padding:2px 7px;border-radius:6px;font-family:IBM Plex Mono,monospace}.badge-online{background:#1c3a34;color:var(--mint);font-size:10px;padding:2px 7px;border-radius:6px;font-family:IBM Plex Mono,monospace}.ticket h3{font-size:16px;margin-bottom:6px;font-weight:600;font-family:Inter;letter-spacing:0}.ticket .meta{font-size:12px;color:var(--text-dim);display:flex;flex-direction:column;gap:3px}.ticket-perf{display:flex;align-items:center;margin:0;border-top:1px dashed var(--stroke);position:relative}.ticket-perf:before,.ticket-perf:after{content:"";width:16px;height:16px;background:var(--ink);border-radius:50%;position:absolute;top:-8px}.ticket-perf:before{left:-8px}.ticket-perf:after{right:-8px}.ticket-bottom{padding:10px 16px 14px;display:flex;justify-content:space-between;align-items:center;font-size:12px;color:var(--text-dim)}.empty{text-align:center;padding:60px 30px;color:var(--text-faint);font-size:13px}.toggle2{display:flex;background:var(--card);border:1px solid var(--stroke);border-radius:12px;padding:4px;margin:0 20px 14px}.toggle2 button{flex:1;padding:9px;border:none;background:transparent;color:var(--text-dim);border-radius:9px;font-weight:600;font-size:13px;cursor:pointer}.toggle2 button.active{background:var(--coral);color:#1a0d09}.profile-hero{padding:24px 20px 10px;display:flex;align-items:center;gap:14px}.avatar{width:64px;height:64px;border-radius:18px;font-size:26px;background:var(--card-2);display:flex;align-items:center;justify-content:center;flex-shrink:0}.stat-box{flex:1;background:var(--card);border:1px solid var(--stroke);border-radius:14px;padding:12px;text-align:center;display:flex;flex-direction:column;align-items:center;justify-content:center}.stat-box .n{font-family:Unbounded;font-size:18px;color:var(--coral);line-height:1.2}.stat-box .l{font-size:9.5px;color:var(--text-dim);margin-top:3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}.switch{width:44px;height:26px;border-radius:100px;background:var(--card-2);border:1px solid var(--stroke);position:relative;cursor:pointer;flex-shrink:0}.switch .dot{width:20px;height:20px;border-radius:50%;background:var(--text-faint);position:absolute;top:2px;left:2px;transition:all .2s}.switch.on{background:var(--coral);border-color:var(--coral)}.switch.on .dot{background:#1a0d09;left:21px}.settings-row{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;border-bottom:1px solid #22263a;cursor:pointer}.onboarding-progress{display:flex;gap:5px}.onboarding-seg{flex:1;height:3px;border-radius:2px;background:var(--stroke);overflow:hidden}.onboarding-seg.filled{background:var(--coral)}.onboarding-seg-fill{height:100%;width:0%;background:var(--coral);border-radius:2px;animation:onboardingFill 15s linear forwards}@keyframes onboardingFill{0%{width:0%}to{width:100%}}.onboarding-body{flex:1;position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:0 24px}.onboarding-ic{font-size:64px}.onboarding-tap-zone{position:absolute;top:0;bottom:0;width:35%;cursor:pointer}.onboarding-tap-zone.left{left:0}.onboarding-tap-zone.right{right:0}.map-filters .chip{font-size:11.5px;padding:7px 11px;white-space:nowrap;gap:4px}
