:root {
  --rc-verde-oscuro: #1b4332;
  --rc-verde: #2d6a4f;
  --rc-verde-claro: #40916c;
  --rc-verde-suave: #74c69d;
  --rc-tierra: #a9743a;
  --rc-crema: #f7f5f0;
  --rc-gris: #6c757d;
}

html, body {
  height: 100%;
}

body {
  display: flex;
  flex-direction: column;
  min-height: 100vh;
  background-color: var(--rc-crema);
  font-family: "Segoe UI", system-ui, -apple-system, sans-serif;
  color: #2b2b2b;
}

main {
  flex: 1 0 auto;
}

/* Navbar */
.rc-navbar {
  background: linear-gradient(90deg, var(--rc-verde-oscuro), var(--rc-verde));
  box-shadow: 0 2px 10px rgba(0, 0, 0, 0.15);
}

.rc-navbar .nav-link {
  color: rgba(255, 255, 255, 0.9);
  font-weight: 500;
  transition: color 0.2s ease;
}

.rc-navbar .nav-link:hover {
  color: #ffffff;
}

/* Footer */
.rc-footer {
  background: var(--rc-verde-oscuro);
  flex-shrink: 0;
}

/* Hero */
.rc-hero {
  position: relative;
  background: linear-gradient(135deg, var(--rc-verde-oscuro) 0%, var(--rc-verde) 55%, var(--rc-verde-claro) 100%);
  color: #fff;
  padding: 6rem 0 8rem;
  overflow: hidden;
}

.rc-hero::after {
  content: "";
  position: absolute;
  inset: 0;
  background-image: radial-gradient(circle at 15% 25%, rgba(255, 255, 255, 0.08) 0, transparent 45%),
    radial-gradient(circle at 85% 75%, rgba(255, 255, 255, 0.08) 0, transparent 45%);
}

.rc-hero h1 {
  font-weight: 800;
  letter-spacing: -0.02em;
}

.rc-hero .lead {
  color: rgba(255, 255, 255, 0.9);
  max-width: 640px;
}

.rc-hero-wave {
  display: block;
  width: 100%;
  line-height: 0;
  margin-top: -6rem;
}

/* Botones */
.btn-rc-primario {
  background-color: #ffffff;
  color: var(--rc-verde-oscuro);
  border: none;
  font-weight: 600;
  padding: 0.75rem 1.75rem;
  border-radius: 50px;
  transition: transform 0.15s ease, box-shadow 0.15s ease;
}

.btn-rc-primario:hover {
  transform: translateY(-2px);
  box-shadow: 0 8px 20px rgba(0, 0, 0, 0.25);
  color: var(--rc-verde-oscuro);
}

.btn-rc-secundario {
  background-color: transparent;
  color: #ffffff;
  border: 2px solid rgba(255, 255, 255, 0.8);
  font-weight: 600;
  padding: 0.7rem 1.75rem;
  border-radius: 50px;
  transition: all 0.15s ease;
}

.btn-rc-secundario:hover {
  background-color: rgba(255, 255, 255, 0.15);
  color: #ffffff;
  border-color: #ffffff;
}

/* Cards */
.rc-card {
  border: none;
  border-radius: 1rem;
  box-shadow: 0 4px 18px rgba(27, 67, 50, 0.08);
  transition: transform 0.2s ease, box-shadow 0.2s ease;
}

.rc-card:hover {
  transform: translateY(-4px);
  box-shadow: 0 12px 28px rgba(27, 67, 50, 0.15);
}

.rc-icon-circle {
  width: 56px;
  height: 56px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  background: linear-gradient(135deg, var(--rc-verde), var(--rc-verde-suave));
  color: #fff;
  font-size: 1.5rem;
}

.rc-section-title {
  font-weight: 800;
  color: var(--rc-verde-oscuro);
}

/* Stat cards (dashboard) */
.rc-stat-card {
  border: none;
  border-radius: 1rem;
  color: #fff;
  padding: 1.5rem;
  box-shadow: 0 6px 18px rgba(0, 0, 0, 0.1);
}

.rc-stat-total { background: linear-gradient(135deg, #1b4332, #2d6a4f); }
.rc-stat-pendiente { background: linear-gradient(135deg, #ad6a00, #e2911a); }
.rc-stat-revision { background: linear-gradient(135deg, #0d6d8a, #17a2b8); }
.rc-stat-proceso { background: linear-gradient(135deg, #4a3fb5, #6f5cf0); }
.rc-stat-resuelto { background: linear-gradient(135deg, #1e7e34, #2fb350); }

.rc-stat-card .valor {
  font-size: 2.2rem;
  font-weight: 800;
  line-height: 1;
}

/* Badges de estado */
.badge-pendiente { background-color: #e2911a; }
.badge-enrevision { background-color: #17a2b8; }
.badge-enproceso { background-color: #6f5cf0; }
.badge-resuelto { background-color: #2fb350; }
.badge-cancelado { background-color: #adb5bd; color: #2b2b2b; }

.badge-prioridad-baja { background-color: #74c69d; color: #1b4332; }
.badge-prioridad-media { background-color: #f0ad4e; color: #4a2e00; }
.badge-prioridad-alta { background-color: #d9534f; }

/* Timeline (historial) */
.rc-timeline {
  list-style: none;
  padding-left: 0;
  margin: 0;
  border-left: 3px solid var(--rc-verde-suave);
}

.rc-timeline-item {
  position: relative;
  padding: 0 0 1.75rem 1.75rem;
}

.rc-timeline-item::before {
  content: "";
  position: absolute;
  left: -9.5px;
  top: 4px;
  width: 16px;
  height: 16px;
  border-radius: 50%;
  background: var(--rc-verde);
  border: 3px solid #fff;
  box-shadow: 0 0 0 2px var(--rc-verde-suave);
}

.rc-timeline-item .fecha {
  font-size: 0.85rem;
  color: var(--rc-gris);
}

/* Folio destacado */
.rc-folio {
  font-family: "Consolas", monospace;
  font-weight: 700;
  letter-spacing: 0.05em;
}

/* Auth cards */
.rc-auth-wrapper {
  min-height: calc(100vh - 320px);
  display: flex;
  align-items: center;
}

.rc-auth-card {
  border: none;
  border-radius: 1.25rem;
  box-shadow: 0 10px 30px rgba(27, 67, 50, 0.12);
  overflow: hidden;
}

.rc-auth-side {
  background: linear-gradient(160deg, var(--rc-verde-oscuro), var(--rc-verde-claro));
  color: #fff;
  padding: 2.5rem;
}

/* Tablas */
.table-rc thead {
  background-color: var(--rc-verde-oscuro);
  color: #fff;
}

.rc-upload-preview {
  max-width: 100%;
  max-height: 220px;
  border-radius: 0.75rem;
  object-fit: cover;
  display: none;
}
