:root{--bg-primary: #0a0e1a;--bg-card: #111827;--bg-input: #1a2235;--bg-hover: #1e293b;--bg-overlay: rgba(0, 0, 0, .6);--accent-sky: #4CC9F0;--accent-teal: #00b4d8;--accent-green: #2e9f3f;--accent-yellow: #f7d31e;--accent-orange: #f7941d;--accent-red: #e64a19;--accent-gradient: #f7941d;--accent-primary: #f7941d;--accent-primary-hover: #d97d0a;--text-primary: #ffffff;--text-secondary: #94a3b8;--text-muted: #64748b;--border: rgba(255, 255, 255, .08);--border-focus: rgba(247, 148, 29, .5);--radius-sm: 8px;--radius-md: 12px;--radius-lg: 16px;--radius-xl: 24px;--radius-full: 9999px;--space-xs: 4px;--space-sm: 8px;--space-md: 16px;--space-lg: 24px;--space-xl: 32px;--space-2xl: 48px;--text-xs: .75rem;--text-sm: .875rem;--text-base: 1rem;--text-lg: 1.125rem;--text-xl: 1.25rem;--text-2xl: 1.5rem;--text-3xl: 1.875rem;--shadow-card: 0 4px 24px rgba(0, 0, 0, .3);--shadow-lg: 0 8px 32px rgba(0, 0, 0, .4);--tab-bar-height: 64px;--transition-fast: .15s ease;--transition-normal: .25s ease}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html,body,#root{height:100%;width:100%;overflow:hidden}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;background:var(--bg-primary);color:var(--text-primary);line-height:1.5;-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent}a{color:var(--accent-primary);text-decoration:none}.page{height:100%;overflow-y:auto;-webkit-overflow-scrolling:touch}.page-padded{padding:var(--space-md);padding-bottom:calc(var(--tab-bar-height) + var(--space-lg))}.auth-page{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:100%;padding:var(--space-xl);text-align:center}.auth-logo{width:120px;height:120px;object-fit:contain;margin-bottom:var(--space-lg)}.auth-title{font-size:var(--text-2xl);font-weight:700;margin-bottom:var(--space-xs)}.auth-subtitle{font-size:var(--text-sm);color:var(--text-secondary);margin-bottom:var(--space-xl)}.auth-privacy-link{margin-top:var(--space-xl);font-size:var(--text-xs);color:var(--text-muted);text-decoration:none;transition:color var(--transition-fast)}.auth-privacy-link:hover{color:var(--text-secondary)}.auth-form{width:100%;max-width:360px;display:flex;flex-direction:column;gap:var(--space-md)}.phone-input-row{display:flex;gap:0;align-items:stretch}.country-picker{position:relative;flex-shrink:0}.country-picker-btn{display:flex;align-items:center;gap:6px;padding:14px 10px;background:var(--bg-input);border:1px solid var(--border);border-right:none;border-radius:var(--radius-md) 0 0 var(--radius-md);color:var(--text-primary);font-size:var(--text-sm);cursor:pointer;height:100%;transition:border-color var(--transition-fast);white-space:nowrap}.country-picker-btn:hover{background:var(--bg-hover)}.country-flag{font-size:18px;line-height:1}.country-dial{color:var(--text-secondary);font-size:var(--text-sm);font-weight:500}.country-chevron{font-size:8px;color:var(--text-muted)}.phone-number-input{border-radius:0 var(--radius-md) var(--radius-md) 0!important;flex:1;min-width:0}.country-dropdown{position:absolute;top:100%;left:0;margin-top:4px;width:280px;max-height:320px;background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-md);box-shadow:var(--shadow-lg);z-index:500;display:flex;flex-direction:column;overflow:hidden}.country-search{width:100%;padding:12px 14px;background:var(--bg-input);border:none;border-bottom:1px solid var(--border);color:var(--text-primary);font-size:var(--text-sm);outline:none}.country-search::placeholder{color:var(--text-muted)}.country-list{overflow-y:auto;flex:1;-webkit-overflow-scrolling:touch}.country-option{display:flex;align-items:center;gap:10px;width:100%;padding:10px 14px;background:none;border:none;color:var(--text-primary);font-size:var(--text-sm);cursor:pointer;text-align:left;transition:background var(--transition-fast)}.country-option:hover{background:var(--bg-hover)}.country-option.selected{background:#f7941d1a}.country-option .country-name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.country-option .country-dial{color:var(--text-muted);flex-shrink:0}.country-no-results{padding:20px;text-align:center;color:var(--text-muted);font-size:var(--text-sm)}.input{width:100%;padding:14px 16px;background:var(--bg-input);border:1px solid var(--border);border-radius:var(--radius-md);color:var(--text-primary);font-size:var(--text-base);outline:none;transition:border-color var(--transition-fast)}.input:focus{border-color:var(--border-focus)}.input::placeholder{color:var(--text-muted)}.input-label{display:block;font-size:var(--text-sm);color:var(--text-secondary);margin-bottom:var(--space-xs);text-align:left}.input-group{display:flex;flex-direction:column;gap:var(--space-xs)}.textarea{width:100%;padding:14px 16px;background:var(--bg-input);border:1px solid var(--border);border-radius:var(--radius-md);color:var(--text-primary);font-size:var(--text-base);outline:none;resize:vertical;min-height:100px;font-family:inherit;transition:border-color var(--transition-fast)}.textarea:focus{border-color:var(--border-focus)}.textarea::placeholder{color:var(--text-muted)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-sm);padding:14px 24px;border:none;border-radius:var(--radius-md);font-size:var(--text-base);font-weight:600;cursor:pointer;transition:all var(--transition-fast);text-decoration:none}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background:var(--accent-primary);color:#fff}.btn-primary:hover:not(:disabled){background:var(--accent-primary-hover)}.btn-gradient{background:radial-gradient(circle at 20% 80%,#4CC9F0 0%,transparent 50%),radial-gradient(circle at 80% 20%,#e64a19 0%,transparent 50%),radial-gradient(circle at 50% 50%,#f7d31e 0%,transparent 60%),radial-gradient(circle at 10% 20%,#2e9f3f 0%,transparent 50%),radial-gradient(circle at 90% 80%,#f7941d 0%,transparent 50%),#f7941d;color:#fff}.btn-gradient:hover:not(:disabled){opacity:.9}.btn-outline{background:transparent;color:var(--text-primary);border:1px solid var(--border)}.btn-outline:hover:not(:disabled){background:var(--bg-hover)}.btn-danger{background:var(--accent-red);color:#fff}.btn-danger:hover:not(:disabled){background:#c53a12}.btn-ghost{background:transparent;color:var(--text-secondary);padding:var(--space-sm) var(--space-md)}.btn-ghost:hover:not(:disabled){color:var(--text-primary)}.btn-sm{padding:8px 16px;font-size:var(--text-sm)}.btn-block{width:100%}.btn-icon{width:40px;height:40px;padding:0;border-radius:var(--radius-full)}.card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-lg);padding:var(--space-md);box-shadow:var(--shadow-card)}.card-row{display:flex;align-items:center;gap:var(--space-md);padding:var(--space-md);background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-lg);cursor:pointer;transition:background var(--transition-fast)}.card-row:hover{background:var(--bg-hover)}.avatar{width:48px;height:48px;border-radius:var(--radius-full);object-fit:cover;background:var(--bg-input);flex-shrink:0}.avatar-lg{width:80px;height:80px}.avatar-xl{width:120px;height:120px}.avatar-placeholder{display:flex;align-items:center;justify-content:center;background:var(--bg-input);color:var(--text-muted);font-size:var(--text-xl);font-weight:600}.otp-container{display:flex;gap:var(--space-sm);justify-content:center}.otp-digit{width:48px;height:56px;text-align:center;font-size:var(--text-2xl);font-weight:700;background:var(--bg-input);border:2px solid var(--border);border-radius:var(--radius-md);color:var(--text-primary);outline:none;transition:border-color var(--transition-fast)}.otp-digit:focus{border-color:var(--accent-primary)}.tab-bar{position:fixed;bottom:0;left:0;right:0;background:var(--bg-card);border-top:1px solid var(--border);display:flex;align-items:stretch;justify-content:space-around;z-index:100;padding-bottom:0}@supports (padding-bottom: env(safe-area-inset-bottom)){@media(display-mode:standalone){.tab-bar{padding-bottom:env(safe-area-inset-bottom,0)}}}.tab-item{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;padding:12px var(--space-sm);color:var(--text-muted);font-size:var(--text-xs);text-decoration:none;transition:color var(--transition-fast);cursor:pointer;background:none;border:none}.tab-item.active{color:var(--accent-sky)}.tab-item svg{width:24px;height:24px}.tab-icon-wrap{position:relative;display:inline-flex}.tab-badge{position:absolute;top:-6px;right:-10px;min-width:16px;height:16px;padding:0 4px;border-radius:8px;background:var(--accent-red, #e64a19);color:#fff;font-size:10px;font-weight:600;line-height:16px;text-align:center}.notification-list{display:flex;flex-direction:column;gap:var(--space-sm)}.notification-card{display:flex;align-items:center;gap:var(--space-sm);padding:var(--space-md);background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-md);cursor:pointer;transition:background var(--transition-fast)}.notification-card:hover{background:var(--bg-hover)}.notification-card.unread{background:var(--bg-hover);border-color:var(--accent-sky)}.notification-icon{flex-shrink:0;width:36px;height:36px;border-radius:50%;background:var(--bg-hover);display:flex;align-items:center;justify-content:center}.notification-icon svg{width:18px;height:18px;color:var(--accent-sky)}.notification-content{flex:1;min-width:0}.notification-title{font-size:var(--text-sm);font-weight:600;color:var(--text-primary)}.notification-body{font-size:var(--text-xs);color:var(--text-muted);margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.notification-time{font-size:10px;color:var(--text-muted);margin-top:4px}.notification-dot{width:8px;height:8px;border-radius:50%;background:var(--accent-sky);flex-shrink:0}.page-header{display:flex;align-items:center;justify-content:space-between;padding:var(--space-md);gap:var(--space-md)}.page-header h1{font-size:var(--text-xl);font-weight:700}.header-logo{height:36px;width:auto;object-fit:contain}.back-btn{display:flex;align-items:center;gap:var(--space-xs);color:var(--text-secondary);background:none;border:none;font-size:var(--text-sm);cursor:pointer;padding:var(--space-sm)}.back-btn:hover{color:var(--text-primary)}.grid-2{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--space-md)}.list-stack{display:flex;flex-direction:column;gap:var(--space-md)}.character-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-lg);overflow:hidden;cursor:pointer;transition:all var(--transition-fast)}.character-card:hover{border-color:#ffffff26;transform:translateY(-2px)}.character-card-img{width:100%;aspect-ratio:1;object-fit:cover;background:var(--bg-input)}.character-card-body{padding:var(--space-sm) var(--space-md) var(--space-md)}.character-card-name{font-weight:600;font-size:var(--text-sm);margin-bottom:2px}.character-card-desc{font-size:var(--text-xs);color:var(--text-muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.room-card{display:flex;align-items:center;gap:var(--space-md);padding:var(--space-md);background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-lg);cursor:pointer;transition:all var(--transition-fast)}.room-card:hover{background:var(--bg-hover);border-color:#ffffff26}.room-card-avatar{width:56px;height:56px;border-radius:var(--radius-md);object-fit:cover;background:var(--bg-input);flex-shrink:0}.room-card-info{flex:1;min-width:0}.room-card-name{font-weight:600;margin-bottom:2px}.room-card-meta{font-size:var(--text-xs);color:var(--text-muted)}.room-card-status{width:10px;height:10px;border-radius:var(--radius-full);flex-shrink:0}.room-card-status.online{background:var(--accent-green);box-shadow:0 0 8px #2e9f3f66}.room-card-status.offline{background:var(--text-muted)}.friend-card{display:flex;align-items:center;gap:var(--space-md);padding:var(--space-sm) 0}.friend-card-info{flex:1;min-width:0}.friend-card-name{font-weight:600;font-size:var(--text-sm)}.friend-card-username{font-size:var(--text-xs);color:var(--text-muted)}.profile-header{display:flex;flex-direction:column;align-items:center;padding:var(--space-xl) var(--space-md);gap:var(--space-md)}.profile-name{font-size:var(--text-xl);font-weight:700}.profile-username{color:var(--text-muted);font-size:var(--text-sm);margin-top:-8px}.section-title{font-size:var(--text-lg);font-weight:600;margin-bottom:var(--space-md)}.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--space-2xl);color:var(--text-muted);text-align:center;gap:var(--space-md)}.empty-state-icon{font-size:48px;opacity:.5}.empty-state-icon-svg{width:48px;height:48px;opacity:.4;color:var(--text-muted)}.spinner{width:24px;height:24px;border:3px solid var(--border);border-top-color:var(--accent-primary);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.loading-page{display:flex;align-items:center;justify-content:center;height:100%}.loading-brand{display:flex;flex-direction:column;align-items:center;gap:var(--space-md)}.loading-logo{width:80px;height:80px;object-fit:contain;animation:logoPulse 1.8s ease-in-out infinite}@keyframes logoPulse{0%,to{opacity:.6;transform:scale(.95)}50%{opacity:1;transform:scale(1.05)}}.loading-dots{display:flex;gap:6px}.loading-dots span{width:6px;height:6px;border-radius:50%;background:var(--accent-primary);animation:dotBounce 1.2s ease-in-out infinite}.loading-dots span:nth-child(1){background:var(--accent-teal)}.loading-dots span:nth-child(2){background:var(--accent-green)}.loading-dots span:nth-child(3){background:var(--accent-orange)}.loading-dots span:nth-child(2){animation-delay:.2s}.loading-dots span:nth-child(3){animation-delay:.4s}@keyframes dotBounce{0%,80%,to{opacity:.3;transform:scale(.8)}40%{opacity:1;transform:scale(1.2)}}.error-msg{color:var(--accent-red);font-size:var(--text-sm);text-align:center}.gradient-text{background:linear-gradient(90deg,#4cc9f0,#2e9f3f,#f7941d);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:var(--bg-overlay);display:flex;align-items:center;justify-content:center;z-index:200;padding:var(--space-md)}.modal{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-xl);padding:var(--space-lg);width:100%;max-width:400px;box-shadow:var(--shadow-lg)}.modal-title{font-size:var(--text-lg);font-weight:600;margin-bottom:var(--space-md)}.room-container{position:fixed;top:0;right:0;bottom:0;left:0;z-index:300;background:var(--bg-primary)}.room-container iframe{width:100%;height:100%;border:none}.room-back-btn{position:fixed;top:calc(env(safe-area-inset-top,20px) + var(--space-sm));left:var(--space-md);z-index:301;background:#0009;color:#fff;border:1px solid var(--border);border-radius:var(--radius-full);width:40px;height:40px;display:flex;align-items:center;justify-content:center;cursor:pointer;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.upload-area{border:2px dashed var(--border);border-radius:var(--radius-lg);padding:var(--space-xl);text-align:center;cursor:pointer;transition:all var(--transition-fast);color:var(--text-muted)}.upload-area:hover{border-color:var(--accent-primary);color:var(--text-secondary)}.upload-preview{width:100%;max-width:200px;aspect-ratio:1;object-fit:cover;border-radius:var(--radius-md);margin:0 auto;display:block}.search-bar{position:relative}.search-bar .input{padding-left:40px}.search-bar svg{position:absolute;left:12px;top:50%;transform:translateY(-50%);color:var(--text-muted);width:18px;height:18px}.divider{height:1px;background:var(--border);margin:var(--space-md) 0}.fab{position:fixed;bottom:calc(var(--tab-bar-height) + var(--space-md));right:var(--space-md);width:56px;height:56px;border-radius:var(--radius-full);background:radial-gradient(circle at 25% 75%,#4CC9F0 0%,transparent 55%),radial-gradient(circle at 75% 25%,#e64a19 0%,transparent 55%),radial-gradient(circle at 50% 50%,#f7d31e 0%,transparent 65%),radial-gradient(circle at 15% 25%,#2e9f3f 0%,transparent 55%),radial-gradient(circle at 85% 75%,#f7941d 0%,transparent 55%),#f7941d;color:#fff;border:none;font-size:var(--text-2xl);display:flex;align-items:center;justify-content:center;cursor:pointer;box-shadow:0 4px 20px #f7941d59;z-index:50;transition:transform var(--transition-fast)}.fab:hover{transform:scale(1.05)}
