.error-boundary{display:flex;align-items:center;justify-content:center;min-height:100vh;padding:20px;background:#000}.error-boundary-content{max-width:400px;text-align:center;color:#fff;padding:32px;background:#1a1a1a;border-radius:16px;border:2px solid #333}.error-icon{font-size:64px;margin-bottom:16px}.error-boundary-content h2{font-size:24px;margin-bottom:12px;color:#fff}.error-boundary-content p{font-size:16px;color:#999;margin-bottom:24px;line-height:1.5}.error-details{margin:20px 0;padding:12px;background:#2a2a2a;border-radius:8px;text-align:left;font-size:12px;color:#ccc}.error-details summary{cursor:pointer;margin-bottom:8px;color:#ff6b9d;font-weight:600}.error-details pre{margin:8px 0 0;white-space:pre-wrap;word-break:break-word;color:#ff6b6b}.error-retry-btn{background:#ff6b9d;color:#fff;border:none;padding:12px 24px;border-radius:24px;font-size:16px;font-weight:600;cursor:pointer;transition:background .2s}.error-retry-btn:hover{background:#ff5a8a}.splash-screen{position:fixed;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;background:linear-gradient(180deg,#0f0f12,#15151a);z-index:9999}.splash-logo-wrap{text-align:center;animation:splash-fade-in .5s ease}.splash-logo-icon{font-size:48px;margin-bottom:12px}.splash-logo-text{margin:0;font-size:40px;font-weight:800;letter-spacing:.5px;color:#fff}.splash-subtitle{margin-top:8px;color:#b8b8c0;font-size:14px}@keyframes splash-fade-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.app{display:flex;flex-direction:column;height:100vh;background:var(--bg-primary, #0a0a0f)}.header{background:var(--bg-secondary, #12121a);padding:14px 16px;border-bottom:1px solid var(--border-subtle, rgba(255,255,255,.08));position:sticky;top:0;z-index:100;display:flex;align-items:center;gap:12px}.header-title{font-size:18px;font-weight:700;color:var(--text-primary, #fff);margin:0;flex:1;letter-spacing:-.02em}.back-button{background:none;border:none;font-size:22px;color:var(--text-primary);cursor:pointer;padding:0;width:36px;height:36px;display:flex;align-items:center;justify-content:center;border-radius:8px}.back-button:hover{background:var(--bg-elevated, #1c1c28)}.content{flex:1;overflow-y:auto;background:var(--bg-primary, #0a0a0f);-webkit-overflow-scrolling:touch}.tab-bar{display:flex;background:var(--bg-secondary, #12121a);border-top:1px solid var(--border-subtle, rgba(255,255,255,.08));padding:6px 0 10px;padding-bottom:max(10px,env(safe-area-inset-bottom));position:sticky;bottom:0;z-index:100}.tab{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:6px 4px;background:none;border:none;cursor:pointer;color:var(--text-muted, #71717a);transition:color .2s,transform .15s}.tab:active{transform:scale(.96)}.tab.active{color:var(--accent-primary, #ff2d95)}.tab-icon{font-size:22px;margin-bottom:2px}.tab-label{font-size:11px;font-weight:500}.notification-bell{background:none;border:none;font-size:22px;cursor:pointer;position:relative;padding:8px;color:var(--text-secondary);transition:transform .2s,color .2s}.notification-bell:hover{transform:scale(1.08);color:var(--text-primary)}.notification-badge{position:absolute;top:2px;right:2px;background:var(--accent-primary, #ff2d95);color:#fff;border-radius:10px;padding:2px 6px;font-size:10px;font-weight:600;min-width:18px;text-align:center}:root{--bg-primary: #0a0a0f;--bg-secondary: #12121a;--bg-card: #16161f;--bg-elevated: #1c1c28;--accent-primary: #ff2d95;--accent-secondary: #00d4aa;--accent-tertiary: #7c3aed;--accent-glow: rgba(255, 45, 149, .4);--text-primary: #ffffff;--text-secondary: #a1a1aa;--text-muted: #71717a;--online: #22c55e;--out-tonight: #f59e0b;--verified: #3b82f6;--border-subtle: rgba(255, 255, 255, .08);--border-accent: rgba(255, 45, 149, .3)}*{margin:0;padding:0;box-sizing:border-box}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:var(--bg-primary, #0a0a0f);color:var(--text-primary, #fff);overflow-x:hidden}#root{width:100%;min-height:100vh}
