.root, :root{
	--xp-primary: oklch(58.8% 0.158 241.966);
	--xp-accent:  oklch(74% 0.238 322.16);
	--xp-text:    oklch(74% 0.238 322.16);
	--xp-border:  oklch(74% 0.238 322.16);
	--xp-primary-35: oklch(58.8% 0.158 241.966 / 0.35);
	--xp-primary-25: oklch(58.8% 0.158 241.966 / 0.25);
}
.max-w-4xl{ max-width:56rem; }
.max-w-xl{ max-width:36rem; }
/* Contenedor ancho personalizado (más que max-w-6xl de Tailwind) */
.xp-container-wide{ max-width: 80rem; /* ~1280px */ }
.mx-auto{ margin-left:auto; margin-right:auto; }
#xp-form .xp-sections{ width:100%; }
@media (min-width: 768px){
	#xp-form .xp-sections{ display:grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap:1rem; }
}
/* Tailwind utilities se cargan vía CDN con preflight desactivado.
	 Aquí añadimos estilos mínimos (sin build) y un offset para headers fijos. */
.xtravel-partners{ 
	/* Paleta principal ajustada a OKLCH solicitada */
	--xp-primary: oklch(58.8% 0.158 241.966); /* Acento principal */
	--xp-accent: oklch(74% 0.238 322.16);   /* Acento secundario */
	--xp-text:   oklch(74% 0.238 322.16);   /* Color de texto principal */
	--xp-border: oklch(74% 0.238 322.16);   /* Color de marcos del formulario */
	--xp-primary-35: oklch(58.8% 0.158 241.966 / 0.35);
	--xp-primary-25: oklch(58.8% 0.158 241.966 / 0.25);

	--xp-success:#16a34a; 
	--xp-warning:#facc15; 
	--xp-danger:#ef4444; 
	--xp-muted:#6b7280; 
	--xp-header-offset:80px; /* menor offset */
	padding-top: var(--xp-header-offset);
	color: var(--xp-text);
}
@media (max-width: 640px){
	.xtravel-partners{ --xp-header-offset:60px; }
}
/* Asegura que los anclajes/títulos no queden bajo el header fijo */
.xtravel-partners h2, .xtravel-partners h3, .xtravel-partners h4{ scroll-margin-top: calc(var(--xp-header-offset) + 8px); }
.xp-btn-primary{ display:inline-flex; align-items:center; padding:0.5rem 1rem; background:linear-gradient(135deg, var(--xp-primary), var(--xp-accent)); color:#fff; border-radius:0.5rem; transition:transform .15s ease, box-shadow .2s ease; font-size:.95rem; box-shadow:0 6px 14px var(--xp-primary-25); }
.xp-btn-primary:hover{ transform:translateY(-1px); box-shadow:0 10px 20px var(--xp-primary-35); }
.xp-btn-secondary{ display:inline-flex; align-items:center; padding:0.4rem 0.85rem; background:#e5e7eb; color:#1f2937; border-radius:0.375rem; transition:all .2s ease; font-size:.9rem; }
.xp-btn-secondary:hover{ background:#d1d5db; }
.xp-label{ display:block; font-size:0.82rem; font-weight:600; color:var(--xp-text); margin-bottom:0.25rem; }
.xp-input{ width:100%; border:1px solid var(--xp-border); border-radius:0.375rem; padding:0.45rem 0.65rem; color:var(--xp-text); font-size:.92rem; }
.xp-input::placeholder{ color:#9ca3af; }
.xp-input:focus{ outline:none; border-color:var(--xp-primary); box-shadow:0 0 0 3px var(--xp-primary-35); }
.xp-error{ display:none; font-size:0.72rem; color:#dc2626; margin-top:0.25rem; }
/* Mensajes de servidor dentro del modal */
.xp-feedback{ display:none; padding:.5rem .75rem; border-radius:.5rem; border:1px solid transparent; }
.xp-feedback--ok{ background: rgba(22,163,74,.08); color:#166534; border-color: rgba(22,163,74,.35); }
.xp-feedback--err{ background: rgba(239,68,68,.08); color:#991b1b; border-color: rgba(239,68,68,.35); }
.xp-modal{ display:none; position:fixed; inset:0; z-index:2147483000; align-items:center; justify-content:center; }
/* Blindaje extra por si otros estilos suben aún más el header */
#xp-modal{ z-index:2147483646 !important; }
/* Mostrar solo cuando se añada is-open mediante JS */
.xp-modal.is-open{ display:flex !important; }
.xp-modal .xp-modal-panel{ position:relative; z-index:2147483600; max-height: calc(100vh - 2rem); overflow-y:auto; -webkit-overflow-scrolling: touch; overscroll-behavior: contain; scrollbar-width: thin; }
#xp-modal .xp-modal-panel{ z-index:2147483647 !important; }
.xp-modal .xp-modal-panel::-webkit-scrollbar{ width:8px; }
.xp-modal .xp-modal-panel::-webkit-scrollbar-thumb{ background: #d1d5db; border-radius: 999px; }
.xp-modal .xp-modal-backdrop{ z-index:2147483500; }
#xp-modal .xp-modal-backdrop{ z-index:2147483645 !important; }

/* Estética del modal minimalista */
.xp-modal .xp-modal-panel{ border:1px solid var(--xp-border); box-shadow:0 10px 30px rgba(0,0,0,.12); color: var(--xp-text); }
.xp-modal .xp-modal-panel{ padding:1rem; }
@media (min-width: 640px){
	.xp-modal .xp-modal-panel{ padding:1.25rem 1.5rem; }
}

/* Ancho mayor del modal en escritorio */
@media (min-width: 1024px){
	#xp-modal .xp-modal-panel{ max-width: 80rem; /* ~1280px para coincidir con contenedor */ }
}

/* Inputs y botones dentro del modal con colores */
#xp-modal .xp-input{ border-color: var(--xp-border); color: var(--xp-text); }
#xp-modal .xp-input:focus{ border-color: var(--xp-primary); box-shadow: 0 0 0 3px var(--xp-primary-35); }
#xp-modal .xp-label{ color: var(--xp-text); }
#xp-modal .xp-error{ color: oklch(55% 0.23 29); }
#xp-modal .xp-btn-primary{ background: linear-gradient(135deg, var(--xp-primary), var(--xp-accent)); color: white; box-shadow: 0 6px 14px var(--xp-primary-25); }
#xp-modal .xp-btn-primary:hover{ box-shadow: 0 10px 20px var(--xp-primary-35); }
#xp-modal .xp-btn-secondary{ color: var(--xp-text); }
/* Color específico solicitado para el modal */
#xp-modal{ --xp-text: oklch(42.4% 0.199 265.638); }
#xp-modal .xp-modal-panel, #xp-modal, #xp-modal p, #xp-modal label, #xp-modal h5, #xp-modal li, #xp-modal input, #xp-modal select, #xp-modal textarea{
	color: var(--xp-text) !important;
}
/* Tamaño de letra mayor en desktop dentro del modal */
@media (min-width: 1024px){
	#xp-modal .xp-modal-panel{ font-size: 1.0625rem; /* ~17px */ }
	#xp-modal .xp-label{ font-size: 0.9rem; }
	#xp-modal .xp-input, #xp-modal textarea{ font-size: 0.98rem; }
}

/* Grid compacto de dos columnas también en móvil */
#xp-form .grid{ grid-template-columns: repeat(2, minmax(0, 1fr)); }
#xp-form .grid .col-span-2{ grid-column: span 2 / span 2; }
@media (min-width: 640px){
	#xp-form .grid{ gap: .75rem 1rem; }
}

/* Contenedor de agrupación de secciones (representante y empresa lado a lado en desktop) */
#xp-form .xp-sections > div{ width:100%; }
.xp-modal .xp-close{ color:#6b7280; }
.xp-modal .xp-close:hover{ color:#111827; }
.xp-modal .xp-modal-panel h4{ color:var(--xp-text); }
.xp-modal .xp-modal-panel .section-title i{ color:var(--xp-primary); }

/* Labels con pequeños iconos por sección (utiliza Font Awesome ya cargado globalmente) */
.xp-label i{ color:var(--xp-primary); margin-right:.35rem; }

/* Inputs con enfoque sutil (unificado a paleta) */
.xp-input{ background:#fff; }
.xp-input:focus{ border-color:var(--xp-primary); box-shadow:0 0 0 3px var(--xp-primary-35); }

/* Espaciados sutiles */
.xtravel-partners .bg-white.border.rounded-lg{ padding:1.25rem; }

/* Paleta y estilos adicionales */
.xtravel-partners h3 i, .xtravel-partners h4 i{ color: var(--xp-primary); }
.xtravel-partners .xp-section-title{ display:flex; align-items:center; gap:.5rem; }

/* Tarjetas minimalistas */
.xtravel-partners .bg-white.border.rounded-lg{ border-color:var(--xp-border); box-shadow:0 1px 2px rgba(0,0,0,.04); }
.xtravel-partners .bg-white.border.rounded-lg:hover{ box-shadow:0 2px 8px rgba(0,0,0,.06); }
.xtravel-partners .text-center h2{ position:relative; display:inline-block; padding-bottom:.3rem; font-size:1.5rem; }
.xtravel-partners .text-center h2::after{ content:""; position:absolute; left:50%; transform:translateX(-50%); bottom:0; width:60%; height:3px; background:linear-gradient(90deg, var(--xp-primary), var(--xp-accent)); border-radius:2px; }

/* Listas minimalistas con marcador de color */
.xp-list{ margin:0; padding-left:1.25rem; }
.xp-list li{ position:relative; margin: .35rem 0; padding-left:.75rem; }
.xp-list li::before{ content:""; position:absolute; left:-1.25rem; top:.6em; width:6px; height:6px; background:var(--xp-primary); border-radius:9999px; }

/* Variantes de lista con badges a color */
.xp-list .xp-badge{ vertical-align: middle; }
.xp-list li{ display:flex; align-items:flex-start; gap:.4rem; }

/* Badges minimalistas */
.xp-badge{ display:inline-block; padding:.12rem .45rem; font-size:.7rem; line-height:1; border-radius:9999px; background:#f3f4f6; color:#374151; border:1px solid #e5e7eb; }
.xp-badge--new{ background: rgba(249,115,22,.08); color:#f97316; border-color: rgba(249,115,22,.35); }
.xp-badge--info{ background: rgba(14,165,233,.08); color:#0ea5e9; border-color: rgba(14,165,233,.35); }
.xp-badge--success{ background: rgba(22,163,74,.08); color:#16a34a; border-color: rgba(22,163,74,.35); }
.xp-badge--warning{ background: rgba(250,204,21,.12); color:#a16207; border-color: rgba(250,204,21,.35); }
.xp-badge--danger{ background: rgba(239,68,68,.08); color:#dc2626; border-color: rgba(239,68,68,.35); }

/* Divider y utilidades */
.xp-divider{ height:1px; background:var(--xp-border); margin:1rem 0; }
.xp-file-name{ font-size:.75rem; color:#374151; margin-top:.25rem; }
.xp-loading{ display:inline-flex; align-items:center; gap:.35rem; }

/* Utilidades fallback para grid en caso no cargar Tailwind */
.grid{ display:grid; }
.gap-6{ gap:1.5rem; }
.mt-6{ margin-top:1.5rem; }
.mb-6{ margin-bottom:1.5rem; }
.p-6{ padding:1.5rem; }
.p-4{ padding:1rem; }
.px-6{ padding-left:1.5rem; padding-right:1.5rem; }
.mx-4{ margin-left:1rem; margin-right:1rem; }
.py-10{ padding-top:2.5rem; padding-bottom:2.5rem; }
.shadow-sm{ box-shadow:0 1px 2px rgba(0,0,0,.05); }
.rounded-lg{ border-radius:.5rem; }
.border{ border:1px solid var(--xp-border); }
.bg-white{ background:#fff; }
.text-center{ text-align:center; }
.text-gray-600{ color:#4b5563; }
.text-gray-700{ color:#374151; }
.text-sm{ font-size:.875rem; line-height:1.25rem; }
.text-lg{ font-size:1.125rem; line-height:1.75rem; }
.text-xl{ font-size:1.25rem; line-height:1.75rem; }
.text-2xl{ font-size:1.5rem; line-height:2rem; }
.font-semibold{ font-weight:600; }
.font-bold{ font-weight:700; }
.mb-2{ margin-bottom:.5rem; }
.mb-3{ margin-bottom:.75rem; }
.mb-4{ margin-bottom:1rem; }
.pl-5{ padding-left:1.25rem; }
.space-y-1 > * + * { margin-top: .25rem; }
.pt-2{ padding-top:.5rem; }
.items-center{ align-items:center; }
.justify-between{ justify-content:space-between; }
.flex{ display:flex; }
.max-w-xl{ max-width:36rem; }
.mx-auto{ margin-left:auto; margin-right:auto; }
.md\:grid-cols-2{ grid-template-columns: 1fr; }
@media (min-width: 768px){ .md\:grid-cols-2{ grid-template-columns: repeat(2, minmax(0,1fr)); } }

/* Tarjetas con acento de color minimalista */
.xp-card{ position:relative; overflow:hidden; border-radius:0.75rem; border:1px solid var(--xp-border); background:#fff; }
.xp-card::before{ content:""; position:absolute; inset:0 0 auto 0; height:4px; background:linear-gradient(90deg, var(--xp-primary), var(--xp-accent)); }
.xp-card h3, .xp-card h4{ color:var(--xp-text); display:flex; align-items:center; gap:.5rem; }
.xp-card h3 i, .xp-card h4 i{ color:var(--xp-primary); }
.xp-card:hover{ box-shadow:0 10px 22px rgba(0,0,0,.06); }

.xp-form-card{ position:relative; padding:1rem; border:1px solid var(--xp-border); border-radius:.75rem; background:#ffffff; }
.xp-form-card:not(:first-child){ margin-top:.25rem; }
.xp-form-card h5{ display:flex; align-items:center; gap:.5rem; color:var(--xp-text); margin-bottom:.5rem; }
.xp-form-card h5 i{ color:var(--xp-primary); }
.xp-form-card .xp-label{ color:var(--xp-text); }
.xp-form-card .xp-input{ background:#fff; transition: box-shadow .2s ease, border-color .2s ease; }
.xp-form-card .xp-input:focus{ border-color:var(--xp-primary); box-shadow:0 0 0 3px var(--xp-primary-35); }
.xp-form-card select.xp-input{ appearance:none; background-image: linear-gradient(45deg, transparent 50%, #94a3b8 50%), linear-gradient(135deg, #94a3b8 50%, transparent 50%); background-position: calc(100% - 16px) calc(1em + 2px), calc(100% - 11px) calc(1em + 2px); background-size:5px 5px, 5px 5px; background-repeat:no-repeat; }

/* Checkbox/Radio minimalistas con color */
input[type="checkbox"], input[type="radio"]{ width:1rem; height:1rem; accent-color: var(--xp-primary); }

/* Iconos de formulario con color */
.xp-label i{ color: var(--xp-primary); }

/* Etiquetas/Badges mejoradas con colores */
.xp-badge{ background:#f8fafc; color:var(--xp-text); border-color:var(--xp-border); }
.xp-badge--info{ background: rgba(14,165,233,.1); color:#0369a1; border-color: rgba(14,165,233,.35); }
.xp-badge--new{ background: rgba(249,115,22,.1); color:#c2410c; border-color: rgba(249,115,22,.35); }
.xp-badge--success{ background: rgba(22,163,74,.1); color:#166534; }
.xp-badge--warning{ background: rgba(250,204,21,.18); color:#854d0e; }
.xp-badge--danger{ background: rgba(239,68,68,.1); color:#991b1b; }

/* Listas con marcadores coloridos */
.xp-list li::before{ background: linear-gradient(180deg, var(--xp-primary), var(--xp-accent)); }

/* Evitar scroll del body cuando el modal está abierto */
body.xp-modal-open{ overflow: hidden; }
