/* ============================================================
   veridion-theme.css — Sistema de diseño Veridion Portal
   Tema: Claro · Paleta Olivo Profundo · Verde Teal · Arena
   Tipografía: Cormorant Garamond · DM Sans · Space Mono
   ============================================================ */

@import url('https://fonts.googleapis.com/css2?family=Cormorant+Garamond:ital,wght@0,300;0,400;0,600;1,300;1,400&family=DM+Sans:wght@300;400;500;600&family=Space+Mono:wght@400;700&display=swap');

/* ── VARIABLES GLOBALES ──────────────────────────────────── */
:root {
  /* Colores principales */
  --verde:          #2E3329;
  --verde-med:      #3D6B5E;
  --verde-light:    #5A8C7A;
  --verde-pale:     rgba(61,107,94,0.08);
  --arena:          #C9B99A;
  --arena-light:    #EDE5D8;
  --cream:          #F5F1EA;
  --white:          #FDFCFA;
  --ink:            #1E211C;
  --ink-soft:       #2E3329;
  --muted:          #6B7065;
  --mist:           #9AA08E;
  --card:           #FDFCFA;
  --card2:          #F5F1EA;
  --border:         rgba(46,51,41,0.12);
  --border-med:     rgba(46,51,41,0.22);
  --border-arena:   rgba(201,185,154,0.35);
  --shadow:         0 2px 20px rgba(46,51,41,0.07);
  --shadow-md:      0 4px 32px rgba(46,51,41,0.10);
  /* Semánticos */
  --gold:           #C9B99A;
  --red:            #C62828;
  --amber:          #BA7517;
  --green:          #1D9E75;
  --blue:           #185FA5;
  /* Tipografía */
  --font-serif:     'Cormorant Garamond', Georgia, serif;
  --font-sans:      'DM Sans', system-ui, sans-serif;
  --font-mono:      'Space Mono', monospace;
  /* Radio */
  --r-sm: 4px; --r-md: 8px; --r-lg: 12px; --r-xl: 16px;
}

/* ── RESET BASE ──────────────────────────────────────────── */
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }

body {
  font-family: var(--font-sans);
  font-size: 14px;
  line-height: 1.6;
  color: var(--ink);
  background: var(--cream);
}

/* ── SCROLLBAR ───────────────────────────────────────────── */
::-webkit-scrollbar       { width: 4px; height: 4px; }
::-webkit-scrollbar-track { background: transparent; }
::-webkit-scrollbar-thumb { background: rgba(61,107,94,0.25); border-radius: 2px; }
::-webkit-scrollbar-thumb:hover { background: var(--verde-med); }

/* ── COMPONENTES BASE ────────────────────────────────────── */

/* Header del portal */
.v-header {
  background: var(--verde);
  border-bottom: 1px solid rgba(201,185,154,0.15);
}

/* Sidebar */
.v-sidebar {
  background: var(--verde);
  border-right: 1px solid rgba(201,185,154,0.1);
}

/* Nav items del sidebar */
.nav-item {
  color: rgba(201,185,154,0.65) !important;
  font-size: 13px;
  padding: 10px 16px;
  border-radius: var(--r-md);
  transition: all 0.15s;
  text-decoration: none;
  display: flex;
  align-items: center;
  gap: 10px;
  cursor: pointer;
  background: transparent;
  border: none;
  width: 100%;
  text-align: left;
}
.nav-item:hover  { background: rgba(201,185,154,0.08); color: var(--arena) !important; }
.nav-item.active { background: rgba(61,107,94,0.3); color: var(--arena) !important; }

/* Cards */
.vcard {
  background: var(--white);
  border: 1px solid var(--border);
  border-radius: var(--r-lg);
  padding: 24px;
  box-shadow: var(--shadow);
}

/* Botón primario */
.vbtn {
  display: inline-flex; align-items: center; gap: 8px;
  background: var(--verde); color: var(--arena);
  border: none; padding: 10px 22px;
  border-radius: var(--r-md);
  font-family: var(--font-sans); font-size: 13px; font-weight: 500;
  cursor: pointer; text-decoration: none;
  transition: background 0.18s, transform 0.1s;
}
.vbtn:hover  { background: var(--verde-med); color: white; }
.vbtn:active { transform: scale(0.98); }

/* Botón outline */
.vbtn-outline {
  display: inline-flex; align-items: center; gap: 8px;
  background: transparent; color: var(--verde-med);
  border: 1.5px solid var(--verde-med);
  padding: 9px 20px; border-radius: var(--r-md);
  font-family: var(--font-sans); font-size: 13px;
  cursor: pointer; text-decoration: none; transition: all 0.15s;
}
.vbtn-outline:hover { background: var(--verde-med); color: white; }

/* Inputs */
.vinput {
  width: 100%; padding: 11px 14px;
  font-family: var(--font-sans); font-size: 13px;
  background: var(--cream); color: var(--ink);
  border: 1.5px solid var(--border); border-radius: var(--r-md);
  outline: none; transition: border-color 0.2s;
}
.vinput:focus { border-color: var(--verde-med); background: var(--white); }

/* Etiquetas Space Mono */
.vlbl {
  font-family: var(--font-mono);
  font-size: 9px; letter-spacing: 0.14em; text-transform: uppercase;
  color: var(--muted);
}

/* Badges de estado */
.vbadge { display:inline-block; font-family:var(--font-mono); font-size:9px; letter-spacing:0.1em; padding:3px 9px; border-radius:2px; }
.vbadge.activo  { background:rgba(29,158,117,0.1);  color:#0F6E56; border:1px solid rgba(29,158,117,0.25); }
.vbadge.alerta  { background:rgba(186,117,23,0.1);  color:#854F0B; border:1px solid rgba(186,117,23,0.25); }
.vbadge.critico { background:rgba(198,40,40,0.08);  color:#C62828; border:1px solid rgba(198,40,40,0.2);  }
.vbadge.info    { background:rgba(24,95,165,0.08);  color:#185FA5; border:1px solid rgba(24,95,165,0.2);  }
.vbadge.pronto  { background:rgba(201,185,154,0.15);color:var(--muted); border:1px solid rgba(201,185,154,0.3); }

/* Divisor */
.vdivider { height:1px; background:var(--border); margin:16px 0; }

/* KPI card */
.vkpi {
  background: var(--cream); border-radius: var(--r-md);
  padding: 16px; text-align: center;
}
.vkpi-val  { font-size: 24px; font-weight: 500; color: var(--ink); }
.vkpi-lbl  { font-family: var(--font-mono); font-size: 9px; letter-spacing: 0.12em; color: var(--muted); margin-bottom: 4px; }

/* Sim card */
.sim-card {
  background: var(--white) !important;
  border: 1px solid var(--border) !important;
  color: var(--ink) !important;
  box-shadow: var(--shadow);
}
.sim-card:hover {
  border-color: rgba(61,107,94,0.35) !important;
  transform: translateY(-2px);
  box-shadow: var(--shadow-md) !important;
}
.sim-status.active {
  background: rgba(29,158,117,0.1) !important;
  color: #0F6E56 !important;
  border: 1px solid rgba(29,158,117,0.25) !important;
}
.sim-status.soon {
  background: rgba(201,185,154,0.15) !important;
  color: var(--muted) !important;
  border: 1px solid rgba(201,185,154,0.3) !important;
}
.sim-name { color: var(--ink) !important; }
.sim-desc { color: var(--muted) !important; }
.sim-tag  { color: var(--verde-med) !important; }
.sim-arrow { color: var(--verde-med) !important; }
