/* DigiPro - Estilos Globales v7.2.0 */

:root {
  --color-primary: #4472C4;
  --color-secondary: #00D4FF;
  --color-success: #00B050;
  --color-warning: #FFA500;
  --color-error: #FF5050;
  --color-bg-dark: #0F0F0F;
  --color-bg-card: #1F1F1F;
  --color-border: #404040;
  --color-text: #FFFFFF;
  --color-text-secondary: #909090;

  --border-radius-sm: 4px;
  --border-radius-md: 8px;
  --border-radius-lg: 12px;
  --border-radius-xl: 20px;

  --shadow-sm: 0 2px 8px rgba(0,0,0,0.2);
  --shadow-md: 0 4px 16px rgba(0,0,0,0.3);
  --shadow-lg: 0 8px 32px rgba(0,0,0,0.5);
  --shadow-xl: 0 20px 60px rgba(0,0,0,0.5);

  --transition-fast: 0.2s ease-out;
  --transition-normal: 0.3s ease-in-out;
  --transition-slow: 0.5s ease-out;
}

/* Reset básico */
*, *::before, *::after { box-sizing: border-box; }

body {
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
  line-height: 1.5;
  color: var(--color-text);
  background: linear-gradient(135deg, #1a2a4e 0%, #2d1b4e 100%);
  min-height: 100vh;
}

/* Glass card */
.glass {
  background: rgba(31, 31, 31, 0.85);
  backdrop-filter: blur(10px);
  border: 1px solid rgba(255, 255, 255, 0.08);
}

.glass-card {
  background: linear-gradient(180deg, rgba(31,31,31,0.95) 0%, rgba(20,20,20,0.95) 100%);
  backdrop-filter: blur(10px);
  border: 2px solid var(--color-primary);
  box-shadow: var(--shadow-xl);
}

/* Animaciones */
@keyframes gradient {
  0%   { background-position: 0% 50%; }
  50%  { background-position: 100% 50%; }
  100% { background-position: 0% 50%; }
}
.animate-gradient {
  background-size: 200% 200%;
  animation: gradient 3s ease infinite;
}

@keyframes fadeSlideUp {
  from { opacity: 0; transform: translateY(24px); }
  to   { opacity: 1; transform: translateY(0); }
}
.animate-fade-slide-up {
  animation: fadeSlideUp 0.5s ease-out forwards;
}

@keyframes logoEntrance {
  0%   { opacity: 0; transform: scale(0.8); filter: drop-shadow(0 0 0px #4472C4); }
  60%  { transform: scale(1.08); filter: drop-shadow(0 0 12px #4472C4); }
  100% { opacity: 1; transform: scale(1); filter: drop-shadow(0 0 6px rgba(68,114,196,0.6)); }
}
.animate-logo {
  animation: logoEntrance 0.8s ease-out forwards;
}

/* Orbes decorativos */
.login-orb {
  position: fixed;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(68,114,196,0.15) 0%, transparent 70%);
  pointer-events: none;
  z-index: 0;
  animation: orbFloat 8s ease-in-out infinite;
}
@keyframes orbFloat {
  0%, 100% { transform: translateY(0) scale(1); }
  50%       { transform: translateY(-20px) scale(1.05); }
}

/* Input */
.input-dp {
  width: 100%;
  height: 50px;
  background: #2a2a2a;
  border: 1px solid var(--color-border);
  border-radius: var(--border-radius-md);
  color: #fff;
  font-size: 16px;
  padding: 0 16px 0 46px;
  transition: var(--transition-normal);
  box-sizing: border-box;
}
.input-dp:focus {
  outline: none;
  border-color: var(--color-primary);
  box-shadow: 0 0 0 3px rgba(68, 114, 196, 0.2);
}

/* Botón principal */
.btn-primary-dp {
  background: linear-gradient(135deg, var(--color-primary), var(--color-secondary));
  height: 56px;
  width: 100%;
  border-radius: var(--border-radius-md);
  font-size: 18px;
  font-weight: 700;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  color: #fff;
  border: none;
  cursor: pointer;
  box-shadow: 0 0 20px rgba(68, 114, 196, 0.4);
  transition: var(--transition-fast);
}
.btn-primary-dp:hover:not(:disabled) {
  transform: translateY(-2px);
  box-shadow: 0 0 30px rgba(68, 114, 196, 0.6);
  filter: brightness(110%);
}
.btn-primary-dp:active  { transform: translateY(0); }
.btn-primary-dp:disabled { opacity: 0.7; cursor: not-allowed; }

/* Botón secundario (outline) */
.btn-secondary-dp {
  border: 2px solid var(--color-secondary);
  background: transparent;
  color: var(--color-secondary);
  border-radius: var(--border-radius-md);
  padding: 6px 16px;
  font-weight: 600;
  font-size: 13px;
  cursor: pointer;
  transition: var(--transition-fast);
  text-decoration: none;
  display: inline-block;
}
.btn-secondary-dp:hover { background: rgba(0, 212, 255, 0.1); }

/* KPI card hover */
.kpi-card { transition: var(--transition-normal); }
.kpi-card:hover {
  transform: translateY(-4px);
  box-shadow: var(--shadow-lg) !important;
}

/* Sidebar nav item */
.nav-item {
  transition: var(--transition-fast);
  border-left: 4px solid transparent;
}
.nav-item:hover,
.nav-item.active {
  background: #2a2a2a !important;
  border-left-color: var(--color-primary) !important;
  color: white !important;
}
