.profile-page-container { position: relative; width: 100%; min-height: 100vh; background-color: #0a0c10; color: #e0e6ed; overflow-x: hidden; display: flex; justify-content: center; padding: 80px 20px; font-family: var(--nexus-font-sans); } .background-radial { position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); width: 800px; height: 800px; background: radial-gradient(circle, rgba(0, 255, 153, 0.05) 0%, transparent 70%); pointer-events: none; z-index: 0; } .mesh-overlay { position: absolute; top: 0; left: 0; width: 100%; height: 100%; background-image: radial-gradient(circle at 1px 1px, rgba(255, 255, 255, 0.02) 1px, transparent 0); background-size: 32px 32px; z-index: 1; } .profile-content { position: relative; z-index: 10; width: 100%; max-width: 900px; display: flex; flex-direction: column; align-items: center; gap: 60px; } /* Identity Section */ .identity-section { display: flex; flex-direction: column; align-items: center; gap: 24px; text-align: center; } .avatar-container { position: relative; width: 140px; height: 140px; display: flex; justify-content: center; align-items: center; } .avatar-inner { width: 120px; height: 120px; background: #151921; border: 2px solid var(--nexus-neon); border-radius: 50%; display: flex; justify-content: center; align-items: center; font-size: 3.5rem; font-weight: 800; color: var(--nexus-neon); z-index: 2; box-shadow: 0 0 30px rgba(0, 255, 153, 0.2), inset 0 0 20px rgba(0, 255, 153, 0.1); position: relative; } .avatar-glow { position: absolute; width: 140px; height: 140px; border: 1px solid rgba(0, 255, 153, 0.3); border-radius: 50%; animation: pulse-ring 3s cubic-bezier(0.4, 0, 0.2, 1) infinite; } @keyframes pulse-ring { 0% { transform: scale(0.95); opacity: 0.8; } 50% { transform: scale(1.1); opacity: 0.2; } 100% { transform: scale(0.95); opacity: 0.8; } } .username { font-family: var(--nexus-font-serif); font-size: 2.8rem; font-weight: 700; margin: 0; letter-spacing: -0.01em; color: #ffffff; } .system-rank { font-family: 'Inter', 'Courier New', Courier, monospace; font-size: 0.9rem; color: var(--nexus-neon); text-transform: uppercase; letter-spacing: 0.2em; opacity: 0.8; } /* Metrics Grid */ .metrics-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 24px; width: 100%; } .glass-panel { background: rgba(20, 20, 20, 0.8); /* Fallback */ border: 1px solid rgba(255, 255, 255, 0.08); border-radius: 24px; padding: 32px; transition: all 0.3s ease; } @supports (backdrop-filter: blur(12px)) { .glass-panel { background: rgba(255, 255, 255, 0.03); backdrop-filter: blur(12px); -webkit-backdrop-filter: blur(12px); } } .glass-panel:hover { background: rgba(255, 255, 255, 0.05); border-color: rgba(0, 255, 153, 0.2); transform: translateY(-4px); } .metric-card { display: flex; flex-direction: column; gap: 24px; } .full-width { grid-column: span 2; } .card-header { display: flex; align-items: center; gap: 12px; } .card-header h3 { font-size: 0.9rem; font-weight: 600; text-transform: uppercase; letter-spacing: 0.1em; color: #a0aec0; margin: 0; } .card-body { display: flex; flex-direction: column; gap: 12px; } /* Usage Progress */ .token-usage { display: flex; flex-direction: column; gap: 12px; } .usage-values { display: flex; align-items: baseline; gap: 8px; } .usage-values .current { font-size: 2.5rem; font-weight: 800; color: #fff; line-height: 1; } .usage-values .separator { font-size: 1.2rem; color: #4a5568; } .usage-values .total { font-size: 1.2rem; color: #718096; font-weight: 600; } .usage-progress { width: 100%; height: 6px; background: rgba(255, 255, 255, 0.05); border-radius: 10px; overflow: hidden; } .progress-bar { height: 100%; background: var(--nexus-neon); box-shadow: 0 0 15px rgba(0, 255, 153, 0.5); border-radius: 10px; } .metric-label { font-size: 0.75rem; color: #718096; text-transform: uppercase; letter-spacing: 0.05em; } /* Score Display */ .score-display { display: flex; flex-direction: column; } .score-value { font-size: 2.5rem; font-weight: 800; color: var(--nexus-neon); line-height: 1; } .score-label { font-size: 0.75rem; color: #718096; text-transform: uppercase; margin-top: 4px; } .last-book { margin-top: 12px; display: flex; align-items: center; gap: 8px; padding: 10px 16px; background: rgba(0, 255, 153, 0.05); border-radius: 12px; font-size: 0.85rem; color: #cbd5e0; } .truncate { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; max-width: 300px; } /* Status Layout */ .status-layout { flex-direction: row; justify-content: space-between; align-items: center; } .status-info { display: flex; flex-direction: column; gap: 8px; } .plan-badge { padding: 6px 14px; border-radius: 8px; font-size: 0.8rem; font-weight: 800; text-transform: uppercase; letter-spacing: 0.05em; width: fit-content; } .plan-badge.pro { background: rgba(0, 255, 153, 0.1); color: var(--nexus-neon); border: 1px solid rgba(0, 255, 153, 0.2); } .tenant-tag { font-family: monospace; font-size: 0.75rem; color: #4a5568; } .profile-actions { display: flex; gap: 16px; } .btn-nexus { padding: 12px 24px; border-radius: 12px; font-size: 0.9rem; font-weight: 700; cursor: pointer; transition: all 0.2s ease; display: flex; align-items: center; gap: 8px; border: none; } .btn-nexus.secondary { background: rgba(255, 255, 255, 0.05); color: #fff; border: 1px solid rgba(255, 255, 255, 0.1); } .btn-nexus.secondary:hover { background: rgba(255, 255, 255, 0.1); } .btn-nexus.logout { background: rgba(255, 71, 87, 0.1); color: #ff4757; border: 1px solid rgba(255, 71, 87, 0.2); } .btn-nexus.logout:hover { background: #ff4757; color: #fff; } /* Decorations */ .decoration { position: absolute; font-family: monospace; font-size: 0.7rem; color: rgba(255, 255, 255, 0.05); letter-spacing: 0.3em; pointer-events: none; } .decoration-top { top: 40px; left: 40px; } .decoration-bottom { bottom: 40px; right: 40px; } /* Loading State */ .loading-state { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 24px; } .nexus-loader { width: 60px; height: 60px; border: 4px solid rgba(0, 255, 153, 0.1); border-top-color: var(--nexus-neon); border-radius: 50%; animation: spin 1.5s cubic-bezier(0.5, 0, 0.5, 1) infinite; filter: drop-shadow(0 0 10px var(--nexus-neon)); } @keyframes spin { to { transform: rotate(360deg); } } @media (max-width: 768px) { .metrics-grid { grid-template-columns: 1fr; } .full-width { grid-column: span 1; } .status-layout { flex-direction: column; align-items: flex-start; gap: 24px; } .profile-actions { width: 100%; flex-direction: column; } .btn-nexus { width: 100%; justify-content: center; } .username { font-size: 2.2rem; } }