:root{font-family:Inter,system-ui,-apple-system,Segoe UI,Roboto,sans-serif;color-scheme:dark;--bg: #05060a;--bg-2: #0a0d16;--panel: rgba(20, 23, 34, .72);--panel-solid: #12141f;--border: rgba(124, 247, 255, .14);--text: #e8ecf4;--muted: #8b93a7;--accent: #7cf7ff;--accent-2: #b98bff;--danger: #ff6b81;--warning: #ffcf6b;--success: #7bf0a0}*{box-sizing:border-box}body{margin:0;background:radial-gradient(circle at 20% 0%,#131a2e 0%,var(--bg) 45%),radial-gradient(circle at 90% 100%,#1a1030 0%,var(--bg) 55%),var(--bg);color:var(--text);min-height:100vh}#root{min-height:100vh}.app-shell{display:flex;flex-direction:column;height:100vh}.top-nav{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:12px 20px;border-bottom:1px solid var(--border);background:linear-gradient(180deg,#0c0e16e6,#0c0e1699);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);z-index:10;flex-wrap:wrap}.brand{display:flex;align-items:center;gap:10px;font-weight:700;font-size:16px;letter-spacing:.02em;background:linear-gradient(90deg,var(--accent),var(--accent-2));-webkit-background-clip:text;background-clip:text;color:transparent}.brand-mark{width:10px;height:10px;border-radius:50%;background:linear-gradient(135deg,var(--accent),var(--accent-2));box-shadow:0 0 12px 2px var(--accent)}.tab-group{display:flex;gap:6px;background:#ffffff08;border:1px solid var(--border);border-radius:999px;padding:4px}.tab-btn{display:flex;align-items:center;gap:6px;border:none;background:transparent;color:var(--muted);padding:8px 16px;border-radius:999px;font-size:13px;font-weight:600;cursor:pointer;transition:all .18s ease}.tab-btn:hover{color:var(--text)}.tab-btn.active{background:linear-gradient(90deg,#7cf7ff2e,#b98bff2e);color:var(--text);box-shadow:inset 0 0 0 1px var(--border)}.tab-icon{font-size:14px}.tab-body{flex:1;min-height:0;overflow:auto}.app{display:grid;grid-template-columns:1fr;height:100%}@media (min-width: 900px){.app{grid-template-columns:1fr 380px}}.map-pane{position:relative;background:var(--bg-2)}#map{width:100%;height:100%}.map-3d-hint{position:absolute;bottom:12px;left:12px;font-size:11px;color:var(--muted);background:#0a0c14b3;border:1px solid var(--border);padding:4px 10px;border-radius:999px;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.map-bound-count{position:absolute;bottom:12px;right:12px}.side-pane{display:flex;flex-direction:column;gap:12px;padding:16px;overflow-y:auto;border-left:1px solid var(--border);background:linear-gradient(180deg,rgba(10,13,22,.4),transparent)}.search-box{position:absolute;top:12px;left:12px;right:12px;z-index:5}.search-box input{width:100%;box-sizing:border-box;padding:12px 14px;border-radius:12px;border:1px solid var(--border);background:#0c0e16d9;color:var(--text);font-size:14px;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);box-shadow:0 4px 24px #0006}.search-box input:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px #7cf7ff26}.gmap-popup{width:220px;font-family:inherit;color:#1b1e26}.gmap-popup-photo{width:100%;height:90px;object-fit:cover;border-radius:8px;margin-bottom:6px}.gmap-popup-name{font-weight:700;font-size:14px}.gmap-popup-address{font-size:12px;color:#666;margin-bottom:4px}.gmap-popup-rating{font-size:12px;margin-bottom:8px}.gmap-popup-stars{color:#f5a623;margin-right:4px}.gmap-popup-count{color:#888}.gmap-popup-launch{width:100%;border:none;border-radius:8px;padding:8px 10px;font-weight:700;font-size:13px;cursor:pointer;background:linear-gradient(90deg,#17c9d6,#8b5cf6);color:#fff}.gmap-popup-ineligible{font-size:11px;color:#a33;line-height:1.4}.card{background:var(--panel);border:1px solid var(--border);border-radius:14px;padding:16px;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.glow-card{position:relative;box-shadow:0 0 0 1px #7cf7ff0f,0 8px 30px #00000059}.badge{display:inline-flex;align-items:center;gap:6px;padding:6px 10px;border-radius:999px;font-size:12px;font-weight:600;line-height:1}.badge-danger{background:#ff6b811f;color:var(--danger);border:1px solid rgba(255,107,129,.35)}.badge-warning{background:#ffcf6b1f;color:var(--warning);border:1px solid rgba(255,207,107,.35)}.badge-success{background:#7bf0a01f;color:var(--success);border:1px solid rgba(123,240,160,.35)}.badge-neutral{background:#ffffff0f;color:#c7cad1;border:1px solid rgba(255,255,255,.14)}.coin-row{display:flex;flex-direction:column;gap:8px;padding:10px;border-radius:10px;background:#ffffff08;border:1px solid var(--border)}.coin-row h4{margin:0;font-size:14px}button{cursor:pointer;border-radius:10px;border:1px solid var(--border);background:#ffffff0a;color:var(--text);padding:9px 14px;font-size:13px;transition:all .15s ease}button:hover:not(:disabled){border-color:var(--accent);box-shadow:0 0 12px #7cf7ff26}button.primary{background:linear-gradient(90deg,#17c9d6,#8b5cf6);border-color:transparent;color:#fff;font-weight:700}button.danger{background:#ff6b8126;border-color:#ff6b8166;color:#ffb3bf}button.success{background:#7bf0a026;border-color:#7bf0a066;color:#b6ffcf}button:disabled{opacity:.5;cursor:not-allowed}.muted{color:var(--muted);font-size:12px}.field{display:flex;flex-direction:column;gap:4px;margin-bottom:12px}.field-row{flex-direction:row;align-items:flex-start;gap:8px}.field-row input[type=checkbox]{margin-top:3px}.field label{font-size:12px;color:#b3b7bf}.field input,.field select,.field textarea{padding:9px 12px;border-radius:8px;border:1px solid var(--border);background:#080a1099;color:var(--text);font-family:inherit}.field input:focus,.field select:focus,.field textarea:focus{outline:none;border-color:var(--accent)}.field input[type=range]{padding:0;background:transparent;border:none}.launchpad-page{padding:24px;max-width:1100px;margin:0 auto}.launchpad-grid{display:grid;grid-template-columns:1fr;gap:20px}@media (min-width: 960px){.launchpad-grid{grid-template-columns:1.1fr .9fr}}.launch-form h3{font-size:13px;text-transform:uppercase;letter-spacing:.06em;color:var(--accent);margin:20px 0 10px}.launch-form h3:first-of-type{margin-top:4px}.prefill-banner{display:flex;align-items:center;gap:12px;padding:10px;margin-bottom:16px;border-radius:12px;background:#7cf7ff0f;border:1px solid var(--border)}.prefill-banner img{width:56px;height:56px;border-radius:10px;object-fit:cover}.prefill-name{font-weight:700;font-size:15px}.curve-card{background:var(--panel);border:1px solid var(--border);border-radius:14px;padding:16px;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.curve-svg{width:100%;height:200px;display:block}.curve-line-anim{filter:drop-shadow(0 0 6px rgba(124,247,255,.6));stroke-dasharray:6 4000;animation:curve-draw 1.6s ease-out forwards}@keyframes curve-draw{to{stroke-dasharray:4000 0}}.curve-marker{fill:#fff;stroke:var(--accent-2);stroke-width:2;filter:drop-shadow(0 0 6px var(--accent-2))}.curve-marker-drop{stroke:#b98bff59;stroke-width:1;stroke-dasharray:4 4}.curve-legend{display:flex;justify-content:space-between;font-size:11px;color:var(--muted);margin-top:8px}.curve-pct{color:var(--accent);font-weight:600}.explore-page{padding:24px;max-width:1200px;margin:0 auto}.explore-header{display:flex;justify-content:space-between;align-items:flex-end;flex-wrap:wrap;gap:12px;margin-bottom:20px}.explore-sort{display:flex;align-items:center;gap:8px}.explore-sort select{padding:6px 10px;border-radius:8px;border:1px solid var(--border);background:#080a1099;color:var(--text)}.market-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:16px}.market-card{display:flex;flex-direction:column;gap:12px}.market-card-top{display:flex;align-items:center;gap:10px}.market-icon{width:40px;height:40px;border-radius:10px;object-fit:cover;flex-shrink:0}.market-icon-fallback{display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#7cf7ff40,#b98bff40);font-weight:700;font-size:12px}.market-name{font-weight:700;font-size:14px}.market-change{margin-left:auto;font-size:12px;font-weight:700;white-space:nowrap}.market-change.up{color:var(--success)}.market-change.down{color:var(--danger)}.market-stats{display:grid;grid-template-columns:1fr 1fr;gap:10px}.stat-value{font-weight:700;font-size:13px}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0009;display:flex;align-items:center;justify-content:center;z-index:20}.modal{background:var(--panel-solid);border:1px solid var(--border);border-radius:14px;padding:20px;width:360px;max-width:calc(100vw - 32px)}
