body { min-height: 100vh; background: radial-gradient(circle at 20% 0%, rgba(var(--nn-primary-rgb), .18), transparent 30rem), var(--nn-bg); }
.glass-nav { background: rgba(14,16,22,.82); backdrop-filter: blur(18px); }
.hero { background: linear-gradient(135deg, rgba(var(--nn-primary-rgb),.2), rgba(40,215,161,.08)); border: 1px solid var(--nn-border); }
.card, .stat-card { background: var(--nn-surface); border-color: var(--nn-border); }
.btn-primary { --bs-btn-bg: var(--nn-primary); --bs-btn-border-color: var(--nn-primary); --bs-btn-hover-bg: color-mix(in srgb, var(--nn-primary) 85%, white); --bs-btn-hover-border-color: var(--bs-btn-hover-bg); }
.live-dot { font-size:.72rem; color:var(--nn-accent); font-weight:800; letter-spacing:.08em; }
.live-dot::before { content:""; display:inline-block; width:.55rem; height:.55rem; border-radius:50%; background:var(--nn-accent); margin-right:.4rem; box-shadow:0 0 0 .25rem rgba(40,215,161,.12); }
.mini-person { display:flex; gap:.9rem; align-items:center; padding:.75rem 0; border-bottom:1px solid var(--nn-border); }
.mini-person:last-child { border-bottom:0; }.mini-person>span{font-size:1.5rem}.mini-person small{display:block;color:var(--nn-muted)}
.map-shell { height: 68vh; min-height: 430px; overflow:hidden; border:1px solid var(--nn-border); }
.radar-person { background:var(--nn-surface); border:1px solid var(--nn-border); border-radius:1rem; padding:1rem; }
.avatar-circle { width:2.8rem;height:2.8rem;border-radius:50%;display:grid;place-items:center;background:var(--nn-surface-2);font-weight:700; }
.empty-state { text-align:center; padding:4rem 1rem; color:var(--nn-muted); border:1px dashed var(--nn-border); border-radius:1rem; }
.chat-box { min-height:50vh; max-height:62vh; overflow:auto; }
.chat-row { display:flex; margin:.55rem 0; }.chat-row.mine{justify-content:flex-end}.chat-bubble{max-width:75%;background:var(--nn-surface-2);padding:.7rem 1rem;border-radius:1rem}.chat-row.mine .chat-bubble{background:var(--nn-primary)}
.stat-card { border:1px solid var(--nn-border); border-radius:1rem; padding:1.2rem; }.stat-card span{display:block;color:var(--nn-muted)}.stat-card strong{font-size:2rem}
.leaflet-container { background:#10131b; }
code { color: #cbbcff; }
.invite-qr { width: 11rem; height: 11rem; background: white; padding: .5rem; }
.nn-marker-wrap { background: transparent; border: 0; }
.nn-marker { width: 2.1rem; height: 2.1rem; border-radius: 50%; display: grid; place-items: center; border: 2px solid var(--nn-marker-border); box-shadow: 0 .25rem 1rem var(--nn-marker-shadow); }
.nn-marker-person { background: var(--nn-primary); color: var(--nn-text); }
.nn-marker-flash { background: var(--nn-flash); color: var(--nn-flash-text); }
.nn-marker-flash.flash-state-upcoming { background: var(--nn-flash-upcoming); color: var(--nn-flash-upcoming-text); }
.nn-marker-flash.flash-state-ongoing { background: var(--nn-flash); color: var(--nn-flash-text); }
.flash-title-row { display:flex; align-items:center; gap:.45rem; flex-wrap:wrap; margin-bottom:.2rem; }
.flash-title-row strong { overflow-wrap:anywhere; }
.flash-kind-icon { width:1.75rem; height:1.75rem; flex:0 0 1.75rem; display:inline-grid; place-items:center; border:0; border-radius:50%; padding:0; cursor:help; }
.flash-kind-icon.flash-state-ongoing { background:var(--nn-flash); color:var(--nn-flash-text); }
.flash-kind-icon.flash-state-upcoming { background:var(--nn-flash-upcoming); color:var(--nn-flash-upcoming-text); }
.flash-kind-icon:focus-visible { outline:2px solid #fff; outline-offset:2px; }
.flash-interest { min-width:2rem; min-height:2rem; }
.flash-state-ongoing-text { color:var(--nn-flash); }
.flash-state-upcoming-text { color:var(--nn-flash-upcoming); }
.nn-marker-me { background: var(--nn-accent); color: var(--nn-bg); }
.flash-card { border-style: dashed; }
.dropdown-menu { --bs-dropdown-bg: var(--nn-surface-2); --bs-dropdown-border-color: var(--nn-border); }
