:root{color-scheme:dark;--bg: #0b0b16;--bg-elev: #151527;--bg-elev-2: #1e1e33;--fg: #f4f4f8;--fg-dim: #9a9ab0;--accent: #e048c6;--accent-2: #7c5cff;--danger: #ff5470;--ok: #3ddc97;--border: #2a2a40;--radius: 14px}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;font-family:system-ui,-apple-system,Segoe UI,Roboto,Helvetica Neue,sans-serif;background:radial-gradient(1200px 700px at 20% -10%,#1c1140 0%,var(--bg) 55%);color:var(--fg);-webkit-font-smoothing:antialiased}button{font-family:inherit;cursor:pointer;border:none;background:none;color:inherit}input,textarea{font-family:inherit}.app-shell{height:100%;display:flex;flex-direction:column;max-width:720px;margin:0 auto}.onboarding{display:flex;flex-direction:column;justify-content:center;min-height:100%;padding:1.5rem;gap:1rem}.onboarding h1{font-size:2rem;margin:0;background:linear-gradient(90deg,var(--accent),var(--accent-2));-webkit-background-clip:text;background-clip:text;color:transparent}.onboarding p.sub{color:var(--fg-dim);margin:0}.card{background:var(--bg-elev);border:1px solid var(--border);border-radius:var(--radius);padding:1.25rem}.field{display:flex;flex-direction:column;gap:.4rem;margin-bottom:1rem}.field label{font-size:.85rem;color:var(--fg-dim)}.field input{background:var(--bg-elev-2);border:1px solid var(--border);border-radius:10px;padding:.75rem .9rem;color:var(--fg);font-size:1rem}.field input:focus{outline:none;border-color:var(--accent)}.btn{background:linear-gradient(90deg,var(--accent),var(--accent-2));color:#fff;font-weight:600;border-radius:10px;padding:.85rem 1.1rem;width:100%;font-size:1rem}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-ghost{background:var(--bg-elev-2);border:1px solid var(--border);color:var(--fg)}.error{color:var(--danger);font-size:.9rem}.geo-status{font-size:.85rem;color:var(--fg-dim);display:flex;align-items:center;gap:.4rem}.header{display:flex;align-items:center;justify-content:space-between;padding:.8rem 1rem;border-bottom:1px solid var(--border);background:var(--bg-elev)}.header .brand{font-weight:700}.header .brand small{color:var(--fg-dim);font-weight:400;display:block;font-size:.75rem}.header-actions{display:flex;gap:.5rem}.icon-btn{background:var(--bg-elev-2);border:1px solid var(--border);border-radius:10px;padding:.45rem .7rem;font-size:.85rem}.tabs{display:flex;gap:.25rem;padding:.5rem 1rem;background:var(--bg-elev);border-bottom:1px solid var(--border);overflow-x:auto}.tab{padding:.5rem .9rem;border-radius:999px;color:var(--fg-dim);white-space:nowrap;font-size:.9rem}.tab.active{background:linear-gradient(90deg,var(--accent),var(--accent-2));color:#fff}.arrivals{display:flex;gap:.5rem;padding:.6rem 1rem;background:#e048c614;border-bottom:1px solid var(--border);overflow-x:auto;align-items:center}.arrival-chip{background:var(--bg-elev-2);border:1px solid var(--accent);color:var(--fg);border-radius:999px;padding:.3rem .7rem;font-size:.8rem;white-space:nowrap;animation:pop .3s ease}@keyframes pop{0%{transform:scale(.6);opacity:0}to{transform:scale(1);opacity:1}}.chat-body{flex:1;overflow-y:auto;padding:1rem;display:flex;flex-direction:column;gap:.5rem}.msg{max-width:80%;display:flex;flex-direction:column;gap:.15rem}.msg.mine{align-self:flex-end;align-items:flex-end}.msg .bubble{background:var(--bg-elev-2);border:1px solid var(--border);padding:.6rem .8rem;border-radius:14px;word-break:break-word}.msg.mine .bubble{background:linear-gradient(90deg,var(--accent),var(--accent-2));border:none;color:#fff}.msg .meta{font-size:.72rem;color:var(--fg-dim);display:flex;gap:.4rem;align-items:center}.msg .author{cursor:pointer;color:var(--fg);font-weight:600}.msg .report-btn{font-size:.7rem;color:var(--fg-dim);padding:0}.msg .report-btn:hover{color:var(--danger)}.empty{color:var(--fg-dim);text-align:center;margin-top:2rem}.composer{display:flex;gap:.5rem;padding:.75rem 1rem;border-top:1px solid var(--border);background:var(--bg-elev)}.composer input{flex:1;background:var(--bg-elev-2);border:1px solid var(--border);border-radius:999px;padding:.7rem 1rem;color:var(--fg)}.composer input:focus{outline:none;border-color:var(--accent)}.composer .send{background:linear-gradient(90deg,var(--accent),var(--accent-2));border-radius:999px;width:42px;height:42px;display:flex;align-items:center;justify-content:center;color:#fff;font-weight:700}.list{flex:1;overflow-y:auto;padding:.75rem;display:flex;flex-direction:column;gap:.5rem}.list-item{display:flex;align-items:center;gap:.75rem;background:var(--bg-elev);border:1px solid var(--border);border-radius:12px;padding:.75rem .9rem;text-align:left}.list-item .name{font-weight:600}.list-item .sub{color:var(--fg-dim);font-size:.8rem}.avatar{width:40px;height:40px;border-radius:50%;background:linear-gradient(135deg,var(--accent),var(--accent-2));display:flex;align-items:center;justify-content:center;font-weight:700;color:#fff;flex-shrink:0}.dm-screen{position:fixed;top:0;right:0;bottom:0;left:0;background:var(--bg);display:flex;flex-direction:column;z-index:20;max-width:720px;margin:0 auto}.online-dot{width:8px;height:8px;border-radius:50%;background:var(--ok);display:inline-block}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0009;display:flex;align-items:center;justify-content:center;z-index:30;padding:1rem}.modal{background:var(--bg-elev);border:1px solid var(--border);border-radius:var(--radius);padding:1.25rem;width:100%;max-width:360px;display:flex;flex-direction:column;gap:.75rem}.modal h3{margin:0}.modal textarea{background:var(--bg-elev-2);border:1px solid var(--border);border-radius:10px;padding:.7rem;color:var(--fg);resize:vertical;min-height:70px}.modal-actions{display:flex;gap:.5rem}.modal-actions .btn{flex:1}.landing{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:100%;text-align:center;padding:2rem;gap:.75rem}.landing .big{font-size:3rem}.admin{padding:1rem;display:flex;flex-direction:column;gap:1rem;max-width:720px;margin:0 auto}table{width:100%;border-collapse:collapse;font-size:.85rem}th,td{text-align:left;padding:.5rem;border-bottom:1px solid var(--border)}.mono{font-family:ui-monospace,SF Mono,monospace;font-size:.8rem}
