/* ===================================================
   Proveedores — estilos del marketplace
   Reutiliza la paleta y tipografía de styles.css:
   fondo #050913, acentos #2563eb / #60a5fa, fuente Inter
   =================================================== */

.prov-hero{
padding:150px 80px 60px;
background:
radial-gradient(circle at top right, rgba(37,99,235,0.20), transparent 35%),
#050913;
}

.prov-hero h1{
font-size:52px;
font-weight:800;
max-width:760px;
line-height:1.1;
}

.prov-hero p{
font-size:19px;
opacity:0.8;
max-width:640px;
margin-top:18px;
line-height:1.7;
}

/* Barra de búsqueda y filtros */
.prov-search{
display:flex;
flex-wrap:wrap;
gap:14px;
margin-top:40px;
background:linear-gradient(180deg,#0d1524,#09101c);
border:1px solid rgba(255,255,255,0.06);
padding:22px;
border-radius:20px;
}

.prov-search input,
.prov-search select{
background:#111b2d;
border:1px solid rgba(255,255,255,.08);
padding:14px 16px;
border-radius:12px;
color:white;
font-family:'Inter',sans-serif;
font-size:15px;
flex:1;
min-width:160px;
}

.prov-search button{
background:linear-gradient(135deg,#2563eb,#60a5fa);
border:none;
padding:14px 26px;
border-radius:12px;
color:white;
font-weight:700;
font-family:'Inter',sans-serif;
cursor:pointer;
}

/* Insignia hexagonal de categoría — firma visual de esta sección */
.hex-badge{
width:46px;
height:46px;
background:linear-gradient(135deg,#2563eb,#60a5fa);
clip-path:polygon(50% 0%, 100% 25%, 100% 75%, 50% 100%, 0% 75%, 0% 25%);
display:flex;
align-items:center;
justify-content:center;
font-size:20px;
flex-shrink:0;
}

/* Grid de directorio */
.prov-section{
padding:70px 80px 120px;
}

.prov-grid{
display:grid;
grid-template-columns:repeat(auto-fit,minmax(300px,1fr));
gap:28px;
margin-top:40px;
align-items:start;
}

.prov-card{
background:linear-gradient(180deg,#0d1524,#09101c);
border:1px solid rgba(255,255,255,0.06);
border-radius:24px;
overflow:hidden;
transition:0.3s;
text-decoration:none;
color:white;
display:flex;
flex-direction:column;
cursor:pointer;
}

.prov-card:hover{
transform:translateY(-6px);
border-color:#2563eb;
}

.prov-card .cover{
height:130px;
background:linear-gradient(135deg,#111b2d,#0d1524);
display:flex;
align-items:center;
padding:0 24px;
gap:16px;
}

.prov-card .cover h3{
font-size:22px;
}

.prov-card .cover span{
display:block;
font-size:12px;
opacity:0.65;
margin-top:4px;
}

.prov-card .body{
padding:22px 24px 26px;
}

.prov-card .body p{
font-size:14px;
opacity:0.75;
line-height:1.6;
margin-bottom:16px;
}

.prov-tags{
display:flex;
flex-wrap:wrap;
gap:8px;
margin-bottom:16px;
}

.prov-tag{
font-size:11px;
padding:6px 12px;
border-radius:20px;
background:rgba(37,99,235,0.15);
border:1px solid rgba(96,165,250,0.3);
color:#93c5fd;
}

.prov-rating{
color:#60a5fa;
font-size:13px;
font-weight:700;
}

.prov-actions{
display:flex;
gap:10px;
margin-top:16px;
}

.prov-actions a,
.prov-actions span{
flex:1;
text-align:center;
padding:12px;
border-radius:10px;
text-decoration:none;
font-size:13px;
font-weight:700;
}

.prov-actions .wa{
background:#25D366;
color:white;
}

.prov-actions .call{
border:1px solid rgba(255,255,255,0.15);
color:white;
}

.empty-state{
text-align:center;
padding:80px 20px;
opacity:0.6;
}

/* Sello de identidad verificada */
.badge-verificado{
display:inline-flex;
align-items:center;
gap:6px;
font-size:12px;
font-weight:700;
color:#4ade80;
background:rgba(74,222,128,0.12);
border:1px solid rgba(74,222,128,0.35);
padding:5px 12px;
border-radius:20px;
}

.badge-verificado svg{
width:13px;
height:13px;
flex-shrink:0;
}

.badge-pendiente{
display:inline-flex;
align-items:center;
gap:6px;
font-size:12px;
font-weight:700;
color:#fbbf24;
background:rgba(251,191,36,0.12);
border:1px solid rgba(251,191,36,0.35);
padding:5px 12px;
border-radius:20px;
}

/* Botón compartir visita con contacto de confianza */
.btn-share-visita{
display:flex;
align-items:center;
justify-content:center;
gap:8px;
width:100%;
padding:14px;
border-radius:12px;
border:1px solid rgba(255,255,255,0.15);
background:rgba(255,255,255,0.04);
color:white;
font-weight:700;
font-size:14px;
text-decoration:none;
margin-top:10px;
transition:0.2s;
}

.btn-share-visita:hover{
background:rgba(255,255,255,0.08);
border-color:rgba(96,165,250,0.4);
}

.share-visita-nota{
font-size:12px;
opacity:0.6;
margin-top:8px;
line-height:1.5;
}

/* Candado de activación por código */
.share-visita-lock{
border:1px dashed rgba(255,255,255,0.18);
border-radius:12px;
padding:16px;
margin-top:10px;
}

.share-visita-lock-titulo{
display:flex;
align-items:center;
gap:8px;
font-size:13px;
font-weight:700;
margin-bottom:12px;
opacity:0.9;
}

.share-visita-input{
width:100%;
padding:12px 14px;
border-radius:10px;
border:1px solid rgba(255,255,255,0.15);
background:rgba(255,255,255,0.03);
color:white;
font-size:14px;
letter-spacing:1px;
}

.share-visita-input::placeholder{
color:rgba(255,255,255,0.35);
}

.share-visita-error{
display:none;
color:#f87171;
font-size:12px;
margin-top:8px;
}

/* CTA para volverse proveedor */
.prov-cta{
margin-top:60px;
background:linear-gradient(180deg,#0d1524,#09101c);
border:1px solid rgba(255,255,255,0.06);
border-radius:26px;
padding:50px;
text-align:center;
}

.prov-cta h2{
font-size:30px;
margin-bottom:14px;
}

.prov-cta p{
opacity:0.75;
max-width:520px;
margin:0 auto 26px;
line-height:1.7;
}

/* ===== Perfil de proveedor ===== */
.perfil-cover{
height:260px;
background:
linear-gradient(180deg, rgba(5,9,19,0) 0%, #050913 100%),
radial-gradient(circle at top right, rgba(37,99,235,0.30), transparent 40%),
#0d1524;
margin-top:100px;
}

.perfil-header{
max-width:1100px;
margin:-70px auto 0;
padding:0 40px;
display:flex;
gap:30px;
align-items:flex-end;
flex-wrap:wrap;
}

.perfil-logo{
width:120px;
height:120px;
border-radius:24px;
background:#111b2d;
border:4px solid #050913;
display:flex;
align-items:center;
justify-content:center;
font-size:40px;
font-weight:800;
color:#60a5fa;
}

.perfil-titulo h1{
font-size:34px;
}

.perfil-titulo span{
color:#60a5fa;
font-size:13px;
font-weight:700;
letter-spacing:1px;
}

.perfil-body{
max-width:1100px;
margin:50px auto;
padding:0 40px;
display:grid;
grid-template-columns:2fr 1fr;
gap:40px;
}

.perfil-block{
background:linear-gradient(180deg,#0d1524,#09101c);
border:1px solid rgba(255,255,255,0.06);
border-radius:22px;
padding:34px;
margin-bottom:26px;
}

.perfil-block h3{
font-size:20px;
margin-bottom:16px;
}

.servicio-item{
display:flex;
gap:16px;
align-items:flex-start;
padding:16px 0;
border-bottom:1px solid rgba(255,255,255,0.06);
}

.servicio-item:last-child{
border-bottom:none;
}

.contact-block a{
display:block;
padding:14px 0;
color:white;
text-decoration:none;
border-bottom:1px solid rgba(255,255,255,0.06);
font-size:14px;
opacity:0.9;
}

.contact-block a:last-child{
border-bottom:none;
}

.perfil-actions{
display:flex;
flex-direction:column;
gap:12px;
}

.perfil-actions a,
.perfil-actions button{
padding:16px;
border-radius:14px;
text-align:center;
text-decoration:none;
font-weight:700;
font-family:'Inter',sans-serif;
font-size:15px;
border:none;
cursor:pointer;
}

@media(max-width:900px){
.perfil-body{grid-template-columns:1fr;}
.prov-hero, .prov-section{padding-left:24px;padding-right:24px;}
.prov-hero h1{font-size:36px;}
}

@media(max-width:768px){
.perfil-header{margin-top:-50px;flex-direction:column;align-items:flex-start;}
}

/* Horario de atención */
.horario-item{
display:flex;
justify-content:space-between;
padding:12px 0;
border-bottom:1px solid rgba(255,255,255,0.06);
font-size:14px;
}

.horario-item:last-child{
border-bottom:none;
}

.horario-item span:first-child{
opacity:0.7;
}

.horario-item span:last-child{
font-weight:600;
}

/* Insignia de tiempo de respuesta */
.response-badge{
display:flex;
align-items:center;
gap:12px;
background:rgba(37,99,235,0.12);
border:1px solid rgba(96,165,250,0.25);
border-radius:14px;
padding:16px 18px;
}

.response-badge .dot{
width:10px;
height:10px;
border-radius:50%;
background:#4ade80;
flex-shrink:0;
box-shadow:0 0 0 4px rgba(74,222,128,0.15);
}

.response-badge strong{
display:block;
font-size:14px;
}

.response-badge span{
font-size:12px;
opacity:0.7;
}

/* Mapa de cobertura */
.map-embed{
width:100%;
height:220px;
border:none;
border-radius:16px;
margin-top:14px;
filter:grayscale(0.3) invert(0.9) contrast(0.9);
}

.map-pending{
padding:24px;
text-align:center;
opacity:0.6;
font-size:13px;
border:1px dashed rgba(255,255,255,0.15);
border-radius:16px;
margin-top:14px;
}

/* =====================================================
   Paneles de administración (admin-codigos, admin-proveedores)
   ===================================================== */
.admin-wrap{max-width:820px;margin:60px auto;padding:0 20px;}
.admin-card{background:rgba(255,255,255,0.03);border:1px solid rgba(255,255,255,0.1);border-radius:20px;padding:30px;margin-bottom:30px;}
.admin-card h2{font-size:20px;margin-bottom:6px;}
.admin-card p.admin-sub{opacity:0.6;font-size:13px;margin-bottom:20px;}
.admin-field{margin-bottom:16px;}
.admin-field label{display:block;font-size:13px;opacity:0.75;margin-bottom:6px;}
.admin-field input,.admin-field select,.admin-field textarea{
width:100%;padding:12px 14px;border-radius:10px;border:1px solid rgba(255,255,255,0.15);
background:rgba(255,255,255,0.03);color:white;font-size:14px;font-family:inherit;
}
.admin-field textarea{resize:vertical;min-height:80px;}
.admin-field .admin-hint{font-size:12px;opacity:0.5;margin-top:5px;}
.admin-row{display:flex;gap:12px;flex-wrap:wrap;}
.admin-row .admin-field{flex:1;min-width:180px;}
.admin-btn{
display:inline-flex;align-items:center;justify-content:center;gap:8px;
padding:13px 22px;border-radius:12px;border:none;background:#60a5fa;color:#0a1220;
font-weight:700;font-size:14px;cursor:pointer;transition:0.2s;
}
.admin-btn:hover{background:#93c5fd;}
.admin-btn.secondary{background:rgba(255,255,255,0.08);color:white;border:1px solid rgba(255,255,255,0.15);}
.admin-btn.ghost{background:none;border:1px solid rgba(255,255,255,0.15);color:white;}
.admin-msg{margin-top:14px;font-size:13px;padding:10px 14px;border-radius:10px;display:none;}
.admin-msg.ok{display:block;background:rgba(74,222,128,0.12);color:#4ade80;border:1px solid rgba(74,222,128,0.3);}
.admin-msg.error{display:block;background:rgba(248,113,113,0.12);color:#f87171;border:1px solid rgba(248,113,113,0.3);}
table.admin-tabla{width:100%;border-collapse:collapse;font-size:13px;margin-top:10px;}
table.admin-tabla th{text-align:left;opacity:0.6;padding:8px 10px;border-bottom:1px solid rgba(255,255,255,0.1);font-weight:600;}
table.admin-tabla td{padding:10px;border-bottom:1px solid rgba(255,255,255,0.06);}
table.admin-tabla tr:last-child td{border-bottom:none;}
table.admin-tabla tr.clickable{cursor:pointer;}
table.admin-tabla tr.clickable:hover{background:rgba(255,255,255,0.03);}
.chip-usado{font-size:11px;padding:3px 8px;border-radius:10px;background:rgba(251,191,36,0.15);color:#fbbf24;}
.chip-nuevo{font-size:11px;padding:3px 8px;border-radius:10px;background:rgba(74,222,128,0.15);color:#4ade80;}
.chip-aprobado{font-size:11px;padding:3px 8px;border-radius:10px;background:rgba(74,222,128,0.15);color:#4ade80;}
.chip-pendiente{font-size:11px;padding:3px 8px;border-radius:10px;background:rgba(251,191,36,0.15);color:#fbbf24;}
.chip-rechazado{font-size:11px;padding:3px 8px;border-radius:10px;background:rgba(248,113,113,0.15);color:#f87171;}
.btn-mini{background:none;border:1px solid rgba(248,113,113,0.4);color:#f87171;border-radius:8px;padding:4px 10px;font-size:12px;cursor:pointer;}
.btn-mini:hover{background:rgba(248,113,113,0.1);}
.btn-mini.blue{border-color:rgba(96,165,250,0.4);color:#60a5fa;}
.btn-mini.blue:hover{background:rgba(96,165,250,0.1);}
.admin-nav{display:flex;gap:10px;margin-bottom:20px;}
.admin-nav a{padding:8px 16px;border-radius:10px;border:1px solid rgba(255,255,255,0.12);color:white;text-decoration:none;font-size:13px;font-weight:600;}
.admin-nav a.active{background:#60a5fa;color:#0a1220;border-color:#60a5fa;}
