/* SamaceVPN / Segyric Mobile Dark Cyber Design System */

:root {
  --bg-color: #0B0F19;
  --card-bg: #131B2E;
  --card-border: rgba(255, 255, 255, 0.08);
  --primary: #00F2FE;
  --primary-glow: rgba(0, 242, 254, 0.35);
  --accent: #4FACFE;
  --connected: #10B981;
  --connected-glow: rgba(16, 185, 129, 0.4);
  --disconnected: #EF4444;
  --text-main: #F8FAFC;
  --text-muted: #64748B;
  --nav-height: 58px;
}

* {
  box-sizing: border-box;
  -webkit-tap-highlight-color: transparent;
  user-select: none;
}

body {
  margin: 0;
  padding: 0;
  background-color: #050811;
  color: var(--text-main);
  font-family: -apple-system, BlinkMacSystemFont, "SF Pro Text", "Segoe UI", Roboto, sans-serif;
  overflow: hidden;
  height: 100vh;
  width: 100vw;
}

.mobile-shell {
  display: flex;
  flex-direction: column;
  height: 100vh;
  width: 100%;
  max-width: 440px;
  margin: 0 auto;
  position: relative;
  background: radial-gradient(circle at 50% 0%, #152238 0%, #0B0F19 80%);
  box-shadow: 0 0 60px rgba(0, 0, 0, 0.9);
  overflow: hidden;
}

/* OFFLINE BANNER CONTROL */
.offline-banner {
  display: none;
  background: #EF4444;
  color: #ffffff;
  padding: 8px 12px;
  text-align: center;
  font-size: 11px;
  font-weight: 700;
  z-index: 300;
  width: 100%;
}

.offline-banner.active {
  display: block;
}

/* 1. ANIMATED SPLASH SCREEN */
.splash-screen {
  position: absolute;
  top: 0; left: 0; right: 0; bottom: 0;
  background: radial-gradient(circle at 50% 30%, #1E293B 0%, #050811 100%);
  z-index: 200;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  transition: opacity 0.5s ease, transform 0.5s ease;
}

.splash-screen.hide {
  opacity: 0;
  transform: scale(1.05);
  pointer-events: none;
}

.splash-logo-ring {
  width: 90px;
  height: 90px;
  border-radius: 50%;
  background: linear-gradient(135deg, #00F2FE 0%, #4FACFE 100%);
  display: flex;
  align-items: center;
  justify-content: center;
  box-shadow: 0 0 40px var(--primary-glow);
  animation: pulseLogo 2s infinite alternate;
}

@keyframes pulseLogo {
  0% { transform: scale(0.95); box-shadow: 0 0 25px var(--primary-glow); }
  100% { transform: scale(1.05); box-shadow: 0 0 50px var(--primary-glow); }
}

/* 2. ONBOARDING SCREEN CAROUSEL */
.onboarding-screen {
  position: absolute;
  top: 0; left: 0; right: 0; bottom: 0;
  background: #0B0F19;
  z-index: 150;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  padding: 28px 20px;
  transition: opacity 0.5s ease, transform 0.5s ease;
}

.onboarding-screen.hide {
  opacity: 0;
  transform: translateY(20px);
  pointer-events: none;
}

.onboarding-slide {
  display: none;
  flex-direction: column;
  align-items: center;
  text-align: center;
  animation: fadeIn 0.4s ease forwards;
}

.onboarding-slide.active {
  display: flex;
}

@keyframes fadeIn {
  from { opacity: 0; transform: translateY(10px); }
  to { opacity: 1; transform: translateY(0); }
}

.slide-dot {
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.2);
  transition: all 0.3s ease;
}

.slide-dot.active {
  width: 18px;
  border-radius: 12px;
  background: var(--primary);
}

/* 3. MANDATORY AUTH SCREEN GATE */
.auth-screen-gate {
  position: absolute;
  top: 0; left: 0; right: 0; bottom: 0;
  background: radial-gradient(circle at 50% 20%, #152238 0%, #0B0F19 100%);
  z-index: 120;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  padding: 28px 20px 20px 20px;
  overflow-y: auto;
  transition: opacity 0.5s ease, transform 0.5s ease;
}

.auth-screen-gate.hide {
  opacity: 0;
  transform: translateY(-20px);
  pointer-events: none;
}

.auth-tab-btn {
  flex: 1;
  padding: 8px;
  text-align: center;
  font-size: 12px;
  font-weight: 700;
  border-radius: 10px;
  color: var(--text-muted);
  cursor: pointer;
  transition: all 0.25s ease;
}

.auth-tab-btn.active {
  background: linear-gradient(135deg, #00F2FE 0%, #4FACFE 100%);
  color: #050811;
  box-shadow: 0 4px 15px var(--primary-glow);
}

/* 4. MAIN APP HEADER & CONTENT */
.mobile-header {
  padding: 12px 16px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  background: rgba(11, 15, 25, 0.9);
  backdrop-filter: blur(16px);
  z-index: 40;
  border-bottom: 1px solid var(--card-border);
}

.mobile-content {
  flex: 1;
  overflow-y: auto;
  padding: 16px;
  padding-bottom: 75px;
}

.glass-card {
  background: var(--card-bg);
  border: 1px solid var(--card-border);
  border-radius: 16px;
  padding: 14px;
  backdrop-filter: blur(12px);
  box-shadow: 0 6px 24px rgba(0, 0, 0, 0.25);
}

/* 5. VPN POWER BUTTON */
.vpn-power-container {
  display: flex;
  flex-direction: column;
  align-items: center;
  margin: 18px 0;
}

.vpn-power-btn {
  width: 140px;
  height: 140px;
  border-radius: 50%;
  background: linear-gradient(135deg, #1A243B 0%, #0D1322 100%);
  border: 3px solid rgba(255, 255, 255, 0.08);
  box-shadow: 0 12px 28px rgba(0, 0, 0, 0.6);
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  position: relative;
  transition: all 0.35s cubic-bezier(0.34, 1.56, 0.64, 1);
}

.vpn-power-btn:active {
  transform: scale(0.92);
}

.vpn-power-btn.connected {
  border-color: var(--connected);
  box-shadow: 0 0 40px var(--connected-glow), inset 0 0 20px rgba(16, 185, 129, 0.3);
}

.vpn-power-btn.connecting, .vpn-power-btn.reconnecting {
  border-color: var(--primary);
  animation: pulseGlow 1.2s infinite alternate;
}

@keyframes pulseGlow {
  0% { box-shadow: 0 0 15px var(--primary-glow); transform: scale(0.98); }
  100% { box-shadow: 0 0 45px var(--primary-glow); transform: scale(1.03); }
}

.ripple-ring {
  position: absolute;
  width: 140px;
  height: 140px;
  border-radius: 50%;
  border: 2px solid var(--connected);
  opacity: 0;
  pointer-events: none;
}

.vpn-power-btn.connected .ripple-ring {
  animation: ripple 2s infinite cubic-bezier(0, 0.2, 0.8, 1);
}

@keyframes ripple {
  0% { transform: scale(1); opacity: 0.8; }
  100% { transform: scale(1.5); opacity: 0; }
}

/* 6. SLEEK 5-TAB COMPACT NATIVE MOBILE BOTTOM NAVIGATION BAR */
.mobile-bottom-nav {
  position: absolute;
  bottom: 0; left: 0; right: 0;
  height: var(--nav-height);
  background: rgba(15, 22, 38, 0.96);
  backdrop-filter: blur(20px);
  border-top: 1px solid rgba(255, 255, 255, 0.06);
  display: flex;
  justify-content: space-around;
  align-items: center;
  z-index: 50;
  padding: 0 2px;
}

.nav-item {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  color: #64748B;
  font-size: 9.5px;
  font-weight: 600;
  letter-spacing: 0.01em;
  cursor: pointer;
  transition: all 0.2s ease;
  width: 20%;
  height: 100%;
  padding: 3px 0;
  position: relative;
}

.nav-item svg {
  width: 18px;
  height: 18px;
  margin-bottom: 2px;
  stroke-width: 1.8;
  transition: transform 0.2s ease, color 0.2s ease;
}

.nav-item.active {
  color: #00F2FE;
}

.nav-item.active svg {
  color: #00F2FE;
  transform: translateY(-1px);
  filter: drop-shadow(0 0 6px rgba(0, 242, 254, 0.5));
}

.nav-item.active::before {
  content: '';
  position: absolute;
  top: 0;
  width: 20px;
  height: 2px;
  background: #00F2FE;
  border-radius: 0 0 4px 4px;
  box-shadow: 0 2px 8px #00F2FE;
}

/* Bottom Sheet Modal */
.bottom-sheet-backdrop {
  position: absolute;
  top: 0; left: 0; right: 0; bottom: 0;
  background: rgba(0, 0, 0, 0.75);
  backdrop-filter: blur(6px);
  z-index: 100;
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.3s ease;
}

.bottom-sheet-backdrop.show {
  opacity: 1;
  pointer-events: auto;
}

.bottom-sheet {
  position: absolute;
  bottom: 0; left: 0; right: 0;
  background: #111827;
  border-top-left-radius: 24px;
  border-top-right-radius: 24px;
  border-top: 1px solid var(--card-border);
  padding: 16px;
  max-height: 80vh;
  display: flex;
  flex-direction: column;
  transform: translateY(100%);
  transition: transform 0.35s cubic-bezier(0.32, 0.72, 0, 1);
}

.bottom-sheet-backdrop.show .bottom-sheet {
  transform: translateY(0);
}

/* Toast alert */
.toast-msg {
  position: fixed;
  top: 40px;
  left: 50%;
  transform: translateX(-50%);
  background: rgba(17, 24, 43, 0.95);
  color: white;
  border: 1px solid var(--primary);
  padding: 8px 16px;
  border-radius: 24px;
  font-size: 11px;
  font-weight: 700;
  box-shadow: 0 8px 24px rgba(0, 242, 254, 0.25);
  z-index: 250;
  transition: all 0.3s ease;
}

/* Standalone Utility Classes */
.flex { display: flex; }
.flex-col { flex-direction: column; }
.items-center { align-items: center; }
.justify-between { justify-content: space-between; }
.justify-center { justify-content: center; }
.gap-1 { gap: 4px; }
.gap-2 { gap: 8px; }
.gap-3 { gap: 12px; }
.grid { display: grid; }
.grid-cols-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.grid-cols-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.w-full { width: 100%; }
.w-1\/3 { width: 33.333333%; }
.w-2\/3 { width: 66.666667%; }
.w-4 { width: 16px; } .h-4 { height: 16px; }
.w-5 { width: 18px; } .h-5 { height: 18px; }
.w-8 { width: 30px; } .h-8 { height: 30px; }
.w-9 { width: 34px; } .h-9 { height: 34px; }
.w-12 { width: 44px; } .h-12 { height: 44px; }
.w-16 { width: 56px; } .h-16 { height: 56px; }
.w-24 { width: 80px; } .h-24 { height: 80px; }
.text-center { text-align: center; }
.text-right { text-align: right; }
.text-white { color: #ffffff; }
.text-slate-400 { color: #94a3b8; }
.text-slate-300 { color: #cbd5e1; }
.text-slate-200 { color: #e2e8f0; }
.text-cyan-400 { color: #22d3ee; }
.text-cyan-300 { color: #67e8f9; }
.text-emerald-400 { color: #34d399; }
.text-emerald-300 { color: #6ee7b7; }
.text-purple-400 { color: #c084fc; }
.text-amber-400 { color: #fbbf24; }
.text-red-500 { color: #ef4444; }
.text-red-400 { color: #f87171; }
.text-red-300 { color: #fca5a5; }
.text-xs { font-size: 11px; line-height: 15px; }
.text-sm { font-size: 13px; line-height: 18px; }
.text-base { font-size: 15px; line-height: 22px; }
.text-lg { font-size: 17px; line-height: 24px; }
.text-2xl { font-size: 22px; line-height: 28px; }
.text-3xl { font-size: 26px; line-height: 32px; }
.font-semibold { font-weight: 600; }
.font-bold { font-weight: 700; }
.font-extrabold { font-weight: 800; }
.font-black { font-weight: 900; }
.font-mono { font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace; }
.uppercase { text-transform: uppercase; }
.tracking-tight { letter-spacing: -0.02em; }
.tracking-wider { letter-spacing: 0.04em; }
.tracking-widest { letter-spacing: 0.08em; }
.bg-slate-900 { background-color: #0f172a; }
.bg-slate-800 { background-color: #1e293b; }
.border { border-width: 1px; }
.border-b { border-bottom-width: 1px; }
.border-slate-700 { border-color: #334155; }
.border-slate-800 { border-color: #1e293b; }
.border-cyan-400 { border-color: #22d3ee; }
.rounded-xl { border-radius: 10px; }
.rounded-2xl { border-radius: 14px; }
.rounded-3xl { border-radius: 20px; }
.rounded-full { border-radius: 9999px; }
.p-2\.5 { padding: 10px; }
.p-3 { padding: 10px; }
.p-3\.5 { padding: 12px; }
.p-4 { padding: 14px; }
.p-5 { padding: 16px; }
.pb-2 { padding-bottom: 8px; }
.pt-2 { padding-top: 8px; }
.mb-1 { margin-bottom: 3px; }
.mb-2 { margin-bottom: 6px; }
.mb-3 { margin-bottom: 10px; }
.mb-4 { margin-bottom: 14px; }
.mb-6 { margin-bottom: 20px; }
.mb-8 { margin-bottom: 28px; }
.mt-1 { margin-top: 3px; }
.mt-2 { margin-top: 6px; }
.mt-4 { margin-top: 14px; }
.mt-6 { margin-top: 20px; }
.mt-12 { margin-top: 40px; }
.my-3 { margin-top: 10px; margin-bottom: 10px; }
.mx-auto { margin-left: auto; margin-right: auto; }
.space-y-1 > * + * { margin-top: 4px; }
.space-y-2 > * + * { margin-top: 6px; }
.space-y-3 > * + * { margin-top: 10px; }
.space-y-4 > * + * { margin-top: 14px; }
.cursor-pointer { cursor: pointer; }
.shadow-lg { box-shadow: 0 8px 16px -2px rgba(0, 0, 0, 0.1); }
.shadow-xl { box-shadow: 0 16px 24px -4px rgba(0, 0, 0, 0.1); }
.shadow-2xl { box-shadow: 0 20px 40px -8px rgba(0, 0, 0, 0.25); }
.animate-spin { animation: spin 1s linear infinite; }
@keyframes spin { from { transform: rotate(0deg); } to { transform: rotate(360deg); } }
