*,*:before,*:after{margin:0;padding:0;box-sizing:border-box}:root{--bg-primary: #0a0a12;--bg-secondary: #12121f;--bg-card: rgba(22, 22, 40, .65);--bg-card-border: rgba(255, 255, 255, .06);--text-primary: #eaeaf4;--text-secondary: #9898b8;--text-muted: #5e5e7e;--accent-gold: #fbbf24;--accent-gold-dim: rgba(251, 191, 36, .15);--accent-red: #ef4444;--accent-green: #22c55e;--accent-blue: #3b82f6;--accent-purple: #a855f7;--glass-blur: 18px;--font-family: "Outfit", system-ui, -apple-system, sans-serif;--ease-out: cubic-bezier(.16, 1, .3, 1)}html{font-size:16px;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{font-family:var(--font-family);background:var(--bg-primary);color:var(--text-primary);min-height:100vh;overflow-x:hidden}.app{position:relative;display:flex;flex-direction:column;align-items:center;min-height:100vh;padding:2rem 1.25rem 3rem}.app-bg{position:fixed;top:0;right:0;bottom:0;left:0;z-index:-1;background:radial-gradient(ellipse 60% 50% at 50% 0%,rgba(168,85,247,.12) 0%,transparent 70%),radial-gradient(ellipse 40% 40% at 80% 80%,rgba(251,191,36,.08) 0%,transparent 60%),var(--bg-primary)}.app-header{text-align:center;margin-bottom:2.5rem}.app-title{font-size:2.5rem;font-weight:800;letter-spacing:-.03em;background:linear-gradient(135deg,var(--accent-gold) 0%,#f59e0b 50%,var(--accent-purple) 100%);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;line-height:1.2}.title-icon{-webkit-text-fill-color:initial;background:none;margin-right:.15em}.app-subtitle{margin-top:.5rem;font-size:1rem;font-weight:400;color:var(--text-secondary);letter-spacing:.02em}.app-main{width:100%;max-width:480px;display:flex;flex-direction:column;gap:1.5rem}.card{border-radius:1.25rem;padding:1.5rem}.glass-card{background:var(--bg-card);backdrop-filter:blur(var(--glass-blur));-webkit-backdrop-filter:blur(var(--glass-blur));border:1px solid var(--bg-card-border);box-shadow:0 4px 32px #00000040,inset 0 1px #ffffff0a}.status-bar{display:flex;flex-direction:column;gap:.75rem}.status-row{display:flex;align-items:center;justify-content:space-between}.status-indicator-group{display:flex;align-items:center;gap:.5rem}.status-dot{width:10px;height:10px;border-radius:50%;flex-shrink:0}.status-connected{background:var(--accent-green);box-shadow:0 0 8px #22c55e80;animation:pulse-green 2s ease-in-out infinite}.status-connecting,.status-reconnecting{background:var(--accent-gold);box-shadow:0 0 8px #fbbf2480;animation:pulse-gold 1.2s ease-in-out infinite}.status-disconnected{background:var(--text-muted)}.status-error{background:var(--accent-red);box-shadow:0 0 8px #ef444480}.status-label{font-size:.85rem;font-weight:500;color:var(--text-secondary)}.location-row{justify-content:flex-start}.location-text{font-size:.85rem;color:var(--text-secondary)}.location-icon{margin-right:.25rem}.location-error{color:var(--accent-red)}.idle-card{text-align:center;padding:2.5rem 1.5rem}.idle-icon{font-size:3rem;margin-bottom:1rem;animation:float 3s ease-in-out infinite}.idle-text{color:var(--text-secondary);font-size:.95rem;line-height:1.6}.radar-container{position:relative;width:120px;height:120px;margin:1.5rem auto 0}.radar-ring{position:absolute;top:0;right:0;bottom:0;left:0;border-radius:50%;border:1px solid rgba(251,191,36,.15)}.radar-ring-1{animation:radar-expand 3s ease-out infinite}.radar-ring-2{animation:radar-expand 3s ease-out infinite 1s}.radar-ring-3{animation:radar-expand 3s ease-out infinite 2s}.radar-dot{position:absolute;top:50%;left:50%;width:10px;height:10px;margin:-5px 0 0 -5px;border-radius:50%;background:var(--accent-gold);box-shadow:0 0 12px #fbbf2499}.elvis-alert{position:relative;border-radius:1.25rem;padding:2rem 1.5rem;text-align:center;background:linear-gradient(135deg,#ef44442e,#fbbf241f);border:1px solid rgba(239,68,68,.3);box-shadow:0 0 40px #ef44441a;animation:alert-in .5s var(--ease-out) both}.alert-dismiss{position:absolute;top:.75rem;right:.75rem;background:none;border:none;color:var(--text-muted);font-size:1.1rem;cursor:pointer;padding:.25rem;transition:color .2s}.alert-dismiss:hover{color:var(--text-primary)}.alert-icon-wrapper{margin-bottom:.75rem}.alert-icon{font-size:2.5rem;animation:alert-shake .6s ease-in-out infinite}.alert-title{font-size:1.5rem;font-weight:700;background:linear-gradient(90deg,var(--accent-red),var(--accent-gold));-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;margin-bottom:.5rem}.alert-message{color:var(--text-secondary);font-size:.95rem;margin-bottom:1rem}.alert-coords{display:flex;flex-direction:column;gap:.15rem}.alert-coord-label{font-size:.75rem;font-weight:500;text-transform:uppercase;letter-spacing:.08em;color:var(--text-muted)}.alert-coord-value{font-size:.9rem;color:var(--text-secondary);font-variant-numeric:tabular-nums}.report-section{display:flex;flex-direction:column;align-items:center;gap:.5rem}.report-btn{width:100%;max-width:480px;padding:1rem 1.5rem;border-radius:1rem;border:none;font-family:var(--font-family);font-size:1.05rem;font-weight:600;cursor:pointer;transition:all .25s var(--ease-out);background:linear-gradient(135deg,var(--accent-gold) 0%,#f59e0b 100%);color:#1a1a2e;box-shadow:0 4px 20px #fbbf2440}.report-btn:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 6px 28px #fbbf2459}.report-btn:active:not(:disabled){transform:translateY(0)}.report-btn:disabled{opacity:.45;cursor:not-allowed}.report-btn-success{background:linear-gradient(135deg,var(--accent-green) 0%,#16a34a 100%);box-shadow:0 4px 20px #22c55e40}.report-btn-error{background:linear-gradient(135deg,var(--accent-red) 0%,#dc2626 100%);box-shadow:0 4px 20px #ef444440}.report-btn-disabled{background:linear-gradient(135deg,#3a3a52,#2a2a3e);box-shadow:none;color:var(--text-muted)}.report-hint{font-size:.8rem;color:var(--text-muted)}.app-footer{margin-top:auto;padding-top:3rem;text-align:center;font-size:.75rem;color:var(--text-muted)}@keyframes pulse-green{0%,to{opacity:1}50%{opacity:.5}}@keyframes pulse-gold{0%,to{opacity:1}50%{opacity:.4}}@keyframes float{0%,to{transform:translateY(0)}50%{transform:translateY(-8px)}}@keyframes radar-expand{0%{transform:scale(.3);opacity:.7}to{transform:scale(1);opacity:0}}@keyframes alert-in{0%{opacity:0;transform:translateY(16px) scale(.96)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes alert-shake{0%,to{transform:rotate(0)}25%{transform:rotate(-8deg)}75%{transform:rotate(8deg)}}@media(max-width:480px){.app{padding:1.5rem 1rem 2rem}.app-title{font-size:2rem}.idle-card{padding:2rem 1rem}}
